A skeleton of a Python package with CLI and test suite included.
To use pyskel as the start of a new project, do the following, preferably in a virtual environment. Clone the repo.
git clone https://github.com/mapbox/pyskel myproject
cd myproject
Replace all occurrences of 'pyskel' with the name of your own project. (Note: the commands below require bash, find, and sed and are yet tested only on OS X.)
if [ -d pyskel ]; then find . -not -path './.git*' -type f -exec sed -i '' -e 's/pyskel/myproject/g' {} + ; fi
mv pyskel myproject
Then install in locally editable (-e
) mode and run the tests.
pip install -e .[test]
py.test
Finally, give the command line program a try.
myproject --help
myproject 4
To help prevent uncustomized forks of pyskel from being uploaded to PyPI, I've configured the setup's upload command to dry run. Make sure to remove this configuration from setup.cfg when you customize pyskel.
Please also note that the Travis-CI and Coveralls badge URLs and links in the README contain the string 'mapbox.' You'll need to change this to your own user or organization name and turn on the webhooks for your new project.
A post on the Mapbox blog has more information about this project: https://www.mapbox.com/blog/pyskel/.
Here are a few other tools for initializing Python projects.
- Paste Script's paster create is one that I've used for a long time.
- cookiecutter-pypackage is a Cookiecutter template for a Python package. Cookiecutter supports many languages, includes Travis configuration and much more.