Add initial a11y config for docs site (#1067)

This commit is contained in:
Jonathan Wren 2020-10-31 13:59:38 -07:00 committed by GitHub
parent b0b98d85fe
commit 57de3b7d81
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 311 additions and 236 deletions

View file

@ -13,7 +13,12 @@ executors:
python39: python39:
docker: docker:
- image: circleci/python:3.9.0 - image: cimg/python:3.9.0
resource_class: small
with_browser:
docker:
- image: cimg/python:3.9.0-browsers
resource_class: small resource_class: small
commands: commands:
@ -34,6 +39,18 @@ commands:
paths: paths:
- ~/project/.venv - ~/project/.venv
install_pa11y:
steps:
- restore_cache:
key: deps-00-pa11y
- run:
name: Install accessibility software (pa11y)
command: npm install pa11y pa11y-reporter-junit
- save_cache:
key: deps-00-pa11y
paths:
- ~/project/node_modules
pytest: pytest:
steps: steps:
- run: - run:
@ -107,10 +124,26 @@ jobs:
- get_poetry_deps - get_poetry_deps
- lint - lint
docs_a11y:
executor: with_browser
steps:
- checkout
- get_poetry_deps
- install_pa11y
- run:
name: Starting mkdocs server
command: poetry run mkdocs serve
background: true
- run: poetry run .circleci/pa11y.sh
- store_test_results:
path: reports
workflows: workflows:
version: 2 version: 2
main: main:
jobs: jobs:
- docs_a11y:
name: Documentation site (jrnl.sh) accessibility
- linting: - linting:
name: Linting and Formatting name: Linting and Formatting
- test_37_linux: - test_37_linux:

19
.circleci/pa11y.sh Executable file
View file

@ -0,0 +1,19 @@
#! /bin/bash
set +e
reports_dir="reports/pa11y"
site_url="http://127.0.0.1:8000"
exit_code=0
mkdocs build
mkdir -p "$reports_dir"
printf -- 'scanning: /\n'
./node_modules/.bin/pa11y "$site_url" --reporter junit > "$reports_dir/root.xml" || exit_code=2
for file in $(xq '.urlset.url[].loc' site/sitemap.xml -r | sed -r 's!https://jrnl.sh/(.*?)/$!\1!'); do
printf -- 'scanning: /%s\n' "$file"
./node_modules/.bin/pa11y "$site_url/$file" --reporter junit > "$reports_dir/$file.xml" || exit_code=2
done
exit $exit_code

View file

@ -1,4 +1,5 @@
site_name: jrnl site_name: jrnl
site_url: https://jrnl.sh
theme: theme:
name: readthedocs name: readthedocs
custom_dir: docs/theme custom_dir: docs/theme

491
poetry.lock generated
View file

@ -1,60 +1,73 @@
[[package]] [[package]]
category = "main"
description = "textwrap, but savvy to ANSI colors and styles"
name = "ansiwrap" name = "ansiwrap"
version = "0.8.4"
description = "textwrap, but savvy to ANSI colors and styles"
category = "main"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "0.8.4"
[package.dependencies] [package.dependencies]
textwrap3 = ">=0.9.2" textwrap3 = ">=0.9.2"
[[package]] [[package]]
category = "dev"
description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
name = "appdirs" name = "appdirs"
version = "1.4.4"
description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
category = "dev"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "1.4.4"
[[package]]
category = "main"
description = "Safe, minimalistic evaluator of python expression using ast module"
name = "asteval"
optional = false
python-versions = ">=3.5"
version = "0.9.19"
[[package]] [[package]]
name = "argcomplete"
version = "1.12.1"
description = "Bash tab completion for argparse"
category = "dev" category = "dev"
description = "Atomic file writes."
marker = "sys_platform == \"win32\""
name = "atomicwrites"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = "*"
version = "1.4.0"
[[package]] [package.dependencies]
category = "dev" importlib-metadata = {version = ">=0.23,<3", markers = "python_version == \"3.7\""}
description = "Classes Without Boilerplate"
name = "attrs"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "20.2.0"
[package.extras] [package.extras]
dev = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "sphinx", "sphinx-rtd-theme", "pre-commit"] test = ["coverage", "flake8", "pexpect", "wheel"]
docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"]
tests = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"]
tests_no_zope = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"]
[[package]] [[package]]
name = "asteval"
version = "0.9.19"
description = "Safe, minimalistic evaluator of python expression using ast module"
category = "main"
optional = false
python-versions = ">=3.5"
[[package]]
name = "atomicwrites"
version = "1.4.0"
description = "Atomic file writes."
category = "dev" category = "dev"
description = "behave is behaviour-driven development, Python style" optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "attrs"
version = "20.2.0"
description = "Classes Without Boilerplate"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[package.extras]
dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "sphinx", "sphinx-rtd-theme", "pre-commit"]
docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"]
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"]
tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"]
[[package]]
name = "behave" name = "behave"
version = "1.2.6"
description = "behave is behaviour-driven development, Python style"
category = "dev"
optional = false optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
version = "1.2.6"
[package.dependencies] [package.dependencies]
parse = ">=1.8.2" parse = ">=1.8.2"
@ -66,12 +79,12 @@ develop = ["coverage", "pytest (>=3.0)", "pytest-cov", "tox", "invoke (>=0.21.0)
docs = ["sphinx (>=1.6)", "sphinx-bootstrap-theme (>=0.6)"] docs = ["sphinx (>=1.6)", "sphinx-bootstrap-theme (>=0.6)"]
[[package]] [[package]]
category = "dev"
description = "The uncompromising code formatter."
name = "black" name = "black"
version = "19.10b0"
description = "The uncompromising code formatter."
category = "dev"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
version = "19.10b0"
[package.dependencies] [package.dependencies]
appdirs = "*" appdirs = "*"
@ -86,67 +99,66 @@ typed-ast = ">=1.4.0"
d = ["aiohttp (>=3.3.2)", "aiohttp-cors"] d = ["aiohttp (>=3.3.2)", "aiohttp-cors"]
[[package]] [[package]]
category = "main"
description = "Foreign Function Interface for Python calling C code."
name = "cffi" name = "cffi"
version = "1.14.3"
description = "Foreign Function Interface for Python calling C code."
category = "main"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "1.14.3"
[package.dependencies] [package.dependencies]
pycparser = "*" pycparser = "*"
[[package]] [[package]]
category = "dev"
description = "Composable command line interface toolkit"
name = "click" name = "click"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "7.1.2" version = "7.1.2"
description = "Composable command line interface toolkit"
[[package]] category = "dev"
category = "main"
description = "Cross-platform colored terminal text."
name = "colorama"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "0.4.3"
[[package]] [[package]]
name = "colorama"
version = "0.4.3"
description = "Cross-platform colored terminal text."
category = "main" category = "main"
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[[package]]
name = "cryptography" name = "cryptography"
version = "3.1.1"
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
category = "main"
optional = false optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
version = "3.1.1"
[package.dependencies] [package.dependencies]
cffi = ">=1.8,<1.11.3 || >1.11.3" cffi = ">=1.8,<1.11.3 || >1.11.3"
six = ">=1.4.1" six = ">=1.4.1"
[package.extras] [package.extras]
docs = ["sphinx (>=1.6.5,<1.8.0 || >1.8.0,<3.1.0 || >3.1.0,<3.1.1 || >3.1.1)", "sphinx-rtd-theme"] docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"] docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
ssh = ["bcrypt (>=3.1.5)"] ssh = ["bcrypt (>=3.1.5)"]
test = ["pytest (>=3.6.0,<3.9.0 || >3.9.0,<3.9.1 || >3.9.1,<3.9.2 || >3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,<3.79.2 || >3.79.2)"] test = ["pytest (>=3.6.0,!=3.9.0,!=3.9.1,!=3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
[[package]] [[package]]
category = "dev"
description = "Clean single-source support for Python 3 and 2"
name = "future" name = "future"
version = "0.18.2"
description = "Clean single-source support for Python 3 and 2"
category = "dev"
optional = false optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
version = "0.18.2"
[[package]] [[package]]
category = "main"
description = "Read metadata from Python packages"
marker = "python_version < \"3.8\""
name = "importlib-metadata" name = "importlib-metadata"
version = "2.0.0"
description = "Read metadata from Python packages"
category = "main"
optional = false optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
version = "2.0.0"
[package.dependencies] [package.dependencies]
zipp = ">=0.5" zipp = ">=0.5"
@ -156,24 +168,23 @@ docs = ["sphinx", "rst.linker"]
testing = ["packaging", "pep517", "importlib-resources (>=1.3)"] testing = ["packaging", "pep517", "importlib-resources (>=1.3)"]
[[package]] [[package]]
category = "main"
description = "Low-level, pure Python DBus protocol wrapper."
marker = "sys_platform == \"linux\""
name = "jeepney" name = "jeepney"
version = "0.4.3"
description = "Low-level, pure Python DBus protocol wrapper."
category = "main"
optional = false optional = false
python-versions = ">=3.5" python-versions = ">=3.5"
version = "0.4.3"
[package.extras] [package.extras]
dev = ["testpath"] dev = ["testpath"]
[[package]] [[package]]
category = "dev"
description = "A very fast and expressive template engine."
name = "jinja2" name = "jinja2"
version = "2.11.2"
description = "A very fast and expressive template engine."
category = "dev"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "2.11.2"
[package.dependencies] [package.dependencies]
MarkupSafe = ">=0.23" MarkupSafe = ">=0.23"
@ -182,130 +193,113 @@ MarkupSafe = ">=0.23"
i18n = ["Babel (>=0.8)"] i18n = ["Babel (>=0.8)"]
[[package]] [[package]]
category = "dev"
description = "Lightweight pipelining: using Python functions as pipeline jobs."
marker = "python_version > \"2.7\""
name = "joblib" name = "joblib"
version = "0.17.0"
description = "Lightweight pipelining: using Python functions as pipeline jobs."
category = "dev"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
version = "0.17.0"
[[package]] [[package]]
category = "main"
description = "Store and access your passwords safely."
name = "keyring" name = "keyring"
version = "21.4.0"
description = "Store and access your passwords safely."
category = "main"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
version = "21.4.0"
[package.dependencies] [package.dependencies]
SecretStorage = ">=3" importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
jeepney = ">=0.4.2" jeepney = {version = ">=0.4.2", markers = "sys_platform == \"linux\""}
pywin32-ctypes = "<0.1.0 || >0.1.0,<0.1.1 || >0.1.1" pywin32-ctypes = {version = "<0.1.0 || >0.1.0,<0.1.1 || >0.1.1", markers = "sys_platform == \"win32\""}
SecretStorage = {version = ">=3", markers = "sys_platform == \"linux\""}
[package.dependencies.importlib-metadata]
python = "<3.8"
version = "*"
[package.extras] [package.extras]
docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black (>=0.3.7)", "pytest-cov", "pytest-mypy"] testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black (>=0.3.7)", "pytest-cov", "pytest-mypy"]
[[package]] [[package]]
category = "dev"
description = "Python LiveReload is an awesome tool for web developers"
name = "livereload" name = "livereload"
version = "2.6.3"
description = "Python LiveReload is an awesome tool for web developers"
category = "dev"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "2.6.3"
[package.dependencies] [package.dependencies]
six = "*" six = "*"
tornado = {version = "*", markers = "python_version > \"2.7\""}
[package.dependencies.tornado]
python = ">=2.8"
version = "*"
[[package]] [[package]]
category = "dev"
description = "A Python implementation of Lunr.js"
name = "lunr" name = "lunr"
version = "0.5.8"
description = "A Python implementation of Lunr.js"
category = "dev"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "0.5.8"
[package.dependencies] [package.dependencies]
future = ">=0.16.0" future = ">=0.16.0"
nltk = {version = ">=3.2.5", optional = true, markers = "python_version > \"2.7\" and extra == \"languages\""}
six = ">=1.11.0" six = ">=1.11.0"
[package.dependencies.nltk]
optional = true
python = ">=2.8"
version = ">=3.2.5"
[package.extras] [package.extras]
languages = ["nltk (>=3.2.5,<3.5)", "nltk (>=3.2.5)"] languages = ["nltk (>=3.2.5,<3.5)", "nltk (>=3.2.5)"]
[[package]] [[package]]
category = "dev"
description = "Python implementation of Markdown."
name = "markdown" name = "markdown"
version = "3.3"
description = "Python implementation of Markdown."
category = "dev"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
version = "3.3"
[package.dependencies] [package.dependencies]
[package.dependencies.importlib-metadata] importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
python = "<3.8"
version = "*"
[package.extras] [package.extras]
testing = ["coverage", "pyyaml"] testing = ["coverage", "pyyaml"]
[[package]] [[package]]
category = "dev"
description = "Safely add untrusted strings to HTML/XML markup."
name = "markupsafe" name = "markupsafe"
version = "1.1.1"
description = "Safely add untrusted strings to HTML/XML markup."
category = "dev"
optional = false optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
version = "1.1.1"
[[package]] [[package]]
category = "dev"
description = "Project documentation with Markdown."
name = "mkdocs" name = "mkdocs"
version = "1.1.2"
description = "Project documentation with Markdown."
category = "dev"
optional = false optional = false
python-versions = ">=3.5" python-versions = ">=3.5"
version = "1.1.2"
[package.dependencies] [package.dependencies]
click = ">=3.3"
Jinja2 = ">=2.10.1" Jinja2 = ">=2.10.1"
livereload = ">=2.5.1"
lunr = {version = "0.5.8", extras = ["languages"]}
Markdown = ">=3.2.1" Markdown = ">=3.2.1"
PyYAML = ">=3.10" PyYAML = ">=3.10"
click = ">=3.3"
livereload = ">=2.5.1"
tornado = ">=5.0" tornado = ">=5.0"
[package.dependencies.lunr]
extras = ["languages"]
version = "0.5.8"
[[package]] [[package]]
category = "dev"
description = "More routines for operating on iterables, beyond itertools"
name = "more-itertools" name = "more-itertools"
version = "8.5.0"
description = "More routines for operating on iterables, beyond itertools"
category = "dev"
optional = false optional = false
python-versions = ">=3.5" python-versions = ">=3.5"
version = "8.5.0"
[[package]] [[package]]
category = "dev"
description = "Natural Language Toolkit"
marker = "python_version > \"2.7\""
name = "nltk" name = "nltk"
version = "3.5"
description = "Natural Language Toolkit"
category = "dev"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "3.5"
[package.dependencies] [package.dependencies]
click = "*" click = "*"
@ -322,32 +316,32 @@ tgrep = ["pyparsing"]
twitter = ["twython"] twitter = ["twython"]
[[package]] [[package]]
category = "main"
description = "Core utilities for Python packages"
name = "packaging" name = "packaging"
version = "20.4"
description = "Core utilities for Python packages"
category = "main"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "20.4"
[package.dependencies] [package.dependencies]
pyparsing = ">=2.0.2" pyparsing = ">=2.0.2"
six = "*" six = "*"
[[package]] [[package]]
category = "dev"
description = "parse() is the opposite of format()"
name = "parse" name = "parse"
version = "1.18.0"
description = "parse() is the opposite of format()"
category = "dev"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "1.18.0"
[[package]] [[package]]
category = "dev"
description = "Simplifies to build parse types based on the parse module"
name = "parse-type" name = "parse-type"
version = "0.5.2"
description = "Simplifies to build parse types based on the parse module"
category = "dev"
optional = false optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*" python-versions = ">=2.6, !=3.0.*, !=3.1.*"
version = "0.5.2"
[package.dependencies] [package.dependencies]
parse = ">=1.8.4" parse = ">=1.8.4"
@ -358,20 +352,20 @@ develop = ["coverage (>=4.4)", "pytest (>=3.2)", "pytest-cov", "tox (>=2.8)"]
docs = ["sphinx (>=1.2)"] docs = ["sphinx (>=1.2)"]
[[package]] [[package]]
category = "main"
description = "Parse human-readable date/time text."
name = "parsedatetime" name = "parsedatetime"
version = "2.6"
description = "Parse human-readable date/time text."
category = "main"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "2.6"
[[package]] [[package]]
category = "main"
description = "comprehensive password hashing framework supporting over 30 schemes"
name = "passlib" name = "passlib"
version = "1.7.4"
description = "comprehensive password hashing framework supporting over 30 schemes"
category = "main"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "1.7.4"
[package.extras] [package.extras]
argon2 = ["argon2-cffi (>=18.2.0)"] argon2 = ["argon2-cffi (>=18.2.0)"]
@ -380,240 +374,255 @@ build_docs = ["sphinx (>=1.6)", "sphinxcontrib-fulltoc (>=1.2.0)", "cloud-spthem
totp = ["cryptography"] totp = ["cryptography"]
[[package]] [[package]]
category = "dev"
description = "Utility library for gitignore style pattern matching of file paths."
name = "pathspec" name = "pathspec"
version = "0.8.0"
description = "Utility library for gitignore style pattern matching of file paths."
category = "dev"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "0.8.0"
[[package]] [[package]]
category = "dev"
description = "plugin and hook calling mechanisms for python"
name = "pluggy" name = "pluggy"
version = "0.13.1"
description = "plugin and hook calling mechanisms for python"
category = "dev"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "0.13.1"
[package.dependencies] [package.dependencies]
[package.dependencies.importlib-metadata] importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
python = "<3.8"
version = ">=0.12"
[package.extras] [package.extras]
dev = ["pre-commit", "tox"] dev = ["pre-commit", "tox"]
[[package]] [[package]]
category = "dev"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
name = "py" name = "py"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.9.0" version = "1.9.0"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
[[package]]
category = "main"
description = "C parser in Python"
name = "pycparser"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "2.20"
[[package]]
category = "dev" category = "dev"
description = "passive checker of Python programs"
name = "pyflakes"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "2.2.0"
[[package]] [[package]]
name = "pycparser"
version = "2.20"
description = "C parser in Python"
category = "main" category = "main"
description = "Python parsing module" optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "pyflakes"
version = "2.2.0"
description = "passive checker of Python programs"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "pyparsing" name = "pyparsing"
version = "2.4.7"
description = "Python parsing module"
category = "main"
optional = false optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
version = "2.4.7"
[[package]] [[package]]
category = "dev"
description = "pytest: simple powerful testing with Python"
name = "pytest" name = "pytest"
version = "5.4.3"
description = "pytest: simple powerful testing with Python"
category = "dev"
optional = false optional = false
python-versions = ">=3.5" python-versions = ">=3.5"
version = "5.4.3"
[package.dependencies] [package.dependencies]
atomicwrites = ">=1.0" atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
attrs = ">=17.4.0" attrs = ">=17.4.0"
colorama = "*" colorama = {version = "*", markers = "sys_platform == \"win32\""}
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
more-itertools = ">=4.0.0" more-itertools = ">=4.0.0"
packaging = "*" packaging = "*"
pluggy = ">=0.12,<1.0" pluggy = ">=0.12,<1.0"
py = ">=1.5.0" py = ">=1.5.0"
wcwidth = "*" wcwidth = "*"
[package.dependencies.importlib-metadata]
python = "<3.8"
version = ">=0.12"
[package.extras] [package.extras]
checkqa-mypy = ["mypy (v0.761)"] checkqa-mypy = ["mypy (==v0.761)"]
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
[[package]] [[package]]
category = "main"
description = "Extensions to the standard Python datetime module"
name = "python-dateutil" name = "python-dateutil"
version = "2.8.1"
description = "Extensions to the standard Python datetime module"
category = "main"
optional = false optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
version = "2.8.1"
[package.dependencies] [package.dependencies]
six = ">=1.5" six = ">=1.5"
[[package]] [[package]]
category = "main"
description = "World timezone definitions, modern and historical"
name = "pytz" name = "pytz"
optional = false
python-versions = "*"
version = "2020.1" version = "2020.1"
description = "World timezone definitions, modern and historical"
category = "main"
optional = false
python-versions = "*"
[[package]] [[package]]
category = "main"
description = ""
marker = "sys_platform == \"win32\""
name = "pywin32-ctypes" name = "pywin32-ctypes"
optional = false
python-versions = "*"
version = "0.2.0" version = "0.2.0"
description = ""
[[package]]
category = "main" category = "main"
description = "PyXDG contains implementations of freedesktop.org standards in python."
name = "pyxdg"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "0.26"
[[package]] [[package]]
name = "pyxdg"
version = "0.26"
description = "PyXDG contains implementations of freedesktop.org standards in python."
category = "main" category = "main"
description = "YAML parser and emitter for Python" optional = false
python-versions = "*"
[[package]]
name = "pyyaml" name = "pyyaml"
version = "5.3.1"
description = "YAML parser and emitter for Python"
category = "main"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "5.3.1"
[[package]] [[package]]
category = "dev"
description = "Alternative regular expression module, to replace re."
name = "regex" name = "regex"
version = "2020.9.27"
description = "Alternative regular expression module, to replace re."
category = "dev"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "2020.9.27"
[[package]] [[package]]
category = "main"
description = "Python bindings to FreeDesktop.org Secret Service API"
marker = "sys_platform == \"linux\""
name = "secretstorage" name = "secretstorage"
version = "3.1.2"
description = "Python bindings to FreeDesktop.org Secret Service API"
category = "main"
optional = false optional = false
python-versions = ">=3.5" python-versions = ">=3.5"
version = "3.1.2"
[package.dependencies] [package.dependencies]
cryptography = "*" cryptography = "*"
jeepney = ">=0.4.2" jeepney = ">=0.4.2"
[[package]] [[package]]
category = "main"
description = "Python 2 and 3 compatibility utilities"
name = "six" name = "six"
version = "1.15.0"
description = "Python 2 and 3 compatibility utilities"
category = "main"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
version = "1.15.0"
[[package]] [[package]]
category = "main"
description = "textwrap from Python 3.6 backport (plus a few tweaks)"
name = "textwrap3" name = "textwrap3"
optional = false
python-versions = "*"
version = "0.9.2" version = "0.9.2"
description = "textwrap from Python 3.6 backport (plus a few tweaks)"
[[package]] category = "main"
category = "dev"
description = "Python Library for Tom's Obvious, Minimal Language"
name = "toml"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "0.10.1"
[[package]] [[package]]
name = "toml"
version = "0.10.1"
description = "Python Library for Tom's Obvious, Minimal Language"
category = "dev" category = "dev"
description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." optional = false
python-versions = "*"
[[package]]
name = "tornado" name = "tornado"
version = "6.0.4"
description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed."
category = "dev"
optional = false optional = false
python-versions = ">= 3.5" python-versions = ">= 3.5"
version = "6.0.4"
[[package]] [[package]]
category = "dev"
description = "Fast, Extensible Progress Meter"
marker = "python_version > \"2.7\""
name = "tqdm" name = "tqdm"
version = "4.50.2"
description = "Fast, Extensible Progress Meter"
category = "dev"
optional = false optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*" python-versions = ">=2.6, !=3.0.*, !=3.1.*"
version = "4.50.2"
[package.extras] [package.extras]
dev = ["py-make (>=0.1.0)", "twine", "argopt", "pydoc-markdown"] dev = ["py-make (>=0.1.0)", "twine", "argopt", "pydoc-markdown"]
[[package]] [[package]]
category = "dev"
description = "a fork of Python 2 and 3 ast modules with type comment support"
name = "typed-ast" name = "typed-ast"
version = "1.4.1"
description = "a fork of Python 2 and 3 ast modules with type comment support"
category = "dev"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "1.4.1"
[[package]] [[package]]
category = "main"
description = "tzinfo object for the local timezone"
name = "tzlocal" name = "tzlocal"
version = "2.1"
description = "tzinfo object for the local timezone"
category = "main"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "2.1"
[package.dependencies] [package.dependencies]
pytz = "*" pytz = "*"
[[package]] [[package]]
category = "dev"
description = "Measures the displayed width of unicode strings in a terminal"
name = "wcwidth" name = "wcwidth"
version = "0.2.5"
description = "Measures the displayed width of unicode strings in a terminal"
category = "dev"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "0.2.5"
[[package]] [[package]]
category = "main" name = "xmltodict"
description = "Backport of pathlib-compatible object wrapper for zip files" version = "0.12.0"
marker = "python_version < \"3.8\"" 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.*"
[[package]]
name = "yq"
version = "2.11.1"
description = "Command-line YAML/XML processor - jq wrapper for YAML/XML documents"
category = "dev"
optional = false
python-versions = "*"
[package.dependencies]
argcomplete = ">=1.8.1"
PyYAML = ">=3.11"
xmltodict = ">=0.11.0"
[package.extras]
test = ["coverage", "flake8", "wheel"]
[[package]]
name = "zipp" name = "zipp"
version = "3.3.0"
description = "Backport of pathlib-compatible object wrapper for zip files"
category = "main"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
version = "3.3.0"
[package.extras] [package.extras]
docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
[metadata] [metadata]
content-hash = "6e7e582ba81ff33c4e7fe269d2414ca73dcacc99511d448df7adf90cd2706544" lock-version = "1.1"
lock-version = "1.0"
python-versions = ">=3.7.0, <3.10.0" python-versions = ">=3.7.0, <3.10.0"
content-hash = "e5c081711d289972c8aec19f21e5aa429540736814a75828fb00ca199af42d22"
[metadata.files] [metadata.files]
ansiwrap = [ ansiwrap = [
@ -624,6 +633,10 @@ appdirs = [
{file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"},
{file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"},
] ]
argcomplete = [
{file = "argcomplete-1.12.1-py2.py3-none-any.whl", hash = "sha256:5cd1ac4fc49c29d6016fc2cc4b19a3c08c3624544503495bf25989834c443898"},
{file = "argcomplete-1.12.1.tar.gz", hash = "sha256:849c2444c35bb2175aea74100ca5f644c29bf716429399c0f2203bb5d9a8e4e6"},
]
asteval = [ asteval = [
{file = "asteval-0.9.19.tar.gz", hash = "sha256:445f3a59df692c0c0ff2868c0bbf9b293884db4a9f9a13c73555485ba75ed08b"}, {file = "asteval-0.9.19.tar.gz", hash = "sha256:445f3a59df692c0c0ff2868c0bbf9b293884db4a9f9a13c73555485ba75ed08b"},
] ]
@ -960,6 +973,14 @@ wcwidth = [
{file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"},
{file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, {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"},
]
yq = [
{file = "yq-2.11.1-py2.py3-none-any.whl", hash = "sha256:c1e1d6abb6e80beacb9c40f9eb1105b6fc2a08d3dc908237f69f197e683cff1b"},
{file = "yq-2.11.1.tar.gz", hash = "sha256:74f64e3784a34d8a18efd8addc83cf5ca3478a0a69517d70fd9158a3809f99e0"},
]
zipp = [ zipp = [
{file = "zipp-3.3.0-py3-none-any.whl", hash = "sha256:eed8ec0b8d1416b2ca33516a37a08892442f3954dee131e92cfd92d8fe3e7066"}, {file = "zipp-3.3.0-py3-none-any.whl", hash = "sha256:eed8ec0b8d1416b2ca33516a37a08892442f3954dee131e92cfd92d8fe3e7066"},
{file = "zipp-3.3.0.tar.gz", hash = "sha256:64ad89efee774d1897a58607895d80789c59778ea02185dd846ac38394a8642b"}, {file = "zipp-3.3.0.tar.gz", hash = "sha256:64ad89efee774d1897a58607895d80789c59778ea02185dd846ac38394a8642b"},

View file

@ -38,6 +38,7 @@ black = {version = "^19.10b0",allow-prereleases = true}
toml = "^0.10.0" toml = "^0.10.0"
pyflakes = "^2.2.0" pyflakes = "^2.2.0"
pytest = "^5.4.3" pytest = "^5.4.3"
yq = "^2.11.1"
[tool.poetry.scripts] [tool.poetry.scripts]
jrnl = 'jrnl.cli:cli' jrnl = 'jrnl.cli:cli'