pax_global_header00006660000000000000000000000064141044206410014506gustar00rootroot0000000000000052 comment=427351db81469d8065b4632ae201c9d26e1f8062 sphinx-prompt-1.5.0/000077500000000000000000000000001410442064100143415ustar00rootroot00000000000000sphinx-prompt-1.5.0/.editorconfig000066400000000000000000000004021410442064100170120ustar00rootroot00000000000000root = true [*] end_of_line = lf insert_final_newline = true charset = utf-8 indent_style = space indent_size = 4 trim_trailing_whitespace = true max_line_length = 110 quote_type = single [*.{js,yaml,yml,md}] indent_size = 2 [Makefile] indent_style = tab sphinx-prompt-1.5.0/.github/000077500000000000000000000000001410442064100157015ustar00rootroot00000000000000sphinx-prompt-1.5.0/.github/dependabot.yaml000066400000000000000000000004531410442064100206740ustar00rootroot00000000000000# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/dependabot-2.0.json version: 2 updates: - package-ecosystem: pip directory: '/' schedule: interval: daily time: '04:00' ignore: - dependency-name: none sphinx-prompt-1.5.0/.github/workflows/000077500000000000000000000000001410442064100177365ustar00rootroot00000000000000sphinx-prompt-1.5.0/.github/workflows/codeql.yaml000066400000000000000000000011171410442064100220710ustar00rootroot00000000000000--- name: Code scanning on: push: env: HAS_SECRETS: ${{ secrets.HAS_SECRETS }} jobs: codeql: runs-on: ubuntu-20.04 name: Code scanning timeout-minutes: 25 steps: - name: Checkout repository uses: actions/checkout@v2 with: fetch-depth: 1 if: env.HAS_SECRETS == 'HAS_SECRETS' - name: Initialize CodeQL uses: github/codeql-action/init@v1 if: env.HAS_SECRETS == 'HAS_SECRETS' - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1 if: env.HAS_SECRETS == 'HAS_SECRETS' sphinx-prompt-1.5.0/.github/workflows/dependabot-auto-merge.yaml000066400000000000000000000006041410442064100247720ustar00rootroot00000000000000--- name: Auto merge Dependabot updates on: workflow_run: workflows: - Continuous integration types: - completed jobs: auto-merge: name: Auto merge runs-on: ubuntu-20.04 timeout-minutes: 5 steps: - name: Auto merge uses: ridedott/dependabot-auto-merge-action@master with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} sphinx-prompt-1.5.0/.github/workflows/main.yaml000066400000000000000000000021161410442064100215460ustar00rootroot00000000000000--- name: Continuous integration on: push: pull_request: env: HAS_SECRETS: ${{ secrets.HAS_SECRETS }} jobs: build: name: Continuous integration runs-on: ubuntu-20.04 timeout-minutes: 15 if: "!startsWith(github.event.head_commit.message, '[skip ci] ')" steps: - uses: actions/checkout@v2 - run: echo "${HOME}/.local/bin" >> ${GITHUB_PATH} - run: python3 -m pip install --user --requirement=ci/requirements.txt - name: Checks run: c2cciutils-checks - run: python3 -m pip install --user --requirement=requirements.txt - run: pipenv sync --dev - run: pipenv run pytest - run: mv sphinx-prompt sphinx_prompt - run: pipenv run prospector --output=pylint sphinx_prompt - run: mv sphinx_prompt sphinx-prompt - name: Login to pypi run: | echo "[pypi]" > ~/.pypirc echo "username = sbrunner" >> ~/.pypirc echo "password = ${{ secrets.PYPI_PASSWORD }}" >> ~/.pypirc if: env.HAS_SECRETS == 'HAS_SECRETS' - name: Publish run: c2cciutils-publish sphinx-prompt-1.5.0/.github/workflows/rebuild.yaml000066400000000000000000000012551410442064100222530ustar00rootroot00000000000000name: Rebuild on: schedule: - cron: '30 2 * * *' jobs: rebuild: runs-on: ubuntu-20.04 name: Rebuild timeout-minutes: 20 strategy: fail-fast: false matrix: branch: - master steps: - uses: actions/checkout@v2 with: ref: ${{ matrix.branch }} - run: echo "${HOME}/.local/bin" >> ${GITHUB_PATH} - run: python3 -m pip install --user --requirement=ci/requirements.txt - name: Checks run: c2cciutils-checks - run: python3 -m pip install --user --requirement=requirements.txt - run: pipenv sync --dev - run: pipenv run pytest - run: pipenv run prospector sphinx-prompt-1.5.0/.gitignore000066400000000000000000000000211410442064100163220ustar00rootroot00000000000000*.pyc *.egg-info sphinx-prompt-1.5.0/.prettierignore000066400000000000000000000000321410442064100173770ustar00rootroot00000000000000Pipfile.lock CHANGELOG.md sphinx-prompt-1.5.0/.prospector.yaml000066400000000000000000000004521410442064100175040ustar00rootroot00000000000000--- strictness: veryhigh pep8: disable: - E501 # line too long - E203 # whitespace before ':' pylint: disable: - line-too-long - no-else-break - no-else-return - too-many-branches - too-many-statements bandit: run: true mypy: run: true mccabe: run: false sphinx-prompt-1.5.0/CHANGELOG.md000066400000000000000000000142331410442064100161550ustar00rootroot00000000000000# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## [1.5.0](https://github.com/sbrunner/sphinx-prompt/releases/tag/1.5.0) - 2021-08-09 [Compare with 1.4.0](https://github.com/sbrunner/sphinx-prompt/compare/1.4.0...1.5.0) ### Added - Add pipfile.lock to .prettierignore ([a7517ac](https://github.com/sbrunner/sphinx-prompt/commit/a7517acade826e4f2059c4cd1549390c04ea29b3) by Stéphane Brunner). - Add typed metadata ([f68d913](https://github.com/sbrunner/sphinx-prompt/commit/f68d9139a99454815639f8a8bca61076bec72ee1) by Stéphane Brunner). - Add types ([6841094](https://github.com/sbrunner/sphinx-prompt/commit/6841094c8156f1aa41c1482b6159496b143187cd) by Stéphane Brunner). - Add test for auto ([506c43f](https://github.com/sbrunner/sphinx-prompt/commit/506c43fad6ceafab5a4efdc86dc5ed8a190d8267) by Stéphane Brunner). - Add some tests ([05178e2](https://github.com/sbrunner/sphinx-prompt/commit/05178e2e1378878849fd777684653861ead6d3d8) by Stéphane Brunner). ### Fixed - Fix dependabot auto merge ([d3d6d86](https://github.com/sbrunner/sphinx-prompt/commit/d3d6d86cd1ce85a1673f1ee41f5bfc83aae1d187) by Stéphane Brunner). - Fix dependabot auto-merge ([b838767](https://github.com/sbrunner/sphinx-prompt/commit/b838767593c1c01b39a5c6a0930e75acfcc948ba) by Stéphane Brunner). - Fix new line in tests ([b1198a0](https://github.com/sbrunner/sphinx-prompt/commit/b1198a074db77eab14af08474b15f7dd128ea46e) by Stéphane Brunner). ### Removed - Remove strict format ([f66111a](https://github.com/sbrunner/sphinx-prompt/commit/f66111a6a76b00e51c840d700a27153093bb1027) by Stéphane Brunner). ## [1.4.0](https://github.com/sbrunner/sphinx-prompt/releases/tag/1.4.0) - 2021-03-22 [Compare with 1.3.0](https://github.com/sbrunner/sphinx-prompt/compare/1.3.0...1.4.0) ### Added - Add `batch` and `powershell` languages ([f0dab7f](https://github.com/sbrunner/sphinx-prompt/commit/f0dab7ff6ea80cf1f5e2aceb716ae37d342c9a93) by jack1142). - Add check, reformat, remove python 2 support ([a64b58e](https://github.com/sbrunner/sphinx-prompt/commit/a64b58e80b719058301a80893d07ee4385611d14) by Stéphane Brunner). ### Fixed - Fix warning when mixing positional args and options ([5c678a3](https://github.com/sbrunner/sphinx-prompt/commit/5c678a319910914101e4e256f60e806eb948b1a2) by jack1142). - Fix additional spaces after the prompt when using multiple ([90327a4](https://github.com/sbrunner/sphinx-prompt/commit/90327a436f51e34969def5c3a8caf375b5dfb4f3) by jack1142). - Fix incorrect line continuation handling for batch and powershell ([fd7156a](https://github.com/sbrunner/sphinx-prompt/commit/fd7156ac04aa9799b4aec116ec6f52ecea72326b) by jack1142). - Fix config ([1f8d9f7](https://github.com/sbrunner/sphinx-prompt/commit/1f8d9f7262c50b6d93b4866ef2cf14811b05b5ba) by Stéphane Brunner). ## [1.3.0](https://github.com/sbrunner/sphinx-prompt/releases/tag/1.3.0) - 2020-09-09 [Compare with 1.2.0](https://github.com/sbrunner/sphinx-prompt/compare/1.2.0...1.3.0) ### Removed - Remove newlines from `setup(description=...)` ([d793d0a](https://github.com/sbrunner/sphinx-prompt/commit/d793d0af41312fdebbdced0f368d351042758f9b) by John T. Wodder II). ## [1.2.0](https://github.com/sbrunner/sphinx-prompt/releases/tag/1.2.0) - 2020-05-11 [Compare with 1.1.0](https://github.com/sbrunner/sphinx-prompt/compare/1.1.0...1.2.0) ### Added - Add ability to read and write parallel ([63690e2](https://github.com/sbrunner/sphinx-prompt/commit/63690e224493090d3635ffb7dc5410bfbf9803a5) by Eric Holscher). ## [1.1.0](https://github.com/sbrunner/sphinx-prompt/releases/tag/1.1.0) - 2019-04-03 [Compare with 1.0.0](https://github.com/sbrunner/sphinx-prompt/compare/1.0.0...1.1.0) ### Added - Add 3-clause bsd license and include in source distribution. ([49d2c20](https://github.com/sbrunner/sphinx-prompt/commit/49d2c2077577a4e0922a6047d75dd0a6217483f5) by Greg Back). Related issues/PRs: [#17](https://github.com/sbrunner/sphinx-prompt/issues/17) ### Fixed - Fix avoid unnecessary name repetition in equality comparisions ([b8695d1](https://github.com/sbrunner/sphinx-prompt/commit/b8695d177f07003b58b6c51d2b28d8cef2e54467) by Stéphane Brunner). ## [1.0.0](https://github.com/sbrunner/sphinx-prompt/releases/tag/1.0.0) - 2015-06-07 [Compare with 0.2.1](https://github.com/sbrunner/sphinx-prompt/compare/0.2.1...1.0.0) ### Fixed - Fix some typos ([fa8cb0f](https://github.com/sbrunner/sphinx-prompt/commit/fa8cb0f5be84af440462eee3c4e793dd7bf78db0) by Jean-Paul Calderone). ## [0.2.1](https://github.com/sbrunner/sphinx-prompt/releases/tag/0.2.1) - 2013-12-20 [Compare with 0.2](https://github.com/sbrunner/sphinx-prompt/compare/0.2...0.2.1) ### Fixed - Fix auto modifier ([cc047e4](https://github.com/sbrunner/sphinx-prompt/commit/cc047e4f01fbd0f74431d247459fde6d98e5fb12) by Stéphane Brunner). ## [0.2](https://github.com/sbrunner/sphinx-prompt/releases/tag/0.2) - 2013-10-29 [Compare with 0.1](https://github.com/sbrunner/sphinx-prompt/compare/0.1...0.2) ### Added - Add pigments ([a50aee7](https://github.com/sbrunner/sphinx-prompt/commit/a50aee76f544d460628a2decb6d52a18b6029e80) by Stéphane Brunner). - Add type auto (as default) ([8cd5e53](https://github.com/sbrunner/sphinx-prompt/commit/8cd5e53595e6a196c87491df1635e5a9cd2649ce) by Stéphane Brunner). ### Changed - Change default values ([c4cbd0a](https://github.com/sbrunner/sphinx-prompt/commit/c4cbd0a371ed0ea5f0e3cb3993c675dd1fd2a03d) by Stéphane Brunner). ### Fixed - Fix language ([6208472](https://github.com/sbrunner/sphinx-prompt/commit/62084726f5d62057344d0b7af0599d582cbab796) by Stéphane Brunner). ### Removed - Remove unexpected linebreak ([2aed0ea](https://github.com/sbrunner/sphinx-prompt/commit/2aed0eaadee180c6774d0748da565b0e1ac5350f) by Stéphane Brunner). ## [0.1](https://github.com/sbrunner/sphinx-prompt/releases/tag/0.1) - 2013-10-13 [Compare with first commit](https://github.com/sbrunner/sphinx-prompt/compare/2016925b7d951100b03bdedb2312b75f2f9caea2...0.1) sphinx-prompt-1.5.0/LICENSE000066400000000000000000000027271410442064100153560ustar00rootroot00000000000000Copyright (c) 2017, Stéphane Brunner All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. sphinx-prompt-1.5.0/MANIFEST.in000066400000000000000000000000621410442064100160750ustar00rootroot00000000000000include LICENSE include *.py include buildout.cfg sphinx-prompt-1.5.0/Pipfile000066400000000000000000000004501410442064100156530ustar00rootroot00000000000000[[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] sphinx-prompt = {editable = true, path = "."} [dev-packages] pytest = "==6.2.4" prospector = {extras = ["with_mypy", "with_bandit"], version = "==1.3.1"} flake8 = "==3.8.0" [requires] python_version = "3.8" sphinx-prompt-1.5.0/Pipfile.lock000066400000000000000000000730041410442064100166070ustar00rootroot00000000000000{ "_meta": { "hash": { "sha256": "15ab98311da5af4f51fd54629425a3ee615d527df426c5ceb347122263dfe429" }, "pipfile-spec": 6, "requires": { "python_version": "3.8" }, "sources": [ { "name": "pypi", "url": "https://pypi.org/simple", "verify_ssl": true } ] }, "default": { "alabaster": { "hashes": [ "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359", "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02" ], "version": "==0.7.12" }, "babel": { "hashes": [ "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9", "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0" ], "version": "==2.9.1" }, "certifi": { "hashes": [ "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee", "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8" ], "version": "==2021.5.30" }, "chardet": { "hashes": [ "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa", "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5" ], "version": "==4.0.0" }, "docutils": { "hashes": [ "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125", "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61" ], "version": "==0.17.1" }, "idna": { "hashes": [ "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6", "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0" ], "version": "==2.10" }, "imagesize": { "hashes": [ "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1", "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1" ], "version": "==1.2.0" }, "jinja2": { "hashes": [ "sha256:1f06f2da51e7b56b8f238affdd6b4e2c61e39598a378cc49345bc1bd42a978a4", "sha256:703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4" ], "version": "==3.0.1" }, "markupsafe": { "hashes": [ "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298", "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64", "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b", "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567", "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff", "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74", "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35", "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26", "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7", "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75", "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f", "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135", "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8", "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a", "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914", "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18", "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8", "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2", "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d", "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b", "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f", "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb", "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833", "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415", "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902", "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9", "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d", "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066", "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f", "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5", "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94", "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509", "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51", "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872" ], "version": "==2.0.1" }, "packaging": { "hashes": [ "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5", "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a" ], "version": "==20.9" }, "pygments": { "hashes": [ "sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f", "sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd34d272ca383b8e" ], "version": "==2.9.0" }, "pyparsing": { "hashes": [ "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1", "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b" ], "version": "==2.4.7" }, "pytz": { "hashes": [ "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da", "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798" ], "version": "==2021.1" }, "requests": { "hashes": [ "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804", "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e" ], "version": "==2.25.1" }, "snowballstemmer": { "hashes": [ "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2", "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914" ], "version": "==2.1.0" }, "sphinx": { "hashes": [ "sha256:b5c2ae4120bf00c799ba9b3699bc895816d272d120080fbc967292f29b52b48c", "sha256:d1cb10bee9c4231f1700ec2e24a91be3f3a3aba066ea4ca9f3bbe47e59d5a1d4" ], "version": "==4.0.2" }, "sphinx-prompt": { "editable": true, "path": "." }, "sphinxcontrib-applehelp": { "hashes": [ "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a", "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58" ], "version": "==1.0.2" }, "sphinxcontrib-devhelp": { "hashes": [ "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e", "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4" ], "version": "==1.0.2" }, "sphinxcontrib-htmlhelp": { "hashes": [ "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07", "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2" ], "version": "==2.0.0" }, "sphinxcontrib-jsmath": { "hashes": [ "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178", "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8" ], "version": "==1.0.1" }, "sphinxcontrib-qthelp": { "hashes": [ "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72", "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6" ], "version": "==1.0.3" }, "sphinxcontrib-serializinghtml": { "hashes": [ "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd", "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952" ], "version": "==1.1.5" }, "urllib3": { "hashes": [ "sha256:753a0374df26658f99d826cfe40394a686d05985786d946fbe4165b5148f5a7c", "sha256:a7acd0977125325f516bda9735fa7142b909a8d01e8b2e4c8108d0984e6e0098" ], "index": "pypi", "version": "==1.26.5" } }, "develop": { "astroid": { "hashes": [ "sha256:4c17cea3e592c21b6e222f673868961bad77e1f985cb1694ed077475a89229c1", "sha256:d8506842a3faf734b81599c8b98dcc423de863adcc1999248480b18bd31a0f38" ], "version": "==2.4.1" }, "attrs": { "hashes": [ "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1", "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb" ], "version": "==21.2.0" }, "bandit": { "hashes": [ "sha256:216be4d044209fa06cf2a3e51b319769a51be8318140659719aa7a115c35ed07", "sha256:8a4c7415254d75df8ff3c3b15cfe9042ecee628a1e40b44c15a98890fbfc2608" ], "version": "==1.7.0" }, "dodgy": { "hashes": [ "sha256:28323cbfc9352139fdd3d316fa17f325cc0e9ac74438cbba51d70f9b48f86c3a", "sha256:51f54c0fd886fa3854387f354b19f429d38c04f984f38bc572558b703c0542a6" ], "version": "==0.2.1" }, "flake8": { "hashes": [ "sha256:bcf5163890bb01f11f04f0f444f01004d0f9ad5fab10c51104f770acf532008f", "sha256:e2f33066fb92ac0a3a30ea509f61e325f2110b2e84644333a3ff8e9e98a2beab" ], "index": "pypi", "version": "==3.8.0" }, "flake8-polyfill": { "hashes": [ "sha256:12be6a34ee3ab795b19ca73505e7b55826d5f6ad7230d31b18e106400169b9e9", "sha256:e44b087597f6da52ec6393a709e7108b2905317d0c0b744cdca6208e670d8eda" ], "version": "==1.0.2" }, "gitdb": { "hashes": [ "sha256:6c4cc71933456991da20917998acbe6cf4fb41eeaab7d6d67fbc05ecd4c865b0", "sha256:96bf5c08b157a666fec41129e6d327235284cca4c81e92109260f353ba138005" ], "version": "==4.0.7" }, "gitpython": { "hashes": [ "sha256:29fe82050709760081f588dd50ce83504feddbebdc4da6956d02351552b1c135", "sha256:ee24bdc93dce357630764db659edaf6b8d664d4ff5447ccfeedd2dc5c253f41e" ], "version": "==3.1.17" }, "iniconfig": { "hashes": [ "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32" ], "version": "==1.1.1" }, "isort": { "hashes": [ "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1", "sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd" ], "version": "==4.3.21" }, "lazy-object-proxy": { "hashes": [ "sha256:0c4b206227a8097f05c4dbdd323c50edf81f15db3b8dc064d08c62d37e1a504d", "sha256:194d092e6f246b906e8f70884e620e459fc54db3259e60cf69a4d66c3fda3449", "sha256:1be7e4c9f96948003609aa6c974ae59830a6baecc5376c25c92d7d697e684c08", "sha256:4677f594e474c91da97f489fea5b7daa17b5517190899cf213697e48d3902f5a", "sha256:48dab84ebd4831077b150572aec802f303117c8cc5c871e182447281ebf3ac50", "sha256:5541cada25cd173702dbd99f8e22434105456314462326f06dba3e180f203dfd", "sha256:59f79fef100b09564bc2df42ea2d8d21a64fdcda64979c0fa3db7bdaabaf6239", "sha256:8d859b89baf8ef7f8bc6b00aa20316483d67f0b1cbf422f5b4dc56701c8f2ffb", "sha256:9254f4358b9b541e3441b007a0ea0764b9d056afdeafc1a5569eee1cc6c1b9ea", "sha256:9651375199045a358eb6741df3e02a651e0330be090b3bc79f6d0de31a80ec3e", "sha256:97bb5884f6f1cdce0099f86b907aa41c970c3c672ac8b9c8352789e103cf3156", "sha256:9b15f3f4c0f35727d3a0fba4b770b3c4ebbb1fa907dbcc046a1d2799f3edd142", "sha256:a2238e9d1bb71a56cd710611a1614d1194dc10a175c1e08d75e1a7bcc250d442", "sha256:a6ae12d08c0bf9909ce12385803a543bfe99b95fe01e752536a60af2b7797c62", "sha256:ca0a928a3ddbc5725be2dd1cf895ec0a254798915fb3a36af0964a0a4149e3db", "sha256:cb2c7c57005a6804ab66f106ceb8482da55f5314b7fcb06551db1edae4ad1531", "sha256:d74bb8693bf9cf75ac3b47a54d716bbb1a92648d5f781fc799347cfc95952383", "sha256:d945239a5639b3ff35b70a88c5f2f491913eb94871780ebfabb2568bd58afc5a", "sha256:eba7011090323c1dadf18b3b689845fd96a61ba0a1dfbd7f24b921398affc357", "sha256:efa1909120ce98bbb3777e8b6f92237f5d5c8ea6758efea36a473e1d38f7d3e4", "sha256:f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0" ], "version": "==1.4.3" }, "mccabe": { "hashes": [ "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" ], "version": "==0.6.1" }, "mypy": { "hashes": [ "sha256:0d0a87c0e7e3a9becdfbe936c981d32e5ee0ccda3e0f07e1ef2c3d1a817cf73e", "sha256:25adde9b862f8f9aac9d2d11971f226bd4c8fbaa89fb76bdadb267ef22d10064", "sha256:28fb5479c494b1bab244620685e2eb3c3f988d71fd5d64cc753195e8ed53df7c", "sha256:2f9b3407c58347a452fc0736861593e105139b905cca7d097e413453a1d650b4", "sha256:33f159443db0829d16f0a8d83d94df3109bb6dd801975fe86bacb9bf71628e97", "sha256:3f2aca7f68580dc2508289c729bd49ee929a436208d2b2b6aab15745a70a57df", "sha256:499c798053cdebcaa916eef8cd733e5584b5909f789de856b482cd7d069bdad8", "sha256:4eec37370483331d13514c3f55f446fc5248d6373e7029a29ecb7b7494851e7a", "sha256:552a815579aa1e995f39fd05dde6cd378e191b063f031f2acfe73ce9fb7f9e56", "sha256:5873888fff1c7cf5b71efbe80e0e73153fe9212fafdf8e44adfe4c20ec9f82d7", "sha256:61a3d5b97955422964be6b3baf05ff2ce7f26f52c85dd88db11d5e03e146a3a6", "sha256:674e822aa665b9fd75130c6c5f5ed9564a38c6cea6a6432ce47eafb68ee578c5", "sha256:7ce3175801d0ae5fdfa79b4f0cfed08807af4d075b402b7e294e6aa72af9aa2a", "sha256:9743c91088d396c1a5a3c9978354b61b0382b4e3c440ce83cf77994a43e8c521", "sha256:9f94aac67a2045ec719ffe6111df543bac7874cee01f41928f6969756e030564", "sha256:a26f8ec704e5a7423c8824d425086705e381b4f1dfdef6e3a1edab7ba174ec49", "sha256:abf7e0c3cf117c44d9285cc6128856106183938c68fd4944763003decdcfeb66", "sha256:b09669bcda124e83708f34a94606e01b614fa71931d356c1f1a5297ba11f110a", "sha256:cd07039aa5df222037005b08fbbfd69b3ab0b0bd7a07d7906de75ae52c4e3119", "sha256:d23e0ea196702d918b60c8288561e722bf437d82cb7ef2edcd98cfa38905d506", "sha256:d65cc1df038ef55a99e617431f0553cd77763869eebdf9042403e16089fe746c", "sha256:d7da2e1d5f558c37d6e8c1246f1aec1e7349e4913d8fb3cb289a35de573fe2eb" ], "version": "==0.812" }, "mypy-extensions": { "hashes": [ "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" ], "version": "==0.4.3" }, "packaging": { "hashes": [ "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5", "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a" ], "version": "==20.9" }, "pbr": { "hashes": [ "sha256:42df03e7797b796625b1029c0400279c7c34fd7df24a7d7818a1abb5b38710dd", "sha256:c68c661ac5cc81058ac94247278eeda6d2e6aecb3e227b0387c30d277e7ef8d4" ], "version": "==5.6.0" }, "pep8-naming": { "hashes": [ "sha256:5d9f1056cb9427ce344e98d1a7f5665710e2f20f748438e308995852cfa24164", "sha256:f3b4a5f9dd72b991bf7d8e2a341d2e1aa3a884a769b5aaac4f56825c1763bf3a" ], "version": "==0.10.0" }, "pluggy": { "hashes": [ "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0", "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d" ], "version": "==0.13.1" }, "prospector": { "extras": [ "with_bandit", "with_mypy" ], "hashes": [ "sha256:700d7918d93d73035a2a58fb18c6be0b609a0481fc6e0908843fa856b89e52c6" ], "index": "pypi", "version": "==1.3.1" }, "py": { "hashes": [ "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3", "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a" ], "version": "==1.10.0" }, "pycodestyle": { "hashes": [ "sha256:2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367", "sha256:c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e" ], "version": "==2.6.0" }, "pydocstyle": { "hashes": [ "sha256:1d41b7c459ba0ee6c345f2eb9ae827cab14a7533a88c5c6f7e94923f72df92dc", "sha256:6987826d6775056839940041beef5c08cc7e3d71d63149b48e36727f70144dc4" ], "version": "==6.1.1" }, "pyflakes": { "hashes": [ "sha256:0d94e0e05a19e57a99444b6ddcf9a6eb2e5c68d3ca1e98e90707af8152c90a92", "sha256:35b2d75ee967ea93b55750aa9edbbf72813e06a66ba54438df2cfac9e3c27fc8" ], "version": "==2.2.0" }, "pylint": { "hashes": [ "sha256:7dd78437f2d8d019717dbf287772d0b2dbdfd13fc016aa7faa08d67bccc46adc", "sha256:d0ece7d223fe422088b0e8f13fa0a1e8eb745ebffcb8ed53d3e95394b6101a1c" ], "version": "==2.5.3" }, "pylint-celery": { "hashes": [ "sha256:41e32094e7408d15c044178ea828dd524beedbdbe6f83f712c5e35bde1de4beb" ], "version": "==0.3" }, "pylint-django": { "hashes": [ "sha256:b7756844dba0cecd3471056a1ef4154439defedaba38bf3ced9f848d2bf6297c", "sha256:ca32277c77878dd3c2d9e75f3f3f7f0c0712f053f10ff1b946cdc27367a6c911" ], "version": "==2.1.0" }, "pylint-flask": { "hashes": [ "sha256:f4d97de2216bf7bfce07c9c08b166e978fe9f2725de2a50a9845a97de7e31517" ], "version": "==0.6" }, "pylint-plugin-utils": { "hashes": [ "sha256:2f30510e1c46edf268d3a195b2849bd98a1b9433229bb2ba63b8d776e1fc4d0a", "sha256:57625dcca20140f43731311cd8fd879318bf45a8b0fd17020717a8781714a25a" ], "version": "==0.6" }, "pyparsing": { "hashes": [ "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1", "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b" ], "version": "==2.4.7" }, "pytest": { "hashes": [ "sha256:50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b", "sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890" ], "index": "pypi", "version": "==6.2.4" }, "pyyaml": { "hashes": [ "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf", "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696", "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393", "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77", "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922", "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5", "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8", "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10", "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc", "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018", "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e", "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253", "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347", "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183", "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541", "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb", "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185", "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc", "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db", "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa", "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46", "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122", "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b", "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63", "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df", "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc", "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247", "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6", "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0" ], "version": "==5.4.1" }, "requirements-detector": { "hashes": [ "sha256:0d1e13e61ed243f9c3c86e6cbb19980bcb3a0e0619cde2ec1f3af70fdbee6f7b" ], "version": "==0.7" }, "setoptconf": { "hashes": [ "sha256:5b0b5d8e0077713f5d5152d4f63be6f048d9a1bb66be15d089a11c898c3cf49c" ], "version": "==0.2.0" }, "six": { "hashes": [ "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" ], "version": "==1.16.0" }, "smmap": { "hashes": [ "sha256:7e65386bd122d45405ddf795637b7f7d2b532e7e401d46bbe3fb49b9986d5182", "sha256:a9a7479e4c572e2e775c404dcd3080c8dc49f39918c2cf74913d30c4c478e3c2" ], "version": "==4.0.0" }, "snowballstemmer": { "hashes": [ "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2", "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914" ], "version": "==2.1.0" }, "stevedore": { "hashes": [ "sha256:3a5bbd0652bf552748871eaa73a4a8dc2899786bc497a2aa1fcb4dcdb0debeee", "sha256:50d7b78fbaf0d04cd62411188fa7eedcb03eb7f4c4b37005615ceebe582aa82a" ], "version": "==3.3.0" }, "toml": { "hashes": [ "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" ], "version": "==0.10.2" }, "typed-ast": { "hashes": [ "sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace", "sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff", "sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266", "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528", "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6", "sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808", "sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4", "sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363", "sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341", "sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04", "sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41", "sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e", "sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3", "sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899", "sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805", "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c", "sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c", "sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39", "sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a", "sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3", "sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7", "sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f", "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075", "sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0", "sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40", "sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428", "sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927", "sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3", "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f", "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65" ], "version": "==1.4.3" }, "typing-extensions": { "hashes": [ "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497", "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342", "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84" ], "version": "==3.10.0.0" }, "wrapt": { "hashes": [ "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7" ], "version": "==1.12.1" } } } sphinx-prompt-1.5.0/README.rst000066400000000000000000000042731410442064100160360ustar00rootroot00000000000000Sphinx Prompt ============= .. contents:: Table of contents Initialise ---------- In ``conf.py`` add ``extensions += ['sphinx-prompt']``. Syntax ------ A default prompt can be created using a ``prompt`` directive: .. code:: .. prompt:: The prompt can be further customized in one of two ways: - Using positional arguments: .. code:: .. prompt:: [ [ []]] - Using options: .. code:: .. prompt:: :language: :prompts: :modifiers: While these constructs generate the same output, the positional arguments cannot be used if you want to use a prompt that contains spaces. This is a limitation of reStructuredText. Positional arguments can be mixed with options **if** they don't overlap (so if you pass prompts using options, you can only pass the language using positional arguments): .. code:: .. prompt:: bash :prompts: (cool_project) $ python3 -m pip install --upgrade sphinx-prompt Language ~~~~~~~~ Supported language: - ``text`` (no pigments, default) - ``bash`` - ``batch`` - ``powershell`` - ``python`` - ``scala`` Prompt(s) ~~~~~~~~~ If modifier is auto, a comma-separated list of prompts to find in the statements. Else the prompt to add on each statements, for Python and Bash language the end ``\`` is supported. Defaults to empty, except for the shell languages listed below: - ``bash`` - ``$`` - ``batch`` - ``C:\>`` - ``powershell`` - ``PS C:\>`` Examples -------- See: http://sbrunner.github.io/sphinx-prompt/ Run tests and prospector ------------------------ .. code:: python3 -m pip install --user --upgrade pipenv pipenv sync --dev pipenv run pytest pipenv run prospector The code should be formatted with ``black`` add ``isort``. Create new release ------------------ Update the version in `setup.cfg`. .. code:: python3 -m pip install --user --upgrade git-changelog git-changelog . > CHANGELOG.md git add setup.cfg CHANGELOG.md git commit -m "Do the release " git tag git push origin git push sphinx-prompt-1.5.0/buildout.cfg000066400000000000000000000017561410442064100166620ustar00rootroot00000000000000[buildout] parts = eggs activate validate-py-eggs validate-py develop = . newest = false prefer-final = true extensions = buildout.dumppickedversions versions = versions develop-eggs-directory = buildout/develop-eggs eggs-directory = buildout/eggs parts-directory = buildout/parts bin-directory = buildout/bin [eggs] recipe = z3c.recipe.scripts eggs = sphinx-prompt dependent-scripts = true interpreter = python [activate] recipe = evg.recipe.activate [validate-py-eggs] recipe = zc.recipe.egg eggs = flake8 entry-points = flake8=flake8.run:main [validate-py] recipe = collective.recipe.cmd on_install = true on_update = true folders = sphinx-prompt cmds = find ${validate-py:folders} -name \*.py | xargs ./buildout/bin/flake8 --max-line-length=120 [versions] distribute=0.7.3 zc.buildout=2.10.0 Jinja2=2.10 Sphinx=1.6.5 collective.recipe.cmd=0.11 docutils=0.14 evg.recipe.activate = 0.5 flake8=3.5.0 mccabe=0.6.1 pep8=1.7.1 pyflakes=1.6.0 z3c.recipe.scripts = 1.0.1 zc.recipe.egg=2.0.5 sphinx-prompt-1.5.0/ci/000077500000000000000000000000001410442064100147345ustar00rootroot00000000000000sphinx-prompt-1.5.0/ci/config.yaml000066400000000000000000000005011410442064100170610ustar00rootroot00000000000000# yaml-language-server: $schema=https://raw.githubusercontent.com/camptocamp/c2cciutils/master/c2cciutils/schema.json checks: versions: False required_workflows: backport.yaml: False clean.yaml: False audit.yaml: False codespell: ignore_re: - CHANGELOG\.md publish: docker: images: [] sphinx-prompt-1.5.0/ci/requirements.txt000066400000000000000000000000611410442064100202150ustar00rootroot00000000000000c2cciutils==1.1.dev20210729075943 pipfile==0.0.2 sphinx-prompt-1.5.0/pyproject.toml000066400000000000000000000000711410442064100172530ustar00rootroot00000000000000[tool.black] line-length = 110 target-version = ['py38'] sphinx-prompt-1.5.0/requirements.txt000066400000000000000000000000221410442064100176170ustar00rootroot00000000000000pipenv==2021.5.29 sphinx-prompt-1.5.0/setup.cfg000066400000000000000000000005231410442064100161620ustar00rootroot00000000000000[easy_install] zip_ok = false [egg_info] #tag_build = dev #tag_date = True [nosetests] match = ^test where = tests nocapture = 1 cover-package = sphinx with-coverage = 1 cover-erase = 1 [mypy] python_version = 3.8 ignore_missing_imports = True warn_redundant_casts = True warn_unused_ignores = True warn_return_any = True strict = True sphinx-prompt-1.5.0/setup.py000066400000000000000000000031541410442064100160560ustar00rootroot00000000000000import site import sys from setuptools import find_packages, setup site.ENABLE_USER_SITE = "--user" in sys.argv install_requires = [ "Sphinx", "pygments", ] setup_requires = [] tests_require = [] setup( name="sphinx-prompt", version="1.5.0", description="Sphinx directive to add unselectable prompt", long_description="`Sphinx directive to add unselectable prompt `_", classifiers=[ "Development Status :: 5 - Production/Stable", "Environment :: Plugins", "Environment :: Web Environment", "Framework :: Sphinx :: Extension", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Documentation :: Sphinx", "Topic :: Documentation", "Topic :: Software Development :: Documentation", "Typing :: Typed", ], author="Stéphane Brunner", author_email="stephane.brunner@camptocamp.com", url="https://github.com/sbrunner/sphinx-prompt", license="BSD", keywords="sphinx shell prompt", packages=find_packages(exclude=["*.tests", "*.tests.*"]), include_package_data=True, zip_safe=False, install_requires=install_requires, setup_requires=setup_requires, tests_require=tests_require, package_data={"sphinx-prompt": ["py.typed"]}, ) sphinx-prompt-1.5.0/sphinx-prompt/000077500000000000000000000000001410442064100171715ustar00rootroot00000000000000sphinx-prompt-1.5.0/sphinx-prompt/__init__.py000066400000000000000000000137561410442064100213160ustar00rootroot00000000000000#!/usr/bin/python # pylint: disable=invalid-name from typing import Any, Dict, List import sphinx.application from docutils import nodes from docutils.parsers import rst from docutils.parsers.rst import directives from pygments import highlight from pygments.formatters import HtmlFormatter from pygments.lexers import BashLexer, BatchLexer, PowerShellLexer, PythonLexer, ScalaLexer, TextLexer from sphinx.util import logging logger = logging.getLogger(__name__) class PromptCache: def __init__(self) -> None: self.next_index = 1 self.prompts: Dict[str, int] = {} def clear(self, *args: Any) -> None: del args self.next_index = 1 self.prompts = {} def register_prompt(self, prompt: str) -> str: if prompt in self.prompts: return "" else: index = self.next_index self.next_index = index + 1 self.prompts[prompt] = index return """span.prompt{}:before {{ content: "{} "; }} """.format( index, prompt ) def get_prompt_class(self, prompt: str) -> str: return f"prompt{self.prompts[prompt]}" _cache = PromptCache() PROMPTS = { "bash": "$", "batch": r"C:\\>", "powershell": r"PS C:\\>", } LEXERS = { "bash": BashLexer, "batch": BatchLexer, "powershell": PowerShellLexer, "python": PythonLexer, "scala": ScalaLexer, } class PromptDirective(rst.Directive): # type: ignore optional_arguments = 3 option_spec = { "language": directives.unchanged_required, "prompts": directives.unchanged_required, "modifiers": directives.unchanged_required, } has_content = True def run(self) -> List[nodes.raw]: self.assert_has_content() arg_count = len(self.arguments) for idx, option_name in enumerate(("language", "prompts", "modifiers")): if arg_count > idx: if self.options.get(option_name): logger.warning( "%s is already passed as an option, ignoring the value passed" " as positional argument and all arguments that come after it.", option_name, location=(self.state.document.settings.env.docname, self.lineno), ) break else: self.options[option_name] = self.arguments[idx] language: str = self.options.get("language") or "text" prompt: str = self.options.get("prompts") or PROMPTS.get(language, "") modifiers: List[str] = self.options.get("modifiers", "").split(",") if "auto" in modifiers: prompts: List[str] = prompt.split(",") html = '
'
        styles = ""
        if "auto" in modifiers:
            for prompt in prompts:
                styles += _cache.register_prompt(prompt)
        else:
            if prompt is not None:
                styles += _cache.register_prompt(prompt)
        if styles:
            html += '"
        latex = "\\begin{Verbatim}[commandchars=\\\\\\{\\}]"

        Lexer = LEXERS.get(language, TextLexer)  # noqa: N806, pylint: disable=invalid-name

        statement: List[str] = []
        if "auto" in modifiers:
            prompt_class = ""
            for line in self.content:
                latex += "\n" + line

                for prompt in prompts:
                    if line.startswith(prompt):
                        if len(statement) > 0:
                            html += '{}\n'.format(
                                prompt_class,
                                highlight("\n".join(statement), Lexer(), HtmlFormatter(nowrap=True)).strip(
                                    "\r\n"
                                ),
                            )
                            statement = []
                        line = line[len(prompt) + 1 :].rstrip()
                        prompt_class = _cache.get_prompt_class(prompt)
                        break

                statement.append(line)
            # Add last prompt
            if len(statement) > 0:
                html += '{}\n'.format(
                    prompt_class,
                    highlight("\n".join(statement), Lexer(), HtmlFormatter(nowrap=True)).strip("\r\n"),
                )
        elif language in ["bash", "python"]:
            for line in self.content:
                statement.append(line)
                if len(line) == 0 or not line[-1] == "\\":
                    html += '{}\n'.format(
                        _cache.get_prompt_class(prompt),
                        highlight("\n".join(statement), Lexer(), HtmlFormatter(nowrap=True)).strip("\r\n"),
                    )
                    if prompt is not None:
                        latex += "\n{} {}".format(prompt, "\n".join(statement))
                    else:
                        latex += "\n" + "\n".join(statement)
                    statement = []
        else:
            for line in self.content:
                html += '{}\n'.format(
                    _cache.get_prompt_class(prompt),
                    highlight(line, Lexer(), HtmlFormatter(nowrap=True)).strip("\r\n"),
                )
                if prompt is not None:
                    latex += f"\n{prompt} {line}"
                else:
                    latex += "\n" + line

        html += "
