Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork4
Make a project in 1 minute from a project template but keep updating it forever
License
moremoban/yehua
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation

yehua /'jɛhwa/ is yet another a project template tool for an organisation. It creates a project skeleton, Sfrom the default project template, T, of an organisation.moban, the othertool of moremoban organisation, keeps S in synchronisation with T forever. Thisuse case is what we called:continuous templating.
Yes, we now support cookiecutter templates. It has been requested since 2018Europython. Simply there is tons of cookiecutter templates out there.
What you do is to replace 'cookiecutter' with 'yh':
$ pip install yehua[cookiecutter]$ yh gh:audreyr/cookiecutter-pypackage
And what moremoban promise is, whenever your source template changes, youcan synchronize them any time with another moremoban's command 'moban':
$ moban
Yes, you need a separate command, which replaces your effort to synchronizethe upstream templates all the time.
When the scope is a single project,yehua is no different tocookiecutter andPyScaffold. It will create a project skeleton frompypi-mobans, other templates suchas cookiecutter templates, yehua mobans.
When the scope is all projects within an organisation,yehua helps tackleinformation fragmentation problem, because all new projects after its creation,are still in synchronisation with T. For example, removing python 2.7 testin your travis file, can be done either manually by hand or automatically viamoban. What's the difference? The latter is faster and typo-free option. Here isan example.
PyScaffold version 3 has rolled out '--update' option, recognizing the organisationalneed of continous templating. Why do notyehua joinPyScaffold? Well,moremoban organisation started with '--update' at the start so our architectureand vision are closer to that ofcookiecutter:
- we do not want to limit ourselves in pythonsphere. We wanted to serve allIT projects. In our mind, they are all about text templating.
- we split the tool and the templates, serving the previous statement.People can create npm package template and use yehua+moban for continuous templating.Here are a list of examples:
You can install yehua via pip:
$ pip install yehua
or clone it and install it:
$ git clone https://github.com/moremoban/yehua.git$cd yehua$ python setup.py install
For offline usage, you need to get pypi-mobans-pkg installed:
$ pip install yehua[pypi-mobans]
or:
$ pip install pypi-mobans-pkg
Simply type in and you are taken care of:
$ yh
It will use pypi-mobans-pkg by default and if it is not installed, it willinstall latest one. Then pypi-mobans-pkg takes over and will do[these](https://github.com/moremoban/pypi-mobans/blob/dev/yehua.yml)for you:
- Consult you on your project static information which can update asmany as you want to.
- Create the Python package folder structure
- Initialize the package as git project
You will simply need to commit it after you will have reviewed thegenerated files.
Let's make a python command line utility using yehua. The commandwill be hello and it prints world.
At the end, yehua generates a folder named 'hello', which contains [all necessaryfiles](https://github.com/moremoban/pypi-mobans).
In above animation, we write up the actual code in hello/main.py
defmain():print('world')
Why is it enough? yehua generates a command utility python andit has pre-wired to invoke hello.main.main() function. Youcan find it out in setup.py.
Now all is done. Let's install it
You can now run hello at your command line.
Suppose you are happy with everything. Please do the following topush it to your github:
$ git commit -am ":sparkle: initial commit"
Then create your project repository in github and do these to push it out:
$ git remote add origin https://github.com/moremoban/hello.git$ git push origin master
You can find thehello project on github.
The generated project already has .travis.yml file. What youwill need to do is to register with travis.org if you have notdone so. And then go to travis and activate your project.
The original problem I was trying to solve is: I would like to placecommon paragraphs in the documentation of my projects in a centralplace (pyexcel-mobans), and all projects could reference it dynamicallyso that when those common paragraphs get updated, the updates can beeasily propagated to all relevant projects. The derived problem is:what can I do to a new project? I found myself doing a lot ofcopy-and-paste a lot, which lead to the creation of "yehua". Later,John Vandenberg, an active member of coala, suggested extracting thegeneric sets of pyexcel-mobans to form pypi-mobans, so thata vanilla python package can be created. Why not cookiecutter?Well, I have not heard of it at the time of creation. But it turns outthat this project started to pave the way to be the cookiecutterfor organisations.
Why to choose "yehua"? Here isthe little story behind thechoice of name. And thismusic video would help bridge thecultural gap between you and me.
NEW BSD License
It embeds MIT licensedcutie fromHans Schülein. Please refer to LICENSE file for more details
About
Make a project in 1 minute from a project template but keep updating it forever
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors4
Uh oh!
There was an error while loading.Please reload this page.