Skip to main content

Don't have a good day. Have a great day.

Project description

greatday

Don't have a good day. Have a great day.

project status badges:

CI Workflow Coverage Documentation Status Package Health

version badges:

Project Version Python Versions Cookiecutter: cc-python Docker: pythonboltons/main

Installation 🗹

Using pipx to Install (preferred)

This package could be installed using pip like any other Python package (in fact, see the section below this one for instructions on how to do just that). Given that we only need this package's entry points, however, we recommend that pipx be used instead:

# install and setup pipx
python3 -m pip install --user pipx
python3 -m pipx ensurepath

# install greatday
pipx install greatday

Using pip to Install

To install greatday using pip, run the following commands in your terminal:

python3 -m pip install --user greatday  # install greatday

If you don't have pip installed, this Python installation guide can guide you through the process.

Command-Line Interface (CLI)

The output from running greatday --help is shown below:

usage: greatday [-h] [-c CONFIG_FILE] [-L [FILE[:LEVEL][@FORMAT]]] [-v]
                [--version]
                {start,add} ...

Don't have a good day. Have a great day.

optional arguments:
  -c CONFIG_FILE, --config CONFIG_FILE
                        Absolute or relative path to a YAML file that contains
                        this application's configuration.
  -h, --help            show this help message and exit
  -L [FILE[:LEVEL][@FORMAT]], --log [FILE[:LEVEL][@FORMAT]]
                        This option can be used to enable a new logging
                        handler. FILE should be either a path to a logfile or
                        one of the following special file types: [1] 'stderr'
                        to log to standard error (enabled by default), [2]
                        'stdout' to log to standard out, [3] 'null' to disable
                        all console (e.g. stderr) handlers, or [4] '+[NAME]'
                        to choose a default logfile path (where NAME is an
                        optional basename for the logfile). LEVEL can be any
                        valid log level (i.e. one of ['CRITICAL', 'DEBUG',
                        'ERROR', 'INFO', 'TRACE', 'WARNING']) and FORMAT can
                        be any valid log format (i.e. one of ['color', 'json',
                        'nocolor']). NOTE: This option can be specified
                        multiple times and has a default argument of '+'.
  -v, --verbose         How verbose should the output be? This option can be
                        specified multiple times (e.g. -v, -vv, -vvv, ...).
  --version             show program's version number and exit

subcommands:
  {start,add}
    start
    add                 Add a new todo to your inbox.

Design Diagrams

State Diagrams

State Diagram for the greatday start Command

The below state diagram is kicked off when a user runs the greatday start command.

Keep in mind the following notes while reviewing this diagram:

  • We assume that it has been N days since your tickler Todos were last processed.

diagram

State Diagram for Processing Todos

diagram

Class Diagrams

This section contains class diagrams used to help design / document greatday.

Class Diagram for Todo Classes

The following diagram illustrates how the various magodo Todo classes interact.

Keep in mind the following notes while reviewing this diagram:

  • The type variable Self is implicit and is always bound by the current class.
  • The type variable T is bound by the AbstractTodo protocol.

diagram

Class Diagram for Repo and UnitOfWork Classes

The following diagram illustrates how the various potoroo Repo and UnitOfWork classes interact.

Keep in mind the following notes while reviewing this diagram:

  • V_or_None is meant to be Optional[V]. There seems to be a bug in mermaid, however, that prevents us from using Optional[V] as a generic type.
  • Similarly, VList is meant to be List[V].
  • The type variable Self is implicit and is always bound by the current class.
  • The type variable R is bound by the BasicRepo class.
  • The type variables K, V, and T are all unbound.

diagram

Useful Links 🔗

  • API Reference: A developer's reference of the API exposed by this project.
  • cc-python: The cookiecutter that was used to generate this project. Changes made to this cookiecutter are periodically synced with this project using cruft.
  • CHANGELOG.md: We use this file to document all notable changes made to this project.
  • CONTRIBUTING.md: This document contains guidelines for developers interested in contributing to this project.
  • Create a New Issue: Create a new GitHub issue for this project.
  • Documentation: This project's full documentation.

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

greatday-0.3.0.tar.gz (53.9 kB view hashes)

Uploaded Source

Built Distribution

greatday-0.3.0-py3-none-any.whl (14.8 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