A lightweight package for creating Python project templates.
Project description
Under Construction
Hello and welcome to the Inception Tools project!
This project is currently under construction. Please be patient and check back periodically to see progress. In the meantime, you can see where the project is headed by checking out the documentation (also in progress) below.
The goal of this project is to create, foster, and disseminate solid conventions for Python project structure through the propagation and reuse of project archetypes, developed and submitted by the community, which can be used as templates for automatically setting up new Python projects.
Documentation
Incept a new Python project, ready to go, with a single command!
Inception Tools is a command-line application application designed to incept new software projects (in particular, Python-based projects) using a set of standardized project archetypes. It also provides for users to create new archetype and even install them using standardized packaging tools.
The base inception_tools package provides:
Simple command-line invocation for creating shell Python projects, parameterized through a configuration file.
- A set of standard archetypes for common Python project types:
- application
Creates a project shell geared toward developing and publishing a Python-based command-line application.
- library
Creates a project shell geared specifically toward developing and publishing a Python library
- archetype
Creates a project shell geared specifically toward developing and publishing a new inception-tools archetype library.
Each standard archetype creates a shell project structure with files, directories, class and function stubs, completely set up and ready to publication to PyPI using a standardized set of Makefile targets.
An API which makes it easy to create, store, package and publish archetypes to suite your own needs. You can either keep your own archetypes local or publish them for community use.
Python Package Index:
https://pypi.org/project/inception-tools/
GitHub Repository:
Installation
Download and install the latest version of this application from the Python package index (PyPI) as follows:
pip install inception-tools
Note that inception-tools has dependencies on the following packages:
click
jinja2
These should be automatically installed by pip using the command-line above.
If you’d like to use the set of extended archetypes, you can also download and install the inception-tools-archetypes package:
pip install inception-tools-archetypes
Usage
Once Inception Tools has been installed, you can create a new project shell as follows:
it incept package_name [project_root]
This will create a new project (using the standard application archetype) under the directory project_root using additional parameters stored in file inception-tools.cfg:
<project_root>/ docs/ <package_name>/ __init__.py main.py scripts/ tests/ __init__.py end-to-end/ __init__.py integration/ __init__.py unit/ __init__.py LICENSE Makefile Pipfile README.rst setup.cfg setup.py
- package_name (required)
The package name that will used for your new project, e.g. inception_tools. This will be used to create for the name of the package, for the name of a stub entry point files, and in the names of test modules. It will also be used as the relative path for the project_root argument in the event that it is omitted (see below).
- [project_root] (optional) default: package_name
The path to the directory under which your project should be installed, e.g. inception-tools.
Example installing to a directory my_package in the current working directory:
it my_package
Example installing to a directory called my_project in the user’s home directory:
it my_package ~/my_project
The following options are also available:
- --author_name (optional)
The name of the package author, e.g. ‘Jane Doe’.
- --author_email (optional)
The email address of the author, e.g. ‘jane.doe@inception-tools.org’.
- --org_name (optional)
The name of the organization sponsoring development for the project, e.g. ‘inception-tools’.
License
inception-tools is released under the Apache Software License - see the files LICENSE for further details.
Bugs, Contribution, and Feedback
Contributions and feedback are welcome. Contributions can be made by opening a pull request at the inception-tools repository and tagging @avanherick for review. Please see the Development section of this document for code style and branching guidelines.
This project was created to fill what looked like a lack of standardized conventions practices for structuring Python projects, and out of the desire to avoid the need to manually create the same directory and file structures over and over again.
If you come across this project and know of other project which accomplish similar goals, or of documented standards around Python project structure, we would welcome hearing about them.
Please submit feedback, bugs, feature requests, and code changes using GitHub at: http://github.com/inception-tools/inception-tools
Development
- Repository Management:
Inception Tools manages its repository using the GitFlow model.
- Code style:
Inception Tools code should adhere to the PEP 8 guidelines.
- Versioning:
Inception Tools uses semantic versioning and adheres to the guidelines specified here.
- CI/CD:
All builds are automated through GitHub actions.
Development builds are executed against the develop branch.
Beta builds are executed with each push to the master branch.
Release builds are triggered by the creation of a release through GitHub.
Changes
v0.1.0
Initial public version
- author:
Andrew van Herick
- email:
- date:
2020-06-29
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file inception-tools-0.0.7.dev20220102.tar.gz
.
File metadata
- Download URL: inception-tools-0.0.7.dev20220102.tar.gz
- Upload date:
- Size: 20.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 558ac211cc341bf58c1b977641387276104aadfd4f013c29f1bd38c8bca27c15 |
|
MD5 | 6177f0b0bc607e138c73f969fb01a018 |
|
BLAKE2b-256 | 55ade265e1cf8a32d5e60b5f69e5b8b412d32e479251611088ca5a220d91d916 |
File details
Details for the file inception_tools-0.0.7.dev20220102-py3-none-any.whl
.
File metadata
- Download URL: inception_tools-0.0.7.dev20220102-py3-none-any.whl
- Upload date:
- Size: 63.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | de22f22fa277c064a172d5a8c53da80c13df20b33d5e5ef23d14a86f4fbc2b5b |
|
MD5 | 5c5f3b9dd66d726db22ea63576220437 |
|
BLAKE2b-256 | 74a1c64f0e4698ff46ab641995d0fb888dbb1102824536a86822c608631a9c53 |