Skip to main content

An utility for configuring python projects from jinja templates.

Project description

fig-py is a command line tool for generating skeletons of python packages from a directory of jinja templates.

The interface is easy:

fig -p my-new-project -g my-github-user-name

This will initialize a highly-opinionated github repository, with your command line args inserted in relevant places throughout the following directory tree:

my-new-project
├── README.md
├── build_docs.sh
├── docs
│   ├── Makefile
│   ├── _static
│   │   └── logo.png
│   ├── _themes
│   │   ├── flask_theme_support.py
│   │   └── kr
│   │       ├── autotoc.html
│   │       ├── layout.html
│   │       ├── relations.html
│   │       ├── sidebarlogo.html
│   │       ├── static
│   │       │   └── flasky.css_t
│   │       └── theme.conf
│   ├── conf.py
│   ├── index.rst
│   └── install.rst
├── requirements.txt
├── setup.py
├── src
│   └── __init__.py
└── tests
    ├── README.md
    ├── __init__.py
    ├── fixtures
    │   └── README.md
    └── tests.py

This default template comes with nose for testing, sphinx for docs (with Kenneth Reitz’s Template), travis-ci for continuous integration and pandoc for rendering your markdown README.md on py-pi.

You can build and serve the docs by running build.sh.

Customizing

If you’d like, you can also create your own folder of jinja templates and pass it in as follows:

fig -p my-new-project -g my-github-user-name -t path/to/my-template/

You can also pass in a series of custom json key-value pairs if you want to add extra context:

fig -p my-new-project -g my-github-user-name -t my-template/ -k "{'key1':'value1', 'key2':'value2'}"

These values can be inserted anywhere in your custom templates using standard jinja syntax:

{{ key1 }}, {{ key2 }}

Heres the full cli specification:

usage: fig [-h] [-p PROJECT_NAME] [-g GITHUB_USER] [-a AUTHOR] [-e EMAIL]
              [-d DESCRIPTION] [-t TEMPLATE_PATH] [-k KWARGS]

Initialize a python repository.

optional arguments:
  -h, --help            show this help message and exit
  -p PROJECT_NAME, --project-name PROJECT_NAME
                        The name of your project.
  -g GITHUB_USER, --github-user GITHUB_USER
                        Your github user name.
  -a AUTHOR, --author AUTHOR
                        Your name.
  -e EMAIL, --email EMAIL
                        Your email.
  -d DESCRIPTION, --description DESCRIPTION
                        The projects' description.
  -t TEMPLATE_PATH, --template TEMPLATE_PATH
                        A directory of custom templates
  -k KWARGS, --kwargs KWARGS
                        A json string or a .json / .yml filepath of custom
                        kwargs

Installation

pip install fig-py

TODO: * Don’t rely on os.system() * create repository on github * activate virtualenv * webhooks for read the docs / s3 upload for data / binaries.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fig-py-0.0.4.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

fig-py-0.0.4.macosx-10.9-intel.exe (127.7 kB view details)

Uploaded Source

File details

Details for the file fig-py-0.0.4.tar.gz.

File metadata

  • Download URL: fig-py-0.0.4.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for fig-py-0.0.4.tar.gz
Algorithm Hash digest
SHA256 71511b6c6237198a4385f3d6560a4552b03853bde1b015f3c1f1120f9b4a8d2e
MD5 80bc809a1f1991c3733717dda97825cf
BLAKE2b-256 380b15f7eeae21e9040ec1312456437d9176c0579196563413e6260538b3c0f5

See more details on using hashes here.

File details

Details for the file fig-py-0.0.4.macosx-10.9-intel.exe.

File metadata

File hashes

Hashes for fig-py-0.0.4.macosx-10.9-intel.exe
Algorithm Hash digest
SHA256 2411849001d601ca49f568ad41d7f3c205a82630935b686a9f8aff8638a21052
MD5 296c3401ccf8082537682c450e3017da
BLAKE2b-256 ca3f6a012bcc649eb8712190f8113265da9be25100d5a8c83354acd6af03f5af

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page