Skip to main content

orbit Logo

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.
  • Cross-platform support for ~/.orbitrc files:

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

Metadata

Release files for orbit-client 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for orbit-client 1.1.0
File Size Uploaded
orbit-client-1.1.0.tar.gz 28.5 kB Details

Release files / orbit-client-1.1.0.tar.gz

Download URL orbit-client-1.1.0.tar.gz
Size 28.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d204a76f08890f6a6067415f8f166bc0a06c4324d11e6b4beda6d67047745eb7
BLAKE2b-256 checksum
How to use checksums
9104ab43258125dc8c6e20307a19b99be44138623ea30933d5b2c32140327c97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.12

Release history Release notifications | RSS feed

This release

1.1.0 This release

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page