<h1 align="center">
<img alt="orbit Logo" width="200px" src="https://raw.githubusercontent.com/orbit/orbit/3ac078356adf5a1a72042dfe72ebfa4a9cd5ef38/logo/orbit_medium.png">
</h1>
# 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](#what-is-orbit)
- [Installation](#installation)
- [Installing via pip](#with-pip)
- [Installing from source](#from-source)
- [Usage](#usage)
- [Contributions](#contributing)
## 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
```bash
$ 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:
```bash
# 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:
```bash
# Create project in the current working directory, from the local
# orbit-pypackage/ template
$ orbit orbit-pypackage/
```
- Or use it from Python:
```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.
- Cross-platform support for `~/.orbitrc` files:
```yaml
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:
```py
{{orbit.repo_name}}/{{orbit.repo_name}}/{{orbit.repo_name}}.py
```
- Simply define your template variables in a `orbit.json` file. 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
supports [`rich` markup](https://rich.readthedocs.io/en/stable/markup.html) such
as `[bold yellow]this is bold and yellow[/]`
For example:
```json
{
"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
Raw data
{
"_id": null,
"home_page": "https://gitlab.ftech.ai/nlp/va/template/orbit",
"name": "orbit-client",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "orbitPython,projects,project templates,Jinja2,skeleton,scaffolding,project directory,package,packaging",
"author": "haonv",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/91/04/ab43258125dc8c6e20307a19b99be44138623ea30933d5b2c32140327c97/orbit-client-1.1.0.tar.gz",
"platform": null,
"description": "<h1 align=\"center\">\n <img alt=\"orbit Logo\" width=\"200px\" src=\"https://raw.githubusercontent.com/orbit/orbit/3ac078356adf5a1a72042dfe72ebfa4a9cd5ef38/logo/orbit_medium.png\">\n</h1>\n\n# Orbit\n\nA command-line utility that creates projects from **orbits** (project templates), e.g. creating a Python package project\nfrom a Python package project template.\n\n## Table Of Contents\n\n- [What is Orbit](#what-is-orbit)\n- [Installation](#installation)\n - [Installing via pip](#with-pip)\n - [Installing from source](#from-source)\n- [Usage](#usage)\n- [Contributions](#contributing)\n\n## What is Orbit\n\nA command-line utility that creates projects from orbit (project templates), e.g. creating a Python package project from\na Python package project template.\n\n## Installation\n\n### Installing via pip\n\n```bash\n$ pip install orbit-client\n```\n\n## Usage\n\n- Cross-platform: Windows, Mac, and Linux are officially supported.\n- You don't have to know/write Python code to use Cookiecutter.\n- Works with Python 3.7, 3.8, 3.9, 3.10, 3.11\n- Project templates can be in any programming language or markup format:\n Python, JavaScript, Ruby, CoffeeScript, RST, Markdown, CSS, HTML, you name it.\n You can use multiple languages in the same project template.\n\n### For users of existing templates\n\n- Simple command line usage:\n\n ```bash\n # Create project from the orbit-pypackage.git repo template\n # You'll be prompted to enter values.\n # Then it'll create your Python package in the current working directory,\n # based on those values.\n $ orbit <repo url>\n # For the sake of brevity, repos on GitHub can just use the 'gh' prefix\n $ orbit gh:audreyfeldroy/orbit-pypackage\n ```\n\n- Use it at the command line with a local template:\n\n ```bash\n # Create project in the current working directory, from the local\n # orbit-pypackage/ template\n $ orbit orbit-pypackage/\n ```\n\n- Or use it from Python:\n\n ```python\n from orbit.main import orbit\n\n # Create project from the orbit-pypackage/ template\n orbit('orbit-pypackage/')\n\n # Create project from the orbit-pypackage.git repo template\n orbit('<repo url>')\n ```\n\n- Unless you suppress it with `--no-input`, you are prompted for input:\n - Prompts are the keys in `orbit.json`.\n - Default responses are the values in `orbit.json`.\n - Prompts are shown in order.\n- Cross-platform support for `~/.orbitrc` files:\n\n ```yaml\n default_context:\n full_name: \"haonv\"\n email: \"haonv@ftech.ai.com\"\n github_username: \"haonv\"\n orbits_dir: \"~/.orbits/\"\n ```\n\n\n- You can use local orbits, or remote orbits directly from Git repos or Mercurial repos on Bitbucket.\n- Default context: specify key/value pairs that you want to be used as defaults whenever you generate a project.\n- Inject extra context with command-line arguments:\n\n### For template creators\n\n- Supports unlimited levels of directory nesting.\n- 100% of templating is done with Jinja2.\n- Both, directory names and filenames can be templated.\n For example:\n\n ```py\n {{orbit.repo_name}}/{{orbit.repo_name}}/{{orbit.repo_name}}.py\n ```\n- Simply define your template variables in a `orbit.json` file. You can also add human-readable questions and choices\n that will be prompted to the user for each variable using the `__prompts__` key. Those human-readable questions\n supports [`rich` markup](https://rich.readthedocs.io/en/stable/markup.html) such\n as `[bold yellow]this is bold and yellow[/]`\n For example:\n\n ```json\n {\n \"full_name\": \"Audrey Roy Greenfeld\",\n \"email\": \"audreyr@gmail.com\",\n \"project_name\": \"Complexity\",\n \"repo_name\": \"complexity\",\n \"project_short_description\": \"Refreshingly simple static site generator.\",\n \"release_date\": \"2013-07-10\",\n \"year\": \"2013\",\n \"version\": \"0.1.1\",\n \"linting\": [\"ruff\", \"flake8\", \"none\"],\n \"__prompts__\": {\n \"full_name\": \"Provide your [bold yellow]full name[/]\",\n \"email\": \"Provide your [bold yellow]email[/]\",\n \"linting\": {\n \"__prompt__\": \"Which [bold yellow]linting tool[/] do you want to use?\",\n \"ruff\": \"Ruff\",\n \"flake8\": \"Flake8\",\n \"none\": \"No linting tool\"\n }\n }\n }\n ```\n- Pre- and post-generate hooks: Python or shell scripts to run before or after generating a project.\n\n## Author\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "A command-line utility that creates projects from project templates.",
"version": "1.1.0",
"project_urls": {
"Homepage": "https://gitlab.ftech.ai/nlp/va/template/orbit"
},
"split_keywords": [
"orbitpython",
"projects",
"project templates",
"jinja2",
"skeleton",
"scaffolding",
"project directory",
"package",
"packaging"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9104ab43258125dc8c6e20307a19b99be44138623ea30933d5b2c32140327c97",
"md5": "4db7b0b6ce13fe445e02ccf43ab84feb",
"sha256": "d204a76f08890f6a6067415f8f166bc0a06c4324d11e6b4beda6d67047745eb7"
},
"downloads": -1,
"filename": "orbit-client-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "4db7b0b6ce13fe445e02ccf43ab84feb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 28523,
"upload_time": "2024-02-16T05:02:50",
"upload_time_iso_8601": "2024-02-16T05:02:50.474787Z",
"url": "https://files.pythonhosted.org/packages/91/04/ab43258125dc8c6e20307a19b99be44138623ea30933d5b2c32140327c97/orbit-client-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-16 05:02:50",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "orbit-client"
}