orbit-client


Nameorbit-client JSON
Version 1.1.0 PyPI version JSON
download
home_pagehttps://gitlab.ftech.ai/nlp/va/template/orbit
SummaryA command-line utility that creates projects from project templates.
upload_time2024-02-16 05:02:50
maintainer
docs_urlNone
authorhaonv
requires_python>=3.7
licenseApache License 2.0
keywords orbitpython projects project templates jinja2 skeleton scaffolding project directory package packaging
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <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"
}
        
Elapsed time: 0.33116s