Skip to main content

A command-line utility that creates projects from project templates.

Project description

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

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

orbit-client-1.1.0.tar.gz (28.5 kB view details)

Uploaded Source

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

Hashes for orbit-client-1.1.0.tar.gz
Algorithm Hash digest
SHA256 d204a76f08890f6a6067415f8f166bc0a06c4324d11e6b4beda6d67047745eb7
MD5 4db7b0b6ce13fe445e02ccf43ab84feb
BLAKE2b-256 9104ab43258125dc8c6e20307a19b99be44138623ea30933d5b2c32140327c97

See more details on using hashes here.

Supported by

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