Skip to main content

A todo client with CLI and REPL interfaces.

Project description

todo-client

PyPI version License

Simple To-Do List Manager

A simple command-line interface (CLI) application to manage your to-do list.

Table of Contents

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:

    git clone https://github.com/rmkane/todo-cli.git
    cd todo-cli
    
  2. Create a virtual environment and install dependencies:

    ./install.sh
    

Usage

The CLI supports the following commands:

todo-cli {add,remove,list,clear,done} [--file FILE] [--repl]

Commands

  • add: Add a new task

    todo add "Your new task"
    
  • remove: Remove a task by index

    todo remove 1
    
  • done: Mark a task as done by index

    todo done 1
    
  • list: List all tasks

    todo list
    
  • clear: Clear all tasks

    todo clear
    

Optional Arguments

  • --file FILE: Specify the to-do list file

    todo list --file mytasks.txt
    
  • --repl: Enter REPL (Read-Eval-Print Loop) mode

    todo --repl
    

Installation

To install this package, you can clone the repository using the following command:

git clone https://github.com/rmkane/packaging_tutorial.git

To install from PyPI:

pip install todo-client

To install locally:

make install   # Install
.venv/bin/todo # Run

Usage

Here are some examples of how to use this package:

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 for details.

Updating the Changelog

To update the changelog, please use the following format:

## [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

License

This project is licensed under the MIT license - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

todo_client-0.1.0.tar.gz (9.0 kB view hashes)

Uploaded Source

Built Distribution

todo_client-0.1.0-py3-none-any.whl (10.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page