diff --git a/.flake8 b/.flake8
new file mode 100644
index 000000000..f005fbdcd
--- /dev/null
+++ b/.flake8
@@ -0,0 +1,4 @@
+[flake8]
+max-line-length = 120
+per-file-ignores =
+ tests/data/service_github.py: E501
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..146b401a1
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+poetry.lock linguist-generated=true
+poetry.lock -diff
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
new file mode 100644
index 000000000..e13b022cb
--- /dev/null
+++ b/.github/workflows/ci.yaml
@@ -0,0 +1,40 @@
+name: CI
+on: [push, pull_request]
+jobs:
+ tests:
+ name: "Test (python: ${{ matrix.python-version }}, sphinx: ${{ matrix.sphinx-version }})"
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-20.04]
+ python-version: ["3.6", "3.7", "3.8", "3.9"]
+ sphinx-version: ["2.2", "2.3", "2.4", "3.0", "3.2"]
+ exclude:
+ - python-version: "3.6"
+ sphinx-version: "3.2"
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set Up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install Nox Dependencies
+ run: |
+ python -m pip install poetry nox nox-poetry
+ - name: Run Tests
+ run: nox --non-interactive --session "tests-${{ matrix.python-version }}(sphinx='${{ matrix.sphinx-version }}')" -- --full-trace
+
+ lint:
+ name: Lint
+ runs-on: ubuntu-20.04
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set Up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: "3.9"
+ - name: Install Nox Dependencies
+ run: |
+ python -m pip install poetry nox nox-poetry
+ - name: Run Lint
+ run: nox --non-interactive --session lint -- --full-trace
diff --git a/.gitignore b/.gitignore
index 5978cf757..c972b8c78 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,5 +16,5 @@ _build
.doctrees
docs/github_images/
.eggs/
-
docs/_images/need_pie_*.png
+poetry.lock
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index df12b1422..000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-os:
-- linux
-language: python
-python:
-- '3.5'
-- '3.7'
-- '3.8'
-before_install:
-- sudo apt-get update
-- sudo apt-get install -y texlive-latex-recommended texlive-fonts-recommended texlive-latex-extra
- latexmk texlive-luatex texlive-xetex
-install:
-- pip install tox-travis
-- python setup.py install
-script:
-- tox
-after_success:
-- which python
-- pip install sphinxcontrib-plantuml
-- cd docs
-- make latexpdf
-env:
- global:
- - secure: M7mBLHk9cx+0cx7Wlo+TU+GrWdLeI1XBNSe/9oRg8FUuN6sSzkjq/0TcYYGTzcMlhUaxzKObTtE2ye2iHsPUBkjIcGdUXA5uU+EGCryz/ckdI3rPx+e2/32riJmTLgQOPpQAoVG+SDoL/28jSVetwv3SpOKue+XOI3QfZOfunZDWJOpRtFyCcm+nZ8HlxQ+glnlvZkACrNWFq/Q2WJlSSHP2/CG62jc6/j+tXXu9n5DlGbZd7QyaZHmj9xa5OFgqsk5XfilDfc/XSrw3cNDIlCTYkUwRebneblZPLEQ/qVp7bfW+lFQ9z2wHpu8ZG8HV6TDnByQ1YC/tscxkJBrFbqKC0cXouPPq+LamZOauiJOqasMKCRdmoRDKMvt7jowXXoeHvgzBr7Uo7xzE0Kx1CvsAYMG2LpX5ds9vXv6PkSZ7gw6B9krBnMEkrhwQO8M+1NtAjPVsZyNLl8jxcyL+8o41isDwqzoHo5G2/uRiMqxLsTaDylSrCg5EftbS8aDVxEkChRTP2bdJqZ5P2ji2klRfQkpNEnPxuJVx8BdgIsmhup0AA5zMcMNAsyjf0gDzkBnbesEx06VDznN5aeW0Gvf4jfp83Ee2D8aV2B7SB3nBoA1MHOkSN+WLLIGY87ZrKEBOUu2tdbbpJ1wuFZgwSepsO8DOd4sSpl0BGQpq+XY=
- - secure: X2JTnSnEl3JknGl/0WJEh2183g+Ejsn43QMJ45sueZHbJcQxa4PgYZm0ad4MeJ1QoLjnnSPrU3JX2qWXskbr6bLlIEgoC3VPLZezvBb1lF/b4/EzLUdxcNbBK7QJUlTGHrZQh/V8RrTEcn1/HVtb+Fq766+GliKdEVaRaE6zbKq2g833lrj1zwAAGhyLnzsYnUJKtiUx6+tUg6fnmW27KpCEE+kRc5pTacpj2aFdDaFSqwrSaOrxYIdvJcF7KGvkMpidNkXe+9n5s3fa57yNhhTn79PfL3NpqANulrkD4l1iLLLzmNu/SJANhpKO2qgU7v0EpMpzgrAkXjkhwgZdzEKHhOlMR8Zz5mxEn1AauiJYoEZbseUcHqF0GxTUIX6r9A5beD1sYE92WGDQlW40MdvBLqZ18CW6pFogBA/Rd6/bKcHzMtXUs36y1Tti20hX05ZTcSYAX0PjdtTQ6Dw26zkWE1LKuUdD3JzNCxAtm7MBAsZ4k+ZJ1ugCvt9dzwUQxD0W51ltKzTlSUOSODmVRsHur/xJZFp5/Z92syc6aVGZKQBU4+r4YRVVs3iAT5msPmQu7gx1qGQAiZupyRkhlXnOxwpi5mGd1+hyDzY9kG1nYBLl4QX5au3MjOgh+cc9NTS1o9OcKekEH9PfKbjoqbyqjcVUUX00HViTlY/U6Po=
diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000..111d3b3b0
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,21 @@
+SRC_FILES = sphinxcontrib/ tests/ noxfile.py
+
+.PHONY: lint
+lint:
+ poetry run flake8 ${SRC_FILES}
+
+.PHONY: test
+test:
+ poetry run nosetests -w tests
+
+.PHONY: test-matrix
+test-matrix:
+ nox
+
+.PHONY: docs-html
+docs-html:
+ poetry run make --directory docs/ html
+
+.PHONY: docs-pdf
+docs-pdf:
+ poetry run make --directory docs/ latexpdf
diff --git a/doc-requirements.txt b/doc-requirements.txt
deleted file mode 100644
index 27a90838f..000000000
--- a/doc-requirements.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-sphinx>=1.6
-sphinxcontrib-plantuml
-matplotlib
-sphinx-copybutton
diff --git a/docs/contributing.rst b/docs/contributing.rst
new file mode 100644
index 000000000..3ce95f5cd
--- /dev/null
+++ b/docs/contributing.rst
@@ -0,0 +1,77 @@
+Contributing
+============
+
+The following provides a guide for developers wishing to contribute
+to Sphinx-Needs
+
+Installing Dependencies
+-----------------------
+
+Sphinxcontrib-Needs requires only
+`Poetry `__ to be installed as a system
+dependency, the rest of the dependencies are ‘bootstrapped’ and
+installed in an isolated environment by Poetry.
+
+1. `Install Poetry `__
+
+2. Install project dependencies
+
+ ::
+
+ poetry install
+
+Running Tests
+-------------
+
+::
+
+ make test
+
+Linting
+-------
+
+::
+
+ make lint
+
+Running Test Matrix
+-------------------
+
+This project provides a test matrix for running the tests across a range
+of python and sphinx versions. This is used primarily for continuous
+integration.
+
+`Nox `__ is used as a test runner.
+
+Running the matrix tests requires additional system-wide dependencies
+
+1. `Install
+ Nox `__
+2. `Install Nox-Poetry `__
+3. You will also need multiple Python versions available. You can manage
+ these using `Pyenv `__
+
+you can run the test matrix by using the ``nox`` command
+
+::
+
+ nox
+
+or using the provided Makefile
+
+::
+
+ make test-matrix
+
+for a full list of available options, refer to the Nox documentation,
+and the local `noxfile <.../noxfile.py>`__
+
+Running Commands
+----------------
+
+See the Poetry documentation for a list of commands.
+
+See the local `Makefile <../Makefile>`__ for a full list of commands
+
+In order to run custom commands inside the isolated environment, they
+should be prefixed with “poetry run” (ie. ``poetry run ``).
diff --git a/docs/index.rst b/docs/index.rst
index e7e174b2d..2b30e46e6 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -307,6 +307,7 @@ Content
snippets
support
changelog
+ contributing
license
contributors
diff --git a/noxfile.py b/noxfile.py
new file mode 100644
index 000000000..94ea9ac4d
--- /dev/null
+++ b/noxfile.py
@@ -0,0 +1,44 @@
+import nox
+from nox_poetry import session
+
+
+PYTHON_VERSIONS = ["3.6", "3.7", "3.8", "3.9"]
+SPHINX_VERSIONS = ["2.2", "2.3", "2.4", "3.0", "3.2"]
+TEST_DEPENDENCIES = [
+ "nose",
+ "sphinx_testing",
+ "sphinxcontrib.plantuml",
+ "matplotlib",
+ "responses",
+ "sphinx_copybutton",
+]
+LINT_DEPENDENCIES = [
+ "flake8",
+ "pep8-naming",
+]
+
+
+def is_supported(python: str, sphinx: str) -> bool:
+ return not (python == "3.6" and float(sphinx) > 3.0)
+
+
+def run_tests(session, sphinx):
+ session.install(".")
+ session.install(*TEST_DEPENDENCIES)
+ session.run("pip", "install", f"sphinx=={sphinx}", silent=True)
+ session.run("make", "test", external=True)
+
+
+@session(python=PYTHON_VERSIONS)
+@nox.parametrize("sphinx", SPHINX_VERSIONS)
+def tests(session, sphinx):
+ if is_supported(session.python, sphinx):
+ run_tests(session, sphinx)
+ else:
+ session.skip("unsupported combination")
+
+
+@session(python="3.9")
+def lint(session):
+ session.install(*LINT_DEPENDENCIES)
+ session.run("make", "lint", external=True)
diff --git a/poetry.lock b/poetry.lock
new file mode 100644
index 000000000..be61d0102
--- /dev/null
+++ b/poetry.lock
@@ -0,0 +1,961 @@
+[[package]]
+name = "alabaster"
+version = "0.7.12"
+description = "A configurable sidebar-enabled Sphinx theme"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "babel"
+version = "2.9.0"
+description = "Internationalization utilities"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[package.dependencies]
+pytz = ">=2015.7"
+
+[[package]]
+name = "certifi"
+version = "2020.12.5"
+description = "Python package for providing Mozilla's CA Bundle."
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "chardet"
+version = "4.0.0"
+description = "Universal encoding detector for Python 2 and 3"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[[package]]
+name = "colorama"
+version = "0.4.4"
+description = "Cross-platform colored terminal text."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[[package]]
+name = "cycler"
+version = "0.10.0"
+description = "Composable style cycles"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+six = "*"
+
+[[package]]
+name = "docutils"
+version = "0.16"
+description = "Docutils -- Python Documentation Utilities"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[[package]]
+name = "docutils"
+version = "0.17.1"
+description = "Docutils -- Python Documentation Utilities"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[[package]]
+name = "flake8"
+version = "3.9.1"
+description = "the modular source code checker: pep8 pyflakes and co"
+category = "dev"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
+
+[package.dependencies]
+importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
+mccabe = ">=0.6.0,<0.7.0"
+pycodestyle = ">=2.7.0,<2.8.0"
+pyflakes = ">=2.3.0,<2.4.0"
+
+[[package]]
+name = "flake8-polyfill"
+version = "1.0.2"
+description = "Polyfill package for Flake8 plugins"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+flake8 = "*"
+
+[[package]]
+name = "idna"
+version = "2.10"
+description = "Internationalized Domain Names in Applications (IDNA)"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "imagesize"
+version = "1.2.0"
+description = "Getting image size from png/jpeg/jpeg2000/gif file"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "importlib-metadata"
+version = "4.0.0"
+description = "Read metadata from Python packages"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
+zipp = ">=0.5"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]
+
+[[package]]
+name = "jinja2"
+version = "2.11.3"
+description = "A very fast and expressive template engine."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.dependencies]
+MarkupSafe = ">=0.23"
+
+[package.extras]
+i18n = ["Babel (>=0.8)"]
+
+[[package]]
+name = "kiwisolver"
+version = "1.3.1"
+description = "A fast implementation of the Cassowary constraint solver"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "markupsafe"
+version = "1.1.1"
+description = "Safely add untrusted strings to HTML/XML markup."
+category = "main"
+optional = false
+python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
+
+[[package]]
+name = "matplotlib"
+version = "3.3.4"
+description = "Python plotting package"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+cycler = ">=0.10"
+kiwisolver = ">=1.0.1"
+numpy = ">=1.15"
+pillow = ">=6.2.0"
+pyparsing = ">=2.0.3,<2.0.4 || >2.0.4,<2.1.2 || >2.1.2,<2.1.6 || >2.1.6"
+python-dateutil = ">=2.1"
+
+[[package]]
+name = "mccabe"
+version = "0.6.1"
+description = "McCabe checker, plugin for flake8"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "mypy"
+version = "0.812"
+description = "Optional static typing for Python"
+category = "dev"
+optional = false
+python-versions = ">=3.5"
+
+[package.dependencies]
+mypy-extensions = ">=0.4.3,<0.5.0"
+typed-ast = ">=1.4.0,<1.5.0"
+typing-extensions = ">=3.7.4"
+
+[package.extras]
+dmypy = ["psutil (>=4.0)"]
+
+[[package]]
+name = "mypy-extensions"
+version = "0.4.3"
+description = "Experimental type system extensions for programs checked with the mypy typechecker."
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "nose"
+version = "1.3.7"
+description = "nose extends unittest to make testing easier"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "numpy"
+version = "1.19.5"
+description = "NumPy is the fundamental package for array computing with Python."
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "packaging"
+version = "20.9"
+description = "Core utilities for Python packages"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[package.dependencies]
+pyparsing = ">=2.0.2"
+
+[[package]]
+name = "pep8-naming"
+version = "0.11.1"
+description = "Check PEP-8 naming conventions, plugin for flake8"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+flake8-polyfill = ">=1.0.2,<2"
+
+[[package]]
+name = "pillow"
+version = "8.2.0"
+description = "Python Imaging Library (Fork)"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "pycodestyle"
+version = "2.7.0"
+description = "Python style guide checker"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "pyflakes"
+version = "2.3.1"
+description = "passive checker of Python programs"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "pygments"
+version = "2.8.1"
+description = "Pygments is a syntax highlighting package written in Python."
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[[package]]
+name = "pyparsing"
+version = "2.4.7"
+description = "Python parsing module"
+category = "main"
+optional = false
+python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+
+[[package]]
+name = "python-dateutil"
+version = "2.8.1"
+description = "Extensions to the standard Python datetime module"
+category = "main"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
+
+[package.dependencies]
+six = ">=1.5"
+
+[[package]]
+name = "pytz"
+version = "2021.1"
+description = "World timezone definitions, modern and historical"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "requests"
+version = "2.25.1"
+description = "Python HTTP for Humans."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.dependencies]
+certifi = ">=2017.4.17"
+chardet = ">=3.0.2,<5"
+idna = ">=2.5,<3"
+urllib3 = ">=1.21.1,<1.27"
+
+[package.extras]
+security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
+socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
+
+[[package]]
+name = "responses"
+version = "0.12.1"
+description = "A utility library for mocking out the `requests` Python library."
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.dependencies]
+requests = ">=2.0"
+six = "*"
+urllib3 = ">=1.25.10"
+
+[package.extras]
+tests = ["coverage (>=3.7.1,<6.0.0)", "pytest-cov", "pytest-localserver", "flake8", "pytest (>=4.6,<5.0)", "pytest (>=4.6)"]
+
+[[package]]
+name = "six"
+version = "1.15.0"
+description = "Python 2 and 3 compatibility utilities"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
+
+[[package]]
+name = "snowballstemmer"
+version = "2.1.0"
+description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms."
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "sphinx"
+version = "3.0.0"
+description = "Python documentation generator"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.dependencies]
+alabaster = ">=0.7,<0.8"
+babel = ">=1.3"
+colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""}
+docutils = ">=0.12"
+imagesize = "*"
+Jinja2 = ">=2.3"
+packaging = "*"
+Pygments = ">=2.0"
+requests = ">=2.5.0"
+snowballstemmer = ">=1.1"
+sphinxcontrib-applehelp = "*"
+sphinxcontrib-devhelp = "*"
+sphinxcontrib-htmlhelp = "*"
+sphinxcontrib-jsmath = "*"
+sphinxcontrib-qthelp = "*"
+sphinxcontrib-serializinghtml = "*"
+
+[package.extras]
+docs = ["sphinxcontrib-websupport"]
+lint = ["flake8 (>=3.5.0)", "flake8-import-order", "mypy (>=0.770)", "docutils-stubs"]
+test = ["pytest", "pytest-cov", "html5lib", "typed-ast", "cython"]
+
+[[package]]
+name = "sphinx"
+version = "3.5.4"
+description = "Python documentation generator"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.dependencies]
+alabaster = ">=0.7,<0.8"
+babel = ">=1.3"
+colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""}
+docutils = ">=0.12,<0.17"
+imagesize = "*"
+Jinja2 = ">=2.3"
+packaging = "*"
+Pygments = ">=2.0"
+requests = ">=2.5.0"
+snowballstemmer = ">=1.1"
+sphinxcontrib-applehelp = "*"
+sphinxcontrib-devhelp = "*"
+sphinxcontrib-htmlhelp = "*"
+sphinxcontrib-jsmath = "*"
+sphinxcontrib-qthelp = "*"
+sphinxcontrib-serializinghtml = "*"
+
+[package.extras]
+docs = ["sphinxcontrib-websupport"]
+lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.800)", "docutils-stubs"]
+test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"]
+
+[[package]]
+name = "sphinx-copybutton"
+version = "0.3.1"
+description = "Add a copy button to each of your code cells."
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+sphinx = ">=1.8"
+
+[package.extras]
+code_style = ["flake8 (>=3.7.0,<3.8.0)", "black", "pre-commit (==1.17.0)"]
+
+[[package]]
+name = "sphinx-testing"
+version = "1.0.1"
+description = "testing utility classes and functions for Sphinx extensions"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+six = "*"
+Sphinx = "*"
+
+[[package]]
+name = "sphinxcontrib-applehelp"
+version = "1.0.2"
+description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest"]
+
+[[package]]
+name = "sphinxcontrib-devhelp"
+version = "1.0.2"
+description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document."
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest"]
+
+[[package]]
+name = "sphinxcontrib-htmlhelp"
+version = "1.0.3"
+description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest", "html5lib"]
+
+[[package]]
+name = "sphinxcontrib-jsmath"
+version = "1.0.1"
+description = "A sphinx extension which renders display math in HTML via JavaScript"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.extras]
+test = ["pytest", "flake8", "mypy"]
+
+[[package]]
+name = "sphinxcontrib-plantuml"
+version = "0.20.1"
+description = "Sphinx \"plantuml\" extension"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+Sphinx = ">=1.6"
+
+[[package]]
+name = "sphinxcontrib-qthelp"
+version = "1.0.3"
+description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document."
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest"]
+
+[[package]]
+name = "sphinxcontrib-serializinghtml"
+version = "1.1.4"
+description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)."
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest"]
+
+[[package]]
+name = "typed-ast"
+version = "1.4.3"
+description = "a fork of Python 2 and 3 ast modules with type comment support"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "typing-extensions"
+version = "3.7.4.3"
+description = "Backported and Experimental Type Hints for Python 3.5+"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "urllib3"
+version = "1.26.4"
+description = "HTTP library with thread-safe connection pooling, file post, and more."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
+
+[package.extras]
+secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
+socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
+brotli = ["brotlipy (>=0.6.0)"]
+
+[[package]]
+name = "zipp"
+version = "3.4.1"
+description = "Backport of pathlib-compatible object wrapper for zip files"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
+
+[metadata]
+lock-version = "1.1"
+python-versions = "^3.6"
+content-hash = "07d2d381e31a24d151d2702c7365c4ce943cc3f9de683ec581db97953ce32af0"
+
+[metadata.files]
+alabaster = [
+ {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"},
+ {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"},
+]
+babel = [
+ {file = "Babel-2.9.0-py2.py3-none-any.whl", hash = "sha256:9d35c22fcc79893c3ecc85ac4a56cde1ecf3f19c540bba0922308a6c06ca6fa5"},
+ {file = "Babel-2.9.0.tar.gz", hash = "sha256:da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05"},
+]
+certifi = [
+ {file = "certifi-2020.12.5-py2.py3-none-any.whl", hash = "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"},
+ {file = "certifi-2020.12.5.tar.gz", hash = "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c"},
+]
+chardet = [
+ {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"},
+ {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"},
+]
+colorama = [
+ {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
+ {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
+]
+cycler = [
+ {file = "cycler-0.10.0-py2.py3-none-any.whl", hash = "sha256:1d8a5ae1ff6c5cf9b93e8811e581232ad8920aeec647c37316ceac982b08cb2d"},
+ {file = "cycler-0.10.0.tar.gz", hash = "sha256:cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8"},
+]
+docutils = [
+ {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"},
+ {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"},
+ {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"},
+ {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"},
+]
+flake8 = [
+ {file = "flake8-3.9.1-py2.py3-none-any.whl", hash = "sha256:3b9f848952dddccf635be78098ca75010f073bfe14d2c6bda867154bea728d2a"},
+ {file = "flake8-3.9.1.tar.gz", hash = "sha256:1aa8990be1e689d96c745c5682b687ea49f2e05a443aff1f8251092b0014e378"},
+]
+flake8-polyfill = [
+ {file = "flake8-polyfill-1.0.2.tar.gz", hash = "sha256:e44b087597f6da52ec6393a709e7108b2905317d0c0b744cdca6208e670d8eda"},
+ {file = "flake8_polyfill-1.0.2-py2.py3-none-any.whl", hash = "sha256:12be6a34ee3ab795b19ca73505e7b55826d5f6ad7230d31b18e106400169b9e9"},
+]
+idna = [
+ {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
+ {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
+]
+imagesize = [
+ {file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"},
+ {file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"},
+]
+importlib-metadata = [
+ {file = "importlib_metadata-4.0.0-py3-none-any.whl", hash = "sha256:19192b88d959336bfa6bdaaaef99aeafec179eca19c47c804e555703ee5f07ef"},
+ {file = "importlib_metadata-4.0.0.tar.gz", hash = "sha256:2e881981c9748d7282b374b68e759c87745c25427b67ecf0cc67fb6637a1bff9"},
+]
+jinja2 = [
+ {file = "Jinja2-2.11.3-py2.py3-none-any.whl", hash = "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419"},
+ {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"},
+]
+kiwisolver = [
+ {file = "kiwisolver-1.3.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:fd34fbbfbc40628200730bc1febe30631347103fc8d3d4fa012c21ab9c11eca9"},
+ {file = "kiwisolver-1.3.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:d3155d828dec1d43283bd24d3d3e0d9c7c350cdfcc0bd06c0ad1209c1bbc36d0"},
+ {file = "kiwisolver-1.3.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5a7a7dbff17e66fac9142ae2ecafb719393aaee6a3768c9de2fd425c63b53e21"},
+ {file = "kiwisolver-1.3.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:f8d6f8db88049a699817fd9178782867bf22283e3813064302ac59f61d95be05"},
+ {file = "kiwisolver-1.3.1-cp36-cp36m-manylinux2014_ppc64le.whl", hash = "sha256:5f6ccd3dd0b9739edcf407514016108e2280769c73a85b9e59aa390046dbf08b"},
+ {file = "kiwisolver-1.3.1-cp36-cp36m-win32.whl", hash = "sha256:225e2e18f271e0ed8157d7f4518ffbf99b9450fca398d561eb5c4a87d0986dd9"},
+ {file = "kiwisolver-1.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:cf8b574c7b9aa060c62116d4181f3a1a4e821b2ec5cbfe3775809474113748d4"},
+ {file = "kiwisolver-1.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:232c9e11fd7ac3a470d65cd67e4359eee155ec57e822e5220322d7b2ac84fbf0"},
+ {file = "kiwisolver-1.3.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:b38694dcdac990a743aa654037ff1188c7a9801ac3ccc548d3341014bc5ca278"},
+ {file = "kiwisolver-1.3.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ca3820eb7f7faf7f0aa88de0e54681bddcb46e485beb844fcecbcd1c8bd01689"},
+ {file = "kiwisolver-1.3.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:c8fd0f1ae9d92b42854b2979024d7597685ce4ada367172ed7c09edf2cef9cb8"},
+ {file = "kiwisolver-1.3.1-cp37-cp37m-manylinux2014_ppc64le.whl", hash = "sha256:1e1bc12fb773a7b2ffdeb8380609f4f8064777877b2225dec3da711b421fda31"},
+ {file = "kiwisolver-1.3.1-cp37-cp37m-win32.whl", hash = "sha256:72c99e39d005b793fb7d3d4e660aed6b6281b502e8c1eaf8ee8346023c8e03bc"},
+ {file = "kiwisolver-1.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:8be8d84b7d4f2ba4ffff3665bcd0211318aa632395a1a41553250484a871d454"},
+ {file = "kiwisolver-1.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:31dfd2ac56edc0ff9ac295193eeaea1c0c923c0355bf948fbd99ed6018010b72"},
+ {file = "kiwisolver-1.3.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:563c649cfdef27d081c84e72a03b48ea9408c16657500c312575ae9d9f7bc1c3"},
+ {file = "kiwisolver-1.3.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:78751b33595f7f9511952e7e60ce858c6d64db2e062afb325985ddbd34b5c131"},
+ {file = "kiwisolver-1.3.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:a357fd4f15ee49b4a98b44ec23a34a95f1e00292a139d6015c11f55774ef10de"},
+ {file = "kiwisolver-1.3.1-cp38-cp38-manylinux2014_ppc64le.whl", hash = "sha256:5989db3b3b34b76c09253deeaf7fbc2707616f130e166996606c284395da3f18"},
+ {file = "kiwisolver-1.3.1-cp38-cp38-win32.whl", hash = "sha256:c08e95114951dc2090c4a630c2385bef681cacf12636fb0241accdc6b303fd81"},
+ {file = "kiwisolver-1.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:44a62e24d9b01ba94ae7a4a6c3fb215dc4af1dde817e7498d901e229aaf50e4e"},
+ {file = "kiwisolver-1.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:50af681a36b2a1dee1d3c169ade9fdc59207d3c31e522519181e12f1b3ba7000"},
+ {file = "kiwisolver-1.3.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:a53d27d0c2a0ebd07e395e56a1fbdf75ffedc4a05943daf472af163413ce9598"},
+ {file = "kiwisolver-1.3.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:834ee27348c4aefc20b479335fd422a2c69db55f7d9ab61721ac8cd83eb78882"},
+ {file = "kiwisolver-1.3.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5c3e6455341008a054cccee8c5d24481bcfe1acdbc9add30aa95798e95c65621"},
+ {file = "kiwisolver-1.3.1-cp39-cp39-manylinux2014_ppc64le.whl", hash = "sha256:acef3d59d47dd85ecf909c359d0fd2c81ed33bdff70216d3956b463e12c38a54"},
+ {file = "kiwisolver-1.3.1-cp39-cp39-win32.whl", hash = "sha256:c5518d51a0735b1e6cee1fdce66359f8d2b59c3ca85dc2b0813a8aa86818a030"},
+ {file = "kiwisolver-1.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:b9edd0110a77fc321ab090aaa1cfcaba1d8499850a12848b81be2222eab648f6"},
+ {file = "kiwisolver-1.3.1-pp36-pypy36_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0cd53f403202159b44528498de18f9285b04482bab2a6fc3f5dd8dbb9352e30d"},
+ {file = "kiwisolver-1.3.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:33449715e0101e4d34f64990352bce4095c8bf13bed1b390773fc0a7295967b3"},
+ {file = "kiwisolver-1.3.1-pp36-pypy36_pp73-win32.whl", hash = "sha256:401a2e9afa8588589775fe34fc22d918ae839aaaf0c0e96441c0fdbce6d8ebe6"},
+ {file = "kiwisolver-1.3.1.tar.gz", hash = "sha256:950a199911a8d94683a6b10321f9345d5a3a8433ec58b217ace979e18f16e248"},
+]
+markupsafe = [
+ {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"},
+ {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"},
+ {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"},
+ {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"},
+ {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"},
+ {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"},
+ {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"},
+ {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"},
+ {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"},
+ {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"},
+ {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"},
+ {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"},
+ {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"},
+ {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"},
+ {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"},
+ {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"},
+ {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"},
+ {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"},
+ {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"},
+ {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"},
+ {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"},
+ {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"},
+ {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"},
+ {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"},
+ {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"},
+ {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"},
+ {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"},
+ {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"},
+ {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"},
+ {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"},
+ {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"},
+ {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"},
+ {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"},
+]
+matplotlib = [
+ {file = "matplotlib-3.3.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:672960dd114e342b7c610bf32fb99d14227f29919894388b41553217457ba7ef"},
+ {file = "matplotlib-3.3.4-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:7c155437ae4fd366e2700e2716564d1787700687443de46bcb895fe0f84b761d"},
+ {file = "matplotlib-3.3.4-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:a17f0a10604fac7627ec82820439e7db611722e80c408a726cd00d8c974c2fb3"},
+ {file = "matplotlib-3.3.4-cp36-cp36m-win32.whl", hash = "sha256:215e2a30a2090221a9481db58b770ce56b8ef46f13224ae33afe221b14b24dc1"},
+ {file = "matplotlib-3.3.4-cp36-cp36m-win_amd64.whl", hash = "sha256:348e6032f666ffd151b323342f9278b16b95d4a75dfacae84a11d2829a7816ae"},
+ {file = "matplotlib-3.3.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:94bdd1d55c20e764d8aea9d471d2ae7a7b2c84445e0fa463f02e20f9730783e1"},
+ {file = "matplotlib-3.3.4-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:a1acb72f095f1d58ecc2538ed1b8bca0b57df313b13db36ed34b8cdf1868e674"},
+ {file = "matplotlib-3.3.4-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:46b1a60a04e6d884f0250d5cc8dc7bd21a9a96c584a7acdaab44698a44710bab"},
+ {file = "matplotlib-3.3.4-cp37-cp37m-win32.whl", hash = "sha256:ed4a9e6dcacba56b17a0a9ac22ae2c72a35b7f0ef0693aa68574f0b2df607a89"},
+ {file = "matplotlib-3.3.4-cp37-cp37m-win_amd64.whl", hash = "sha256:c24c05f645aef776e8b8931cb81e0f1632d229b42b6d216e30836e2e145a2b40"},
+ {file = "matplotlib-3.3.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7310e353a4a35477c7f032409966920197d7df3e757c7624fd842f3eeb307d3d"},
+ {file = "matplotlib-3.3.4-cp38-cp38-manylinux1_i686.whl", hash = "sha256:451cc89cb33d6652c509fc6b588dc51c41d7246afdcc29b8624e256b7663ed1f"},
+ {file = "matplotlib-3.3.4-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:3d2eb9c1cc254d0ffa90bc96fde4b6005d09c2228f99dfd493a4219c1af99644"},
+ {file = "matplotlib-3.3.4-cp38-cp38-win32.whl", hash = "sha256:e15fa23d844d54e7b3b7243afd53b7567ee71c721f592deb0727ee85e668f96a"},
+ {file = "matplotlib-3.3.4-cp38-cp38-win_amd64.whl", hash = "sha256:1de0bb6cbfe460725f0e97b88daa8643bcf9571c18ba90bb8e41432aaeca91d6"},
+ {file = "matplotlib-3.3.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f44149a0ef5b4991aaef12a93b8e8d66d6412e762745fea1faa61d98524e0ba9"},
+ {file = "matplotlib-3.3.4-cp39-cp39-manylinux1_i686.whl", hash = "sha256:746a1df55749629e26af7f977ea426817ca9370ad1569436608dc48d1069b87c"},
+ {file = "matplotlib-3.3.4-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:5f571b92a536206f7958f7cb2d367ff6c9a1fa8229dc35020006e4cdd1ca0acd"},
+ {file = "matplotlib-3.3.4-cp39-cp39-win32.whl", hash = "sha256:9265ae0fb35e29f9b8cc86c2ab0a2e3dcddc4dd9de4b85bf26c0f63fe5c1c2ca"},
+ {file = "matplotlib-3.3.4-cp39-cp39-win_amd64.whl", hash = "sha256:9a79e5dd7bb797aa611048f5b70588b23c5be05b63eefd8a0d152ac77c4243db"},
+ {file = "matplotlib-3.3.4-pp36-pypy36_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1e850163579a8936eede29fad41e202b25923a0a8d5ffd08ce50fc0a97dcdc93"},
+ {file = "matplotlib-3.3.4-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:d738acfdfb65da34c91acbdb56abed46803db39af259b7f194dc96920360dbe4"},
+ {file = "matplotlib-3.3.4-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:aa49571d8030ad0b9ac39708ee77bd2a22f87815e12bdee52ecaffece9313ed8"},
+ {file = "matplotlib-3.3.4-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:cf3a7e54eff792f0815dbbe9b85df2f13d739289c93d346925554f71d484be78"},
+ {file = "matplotlib-3.3.4.tar.gz", hash = "sha256:3e477db76c22929e4c6876c44f88d790aacdf3c3f8f3a90cb1975c0bf37825b0"},
+]
+mccabe = [
+ {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"},
+ {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"},
+]
+mypy = [
+ {file = "mypy-0.812-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:a26f8ec704e5a7423c8824d425086705e381b4f1dfdef6e3a1edab7ba174ec49"},
+ {file = "mypy-0.812-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:28fb5479c494b1bab244620685e2eb3c3f988d71fd5d64cc753195e8ed53df7c"},
+ {file = "mypy-0.812-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:9743c91088d396c1a5a3c9978354b61b0382b4e3c440ce83cf77994a43e8c521"},
+ {file = "mypy-0.812-cp35-cp35m-win_amd64.whl", hash = "sha256:d7da2e1d5f558c37d6e8c1246f1aec1e7349e4913d8fb3cb289a35de573fe2eb"},
+ {file = "mypy-0.812-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:4eec37370483331d13514c3f55f446fc5248d6373e7029a29ecb7b7494851e7a"},
+ {file = "mypy-0.812-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:d65cc1df038ef55a99e617431f0553cd77763869eebdf9042403e16089fe746c"},
+ {file = "mypy-0.812-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:61a3d5b97955422964be6b3baf05ff2ce7f26f52c85dd88db11d5e03e146a3a6"},
+ {file = "mypy-0.812-cp36-cp36m-win_amd64.whl", hash = "sha256:25adde9b862f8f9aac9d2d11971f226bd4c8fbaa89fb76bdadb267ef22d10064"},
+ {file = "mypy-0.812-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:552a815579aa1e995f39fd05dde6cd378e191b063f031f2acfe73ce9fb7f9e56"},
+ {file = "mypy-0.812-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:499c798053cdebcaa916eef8cd733e5584b5909f789de856b482cd7d069bdad8"},
+ {file = "mypy-0.812-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:5873888fff1c7cf5b71efbe80e0e73153fe9212fafdf8e44adfe4c20ec9f82d7"},
+ {file = "mypy-0.812-cp37-cp37m-win_amd64.whl", hash = "sha256:9f94aac67a2045ec719ffe6111df543bac7874cee01f41928f6969756e030564"},
+ {file = "mypy-0.812-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d23e0ea196702d918b60c8288561e722bf437d82cb7ef2edcd98cfa38905d506"},
+ {file = "mypy-0.812-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:674e822aa665b9fd75130c6c5f5ed9564a38c6cea6a6432ce47eafb68ee578c5"},
+ {file = "mypy-0.812-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:abf7e0c3cf117c44d9285cc6128856106183938c68fd4944763003decdcfeb66"},
+ {file = "mypy-0.812-cp38-cp38-win_amd64.whl", hash = "sha256:0d0a87c0e7e3a9becdfbe936c981d32e5ee0ccda3e0f07e1ef2c3d1a817cf73e"},
+ {file = "mypy-0.812-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7ce3175801d0ae5fdfa79b4f0cfed08807af4d075b402b7e294e6aa72af9aa2a"},
+ {file = "mypy-0.812-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:b09669bcda124e83708f34a94606e01b614fa71931d356c1f1a5297ba11f110a"},
+ {file = "mypy-0.812-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:33f159443db0829d16f0a8d83d94df3109bb6dd801975fe86bacb9bf71628e97"},
+ {file = "mypy-0.812-cp39-cp39-win_amd64.whl", hash = "sha256:3f2aca7f68580dc2508289c729bd49ee929a436208d2b2b6aab15745a70a57df"},
+ {file = "mypy-0.812-py3-none-any.whl", hash = "sha256:2f9b3407c58347a452fc0736861593e105139b905cca7d097e413453a1d650b4"},
+ {file = "mypy-0.812.tar.gz", hash = "sha256:cd07039aa5df222037005b08fbbfd69b3ab0b0bd7a07d7906de75ae52c4e3119"},
+]
+mypy-extensions = [
+ {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"},
+ {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"},
+]
+nose = [
+ {file = "nose-1.3.7-py2-none-any.whl", hash = "sha256:dadcddc0aefbf99eea214e0f1232b94f2fa9bd98fa8353711dacb112bfcbbb2a"},
+ {file = "nose-1.3.7-py3-none-any.whl", hash = "sha256:9ff7c6cc443f8c51994b34a667bbcf45afd6d945be7477b52e97516fd17c53ac"},
+ {file = "nose-1.3.7.tar.gz", hash = "sha256:f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98"},
+]
+numpy = [
+ {file = "numpy-1.19.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cc6bd4fd593cb261332568485e20a0712883cf631f6f5e8e86a52caa8b2b50ff"},
+ {file = "numpy-1.19.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:aeb9ed923be74e659984e321f609b9ba54a48354bfd168d21a2b072ed1e833ea"},
+ {file = "numpy-1.19.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8b5e972b43c8fc27d56550b4120fe6257fdc15f9301914380b27f74856299fea"},
+ {file = "numpy-1.19.5-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:43d4c81d5ffdff6bae58d66a3cd7f54a7acd9a0e7b18d97abb255defc09e3140"},
+ {file = "numpy-1.19.5-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:a4646724fba402aa7504cd48b4b50e783296b5e10a524c7a6da62e4a8ac9698d"},
+ {file = "numpy-1.19.5-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:2e55195bc1c6b705bfd8ad6f288b38b11b1af32f3c8289d6c50d47f950c12e76"},
+ {file = "numpy-1.19.5-cp36-cp36m-win32.whl", hash = "sha256:39b70c19ec771805081578cc936bbe95336798b7edf4732ed102e7a43ec5c07a"},
+ {file = "numpy-1.19.5-cp36-cp36m-win_amd64.whl", hash = "sha256:dbd18bcf4889b720ba13a27ec2f2aac1981bd41203b3a3b27ba7a33f88ae4827"},
+ {file = "numpy-1.19.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:603aa0706be710eea8884af807b1b3bc9fb2e49b9f4da439e76000f3b3c6ff0f"},
+ {file = "numpy-1.19.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:cae865b1cae1ec2663d8ea56ef6ff185bad091a5e33ebbadd98de2cfa3fa668f"},
+ {file = "numpy-1.19.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:36674959eed6957e61f11c912f71e78857a8d0604171dfd9ce9ad5cbf41c511c"},
+ {file = "numpy-1.19.5-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:06fab248a088e439402141ea04f0fffb203723148f6ee791e9c75b3e9e82f080"},
+ {file = "numpy-1.19.5-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6149a185cece5ee78d1d196938b2a8f9d09f5a5ebfbba66969302a778d5ddd1d"},
+ {file = "numpy-1.19.5-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:50a4a0ad0111cc1b71fa32dedd05fa239f7fb5a43a40663269bb5dc7877cfd28"},
+ {file = "numpy-1.19.5-cp37-cp37m-win32.whl", hash = "sha256:d051ec1c64b85ecc69531e1137bb9751c6830772ee5c1c426dbcfe98ef5788d7"},
+ {file = "numpy-1.19.5-cp37-cp37m-win_amd64.whl", hash = "sha256:a12ff4c8ddfee61f90a1633a4c4afd3f7bcb32b11c52026c92a12e1325922d0d"},
+ {file = "numpy-1.19.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cf2402002d3d9f91c8b01e66fbb436a4ed01c6498fffed0e4c7566da1d40ee1e"},
+ {file = "numpy-1.19.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1ded4fce9cfaaf24e7a0ab51b7a87be9038ea1ace7f34b841fe3b6894c721d1c"},
+ {file = "numpy-1.19.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:012426a41bc9ab63bb158635aecccc7610e3eff5d31d1eb43bc099debc979d94"},
+ {file = "numpy-1.19.5-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:759e4095edc3c1b3ac031f34d9459fa781777a93ccc633a472a5468587a190ff"},
+ {file = "numpy-1.19.5-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:a9d17f2be3b427fbb2bce61e596cf555d6f8a56c222bd2ca148baeeb5e5c783c"},
+ {file = "numpy-1.19.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:99abf4f353c3d1a0c7a5f27699482c987cf663b1eac20db59b8c7b061eabd7fc"},
+ {file = "numpy-1.19.5-cp38-cp38-win32.whl", hash = "sha256:384ec0463d1c2671170901994aeb6dce126de0a95ccc3976c43b0038a37329c2"},
+ {file = "numpy-1.19.5-cp38-cp38-win_amd64.whl", hash = "sha256:811daee36a58dc79cf3d8bdd4a490e4277d0e4b7d103a001a4e73ddb48e7e6aa"},
+ {file = "numpy-1.19.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c843b3f50d1ab7361ca4f0b3639bf691569493a56808a0b0c54a051d260b7dbd"},
+ {file = "numpy-1.19.5-cp39-cp39-manylinux1_i686.whl", hash = "sha256:d6631f2e867676b13026e2846180e2c13c1e11289d67da08d71cacb2cd93d4aa"},
+ {file = "numpy-1.19.5-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7fb43004bce0ca31d8f13a6eb5e943fa73371381e53f7074ed21a4cb786c32f8"},
+ {file = "numpy-1.19.5-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:2ea52bd92ab9f768cc64a4c3ef8f4b2580a17af0a5436f6126b08efbd1838371"},
+ {file = "numpy-1.19.5-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:400580cbd3cff6ffa6293df2278c75aef2d58d8d93d3c5614cd67981dae68ceb"},
+ {file = "numpy-1.19.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:df609c82f18c5b9f6cb97271f03315ff0dbe481a2a02e56aeb1b1a985ce38e60"},
+ {file = "numpy-1.19.5-cp39-cp39-win32.whl", hash = "sha256:ab83f24d5c52d60dbc8cd0528759532736b56db58adaa7b5f1f76ad551416a1e"},
+ {file = "numpy-1.19.5-cp39-cp39-win_amd64.whl", hash = "sha256:0eef32ca3132a48e43f6a0f5a82cb508f22ce5a3d6f67a8329c81c8e226d3f6e"},
+ {file = "numpy-1.19.5-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:a0d53e51a6cb6f0d9082decb7a4cb6dfb33055308c4c44f53103c073f649af73"},
+ {file = "numpy-1.19.5.zip", hash = "sha256:a76f502430dd98d7546e1ea2250a7360c065a5fdea52b2dffe8ae7180909b6f4"},
+]
+packaging = [
+ {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"},
+ {file = "packaging-20.9.tar.gz", hash = "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"},
+]
+pep8-naming = [
+ {file = "pep8-naming-0.11.1.tar.gz", hash = "sha256:a1dd47dd243adfe8a83616e27cf03164960b507530f155db94e10b36a6cd6724"},
+ {file = "pep8_naming-0.11.1-py2.py3-none-any.whl", hash = "sha256:f43bfe3eea7e0d73e8b5d07d6407ab47f2476ccaeff6937c84275cd30b016738"},
+]
+pillow = [
+ {file = "Pillow-8.2.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:dc38f57d8f20f06dd7c3161c59ca2c86893632623f33a42d592f097b00f720a9"},
+ {file = "Pillow-8.2.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a013cbe25d20c2e0c4e85a9daf438f85121a4d0344ddc76e33fd7e3965d9af4b"},
+ {file = "Pillow-8.2.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8bb1e155a74e1bfbacd84555ea62fa21c58e0b4e7e6b20e4447b8d07990ac78b"},
+ {file = "Pillow-8.2.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:c5236606e8570542ed424849f7852a0ff0bce2c4c8d0ba05cc202a5a9c97dee9"},
+ {file = "Pillow-8.2.0-cp36-cp36m-win32.whl", hash = "sha256:12e5e7471f9b637762453da74e390e56cc43e486a88289995c1f4c1dc0bfe727"},
+ {file = "Pillow-8.2.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5afe6b237a0b81bd54b53f835a153770802f164c5570bab5e005aad693dab87f"},
+ {file = "Pillow-8.2.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:cb7a09e173903541fa888ba010c345893cd9fc1b5891aaf060f6ca77b6a3722d"},
+ {file = "Pillow-8.2.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:0d19d70ee7c2ba97631bae1e7d4725cdb2ecf238178096e8c82ee481e189168a"},
+ {file = "Pillow-8.2.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:083781abd261bdabf090ad07bb69f8f5599943ddb539d64497ed021b2a67e5a9"},
+ {file = "Pillow-8.2.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:c6b39294464b03457f9064e98c124e09008b35a62e3189d3513e5148611c9388"},
+ {file = "Pillow-8.2.0-cp37-cp37m-win32.whl", hash = "sha256:01425106e4e8cee195a411f729cff2a7d61813b0b11737c12bd5991f5f14bcd5"},
+ {file = "Pillow-8.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3b570f84a6161cf8865c4e08adf629441f56e32f180f7aa4ccbd2e0a5a02cba2"},
+ {file = "Pillow-8.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:031a6c88c77d08aab84fecc05c3cde8414cd6f8406f4d2b16fed1e97634cc8a4"},
+ {file = "Pillow-8.2.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:66cc56579fd91f517290ab02c51e3a80f581aba45fd924fcdee01fa06e635812"},
+ {file = "Pillow-8.2.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:6c32cc3145928c4305d142ebec682419a6c0a8ce9e33db900027ddca1ec39178"},
+ {file = "Pillow-8.2.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:624b977355cde8b065f6d51b98497d6cd5fbdd4f36405f7a8790e3376125e2bb"},
+ {file = "Pillow-8.2.0-cp38-cp38-win32.whl", hash = "sha256:5cbf3e3b1014dddc45496e8cf38b9f099c95a326275885199f427825c6522232"},
+ {file = "Pillow-8.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:463822e2f0d81459e113372a168f2ff59723e78528f91f0bd25680ac185cf797"},
+ {file = "Pillow-8.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:95d5ef984eff897850f3a83883363da64aae1000e79cb3c321915468e8c6add5"},
+ {file = "Pillow-8.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b91c36492a4bbb1ee855b7d16fe51379e5f96b85692dc8210831fbb24c43e484"},
+ {file = "Pillow-8.2.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:d68cb92c408261f806b15923834203f024110a2e2872ecb0bd2a110f89d3c602"},
+ {file = "Pillow-8.2.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f217c3954ce5fd88303fc0c317af55d5e0204106d86dea17eb8205700d47dec2"},
+ {file = "Pillow-8.2.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5b70110acb39f3aff6b74cf09bb4169b167e2660dabc304c1e25b6555fa781ef"},
+ {file = "Pillow-8.2.0-cp39-cp39-win32.whl", hash = "sha256:a7d5e9fad90eff8f6f6106d3b98b553a88b6f976e51fce287192a5d2d5363713"},
+ {file = "Pillow-8.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:238c197fc275b475e87c1453b05b467d2d02c2915fdfdd4af126145ff2e4610c"},
+ {file = "Pillow-8.2.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:0e04d61f0064b545b989126197930807c86bcbd4534d39168f4aa5fda39bb8f9"},
+ {file = "Pillow-8.2.0-pp36-pypy36_pp73-manylinux2010_i686.whl", hash = "sha256:63728564c1410d99e6d1ae8e3b810fe012bc440952168af0a2877e8ff5ab96b9"},
+ {file = "Pillow-8.2.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:c03c07ed32c5324939b19e36ae5f75c660c81461e312a41aea30acdd46f93a7c"},
+ {file = "Pillow-8.2.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:4d98abdd6b1e3bf1a1cbb14c3895226816e666749ac040c4e2554231068c639b"},
+ {file = "Pillow-8.2.0-pp37-pypy37_pp73-manylinux2010_i686.whl", hash = "sha256:aac00e4bc94d1b7813fe882c28990c1bc2f9d0e1aa765a5f2b516e8a6a16a9e4"},
+ {file = "Pillow-8.2.0-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:22fd0f42ad15dfdde6c581347eaa4adb9a6fc4b865f90b23378aa7914895e120"},
+ {file = "Pillow-8.2.0-pp37-pypy37_pp73-win32.whl", hash = "sha256:e98eca29a05913e82177b3ba3d198b1728e164869c613d76d0de4bde6768a50e"},
+ {file = "Pillow-8.2.0.tar.gz", hash = "sha256:a787ab10d7bb5494e5f76536ac460741788f1fbce851068d73a87ca7c35fc3e1"},
+]
+pycodestyle = [
+ {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"},
+ {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"},
+]
+pyflakes = [
+ {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"},
+ {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"},
+]
+pygments = [
+ {file = "Pygments-2.8.1-py3-none-any.whl", hash = "sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8"},
+ {file = "Pygments-2.8.1.tar.gz", hash = "sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94"},
+]
+pyparsing = [
+ {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
+ {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
+]
+python-dateutil = [
+ {file = "python-dateutil-2.8.1.tar.gz", hash = "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c"},
+ {file = "python_dateutil-2.8.1-py2.py3-none-any.whl", hash = "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"},
+]
+pytz = [
+ {file = "pytz-2021.1-py2.py3-none-any.whl", hash = "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"},
+ {file = "pytz-2021.1.tar.gz", hash = "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da"},
+]
+requests = [
+ {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"},
+ {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"},
+]
+responses = [
+ {file = "responses-0.12.1-py2.py3-none-any.whl", hash = "sha256:ef265bd3200bdef5ec17912fc64a23570ba23597fd54ca75c18650fa1699213d"},
+ {file = "responses-0.12.1.tar.gz", hash = "sha256:2e5764325c6b624e42b428688f2111fea166af46623cb0127c05f6afb14d3457"},
+]
+six = [
+ {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
+ {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
+]
+snowballstemmer = [
+ {file = "snowballstemmer-2.1.0-py2.py3-none-any.whl", hash = "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2"},
+ {file = "snowballstemmer-2.1.0.tar.gz", hash = "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"},
+]
+sphinx = [
+ {file = "Sphinx-3.0.0-py3-none-any.whl", hash = "sha256:b63a0c879c4ff9a4dffcb05217fa55672ce07abdeb81e33c73303a563f8d8901"},
+ {file = "Sphinx-3.0.0.tar.gz", hash = "sha256:6a099e6faffdc3ceba99ca8c2d09982d43022245e409249375edf111caf79ed3"},
+ {file = "Sphinx-3.5.4-py3-none-any.whl", hash = "sha256:2320d4e994a191f4b4be27da514e46b3d6b420f2ff895d064f52415d342461e8"},
+ {file = "Sphinx-3.5.4.tar.gz", hash = "sha256:19010b7b9fa0dc7756a6e105b2aacd3a80f798af3c25c273be64d7beeb482cb1"},
+]
+sphinx-copybutton = [
+ {file = "sphinx-copybutton-0.3.1.tar.gz", hash = "sha256:0e0461df394515284e3907e3f418a0c60ef6ab6c9a27a800c8552772d0a402a2"},
+ {file = "sphinx_copybutton-0.3.1-py3-none-any.whl", hash = "sha256:5125c718e763596e6e52d92e15ee0d6f4800ad3817939be6dee51218870b3e3d"},
+]
+sphinx-testing = [
+ {file = "sphinx-testing-1.0.1.tar.gz", hash = "sha256:ef661775b5722d7b00f67fc229104317d35637a4fb4434bf2c005afdf1da4d09"},
+ {file = "sphinx_testing-1.0.1-py2.py3-none-any.whl", hash = "sha256:9f2cb1eaae0c5172800e20dd78ee3ef42d020738135511f982f9815898586bc9"},
+]
+sphinxcontrib-applehelp = [
+ {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"},
+ {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"},
+]
+sphinxcontrib-devhelp = [
+ {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"},
+ {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"},
+]
+sphinxcontrib-htmlhelp = [
+ {file = "sphinxcontrib-htmlhelp-1.0.3.tar.gz", hash = "sha256:e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b"},
+ {file = "sphinxcontrib_htmlhelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:3c0bc24a2c41e340ac37c85ced6dafc879ab485c095b1d65d2461ac2f7cca86f"},
+]
+sphinxcontrib-jsmath = [
+ {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"},
+ {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"},
+]
+sphinxcontrib-plantuml = [
+ {file = "sphinxcontrib-plantuml-0.20.1.tar.gz", hash = "sha256:4bf607da1048a66cbe6969ffd2bcb331ae4bcefacc3875278c4d2271b95a0a74"},
+]
+sphinxcontrib-qthelp = [
+ {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"},
+ {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"},
+]
+sphinxcontrib-serializinghtml = [
+ {file = "sphinxcontrib-serializinghtml-1.1.4.tar.gz", hash = "sha256:eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc"},
+ {file = "sphinxcontrib_serializinghtml-1.1.4-py2.py3-none-any.whl", hash = "sha256:f242a81d423f59617a8e5cf16f5d4d74e28ee9a66f9e5b637a18082991db5a9a"},
+]
+typed-ast = [
+ {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6"},
+ {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075"},
+ {file = "typed_ast-1.4.3-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528"},
+ {file = "typed_ast-1.4.3-cp35-cp35m-win32.whl", hash = "sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428"},
+ {file = "typed_ast-1.4.3-cp35-cp35m-win_amd64.whl", hash = "sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3"},
+ {file = "typed_ast-1.4.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f"},
+ {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341"},
+ {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace"},
+ {file = "typed_ast-1.4.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f"},
+ {file = "typed_ast-1.4.3-cp36-cp36m-win32.whl", hash = "sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363"},
+ {file = "typed_ast-1.4.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7"},
+ {file = "typed_ast-1.4.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266"},
+ {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e"},
+ {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04"},
+ {file = "typed_ast-1.4.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899"},
+ {file = "typed_ast-1.4.3-cp37-cp37m-win32.whl", hash = "sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c"},
+ {file = "typed_ast-1.4.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805"},
+ {file = "typed_ast-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a"},
+ {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff"},
+ {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41"},
+ {file = "typed_ast-1.4.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39"},
+ {file = "typed_ast-1.4.3-cp38-cp38-win32.whl", hash = "sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927"},
+ {file = "typed_ast-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40"},
+ {file = "typed_ast-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3"},
+ {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4"},
+ {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0"},
+ {file = "typed_ast-1.4.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3"},
+ {file = "typed_ast-1.4.3-cp39-cp39-win32.whl", hash = "sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808"},
+ {file = "typed_ast-1.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c"},
+ {file = "typed_ast-1.4.3.tar.gz", hash = "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65"},
+]
+typing-extensions = [
+ {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"},
+ {file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"},
+ {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"},
+]
+urllib3 = [
+ {file = "urllib3-1.26.4-py2.py3-none-any.whl", hash = "sha256:2f4da4594db7e1e110a944bb1b551fdf4e6c136ad42e4234131391e21eb5b0df"},
+ {file = "urllib3-1.26.4.tar.gz", hash = "sha256:e7b021f7241115872f92f43c6508082facffbd1c048e3c6e2bb9c2a157e28937"},
+]
+zipp = [
+ {file = "zipp-3.4.1-py3-none-any.whl", hash = "sha256:51cb66cc54621609dd593d1787f286ee42a5c0adbb4b29abea5a63edc3e03098"},
+ {file = "zipp-3.4.1.tar.gz", hash = "sha256:3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76"},
+]
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 000000000..147382529
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,51 @@
+[tool.poetry]
+name = "sphinxcontrib-needs"
+version = "0.7.0"
+description = "Sphinx needs extension for managing needs/requirements and specifications"
+authors = ["team useblocks "]
+license = "MIT"
+readme = "README.rst"
+repository = "http://github.com/useblocks/sphinxcontrib-needs"
+documentation = "https://sphinxcontrib-needs.readthedocs.io/en/latest/"
+classifiers=[
+ 'Development Status :: 5 - Production/Stable',
+ 'Intended Audience :: Developers',
+ 'License :: OSI Approved :: MIT License',
+ 'Operating System :: OS Independent',
+ 'Programming Language :: Python',
+ 'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 3.6',
+ 'Programming Language :: Python :: 3.7',
+ 'Programming Language :: Python :: 3.8',
+ 'Topic :: Documentation',
+ 'Topic :: Utilities',
+ ]
+
+packages = [
+ {include = "sphinxcontrib", from = "."}
+]
+
+[tool.poetry.dependencies]
+python = "^3.6"
+sphinxcontrib-plantuml = "*"
+matplotlib = [
+ { version = "^3.1.0", python = "^3.6" },
+]
+sphinx-copybutton = "^0.3.0"
+sphinx = [
+ { version = ">2.2, <=3.0", python = "~3.6" },
+ { version = ">2.2", python = "^3.7" },
+]
+
+[tool.poetry.dev-dependencies]
+mypy = "^0.812"
+responses = "^0.12.1"
+nose = "^1.3.7"
+sphinx-testing = ">=1.0"
+sphinx-copybutton = "^0.3.1"
+flake8 = "^3.9.0"
+pep8-naming = "^0.11.1"
+
+[build-system]
+requires = ["poetry-core>=1.0.0"]
+build-backend = "poetry.core.masonry.api"
\ No newline at end of file
diff --git a/setup.py b/setup.py
deleted file mode 100644
index 698993089..000000000
--- a/setup.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-import os
-from setuptools import setup, find_packages
-
-requires = ['Sphinx<2;python_version<"3.5"',
- 'Sphinx<3;python_version<"3.6"', # Needed as matplotlib can not deal with py35 and sphinx3
- 'Sphinx;python_version>="3.6"',
- 'six',
- 'matplotlib<=3.0.3.;python_version<"3.6"', # last version with py3.5 support
- 'matplotlib;python_version>="3.6"',
- 'MarkupSafe<1.3.0.;python_version<"3.6"',
- 'Jinja2<=2.11.3.;python_version<"3.6"',
- 'm2r']
-
-setup(
- name='sphinxcontrib-needs',
- # If you raise, think about versions in conf.py and needs.py!!!
- version='0.6.0',
- url='http://github.com/useblocks/sphinxcontrib-needs',
- download_url='http://pypi.python.org/pypi/sphinxcontrib-needs',
- license='MIT',
- author='team useblocks',
- author_email='info@useblocks.com',
- description='Sphinx needs extension for managing needs/requirements and specifications',
- long_description=open(os.path.join(os.path.dirname(__file__), "README.rst")).read(),
- zip_safe=False,
- classifiers=[
- 'Development Status :: 5 - Production/Stable',
- 'Intended Audience :: Developers',
- 'License :: OSI Approved :: MIT License',
- 'Operating System :: OS Independent',
- 'Programming Language :: Python',
- 'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.5',
- 'Programming Language :: Python :: 3.6',
- 'Programming Language :: Python :: 3.7',
- 'Programming Language :: Python :: 3.8',
- 'Topic :: Documentation',
- 'Topic :: Utilities',
- ],
- platforms='any',
- packages=find_packages(),
- include_package_data=True,
- install_requires=requires,
- setup_requires=['wheel'],
- namespace_packages=['sphinxcontrib'],
-)
diff --git a/sphinxcontrib/needs/api/configuration.py b/sphinxcontrib/needs/api/configuration.py
index f499b2c0d..587ba7305 100644
--- a/sphinxcontrib/needs/api/configuration.py
+++ b/sphinxcontrib/needs/api/configuration.py
@@ -5,7 +5,7 @@
"""
from docutils.parsers.rst import directives
-from sphinxcontrib.needs.api.exceptions import NeedsNotLoadedException, NeedsApiConfigException, NeedsApiConfigWarning
+from sphinxcontrib.needs.api.exceptions import NeedsApiConfigException, NeedsApiConfigWarning
from sphinxcontrib.needs.functions import register_func
import sphinxcontrib.needs.directives.need
from sphinx.application import Sphinx
diff --git a/sphinxcontrib/needs/directives/needfilter.py b/sphinxcontrib/needs/directives/needfilter.py
index 5c269bdac..5cc32819c 100644
--- a/sphinxcontrib/needs/directives/needfilter.py
+++ b/sphinxcontrib/needs/directives/needfilter.py
@@ -26,6 +26,7 @@ class NeedfilterDirective(FilterBase):
.. deprecated:: 0.2.0
Use needlist, needtable or needdiagram instead
"""
+ @staticmethod
def layout(argument):
return directives.choice(argument, ("list", "table", "diagram"))
diff --git a/sphinxcontrib/needs/directives/needflow.py b/sphinxcontrib/needs/directives/needflow.py
index a2647a06a..3a706fb7c 100644
--- a/sphinxcontrib/needs/directives/needflow.py
+++ b/sphinxcontrib/needs/directives/needflow.py
@@ -108,7 +108,7 @@ def split_link_types(link_types: str) -> Iterable[str]:
def is_valid(link_type) -> bool:
if len(link_type) == 0 or link_type.isspace():
logger.warning('Scruffy link_type definition found in needflow {}. '
- 'Defined link_type contains spaces only.'.format(id))
+ 'Defined link_type contains spaces only.'.format(id))
return False
return True
diff --git a/sphinxcontrib/needs/directives/needimport.py b/sphinxcontrib/needs/directives/needimport.py
index 6cc912481..5b8f60313 100644
--- a/sphinxcontrib/needs/directives/needimport.py
+++ b/sphinxcontrib/needs/directives/needimport.py
@@ -6,7 +6,6 @@
from docutils import nodes
from docutils.parsers.rst import directives
from docutils.parsers.rst import Directive
-from jinja2 import Template
from sphinxcontrib.needs.api import add_need
from sphinxcontrib.needs.filter_common import filter_single_need
@@ -42,7 +41,6 @@ def run(self):
version = self.options.get("version", None)
filter_string = self.options.get("filter", None)
id_prefix = self.options.get("id_prefix", "")
- hide = True if "hide" in self.options.keys() else False
tags = self.options.get("tags", [])
if len(tags) > 0:
diff --git a/sphinxcontrib/needs/directives/needsequence.py b/sphinxcontrib/needs/directives/needsequence.py
index cfc18542a..33d22c094 100644
--- a/sphinxcontrib/needs/directives/needsequence.py
+++ b/sphinxcontrib/needs/directives/needsequence.py
@@ -145,9 +145,9 @@ def process_needsequence(app, doctree, fromdocname):
# Add children of participants
_msg_receiver_needs, p_string_new, c_string_new = get_message_needs(need,
- current_needsequence['link_types'],
- all_needs_dict,
- filter=current_needsequence['filter'])
+ current_needsequence['link_types'],
+ all_needs_dict,
+ filter=current_needsequence['filter'])
p_string += p_string_new
c_string += c_string_new
diff --git a/sphinxcontrib/needs/layout.py b/sphinxcontrib/needs/layout.py
index c1649cf6e..738ec3f17 100644
--- a/sphinxcontrib/needs/layout.py
+++ b/sphinxcontrib/needs/layout.py
@@ -538,7 +538,7 @@ def meta_all(self, prefix='', postfix='', exclude=None, no_links=False, defaults
Usage::
- <>
+ <>
.. note::
@@ -799,7 +799,7 @@ def link(self, url, text=None, image_url=None, image_height=None, image_width=No
label_node += prefix_node
data_container.append(label_node)
- text = text = '' # May be needed if only image shall be shown
+ text = text = '' # May be needed if only image shall be shown
if is_dynamic:
try:
diff --git a/sphinxcontrib/needs/services/manager.py b/sphinxcontrib/needs/services/manager.py
index 4a630e1ab..a2e0de382 100644
--- a/sphinxcontrib/needs/services/manager.py
+++ b/sphinxcontrib/needs/services/manager.py
@@ -17,7 +17,7 @@ def register(self, name, clazz, **kwargs):
config = self.app.config.needs_services[name]
except KeyError:
self.log.debug('No service config found for {}. '
- 'Add it in your conf.py to needs_services dictionary.'.format(name))
+ 'Add it in your conf.py to needs_services dictionary.'.format(name))
config = {}
# Register options from service class
diff --git a/sphinxcontrib/needs/utils.py b/sphinxcontrib/needs/utils.py
index 0bac2c1c9..8ca9714d5 100644
--- a/sphinxcontrib/needs/utils.py
+++ b/sphinxcontrib/needs/utils.py
@@ -25,7 +25,16 @@
'September', 'October', 'November', 'December']
-def row_col_maker(app: Sphinx, fromdocname, all_needs, need_info, need_key, make_ref=False, ref_lookup=False, prefix=''):
+def row_col_maker(
+ app: Sphinx,
+ fromdocname,
+ all_needs,
+ need_info,
+ need_key,
+ make_ref=False,
+ ref_lookup=False,
+ prefix=''
+):
"""
Creates and returns a column.
diff --git a/test-requirements.txt b/test-requirements.txt
deleted file mode 100644
index 4a1c948f2..000000000
--- a/test-requirements.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-pytest
-pytest-flake8
-coverage
-python-coveralls
-tox
-nose
-sphinx_testing>=1.0
-sphinxcontrib-plantuml
-sphinx-copybutton
-responses
diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/data/service_github.py b/tests/data/service_github.py
index 6ab5b7ca8..70072221d 100644
--- a/tests/data/service_github.py
+++ b/tests/data/service_github.py
@@ -3,459 +3,651 @@
# Needed to avoid external service calls during tests
# Response for a search api call
-GITHUB_ISSUE_SEARCH_ANSWER = {'total_count': 2, 'incomplete_results': False, 'items':
- [{'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/141',
- 'repository_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs',
- 'labels_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/141/labels{/name}',
- 'comments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/141/comments',
- 'events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/141/events',
- 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/issues/141', 'id': 586783574,
- 'node_id': 'MDU6SXNzdWU1ODY3ODM1NzQ=', 'number': 100,
- 'title': 'A node can only be in one page, else it will be cut when generate latexpdf ',
- 'user': {'login': 'sophiali2008', 'id': 62423175, 'node_id': 'MDQ6VXNlcjYyNDIzMTc1',
- 'avatar_url': 'https://avatars.githubusercontent.com/u/62423175?v=4', 'gravatar_id': '',
- 'url': 'https://api.github.com/users/sophiali2008', 'html_url': 'https://github.com/sophiali2008',
- 'followers_url': 'https://api.github.com/users/sophiali2008/followers',
- 'following_url': 'https://api.github.com/users/sophiali2008/following{/other_user}',
- 'gists_url': 'https://api.github.com/users/sophiali2008/gists{/gist_id}',
- 'starred_url': 'https://api.github.com/users/sophiali2008/starred{/owner}{/repo}',
- 'subscriptions_url': 'https://api.github.com/users/sophiali2008/subscriptions',
- 'organizations_url': 'https://api.github.com/users/sophiali2008/orgs',
- 'repos_url': 'https://api.github.com/users/sophiali2008/repos',
- 'events_url': 'https://api.github.com/users/sophiali2008/events{/privacy}',
- 'received_events_url': 'https://api.github.com/users/sophiali2008/received_events', 'type': 'User',
- 'site_admin': False}, 'labels': [{'id': 491973814, 'node_id': 'MDU6TGFiZWw0OTE5NzM4MTQ=',
- 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/labels/bug',
- 'name': 'bug', 'color': 'ee0701', 'default': True,
- 'description': None}], 'state': 'open', 'locked': False,
- 'assignee': None, 'assignees': [],
- 'milestone': {'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/milestones/6',
- 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/milestone/6',
- 'labels_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/milestones/6/labels',
- 'id': 5182610, 'node_id': 'MDk6TWlsZXN0b25lNTE4MjYxMA==', 'number': 6, 'title': '0.5.5',
- 'description': None, 'creator': {'login': 'danwos', 'id': 998700, 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
- 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4',
- 'gravatar_id': '', 'url': 'https://api.github.com/users/danwos',
- 'html_url': 'https://github.com/danwos',
- 'followers_url': 'https://api.github.com/users/danwos/followers',
- 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
- 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
- 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
- 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
- 'organizations_url': 'https://api.github.com/users/danwos/orgs',
- 'repos_url': 'https://api.github.com/users/danwos/repos',
- 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
- 'received_events_url': 'https://api.github.com/users/danwos/received_events',
- 'type': 'User', 'site_admin': False}, 'open_issues': 2,
- 'closed_issues': 0, 'state': 'open', 'created_at': '2020-03-09T13:53:46Z',
- 'updated_at': '2020-03-24T08:50:03Z', 'due_on': None, 'closed_at': None}, 'comments': 3,
- 'created_at': '2020-03-24T08:30:43Z', 'updated_at': '2021-02-12T11:57:06Z', 'closed_at': None,
- 'author_association': 'NONE', 'active_lock_reason': None,
- 'body': 'Hello,\r\nI used the extension needs 0.5.3 in my project, it is perfectly fit in html. \r\nBut when I '
- 'generate latexpdf, the content is cut if it is more than one page. Is it possible to generate it like '
- 'a longtable which adjust the content in different continues pages ?',
- 'performed_via_github_app': None, 'score': 1.0}]}
+GITHUB_ISSUE_SEARCH_ANSWER = {
+ 'total_count': 2,
+ 'incomplete_results': False,
+ 'items': [
+ {
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/141',
+ 'repository_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs',
+ 'labels_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/141/labels{/name}',
+ 'comments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/141/comments',
+ 'events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/141/events',
+ 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/issues/141',
+ 'id': 586783574,
+ 'node_id': 'MDU6SXNzdWU1ODY3ODM1NzQ=',
+ 'number': 100,
+ 'title': 'A node can only be in one page, else it will be cut when generate latexpdf ',
+ 'user': {
+ 'login': 'sophiali2008',
+ 'id': 62423175,
+ 'node_id': 'MDQ6VXNlcjYyNDIzMTc1',
+ 'avatar_url': 'https://avatars.githubusercontent.com/u/62423175?v=4',
+ 'gravatar_id': '',
+ 'url': 'https://api.github.com/users/sophiali2008',
+ 'html_url': 'https://github.com/sophiali2008',
+ 'followers_url': 'https://api.github.com/users/sophiali2008/followers',
+ 'following_url': 'https://api.github.com/users/sophiali2008/following{/other_user}',
+ 'gists_url': 'https://api.github.com/users/sophiali2008/gists{/gist_id}',
+ 'starred_url': 'https://api.github.com/users/sophiali2008/starred{/owner}{/repo}',
+ 'subscriptions_url': 'https://api.github.com/users/sophiali2008/subscriptions',
+ 'organizations_url': 'https://api.github.com/users/sophiali2008/orgs',
+ 'repos_url': 'https://api.github.com/users/sophiali2008/repos',
+ 'events_url': 'https://api.github.com/users/sophiali2008/events{/privacy}',
+ 'received_events_url': 'https://api.github.com/users/sophiali2008/received_events',
+ 'type': 'User',
+ 'site_admin': False,
+ },
+ 'labels': [
+ {
+ 'id': 491973814,
+ 'node_id': 'MDU6TGFiZWw0OTE5NzM4MTQ=',
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/labels/bug',
+ 'name': 'bug',
+ 'color': 'ee0701',
+ 'default': True,
+ 'description': None,
+ }
+ ],
+ 'state': 'open',
+ 'locked': False,
+ 'assignee': None,
+ 'assignees': [],
+ 'milestone': {
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/milestones/6',
+ 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/milestone/6',
+ 'labels_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/milestones/6/labels',
+ 'id': 5182610,
+ 'node_id': 'MDk6TWlsZXN0b25lNTE4MjYxMA==',
+ 'number': 6,
+ 'title': '0.5.5',
+ 'description': None,
+ 'creator': {
+ 'login': 'danwos',
+ 'id': 998700,
+ 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
+ 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4',
+ 'gravatar_id': '',
+ 'url': 'https://api.github.com/users/danwos',
+ 'html_url': 'https://github.com/danwos',
+ 'followers_url': 'https://api.github.com/users/danwos/followers',
+ 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
+ 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
+ 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
+ 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
+ 'organizations_url': 'https://api.github.com/users/danwos/orgs',
+ 'repos_url': 'https://api.github.com/users/danwos/repos',
+ 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
+ 'received_events_url': 'https://api.github.com/users/danwos/received_events',
+ 'type': 'User',
+ 'site_admin': False,
+ },
+ 'open_issues': 2,
+ 'closed_issues': 0,
+ 'state': 'open',
+ 'created_at': '2020-03-09T13:53:46Z',
+ 'updated_at': '2020-03-24T08:50:03Z',
+ 'due_on': None,
+ 'closed_at': None,
+ },
+ 'comments': 3,
+ 'created_at': '2020-03-24T08:30:43Z',
+ 'updated_at': '2021-02-12T11:57:06Z',
+ 'closed_at': None,
+ 'author_association': 'NONE',
+ 'active_lock_reason': None,
+ 'body': 'Hello,\r\nI used the extension needs 0.5.3 in my project, it is perfectly fit in html. \r\nBut when I '
+ 'generate latexpdf, the content is cut if it is more than one page. Is it possible to generate it like '
+ 'a longtable which adjust the content in different continues pages ?',
+ 'performed_via_github_app': None,
+ 'score': 1.0,
+ }
+ ],
+}
# Response of a specific element from github api
GITHUB_SPECIFIC_ISSUE_ANSWER = {
'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/141',
'repository_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs',
'labels_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/'
- '141/labels{/name}',
+ '141/labels{/name}',
'comments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/141/comments',
'events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/141/events',
- 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/issues/141', 'id': 586783574,
- 'node_id': 'MDU6SXNzdWU1ODY3ODM1NzQ=', 'number': 340,
+ 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/issues/141',
+ 'id': 586783574,
+ 'node_id': 'MDU6SXNzdWU1ODY3ODM1NzQ=',
+ 'number': 340,
'title': 'A node can only be in one page, else it will be cut when generate latexpdf ',
- 'user': {'login': 'sophiali2008', 'id': 62423175, 'node_id': 'MDQ6VXNlcjYyNDIzMTc1',
- 'avatar_url': 'https://avatars.githubusercontent.com/u/62423175?v=4', 'gravatar_id': '',
- 'url': 'https://api.github.com/users/sophiali2008', 'html_url': 'https://github.com/sophiali2008',
- 'followers_url': 'https://api.github.com/users/sophiali2008/followers',
- 'following_url': 'https://api.github.com/users/sophiali2008/following{/other_user}',
- 'gists_url': 'https://api.github.com/users/sophiali2008/gists{/gist_id}',
- 'starred_url': 'https://api.github.com/users/sophiali2008/starred{/owner}{/repo}',
- 'subscriptions_url': 'https://api.github.com/users/sophiali2008/subscriptions',
- 'organizations_url': 'https://api.github.com/users/sophiali2008/orgs',
- 'repos_url': 'https://api.github.com/users/sophiali2008/repos',
- 'events_url': 'https://api.github.com/users/sophiali2008/events{/privacy}',
- 'received_events_url': 'https://api.github.com/users/sophiali2008/received_events', 'type': 'User',
- 'site_admin': False}, 'labels': [{'id': 491973814, 'node_id': 'MDU6TGFiZWw0OTE5NzM4MTQ=',
- 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs'
- '/labels/bug',
- 'name': 'bug', 'color': 'ee0701', 'default': True, 'description': None}],
- 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [],
- 'milestone': {'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/milestones/6',
- 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/milestone/6',
- 'labels_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/milestones/6/labels',
- 'id': 5182610, 'node_id': 'MDk6TWlsZXN0b25lNTE4MjYxMA==', 'number': 6, 'title': '0.5.5',
- 'description': None, 'creator': {'login': 'danwos', 'id': 998700, 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
- 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4',
- 'gravatar_id': '', 'url': 'https://api.github.com/users/danwos',
- 'html_url': 'https://github.com/danwos',
- 'followers_url': 'https://api.github.com/users/danwos/followers',
- 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
- 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
- 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
- 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
- 'organizations_url': 'https://api.github.com/users/danwos/orgs',
- 'repos_url': 'https://api.github.com/users/danwos/repos',
- 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
- 'received_events_url': 'https://api.github.com/users/danwos/received_events',
- 'type': 'User', 'site_admin': False}, 'open_issues': 2,
- 'closed_issues': 0, 'state': 'open', 'created_at': '2020-03-09T13:53:46Z',
- 'updated_at': '2020-03-24T08:50:03Z', 'due_on': None, 'closed_at': None}, 'comments': 3,
- 'created_at': '2020-03-24T08:30:43Z', 'updated_at': '2021-02-12T11:57:06Z', 'closed_at': None,
- 'author_association': 'NONE', 'active_lock_reason': None,
+ 'user': {
+ 'login': 'sophiali2008',
+ 'id': 62423175,
+ 'node_id': 'MDQ6VXNlcjYyNDIzMTc1',
+ 'avatar_url': 'https://avatars.githubusercontent.com/u/62423175?v=4',
+ 'gravatar_id': '',
+ 'url': 'https://api.github.com/users/sophiali2008',
+ 'html_url': 'https://github.com/sophiali2008',
+ 'followers_url': 'https://api.github.com/users/sophiali2008/followers',
+ 'following_url': 'https://api.github.com/users/sophiali2008/following{/other_user}',
+ 'gists_url': 'https://api.github.com/users/sophiali2008/gists{/gist_id}',
+ 'starred_url': 'https://api.github.com/users/sophiali2008/starred{/owner}{/repo}',
+ 'subscriptions_url': 'https://api.github.com/users/sophiali2008/subscriptions',
+ 'organizations_url': 'https://api.github.com/users/sophiali2008/orgs',
+ 'repos_url': 'https://api.github.com/users/sophiali2008/repos',
+ 'events_url': 'https://api.github.com/users/sophiali2008/events{/privacy}',
+ 'received_events_url': 'https://api.github.com/users/sophiali2008/received_events',
+ 'type': 'User',
+ 'site_admin': False,
+ },
+ 'labels': [
+ {
+ 'id': 491973814,
+ 'node_id': 'MDU6TGFiZWw0OTE5NzM4MTQ=',
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs'
+ '/labels/bug',
+ 'name': 'bug',
+ 'color': 'ee0701',
+ 'default': True,
+ 'description': None,
+ }
+ ],
+ 'state': 'open',
+ 'locked': False,
+ 'assignee': None,
+ 'assignees': [],
+ 'milestone': {
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/milestones/6',
+ 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/milestone/6',
+ 'labels_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/milestones/6/labels',
+ 'id': 5182610,
+ 'node_id': 'MDk6TWlsZXN0b25lNTE4MjYxMA==',
+ 'number': 6,
+ 'title': '0.5.5',
+ 'description': None,
+ 'creator': {
+ 'login': 'danwos',
+ 'id': 998700,
+ 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
+ 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4',
+ 'gravatar_id': '',
+ 'url': 'https://api.github.com/users/danwos',
+ 'html_url': 'https://github.com/danwos',
+ 'followers_url': 'https://api.github.com/users/danwos/followers',
+ 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
+ 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
+ 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
+ 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
+ 'organizations_url': 'https://api.github.com/users/danwos/orgs',
+ 'repos_url': 'https://api.github.com/users/danwos/repos',
+ 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
+ 'received_events_url': 'https://api.github.com/users/danwos/received_events',
+ 'type': 'User',
+ 'site_admin': False,
+ },
+ 'open_issues': 2,
+ 'closed_issues': 0,
+ 'state': 'open',
+ 'created_at': '2020-03-09T13:53:46Z',
+ 'updated_at': '2020-03-24T08:50:03Z',
+ 'due_on': None,
+ 'closed_at': None,
+ },
+ 'comments': 3,
+ 'created_at': '2020-03-24T08:30:43Z',
+ 'updated_at': '2021-02-12T11:57:06Z',
+ 'closed_at': None,
+ 'author_association': 'NONE',
+ 'active_lock_reason': None,
'body': 'Hello,\r\nI used the extension needs 0.5.3 in my project, it is perfectly fit in html. \r\nBut when I '
- 'generate latexpdf, the content is cut if it is more than one page. Is it possible to generate it like a '
- 'longtable which adjust the content in different continues pages ?',
- 'performed_via_github_app': None, 'score': 1.0}
+ 'generate latexpdf, the content is cut if it is more than one page. Is it possible to generate it like a '
+ 'longtable which adjust the content in different continues pages ?',
+ 'performed_via_github_app': None,
+ 'score': 1.0,
+}
GITHUB_SPECIFIC_COMMIT_ANSWER = {
'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits'
- '/dc14807f0b247e758bbcbef289 '
- '53444f18b503e3', 'sha': 'dc14807f0b247e758bbcbef28953444f18b503e3',
+ '/dc14807f0b247e758bbcbef289 '
+ '53444f18b503e3',
+ 'sha': 'dc14807f0b247e758bbcbef28953444f18b503e3',
'node_id': 'MDY6Q29tbWl0NzUyMjU5NDk6ZGMxNDgwN2YwYjI0N2U3NThiYmNiZWYyODk1MzQ0NGYxOGI1MDNlMw==',
'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/commit/dc14807f0b247e758bbcbef28953444f18b503e3',
'comments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits'
- '/dc14807f0b247e758bbcbef28953444f18b503e3/comments',
+ '/dc14807f0b247e758bbcbef28953444f18b503e3/comments',
'commit': {
'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/commits'
- '/dc14807f0b247e758bbcbef28953444f18b503e3',
- 'author': {'date': '2021-01-06T06:33:48.000+01:00', 'name': 'Daniel Woste',
- 'email': 'daniel.woste@useblocks.com'},
- 'committer': {'date': '2021-01-06T06:47:45.000+01:00', 'name': 'Daniel Woste',
- 'email': 'daniel.woste@useblocks.com'}, 'message': 'string format fix to support python 3.5',
+ '/dc14807f0b247e758bbcbef28953444f18b503e3',
+ 'author': {
+ 'date': '2021-01-06T06:33:48.000+01:00',
+ 'name': 'Daniel Woste',
+ 'email': 'daniel.woste@useblocks.com',
+ },
+ 'committer': {
+ 'date': '2021-01-06T06:47:45.000+01:00',
+ 'name': 'Daniel Woste',
+ 'email': 'daniel.woste@useblocks.com',
+ },
+ 'message': 'string format fix to support python 3.5',
'tree': {
'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/trees'
- '/5bf05fc659dd7f2481e5e90ffca5015ee25e047a',
- 'sha': '5bf05fc659dd7f2481e5e90ffca5015ee25e047a'}, 'comment_count': 0},
- 'author': {'login': 'danwos', 'id': 998700, 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
- 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4', 'gravatar_id': '',
- 'url': 'https://api.github.com/users/danwos', 'html_url': 'https://github.com/danwos',
- 'followers_url': 'https://api.github.com/users/danwos/followers',
- 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
- 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
- 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
- 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
- 'organizations_url': 'https://api.github.com/users/danwos/orgs',
- 'repos_url': 'https://api.github.com/users/danwos/repos',
- 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
- 'received_events_url': 'https://api.github.com/users/danwos/received_events', 'type': 'User',
- 'site_admin': False},
- 'committer': {'login': 'danwos', 'id': 998700, 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
- 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4', 'gravatar_id': '',
- 'url': 'https://api.github.com/users/danwos', 'html_url': 'https://github.com/danwos',
- 'followers_url': 'https://api.github.com/users/danwos/followers',
- 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
- 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
- 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
- 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
- 'organizations_url': 'https://api.github.com/users/danwos/orgs',
- 'repos_url': 'https://api.github.com/users/danwos/repos',
- 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
- 'received_events_url': 'https://api.github.com/users/danwos/received_events', 'type': 'User',
- 'site_admin': False}, 'parents': [{
- 'url': 'https://api.github.com/repos/useblocks'
- '/sphinxcontrib-needs/commits'
- '/beec7bec42035e3cad09c8400397fa7c828cdd91',
- 'html_url': 'https://github.com/useblocks/sphinxcontrib'
- '-needs/commit'
- '/beec7bec42035e3cad09c8400397fa7c828cdd91',
- 'sha': 'beec7bec42035e3cad09c8400397fa7c828cdd91'}],
- 'repository': {'id': 75225949, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTIyNTk0OQ==', 'name': 'sphinxcontrib-needs',
- 'full_name': 'useblocks/sphinxcontrib-needs', 'private': False,
- 'owner': {'login': 'useblocks', 'id': 998587, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjk5ODU4Nw==',
- 'avatar_url': 'https://avatars.githubusercontent.com/u/998587?v=4', 'gravatar_id': '',
- 'url': 'https://api.github.com/users/useblocks',
- 'html_url': 'https://github.com/useblocks',
- 'followers_url': 'https://api.github.com/users/useblocks/followers',
- 'following_url': 'https://api.github.com/users/useblocks/following{/other_user}',
- 'gists_url': 'https://api.github.com/users/useblocks/gists{/gist_id}',
- 'starred_url': 'https://api.github.com/users/useblocks/starred{/owner}{/repo}',
- 'subscriptions_url': 'https://api.github.com/users/useblocks/subscriptions',
- 'organizations_url': 'https://api.github.com/users/useblocks/orgs',
- 'repos_url': 'https://api.github.com/users/useblocks/repos',
- 'events_url': 'https://api.github.com/users/useblocks/events{/privacy}',
- 'received_events_url': 'https://api.github.com/users/useblocks/received_events',
- 'type': 'Organization', 'site_admin': False},
- 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs',
- 'description': 'Adds needs/requirements to sphinx', 'fork': False,
- 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs',
- 'forks_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/forks',
- 'keys_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/keys{/key_id}',
- 'collaborators_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs'
- '/collaborators{/collaborator}',
- 'teams_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/teams',
- 'hooks_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/hooks',
- 'issue_events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/events{'
- '/number}',
- 'events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/events',
- 'assignees_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/assignees{/user}',
- 'branches_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/branches{/branch}',
- 'tags_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/tags',
- 'blobs_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/blobs{/sha}',
- 'git_tags_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/tags{/sha}',
- 'git_refs_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/refs{/sha}',
- 'trees_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/trees{/sha}',
- 'statuses_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/statuses/{sha}',
- 'languages_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/languages',
- 'stargazers_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/stargazers',
- 'contributors_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/contributors',
- 'subscribers_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/subscribers',
- 'subscription_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/subscription',
- 'commits_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits{/sha}',
- 'git_commits_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git'
- '/commits{/sha}',
- 'comments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/comments{/number}',
- 'issue_comment_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues'
- '/comments{/number}',
- 'contents_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/contents/{+path}',
- 'compare_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/compare/{base}...{'
- 'head}',
- 'merges_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/merges',
- 'archive_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/{archive_format}{'
- '/ref}',
- 'downloads_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/downloads',
- 'issues_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues{/number}',
- 'pulls_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/pulls{/number}',
- 'milestones_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/milestones{'
- '/number}',
- 'notifications_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs'
- '/notifications{?since,all,participating}',
- 'labels_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/labels{/name}',
- 'releases_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/releases{/id}',
- 'deployments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/deployments'},
- 'score': 1.0}
+ '/5bf05fc659dd7f2481e5e90ffca5015ee25e047a',
+ 'sha': '5bf05fc659dd7f2481e5e90ffca5015ee25e047a',
+ },
+ 'comment_count': 0,
+ },
+ 'author': {
+ 'login': 'danwos',
+ 'id': 998700,
+ 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
+ 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4',
+ 'gravatar_id': '',
+ 'url': 'https://api.github.com/users/danwos',
+ 'html_url': 'https://github.com/danwos',
+ 'followers_url': 'https://api.github.com/users/danwos/followers',
+ 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
+ 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
+ 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
+ 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
+ 'organizations_url': 'https://api.github.com/users/danwos/orgs',
+ 'repos_url': 'https://api.github.com/users/danwos/repos',
+ 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
+ 'received_events_url': 'https://api.github.com/users/danwos/received_events',
+ 'type': 'User',
+ 'site_admin': False,
+ },
+ 'committer': {
+ 'login': 'danwos',
+ 'id': 998700,
+ 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
+ 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4',
+ 'gravatar_id': '',
+ 'url': 'https://api.github.com/users/danwos',
+ 'html_url': 'https://github.com/danwos',
+ 'followers_url': 'https://api.github.com/users/danwos/followers',
+ 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
+ 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
+ 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
+ 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
+ 'organizations_url': 'https://api.github.com/users/danwos/orgs',
+ 'repos_url': 'https://api.github.com/users/danwos/repos',
+ 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
+ 'received_events_url': 'https://api.github.com/users/danwos/received_events',
+ 'type': 'User',
+ 'site_admin': False,
+ },
+ 'parents': [
+ {
+ 'url': 'https://api.github.com/repos/useblocks'
+ '/sphinxcontrib-needs/commits'
+ '/beec7bec42035e3cad09c8400397fa7c828cdd91',
+ 'html_url': 'https://github.com/useblocks/sphinxcontrib'
+ '-needs/commit'
+ '/beec7bec42035e3cad09c8400397fa7c828cdd91',
+ 'sha': 'beec7bec42035e3cad09c8400397fa7c828cdd91',
+ }
+ ],
+ 'repository': {
+ 'id': 75225949,
+ 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTIyNTk0OQ==',
+ 'name': 'sphinxcontrib-needs',
+ 'full_name': 'useblocks/sphinxcontrib-needs',
+ 'private': False,
+ 'owner': {
+ 'login': 'useblocks',
+ 'id': 998587,
+ 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjk5ODU4Nw==',
+ 'avatar_url': 'https://avatars.githubusercontent.com/u/998587?v=4',
+ 'gravatar_id': '',
+ 'url': 'https://api.github.com/users/useblocks',
+ 'html_url': 'https://github.com/useblocks',
+ 'followers_url': 'https://api.github.com/users/useblocks/followers',
+ 'following_url': 'https://api.github.com/users/useblocks/following{/other_user}',
+ 'gists_url': 'https://api.github.com/users/useblocks/gists{/gist_id}',
+ 'starred_url': 'https://api.github.com/users/useblocks/starred{/owner}{/repo}',
+ 'subscriptions_url': 'https://api.github.com/users/useblocks/subscriptions',
+ 'organizations_url': 'https://api.github.com/users/useblocks/orgs',
+ 'repos_url': 'https://api.github.com/users/useblocks/repos',
+ 'events_url': 'https://api.github.com/users/useblocks/events{/privacy}',
+ 'received_events_url': 'https://api.github.com/users/useblocks/received_events',
+ 'type': 'Organization',
+ 'site_admin': False,
+ },
+ 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs',
+ 'description': 'Adds needs/requirements to sphinx',
+ 'fork': False,
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs',
+ 'forks_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/forks',
+ 'keys_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/keys{/key_id}',
+ 'collaborators_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs'
+ '/collaborators{/collaborator}',
+ 'teams_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/teams',
+ 'hooks_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/hooks',
+ 'issue_events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/events{'
+ '/number}',
+ 'events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/events',
+ 'assignees_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/assignees{/user}',
+ 'branches_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/branches{/branch}',
+ 'tags_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/tags',
+ 'blobs_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/blobs{/sha}',
+ 'git_tags_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/tags{/sha}',
+ 'git_refs_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/refs{/sha}',
+ 'trees_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/trees{/sha}',
+ 'statuses_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/statuses/{sha}',
+ 'languages_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/languages',
+ 'stargazers_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/stargazers',
+ 'contributors_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/contributors',
+ 'subscribers_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/subscribers',
+ 'subscription_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/subscription',
+ 'commits_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits{/sha}',
+ 'git_commits_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git'
+ '/commits{/sha}',
+ 'comments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/comments{/number}',
+ 'issue_comment_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues'
+ '/comments{/number}',
+ 'contents_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/contents/{+path}',
+ 'compare_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/compare/{base}...{'
+ 'head}',
+ 'merges_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/merges',
+ 'archive_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/{archive_format}{'
+ '/ref}',
+ 'downloads_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/downloads',
+ 'issues_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues{/number}',
+ 'pulls_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/pulls{/number}',
+ 'milestones_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/milestones{'
+ '/number}',
+ 'notifications_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs'
+ '/notifications{?since,all,participating}',
+ 'labels_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/labels{/name}',
+ 'releases_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/releases{/id}',
+ 'deployments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/deployments',
+ },
+ 'score': 1.0,
+}
GITHUB_SEARCH_COMMIT_ANSWER = {
'total_count': 11,
'incomplete_results': False,
- 'items': [{
- 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits/dc14807f0b247e758bbcbef28953444f18b503e3',
- 'sha': 'dc14807f0b247e758bbcbef28953444f18b503e3',
- 'node_id': 'MDY6Q29tbWl0NzUyMjU5NDk6ZGMxNDgwN2YwYjI0N2U3NThiYmNiZWYyODk1MzQ0NGYxOGI1MDNlMw==',
- 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/commit/dc14807f0b247e758bbcbef28953444f18b503e3',
- 'comments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits/dc14807f0b247e758bbcbef28953444f18b503e3/comments',
- 'commit': {
- 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/commits/dc14807f0b247e758bbcbef28953444f18b503e3',
- 'author': {'date': '2021-01-06T06:33:48.000+01:00',
- 'name': 'Daniel Woste',
- 'email': 'daniel.woste@useblocks.com'},
- 'committer': {'date': '2021-01-06T06:47:45.000+01:00',
- 'name': 'Daniel Woste',
- 'email': 'daniel.woste@useblocks.com'},
- 'message': 'string format fix to support python 3.5', 'tree': {
- 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/trees/5bf05fc659dd7f2481e5e90ffca5015ee25e047a',
- 'sha': '5bf05fc659dd7f2481e5e90ffca5015ee25e047a'},
- 'comment_count': 0}, 'author': {'login': 'danwos', 'id': 998700,
- 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
- 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4',
- 'gravatar_id': '',
- 'url': 'https://api.github.com/users/danwos',
- 'html_url': 'https://github.com/danwos',
- 'followers_url': 'https://api.github.com/users/danwos/followers',
- 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
- 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
- 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
- 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
- 'organizations_url': 'https://api.github.com/users/danwos/orgs',
- 'repos_url': 'https://api.github.com/users/danwos/repos',
- 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
- 'received_events_url': 'https://api.github.com/users/danwos/received_events',
- 'type': 'User', 'site_admin': False},
- 'committer': {'login': 'danwos', 'id': 998700,
- 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
- 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4',
- 'gravatar_id': '',
- 'url': 'https://api.github.com/users/danwos',
- 'html_url': 'https://github.com/danwos',
- 'followers_url': 'https://api.github.com/users/danwos/followers',
- 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
- 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
- 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
- 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
- 'organizations_url': 'https://api.github.com/users/danwos/orgs',
- 'repos_url': 'https://api.github.com/users/danwos/repos',
- 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
- 'received_events_url': 'https://api.github.com/users/danwos/received_events',
- 'type': 'User', 'site_admin': False}, 'parents': [{
- 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits/beec7bec42035e3cad09c8400397fa7c828cdd91',
- 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/commit/beec7bec42035e3cad09c8400397fa7c828cdd91',
- 'sha': 'beec7bec42035e3cad09c8400397fa7c828cdd91'}],
- 'repository': {'id': 75225949,
- 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTIyNTk0OQ==',
- 'name': 'sphinxcontrib-needs',
- 'full_name': 'useblocks/sphinxcontrib-needs',
- 'private': False,
- 'owner': {'login': 'useblocks', 'id': 998587,
- 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjk5ODU4Nw==',
- 'avatar_url': 'https://avatars.githubusercontent.com/u/998587?v=4',
- 'gravatar_id': '',
- 'url': 'https://api.github.com/users/useblocks',
- 'html_url': 'https://github.com/useblocks',
- 'followers_url': 'https://api.github.com/users/useblocks/followers',
- 'following_url': 'https://api.github.com/users/useblocks/following{/other_user}',
- 'gists_url': 'https://api.github.com/users/useblocks/gists{/gist_id}',
- 'starred_url': 'https://api.github.com/users/useblocks/starred{/owner}{/repo}',
- 'subscriptions_url': 'https://api.github.com/users/useblocks/subscriptions',
- 'organizations_url': 'https://api.github.com/users/useblocks/orgs',
- 'repos_url': 'https://api.github.com/users/useblocks/repos',
- 'events_url': 'https://api.github.com/users/useblocks/events{/privacy}',
- 'received_events_url': 'https://api.github.com/users/useblocks/received_events',
- 'type': 'Organization', 'site_admin': False},
- 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs',
- 'description': 'Adds needs/requirements to sphinx',
- 'fork': False,
- 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs',
- 'forks_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/forks',
- 'keys_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/keys{/key_id}',
- 'collaborators_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/collaborators{/collaborator}',
- 'teams_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/teams',
- 'hooks_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/hooks',
- 'issue_events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/events{/number}',
- 'events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/events',
- 'assignees_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/assignees{/user}',
- 'branches_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/branches{/branch}',
- 'tags_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/tags',
- 'blobs_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/blobs{/sha}',
- 'git_tags_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/tags{/sha}',
- 'git_refs_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/refs{/sha}',
- 'trees_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/trees{/sha}',
- 'statuses_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/statuses/{sha}',
- 'languages_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/languages',
- 'stargazers_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/stargazers',
- 'contributors_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/contributors',
- 'subscribers_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/subscribers',
- 'subscription_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/subscription',
- 'commits_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits{/sha}',
- 'git_commits_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/commits{/sha}',
- 'comments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/comments{/number}',
- 'issue_comment_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/comments{/number}',
- 'contents_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/contents/{+path}',
- 'compare_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/compare/{base}...{head}',
- 'merges_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/merges',
- 'archive_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/{archive_format}{/ref}',
- 'downloads_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/downloads',
- 'issues_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues{/number}',
- 'pulls_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/pulls{/number}',
- 'milestones_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/milestones{/number}',
- 'notifications_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/notifications{?since,all,participating}',
- 'labels_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/labels{/name}',
- 'releases_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/releases{/id}',
- 'deployments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/deployments'},
- 'score': 1.0}, {
- 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits/e9e2da4fece4a053d1a033027f08356657d61d63',
- 'sha': 'e9e2da4fece4a053d1a033027f08356657d61d63',
- 'node_id': 'MDY6Q29tbWl0NzUyMjU5NDk6ZTllMmRhNGZlY2U0YTA1M2QxYTAzMzAyN2YwODM1NjY1N2Q2MWQ2Mw==',
- 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/commit/e9e2da4fece4a053d1a033027f08356657d61d63',
- 'comments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits/e9e2da4fece4a053d1a033027f08356657d61d63/comments',
- 'commit': {
- 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/commits/e9e2da4fece4a053d1a033027f08356657d61d63',
- 'author': {'date': '2020-04-24T08:34:27.000+02:00',
- 'name': 'Daniel Woste',
- 'email': 'daniel.woste@useblocks.com'},
- 'committer': {'date': '2020-04-24T08:36:31.000+02:00',
- 'name': 'Daniel Woste',
- 'email': 'daniel.woste@useblocks.com'},
- 'message': 'Pin MarkupSafe installation to version <2 for Python<3.6',
- 'tree': {
- 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/trees/cb297c837987a8facf4c5208a24d66162d249dee',
- 'sha': 'cb297c837987a8facf4c5208a24d66162d249dee'},
- 'comment_count': 0}, 'author': {'login': 'danwos', 'id': 998700,
- 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
- 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4',
- 'gravatar_id': '',
- 'url': 'https://api.github.com/users/danwos',
- 'html_url': 'https://github.com/danwos',
- 'followers_url': 'https://api.github.com/users/danwos/followers',
- 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
- 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
- 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
- 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
- 'organizations_url': 'https://api.github.com/users/danwos/orgs',
- 'repos_url': 'https://api.github.com/users/danwos/repos',
- 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
- 'received_events_url': 'https://api.github.com/users/danwos/received_events',
- 'type': 'User', 'site_admin': False},
- 'committer': {'login': 'danwos', 'id': 998700,
- 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
- 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4',
- 'gravatar_id': '',
- 'url': 'https://api.github.com/users/danwos',
- 'html_url': 'https://github.com/danwos',
- 'followers_url': 'https://api.github.com/users/danwos/followers',
- 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
- 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
- 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
- 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
- 'organizations_url': 'https://api.github.com/users/danwos/orgs',
- 'repos_url': 'https://api.github.com/users/danwos/repos',
- 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
- 'received_events_url': 'https://api.github.com/users/danwos/received_events',
- 'type': 'User', 'site_admin': False}, 'parents': [{
- 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits/add7f346e42921f779d2181b95ae2c7aea3d6546',
- 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/commit/add7f346e42921f779d2181b95ae2c7aea3d6546',
- 'sha': 'add7f346e42921f779d2181b95ae2c7aea3d6546'}],
- 'repository': {'id': 75225949,
- 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTIyNTk0OQ==',
- 'name': 'sphinxcontrib-needs',
- 'full_name': 'useblocks/sphinxcontrib-needs',
- 'private': False,
- 'owner': {'login': 'useblocks', 'id': 998587,
- 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjk5ODU4Nw==',
- 'avatar_url': 'https://avatars.githubusercontent.com/u/998587?v=4',
- 'gravatar_id': '',
- 'url': 'https://api.github.com/users/useblocks',
- 'html_url': 'https://github.com/useblocks',
- 'followers_url': 'https://api.github.com/users/useblocks/followers',
- 'following_url': 'https://api.github.com/users/useblocks/following{/other_user}',
- 'gists_url': 'https://api.github.com/users/useblocks/gists{/gist_id}',
- 'starred_url': 'https://api.github.com/users/useblocks/starred{/owner}{/repo}',
- 'subscriptions_url': 'https://api.github.com/users/useblocks/subscriptions',
- 'organizations_url': 'https://api.github.com/users/useblocks/orgs',
- 'repos_url': 'https://api.github.com/users/useblocks/repos',
- 'events_url': 'https://api.github.com/users/useblocks/events{/privacy}',
- 'received_events_url': 'https://api.github.com/users/useblocks/received_events',
- 'type': 'Organization', 'site_admin': False},
- 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs',
- 'description': 'Adds needs/requirements to sphinx',
- 'fork': False,
- 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs',
- 'forks_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/forks',
- 'keys_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/keys{/key_id}',
- 'collaborators_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/collaborators{/collaborator}',
- 'teams_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/teams',
- 'hooks_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/hooks',
- 'issue_events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/events{/number}',
- 'events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/events',
- 'assignees_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/assignees{/user}',
- 'branches_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/branches{/branch}',
- 'tags_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/tags',
- 'blobs_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/blobs{/sha}',
- 'git_tags_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/tags{/sha}',
- 'git_refs_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/refs{/sha}',
- 'trees_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/trees{/sha}',
- 'statuses_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/statuses/{sha}',
- 'languages_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/languages',
- 'stargazers_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/stargazers',
- 'contributors_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/contributors',
- 'subscribers_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/subscribers',
- 'subscription_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/subscription',
- 'commits_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits{/sha}',
- 'git_commits_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/commits{/sha}',
- 'comments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/comments{/number}',
- 'issue_comment_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/comments{/number}',
- 'contents_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/contents/{+path}',
- 'compare_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/compare/{base}...{head}',
- 'merges_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/merges',
- 'archive_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/{archive_format}{/ref}',
- 'downloads_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/downloads',
- 'issues_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues{/number}',
- 'pulls_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/pulls{/number}',
- 'milestones_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/milestones{/number}',
- 'notifications_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/notifications{?since,all,participating}',
- 'labels_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/labels{/name}',
- 'releases_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/releases{/id}',
- 'deployments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/deployments'},
- 'score': 1.0}]}
+ 'items': [
+ {
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits/dc14807f0b247e758bbcbef28953444f18b503e3',
+ 'sha': 'dc14807f0b247e758bbcbef28953444f18b503e3',
+ 'node_id': 'MDY6Q29tbWl0NzUyMjU5NDk6ZGMxNDgwN2YwYjI0N2U3NThiYmNiZWYyODk1MzQ0NGYxOGI1MDNlMw==',
+ 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/commit/dc14807f0b247e758bbcbef28953444f18b503e3',
+ 'comments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits/dc14807f0b247e758bbcbef28953444f18b503e3/comments',
+ 'commit': {
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/commits/dc14807f0b247e758bbcbef28953444f18b503e3',
+ 'author': {
+ 'date': '2021-01-06T06:33:48.000+01:00',
+ 'name': 'Daniel Woste',
+ 'email': 'daniel.woste@useblocks.com',
+ },
+ 'committer': {
+ 'date': '2021-01-06T06:47:45.000+01:00',
+ 'name': 'Daniel Woste',
+ 'email': 'daniel.woste@useblocks.com',
+ },
+ 'message': 'string format fix to support python 3.5',
+ 'tree': {
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/trees/5bf05fc659dd7f2481e5e90ffca5015ee25e047a',
+ 'sha': '5bf05fc659dd7f2481e5e90ffca5015ee25e047a',
+ },
+ 'comment_count': 0,
+ },
+ 'author': {
+ 'login': 'danwos',
+ 'id': 998700,
+ 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
+ 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4',
+ 'gravatar_id': '',
+ 'url': 'https://api.github.com/users/danwos',
+ 'html_url': 'https://github.com/danwos',
+ 'followers_url': 'https://api.github.com/users/danwos/followers',
+ 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
+ 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
+ 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
+ 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
+ 'organizations_url': 'https://api.github.com/users/danwos/orgs',
+ 'repos_url': 'https://api.github.com/users/danwos/repos',
+ 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
+ 'received_events_url': 'https://api.github.com/users/danwos/received_events',
+ 'type': 'User',
+ 'site_admin': False,
+ },
+ 'committer': {
+ 'login': 'danwos',
+ 'id': 998700,
+ 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
+ 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4',
+ 'gravatar_id': '',
+ 'url': 'https://api.github.com/users/danwos',
+ 'html_url': 'https://github.com/danwos',
+ 'followers_url': 'https://api.github.com/users/danwos/followers',
+ 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
+ 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
+ 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
+ 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
+ 'organizations_url': 'https://api.github.com/users/danwos/orgs',
+ 'repos_url': 'https://api.github.com/users/danwos/repos',
+ 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
+ 'received_events_url': 'https://api.github.com/users/danwos/received_events',
+ 'type': 'User',
+ 'site_admin': False,
+ },
+ 'parents': [
+ {
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits/beec7bec42035e3cad09c8400397fa7c828cdd91',
+ 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/commit/beec7bec42035e3cad09c8400397fa7c828cdd91',
+ 'sha': 'beec7bec42035e3cad09c8400397fa7c828cdd91',
+ }
+ ],
+ 'repository': {
+ 'id': 75225949,
+ 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTIyNTk0OQ==',
+ 'name': 'sphinxcontrib-needs',
+ 'full_name': 'useblocks/sphinxcontrib-needs',
+ 'private': False,
+ 'owner': {
+ 'login': 'useblocks',
+ 'id': 998587,
+ 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjk5ODU4Nw==',
+ 'avatar_url': 'https://avatars.githubusercontent.com/u/998587?v=4',
+ 'gravatar_id': '',
+ 'url': 'https://api.github.com/users/useblocks',
+ 'html_url': 'https://github.com/useblocks',
+ 'followers_url': 'https://api.github.com/users/useblocks/followers',
+ 'following_url': 'https://api.github.com/users/useblocks/following{/other_user}',
+ 'gists_url': 'https://api.github.com/users/useblocks/gists{/gist_id}',
+ 'starred_url': 'https://api.github.com/users/useblocks/starred{/owner}{/repo}',
+ 'subscriptions_url': 'https://api.github.com/users/useblocks/subscriptions',
+ 'organizations_url': 'https://api.github.com/users/useblocks/orgs',
+ 'repos_url': 'https://api.github.com/users/useblocks/repos',
+ 'events_url': 'https://api.github.com/users/useblocks/events{/privacy}',
+ 'received_events_url': 'https://api.github.com/users/useblocks/received_events',
+ 'type': 'Organization',
+ 'site_admin': False,
+ },
+ 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs',
+ 'description': 'Adds needs/requirements to sphinx',
+ 'fork': False,
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs',
+ 'forks_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/forks',
+ 'keys_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/keys{/key_id}',
+ 'collaborators_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/collaborators{/collaborator}',
+ 'teams_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/teams',
+ 'hooks_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/hooks',
+ 'issue_events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/events{/number}',
+ 'events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/events',
+ 'assignees_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/assignees{/user}',
+ 'branches_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/branches{/branch}',
+ 'tags_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/tags',
+ 'blobs_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/blobs{/sha}',
+ 'git_tags_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/tags{/sha}',
+ 'git_refs_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/refs{/sha}',
+ 'trees_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/trees{/sha}',
+ 'statuses_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/statuses/{sha}',
+ 'languages_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/languages',
+ 'stargazers_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/stargazers',
+ 'contributors_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/contributors',
+ 'subscribers_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/subscribers',
+ 'subscription_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/subscription',
+ 'commits_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits{/sha}',
+ 'git_commits_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/commits{/sha}',
+ 'comments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/comments{/number}',
+ 'issue_comment_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/comments{/number}',
+ 'contents_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/contents/{+path}',
+ 'compare_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/compare/{base}...{head}',
+ 'merges_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/merges',
+ 'archive_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/{archive_format}{/ref}',
+ 'downloads_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/downloads',
+ 'issues_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues{/number}',
+ 'pulls_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/pulls{/number}',
+ 'milestones_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/milestones{/number}',
+ 'notifications_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/notifications{?since,all,participating}',
+ 'labels_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/labels{/name}',
+ 'releases_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/releases{/id}',
+ 'deployments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/deployments',
+ },
+ 'score': 1.0,
+ },
+ {
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits/e9e2da4fece4a053d1a033027f08356657d61d63',
+ 'sha': 'e9e2da4fece4a053d1a033027f08356657d61d63',
+ 'node_id': 'MDY6Q29tbWl0NzUyMjU5NDk6ZTllMmRhNGZlY2U0YTA1M2QxYTAzMzAyN2YwODM1NjY1N2Q2MWQ2Mw==',
+ 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/commit/e9e2da4fece4a053d1a033027f08356657d61d63',
+ 'comments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits/e9e2da4fece4a053d1a033027f08356657d61d63/comments',
+ 'commit': {
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/commits/e9e2da4fece4a053d1a033027f08356657d61d63',
+ 'author': {
+ 'date': '2020-04-24T08:34:27.000+02:00',
+ 'name': 'Daniel Woste',
+ 'email': 'daniel.woste@useblocks.com',
+ },
+ 'committer': {
+ 'date': '2020-04-24T08:36:31.000+02:00',
+ 'name': 'Daniel Woste',
+ 'email': 'daniel.woste@useblocks.com',
+ },
+ 'message': 'Pin MarkupSafe installation to version <2 for Python<3.6',
+ 'tree': {
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/trees/cb297c837987a8facf4c5208a24d66162d249dee',
+ 'sha': 'cb297c837987a8facf4c5208a24d66162d249dee',
+ },
+ 'comment_count': 0,
+ },
+ 'author': {
+ 'login': 'danwos',
+ 'id': 998700,
+ 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
+ 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4',
+ 'gravatar_id': '',
+ 'url': 'https://api.github.com/users/danwos',
+ 'html_url': 'https://github.com/danwos',
+ 'followers_url': 'https://api.github.com/users/danwos/followers',
+ 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
+ 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
+ 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
+ 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
+ 'organizations_url': 'https://api.github.com/users/danwos/orgs',
+ 'repos_url': 'https://api.github.com/users/danwos/repos',
+ 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
+ 'received_events_url': 'https://api.github.com/users/danwos/received_events',
+ 'type': 'User',
+ 'site_admin': False,
+ },
+ 'committer': {
+ 'login': 'danwos',
+ 'id': 998700,
+ 'node_id': 'MDQ6VXNlcjk5ODcwMA==',
+ 'avatar_url': 'https://avatars.githubusercontent.com/u/998700?v=4',
+ 'gravatar_id': '',
+ 'url': 'https://api.github.com/users/danwos',
+ 'html_url': 'https://github.com/danwos',
+ 'followers_url': 'https://api.github.com/users/danwos/followers',
+ 'following_url': 'https://api.github.com/users/danwos/following{/other_user}',
+ 'gists_url': 'https://api.github.com/users/danwos/gists{/gist_id}',
+ 'starred_url': 'https://api.github.com/users/danwos/starred{/owner}{/repo}',
+ 'subscriptions_url': 'https://api.github.com/users/danwos/subscriptions',
+ 'organizations_url': 'https://api.github.com/users/danwos/orgs',
+ 'repos_url': 'https://api.github.com/users/danwos/repos',
+ 'events_url': 'https://api.github.com/users/danwos/events{/privacy}',
+ 'received_events_url': 'https://api.github.com/users/danwos/received_events',
+ 'type': 'User',
+ 'site_admin': False,
+ },
+ 'parents': [
+ {
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits/add7f346e42921f779d2181b95ae2c7aea3d6546',
+ 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs/commit/add7f346e42921f779d2181b95ae2c7aea3d6546',
+ 'sha': 'add7f346e42921f779d2181b95ae2c7aea3d6546',
+ }
+ ],
+ 'repository': {
+ 'id': 75225949,
+ 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTIyNTk0OQ==',
+ 'name': 'sphinxcontrib-needs',
+ 'full_name': 'useblocks/sphinxcontrib-needs',
+ 'private': False,
+ 'owner': {
+ 'login': 'useblocks',
+ 'id': 998587,
+ 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjk5ODU4Nw==',
+ 'avatar_url': 'https://avatars.githubusercontent.com/u/998587?v=4',
+ 'gravatar_id': '',
+ 'url': 'https://api.github.com/users/useblocks',
+ 'html_url': 'https://github.com/useblocks',
+ 'followers_url': 'https://api.github.com/users/useblocks/followers',
+ 'following_url': 'https://api.github.com/users/useblocks/following{/other_user}',
+ 'gists_url': 'https://api.github.com/users/useblocks/gists{/gist_id}',
+ 'starred_url': 'https://api.github.com/users/useblocks/starred{/owner}{/repo}',
+ 'subscriptions_url': 'https://api.github.com/users/useblocks/subscriptions',
+ 'organizations_url': 'https://api.github.com/users/useblocks/orgs',
+ 'repos_url': 'https://api.github.com/users/useblocks/repos',
+ 'events_url': 'https://api.github.com/users/useblocks/events{/privacy}',
+ 'received_events_url': 'https://api.github.com/users/useblocks/received_events',
+ 'type': 'Organization',
+ 'site_admin': False,
+ },
+ 'html_url': 'https://github.com/useblocks/sphinxcontrib-needs',
+ 'description': 'Adds needs/requirements to sphinx',
+ 'fork': False,
+ 'url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs',
+ 'forks_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/forks',
+ 'keys_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/keys{/key_id}',
+ 'collaborators_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/collaborators{/collaborator}',
+ 'teams_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/teams',
+ 'hooks_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/hooks',
+ 'issue_events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/events{/number}',
+ 'events_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/events',
+ 'assignees_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/assignees{/user}',
+ 'branches_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/branches{/branch}',
+ 'tags_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/tags',
+ 'blobs_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/blobs{/sha}',
+ 'git_tags_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/tags{/sha}',
+ 'git_refs_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/refs{/sha}',
+ 'trees_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/trees{/sha}',
+ 'statuses_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/statuses/{sha}',
+ 'languages_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/languages',
+ 'stargazers_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/stargazers',
+ 'contributors_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/contributors',
+ 'subscribers_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/subscribers',
+ 'subscription_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/subscription',
+ 'commits_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/commits{/sha}',
+ 'git_commits_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/git/commits{/sha}',
+ 'comments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/comments{/number}',
+ 'issue_comment_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues/comments{/number}',
+ 'contents_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/contents/{+path}',
+ 'compare_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/compare/{base}...{head}',
+ 'merges_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/merges',
+ 'archive_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/{archive_format}{/ref}',
+ 'downloads_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/downloads',
+ 'issues_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/issues{/number}',
+ 'pulls_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/pulls{/number}',
+ 'milestones_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/milestones{/number}',
+ 'notifications_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/notifications{?since,all,participating}',
+ 'labels_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/labels{/name}',
+ 'releases_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/releases{/id}',
+ 'deployments_url': 'https://api.github.com/repos/useblocks/sphinxcontrib-needs/deployments',
+ },
+ 'score': 1.0,
+ },
+ ],
+}
diff --git a/tests/test_broken_links.py b/tests/test_broken_links.py
index 844661b35..3a0a66a32 100644
--- a/tests/test_broken_links.py
+++ b/tests/test_broken_links.py
@@ -13,7 +13,6 @@ def test_doc_build_html(app, status, warning):
app.build()
sys.stderr.flush()
- out = sys.stderr.getvalue()
try:
# Need to put is inside a try except statement, as the tests throws following error using tox:
# AttributeError: 'Tee' object has no attribute 'close'
diff --git a/tox.ini b/tox.ini
deleted file mode 100644
index c54f5c619..000000000
--- a/tox.ini
+++ /dev/null
@@ -1,33 +0,0 @@
-[tox]
-envlist = py{35,37,38}-sphinx{22,23,24,30}
-
-[testenv]
-passenv = TRAVIS TRAVIS_JOB_ID TRAVIS_BRANCH GITHUB_USERNAME GITHUB_TOKEN
-deps=
- -rtest-requirements.txt
- sphinx22: Sphinx>=2.2,<2.3d
- sphinx23: Sphinx>=2.3,<2.4
- sphinx24: Sphinx>=2.4,<2.5
- sphinx30: Sphinx>=3.0,<3.1
-
-
-commands=
- nosetests -v --with-xunit --xunit-file={envlogdir}/nose-{envname}.xml -w tests {posargs}
-
-usedevelop=True
-
-
-[testenv:flake8]
-commands=
- py.test --ignore=tests --flake8 --junitxml {envlogdir}/pytest-{envname}.xml
-
-usedevelop=True
-
-
-[pytest]
-flake8-max-line-length=120
-flake8-ignore=
- *.py W605 W503 W504
- defaults.py
- _build/* ALL
- functions.py F401