Skip to content
Merged
96 changes: 96 additions & 0 deletions typer-cli-python/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# RP To-Do

**RP To-Do** is a command-line interface application built with [Typer](https://typer.tiangolo.com/) to help you manage your to-do list.

## Installation

To run **RP To-Do**, you need to run the following steps:

1. Download the application's source code to a `rptodo_project/` directory
2. Create a Python virtual environment and activate it

```sh
$ cd rptodo_project/
$ python -m venv ./venv
$ source venv/bin/activate
(venv) $
```

2. Install the dependencies

```sh
(venv) $ python -m pip install -r requirements.txt
```

3. Initialize the application

```sh
(venv) $ python -m rptodo init
```

This command asks you to introduce the file path to store the application's database. You can also accept the default file path by pressing Enter.

## Usage

Once you've download the source code and run the installation steps, you can run the following command to access the application's usage description:

```sh
$ python -m rptodo --help
Usage: rptodo [OPTIONS] COMMAND [ARGS]...

Options:
-v, --version Show the application's version and exit.
--install-completion Install completion for the current shell.
--show-completion Show completion for the current shell, to copy it or
customize the installation.

--help Show this message and exit.

Commands:
add Add a new to-do with a DESCRIPTION.
clear Remove all to-dos.
complete Complete a to-do by setting it as done using its TODO_ID.
init Initialize the to-do database.
list List all to-dos.
remove Remove a to-do using its TODO_ID.
```

You can also access the help message for specific commands by typing the command and then `--help`. For example, to display the help content for the `add` command, you can run the following:

```sh
$ python -m rptodo add --help
Usage: rptodo add [OPTIONS] DESCRIPTION...

Add a new to-do with a DESCRIPTION.

Arguments:
DESCRIPTION... [required]

Options:
-p, --priority INTEGER RANGE [default: 2]
--help Show this message and exit.
```

Calling `--help` on each command provides specific and useful information about how to use the command at hand.

## Features

**RP To-Do** has the following features:

| Command | Description |
| ------------------ | ------------------------------------------------------------ |
| `init` | Initializes the application's to-do database. |
| `add DESCRIPTION` | Adds a new to-do to the database with a `DESCRIPTION`. |
| `list` | Lists all the to-dos in the database. |
| `complete TODO_ID` | Completes a to-do by setting it as done using its `TODO_ID`. |
| `remove TODO_ID` | Removes a to-do from the database using its `TODO_ID`. |
| `clear` | Removes all the to-dos by clearing the database. |

## Release History

- 0.1.0
- A work in progress

## About the Author

Leodanis Pozo Ramos - Email: leodanis@realpython.com
96 changes: 96 additions & 0 deletions typer-cli-python/source_code_final/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# RP To-Do

**RP To-Do** is a command-line interface application built with [Typer](https://typer.tiangolo.com/) to help you manage your to-do list.

## Installation

To run **RP To-Do**, you need to run the following steps:

1. Download the application's source code to a `rptodo_project/` directory
2. Create a Python virtual environment and activate it

```sh
$ cd rptodo_project/
$ python -m venv ./venv
$ source venv/bin/activate
(venv) $
```

2. Install the dependencies

```sh
(venv) $ python -m pip install -r requirements.txt
```

3. Initialize the application

```sh
(venv) $ python -m rptodo init
```

This command asks you to introduce the file path to store the application's database. You can also accept the default file path by pressing enter.

## Usage

Once you've download the source code and run the installation steps, you can run the following command to access the application's usage description:

```sh
$ python -m rptodo --help
Usage: rptodo [OPTIONS] COMMAND [ARGS]...

Options:
-v, --version Show the application's version and exit.
--install-completion Install completion for the current shell.
--show-completion Show completion for the current shell, to copy it or
customize the installation.

--help Show this message and exit.

Commands:
add Add a new to-do with a DESCRIPTION.
clear Remove all to-dos.
complete Complete a to-do by setting it as done using its TODO_ID.
init Initialize the to-do database.
list List all to-dos.
remove Remove a to-do using its TODO_ID.
```

You can also access the help message for specific commands by typing the command and then `--help`. For example, to display the help content for the `add` command, you can run the following:

```sh
$ python -m rptodo add --help
Usage: rptodo add [OPTIONS] DESCRIPTION...

Add a new to-do with a DESCRIPTION.

Arguments:
DESCRIPTION... [required]

Options:
-p, --priority INTEGER RANGE [default: 2]
--help Show this message and exit.
```

Calling `--help` on each command provides specific and useful information about how to use the command at hand.

## Features

**RP To-Do** has the following features:

| Command | Description |
| ------------------ | ------------------------------------------------------------ |
| `init` | Initializes the application's to-do database. |
| `add DESCRIPTION` | Adds a new to-do to the database with a `DESCRIPTION`. |
| `list` | Lists all the to-dos in the database. |
| `complete TODO_ID` | Completes a to-do by setting it as done using its `TODO_ID`. |
| `remove TODO_ID` | Removes a to-do from the database using its `TODO_ID`. |
| `clear` | Removes all the to-dos by clearing the database. |

## Release History

- 0.1.0
- A work in progress

## About the Author

Leodanis Pozo Ramos - Email: leodanis@realpython.com
4 changes: 4 additions & 0 deletions typer-cli-python/source_code_final/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
typer==0.3.2
colorama==0.4.4
shellingham==1.4.0
pytest==6.2.4
22 changes: 22 additions & 0 deletions typer-cli-python/source_code_final/rptodo/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
"""Top-level package for RP To-Do."""

__app_name__ = "rptodo"
__version__ = "0.1.0"

(
SUCCESS,
DIR_ERROR,
FILE_ERROR,
DB_READ_ERROR,
DB_WRITE_ERROR,
JSON_ERROR,
ID_ERROR,
) = range(7)

ERRORS = {
DIR_ERROR: "config directory error",
FILE_ERROR: "config file error",
DB_READ_ERROR: "database read error",
DB_WRITE_ERROR: "database write error",
ID_ERROR: "to-do id error",
}
11 changes: 11 additions & 0 deletions typer-cli-python/source_code_final/rptodo/__main__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
"""RP To-Do entry point script."""

from rptodo import cli, __app_name__


def main():
cli.app(prog_name=__app_name__)


if __name__ == "__main__":
main()
Loading