A cookiecutter template for a single module (file) Python package.
- Free software: BSD license
- Optional shell entry point powered by click.
- Testing with pytest
- Travis-CI: Ready for Travis Continuous Integration testing
- Tox testing: Setup to easily test for Python 2.6, 2.7, 3.3
- README.rst for documentation (Sphinx is overkill for single )
First, get cookiecutter. Trust me, it's awesome:
$ pip install cookiecutter
Then, we'll assume you have a snippet of Python code you want to turn into a tested, documented, and installable package. For example, it might be a function:
def do_something(value):
raise NotImplementedError("Replace with your own code")
Alright, time to cenerate a single module Python package!:
cookiecutter https://github.com/pydanny/cookiecutter-pymodule.git
You'll be prompted for some questions, answer them, and cookiecutter does a bunch of work for you. Once it's done, enter the new package:
cd <new-package-name>
Now, add your code to the just-generated module. To make sure your code is going into the correct place, look for the following text:
######################################
#
# Your code goes here
#
######################################
Once that's done we suggest you create a GitHub repo and put your new package there. Once it's properly secured there, write some tests in the tests.py module!
python setup.py register
This is what I want. It might not be what you want. Don't worry, you have options:
If you have differences in your preferred setup, I encourage you to fork this to create your own version. Or create your own; it doesn't strictly have to be a fork.
- * Once you have your own version working, let me know and I'll list it
- Similar Cookiecutter
Templates list above with a brief description.
- * It's up to you whether or not to rename your fork/own version. Do whatever
you think sounds good.
I also accept pull requests on this, if they're small, atomic, and if they make my own packaging experience better.