" latex += "\n\\end{Verbatim}" return [ nodes.raw("\n".join(self.content), html, format="html"), nodes.raw("\n".join(self.content), latex, format="latex"), ] def setup(app: sphinx.application.Sphinx) -> Dict[str, bool]: app.add_directive("prompt", PromptDirective) app.connect("env-purge-doc", _cache.clear) return { "parallel_read_safe": True, "parallel_write_safe": True, } sphinx-prompt-1.5.0/sphinx-prompt/py.typed000066400000000000000000000000021410442064100206600ustar00rootroot00000000000000 sphinx-prompt-1.5.0/tests/000077500000000000000000000000001410442064100155035ustar00rootroot00000000000000sphinx-prompt-1.5.0/tests/test_sphinx_prompt.py000066400000000000000000000103141410442064100220250ustar00rootroot00000000000000import pytest sphinx_prompt = __import__("sphinx-prompt") testdata = [ [ [], {}, ["one line"], """
one line
""", ], [ ["bash"], {}, ["one line"], """
one line
""", ], [ [], {"language": "bash"}, ["one line"], """
one line
""", ], [ ["bash"], {}, ["tow", "line"], """
tow
line
""", ], [ ["bash"], {}, ["one split \\", "line"], """
one split \\
line
""", ], [ ["bash"], {}, ["mixed split \\", "line", "second"], """
mixed split \\
line
second
""", ], [ ["bash", "%"], {}, ["other prompt"], """
other prompt
""", ], [ [], {"language": "bash", "prompts": "%"}, ["other prompt opt"], """
other prompt opt
""", ], [ ["batch"], {}, ["batch"], """
batch
""", ], [ ["powershell"], {}, ["powershell"], """
powershell
""", ], [ ["bash"], {}, ['lexer 1 2 "tree"'], """
lexer 1 2 "tree"
""", ], [ ["bash", "$,#", "auto"], {}, ["$ user", "# root"], """
user
root
""", ], ] @pytest.mark.parametrize("arguments, options, content, expected", testdata) def test(arguments, options, content, expected): sphinx_prompt._cache.next_index = 1 sphinx_prompt._cache.prompts.clear() directive = sphinx_prompt.PromptDirective("prompt", arguments, options, content, 0, 0, "", None, None) result = directive.run() assert result[0].astext() == expected