diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 695290e8..8a1fe45f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -19,6 +19,6 @@ Here are some key points to include in your description: - [ ] I have written new tests for these changes, as needed. diff --git a/.github/actions/run_tests/action.yaml b/.github/actions/run_tests/action.yaml index 3f40f2fd..c2242e0c 100644 --- a/.github/actions/run_tests/action.yaml +++ b/.github/actions/run_tests/action.yaml @@ -39,23 +39,12 @@ runs: echo 'DEPS_INSTALLED=true' >> $GITHUB_ENV shell: bash - - name: Code formatting (Black) + - name: Linting if: ${{ env.DEPS_INSTALLED == 'true' }} - run: | - poetry run black --version - poetry run black --check --diff . + run: poetry run poe ci-lint shell: bash - - name: Code Style (flake8) - if: > - ${{ env.DEPS_INSTALLED == 'true' }} - run: | - poetry run pflake8 --version - poetry run pflake8 jrnl tests - shell: bash - - - name: Test with pytest - if: > - ${{ env.DEPS_INSTALLED == 'true' }} - run: poetry run pytest --junitxml=reports/pytest/results.xml + - name: Testing + if: ${{ env.DEPS_INSTALLED == 'true' }} + run: poetry run poe ci-test shell: bash diff --git a/.github/workflows/changelog.yaml b/.github/workflows/changelog.yaml index c8d184ec..ba1ad405 100644 --- a/.github/workflows/changelog.yaml +++ b/.github/workflows/changelog.yaml @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + name: Changelog on: @@ -141,8 +144,8 @@ jobs: - name: Commit if: env.SOMETHING_CHANGED == 'true' run: | - git config user.email "jrnl.bot@gmail.com" - git config user.name "Jrnl Bot" + git config --global user.name "${{ secrets.JRNL_BOT_NAME }}" + git config --global user.email "${{ secrets.JRNL_BOT_EMAIL }}" git add "$FILENAME" git commit -m "Update changelog [ci skip]" git push origin $BRANCH diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index ac85f2c0..395ba66f 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + name: Docs on: @@ -39,11 +42,14 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@main + - name: Capture full Python version in env + run: echo "PYTHON_FULL_VERSION=$(python --version)" >> $GITHUB_ENV + - name: poetry cache uses: actions/cache@v2 with: path: .venv - key: ${{ runner.os }}-${{ hashFiles('poetry.lock') }}-${{ matrix.python-version }} + key: ${{ runner.os }}-${{ hashFiles('poetry.lock') }}-${{ env.PYTHON_FULL_VERSION }}-${{ secrets.CACHE_STRING }} - name: npm cache uses: actions/cache@v2 @@ -60,7 +66,7 @@ jobs: echo "node_modules/.bin" >> $GITHUB_PATH - name: Start docs server - run: poetry run mkdocs serve & + run: poetry run poe docs & - name: Generate sitemap env: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 5e0169c1..3eb8c8f4 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + name: Release on: workflow_dispatch: diff --git a/.github/workflows/testing_prs.yaml b/.github/workflows/testing_prs.yaml index b5514f19..27126df8 100644 --- a/.github/workflows/testing_prs.yaml +++ b/.github/workflows/testing_prs.yaml @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + name: Testing on: diff --git a/.github/workflows/testing_schedule.yaml b/.github/workflows/testing_schedule.yaml index 44dd0b69..fd38cd41 100644 --- a/.github/workflows/testing_schedule.yaml +++ b/.github/workflows/testing_schedule.yaml @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + name: Testing on: diff --git a/.gitignore b/.gitignore index 4def365f..48cbcddc 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ eggs/ lib64/ parts/ sdist/ +.tox/ var/ # Versioning diff --git a/CHANGELOG.md b/CHANGELOG.md index 136eb49a..7c9dfd6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [Unreleased](https://github.com/jrnl-org/jrnl/) + +[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v3.0-beta...HEAD) + +**Fixed bugs:** + +- Adding new entry with date only works with format m.d.Y [\#1509](https://github.com/jrnl-org/jrnl/issues/1509) + +**Build:** + +- Use tox [\#1361](https://github.com/jrnl-org/jrnl/issues/1361) +- Stop hardcoding bot info in changelog pipeline [\#1506](https://github.com/jrnl-org/jrnl/pull/1506) ([wren](https://github.com/wren)) +- Fix Poetry caching for accessibility tests [\#1505](https://github.com/jrnl-org/jrnl/pull/1505) ([wren](https://github.com/wren)) +- Implement Tox for testing [\#1504](https://github.com/jrnl-org/jrnl/pull/1504) ([wren](https://github.com/wren)) +- Replace `make` with python alternative \(`poe`\) [\#1503](https://github.com/jrnl-org/jrnl/pull/1503) ([wren](https://github.com/wren)) +- Update copyright year [\#1502](https://github.com/jrnl-org/jrnl/pull/1502) ([wren](https://github.com/wren)) + ## [v3.0-beta](https://pypi.org/project/jrnl/v3.0-beta/) (2022-06-11) [Full Changelog](https://github.com/jrnl-org/jrnl/compare/v2.8.4...v3.0-beta) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 93b57d7e..bd00f6e2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,8 @@ - + + # Contributing See "[Contributing](docs/contributing.md)" in the `docs` directory. diff --git a/Makefile b/Makefile deleted file mode 100644 index a9833c3e..00000000 --- a/Makefile +++ /dev/null @@ -1,39 +0,0 @@ -# A Makefile for commands I run frequently: - -clean: - rm -rf dist - rm -rf _static - rm -rf jrnl.egg-info - rm -rf _build - rm -rf _sources - rm -rf _static - rm -rf site/ - rm -f *.html - -html: - poetry run mkdocs serve - -format: ## Format files to match style - poetry run black . - -lint: ## Check style with various tools - poetry check - poetry run pflake8 jrnl tests - poetry run black --check --diff . - -unit: # unit tests - poetry run pytest tests/unit - -bdd: # bdd tests - poetry run pytest tests/bdd --gherkin-terminal-reporter --tb=native - -bdd-debug: # bdd tests - poetry run pytest tests/bdd --gherkin-terminal-reporter --tb=native -x -vv - -test: lint unit bdd - -build: - poetry build - -install: clean ## install the package to the active Python's site-packages - poetry install diff --git a/README.md b/README.md index cacd8dda..e2809a0f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ + +

