From 6c44688841f9374c307ad4fb7aa94c2b4de7d3ad Mon Sep 17 00:00:00 2001 From: Johannes Nussbaum <39048939+jnussbaum@users.noreply.github.com> Date: Tue, 5 Apr 2022 09:18:21 +0200 Subject: [PATCH] chore: change to pipenv (DEV-764) (#177) --- .gitignore | 3 +- Makefile | 9 +- Pipfile | 32 ++ Pipfile.lock | 901 ++++++++++++++++++++++++++++++++++++++++ README.md | 86 ++-- dev-requirements.txt | 67 +++ requirements.txt | 89 ++-- setup.py | 20 +- testdata/test-list.json | 214 ---------- 9 files changed, 1091 insertions(+), 330 deletions(-) create mode 100644 Pipfile create mode 100644 Pipfile.lock create mode 100644 dev-requirements.txt delete mode 100644 testdata/test-list.json diff --git a/.gitignore b/.gitignore index d67dad4cf..2cc11d992 100644 --- a/.gitignore +++ b/.gitignore @@ -45,8 +45,6 @@ venv/ ENV/ env.bak/ venv.bak/ -Pipfile -Pipfile.lock # Spyder project settings .spyderproject @@ -70,6 +68,7 @@ id2iri_* **/~$*.* testdata/tmp/_*.json testdata/tmp/_*.xml +testdata/test-list.json # for testing in development tmp/ diff --git a/Makefile b/Makefile index 43184731c..2cf2c7b0f 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ upload: ## upload distribution package to PyPI .PHONY: upgrade-dist-tools upgrade-dist-tools: ## upgrade packages necessary for testing, building, packaging and uploading to PyPI - python3 -m pip install --upgrade pip setuptools wheel tqdm twine pytest mkdocs + python3 -m pip install --upgrade pip setuptools wheel twine pytest mkdocs .PHONY: docs-build docs-build: ## build docs into the local 'site' folder @@ -48,6 +48,7 @@ install-requirements: ## install requirements python3 -m pip install --upgrade pip pip3 install -r requirements.txt pip3 install -r docs/requirements.txt + pip3 install -r dev-requirements.txt .PHONY: install install: ## install from source (runs setup.py) @@ -86,4 +87,10 @@ run: ## create dist, install and run $(MAKE) install dsp-tools +.PHONY: freeze-requirements +freeze-requirements: ## update (dev-)requirements.txt and setup.py based on pipenv's Pipfile.lock + pipenv lock -r > requirements.txt + pipenv lock -r --dev-only > dev-requirements.txt + pipenv run pipenv-setup sync + .DEFAULT_GOAL := help diff --git a/Pipfile b/Pipfile new file mode 100644 index 000000000..46ac274c1 --- /dev/null +++ b/Pipfile @@ -0,0 +1,32 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +jsonpath-ng = "*" +argparse = "*" +rdflib = "*" +lxml = "*" +validators = "*" +requests = "*" +jsonschema = "*" +click = "*" +rfc3987 = "*" +pystrict = "*" +openpyxl = "*" + +[dev-packages] +mkdocs = "*" +mkdocs-material = "*" +mkdocs-include-markdown-plugin = "*" +mypy = "*" +autopep8 = "*" +setuptools = "*" +wheel = "*" +pipenv-setup = "*" +pytest = "*" +pandas = "*" + +[requires] +python_version = "3.9" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 000000000..71e4e8d40 --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,901 @@ +{ + "_meta": { + "hash": { + "sha256": "d0c30dc0de4b74b331d3beb89d2530f8074fd1d6001ccda872c27b0474b3e088" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.9" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "argparse": { + "hashes": [ + "sha256:62b089a55be1d8949cd2bc7e0df0bddb9e028faefc8c32038cc84862aefdd6e4", + "sha256:c31647edb69fd3d465a847ea3157d37bed1f95f19760b11a47aa91c04b666314" + ], + "index": "pypi", + "version": "==1.4.0" + }, + "attrs": { + "hashes": [ + "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4", + "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==21.4.0" + }, + "certifi": { + "hashes": [ + "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872", + "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569" + ], + "version": "==2021.10.8" + }, + "charset-normalizer": { + "hashes": [ + "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597", + "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df" + ], + "markers": "python_version >= '3'", + "version": "==2.0.12" + }, + "click": { + "hashes": [ + "sha256:5e0d195c2067da3136efb897449ec1e9e6c98282fbf30d7f9e164af9be901a6b", + "sha256:7ab900e38149c9872376e8f9b5986ddcaf68c0f413cf73678a0bca5547e6f976" + ], + "index": "pypi", + "version": "==8.1.1" + }, + "decorator": { + "hashes": [ + "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", + "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186" + ], + "markers": "python_version >= '3.5'", + "version": "==5.1.1" + }, + "et-xmlfile": { + "hashes": [ + "sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c", + "sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada" + ], + "markers": "python_version >= '3.6'", + "version": "==1.1.0" + }, + "idna": { + "hashes": [ + "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", + "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" + ], + "markers": "python_version >= '3'", + "version": "==3.3" + }, + "isodate": { + "hashes": [ + "sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96", + "sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9" + ], + "version": "==0.6.1" + }, + "jsonpath-ng": { + "hashes": [ + "sha256:292a93569d74029ba75ac2dc3d3630fc0e17b2df26119a165fa1d498ca47bf65", + "sha256:a273b182a82c1256daab86a313b937059261b5c5f8c4fa3fc38b882b344dd567", + "sha256:f75b95dbecb8a0f3b86fd2ead21c2b022c3f5770957492b9b6196ecccfeb10aa" + ], + "index": "pypi", + "version": "==1.5.3" + }, + "jsonschema": { + "hashes": [ + "sha256:636694eb41b3535ed608fe04129f26542b59ed99808b4f688aa32dcf55317a83", + "sha256:77281a1f71684953ee8b3d488371b162419767973789272434bbc3f29d9c8823" + ], + "index": "pypi", + "version": "==4.4.0" + }, + "lxml": { + "hashes": [ + "sha256:078306d19a33920004addeb5f4630781aaeabb6a8d01398045fcde085091a169", + "sha256:0c1978ff1fd81ed9dcbba4f91cf09faf1f8082c9d72eb122e92294716c605428", + "sha256:1010042bfcac2b2dc6098260a2ed022968dbdfaf285fc65a3acf8e4eb1ffd1bc", + "sha256:1d650812b52d98679ed6c6b3b55cbb8fe5a5460a0aef29aeb08dc0b44577df85", + "sha256:20b8a746a026017acf07da39fdb10aa80ad9877046c9182442bf80c84a1c4696", + "sha256:2403a6d6fb61c285969b71f4a3527873fe93fd0abe0832d858a17fe68c8fa507", + "sha256:24f5c5ae618395ed871b3d8ebfcbb36e3f1091fd847bf54c4de623f9107942f3", + "sha256:28d1af847786f68bec57961f31221125c29d6f52d9187c01cd34dc14e2b29430", + "sha256:31499847fc5f73ee17dbe1b8e24c6dafc4e8d5b48803d17d22988976b0171f03", + "sha256:31ba2cbc64516dcdd6c24418daa7abff989ddf3ba6d3ea6f6ce6f2ed6e754ec9", + "sha256:330bff92c26d4aee79c5bc4d9967858bdbe73fdbdbacb5daf623a03a914fe05b", + "sha256:5045ee1ccd45a89c4daec1160217d363fcd23811e26734688007c26f28c9e9e7", + "sha256:52cbf2ff155b19dc4d4100f7442f6a697938bf4493f8d3b0c51d45568d5666b5", + "sha256:530f278849031b0eb12f46cca0e5db01cfe5177ab13bd6878c6e739319bae654", + "sha256:545bd39c9481f2e3f2727c78c169425efbfb3fbba6e7db4f46a80ebb249819ca", + "sha256:5804e04feb4e61babf3911c2a974a5b86f66ee227cc5006230b00ac6d285b3a9", + "sha256:5a58d0b12f5053e270510bf12f753a76aaf3d74c453c00942ed7d2c804ca845c", + "sha256:5f148b0c6133fb928503cfcdfdba395010f997aa44bcf6474fcdd0c5398d9b63", + "sha256:5f7d7d9afc7b293147e2d506a4596641d60181a35279ef3aa5778d0d9d9123fe", + "sha256:60d2f60bd5a2a979df28ab309352cdcf8181bda0cca4529769a945f09aba06f9", + "sha256:6259b511b0f2527e6d55ad87acc1c07b3cbffc3d5e050d7e7bcfa151b8202df9", + "sha256:6268e27873a3d191849204d00d03f65c0e343b3bcb518a6eaae05677c95621d1", + "sha256:627e79894770783c129cc5e89b947e52aa26e8e0557c7e205368a809da4b7939", + "sha256:62f93eac69ec0f4be98d1b96f4d6b964855b8255c345c17ff12c20b93f247b68", + "sha256:6d6483b1229470e1d8835e52e0ff3c6973b9b97b24cd1c116dca90b57a2cc613", + "sha256:6f7b82934c08e28a2d537d870293236b1000d94d0b4583825ab9649aef7ddf63", + "sha256:6fe4ef4402df0250b75ba876c3795510d782def5c1e63890bde02d622570d39e", + "sha256:719544565c2937c21a6f76d520e6e52b726d132815adb3447ccffbe9f44203c4", + "sha256:730766072fd5dcb219dd2b95c4c49752a54f00157f322bc6d71f7d2a31fecd79", + "sha256:74eb65ec61e3c7c019d7169387d1b6ffcfea1b9ec5894d116a9a903636e4a0b1", + "sha256:7993232bd4044392c47779a3c7e8889fea6883be46281d45a81451acfd704d7e", + "sha256:80bbaddf2baab7e6de4bc47405e34948e694a9efe0861c61cdc23aa774fcb141", + "sha256:86545e351e879d0b72b620db6a3b96346921fa87b3d366d6c074e5a9a0b8dadb", + "sha256:891dc8f522d7059ff0024cd3ae79fd224752676447f9c678f2a5c14b84d9a939", + "sha256:8a31f24e2a0b6317f33aafbb2f0895c0bce772980ae60c2c640d82caac49628a", + "sha256:8b99ec73073b37f9ebe8caf399001848fced9c08064effdbfc4da2b5a8d07b93", + "sha256:986b7a96228c9b4942ec420eff37556c5777bfba6758edcb95421e4a614b57f9", + "sha256:a1547ff4b8a833511eeaceacbcd17b043214fcdb385148f9c1bc5556ca9623e2", + "sha256:a2bfc7e2a0601b475477c954bf167dee6d0f55cb167e3f3e7cefad906e7759f6", + "sha256:a3c5f1a719aa11866ffc530d54ad965063a8cbbecae6515acbd5f0fae8f48eaa", + "sha256:a9f1c3489736ff8e1c7652e9dc39f80cff820f23624f23d9eab6e122ac99b150", + "sha256:aa0cf4922da7a3c905d000b35065df6184c0dc1d866dd3b86fd961905bbad2ea", + "sha256:ad4332a532e2d5acb231a2e5d33f943750091ee435daffca3fec0a53224e7e33", + "sha256:b2582b238e1658c4061ebe1b4df53c435190d22457642377fd0cb30685cdfb76", + "sha256:b6fc2e2fb6f532cf48b5fed57567ef286addcef38c28874458a41b7837a57807", + "sha256:b92d40121dcbd74831b690a75533da703750f7041b4bf951befc657c37e5695a", + "sha256:bbab6faf6568484707acc052f4dfc3802bdb0cafe079383fbaa23f1cdae9ecd4", + "sha256:c0b88ed1ae66777a798dc54f627e32d3b81c8009967c63993c450ee4cbcbec15", + "sha256:ce13d6291a5f47c1c8dbd375baa78551053bc6b5e5c0e9bb8e39c0a8359fd52f", + "sha256:db3535733f59e5605a88a706824dfcb9bd06725e709ecb017e165fc1d6e7d429", + "sha256:dd10383f1d6b7edf247d0960a3db274c07e96cf3a3fc7c41c8448f93eac3fb1c", + "sha256:e01f9531ba5420838c801c21c1b0f45dbc9607cb22ea2cf132844453bec863a5", + "sha256:e11527dc23d5ef44d76fef11213215c34f36af1608074561fcc561d983aeb870", + "sha256:e1ab2fac607842ac36864e358c42feb0960ae62c34aa4caaf12ada0a1fb5d99b", + "sha256:e1fd7d2fe11f1cb63d3336d147c852f6d07de0d0020d704c6031b46a30b02ca8", + "sha256:e9f84ed9f4d50b74fbc77298ee5c870f67cb7e91dcdc1a6915cb1ff6a317476c", + "sha256:ec4b4e75fc68da9dc0ed73dcdb431c25c57775383fec325d23a770a64e7ebc87", + "sha256:f10ce66fcdeb3543df51d423ede7e238be98412232fca5daec3e54bcd16b8da0", + "sha256:f63f62fc60e6228a4ca9abae28228f35e1bd3ce675013d1dfb828688d50c6e23", + "sha256:fa56bb08b3dd8eac3a8c5b7d075c94e74f755fd9d8a04543ae8d37b1612dd170", + "sha256:fa9b7c450be85bfc6cd39f6df8c5b8cbd76b5d6fc1f69efec80203f9894b885f" + ], + "index": "pypi", + "version": "==4.8.0" + }, + "openpyxl": { + "hashes": [ + "sha256:40f568b9829bf9e446acfffce30250ac1fa39035124d55fc024025c41481c90f", + "sha256:8f3b11bd896a95468a4ab162fc4fcd260d46157155d1f8bfaabb99d88cfcf79f" + ], + "index": "pypi", + "version": "==3.0.9" + }, + "ply": { + "hashes": [ + "sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3", + "sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce" + ], + "version": "==3.11" + }, + "pyparsing": { + "hashes": [ + "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea", + "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484" + ], + "markers": "python_version >= '3.6'", + "version": "==3.0.7" + }, + "pyrsistent": { + "hashes": [ + "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c", + "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc", + "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e", + "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26", + "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec", + "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286", + "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045", + "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec", + "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8", + "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c", + "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca", + "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22", + "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a", + "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96", + "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc", + "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1", + "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07", + "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6", + "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b", + "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5", + "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6" + ], + "markers": "python_version >= '3.7'", + "version": "==0.18.1" + }, + "pystrict": { + "hashes": [ + "sha256:20a7e3a5f5af61bde834eb7198434cfa58a66b0af2aa5aa9292b072945ab5705", + "sha256:82dd3e33917ddb1b84a67a9ca9bbe583fde29307cbf5c77a94d91c4b9d842300" + ], + "index": "pypi", + "version": "==1.1" + }, + "rdflib": { + "hashes": [ + "sha256:8dbfa0af2990b98471dacbc936d6494c997ede92fd8ed693fb84ee700ef6f754", + "sha256:fc81cef513cd552d471f2926141396b633207109d0154c8e77926222c70367fe" + ], + "index": "pypi", + "version": "==6.1.1" + }, + "requests": { + "hashes": [ + "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61", + "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d" + ], + "index": "pypi", + "version": "==2.27.1" + }, + "rfc3987": { + "hashes": [ + "sha256:10702b1e51e5658843460b189b185c0366d2cf4cff716f13111b0ea9fd2dce53", + "sha256:d3c4d257a560d544e9826b38bc81db676890c79ab9d7ac92b39c7a253d5ca733" + ], + "index": "pypi", + "version": "==1.3.8" + }, + "setuptools": { + "hashes": [ + "sha256:8f4813dd6a4d6cc17bde85fb2e635fe19763f96efbb0ddf5575562e5ee0bc47a", + "sha256:c3d4e2ab578fbf83775755cd76dae73627915a22832cf4ea5de895978767833b" + ], + "markers": "python_version >= '3.7'", + "version": "==61.2.0" + }, + "six": { + "hashes": [ + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.16.0" + }, + "urllib3": { + "hashes": [ + "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14", + "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", + "version": "==1.26.9" + }, + "validators": { + "hashes": [ + "sha256:0143dcca8a386498edaf5780cbd5960da1a4c85e0719f3ee5c9b41249c4fefbd", + "sha256:37cd9a9213278538ad09b5b9f9134266e7c226ab1fede1d500e29e0a8fbb9ea6" + ], + "index": "pypi", + "version": "==0.18.2" + } + }, + "develop": { + "attrs": { + "hashes": [ + "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4", + "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==21.4.0" + }, + "autopep8": { + "hashes": [ + "sha256:44f0932855039d2c15c4510d6df665e4730f2b8582704fa48f9c55bd3e17d979", + "sha256:ed77137193bbac52d029a52c59bec1b0629b5a186c495f1eb21b126ac466083f" + ], + "index": "pypi", + "version": "==1.6.0" + }, + "cached-property": { + "hashes": [ + "sha256:9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130", + "sha256:df4f613cf7ad9a588cc381aaf4a512d26265ecebd5eb9e1ba12f1319eb85a6a0" + ], + "version": "==1.5.2" + }, + "cerberus": { + "hashes": [ + "sha256:d1b21b3954b2498d9a79edf16b3170a3ac1021df88d197dc2ce5928ba519237c" + ], + "version": "==1.3.4" + }, + "certifi": { + "hashes": [ + "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872", + "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569" + ], + "version": "==2021.10.8" + }, + "chardet": { + "hashes": [ + "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa", + "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==4.0.0" + }, + "charset-normalizer": { + "hashes": [ + "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597", + "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df" + ], + "markers": "python_version >= '3'", + "version": "==2.0.12" + }, + "click": { + "hashes": [ + "sha256:5e0d195c2067da3136efb897449ec1e9e6c98282fbf30d7f9e164af9be901a6b", + "sha256:7ab900e38149c9872376e8f9b5986ddcaf68c0f413cf73678a0bca5547e6f976" + ], + "index": "pypi", + "version": "==8.1.1" + }, + "colorama": { + "hashes": [ + "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b", + "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==0.4.4" + }, + "distlib": { + "hashes": [ + "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b", + "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579" + ], + "version": "==0.3.4" + }, + "ghp-import": { + "hashes": [ + "sha256:5f8962b30b20652cdffa9c5a9812f7de6bcb56ec475acac579807719bf242c46", + "sha256:947b3771f11be850c852c64b561c600fdddf794bab363060854c1ee7ad05e071" + ], + "version": "==2.0.2" + }, + "idna": { + "hashes": [ + "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", + "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" + ], + "markers": "python_version >= '3'", + "version": "==3.3" + }, + "importlib-metadata": { + "hashes": [ + "sha256:1208431ca90a8cca1a6b8af391bb53c1a2db74e5d1cef6ddced95d4b2062edc6", + "sha256:ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539" + ], + "markers": "python_version >= '3.7'", + "version": "==4.11.3" + }, + "iniconfig": { + "hashes": [ + "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", + "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32" + ], + "version": "==1.1.1" + }, + "jinja2": { + "hashes": [ + "sha256:539835f51a74a69f41b848a9645dbdc35b4f20a3b601e2d9a7e22947b15ff119", + "sha256:640bed4bb501cbd17194b3cace1dc2126f5b619cf068a726b98192a0fde74ae9" + ], + "markers": "python_version >= '3.7'", + "version": "==3.1.1" + }, + "markdown": { + "hashes": [ + "sha256:76df8ae32294ec39dcf89340382882dfa12975f87f45c3ed1ecdb1e8cefc7006", + "sha256:9923332318f843411e9932237530df53162e29dc7a4e2b91e35764583c46c9a3" + ], + "markers": "python_version >= '3.6'", + "version": "==3.3.6" + }, + "markupsafe": { + "hashes": [ + "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003", + "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88", + "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5", + "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7", + "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a", + "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603", + "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1", + "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135", + "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247", + "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6", + "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601", + "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77", + "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02", + "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e", + "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63", + "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f", + "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980", + "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b", + "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812", + "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff", + "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96", + "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1", + "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925", + "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a", + "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6", + "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e", + "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f", + "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4", + "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f", + "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3", + "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c", + "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a", + "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417", + "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a", + "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a", + "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37", + "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452", + "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933", + "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a", + "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7" + ], + "markers": "python_version >= '3.7'", + "version": "==2.1.1" + }, + "mergedeep": { + "hashes": [ + "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8", + "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307" + ], + "markers": "python_version >= '3.6'", + "version": "==1.3.4" + }, + "mkdocs": { + "hashes": [ + "sha256:26bd2b03d739ac57a3e6eed0b7bcc86168703b719c27b99ad6ca91dc439aacde", + "sha256:b504405b04da38795fec9b2e5e28f6aa3a73bb0960cb6d5d27ead28952bd35ea" + ], + "index": "pypi", + "version": "==1.3.0" + }, + "mkdocs-include-markdown-plugin": { + "hashes": [ + "sha256:1462d343f150b59e78f0aebf9ff9ef9d591fbd9630193e0c9d661abf6df92d6a", + "sha256:d820523a28c893b92f4c5c383332d36379874a3741f4fe04f11bf41afca18a2b" + ], + "index": "pypi", + "version": "==3.3.0" + }, + "mkdocs-material": { + "hashes": [ + "sha256:16ccd382431d5148a4bdbc37c949d0ea5f80e3e9bcce3bd0d774716e5aad9dff", + "sha256:f0696538929b3778b064f650589eb2027e4a2c0b3ab37afa8900de7924100901" + ], + "index": "pypi", + "version": "==8.2.8" + }, + "mkdocs-material-extensions": { + "hashes": [ + "sha256:a82b70e533ce060b2a5d9eb2bc2e1be201cf61f901f93704b4acf6e3d5983a44", + "sha256:bfd24dfdef7b41c312ede42648f9eb83476ea168ec163b613f9abd12bbfddba2" + ], + "markers": "python_version >= '3.6'", + "version": "==1.0.3" + }, + "mypy": { + "hashes": [ + "sha256:0e2dd88410937423fba18e57147dd07cd8381291b93d5b1984626f173a26543e", + "sha256:10daab80bc40f84e3f087d896cdb53dc811a9f04eae4b3f95779c26edee89d16", + "sha256:17e44649fec92e9f82102b48a3bf7b4a5510ad0cd22fa21a104826b5db4903e2", + "sha256:1a0459c333f00e6a11cbf6b468b870c2b99a906cb72d6eadf3d1d95d38c9352c", + "sha256:246e1aa127d5b78488a4a0594bd95f6d6fb9d63cf08a66dafbff8595d8891f67", + "sha256:2b184db8c618c43c3a31b32ff00cd28195d39e9c24e7c3b401f3db7f6e5767f5", + "sha256:2bc249409a7168d37c658e062e1ab5173300984a2dada2589638568ddc1db02b", + "sha256:3841b5433ff936bff2f4dc8d54cf2cdbfea5d8e88cedfac45c161368e5770ba6", + "sha256:4c3e497588afccfa4334a9986b56f703e75793133c4be3a02d06a3df16b67a58", + "sha256:5bf44840fb43ac4074636fd47ee476d73f0039f4f54e86d7265077dc199be24d", + "sha256:64235137edc16bee6f095aba73be5334677d6f6bdb7fa03cfab90164fa294a17", + "sha256:6776e5fa22381cc761df53e7496a805801c1a751b27b99a9ff2f0ca848c7eca0", + "sha256:6ce34a118d1a898f47def970a2042b8af6bdcc01546454726c7dd2171aa6dfca", + "sha256:6f6ad963172152e112b87cc7ec103ba0f2db2f1cd8997237827c052a3903eaa6", + "sha256:6f7106cbf9cc2f403693bf50ed7c9fa5bb3dfa9007b240db3c910929abe2a322", + "sha256:7742d2c4e46bb5017b51c810283a6a389296cda03df805a4f7869a6f41246534", + "sha256:9521c1265ccaaa1791d2c13582f06facf815f426cd8b07c3a485f486a8ffc1f3", + "sha256:a1b383fe99678d7402754fe90448d4037f9512ce70c21f8aee3b8bf48ffc51db", + "sha256:b840cfe89c4ab6386c40300689cd8645fc8d2d5f20101c7f8bd23d15fca14904", + "sha256:d8d3ba77e56b84cd47a8ee45b62c84b6d80d32383928fe2548c9a124ea0a725c", + "sha256:dcd955f36e0180258a96f880348fbca54ce092b40fbb4b37372ae3b25a0b0a46", + "sha256:e865fec858d75b78b4d63266c9aff770ecb6a39dfb6d6b56c47f7f8aba6baba8", + "sha256:edf7237137a1a9330046dbb14796963d734dd740a98d5e144a3eb1d267f5f9ee" + ], + "index": "pypi", + "version": "==0.942" + }, + "mypy-extensions": { + "hashes": [ + "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", + "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" + ], + "version": "==0.4.3" + }, + "numpy": { + "hashes": [ + "sha256:07a8c89a04997625236c5ecb7afe35a02af3896c8aa01890a849913a2309c676", + "sha256:08d9b008d0156c70dc392bb3ab3abb6e7a711383c3247b410b39962263576cd4", + "sha256:201b4d0552831f7250a08d3b38de0d989d6f6e4658b709a02a73c524ccc6ffce", + "sha256:2c10a93606e0b4b95c9b04b77dc349b398fdfbda382d2a39ba5a822f669a0123", + "sha256:3ca688e1b9b95d80250bca34b11a05e389b1420d00e87a0d12dc45f131f704a1", + "sha256:48a3aecd3b997bf452a2dedb11f4e79bc5bfd21a1d4cc760e703c31d57c84b3e", + "sha256:568dfd16224abddafb1cbcce2ff14f522abe037268514dd7e42c6776a1c3f8e5", + "sha256:5bfb1bb598e8229c2d5d48db1860bcf4311337864ea3efdbe1171fb0c5da515d", + "sha256:639b54cdf6aa4f82fe37ebf70401bbb74b8508fddcf4797f9fe59615b8c5813a", + "sha256:8251ed96f38b47b4295b1ae51631de7ffa8260b5b087808ef09a39a9d66c97ab", + "sha256:92bfa69cfbdf7dfc3040978ad09a48091143cffb778ec3b03fa170c494118d75", + "sha256:97098b95aa4e418529099c26558eeb8486e66bd1e53a6b606d684d0c3616b168", + "sha256:a3bae1a2ed00e90b3ba5f7bd0a7c7999b55d609e0c54ceb2b076a25e345fa9f4", + "sha256:c34ea7e9d13a70bf2ab64a2532fe149a9aced424cd05a2c4ba662fd989e3e45f", + "sha256:dbc7601a3b7472d559dc7b933b18b4b66f9aa7452c120e87dfb33d02008c8a18", + "sha256:e7927a589df200c5e23c57970bafbd0cd322459aa7b1ff73b7c2e84d6e3eae62", + "sha256:f8c1f39caad2c896bc0018f699882b345b2a63708008be29b1f355ebf6f933fe", + "sha256:f950f8845b480cffe522913d35567e29dd381b0dc7e4ce6a4a9f9156417d2430", + "sha256:fade0d4f4d292b6f39951b6836d7a3c7ef5b2347f3c420cd9820a1d90d794802", + "sha256:fdf3c08bce27132395d3c3ba1503cac12e17282358cb4bddc25cc46b0aca07aa" + ], + "markers": "python_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64'", + "version": "==1.22.3" + }, + "orderedmultidict": { + "hashes": [ + "sha256:04070bbb5e87291cc9bfa51df413677faf2141c73c61d2a5f7b26bea3cd882ad", + "sha256:43c839a17ee3cdd62234c47deca1a8508a3f2ca1d0678a3bf791c87cf84adbf3" + ], + "version": "==1.0.1" + }, + "packaging": { + "hashes": [ + "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5", + "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==20.9" + }, + "pandas": { + "hashes": [ + "sha256:0259cd11e7e6125aaea3af823b80444f3adad6149ff4c97fef760093598b3e34", + "sha256:04dd15d9db538470900c851498e532ef28d4e56bfe72c9523acb32042de43dfb", + "sha256:0b1a13f647e4209ed7dbb5da3497891d0045da9785327530ab696417ef478f84", + "sha256:19f7c632436b1b4f84615c3b127bbd7bc603db95e3d4332ed259dc815c9aaa26", + "sha256:1b384516dbb4e6aae30e3464c2e77c563da5980440fbdfbd0968e3942f8f9d70", + "sha256:1d85d5f6be66dfd6d1d8d13b9535e342a2214260f1852654b19fa4d7b8d1218b", + "sha256:2e5a7a1e0ecaac652326af627a3eca84886da9e667d68286866d4e33f6547caf", + "sha256:3129a35d9dad1d80c234dd78f8f03141b914395d23f97cf92a366dcd19f8f8bf", + "sha256:358b0bc98a5ff067132d23bf7a2242ee95db9ea5b7bbc401cf79205f11502fd3", + "sha256:3dfb32ed50122fe8c5e7f2b8d97387edd742cc78f9ec36f007ee126cd3720907", + "sha256:4e1176f45981c8ccc8161bc036916c004ca51037a7ed73f2d2a9857e6dbe654f", + "sha256:508c99debccd15790d526ce6b1624b97a5e1e4ca5b871319fb0ebfd46b8f4dad", + "sha256:6105af6533f8b63a43ea9f08a2ede04e8f43e49daef0209ab0d30352bcf08bee", + "sha256:6d6ad1da00c7cc7d8dd1559a6ba59ba3973be6b15722d49738b2be0977eb8a0c", + "sha256:7ea47ba1d6f359680130bd29af497333be6110de8f4c35b9211eec5a5a9630fa", + "sha256:8db93ec98ac7cb5f8ac1420c10f5e3c43533153f253fe7fb6d891cf5aa2b80d2", + "sha256:96e9ece5759f9b47ae43794b6359bbc54805d76e573b161ae770c1ea59393106", + "sha256:bbb15ad79050e8b8d39ec40dd96a30cd09b886a2ae8848d0df1abba4d5502a67", + "sha256:c614001129b2a5add5e3677c3a213a9e6fd376204cb8d17c04e84ff7dfc02a73", + "sha256:e6a7bbbb7950063bfc942f8794bc3e31697c020a14f1cd8905fc1d28ec674a01", + "sha256:f02e85e6d832be37d7f16cf6ac8bb26b519ace3e5f3235564a91c7f658ab2a43" + ], + "index": "pypi", + "version": "==1.4.1" + }, + "pep517": { + "hashes": [ + "sha256:931378d93d11b298cf511dd634cf5ea4cb249a28ef84160b3247ee9afb4e8ab0", + "sha256:dd884c326898e2c6e11f9e0b64940606a93eb10ea022a2e067959f3a110cf161" + ], + "version": "==0.12.0" + }, + "pip": { + "hashes": [ + "sha256:b3a9de2c6ef801e9247d1527a4b16f92f2cc141cd1489f3fffaf6a9e96729764", + "sha256:c6aca0f2f081363f689f041d90dab2a07a9a07fb840284db2218117a52da800b" + ], + "markers": "python_version >= '3.7'", + "version": "==22.0.4" + }, + "pip-shims": { + "hashes": [ + "sha256:116466de9f6bd9a5799cf5f16fe383cd07a45073f2f7e3390af0b73ed3675317", + "sha256:de39106ae4e43f3b7c98e4edf74efb71da308c3ae41b33dc484ba7965bcc1a52" + ], + "markers": "python_version >= '3.6'", + "version": "==0.7.0" + }, + "pipenv-setup": { + "hashes": [ + "sha256:0def7ec3363f58b38a43dc59b2078fcee67b47301fd51a41b8e34e6f79812b1a", + "sha256:6ceda7145a3088494d8ca68fded4b0473022dc62eb786a021c137632c44298b5" + ], + "index": "pypi", + "version": "==3.2.0" + }, + "pipfile": { + "hashes": [ + "sha256:f7d9f15de8b660986557eb3cc5391aa1a16207ac41bc378d03f414762d36c984" + ], + "version": "==0.0.2" + }, + "platformdirs": { + "hashes": [ + "sha256:7535e70dfa32e84d4b34996ea99c5e432fa29a708d0f4e394bbcb2a8faa4f16d", + "sha256:bcae7cab893c2d310a711b70b24efb93334febe65f8de776ee320b517471e227" + ], + "markers": "python_version >= '3.7'", + "version": "==2.5.1" + }, + "plette": { + "extras": [ + "validation" + ], + "hashes": [ + "sha256:46402c03e36d6eadddad2a5125990e322dd74f98160c8f2dcd832b2291858a26", + "sha256:d6c9b96981b347bddd333910b753b6091a2c1eb2ef85bb373b4a67c9d91dca16" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.2.3" + }, + "pluggy": { + "hashes": [ + "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", + "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" + ], + "markers": "python_version >= '3.6'", + "version": "==1.0.0" + }, + "py": { + "hashes": [ + "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719", + "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==1.11.0" + }, + "pycodestyle": { + "hashes": [ + "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20", + "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==2.8.0" + }, + "pygments": { + "hashes": [ + "sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65", + "sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a" + ], + "markers": "python_version >= '3.5'", + "version": "==2.11.2" + }, + "pymdown-extensions": { + "hashes": [ + "sha256:a80553b243d3ed2d6c27723bcd64ca9887e560e6f4808baa96f36e93061eaf90", + "sha256:b37461a181c1c8103cfe1660081726a0361a8294cbfda88e5b02cefe976f0546" + ], + "markers": "python_version >= '3.7'", + "version": "==9.3" + }, + "pyparsing": { + "hashes": [ + "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea", + "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484" + ], + "markers": "python_version >= '3.6'", + "version": "==3.0.7" + }, + "pytest": { + "hashes": [ + "sha256:841132caef6b1ad17a9afde46dc4f6cfa59a05f9555aae5151f73bdf2820ca63", + "sha256:92f723789a8fdd7180b6b06483874feca4c48a5c76968e03bb3e7f806a1869ea" + ], + "index": "pypi", + "version": "==7.1.1" + }, + "python-dateutil": { + "hashes": [ + "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", + "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.8.2" + }, + "pytz": { + "hashes": [ + "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7", + "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c" + ], + "version": "==2022.1" + }, + "pyyaml": { + "hashes": [ + "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293", + "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b", + "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57", + "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b", + "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4", + "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07", + "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba", + "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9", + "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287", + "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513", + "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0", + "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0", + "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92", + "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f", + "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2", + "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc", + "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c", + "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86", + "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4", + "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c", + "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34", + "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b", + "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c", + "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb", + "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737", + "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3", + "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d", + "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53", + "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78", + "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803", + "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a", + "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174", + "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5" + ], + "markers": "python_version >= '3.6'", + "version": "==6.0" + }, + "pyyaml-env-tag": { + "hashes": [ + "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb", + "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069" + ], + "markers": "python_version >= '3.6'", + "version": "==0.1" + }, + "requests": { + "hashes": [ + "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61", + "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d" + ], + "index": "pypi", + "version": "==2.27.1" + }, + "requirementslib": { + "hashes": [ + "sha256:7986c9797df08e68f6dfbb6c6e948b1e108363ef70da82cb21fe219a965b2859", + "sha256:b7d62aaa5177b85ba3cfa0ef6d0ebdf405787dd0660f38b2b6401f7c32e6529c" + ], + "markers": "python_version >= '3.6'", + "version": "==1.6.1" + }, + "setuptools": { + "hashes": [ + "sha256:8f4813dd6a4d6cc17bde85fb2e635fe19763f96efbb0ddf5575562e5ee0bc47a", + "sha256:c3d4e2ab578fbf83775755cd76dae73627915a22832cf4ea5de895978767833b" + ], + "markers": "python_version >= '3.7'", + "version": "==61.2.0" + }, + "six": { + "hashes": [ + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.16.0" + }, + "toml": { + "hashes": [ + "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", + "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.10.2" + }, + "tomli": { + "hashes": [ + "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", + "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" + ], + "markers": "python_version >= '3.7'", + "version": "==2.0.1" + }, + "tomlkit": { + "hashes": [ + "sha256:3c517894eadef53e9072d343d37e4427b8f0b6200a70b7c9a19b2ebd1f53b951", + "sha256:3eba517439dcb2f84cf39f4f85fd2c3398309823a3c75ac3e73003638daf7915" + ], + "markers": "python_version >= '3.6' and python_version < '4'", + "version": "==0.10.1" + }, + "typing-extensions": { + "hashes": [ + "sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42", + "sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2" + ], + "markers": "python_version >= '3.6'", + "version": "==4.1.1" + }, + "urllib3": { + "hashes": [ + "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14", + "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", + "version": "==1.26.9" + }, + "vistir": { + "hashes": [ + "sha256:a37079cdbd85d31a41cdd18457fe521e15ec08b255811e81aa061fd5f48a20fb", + "sha256:eff1d19ef50c703a329ed294e5ec0b0fbb35b96c1b3ee6dcdb266dddbe1e935a" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.5.2" + }, + "watchdog": { + "hashes": [ + "sha256:03b43d583df0f18782a0431b6e9e9965c5b3f7cf8ec36a00b930def67942c385", + "sha256:0908bb50f6f7de54d5d31ec3da1654cb7287c6b87bce371954561e6de379d690", + "sha256:0b4a1fe6201c6e5a1926f5767b8664b45f0fcb429b62564a41f490ff1ce1dc7a", + "sha256:177bae28ca723bc00846466016d34f8c1d6a621383b6caca86745918d55c7383", + "sha256:19b36d436578eb437e029c6b838e732ed08054956366f6dd11875434a62d2b99", + "sha256:1d1cf7dfd747dec519486a98ef16097e6c480934ef115b16f18adb341df747a4", + "sha256:1e877c70245424b06c41ac258023ea4bd0c8e4ff15d7c1368f17cd0ae6e351dd", + "sha256:340b875aecf4b0e6672076a6f05cfce6686935559bb6d34cebedee04126a9566", + "sha256:351e09b6d9374d5bcb947e6ac47a608ec25b9d70583e9db00b2fcdb97b00b572", + "sha256:3fd47815353be9c44eebc94cc28fe26b2b0c5bd889dafc4a5a7cbdf924143480", + "sha256:49639865e3db4be032a96695c98ac09eed39bbb43fe876bb217da8f8101689a6", + "sha256:4d0e98ac2e8dd803a56f4e10438b33a2d40390a72750cff4939b4b274e7906fa", + "sha256:6e6ae29b72977f2e1ee3d0b760d7ee47896cb53e831cbeede3e64485e5633cc8", + "sha256:7f14ce6adea2af1bba495acdde0e510aecaeb13b33f7bd2f6324e551b26688ca", + "sha256:81982c7884aac75017a6ecc72f1a4fedbae04181a8665a34afce9539fc1b3fab", + "sha256:81a5861d0158a7e55fe149335fb2bbfa6f48cbcbd149b52dbe2cd9a544034bbd", + "sha256:ae934e34c11aa8296c18f70bf66ed60e9870fcdb4cc19129a04ca83ab23e7055", + "sha256:b26e13e8008dcaea6a909e91d39b629a39635d1a8a7239dd35327c74f4388601", + "sha256:b3750ee5399e6e9c69eae8b125092b871ee9e2fcbd657a92747aea28f9056a5c", + "sha256:b61acffaf5cd5d664af555c0850f9747cc5f2baf71e54bbac164c58398d6ca7b", + "sha256:b9777664848160449e5b4260e0b7bc1ae0f6f4992a8b285db4ec1ef119ffa0e2", + "sha256:bdcbf75580bf4b960fb659bbccd00123d83119619195f42d721e002c1621602f", + "sha256:d802d65262a560278cf1a65ef7cae4e2bc7ecfe19e5451349e4c67e23c9dc420", + "sha256:ed6d9aad09a2a948572224663ab00f8975fae242aa540509737bb4507133fa2d" + ], + "markers": "python_version >= '3.6'", + "version": "==2.1.7" + }, + "wheel": { + "hashes": [ + "sha256:4bdcd7d840138086126cd09254dc6195fb4fc6f01c050a1d7236f2630db1d22a", + "sha256:e9a504e793efbca1b8e0e9cb979a249cf4a0a7b5b8c9e8b65a5e39d49529c1c4" + ], + "index": "pypi", + "version": "==0.37.1" + }, + "zipp": { + "hashes": [ + "sha256:9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d", + "sha256:b47250dd24f92b7dd6a0a8fc5244da14608f3ca90a5efcd37a3b1642fac9a375" + ], + "markers": "python_version >= '3.7'", + "version": "==3.7.0" + } + } +} diff --git a/README.md b/README.md index 7b45fb5bc..c59bae155 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,89 @@ [![PyPI version](https://badge.fury.io/py/dsp-tools.svg)](https://badge.fury.io/py/dsp-tools) # DSP-TOOLS - DaSCH Service Platform Tools - -dsp-tools is a command line tool that helps you interact with the DaSCH Service Platform API. - +dsp-tools is a command line tool that helps you interacting with the DaSCH Service Platform API. Go to [Full Documentation](https://dasch-swiss.github.io/dsp-tools/) ## Information for developers +There is a `Makefile` for all the following tasks (and more). Type `make` to print the available targets. + +For a quick start, use: +``` +pip install pipenv +pipenv install --dev +pipenv run make run +``` -There is a `Makefile` for all the following tasks (and more). Type `make` to print the available targets. For a quick -start use: +This creates a pipenv-environment, installs all dependencies, and installs `dsp-tools` from source. + +If you prefer getting around pipenv, use instead: ```bash make upgrade-dist-tools make install-requirements make run ``` -## Install from source +## Pipenv +We use pipenv for our dependency management. There are two ways to get started: + - `pipenv install --dev` installs all dependencies, while giving them the opportunity to update themselves + - `pipenv install --ignore-pipfile` is used to get a deterministic build in production -To install from source run: +This works because there are two files defining the dependencies: + - `Pipfile` replaces `requirements.txt`, but lists only the core dependencies, ordered in two sections: + - `[packages]` lists the dependencies used to run the software. + - `[dev-packages]` lists additional dependencies used for tests and deployment. + - `Pipfile.lock` enables deterministic builds, by exactly pinning the version of all (sub-) dependencies. + This is done automatically, you must not edit `Pipfile.lock`. -```bash -python3 setup.py install -``` +The diverse `requirements.txt` files in this repo are only present for backwards compatibility +and for GitHub CI. -## Install the requirements +If you want to install a new package, install it with `pipenv install package`. This + - installs the package (incl. sub-dependencies) in your virtual environment + - adds the package to the section `[packages]` of `Pipfile`. By default, no versions are pinned + - adds the pinned versions of package and all sub-dependencies to `Pipfile.lock` -To install the requirements run: - -```bash -pip3 install -r requirements.txt -``` +If a package is only needed for development, please install it with `pipenv install package --dev`, +so it gets added to the `[dev-packages]` section of `Pipfile`. -To generate a requirements file (usually requirements.txt), that you commit with your project, run: +For security reasons, the maintainer regularly executes + - `pipenv check` to get informed about vulnerabilities + - `pipenv update` to update `Pipfile.lock` with the latest version of every package + - `make freeze-requirements` to update the requirement files and `setup.py` -```bash -pip3 freeze > requirements.txt -``` +`make freeze-requirements` must also be executed after adding a new dependency. If you prefer working +without pipenv, you can freeze your requirements with `pip3 freeze > requirements.txt` and update `setup.py` +manually. -## Testing +### Pipenv setup in PyCharm + - Go to Add Interpreter > Pipenv Environment + - Base Interpreter: PyCarm auto-detects one of your system-wide installed Pythons as base interpreter. + - Pipenv executable: auto-detected + - After hitting OK, PyCharm creates a new pipenv environment and installs the dependencies from `Pipfile` -Please note that testing requires launching the complete DSP API stack which is based on docker images. Therefore, we -recommend installing the [docker desktop client](https://www.docker.com/products). +If you already initialized a pipenv-environment via command line, you can add its interpreter in PyCharm, +but this will create the pipenv-environment again. +## Testing +Please note that testing requires launching the complete DSP API stack which is based on docker images. +Therefore, we recommend installing the [docker desktop client](https://www.docker.com/products). To run the complete test suite: - ```bash make test ``` ## Code style - When contributing to the project please make sure you use the same code style rules as we do. We use -[autopep8](https://pypi.org/project/autopep8/) and [mypy](https://pypi.org/project/mypy/). The configuration is defined -in `pyproject.toml` in the root directory of the project. +[autopep8](https://pypi.org/project/autopep8/) and [mypy](https://pypi.org/project/mypy/). The +configuration is defined in `pyproject.toml` in the root directory of the project. You can use the configuration with `autopep8 --global-config pyproject.toml [file path]` and `mypy --config-file pyproject.toml [file path]`. -If you are using PyCharm we recommend installing autopep8 as external tool. You can then use it with right-click on the -file > `External Tools` > `autopep8` to reformat files in-place. Due to compatibility issues with VSCode, the argument -`--in-place=true` can not be declared in the `pyproject.toml` and needs to be passed to the external tool in the PyCharm settings. +If you are using PyCharm we recommend installing autopep8 as external tool. You can then use it with +right-click on the file > `External Tools` > `autopep8` to reformat files in-place. Due to compatibility +issues with VSCode, the argument `--in-place=true` can not be declared in the `pyproject.toml` and +needs to be passed to the external tool in the PyCharm settings. mypy is available as [plugin](https://plugins.jetbrains.com/plugin/11086-mypy). In VSCode, both mypy and autopep8 can be set up as default linter and formatter through the python extension. @@ -68,7 +91,6 @@ In VSCode, both mypy and autopep8 can be set up as default linter and formatter For formatting Markdown files (*.md) we use the default styling configuration provided by PyCharm. ## Publishing - Publishing is automated with GitHub Actions and should _not_ be done manually. Please follow the [Pull Request Guidelines](https://docs.dasch.swiss/developers/dsp/contribution/#pull-request-guidelines). If done correctly, when merging a pull request into `main`, the `release-please` action will create or update a pull request for @@ -79,7 +101,6 @@ create a release on GitHub, on PyPI and the docs. Please ensure you have only one pull request per feature. ## Publishing manually - Publishing is automated with GitHub Actions and should _not_ be done manually. If you still need to do it, follow the steps below. @@ -110,7 +131,6 @@ python3 setup.py develop ``` ## Contributing to the documentation - The documentation is a collection of [markdown](https://en.wikipedia.org/wiki/Markdown) files in the `docs` folder. After updates of the files, build and check the result with the following commands: diff --git a/dev-requirements.txt b/dev-requirements.txt new file mode 100644 index 000000000..6ac9cbf54 --- /dev/null +++ b/dev-requirements.txt @@ -0,0 +1,67 @@ +# +# These requirements were autogenerated by pipenv +# To regenerate from the project's Pipfile, run: +# +# pipenv lock --requirements --dev-only +# + +-i https://pypi.org/simple +attrs==21.4.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' +autopep8==1.6.0 +cached-property==1.5.2 +cerberus==1.3.4 +certifi==2021.10.8 +chardet==4.0.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' +charset-normalizer==2.0.12; python_version >= '3' +click==8.1.1 +colorama==0.4.4; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' +distlib==0.3.4 +ghp-import==2.0.2 +idna==3.3; python_version >= '3' +importlib-metadata==4.11.3; python_version >= '3.7' +iniconfig==1.1.1 +jinja2==3.1.1; python_version >= '3.7' +markdown==3.3.6; python_version >= '3.6' +markupsafe==2.1.1; python_version >= '3.7' +mergedeep==1.3.4; python_version >= '3.6' +mkdocs-include-markdown-plugin==3.3.0 +mkdocs-material-extensions==1.0.3; python_version >= '3.6' +mkdocs-material==8.2.8 +mkdocs==1.3.0 +mypy-extensions==0.4.3 +mypy==0.942 +numpy==1.22.3; python_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64' +orderedmultidict==1.0.1 +packaging==20.9; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' +pandas==1.4.1 +pep517==0.12.0 +pip-shims==0.7.0; python_version >= '3.6' +pip==22.0.4; python_version >= '3.7' +pipenv-setup==3.2.0 +pipfile==0.0.2 +platformdirs==2.5.1; python_version >= '3.7' +plette[validation]==0.2.3; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3' +pluggy==1.0.0; python_version >= '3.6' +py==1.11.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' +pycodestyle==2.8.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' +pygments==2.11.2; python_version >= '3.5' +pymdown-extensions==9.3; python_version >= '3.7' +pyparsing==3.0.7; python_version >= '3.6' +pytest==7.1.1 +python-dateutil==2.8.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' +pytz==2022.1 +pyyaml-env-tag==0.1; python_version >= '3.6' +pyyaml==6.0; python_version >= '3.6' +requests==2.27.1 +requirementslib==1.6.1; python_version >= '3.6' +setuptools==61.2.0; python_version >= '3.7' +six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' +toml==0.10.2; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3' +tomli==2.0.1; python_version >= '3.7' +tomlkit==0.10.1; python_version >= '3.6' and python_version < '4' +typing-extensions==4.1.1; python_version >= '3.6' +urllib3==1.26.9; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4' +vistir==0.5.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' +watchdog==2.1.7; python_version >= '3.6' +wheel==0.37.1 +zipp==3.7.0; python_version >= '3.7' diff --git a/requirements.txt b/requirements.txt index bdf146066..a9d144f6d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,71 +1,32 @@ -attrs==21.2.0 -bleach==4.1.0 +# +# These requirements were autogenerated by pipenv +# To regenerate from the project's Pipfile, run: +# +# pipenv lock --requirements +# + +-i https://pypi.org/simple +argparse==1.4.0 +attrs==21.4.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' certifi==2021.10.8 -charset-normalizer==2.0.7 -click==8.0.3 -colorama==0.4.4 -decorator==5.1.0 -docutils==0.18 -et-xmlfile==1.1.0 -future==0.18.2 -ghp-import==2.0.2 -idna==3.3 -importlib-metadata==4.8.1 -importlib-resources==5.4.0 -iniconfig==1.1.1 -isodate==0.6.0 -Jinja2==3.0.2 -joblib==1.1.0 +charset-normalizer==2.0.12; python_version >= '3' +click==8.1.1 +decorator==5.1.1; python_version >= '3.5' +et-xmlfile==1.1.0; python_version >= '3.6' +idna==3.3; python_version >= '3' +isodate==0.6.1 jsonpath-ng==1.5.3 -jsonschema==4.2.1 -keyring==23.2.1 -livereload==2.6.3 -lunr==0.5.8 -lxml==4.6.5 -Markdown==3.3.4 -MarkupSafe==2.0.1 -mergedeep==1.3.4 -mkdocs==1.2.3 -mkdocs-autorefs==0.3.0 -mkdocs-include-markdown-plugin==3.2.3 -mkdocs-material==7.2.3 -mkdocs-material-extensions==1.0.3 -mkdocstrings==0.16.2 -nltk==3.6.6 -numpy==1.22.3 +jsonschema==4.4.0 +lxml==4.8.0 openpyxl==3.0.9 -packaging==21.2 -pandas==1.4.1 -pkginfo==1.7.1 -pluggy==1.0.0 ply==3.11 -py==1.11.0 -Pygments==2.10.0 -pymdown-extensions==9.0 -pyparsing==2.4.7 -pyrsistent==0.18.0 +pyparsing==3.0.7; python_version >= '3.6' +pyrsistent==0.18.1; python_version >= '3.7' pystrict==1.1 -pytest==7.1.1 -python-dateutil==2.8.2 -pytkdocs==0.12.0 -pytz==2022.1 -PyYAML==6.0 -pyyaml_env_tag==0.1 -rdflib==6.0.2 -readme-renderer==30.0 -regex==2021.11.2 -requests==2.26.0 -requests-toolbelt==0.9.1 -rfc3986==1.5.0 +rdflib==6.1.1 +requests==2.27.1 rfc3987==1.3.8 -six==1.16.0 -tomli==2.0.1 -tornado==6.1 -tqdm==4.62.3 -twine==3.5.0 -typing_extensions==4.0.1 -urllib3==1.26.7 +setuptools==61.2.0; python_version >= '3.7' +six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' +urllib3==1.26.9; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4' validators==0.18.2 -watchdog==2.1.6 -webencodings==0.5.1 -zipp==3.6.0 diff --git a/setup.py b/setup.py index 21bf5e551..96a8adc85 100644 --- a/setup.py +++ b/setup.py @@ -1,9 +1,9 @@ -import setuptools +from setuptools import setup, find_packages with open("README.md", "r") as fh: long_description = fh.read() -setuptools.setup( +setup( name='dsp-tools', version='1.12.2', description='A Python library and tools for the DaSCH Service Platform', @@ -13,26 +13,14 @@ author='Lukas Rosenthaler', author_email='lukas.rosenthaler@dasch.swiss', license='GPLv3', - packages=setuptools.find_packages(), + packages=find_packages(), classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", ], python_requires='>=3.9.0', - install_requires=[ - 'argparse', - 'rdflib', - 'lxml', - 'validators', - 'requests', - 'jsonschema', - 'click', - 'rfc3987', - 'pystrict', - 'openpyxl', - 'jsonpath-ng' - ], + install_requires=['argparse==1.4.0', "attrs==21.4.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", 'certifi==2021.10.8', "charset-normalizer==2.0.12; python_version >= '3'", 'click==8.1.1', "decorator==5.1.1; python_version >= '3.5'", "et-xmlfile==1.1.0; python_version >= '3.6'", "idna==3.3; python_version >= '3'", 'isodate==0.6.1', 'jsonpath-ng==1.5.3', 'jsonschema==4.4.0', 'lxml==4.8.0', 'openpyxl==3.0.9', 'ply==3.11', "pyparsing==3.0.7; python_version >= '3.6'", "pyrsistent==0.18.1; python_version >= '3.7'", 'pystrict==1.1', 'rdflib==6.1.1', 'requests==2.27.1', 'rfc3987==1.3.8', "setuptools==61.2.0; python_version >= '3.7'", "six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "urllib3==1.26.9; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", 'validators==0.18.2'], entry_points={ 'console_scripts': [ 'dsp-tools=knora.dsp_tools:main' diff --git a/testdata/test-list.json b/testdata/test-list.json deleted file mode 100644 index e1d28ec6f..000000000 --- a/testdata/test-list.json +++ /dev/null @@ -1,214 +0,0 @@ -{ - "my-list-from-excel": { - "id": "http://rdfh.ch/lists/4123/xaUpvp27TPCSCM2VUE0beA", - "nodes": [ - { - "first-sublist": { - "id": "http://rdfh.ch/lists/4123/CmNTDARbQd60EU5aZ8GuKg", - "nodes": [ - { - "first-subnode": { - "id": "http://rdfh.ch/lists/4123/w1OAjHTfSWqsRd9KdqInpA", - "nodes": [ - { - "one": { - "id": "http://rdfh.ch/lists/4123/hOlcnyCMRDia9h3U0Yu-2w" - } - }, - { - "two": { - "id": "http://rdfh.ch/lists/4123/Da1zfGHjQfijPy1ljm0gsQ" - } - }, - { - "three": { - "id": "http://rdfh.ch/lists/4123/YuaSpYooQg2rEbha2TO4Mw", - "nodes": [ - { - "fine": { - "id": "http://rdfh.ch/lists/4123/ZZ8P5gZUREuW9KF2HQRnyQ" - } - }, - { - "medium": { - "id": "http://rdfh.ch/lists/4123/B-ImGQ2ZSRSdrd_Qe0GHmQ" - } - }, - { - "coarse": { - "id": "http://rdfh.ch/lists/4123/jdvwvtuxTiq0qH5G1rcMbA" - } - } - ] - } - }, - { - "four": { - "id": "http://rdfh.ch/lists/4123/lhjH93vYRU2Na6Qi2k5siw", - "nodes": [ - { - "fine-2": { - "id": "http://rdfh.ch/lists/4123/nTsw5YrjQouGMYKopMyVyA" - } - }, - { - "medium-2": { - "id": "http://rdfh.ch/lists/4123/p-qz6DPXS52w1kOgRPc21A" - } - }, - { - "coarse-2": { - "id": "http://rdfh.ch/lists/4123/huZ5Zlq0SL2RXP7ltjVbYg" - } - } - ] - } - }, - { - "five": { - "id": "http://rdfh.ch/lists/4123/dgWBMoNvQrGe4jXPiwP2-Q" - } - }, - { - "six": { - "id": "http://rdfh.ch/lists/4123/iXfDKQQeS065WVsWgHxN9g" - } - } - ] - } - }, - { - "second-subnode": { - "id": "http://rdfh.ch/lists/4123/kj3P7j44TCCjv35xye4wWA", - "nodes": [ - { - "one-2": { - "id": "http://rdfh.ch/lists/4123/v50lT3KFSwG-e8cooGTaAw" - } - }, - { - "two-2": { - "id": "http://rdfh.ch/lists/4123/b43EStMpTNCRzToOePmahQ" - } - }, - { - "three-2": { - "id": "http://rdfh.ch/lists/4123/TnmEO1IETOysqbO_gcMUSw" - } - }, - { - "four-2": { - "id": "http://rdfh.ch/lists/4123/hLCBzBGHTE6jn_2P7QmsgA" - } - }, - { - "five-2": { - "id": "http://rdfh.ch/lists/4123/Ortus_1KR8m0qMFLXvBgqQ" - } - }, - { - "six-2": { - "id": "http://rdfh.ch/lists/4123/1HQqlFaqQqutg8p7e3Uxcg" - } - }, - { - "seven": { - "id": "http://rdfh.ch/lists/4123/LSOI-5vFQSCWBtnc65e2fg" - } - } - ] - } - } - ] - } - }, - { - "second-sublist": { - "id": "http://rdfh.ch/lists/4123/vqlWQPHdT_auZOfO0i-Eng", - "nodes": [ - { - "node-of-second-sublist": { - "id": "http://rdfh.ch/lists/4123/8r9qdM7-QqSjUdfe_UsD9Q" - } - } - ] - } - }, - { - "third-sublist": { - "id": "http://rdfh.ch/lists/4123/9noa0WWRT-m5Rad9h6PxjA", - "nodes": [ - { - "special-characters-12-0-are-embedded": { - "id": "http://rdfh.ch/lists/4123/_7_H2nvZTCibz2Mliuza3A", - "nodes": [ - { - "very": { - "id": "http://rdfh.ch/lists/4123/RISTODH5SZea-CEQo0XYlg", - "nodes": [ - { - "deeply": { - "id": "http://rdfh.ch/lists/4123/2pq66F78TE67eCoYBGP1Jg", - "nodes": [ - { - "nested": { - "id": "http://rdfh.ch/lists/4123/gRsrGPITSI6lu7j0Xgw1eQ" - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - }, - "notUsedList": { - "id": "http://rdfh.ch/lists/4123/voLHO1XdTuSvrBkDLEKVDQ", - "nodes": [ - { - "notUsedNode_1": { - "id": "http://rdfh.ch/lists/4123/sHBZOMcXQPecrH3jVAN3QQ" - } - } - ] - }, - "testlist": { - "id": "http://rdfh.ch/lists/4123/73s19IeyRpa7yBLGWRyehw", - "nodes": [ - { - "a": { - "id": "http://rdfh.ch/lists/4123/FAwozOvzQsCOModuUihYug" - } - }, - { - "b": { - "id": "http://rdfh.ch/lists/4123/id5Ij_dOTn-IuPAt7AL0nQ", - "nodes": [ - { - "b1": { - "id": "http://rdfh.ch/lists/4123/kjwEI3eQQxKQoRSGG-650A" - } - }, - { - "b2": { - "id": "http://rdfh.ch/lists/4123/SmgwdTXMQVWueGkPVdPr8Q" - } - } - ] - } - }, - { - "c": { - "id": "http://rdfh.ch/lists/4123/h-_T7oFdTva3TES_EVx9pQ" - } - } - ] - } -} \ No newline at end of file