Metadata-Version: 2.1
Name: craft-cli
Version: 0.4.0
Summary: "Command Line Interface"
Home-page: https://github.com/canonical/craft-cli
Author: Canonical Ltd.
Author-email: snapcraft@lists.snapcraft.io
License: GNU Lesser General Public License v3 (LGPLv3)
Project-URL: Documentation, https://craft-cli.readthedocs.io/en/latest/
Project-URL: Source, https://github.com/canonical/craft-cli.git
Project-URL: Issues, https://github.com/canonical/craft-cli/issues
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: platformdirs
Requires-Dist: pydantic
Requires-Dist: pyyaml
Requires-Dist: pywin32 ; sys_platform == "win32"
Provides-Extra: dev
Requires-Dist: autoflake ; extra == 'dev'
Requires-Dist: black ; extra == 'dev'
Requires-Dist: codespell ; extra == 'dev'
Requires-Dist: coverage ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: isort ; extra == 'dev'
Requires-Dist: mypy ; extra == 'dev'
Requires-Dist: pydocstyle ; extra == 'dev'
Requires-Dist: pylint ; extra == 'dev'
Requires-Dist: pylint-fixme-info ; extra == 'dev'
Requires-Dist: pylint-pytest ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: pytest-mock ; extra == 'dev'
Requires-Dist: pytest-subprocess ; extra == 'dev'
Requires-Dist: sphinx ; extra == 'dev'
Requires-Dist: sphinx-autodoc-typehints ; extra == 'dev'
Requires-Dist: sphinx-pydantic ; extra == 'dev'
Requires-Dist: sphinx-rtd-theme ; extra == 'dev'
Requires-Dist: tox ; extra == 'dev'
Requires-Dist: twine ; extra == 'dev'
Requires-Dist: types-pyyaml ; extra == 'dev'
Requires-Dist: types-requests ; extra == 'dev'
Requires-Dist: types-setuptools ; extra == 'dev'
Requires-Dist: wheel ; extra == 'dev'
Provides-Extra: doc
Requires-Dist: sphinx ; extra == 'doc'
Requires-Dist: sphinx-autodoc-typehints ; extra == 'doc'
Requires-Dist: sphinx-pydantic ; extra == 'doc'
Requires-Dist: sphinx-rtd-theme ; extra == 'doc'
Provides-Extra: release
Requires-Dist: twine ; extra == 'release'
Requires-Dist: wheel ; extra == 'release'
Provides-Extra: test
Requires-Dist: black ; extra == 'test'
Requires-Dist: codespell ; extra == 'test'
Requires-Dist: coverage ; extra == 'test'
Requires-Dist: flake8 ; extra == 'test'
Requires-Dist: isort ; extra == 'test'
Requires-Dist: mypy ; extra == 'test'
Requires-Dist: pydocstyle ; extra == 'test'
Requires-Dist: pylint ; extra == 'test'
Requires-Dist: pylint-fixme-info ; extra == 'test'
Requires-Dist: pylint-pytest ; extra == 'test'
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-mock ; extra == 'test'
Requires-Dist: pytest-subprocess ; extra == 'test'
Requires-Dist: tox ; extra == 'test'
Requires-Dist: types-pyyaml ; extra == 'test'
Requires-Dist: types-requests ; extra == 'test'
Requires-Dist: types-setuptools ; extra == 'test'

# Craft CLI

A Command Line Client builder that follows the [Canonical's Guidelines for a Command Line
Interface](https://discourse.ubuntu.com/c/design/cli-guidelines/62).

The library provides two main functionalities: 

- a framework to define and execute application commands, which involves argument parsing and the provision of help texts

- infrastructure to handle the terminal and present all the outputs for the different application needs


# Documentation

The [documentation](https://craft-cli.readthedocs.io) is available on Read The Docs.


# Setting up the environment

Install at system level:

    sudo snap install pyright

Create a virtual environment, activate it, and install developer dependencies:

    python3 -m venv env
    source env/bin/activate
    pip install .[dev]

That's all.


# Contributing

A `Makefile` is provided for easy interaction with the project. To see
all available options run:

    make help


## Running tests

To run all tests in the suite run:

    make tests


## Verifying documentation changes

To locally verify documentation changes run:

    make docs

After running, newly generated documentation shall be available at
`./docs/_build/html/`.


# License

Free software: GNU Lesser General Public License v3


