Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mapbox/pyskel

Skeleton of a Python package
https://github.com/mapbox/pyskel

imagery satellite

Last synced: about 1 month ago
JSON representation

Skeleton of a Python package

Awesome Lists containing this project

README

        

pyskel
======

.. image:: https://travis-ci.org/mapbox/pyskel.svg
:target: https://travis-ci.org/mapbox/pyskel

.. image:: https://coveralls.io/repos/mapbox/pyskel/badge.png
:target: https://coveralls.io/r/mapbox/pyskel

A skeleton of a Python package with CLI and test suite included.

.. image:: https://farm4.staticflickr.com/3951/15672691531_3037819613_o_d.png

Customization quick start
-------------------------

To use pyskel as the start of a new project, do the following, preferably in
a virtual environment. Clone the repo.

.. code-block:: console

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.)

.. code-block:: console

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.

.. code-block:: console

pip install -e .[test]
py.test

Finally, give the command line program a try.

.. code-block:: console

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/.

See also
--------

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.