diff --git a/docs/advanced.md b/docs/advanced.md index c0b1195c..61529fc4 100644 --- a/docs/advanced.md +++ b/docs/advanced.md @@ -1,5 +1,7 @@ - + # Advanced Usage diff --git a/docs/contributing.md b/docs/contributing.md index b12ce7be..650d0cda 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -1,5 +1,8 @@ - + + # Contributing to jrnl We welcome contributions to jrnl, whether it's through reporting bugs, improving the documentation, testing releases, engaging in discussion on features and bugs, or writing code. @@ -24,7 +27,7 @@ Please report bugs by [opening a new issue](https://github.com/jrnl-org/jrnl/iss If you find a typo or a mistake in the docs, please fix it right away and send a pull request. If you're unsure what to change but still see a problem, you can [open a new issue](https://github.com/jrnl-org/jrnl/issues/new/choose) with the "Documentation change" type. -To edit the documentation, edit the `docs/*.md` files on the **develop** branch. You can see the result by running `make html` (or `poetry run mkdocs serve` if on Windows) inside the project's root directory, then navigating your browser to [localhost:8000](http://localhost:8000). +To edit the documentation, edit the `docs/*.md` files on the **develop** branch. You can see the result by running `poe docs` inside the project's root directory, then navigating your browser to [localhost:8000](http://localhost:8000). The `gh-pages` branch is automatically maintained and generated after your changes are merged. You should never have to edit that branch. @@ -82,16 +85,20 @@ In general, pull requests should be made on the `develop` branch. ### Common development commands -You can find an inventory of commands in the `makefile`. \*nix users can run the commands by typing `make` followed by the name of the command; however, Windows users will need to type out the commands directly, or install a third-party make tool such as [GNU Make for Windows](http://gnuwin32.sourceforge.net/packages/make.htm). +You can find an inventory of commands in the `pyproject.toml`. Users can run the commands by typing `poe` followed by the name of the command ([Poe the Poet](https://github.com/nat-n/poethepoet) can be installed on its own, or as part of `poetry install`). A typical development workflow includes: - * Installing dependencies: `poetry install` - * Running tests: `make test` - * Running the source in a virtual environment: + * Installing dependencies: + * `poetry install` + * Activate virtual environment: * `poetry shell` + * Running the source in a virtual environment: * `jrnl` (with or without arguments as necessary) - * Linting the code to standardize its style: `make lint` + * Running tests: + * `poe test` + * Formatting the code to standardize its style: + * `poe format` ### Updating automated tests diff --git a/docs/encryption.md b/docs/encryption.md index 06217f01..e8b86e62 100644 --- a/docs/encryption.md +++ b/docs/encryption.md @@ -1,5 +1,8 @@ - + + # Encryption ## A Note on Security diff --git a/docs/external-editors.md b/docs/external-editors.md index 8797325a..efa0b55c 100644 --- a/docs/external-editors.md +++ b/docs/external-editors.md @@ -1,3 +1,8 @@ + + # External editors Configure your preferred external editor by updating the `editor` option diff --git a/docs/formats.md b/docs/formats.md index 99b3e69b..a87c4e8a 100644 --- a/docs/formats.md +++ b/docs/formats.md @@ -1,5 +1,8 @@ - + + # Formats `jrnl` supports a variety of alternate formats. These can be used to display your diff --git a/docs/installation.md b/docs/installation.md index a37e21fd..4d2c4c97 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -1,5 +1,8 @@ - + + # Getting started ## Installation diff --git a/docs/journal-types.md b/docs/journal-types.md index 65efc143..b2ec78da 100644 --- a/docs/journal-types.md +++ b/docs/journal-types.md @@ -1,5 +1,8 @@ - + + # Journal Types `jrnl` can store your journal in a few different ways: diff --git a/docs/overview.md b/docs/overview.md index 57269585..b20c85f9 100644 --- a/docs/overview.md +++ b/docs/overview.md @@ -1,5 +1,8 @@ - + + # Overview `jrnl` is a simple journal application for the command line. diff --git a/docs/privacy-and-security.md b/docs/privacy-and-security.md index c2996d25..9030df99 100644 --- a/docs/privacy-and-security.md +++ b/docs/privacy-and-security.md @@ -1,5 +1,8 @@ - + + # Privacy and Security `jrnl` is designed with privacy and security in mind, but like any other diff --git a/docs/reference-command-line.md b/docs/reference-command-line.md index bc624fe5..149ae26f 100644 --- a/docs/reference-command-line.md +++ b/docs/reference-command-line.md @@ -1,3 +1,8 @@ + + # Command Line Reference ## Synopsis diff --git a/docs/reference-config-file.md b/docs/reference-config-file.md index 97ec290c..03454c05 100644 --- a/docs/reference-config-file.md +++ b/docs/reference-config-file.md @@ -1,3 +1,8 @@ + + # Configuration File Reference `jrnl` stores its information in a YAML configuration file. diff --git a/docs/tips-and-tricks.md b/docs/tips-and-tricks.md index a158916c..c4531798 100644 --- a/docs/tips-and-tricks.md +++ b/docs/tips-and-tricks.md @@ -1,5 +1,8 @@ - + + # Tips and Tricks This page contains tips and tricks for using `jrnl`, often in conjunction diff --git a/docs/usage.md b/docs/usage.md index 1a4de2a2..9e8c3ee3 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -1,5 +1,8 @@ - + + # Basic Usage # `jrnl` has two modes: **composing** and **viewing**. Whenever you don't enter diff --git a/docs_theme/assets/colors.css b/docs_theme/assets/colors.css index 93d84b4d..3f8b46a8 100644 --- a/docs_theme/assets/colors.css +++ b/docs_theme/assets/colors.css @@ -1,5 +1,7 @@ -/* Copyright (C) 2012-2021 jrnl contributors - License: https://www.gnu.org/licenses/gpl-3.0.html */ +/* +Copyright (C) 2012-2022 jrnl contributors +License: https://www.gnu.org/licenses/gpl-3.0.html +*/ :root { /* For dark bg */ diff --git a/docs_theme/assets/highlight.css b/docs_theme/assets/highlight.css index b7052917..27950c0f 100644 --- a/docs_theme/assets/highlight.css +++ b/docs_theme/assets/highlight.css @@ -1,4 +1,7 @@ /* +Copyright (C) 2012-2022 jrnl contributors +License: https://www.gnu.org/licenses/gpl-3.0.html + Atom One Dark With support for ReasonML by Gidi Morris, based off work by Daniel Gamage diff --git a/docs_theme/assets/index.css b/docs_theme/assets/index.css index a7ed63ee..d6e834e3 100644 --- a/docs_theme/assets/index.css +++ b/docs_theme/assets/index.css @@ -1,5 +1,8 @@ -/* Copyright (C) 2012-2021 jrnl contributors - License: https://www.gnu.org/licenses/gpl-3.0.html */ +/* +Copyright (C) 2012-2022 jrnl contributors +License: https://www.gnu.org/licenses/gpl-3.0.html +*/ + /* reset */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0} body { diff --git a/docs_theme/assets/theme.css b/docs_theme/assets/theme.css index 20c4cd89..152e0521 100644 --- a/docs_theme/assets/theme.css +++ b/docs_theme/assets/theme.css @@ -1,5 +1,7 @@ -/* Copyright (C) 2012-2021 jrnl contributors - License: https://www.gnu.org/licenses/gpl-3.0.html */ +/* +Copyright (C) 2012-2022 jrnl contributors +License: https://www.gnu.org/licenses/gpl-3.0.html +*/ /* ------------------------------------------------------------ */ /* Overrides for jrnl theme */ diff --git a/docs_theme/index.html b/docs_theme/index.html index b21493d2..57c90c76 100644 --- a/docs_theme/index.html +++ b/docs_theme/index.html @@ -1,5 +1,8 @@ - + + diff --git a/docs_theme/main.html b/docs_theme/main.html index 18a4f1cf..7849dd02 100644 --- a/docs_theme/main.html +++ b/docs_theme/main.html @@ -1,3 +1,8 @@ + + {% extends "base.html" %} {%- block search_button %} diff --git a/docs_theme/search.html b/docs_theme/search.html index b191fc2a..37bcfe5d 100644 --- a/docs_theme/search.html +++ b/docs_theme/search.html @@ -1,3 +1,8 @@ + + {% extends "main.html" %} {% block content %} diff --git a/jrnl/DayOneJournal.py b/jrnl/DayOneJournal.py index 1e484365..8034e36b 100644 --- a/jrnl/DayOneJournal.py +++ b/jrnl/DayOneJournal.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + import datetime import fnmatch import os diff --git a/jrnl/EncryptedJournal.py b/jrnl/EncryptedJournal.py index fb4ba5ce..e2aec8ed 100644 --- a/jrnl/EncryptedJournal.py +++ b/jrnl/EncryptedJournal.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + import base64 import hashlib import logging diff --git a/jrnl/Entry.py b/jrnl/Entry.py index 800345c6..323eef73 100644 --- a/jrnl/Entry.py +++ b/jrnl/Entry.py @@ -1,7 +1,6 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html - import datetime import re diff --git a/jrnl/FolderJournal.py b/jrnl/FolderJournal.py index a381c872..b5cf2e71 100644 --- a/jrnl/FolderJournal.py +++ b/jrnl/FolderJournal.py @@ -1,8 +1,6 @@ -# encoding: utf-8 -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html - import codecs import fnmatch import os diff --git a/jrnl/Journal.py b/jrnl/Journal.py index b2e5383b..301bba76 100644 --- a/jrnl/Journal.py +++ b/jrnl/Journal.py @@ -1,7 +1,6 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html - import datetime import logging import os diff --git a/jrnl/__init__.py b/jrnl/__init__.py index 550d580f..2fc7e3bf 100644 --- a/jrnl/__init__.py +++ b/jrnl/__init__.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html try: diff --git a/jrnl/__main__.py b/jrnl/__main__.py index 49497161..06ffedaa 100644 --- a/jrnl/__main__.py +++ b/jrnl/__main__.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html import sys diff --git a/jrnl/args.py b/jrnl/args.py index 1f3e3c9a..5fd8e370 100644 --- a/jrnl/args.py +++ b/jrnl/args.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html import argparse diff --git a/jrnl/cli.py b/jrnl/cli.py index 305e4502..e81fb1ce 100644 --- a/jrnl/cli.py +++ b/jrnl/cli.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html import logging diff --git a/jrnl/color.py b/jrnl/color.py index 7cc8df2f..7268d773 100644 --- a/jrnl/color.py +++ b/jrnl/color.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + import re from string import punctuation from string import whitespace diff --git a/jrnl/commands.py b/jrnl/commands.py index 7ef9f09c..dd2ce52b 100644 --- a/jrnl/commands.py +++ b/jrnl/commands.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + """ Functions in this file are standalone commands. All standalone commands are split into two categories depending on whether they require the config to be loaded to be able to @@ -38,7 +41,7 @@ def preconfig_version(_): version_str = f"""{__title__} version {__version__} -Copyright (C) 2012-2021 jrnl contributors +Copyright (C) 2012-2022 jrnl contributors This is free software, and you are welcome to redistribute it under certain conditions; for details, see: https://www.gnu.org/licenses/gpl-3.0.html""" diff --git a/jrnl/config.py b/jrnl/config.py index 181c587f..7d2a6dbe 100644 --- a/jrnl/config.py +++ b/jrnl/config.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + import logging import os diff --git a/jrnl/editor.py b/jrnl/editor.py index 91aa4d52..a6bff5d3 100644 --- a/jrnl/editor.py +++ b/jrnl/editor.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + import logging import os import subprocess diff --git a/jrnl/exception.py b/jrnl/exception.py index fdfa61a4..6dfc6593 100644 --- a/jrnl/exception.py +++ b/jrnl/exception.py @@ -1,5 +1,6 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html + from jrnl.messages import Message from jrnl.output import print_msg diff --git a/jrnl/install.py b/jrnl/install.py index 88663d58..a7dc6318 100644 --- a/jrnl/install.py +++ b/jrnl/install.py @@ -1,7 +1,6 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html - import glob import logging import os diff --git a/jrnl/jrnl.py b/jrnl/jrnl.py index 18ee4ed4..2c5fafae 100644 --- a/jrnl/jrnl.py +++ b/jrnl/jrnl.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html import logging diff --git a/jrnl/messages/Message.py b/jrnl/messages/Message.py index 2c02e8a0..86809192 100644 --- a/jrnl/messages/Message.py +++ b/jrnl/messages/Message.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + from typing import NamedTuple from typing import Mapping diff --git a/jrnl/messages/MsgStyle.py b/jrnl/messages/MsgStyle.py index 41daa535..b8e15316 100644 --- a/jrnl/messages/MsgStyle.py +++ b/jrnl/messages/MsgStyle.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + from enum import Enum from typing import NamedTuple from typing import Callable diff --git a/jrnl/messages/MsgText.py b/jrnl/messages/MsgText.py index e705aa6f..f1518329 100644 --- a/jrnl/messages/MsgText.py +++ b/jrnl/messages/MsgText.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + from enum import Enum diff --git a/jrnl/messages/__init__.py b/jrnl/messages/__init__.py index 930fbe75..f2eaec4c 100644 --- a/jrnl/messages/__init__.py +++ b/jrnl/messages/__init__.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + from .Message import Message from .MsgStyle import MsgStyle from .MsgText import MsgText diff --git a/jrnl/os_compat.py b/jrnl/os_compat.py index 6615b886..1ede4534 100644 --- a/jrnl/os_compat.py +++ b/jrnl/os_compat.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html import shlex diff --git a/jrnl/output.py b/jrnl/output.py index fb21990b..3eae32cc 100644 --- a/jrnl/output.py +++ b/jrnl/output.py @@ -1,5 +1,6 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html + import textwrap from typing import Union diff --git a/jrnl/override.py b/jrnl/override.py index 760b003e..6ef378f4 100644 --- a/jrnl/override.py +++ b/jrnl/override.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + from .config import update_config, make_yaml_valid_dict from argparse import Namespace diff --git a/jrnl/path.py b/jrnl/path.py index bb465d6e..cf13a2a8 100644 --- a/jrnl/path.py +++ b/jrnl/path.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + import os.path diff --git a/jrnl/plugins/__init__.py b/jrnl/plugins/__init__.py index e3484927..f994e4fc 100644 --- a/jrnl/plugins/__init__.py +++ b/jrnl/plugins/__init__.py @@ -1,5 +1,4 @@ -# encoding: utf-8 -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html from .fancy_exporter import FancyExporter diff --git a/jrnl/plugins/dates_exporter.py b/jrnl/plugins/dates_exporter.py index e032b652..c1c8fd0a 100644 --- a/jrnl/plugins/dates_exporter.py +++ b/jrnl/plugins/dates_exporter.py @@ -1,6 +1,6 @@ -# encoding: utf-8 -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html + from collections import Counter from .text_exporter import TextExporter diff --git a/jrnl/plugins/fancy_exporter.py b/jrnl/plugins/fancy_exporter.py index 0c440e96..cdbd4b08 100644 --- a/jrnl/plugins/fancy_exporter.py +++ b/jrnl/plugins/fancy_exporter.py @@ -1,5 +1,4 @@ -# encoding: utf-8 -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html from jrnl.exception import JrnlException diff --git a/jrnl/plugins/jrnl_importer.py b/jrnl/plugins/jrnl_importer.py index cfdee0d7..0468b476 100644 --- a/jrnl/plugins/jrnl_importer.py +++ b/jrnl/plugins/jrnl_importer.py @@ -1,5 +1,4 @@ -# encoding: utf-8 -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html import sys diff --git a/jrnl/plugins/json_exporter.py b/jrnl/plugins/json_exporter.py index 666d9a3d..abce6f50 100644 --- a/jrnl/plugins/json_exporter.py +++ b/jrnl/plugins/json_exporter.py @@ -1,5 +1,4 @@ -# encoding: utf-8 -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html import json diff --git a/jrnl/plugins/markdown_exporter.py b/jrnl/plugins/markdown_exporter.py index 63be85e0..30614746 100644 --- a/jrnl/plugins/markdown_exporter.py +++ b/jrnl/plugins/markdown_exporter.py @@ -1,5 +1,4 @@ -# encoding: utf-8 -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html import os diff --git a/jrnl/plugins/tag_exporter.py b/jrnl/plugins/tag_exporter.py index 1153fa01..9c2b7fb5 100644 --- a/jrnl/plugins/tag_exporter.py +++ b/jrnl/plugins/tag_exporter.py @@ -1,5 +1,4 @@ -# encoding: utf-8 -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html from .text_exporter import TextExporter diff --git a/jrnl/plugins/text_exporter.py b/jrnl/plugins/text_exporter.py index d82a1e40..55c0d83a 100644 --- a/jrnl/plugins/text_exporter.py +++ b/jrnl/plugins/text_exporter.py @@ -1,5 +1,4 @@ -# encoding: utf-8 -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html import os diff --git a/jrnl/plugins/util.py b/jrnl/plugins/util.py index ae49a2a8..a2188306 100644 --- a/jrnl/plugins/util.py +++ b/jrnl/plugins/util.py @@ -1,5 +1,4 @@ -# encoding: utf-8 -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html diff --git a/jrnl/plugins/xml_exporter.py b/jrnl/plugins/xml_exporter.py index 9901f4b7..10050b50 100644 --- a/jrnl/plugins/xml_exporter.py +++ b/jrnl/plugins/xml_exporter.py @@ -1,5 +1,4 @@ -# encoding: utf-8 -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html from xml.dom import minidom diff --git a/jrnl/plugins/yaml_exporter.py b/jrnl/plugins/yaml_exporter.py index f78c781b..00a4613b 100644 --- a/jrnl/plugins/yaml_exporter.py +++ b/jrnl/plugins/yaml_exporter.py @@ -1,5 +1,4 @@ -# encoding: utf-8 -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html import os diff --git a/jrnl/prompt.py b/jrnl/prompt.py index 843e7425..4cd38d90 100644 --- a/jrnl/prompt.py +++ b/jrnl/prompt.py @@ -1,5 +1,6 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html + from jrnl.messages import Message from jrnl.messages import MsgText from jrnl.messages import MsgStyle diff --git a/jrnl/time.py b/jrnl/time.py index f4e7319d..c457c12b 100644 --- a/jrnl/time.py +++ b/jrnl/time.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html import datetime diff --git a/jrnl/upgrade.py b/jrnl/upgrade.py index 5c033534..29ff8eb4 100644 --- a/jrnl/upgrade.py +++ b/jrnl/upgrade.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html import os diff --git a/poetry.lock b/poetry.lock index 88e973cb..2a0abc4c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -46,7 +46,7 @@ test = ["astroid", "pytest"] name = "atomicwrites" version = "1.4.0" description = "Atomic file writes." -category = "main" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" @@ -54,7 +54,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" name = "attrs" version = "21.4.0" description = "Classes Without Boilerplate" -category = "main" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" @@ -118,7 +118,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} [[package]] name = "colorama" -version = "0.4.4" +version = "0.4.5" description = "Cross-platform colored terminal text." category = "main" optional = false @@ -128,7 +128,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" name = "commonmark" version = "0.9.1" description = "Python parser for the CommonMark Markdown spec" -category = "dev" +category = "main" optional = false python-versions = "*" @@ -162,6 +162,14 @@ category = "dev" optional = false python-versions = ">=3.5" +[[package]] +name = "distlib" +version = "0.3.4" +description = "Distribution utilities" +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "executing" version = "0.8.3" @@ -170,6 +178,18 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "filelock" +version = "3.7.1" +description = "A platform independent file lock." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["furo (>=2021.8.17b43)", "sphinx (>=4.1)", "sphinx-autodoc-typehints (>=1.12)"] +testing = ["covdefaults (>=1.2.0)", "coverage (>=4)", "pytest (>=4)", "pytest-cov", "pytest-timeout (>=1.4.2)"] + [[package]] name = "flake8" version = "4.0.1" @@ -201,13 +221,13 @@ dev = ["twine", "markdown", "flake8", "wheel"] name = "glob2" version = "0.7" description = "Version of the glob module that can capture patterns and supports recursive wildcards" -category = "main" +category = "dev" optional = false python-versions = "*" [[package]] name = "importlib-metadata" -version = "4.11.3" +version = "4.11.4" description = "Read metadata from Python packages" category = "main" optional = false @@ -225,7 +245,7 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest- name = "iniconfig" version = "1.1.1" description = "iniconfig: brain-dead simple config-ini parsing" -category = "main" +category = "dev" optional = false python-versions = "*" @@ -244,7 +264,7 @@ toml = {version = ">=0.10.2", markers = "python_version > \"3.6\""} [[package]] name = "ipython" -version = "8.3.0" +version = "8.4.0" description = "IPython: Productive Interactive Computing" category = "dev" optional = false @@ -340,7 +360,7 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest- name = "mako" version = "1.2.0" description = "A super-fast templating language that borrows the best ideas from the existing templating languages." -category = "main" +category = "dev" optional = false python-versions = ">=3.7" @@ -370,7 +390,7 @@ testing = ["coverage", "pyyaml"] name = "markupsafe" version = "2.1.1" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" +category = "dev" optional = false python-versions = ">=3.7" @@ -436,7 +456,7 @@ python-versions = "*" name = "packaging" version = "21.3" description = "Core utilities for Python packages" -category = "main" +category = "dev" optional = false python-versions = ">=3.6" @@ -447,7 +467,7 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" name = "parse" version = "1.19.0" description = "parse() is the opposite of format()" -category = "main" +category = "dev" optional = false python-versions = "*" @@ -455,7 +475,7 @@ python-versions = "*" name = "parse-type" version = "0.6.0" description = "Simplifies to build parse types based on the parse module" -category = "main" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*" @@ -487,6 +507,14 @@ python-versions = ">=3.6" qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] testing = ["docopt", "pytest (<6.0.0)"] +[[package]] +name = "pastel" +version = "0.2.1" +description = "Bring colors to your terminal." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + [[package]] name = "pathspec" version = "0.9.0" @@ -530,7 +558,7 @@ test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytes name = "pluggy" version = "1.0.0" description = "plugin and hook calling mechanisms for python" -category = "main" +category = "dev" optional = false python-versions = ">=3.6" @@ -538,6 +566,21 @@ python-versions = ">=3.6" dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] +[[package]] +name = "poethepoet" +version = "0.13.1" +description = "A task runner that works well with poetry." +category = "dev" +optional = false +python-versions = ">=3.6.2" + +[package.dependencies] +pastel = ">=0.2.1,<0.3.0" +tomli = ">=1.2.2" + +[package.extras] +poetry_plugin = ["poetry (>=1.0,<2.0)"] + [[package]] name = "pprintpp" version = "0.4.0" @@ -580,7 +623,7 @@ tests = ["pytest"] name = "py" version = "1.11.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "main" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" @@ -612,15 +655,15 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" name = "pygments" version = "2.12.0" description = "Pygments is a syntax highlighting package written in Python." -category = "dev" +category = "main" optional = false python-versions = ">=3.6" [[package]] name = "pyparsing" -version = "3.0.8" +version = "3.0.9" description = "pyparsing module - Classes and methods to define and execute parsing grammars" -category = "main" +category = "dev" optional = false python-versions = ">=3.6.8" @@ -643,7 +686,7 @@ tomli = {version = "*", markers = "python_version < \"3.11\""} name = "pytest" version = "7.1.2" description = "pytest: simple powerful testing with Python" -category = "main" +category = "dev" optional = false python-versions = ">=3.7" @@ -664,7 +707,7 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2. name = "pytest-bdd" version = "5.0.0" description = "BDD for pytest" -category = "main" +category = "dev" optional = false python-versions = ">=3.6" @@ -745,9 +788,9 @@ pyyaml = "*" [[package]] name = "rich" -version = "12.4.0" +version = "12.4.4" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -category = "dev" +category = "main" optional = false python-versions = ">=3.6.3,<4.0.0" @@ -803,7 +846,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "stack-data" -version = "0.2.0" +version = "0.3.0" description = "Extract data from python stack frames and tracebacks for informative displays" category = "dev" optional = false @@ -829,7 +872,7 @@ python-versions = "*" name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -category = "main" +category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" @@ -837,20 +880,42 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "main" +category = "dev" optional = false python-versions = ">=3.7" +[[package]] +name = "tox" +version = "3.25.0" +description = "tox is a generic virtualenv management and test command line tool" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[package.dependencies] +colorama = {version = ">=0.4.1", markers = "platform_system == \"Windows\""} +filelock = ">=3.0.0" +packaging = ">=14" +pluggy = ">=0.12.0" +py = ">=1.4.17" +six = ">=1.14.0" +toml = ">=0.9.4" +virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2,<20.0.3 || >20.0.3,<20.0.4 || >20.0.4,<20.0.5 || >20.0.5,<20.0.6 || >20.0.6,<20.0.7 || >20.0.7" + +[package.extras] +docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"] +testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)", "psutil (>=5.6.1)", "pathlib2 (>=2.3.3)"] + [[package]] name = "traitlets" -version = "5.1.1" -description = "Traitlets Python configuration system" +version = "5.3.0" +description = "" category = "dev" optional = false python-versions = ">=3.7" [package.extras] -test = ["pytest"] +test = ["pre-commit", "pytest"] [[package]] name = "typing-extensions" @@ -871,9 +936,27 @@ python-versions = "*" [package.dependencies] pytz = "*" +[[package]] +name = "virtualenv" +version = "20.14.1" +description = "Virtual Python Environment builder" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[package.dependencies] +distlib = ">=0.3.1,<1" +filelock = ">=3.2,<4" +platformdirs = ">=2,<3" +six = ">=1.9.0,<2" + +[package.extras] +docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=21.3)"] +testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "packaging (>=20.0)"] + [[package]] name = "watchdog" -version = "2.1.7" +version = "2.1.9" description = "Filesystem events monitoring" category = "dev" optional = false @@ -892,11 +975,11 @@ python-versions = "*" [[package]] name = "xmltodict" -version = "0.12.0" +version = "0.13.0" description = "Makes working with XML feel like you are working with JSON" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.4" [[package]] name = "yq" @@ -928,12 +1011,12 @@ docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] [extras] -testing = ["pytest", "pytest-bdd", "toml"] +testing = [] [metadata] lock-version = "1.1" python-versions = ">=3.9.0, <3.12" -content-hash = "8cd80d198bf8208d9e4b2054b89a22f1ce9faccc91aaef3440fb22e1782b0239" +content-hash = "ceca9186ac31a0b8ec81a6cc134469842080c786971bb8642d9e67d51bd73fca" [metadata.files] ansiwrap = [ @@ -1046,8 +1129,8 @@ click = [ {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, ] colorama = [ - {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, - {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, + {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, + {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, ] commonmark = [ {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, @@ -1081,10 +1164,18 @@ decorator = [ {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, ] +distlib = [ + {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"}, + {file = "distlib-0.3.4.zip", hash = "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"}, +] executing = [ {file = "executing-0.8.3-py2.py3-none-any.whl", hash = "sha256:d1eef132db1b83649a3905ca6dd8897f71ac6f8cac79a7e58a1a09cf137546c9"}, {file = "executing-0.8.3.tar.gz", hash = "sha256:c6554e21c6b060590a6d3be4b82fb78f8f0194d809de5ea7df1c093763311501"}, ] +filelock = [ + {file = "filelock-3.7.1-py3-none-any.whl", hash = "sha256:37def7b658813cda163b56fc564cdc75e86d338246458c4c28ae84cabefa2404"}, + {file = "filelock-3.7.1.tar.gz", hash = "sha256:3a0fd85166ad9dbab54c9aec96737b744106dc5f15c0b09a6744a445299fcf04"}, +] flake8 = [ {file = "flake8-4.0.1-py2.py3-none-any.whl", hash = "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d"}, {file = "flake8-4.0.1.tar.gz", hash = "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"}, @@ -1097,8 +1188,8 @@ glob2 = [ {file = "glob2-0.7.tar.gz", hash = "sha256:85c3dbd07c8aa26d63d7aacee34fa86e9a91a3873bc30bf62ec46e531f92ab8c"}, ] importlib-metadata = [ - {file = "importlib_metadata-4.11.3-py3-none-any.whl", hash = "sha256:1208431ca90a8cca1a6b8af391bb53c1a2db74e5d1cef6ddced95d4b2062edc6"}, - {file = "importlib_metadata-4.11.3.tar.gz", hash = "sha256:ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539"}, + {file = "importlib_metadata-4.11.4-py3-none-any.whl", hash = "sha256:c58c8eb8a762858f49e18436ff552e83914778e50e9d2f1660535ffb364552ec"}, + {file = "importlib_metadata-4.11.4.tar.gz", hash = "sha256:5d26852efe48c0a32b0509ffbc583fda1a2266545a78d104a6f4aff3db17d700"}, ] iniconfig = [ {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, @@ -1108,8 +1199,8 @@ ipdb = [ {file = "ipdb-0.13.9.tar.gz", hash = "sha256:951bd9a64731c444fd907a5ce268543020086a697f6be08f7cc2c9a752a278c5"}, ] ipython = [ - {file = "ipython-8.3.0-py3-none-any.whl", hash = "sha256:341456643a764c28f670409bbd5d2518f9b82c013441084ff2c2fc999698f83b"}, - {file = "ipython-8.3.0.tar.gz", hash = "sha256:807ae3cf43b84693c9272f70368440a9a7eaa2e7e6882dad943c32fbf7e51402"}, + {file = "ipython-8.4.0-py3-none-any.whl", hash = "sha256:7ca74052a38fa25fe9bedf52da0be7d3fdd2fb027c3b778ea78dfe8c212937d1"}, + {file = "ipython-8.4.0.tar.gz", hash = "sha256:f2db3a10254241d9b447232cec8b424847f338d9d36f9a577a6192c332a46abd"}, ] jedi = [ {file = "jedi-0.18.1-py2.py3-none-any.whl", hash = "sha256:637c9635fcf47945ceb91cd7f320234a7be540ded6f3e99a50cb6febdfd1ba8d"}, @@ -1216,6 +1307,10 @@ parso = [ {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, ] +pastel = [ + {file = "pastel-0.2.1-py2.py3-none-any.whl", hash = "sha256:4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364"}, + {file = "pastel-0.2.1.tar.gz", hash = "sha256:e6581ac04e973cac858828c6202c1e1e81fee1dc7de7683f3e1ffe0bfd8a573d"}, +] pathspec = [ {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, @@ -1236,6 +1331,10 @@ pluggy = [ {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, ] +poethepoet = [ + {file = "poethepoet-0.13.1-py3-none-any.whl", hash = "sha256:47e7b38c8b5412f840447f7612a9330697e8633e7500a7340b6734f50e26e380"}, + {file = "poethepoet-0.13.1.tar.gz", hash = "sha256:4f6962f17f5d5a453fd7fa66e3e7897e9191d4289148433efe441c81f2451a46"}, +] pprintpp = [ {file = "pprintpp-0.4.0-py2.py3-none-any.whl", hash = "sha256:b6b4dcdd0c0c0d75e4d7b2f21a9e933e5b2ce62b26e1a54537f9651ae5a5c01d"}, {file = "pprintpp-0.4.0.tar.gz", hash = "sha256:ea826108e2c7f49dc6d66c752973c3fc9749142a798d6b254e1e301cfdbc6403"}, @@ -1273,8 +1372,8 @@ pygments = [ {file = "Pygments-2.12.0.tar.gz", hash = "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb"}, ] pyparsing = [ - {file = "pyparsing-3.0.8-py3-none-any.whl", hash = "sha256:ef7b523f6356f763771559412c0d7134753f037822dad1b16945b7b846f7ad06"}, - {file = "pyparsing-3.0.8.tar.gz", hash = "sha256:7bf433498c016c4314268d95df76c81b842a4cb2b276fa3312cfb1e1d85f6954"}, + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, ] pyproject-flake8 = [ {file = "pyproject-flake8-0.0.1a4.tar.gz", hash = "sha256:8ed9453f1d984cfe94c998f9840275359e29e7f435b8ddd188ae084e2dc1270c"}, @@ -1347,8 +1446,8 @@ pyyaml-env-tag = [ {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, ] rich = [ - {file = "rich-12.4.0-py3-none-any.whl", hash = "sha256:fdf6f447f231289dd446d31e5ee856fb0cc7dccd852a80f3e9d5aeecccabaedc"}, - {file = "rich-12.4.0.tar.gz", hash = "sha256:7aebf67874dc5cc2c89e2cb6ac322c95bd92510df2af0296c8bf494335ef704f"}, + {file = "rich-12.4.4-py3-none-any.whl", hash = "sha256:d2bbd99c320a2532ac71ff6a3164867884357da3e3301f0240090c5d2fdac7ec"}, + {file = "rich-12.4.4.tar.gz", hash = "sha256:4c586de507202505346f3e32d1363eb9ed6932f0c2f63184dea88983ff4971e2"}, ] "ruamel.yaml" = [ {file = "ruamel.yaml-0.17.21-py3-none-any.whl", hash = "sha256:742b35d3d665023981bd6d16b3d24248ce5df75fdb4e2924e93a05c1f8b61ca7"}, @@ -1390,8 +1489,8 @@ six = [ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] stack-data = [ - {file = "stack_data-0.2.0-py3-none-any.whl", hash = "sha256:999762f9c3132308789affa03e9271bbbe947bf78311851f4d485d8402ed858e"}, - {file = "stack_data-0.2.0.tar.gz", hash = "sha256:45692d41bd633a9503a5195552df22b583caf16f0b27c4e58c98d88c8b648e12"}, + {file = "stack_data-0.3.0-py3-none-any.whl", hash = "sha256:aa1d52d14d09c7a9a12bb740e6bdfffe0f5e8f4f9218d85e7c73a8c37f7ae38d"}, + {file = "stack_data-0.3.0.tar.gz", hash = "sha256:77bec1402dcd0987e9022326473fdbcc767304892a533ed8c29888dacb7dddbc"}, ] textwrap3 = [ {file = "textwrap3-0.9.2-py2.py3-none-any.whl", hash = "sha256:bf5f4c40faf2a9ff00a9e0791fed5da7415481054cef45bb4a3cfb1f69044ae0"}, @@ -1405,9 +1504,13 @@ tomli = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] +tox = [ + {file = "tox-3.25.0-py2.py3-none-any.whl", hash = "sha256:0805727eb4d6b049de304977dfc9ce315a1938e6619c3ab9f38682bb04662a5a"}, + {file = "tox-3.25.0.tar.gz", hash = "sha256:37888f3092aa4e9f835fc8cc6dadbaaa0782651c41ef359e3a5743fcb0308160"}, +] traitlets = [ - {file = "traitlets-5.1.1-py3-none-any.whl", hash = "sha256:2d313cc50a42cd6c277e7d7dc8d4d7fedd06a2c215f78766ae7b1a66277e0033"}, - {file = "traitlets-5.1.1.tar.gz", hash = "sha256:059f456c5a7c1c82b98c2e8c799f39c9b8128f6d0d46941ee118daace9eb70c7"}, + {file = "traitlets-5.3.0-py3-none-any.whl", hash = "sha256:65fa18961659635933100db8ca120ef6220555286949774b9cfc106f941d1c7a"}, + {file = "traitlets-5.3.0.tar.gz", hash = "sha256:0bb9f1f9f017aa8ec187d8b1b2a7a6626a2a1d877116baba52a129bfa124f8e2"}, ] typing-extensions = [ {file = "typing_extensions-4.2.0-py3-none-any.whl", hash = "sha256:6657594ee297170d19f67d55c05852a874e7eb634f4f753dbd667855e07c1708"}, @@ -1417,39 +1520,44 @@ tzlocal = [ {file = "tzlocal-2.1-py2.py3-none-any.whl", hash = "sha256:e2cb6c6b5b604af38597403e9852872d7f534962ae2954c7f35efcb1ccacf4a4"}, {file = "tzlocal-2.1.tar.gz", hash = "sha256:643c97c5294aedc737780a49d9df30889321cbe1204eac2c2ec6134035a92e44"}, ] +virtualenv = [ + {file = "virtualenv-20.14.1-py2.py3-none-any.whl", hash = "sha256:e617f16e25b42eb4f6e74096b9c9e37713cf10bf30168fb4a739f3fa8f898a3a"}, + {file = "virtualenv-20.14.1.tar.gz", hash = "sha256:ef589a79795589aada0c1c5b319486797c03b67ac3984c48c669c0e4f50df3a5"}, +] watchdog = [ - {file = "watchdog-2.1.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:177bae28ca723bc00846466016d34f8c1d6a621383b6caca86745918d55c7383"}, - {file = "watchdog-2.1.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1d1cf7dfd747dec519486a98ef16097e6c480934ef115b16f18adb341df747a4"}, - {file = "watchdog-2.1.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7f14ce6adea2af1bba495acdde0e510aecaeb13b33f7bd2f6324e551b26688ca"}, - {file = "watchdog-2.1.7-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:4d0e98ac2e8dd803a56f4e10438b33a2d40390a72750cff4939b4b274e7906fa"}, - {file = "watchdog-2.1.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:81982c7884aac75017a6ecc72f1a4fedbae04181a8665a34afce9539fc1b3fab"}, - {file = "watchdog-2.1.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0b4a1fe6201c6e5a1926f5767b8664b45f0fcb429b62564a41f490ff1ce1dc7a"}, - {file = "watchdog-2.1.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6e6ae29b72977f2e1ee3d0b760d7ee47896cb53e831cbeede3e64485e5633cc8"}, - {file = "watchdog-2.1.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b9777664848160449e5b4260e0b7bc1ae0f6f4992a8b285db4ec1ef119ffa0e2"}, - {file = "watchdog-2.1.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:19b36d436578eb437e029c6b838e732ed08054956366f6dd11875434a62d2b99"}, - {file = "watchdog-2.1.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b61acffaf5cd5d664af555c0850f9747cc5f2baf71e54bbac164c58398d6ca7b"}, - {file = "watchdog-2.1.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1e877c70245424b06c41ac258023ea4bd0c8e4ff15d7c1368f17cd0ae6e351dd"}, - {file = "watchdog-2.1.7-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d802d65262a560278cf1a65ef7cae4e2bc7ecfe19e5451349e4c67e23c9dc420"}, - {file = "watchdog-2.1.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b3750ee5399e6e9c69eae8b125092b871ee9e2fcbd657a92747aea28f9056a5c"}, - {file = "watchdog-2.1.7-py3-none-manylinux2014_aarch64.whl", hash = "sha256:ed6d9aad09a2a948572224663ab00f8975fae242aa540509737bb4507133fa2d"}, - {file = "watchdog-2.1.7-py3-none-manylinux2014_armv7l.whl", hash = "sha256:b26e13e8008dcaea6a909e91d39b629a39635d1a8a7239dd35327c74f4388601"}, - {file = "watchdog-2.1.7-py3-none-manylinux2014_i686.whl", hash = "sha256:0908bb50f6f7de54d5d31ec3da1654cb7287c6b87bce371954561e6de379d690"}, - {file = "watchdog-2.1.7-py3-none-manylinux2014_ppc64.whl", hash = "sha256:bdcbf75580bf4b960fb659bbccd00123d83119619195f42d721e002c1621602f"}, - {file = "watchdog-2.1.7-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:81a5861d0158a7e55fe149335fb2bbfa6f48cbcbd149b52dbe2cd9a544034bbd"}, - {file = "watchdog-2.1.7-py3-none-manylinux2014_s390x.whl", hash = "sha256:03b43d583df0f18782a0431b6e9e9965c5b3f7cf8ec36a00b930def67942c385"}, - {file = "watchdog-2.1.7-py3-none-manylinux2014_x86_64.whl", hash = "sha256:ae934e34c11aa8296c18f70bf66ed60e9870fcdb4cc19129a04ca83ab23e7055"}, - {file = "watchdog-2.1.7-py3-none-win32.whl", hash = "sha256:49639865e3db4be032a96695c98ac09eed39bbb43fe876bb217da8f8101689a6"}, - {file = "watchdog-2.1.7-py3-none-win_amd64.whl", hash = "sha256:340b875aecf4b0e6672076a6f05cfce6686935559bb6d34cebedee04126a9566"}, - {file = "watchdog-2.1.7-py3-none-win_ia64.whl", hash = "sha256:351e09b6d9374d5bcb947e6ac47a608ec25b9d70583e9db00b2fcdb97b00b572"}, - {file = "watchdog-2.1.7.tar.gz", hash = "sha256:3fd47815353be9c44eebc94cc28fe26b2b0c5bd889dafc4a5a7cbdf924143480"}, + {file = "watchdog-2.1.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a735a990a1095f75ca4f36ea2ef2752c99e6ee997c46b0de507ba40a09bf7330"}, + {file = "watchdog-2.1.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b17d302850c8d412784d9246cfe8d7e3af6bcd45f958abb2d08a6f8bedf695d"}, + {file = "watchdog-2.1.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ee3e38a6cc050a8830089f79cbec8a3878ec2fe5160cdb2dc8ccb6def8552658"}, + {file = "watchdog-2.1.9-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:64a27aed691408a6abd83394b38503e8176f69031ca25d64131d8d640a307591"}, + {file = "watchdog-2.1.9-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:195fc70c6e41237362ba720e9aaf394f8178bfc7fa68207f112d108edef1af33"}, + {file = "watchdog-2.1.9-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:bfc4d351e6348d6ec51df007432e6fe80adb53fd41183716017026af03427846"}, + {file = "watchdog-2.1.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8250546a98388cbc00c3ee3cc5cf96799b5a595270dfcfa855491a64b86ef8c3"}, + {file = "watchdog-2.1.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:117ffc6ec261639a0209a3252546b12800670d4bf5f84fbd355957a0595fe654"}, + {file = "watchdog-2.1.9-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:97f9752208f5154e9e7b76acc8c4f5a58801b338de2af14e7e181ee3b28a5d39"}, + {file = "watchdog-2.1.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:247dcf1df956daa24828bfea5a138d0e7a7c98b1a47cf1fa5b0c3c16241fcbb7"}, + {file = "watchdog-2.1.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:226b3c6c468ce72051a4c15a4cc2ef317c32590d82ba0b330403cafd98a62cfd"}, + {file = "watchdog-2.1.9-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d9820fe47c20c13e3c9dd544d3706a2a26c02b2b43c993b62fcd8011bcc0adb3"}, + {file = "watchdog-2.1.9-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:70af927aa1613ded6a68089a9262a009fbdf819f46d09c1a908d4b36e1ba2b2d"}, + {file = "watchdog-2.1.9-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ed80a1628cee19f5cfc6bb74e173f1b4189eb532e705e2a13e3250312a62e0c9"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_aarch64.whl", hash = "sha256:9f05a5f7c12452f6a27203f76779ae3f46fa30f1dd833037ea8cbc2887c60213"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_armv7l.whl", hash = "sha256:255bb5758f7e89b1a13c05a5bceccec2219f8995a3a4c4d6968fe1de6a3b2892"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_i686.whl", hash = "sha256:d3dda00aca282b26194bdd0adec21e4c21e916956d972369359ba63ade616153"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_ppc64.whl", hash = "sha256:186f6c55abc5e03872ae14c2f294a153ec7292f807af99f57611acc8caa75306"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:083171652584e1b8829581f965b9b7723ca5f9a2cd7e20271edf264cfd7c1412"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_s390x.whl", hash = "sha256:b530ae007a5f5d50b7fbba96634c7ee21abec70dc3e7f0233339c81943848dc1"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_x86_64.whl", hash = "sha256:4f4e1c4aa54fb86316a62a87b3378c025e228178d55481d30d857c6c438897d6"}, + {file = "watchdog-2.1.9-py3-none-win32.whl", hash = "sha256:5952135968519e2447a01875a6f5fc8c03190b24d14ee52b0f4b1682259520b1"}, + {file = "watchdog-2.1.9-py3-none-win_amd64.whl", hash = "sha256:7a833211f49143c3d336729b0020ffd1274078e94b0ae42e22f596999f50279c"}, + {file = "watchdog-2.1.9-py3-none-win_ia64.whl", hash = "sha256:ad576a565260d8f99d97f2e64b0f97a48228317095908568a9d5c786c829d428"}, + {file = "watchdog-2.1.9.tar.gz", hash = "sha256:43ce20ebb36a51f21fa376f76d1d4692452b2527ccd601950d69ed36b9e21609"}, ] wcwidth = [ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, ] xmltodict = [ - {file = "xmltodict-0.12.0-py2.py3-none-any.whl", hash = "sha256:8bbcb45cc982f48b2ca8fe7e7827c5d792f217ecf1792626f808bf41c3b86051"}, - {file = "xmltodict-0.12.0.tar.gz", hash = "sha256:50d8c638ed7ecb88d90561beedbf720c9b4e851a9fa6c47ebd64e99d166d8a21"}, + {file = "xmltodict-0.13.0-py2.py3-none-any.whl", hash = "sha256:aa89e8fd76320154a40d19a0df04a4695fb9dc5ba977cbb68ab3e4eb225e7852"}, + {file = "xmltodict-0.13.0.tar.gz", hash = "sha256:341595a488e3e01a85a9d8911d8912fd922ede5fecc4dce437eb4b6c8d037e56"}, ] yq = [ {file = "yq-2.14.0-py3-none-any.whl", hash = "sha256:b6321b29cb39c4e92a4a6f16d47d99a024650211e45e09a02d1906ec45fbaede"}, diff --git a/pyproject.toml b/pyproject.toml index e37c3767..7733d0e2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,20 +37,12 @@ parsedatetime = ">=2.6" python-dateutil = "^2.8" # https://github.com/dateutil/dateutil/blob/master/RELEASING pyxdg = ">=0.27.0" "ruamel.yaml" = "^0.17.21" +rich = "^12.2.0" # dayone-only deps pytz = ">=2020" # https://pythonhosted.org/pytz/#issues-limitations tzlocal = ">2.0, <3.0" # https://github.com/regebro/tzlocal/blob/master/CHANGES.txt -# Minimal deps required for testing -# I don't like repeating deps here, but -# there's no other way to do this yet until poetry v1.2 releases -# see: https://github.com/python-poetry/poetry/issues/1644 -pytest = { version = ">=6.2", optional = true } -pytest-bdd = { version = ">=4.0.1", optional = true } -toml = { version = ">=0.10", optional = true } -rich = "^12.2.0" - [tool.poetry.dev-dependencies] mkdocs = ">=1.0,<1.3" black = { version = ">=21.5b2", allow-prereleases = true } @@ -58,9 +50,11 @@ toml = ">=0.10" pytest = ">=6.2" pytest-bdd = ">=4.0.1" ipdb = "*" +poethepoet = "*" pytest-clarity = "*" pyproject-flake8 = "*" yq = "*" +tox = "*" [tool.poetry.extras] testing = [ "pytest", "pytest-bdd", "toml" ] @@ -68,6 +62,49 @@ testing = [ "pytest", "pytest-bdd", "toml" ] [tool.poetry.scripts] jrnl = 'jrnl.cli:cli' +[tool.poe.tasks] +format = "black ." +format-check = "black --check --diff ." +format-version = "black --version" + +style-check = "pflake8 jrnl tests" +style-version = "pflake8 --version" + +docs = "mkdocs serve" + +test-unit = "tox -q -e unit --" +test-bdd = "tox -q -e bdd --" +test-all = "tox -e py --" + +installer-check = "poetry check" +installer-version = "poetry --version" + +# Groups of tasks +lint = [ + "installer-check", + "style-check", + "format-check", +] + +test = [ + "lint", + "test-unit", + "test-bdd", +] + +ci-lint = [ + "installer-version", + "installer-check", + "style-version", + "style-check", + "format-version", + "format-check", +] + +ci-test = [ + "test-all", +] + [tool.isort] multi_line_output = 7 force_single_line = true @@ -106,3 +143,25 @@ extend-ignore = "E101,E111,E114,E115,E116,E117,E12,E13,E2,E3,E401,E5,E70,W1,W2,W requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" +[tool.tox] +# see: https://tox.wiki/en/latest/example/basic.html +legacy_tox_ini = """ +[tox] +envlist = py-{unit,bdd} +isolated_build = True + +[testenv] +deps = + pytest >= 6.2 + pytest-bdd >=4.0.1 + toml >=0.10 +commands = pytest --junitxml=reports/pytest/results.xml {posargs} +passenv = HOME + +[testenv:unit] +commands = pytest tests/unit {posargs} + +[testenv:bdd] +commands = pytest tests/bdd --gherkin-terminal-reporter --tb=native {posargs} +""" + diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/bdd/features/build.feature b/tests/bdd/features/build.feature index e9b47b49..d2f5e950 100644 --- a/tests/bdd/features/build.feature +++ b/tests/bdd/features/build.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Build process Scenario: Version numbers should stay in sync diff --git a/tests/bdd/features/change_time.feature b/tests/bdd/features/change_time.feature index bd8e77f7..7f4a08e3 100644 --- a/tests/bdd/features/change_time.feature +++ b/tests/bdd/features/change_time.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Change entry times in journal Scenario Outline: Change time flag changes single entry timestamp Given we use the config "" diff --git a/tests/bdd/features/config_file.feature b/tests/bdd/features/config_file.feature index d32d800c..d8bcfc31 100644 --- a/tests/bdd/features/config_file.feature +++ b/tests/bdd/features/config_file.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Multiple journals Scenario: Read a journal from an alternate config diff --git a/tests/bdd/features/core.feature b/tests/bdd/features/core.feature index 4399341d..7b8de194 100644 --- a/tests/bdd/features/core.feature +++ b/tests/bdd/features/core.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Functionality of jrnl outside of actually handling journals Scenario: Displaying the version number diff --git a/tests/bdd/features/datetime.feature b/tests/bdd/features/datetime.feature index 1b9d00b9..28d63169 100644 --- a/tests/bdd/features/datetime.feature +++ b/tests/bdd/features/datetime.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Reading and writing to journal with custom date formats Scenario: Dates can include a time diff --git a/tests/bdd/features/delete.feature b/tests/bdd/features/delete.feature index fe323966..806abb18 100644 --- a/tests/bdd/features/delete.feature +++ b/tests/bdd/features/delete.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Delete entries from journal Scenario Outline: Delete flag allows deletion of single entry Given we use the config "" diff --git a/tests/bdd/features/encrypt.feature b/tests/bdd/features/encrypt.feature index 09a80bcc..16c8855c 100644 --- a/tests/bdd/features/encrypt.feature +++ b/tests/bdd/features/encrypt.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Encrypting and decrypting journals Scenario: Decrypting a journal diff --git a/tests/bdd/features/file_storage.feature b/tests/bdd/features/file_storage.feature index 5cb6ba45..0e54f620 100644 --- a/tests/bdd/features/file_storage.feature +++ b/tests/bdd/features/file_storage.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Journals iteracting with the file system in a way that users can see Scenario: Adding entries to a Folder journal should generate date files diff --git a/tests/bdd/features/format.feature b/tests/bdd/features/format.feature index ce29a016..9781ff51 100644 --- a/tests/bdd/features/format.feature +++ b/tests/bdd/features/format.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Custom formats Scenario Outline: Short printing via --format flag diff --git a/tests/bdd/features/import.feature b/tests/bdd/features/import.feature index 920cddf2..3872702e 100644 --- a/tests/bdd/features/import.feature +++ b/tests/bdd/features/import.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Importing data Scenario Outline: --import allows new entry from stdin diff --git a/tests/bdd/features/multiple_journals.feature b/tests/bdd/features/multiple_journals.feature index 09bd71fd..642149ca 100644 --- a/tests/bdd/features/multiple_journals.feature +++ b/tests/bdd/features/multiple_journals.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Multiple journals Scenario: Loading a config with two journals diff --git a/tests/bdd/features/override.feature b/tests/bdd/features/override.feature index 90b7e40b..9af459f3 100644 --- a/tests/bdd/features/override.feature +++ b/tests/bdd/features/override.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Implementing Runtime Overrides for Select Configuration Keys Scenario: Override configured editor with built-in input === editor:'' diff --git a/tests/bdd/features/password.feature b/tests/bdd/features/password.feature index 23a08aab..cf00f85c 100644 --- a/tests/bdd/features/password.feature +++ b/tests/bdd/features/password.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Using the installed keyring Scenario: Storing a password in keyring diff --git a/tests/bdd/features/search.feature b/tests/bdd/features/search.feature index 60b4fefb..239f74d5 100644 --- a/tests/bdd/features/search.feature +++ b/tests/bdd/features/search.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Searching in a journal Scenario Outline: Displaying entries using -on today should display entries created today diff --git a/tests/bdd/features/star.feature b/tests/bdd/features/star.feature index f59a7ecc..825ee2fa 100644 --- a/tests/bdd/features/star.feature +++ b/tests/bdd/features/star.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Starring entries Scenario Outline: Starring an entry will mark it in the journal file diff --git a/tests/bdd/features/tag.feature b/tests/bdd/features/tag.feature index a62b5ac8..1d762431 100644 --- a/tests/bdd/features/tag.feature +++ b/tests/bdd/features/tag.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Tagging # See search.feature for tag-related searches # And format.feature for tag-related output diff --git a/tests/bdd/features/upgrade.feature b/tests/bdd/features/upgrade.feature index c092dedb..5e53130a 100644 --- a/tests/bdd/features/upgrade.feature +++ b/tests/bdd/features/upgrade.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Upgrading Journals from 1.x.x to 2.x.x Scenario: Upgrade and parse journals with square brackets diff --git a/tests/bdd/features/write.feature b/tests/bdd/features/write.feature index ede1934b..fe0573ff 100644 --- a/tests/bdd/features/write.feature +++ b/tests/bdd/features/write.feature @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + Feature: Writing new entries. Scenario Outline: Multiline entry with punctuation should keep title punctuation diff --git a/tests/bdd/test_features.py b/tests/bdd/test_features.py index 04f9d46f..fda146e1 100644 --- a/tests/bdd/test_features.py +++ b/tests/bdd/test_features.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + from pytest_bdd import scenarios scenarios("features/build.feature") diff --git a/tests/conftest.py b/tests/conftest.py index c4dc5ef5..ed85affa 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html from pytest import mark diff --git a/tests/lib/fixtures.py b/tests/lib/fixtures.py index 6fc7cc2a..1ad17708 100644 --- a/tests/lib/fixtures.py +++ b/tests/lib/fixtures.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html from collections import defaultdict diff --git a/tests/lib/given_steps.py b/tests/lib/given_steps.py index 4b545849..6da84643 100644 --- a/tests/lib/given_steps.py +++ b/tests/lib/given_steps.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html from datetime import datetime diff --git a/tests/lib/helpers.py b/tests/lib/helpers.py index ad68cde3..39a24f71 100644 --- a/tests/lib/helpers.py +++ b/tests/lib/helpers.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html import functools diff --git a/tests/lib/then_steps.py b/tests/lib/then_steps.py index 5ec83d3c..08d8ddc7 100644 --- a/tests/lib/then_steps.py +++ b/tests/lib/then_steps.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html import json diff --git a/tests/lib/when_steps.py b/tests/lib/when_steps.py index bc1d742d..759c708d 100644 --- a/tests/lib/when_steps.py +++ b/tests/lib/when_steps.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html from contextlib import ExitStack diff --git a/tests/unit/test_color.py b/tests/unit/test_color.py index 527b8e89..800d619a 100644 --- a/tests/unit/test_color.py +++ b/tests/unit/test_color.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + from colorama import Fore from colorama import Style import pytest diff --git a/tests/unit/test_config_file.py b/tests/unit/test_config_file.py index f9cdb7ec..0ffb3b38 100644 --- a/tests/unit/test_config_file.py +++ b/tests/unit/test_config_file.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + import pytest import os diff --git a/tests/unit/test_export.py b/tests/unit/test_export.py index 1ca8856f..c5137794 100644 --- a/tests/unit/test_export.py +++ b/tests/unit/test_export.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + import pytest from jrnl.exception import JrnlException diff --git a/tests/unit/test_install.py b/tests/unit/test_install.py index bc36b927..8e5db8df 100644 --- a/tests/unit/test_install.py +++ b/tests/unit/test_install.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + import sys from unittest import mock diff --git a/tests/unit/test_jrnl.py b/tests/unit/test_jrnl.py index f87f6dad..247a9fd1 100644 --- a/tests/unit/test_jrnl.py +++ b/tests/unit/test_jrnl.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + from unittest import mock import pytest diff --git a/tests/unit/test_os_compat.py b/tests/unit/test_os_compat.py index 02d54716..2a3b0b14 100644 --- a/tests/unit/test_os_compat.py +++ b/tests/unit/test_os_compat.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + from unittest import mock import pytest diff --git a/tests/unit/test_output.py b/tests/unit/test_output.py index 0fa9f45b..e93ec44a 100644 --- a/tests/unit/test_output.py +++ b/tests/unit/test_output.py @@ -1,5 +1,6 @@ -# Copyright (C) 2012-2021 jrnl contributors +# Copyright (C) 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html + from unittest.mock import Mock from unittest.mock import patch diff --git a/tests/unit/test_override.py b/tests/unit/test_override.py index 2719e884..438ae03b 100644 --- a/tests/unit/test_override.py +++ b/tests/unit/test_override.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + import pytest from jrnl.override import _convert_dots_to_list diff --git a/tests/unit/test_parse_args.py b/tests/unit/test_parse_args.py index 7acae571..6c187576 100644 --- a/tests/unit/test_parse_args.py +++ b/tests/unit/test_parse_args.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + import shlex import pytest diff --git a/tests/unit/test_path.py b/tests/unit/test_path.py index a13b89e5..efc6e54d 100644 --- a/tests/unit/test_path.py +++ b/tests/unit/test_path.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + import pytest import random import string diff --git a/tests/unit/test_time.py b/tests/unit/test_time.py index 5f22148e..8bed5f86 100644 --- a/tests/unit/test_time.py +++ b/tests/unit/test_time.py @@ -1,3 +1,6 @@ +# Copyright (C) 2012-2022 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + import datetime from jrnl import time