# todo-client
[![PyPI version](https://badge.fury.io/py/todo-client.svg)](https://badge.fury.io/py/todo-client)
[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
> Simple To-Do List Manager
A simple command-line interface (CLI) application to manage your to-do list.
## Table of Contents
- [todo-client](#todo-client)
- [Features](#features)
- [Requirements](#requirements)
- [Setup](#setup)
- [Usage](#usage)
- [Commands](#commands)
- [Installation](#installation)
- [Usage](#usage)
- [Build Instructions](#build-instructions)
- [Commands](#commands)
- [Changelog](#changelog)
- [Updating the Changelog](#updating-the-changelog)
- [Contributing](#contributing)
- [License](#license)
## Features
- Add a new task
- Remove a task by index
- Mark a task as done by index
- List all tasks
- Clear all tasks
- Optionally specify the to-do list file
- Enter REPL mode
## Requirements
- Python 3.7+
- `make` utility
## Setup
1. Clone the repository:
```bash
git clone https://github.com/rmkane/todo-cli.git
cd todo-cli
```
2. Create a virtual environment and install dependencies:
```bash
./install.sh
```
## Usage
The CLI supports the following commands:
```bash
todo-cli {add,remove,list,clear,done} [--file FILE] [--repl]
```
### Commands
- **add**: Add a new task
```bash
todo add "Your new task"
```
- **remove**: Remove a task by index
```bash
todo remove 1
```
- **done**: Mark a task as done by index
```bash
todo done 1
```
- **list**: List all tasks
```bash
todo list
```
- **clear**: Clear all tasks
```bash
todo clear
```
### Optional Arguments
- **--file FILE**: Specify the to-do list file
```bash
todo list --file mytasks.txt
```
- **--repl**: Enter REPL (Read-Eval-Print Loop) mode
```bash
todo --repl
```
## Installation
To install this package, you can clone the repository using the following command:
```shell
git clone https://github.com/rmkane/packaging_tutorial.git
```
To install from PyPI:
```shell
pip install todo-client
```
To install locally:
```shell
make install # Install
.venv/bin/todo # Run
```
## Usage
Here are some examples of how to use this package:
```python
from todo_client.example import add_one
print(add_one(1)) # 2
```
## Build Instructions
This project uses a Makefile for managing build tasks. Here are some of the commands you can use:
- `make all`: Default target, sets up the virtual environment and runs the build.
- `make create_venv`: Creates a virtual environment and installs Poetry.
- `make activate`: Activates the virtual environment.
- `make install_deps`: Installs project dependencies using Poetry.
- `make build`: Sets up the virtual environment, installs dependencies, and runs the build.
- `make publish`: Builds the project and uploads it to TestPyPI.
- `make test`: Runs tests using pytest.
- `make format`: Formats code using black.
- `make apidoc`: Generates Sphinx `.rst` files.
- `make docs`: Builds Sphinx documentation.
- `make clean`: Removes build artifacts.
- `make clean_all`: Removes the virtual environment, build artifacts, and `__pycache__` directories.
- `make help`: Shows available make targets.
Remember to run `source .venv/bin/activate` to activate the virtual environment before running the build commands.
## Changelog
See [CHANGELOG.md](CHANGELOG.md) for details.
### Updating the Changelog
To update the changelog, please use the following format:
```markdown
## [Unreleased]
### Added
- New features that have been added since the last release
### Changed
- Changes to existing functionality
### Deprecated
- Features that will be removed in upcoming releases
### Removed
- Features that have been removed
### Fixed
- Any bug fixes
### Security
- Any security enhancements
```
## Contributing
We welcome contributions to this project! To contribute:
1. Fork this repository
2. Create your feature branch (`git checkout -b feature/yourFeature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin feature/yourFeature`)
5. Create a new [Pull Request](https://github.com/rmkane/packaging_tutorial/pulls)
## License
This project is licensed under the MIT license - see the [LICENSE](LICENSE) file for details.
Raw data
{
"_id": null,
"home_page": "https://github.com/rmkane/todo-client",
"name": "todo-client",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "todo, client, cli, repl",
"author": "Ryan Kane",
"author_email": "rmkane@proton.me",
"download_url": "https://files.pythonhosted.org/packages/11/07/f3538c317a1558404e7a2430f2d0802243d332fbca58994a05a09795016b/todo_client-0.1.0.tar.gz",
"platform": null,
"description": "# todo-client\n\n[![PyPI version](https://badge.fury.io/py/todo-client.svg)](https://badge.fury.io/py/todo-client)\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\n> Simple To-Do List Manager\n\nA simple command-line interface (CLI) application to manage your to-do list.\n\n## Table of Contents\n\n- [todo-client](#todo-client)\n - [Features](#features)\n - [Requirements](#requirements)\n - [Setup](#setup)\n - [Usage](#usage)\n - [Commands](#commands)\n - [Installation](#installation)\n - [Usage](#usage)\n - [Build Instructions](#build-instructions)\n - [Commands](#commands)\n - [Changelog](#changelog)\n - [Updating the Changelog](#updating-the-changelog)\n - [Contributing](#contributing)\n - [License](#license)\n\n## Features\n\n- Add a new task\n- Remove a task by index\n- Mark a task as done by index\n- List all tasks\n- Clear all tasks\n- Optionally specify the to-do list file\n- Enter REPL mode\n\n## Requirements\n\n- Python 3.7+\n- `make` utility\n\n## Setup\n\n1. Clone the repository:\n ```bash\n git clone https://github.com/rmkane/todo-cli.git\n cd todo-cli\n ```\n\n2. Create a virtual environment and install dependencies:\n ```bash\n ./install.sh\n ```\n\n## Usage\n\nThe CLI supports the following commands:\n\n```bash\ntodo-cli {add,remove,list,clear,done} [--file FILE] [--repl]\n```\n\n### Commands\n\n- **add**: Add a new task\n ```bash\n todo add \"Your new task\"\n ```\n\n- **remove**: Remove a task by index\n ```bash\n todo remove 1\n ```\n\n- **done**: Mark a task as done by index\n ```bash\n todo done 1\n ```\n\n- **list**: List all tasks\n ```bash\n todo list\n ```\n\n- **clear**: Clear all tasks\n ```bash\n todo clear\n ```\n\n### Optional Arguments\n\n- **--file FILE**: Specify the to-do list file\n ```bash\n todo list --file mytasks.txt\n ```\n\n- **--repl**: Enter REPL (Read-Eval-Print Loop) mode\n ```bash\n todo --repl\n ```\n\n## Installation\n\nTo install this package, you can clone the repository using the following command:\n\n```shell\ngit clone https://github.com/rmkane/packaging_tutorial.git\n```\n\nTo install from PyPI:\n\n```shell\npip install todo-client\n```\n\nTo install locally:\n\n```shell\nmake install # Install\n.venv/bin/todo # Run\n```\n\n## Usage\n\nHere are some examples of how to use this package:\n\n```python\nfrom todo_client.example import add_one\n\nprint(add_one(1)) # 2\n```\n\n## Build Instructions\n\nThis project uses a Makefile for managing build tasks. Here are some of the commands you can use:\n\n- `make all`: Default target, sets up the virtual environment and runs the build.\n- `make create_venv`: Creates a virtual environment and installs Poetry.\n- `make activate`: Activates the virtual environment.\n- `make install_deps`: Installs project dependencies using Poetry.\n- `make build`: Sets up the virtual environment, installs dependencies, and runs the build.\n- `make publish`: Builds the project and uploads it to TestPyPI.\n- `make test`: Runs tests using pytest.\n- `make format`: Formats code using black.\n- `make apidoc`: Generates Sphinx `.rst` files.\n- `make docs`: Builds Sphinx documentation.\n- `make clean`: Removes build artifacts.\n- `make clean_all`: Removes the virtual environment, build artifacts, and `__pycache__` directories.\n- `make help`: Shows available make targets.\n\nRemember to run `source .venv/bin/activate` to activate the virtual environment before running the build commands.\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for details.\n\n### Updating the Changelog\n\nTo update the changelog, please use the following format:\n\n```markdown\n## [Unreleased]\n\n### Added\n\n- New features that have been added since the last release\n\n### Changed\n\n- Changes to existing functionality\n\n### Deprecated\n\n- Features that will be removed in upcoming releases\n\n### Removed\n\n- Features that have been removed\n\n### Fixed\n\n- Any bug fixes\n\n### Security\n\n- Any security enhancements\n```\n\n## Contributing\n\nWe welcome contributions to this project! To contribute:\n\n1. Fork this repository\n2. Create your feature branch (`git checkout -b feature/yourFeature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin feature/yourFeature`)\n5. Create a new [Pull Request](https://github.com/rmkane/packaging_tutorial/pulls)\n\n## License\n\nThis project is licensed under the MIT license - see the [LICENSE](LICENSE) file for details.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A todo client with CLI and REPL interfaces.",
"version": "0.1.0",
"project_urls": {
"Documentation": "https://github.com/rmkane/todo-client",
"Homepage": "https://github.com/rmkane/todo-client",
"Repository": "https://github.com/rmkane/todo-client"
},
"split_keywords": [
"todo",
" client",
" cli",
" repl"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "85e64a643aa69abfab9e5558f28f60721f650d66f248a6cf9cf0ef6662a7dd8e",
"md5": "bf8fb04f40341e92f62b52d30b675363",
"sha256": "8450b974e77a96473bc87628106cbfbaac41f3fc19adc94218985fb5e760ff9a"
},
"downloads": -1,
"filename": "todo_client-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bf8fb04f40341e92f62b52d30b675363",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 10152,
"upload_time": "2024-06-13T00:21:29",
"upload_time_iso_8601": "2024-06-13T00:21:29.088496Z",
"url": "https://files.pythonhosted.org/packages/85/e6/4a643aa69abfab9e5558f28f60721f650d66f248a6cf9cf0ef6662a7dd8e/todo_client-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1107f3538c317a1558404e7a2430f2d0802243d332fbca58994a05a09795016b",
"md5": "eb9cbd76fb45810044f216a76689179f",
"sha256": "88062e5da61a8b8d1a7182008e71e3468b2a003bd2dbb567ac9a9a5589c101c0"
},
"downloads": -1,
"filename": "todo_client-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "eb9cbd76fb45810044f216a76689179f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 9021,
"upload_time": "2024-06-13T00:21:30",
"upload_time_iso_8601": "2024-06-13T00:21:30.567975Z",
"url": "https://files.pythonhosted.org/packages/11/07/f3538c317a1558404e7a2430f2d0802243d332fbca58994a05a09795016b/todo_client-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-13 00:21:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rmkane",
"github_project": "todo-client",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "todo-client"
}