##################
4.7 Your first CLI
##################
=========
Libraries
=========
For building a ``cli`` (Command Line Interface) you can write pure Python (no external libraries) or use a library like:
- `Click `_
- `Invoke `_
- `Tox `_
- `Typer `_
- `Python Fire `_
- `Argparse `_
===============
Getting started
===============
1. Install ``click`` library.
.. code-block:: bash
pip install click
2. Create the directory and the file structure.
::
cli # directory project
├── devops_cli # directory package
│ ├── __init__.py
│ └── devops_cli.py # your script
└── setup.py
.. note::
The Python interpreter is informed that a directory contains code for a Python module by the ``__init__.py`` file.
A file named ``__init__.py`` may be empty.
You cannot import modules into your project from another location without one.
3. Write your first ``cli``.
.. code-block:: python
import click
import psutil
@click.group()
def cli():
"""Simple command line tool to extract system information."""
@cli.command("cpu", short_help="Show CPU")
def cpu():
"""Shows CPU Resources."""
click.echo(psutil.cpu_times())
@cli.command("disk", short_help="Show Disk")
def disk():
"""Shows Disk Status."""
click.echo(psutil.disk_partitions())