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:
version badges:
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.
State Diagram for Processing Todos
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 theAbstractTodo
protocol.
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 beOptional[V]
. There seems to be a bug in mermaid, however, that prevents us from usingOptional[V]
as a generic type.- Similarly,
VList
is meant to beList[V]
. - The type variable
Self
is implicit and is always bound by the current class. - The type variable
R
is bound by theBasicRepo
class. - The type variables
K
,V
, andT
are all unbound.
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.