A command-line utility that creates projects from project templates.
Project description
Orbit
A command-line utility that creates projects from orbits (project templates), e.g. creating a Python package project from a Python package project template.
Table Of Contents
What is Orbit
A command-line utility that creates projects from orbit (project templates), e.g. creating a Python package project from a Python package project template.
Installation
Installing via pip
$ pip install orbit-client
Usage
- Cross-platform: Windows, Mac, and Linux are officially supported.
- You don't have to know/write Python code to use Cookiecutter.
- Works with Python 3.7, 3.8, 3.9, 3.10, 3.11
- Project templates can be in any programming language or markup format: Python, JavaScript, Ruby, CoffeeScript, RST, Markdown, CSS, HTML, you name it. You can use multiple languages in the same project template.
For users of existing templates
-
Simple command line usage:
# Create project from the orbit-pypackage.git repo template # You'll be prompted to enter values. # Then it'll create your Python package in the current working directory, # based on those values. $ orbit <repo url> # For the sake of brevity, repos on GitHub can just use the 'gh' prefix $ orbit gh:audreyfeldroy/orbit-pypackage
-
Use it at the command line with a local template:
# Create project in the current working directory, from the local # orbit-pypackage/ template $ orbit orbit-pypackage/
-
Or use it from Python:
from orbit.main import orbit # Create project from the orbit-pypackage/ template orbit('orbit-pypackage/') # Create project from the orbit-pypackage.git repo template orbit('<repo url>')
-
Unless you suppress it with
--no-input, you are prompted for input:- Prompts are the keys in
orbit.json. - Default responses are the values in
orbit.json. - Prompts are shown in order.
- Prompts are the keys in
-
Cross-platform support for
~/.orbitrcfiles:default_context: full_name: "haonv" email: "haonv@ftech.ai.com" github_username: "haonv" orbits_dir: "~/.orbits/"
-
You can use local orbits, or remote orbits directly from Git repos or Mercurial repos on Bitbucket.
-
Default context: specify key/value pairs that you want to be used as defaults whenever you generate a project.
-
Inject extra context with command-line arguments:
For template creators
-
Supports unlimited levels of directory nesting.
-
100% of templating is done with Jinja2.
-
Both, directory names and filenames can be templated. For example:
{{orbit.repo_name}}/{{orbit.repo_name}}/{{orbit.repo_name}}.py
-
Simply define your template variables in a
orbit.jsonfile. You can also add human-readable questions and choices that will be prompted to the user for each variable using the__prompts__key. Those human-readable questions supportsrichmarkup such as[bold yellow]this is bold and yellow[/]For example:{ "full_name": "Audrey Roy Greenfeld", "email": "audreyr@gmail.com", "project_name": "Complexity", "repo_name": "complexity", "project_short_description": "Refreshingly simple static site generator.", "release_date": "2013-07-10", "year": "2013", "version": "0.1.1", "linting": ["ruff", "flake8", "none"], "__prompts__": { "full_name": "Provide your [bold yellow]full name[/]", "email": "Provide your [bold yellow]email[/]", "linting": { "__prompt__": "Which [bold yellow]linting tool[/] do you want to use?", "ruff": "Ruff", "flake8": "Flake8", "none": "No linting tool" } } }
-
Pre- and post-generate hooks: Python or shell scripts to run before or after generating a project.
Author
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
File details
Details for the file orbit-client-1.1.0.tar.gz.
File metadata
- Download URL: orbit-client-1.1.0.tar.gz
- Upload date:
- Size: 28.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d204a76f08890f6a6067415f8f166bc0a06c4324d11e6b4beda6d67047745eb7
|
|
| MD5 |
4db7b0b6ce13fe445e02ccf43ab84feb
|
|
| BLAKE2b-256 |
9104ab43258125dc8c6e20307a19b99be44138623ea30933d5b2c32140327c97
|