From 5d172b6628b7fa546416fa7dea7cbbc143475174 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 18 Jun 2024 15:36:19 +0800 Subject: [PATCH 1/3] add template project --- cookiecutter.json | 26 - copier.yaml | 9 +- docs/assets/doc-site.png | Bin 108697 -> 0 bytes docs/assets/favicon.png | Bin 1995 -> 0 bytes docs/assets/logo.png | Bin 1995 -> 0 bytes pdm.lock | 1011 ----------------- template/.gitignore | 662 +++++++++++ template/README.md.jinja | 1 + template/docs/advanced/.keepit | 0 template/docs/concepts/.keepit | 0 template/docs/contribute/index.md | 5 + template/docs/index.md | 2 + template/docs/quickstart/.keepit | 0 template/docs/theme/main.html | 9 + template/mkdocs.yml.jinja | 4 + template/pyproject.toml.jinja | 154 +++ template/scripts/cleanup.sh | 17 + template/src/{{module_name}}/__init__.py | 2 + .../src/{{module_name}}/config/__init__.py | 32 + 19 files changed, 889 insertions(+), 1045 deletions(-) delete mode 100644 cookiecutter.json delete mode 100644 docs/assets/doc-site.png delete mode 100644 docs/assets/favicon.png delete mode 100644 docs/assets/logo.png delete mode 100644 pdm.lock create mode 100644 template/.gitignore create mode 100644 template/README.md.jinja create mode 100644 template/docs/advanced/.keepit create mode 100644 template/docs/concepts/.keepit create mode 100644 template/docs/contribute/index.md create mode 100644 template/docs/index.md create mode 100644 template/docs/quickstart/.keepit create mode 100644 template/docs/theme/main.html create mode 100644 template/mkdocs.yml.jinja create mode 100644 template/pyproject.toml.jinja create mode 100644 template/scripts/cleanup.sh create mode 100644 template/src/{{module_name}}/__init__.py create mode 100644 template/src/{{module_name}}/config/__init__.py diff --git a/cookiecutter.json b/cookiecutter.json deleted file mode 100644 index 10fc383..0000000 --- a/cookiecutter.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "project_name": "fluentqa", - "project_slug": "{{ cookiecutter.project_name.lower().replace(' ', '_').replace('-', '_') }}", - "project_description": "Awesome `{{ cookiecutter.project_slug }}` is a Python cli/package ", - "organization": "{{ cookiecutter.project_name.lower().replace(' ', '-') }}", - "_all_python_minor_version": [ - 10 - ], - "minimal_python_version": [ - "3.10","3.11" - ], - "github_name": "{{ cookiecutter.organization.lower().replace(' ', '_').replace('-', '_') }}", - "email": "hello@{{ cookiecutter.organization.lower().replace(' ', '-') }}.com", - "version": "0.1.0", - "line_length": 88, - "create_example_template": [ - "simple", - "cli-typer", - "cli-fire", - "server" - ], - "_copy_without_render": [ - "poetry.lock" - ], - "backend_port":"9090" -} diff --git a/copier.yaml b/copier.yaml index e2c675d..0268d31 100644 --- a/copier.yaml +++ b/copier.yaml @@ -26,14 +26,7 @@ project_description: default: Project brief description. help: "Provide a concise description to be used in the Python package overview and the introductory paragraph in the README and documentation's index page:" type: str -development_status: - default: Alpha - choices: - - Alpha - - Beta - - Production/Stable - help: 'Choose the development status:' - type: str + author_name: default: Your Name diff --git a/docs/assets/doc-site.png b/docs/assets/doc-site.png deleted file mode 100644 index b51e2fedd42a2c65bc96c92c867a9b098ffe2854..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108697 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 diff --git a/docs/assets/logo.png b/docs/assets/logo.png deleted file mode 100644 index 89d127b149589b34f4a60672928e8677e230ab08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1995 zcmV;+2Q>JJP)#cx!Fi^iJ_X@k!ZV0d)8fLk@CLvkB_pR};f5b%ebj2gG5xSADguf|wv+ z$%q(;gO^+6{=W_s-znz5PPbCQ?f58$7`$P=<%>jw1<6PkbK;&Td?KvHQ!ZeEL zH*pNfbp6Q`ISEVFfhJGSR7YrkHd!41%#wui4%rMrE)J4@_+*UxcISv3?1G(UbU=}& zj-t)elt2NpjDg*Wv5lCLtOL%`)QO(ZSpu=cg#2TJNsr1h&&L&{qmsTX)7xCbF}9`7 z=;tE-5j$!RsLS$6T@+LaYKCn(bl?E>_w~{FbLU`d^H_%jGA?MUijE#RLdTCDmHB|M zqdb7$uuWOEXfPE=4jrPwfdLvF83FX>^=sO-V+UgMVsl+%X}Wp+Iz7C9A0Nzr^ROd! zopivKrg@GgN&++ltYh(^!9iYpY;=@mUvDqxu@rq65raH&{5bvU)hs~lNP;jtCs^>{ z9PSdAmAEJC?)KvDF1W{o#64L%cfWhVIlsdbEbi`JS06_$^w86D{@|mkt@^KdJu}_= zwy~i>5N;F|7CL=nao0Nuu$k)Lx9>d~2lVSF>O0JwHVvWRuzS}oF~799n7%gNCc;l- z!TkBs)YvG~HGUit2#mdl=AHy}(#*jA{RPwq$3JrTupHRGAHj)i*}PeDhYqzd;Ee@* zo1cF2i9CP)oQq?acziAh<3e#VJqZjNFyMVfk~n_sn4CFtM)vO6BYSr5PK0}d{vo*W zuV23|d|teGAv0&p@KRb*k{0WIv`2aa_8L5J;6t^d7DRoA_T$HykE<3>g0e$JdAT#z z;&FpA-aerO=FFNU@5-vVGe&9KBIn?h-%lWbN54A!z)=xA>j`>>Su@7pK)_U=t&<%$);`0?Y$$!DK^ zW<&i6%%1I~s43DMcn;Y^Guk_fS3{d&9V!35^bnIkY4%vVSt zMHjS3`MJ3#^7Hb<&~n^&60nJRG9i?w6V`m=;DG~j|Ni~d1m@41=cT5)+H@G`F{~~d z4bRU%H7q}0Lc|iVrG!YtCi2!>Z>1){yTC_nO^wZuP%QUWT-(V=EAP_~qPwfhE8vUI zKPQPGzx@1jFoA^&7676h>g(!4nvDC=$Ppv%^I{3n-QArefOiB>CZBlfA#o`&e$k>u zUh3=XgPKSH?UC;MPAL*1DFHs`&YhFP2=!p~@4oX+QUdIwys)WD(}nhE%;?c4c*%hJ zfNxMvUCUp8{WW5}aI<57{qNKB(P%naxoCTLcu2i=1!qBDl91IHEH6+hl&JX zf6f6Wm*Uv{&@nW=|MBv|2UCNn)LpZ$&x9BfF0rDRDUoaMq*w>W`VK`x@zNxEuF~(WeVVf)_b9k zVP)%It=nOi7Vvnitf;UyvqnKTJicWZo6Cd*O7cYh99)#{G}f_YHDhl6){-T*c!D~HXmvgD|^R) z2Si()YYmGLCtgqAi_HD6{LISD)6mfHgCYhrVpC{z`?22%jkC7zne$)$p}VoM@pWaU zo|G;rf)KOjJ2-WLHaEs4=1~64AG%#yTU&cIH#M!-4cJ{pprxe+YxwKJ?RSYu?Emeb zJ@mlQTWQlt-&6Y#L23o7bq-FQ`8tNN#8Cc^fA$D}D{XCUrOGCyUCAmZm3x3s9c}cX duU+kb%I~au(VG^#%_;x@002ovPDHLkV1m@k+`#|< diff --git a/pdm.lock b/pdm.lock deleted file mode 100644 index 8ef3463..0000000 --- a/pdm.lock +++ /dev/null @@ -1,1011 +0,0 @@ -# This file is @generated by PDM. -# It is not intended for manual editing. - -[metadata] -groups = ["default", "docs", "lint", "maintain", "test", "dev"] -strategy = ["cross_platform", "inherit_metadata"] -lock_version = "4.4.1" -content_hash = "sha256:e8c097946357c233a9d8f861521f7d3cff6006b13c4039bfe24ffae50a7f66dc" - -[[package]] -name = "annotated-types" -version = "0.7.0" -requires_python = ">=3.8" -summary = "Reusable constraint types to use with typing.Annotated" -groups = ["default"] -files = [ - {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, - {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, -] - -[[package]] -name = "appdirs" -version = "1.4.4" -summary = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -groups = ["maintain"] -files = [ - {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, - {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, -] - -[[package]] -name = "babel" -version = "2.15.0" -requires_python = ">=3.8" -summary = "Internationalization utilities" -groups = ["docs"] -files = [ - {file = "Babel-2.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"}, - {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"}, -] - -[[package]] -name = "certifi" -version = "2024.6.2" -requires_python = ">=3.6" -summary = "Python package for providing Mozilla's CA Bundle." -groups = ["docs"] -files = [ - {file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"}, - {file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"}, -] - -[[package]] -name = "charset-normalizer" -version = "3.3.2" -requires_python = ">=3.7.0" -summary = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -groups = ["docs"] -files = [ - {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, -] - -[[package]] -name = "click" -version = "8.1.7" -requires_python = ">=3.7" -summary = "Composable command line interface toolkit" -groups = ["docs"] -dependencies = [ - "colorama; platform_system == \"Windows\"", -] -files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, -] - -[[package]] -name = "colorama" -version = "0.4.6" -requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -summary = "Cross-platform colored terminal text." -groups = ["docs", "test"] -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "coverage" -version = "7.5.3" -requires_python = ">=3.8" -summary = "Code coverage measurement for Python" -groups = ["test"] -files = [ - {file = "coverage-7.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a6519d917abb15e12380406d721e37613e2a67d166f9fb7e5a8ce0375744cd45"}, - {file = "coverage-7.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aea7da970f1feccf48be7335f8b2ca64baf9b589d79e05b9397a06696ce1a1ec"}, - {file = "coverage-7.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:923b7b1c717bd0f0f92d862d1ff51d9b2b55dbbd133e05680204465f454bb286"}, - {file = "coverage-7.5.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62bda40da1e68898186f274f832ef3e759ce929da9a9fd9fcf265956de269dbc"}, - {file = "coverage-7.5.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8b7339180d00de83e930358223c617cc343dd08e1aa5ec7b06c3a121aec4e1d"}, - {file = "coverage-7.5.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:25a5caf742c6195e08002d3b6c2dd6947e50efc5fc2c2205f61ecb47592d2d83"}, - {file = "coverage-7.5.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:05ac5f60faa0c704c0f7e6a5cbfd6f02101ed05e0aee4d2822637a9e672c998d"}, - {file = "coverage-7.5.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:239a4e75e09c2b12ea478d28815acf83334d32e722e7433471fbf641c606344c"}, - {file = "coverage-7.5.3-cp310-cp310-win32.whl", hash = "sha256:a5812840d1d00eafae6585aba38021f90a705a25b8216ec7f66aebe5b619fb84"}, - {file = "coverage-7.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:33ca90a0eb29225f195e30684ba4a6db05dbef03c2ccd50b9077714c48153cac"}, - {file = "coverage-7.5.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f81bc26d609bf0fbc622c7122ba6307993c83c795d2d6f6f6fd8c000a770d974"}, - {file = "coverage-7.5.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7cec2af81f9e7569280822be68bd57e51b86d42e59ea30d10ebdbb22d2cb7232"}, - {file = "coverage-7.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55f689f846661e3f26efa535071775d0483388a1ccfab899df72924805e9e7cd"}, - {file = "coverage-7.5.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50084d3516aa263791198913a17354bd1dc627d3c1639209640b9cac3fef5807"}, - {file = "coverage-7.5.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:341dd8f61c26337c37988345ca5c8ccabeff33093a26953a1ac72e7d0103c4fb"}, - {file = "coverage-7.5.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ab0b028165eea880af12f66086694768f2c3139b2c31ad5e032c8edbafca6ffc"}, - {file = "coverage-7.5.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5bc5a8c87714b0c67cfeb4c7caa82b2d71e8864d1a46aa990b5588fa953673b8"}, - {file = "coverage-7.5.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:38a3b98dae8a7c9057bd91fbf3415c05e700a5114c5f1b5b0ea5f8f429ba6614"}, - {file = "coverage-7.5.3-cp311-cp311-win32.whl", hash = "sha256:fcf7d1d6f5da887ca04302db8e0e0cf56ce9a5e05f202720e49b3e8157ddb9a9"}, - {file = "coverage-7.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:8c836309931839cca658a78a888dab9676b5c988d0dd34ca247f5f3e679f4e7a"}, - {file = "coverage-7.5.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:296a7d9bbc598e8744c00f7a6cecf1da9b30ae9ad51c566291ff1314e6cbbed8"}, - {file = "coverage-7.5.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:34d6d21d8795a97b14d503dcaf74226ae51eb1f2bd41015d3ef332a24d0a17b3"}, - {file = "coverage-7.5.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e317953bb4c074c06c798a11dbdd2cf9979dbcaa8ccc0fa4701d80042d4ebf1"}, - {file = "coverage-7.5.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:705f3d7c2b098c40f5b81790a5fedb274113373d4d1a69e65f8b68b0cc26f6db"}, - {file = "coverage-7.5.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1196e13c45e327d6cd0b6e471530a1882f1017eb83c6229fc613cd1a11b53cd"}, - {file = "coverage-7.5.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:015eddc5ccd5364dcb902eaecf9515636806fa1e0d5bef5769d06d0f31b54523"}, - {file = "coverage-7.5.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:fd27d8b49e574e50caa65196d908f80e4dff64d7e592d0c59788b45aad7e8b35"}, - {file = "coverage-7.5.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:33fc65740267222fc02975c061eb7167185fef4cc8f2770267ee8bf7d6a42f84"}, - {file = "coverage-7.5.3-cp312-cp312-win32.whl", hash = "sha256:7b2a19e13dfb5c8e145c7a6ea959485ee8e2204699903c88c7d25283584bfc08"}, - {file = "coverage-7.5.3-cp312-cp312-win_amd64.whl", hash = "sha256:0bbddc54bbacfc09b3edaec644d4ac90c08ee8ed4844b0f86227dcda2d428fcb"}, - {file = "coverage-7.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f5102a92855d518b0996eb197772f5ac2a527c0ec617124ad5242a3af5e25f85"}, - {file = "coverage-7.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d1da0a2e3b37b745a2b2a678a4c796462cf753aebf94edcc87dcc6b8641eae31"}, - {file = "coverage-7.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8383a6c8cefba1b7cecc0149415046b6fc38836295bc4c84e820872eb5478b3d"}, - {file = "coverage-7.5.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9aad68c3f2566dfae84bf46295a79e79d904e1c21ccfc66de88cd446f8686341"}, - {file = "coverage-7.5.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e079c9ec772fedbade9d7ebc36202a1d9ef7291bc9b3a024ca395c4d52853d7"}, - {file = "coverage-7.5.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bde997cac85fcac227b27d4fb2c7608a2c5f6558469b0eb704c5726ae49e1c52"}, - {file = "coverage-7.5.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:990fb20b32990b2ce2c5f974c3e738c9358b2735bc05075d50a6f36721b8f303"}, - {file = "coverage-7.5.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3d5a67f0da401e105753d474369ab034c7bae51a4c31c77d94030d59e41df5bd"}, - {file = "coverage-7.5.3-cp39-cp39-win32.whl", hash = "sha256:e08c470c2eb01977d221fd87495b44867a56d4d594f43739a8028f8646a51e0d"}, - {file = "coverage-7.5.3-cp39-cp39-win_amd64.whl", hash = "sha256:1d2a830ade66d3563bb61d1e3c77c8def97b30ed91e166c67d0632c018f380f0"}, - {file = "coverage-7.5.3-pp38.pp39.pp310-none-any.whl", hash = "sha256:3538d8fb1ee9bdd2e2692b3b18c22bb1c19ffbefd06880f5ac496e42d7bb3884"}, - {file = "coverage-7.5.3.tar.gz", hash = "sha256:04aefca5190d1dc7a53a4c1a5a7f8568811306d7a8ee231c42fb69215571944f"}, -] - -[[package]] -name = "coverage" -version = "7.5.3" -extras = ["toml"] -requires_python = ">=3.8" -summary = "Code coverage measurement for Python" -groups = ["test"] -dependencies = [ - "coverage==7.5.3", - "tomli; python_full_version <= \"3.11.0a6\"", -] -files = [ - {file = "coverage-7.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a6519d917abb15e12380406d721e37613e2a67d166f9fb7e5a8ce0375744cd45"}, - {file = "coverage-7.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aea7da970f1feccf48be7335f8b2ca64baf9b589d79e05b9397a06696ce1a1ec"}, - {file = "coverage-7.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:923b7b1c717bd0f0f92d862d1ff51d9b2b55dbbd133e05680204465f454bb286"}, - {file = "coverage-7.5.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62bda40da1e68898186f274f832ef3e759ce929da9a9fd9fcf265956de269dbc"}, - {file = "coverage-7.5.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8b7339180d00de83e930358223c617cc343dd08e1aa5ec7b06c3a121aec4e1d"}, - {file = "coverage-7.5.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:25a5caf742c6195e08002d3b6c2dd6947e50efc5fc2c2205f61ecb47592d2d83"}, - {file = "coverage-7.5.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:05ac5f60faa0c704c0f7e6a5cbfd6f02101ed05e0aee4d2822637a9e672c998d"}, - {file = "coverage-7.5.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:239a4e75e09c2b12ea478d28815acf83334d32e722e7433471fbf641c606344c"}, - {file = "coverage-7.5.3-cp310-cp310-win32.whl", hash = "sha256:a5812840d1d00eafae6585aba38021f90a705a25b8216ec7f66aebe5b619fb84"}, - {file = "coverage-7.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:33ca90a0eb29225f195e30684ba4a6db05dbef03c2ccd50b9077714c48153cac"}, - {file = "coverage-7.5.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f81bc26d609bf0fbc622c7122ba6307993c83c795d2d6f6f6fd8c000a770d974"}, - {file = "coverage-7.5.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7cec2af81f9e7569280822be68bd57e51b86d42e59ea30d10ebdbb22d2cb7232"}, - {file = "coverage-7.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55f689f846661e3f26efa535071775d0483388a1ccfab899df72924805e9e7cd"}, - {file = "coverage-7.5.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50084d3516aa263791198913a17354bd1dc627d3c1639209640b9cac3fef5807"}, - {file = "coverage-7.5.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:341dd8f61c26337c37988345ca5c8ccabeff33093a26953a1ac72e7d0103c4fb"}, - {file = "coverage-7.5.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ab0b028165eea880af12f66086694768f2c3139b2c31ad5e032c8edbafca6ffc"}, - {file = "coverage-7.5.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5bc5a8c87714b0c67cfeb4c7caa82b2d71e8864d1a46aa990b5588fa953673b8"}, - {file = "coverage-7.5.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:38a3b98dae8a7c9057bd91fbf3415c05e700a5114c5f1b5b0ea5f8f429ba6614"}, - {file = "coverage-7.5.3-cp311-cp311-win32.whl", hash = "sha256:fcf7d1d6f5da887ca04302db8e0e0cf56ce9a5e05f202720e49b3e8157ddb9a9"}, - {file = "coverage-7.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:8c836309931839cca658a78a888dab9676b5c988d0dd34ca247f5f3e679f4e7a"}, - {file = "coverage-7.5.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:296a7d9bbc598e8744c00f7a6cecf1da9b30ae9ad51c566291ff1314e6cbbed8"}, - {file = "coverage-7.5.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:34d6d21d8795a97b14d503dcaf74226ae51eb1f2bd41015d3ef332a24d0a17b3"}, - {file = "coverage-7.5.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e317953bb4c074c06c798a11dbdd2cf9979dbcaa8ccc0fa4701d80042d4ebf1"}, - {file = "coverage-7.5.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:705f3d7c2b098c40f5b81790a5fedb274113373d4d1a69e65f8b68b0cc26f6db"}, - {file = "coverage-7.5.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1196e13c45e327d6cd0b6e471530a1882f1017eb83c6229fc613cd1a11b53cd"}, - {file = "coverage-7.5.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:015eddc5ccd5364dcb902eaecf9515636806fa1e0d5bef5769d06d0f31b54523"}, - {file = "coverage-7.5.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:fd27d8b49e574e50caa65196d908f80e4dff64d7e592d0c59788b45aad7e8b35"}, - {file = "coverage-7.5.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:33fc65740267222fc02975c061eb7167185fef4cc8f2770267ee8bf7d6a42f84"}, - {file = "coverage-7.5.3-cp312-cp312-win32.whl", hash = "sha256:7b2a19e13dfb5c8e145c7a6ea959485ee8e2204699903c88c7d25283584bfc08"}, - {file = "coverage-7.5.3-cp312-cp312-win_amd64.whl", hash = "sha256:0bbddc54bbacfc09b3edaec644d4ac90c08ee8ed4844b0f86227dcda2d428fcb"}, - {file = "coverage-7.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f5102a92855d518b0996eb197772f5ac2a527c0ec617124ad5242a3af5e25f85"}, - {file = "coverage-7.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d1da0a2e3b37b745a2b2a678a4c796462cf753aebf94edcc87dcc6b8641eae31"}, - {file = "coverage-7.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8383a6c8cefba1b7cecc0149415046b6fc38836295bc4c84e820872eb5478b3d"}, - {file = "coverage-7.5.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9aad68c3f2566dfae84bf46295a79e79d904e1c21ccfc66de88cd446f8686341"}, - {file = "coverage-7.5.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e079c9ec772fedbade9d7ebc36202a1d9ef7291bc9b3a024ca395c4d52853d7"}, - {file = "coverage-7.5.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bde997cac85fcac227b27d4fb2c7608a2c5f6558469b0eb704c5726ae49e1c52"}, - {file = "coverage-7.5.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:990fb20b32990b2ce2c5f974c3e738c9358b2735bc05075d50a6f36721b8f303"}, - {file = "coverage-7.5.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3d5a67f0da401e105753d474369ab034c7bae51a4c31c77d94030d59e41df5bd"}, - {file = "coverage-7.5.3-cp39-cp39-win32.whl", hash = "sha256:e08c470c2eb01977d221fd87495b44867a56d4d594f43739a8028f8646a51e0d"}, - {file = "coverage-7.5.3-cp39-cp39-win_amd64.whl", hash = "sha256:1d2a830ade66d3563bb61d1e3c77c8def97b30ed91e166c67d0632c018f380f0"}, - {file = "coverage-7.5.3-pp38.pp39.pp310-none-any.whl", hash = "sha256:3538d8fb1ee9bdd2e2692b3b18c22bb1c19ffbefd06880f5ac496e42d7bb3884"}, - {file = "coverage-7.5.3.tar.gz", hash = "sha256:04aefca5190d1dc7a53a4c1a5a7f8568811306d7a8ee231c42fb69215571944f"}, -] - -[[package]] -name = "dynaconf" -version = "3.2.5" -requires_python = ">=3.8" -summary = "The dynamic configurator for your Python Project" -groups = ["default"] -files = [ - {file = "dynaconf-3.2.5-py2.py3-none-any.whl", hash = "sha256:12202fc26546851c05d4194c80bee00197e7c2febcb026e502b0863be9cbbdd8"}, - {file = "dynaconf-3.2.5.tar.gz", hash = "sha256:42c8d936b32332c4b84e4d4df6dd1626b6ef59c5a94eb60c10cd3c59d6b882f2"}, -] - -[[package]] -name = "exceptiongroup" -version = "1.2.1" -requires_python = ">=3.7" -summary = "Backport of PEP 654 (exception groups)" -groups = ["test"] -marker = "python_version < \"3.11\"" -files = [ - {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, - {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, -] - -[[package]] -name = "ghp-import" -version = "2.1.0" -summary = "Copy your docs directly to the gh-pages branch." -groups = ["docs"] -dependencies = [ - "python-dateutil>=2.8.1", -] -files = [ - {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"}, - {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"}, -] - -[[package]] -name = "git-changelog" -version = "2.5.2" -requires_python = ">=3.8" -summary = "Automatic Changelog generator using Jinja2 templates." -groups = ["maintain"] -dependencies = [ - "Jinja2>=2.10", - "appdirs>=1.4", - "packaging>=24.0", - "semver>=2.13", - "tomli>=2.0; python_version < \"3.11\"", -] -files = [ - {file = "git_changelog-2.5.2-py3-none-any.whl", hash = "sha256:82eca31bd80fbd85e6b252fece82fe450706a7796b92c9d2c7f17c5944fe9ca7"}, - {file = "git_changelog-2.5.2.tar.gz", hash = "sha256:b71a404a524dc0b14a34f92d306ae011a05c5fcf7c78ee5b484af50ac44ced65"}, -] - -[[package]] -name = "idna" -version = "3.7" -requires_python = ">=3.5" -summary = "Internationalized Domain Names in Applications (IDNA)" -groups = ["docs"] -files = [ - {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, - {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, -] - -[[package]] -name = "importlib-metadata" -version = "7.1.0" -requires_python = ">=3.8" -summary = "Read metadata from Python packages" -groups = ["docs"] -marker = "python_version < \"3.10\"" -dependencies = [ - "zipp>=0.5", -] -files = [ - {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"}, - {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"}, -] - -[[package]] -name = "iniconfig" -version = "2.0.0" -requires_python = ">=3.7" -summary = "brain-dead simple config-ini parsing" -groups = ["test"] -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "jinja2" -version = "3.1.4" -requires_python = ">=3.7" -summary = "A very fast and expressive template engine." -groups = ["docs", "maintain"] -dependencies = [ - "MarkupSafe>=2.0", -] -files = [ - {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, - {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, -] - -[[package]] -name = "markdown" -version = "3.6" -requires_python = ">=3.8" -summary = "Python implementation of John Gruber's Markdown." -groups = ["docs"] -dependencies = [ - "importlib-metadata>=4.4; python_version < \"3.10\"", -] -files = [ - {file = "Markdown-3.6-py3-none-any.whl", hash = "sha256:48f276f4d8cfb8ce6527c8f79e2ee29708508bf4d40aa410fbc3b4ee832c850f"}, - {file = "Markdown-3.6.tar.gz", hash = "sha256:ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224"}, -] - -[[package]] -name = "markupsafe" -version = "2.1.5" -requires_python = ">=3.7" -summary = "Safely add untrusted strings to HTML/XML markup." -groups = ["docs", "maintain"] -files = [ - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, - {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, -] - -[[package]] -name = "mergedeep" -version = "1.3.4" -requires_python = ">=3.6" -summary = "A deep merge function for 🐍." -groups = ["docs"] -files = [ - {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, - {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, -] - -[[package]] -name = "mkdocs" -version = "1.6.0" -requires_python = ">=3.8" -summary = "Project documentation with Markdown." -groups = ["docs"] -dependencies = [ - "click>=7.0", - "colorama>=0.4; platform_system == \"Windows\"", - "ghp-import>=1.0", - "importlib-metadata>=4.4; python_version < \"3.10\"", - "jinja2>=2.11.1", - "markdown>=3.3.6", - "markupsafe>=2.0.1", - "mergedeep>=1.3.4", - "mkdocs-get-deps>=0.2.0", - "packaging>=20.5", - "pathspec>=0.11.1", - "pyyaml-env-tag>=0.1", - "pyyaml>=5.1", - "watchdog>=2.0", -] -files = [ - {file = "mkdocs-1.6.0-py3-none-any.whl", hash = "sha256:1eb5cb7676b7d89323e62b56235010216319217d4af5ddc543a91beb8d125ea7"}, - {file = "mkdocs-1.6.0.tar.gz", hash = "sha256:a73f735824ef83a4f3bcb7a231dcab23f5a838f88b7efc54a0eef5fbdbc3c512"}, -] - -[[package]] -name = "mkdocs-get-deps" -version = "0.2.0" -requires_python = ">=3.8" -summary = "MkDocs extension that lists all dependencies according to a mkdocs.yml file" -groups = ["docs"] -dependencies = [ - "importlib-metadata>=4.3; python_version < \"3.10\"", - "mergedeep>=1.3.4", - "platformdirs>=2.2.0", - "pyyaml>=5.1", -] -files = [ - {file = "mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134"}, - {file = "mkdocs_get_deps-0.2.0.tar.gz", hash = "sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c"}, -] - -[[package]] -name = "mkdocs-material" -version = "9.5.27" -requires_python = ">=3.8" -summary = "Documentation that simply works" -groups = ["docs"] -dependencies = [ - "babel~=2.10", - "colorama~=0.4", - "jinja2~=3.0", - "markdown~=3.2", - "mkdocs-material-extensions~=1.3", - "mkdocs~=1.6", - "paginate~=0.5", - "pygments~=2.16", - "pymdown-extensions~=10.2", - "regex>=2022.4", - "requests~=2.26", -] -files = [ - {file = "mkdocs_material-9.5.27-py3-none-any.whl", hash = "sha256:af8cc263fafa98bb79e9e15a8c966204abf15164987569bd1175fd66a7705182"}, - {file = "mkdocs_material-9.5.27.tar.gz", hash = "sha256:a7d4a35f6d4a62b0c43a0cfe7e987da0980c13587b5bc3c26e690ad494427ec0"}, -] - -[[package]] -name = "mkdocs-material-extensions" -version = "1.3.1" -requires_python = ">=3.8" -summary = "Extension pack for Python Markdown and MkDocs Material." -groups = ["docs"] -files = [ - {file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"}, - {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, -] - -[[package]] -name = "packaging" -version = "24.1" -requires_python = ">=3.8" -summary = "Core utilities for Python packages" -groups = ["docs", "maintain", "test"] -files = [ - {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, - {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, -] - -[[package]] -name = "paginate" -version = "0.5.6" -summary = "Divides large result sets into pages for easier browsing" -groups = ["docs"] -files = [ - {file = "paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d"}, -] - -[[package]] -name = "pathspec" -version = "0.12.1" -requires_python = ">=3.8" -summary = "Utility library for gitignore style pattern matching of file paths." -groups = ["docs"] -files = [ - {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, - {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, -] - -[[package]] -name = "platformdirs" -version = "4.2.2" -requires_python = ">=3.8" -summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." -groups = ["docs"] -files = [ - {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, - {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, -] - -[[package]] -name = "pluggy" -version = "1.5.0" -requires_python = ">=3.8" -summary = "plugin and hook calling mechanisms for python" -groups = ["test"] -files = [ - {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, - {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, -] - -[[package]] -name = "pydantic" -version = "2.7.4" -requires_python = ">=3.8" -summary = "Data validation using Python type hints" -groups = ["default"] -dependencies = [ - "annotated-types>=0.4.0", - "pydantic-core==2.18.4", - "typing-extensions>=4.6.1", -] -files = [ - {file = "pydantic-2.7.4-py3-none-any.whl", hash = "sha256:ee8538d41ccb9c0a9ad3e0e5f07bf15ed8015b481ced539a1759d8cc89ae90d0"}, - {file = "pydantic-2.7.4.tar.gz", hash = "sha256:0c84efd9548d545f63ac0060c1e4d39bb9b14db8b3c0652338aecc07b5adec52"}, -] - -[[package]] -name = "pydantic-core" -version = "2.18.4" -requires_python = ">=3.8" -summary = "Core functionality for Pydantic validation and serialization" -groups = ["default"] -dependencies = [ - "typing-extensions!=4.7.0,>=4.6.0", -] -files = [ - {file = "pydantic_core-2.18.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:f76d0ad001edd426b92233d45c746fd08f467d56100fd8f30e9ace4b005266e4"}, - {file = "pydantic_core-2.18.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:59ff3e89f4eaf14050c8022011862df275b552caef8082e37b542b066ce1ff26"}, - {file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a55b5b16c839df1070bc113c1f7f94a0af4433fcfa1b41799ce7606e5c79ce0a"}, - {file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4d0dcc59664fcb8974b356fe0a18a672d6d7cf9f54746c05f43275fc48636851"}, - {file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8951eee36c57cd128f779e641e21eb40bc5073eb28b2d23f33eb0ef14ffb3f5d"}, - {file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4701b19f7e3a06ea655513f7938de6f108123bf7c86bbebb1196eb9bd35cf724"}, - {file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e00a3f196329e08e43d99b79b286d60ce46bed10f2280d25a1718399457e06be"}, - {file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:97736815b9cc893b2b7f663628e63f436018b75f44854c8027040e05230eeddb"}, - {file = "pydantic_core-2.18.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6891a2ae0e8692679c07728819b6e2b822fb30ca7445f67bbf6509b25a96332c"}, - {file = "pydantic_core-2.18.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bc4ff9805858bd54d1a20efff925ccd89c9d2e7cf4986144b30802bf78091c3e"}, - {file = "pydantic_core-2.18.4-cp310-none-win32.whl", hash = "sha256:1b4de2e51bbcb61fdebd0ab86ef28062704f62c82bbf4addc4e37fa4b00b7cbc"}, - {file = "pydantic_core-2.18.4-cp310-none-win_amd64.whl", hash = "sha256:6a750aec7bf431517a9fd78cb93c97b9b0c496090fee84a47a0d23668976b4b0"}, - {file = "pydantic_core-2.18.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:942ba11e7dfb66dc70f9ae66b33452f51ac7bb90676da39a7345e99ffb55402d"}, - {file = "pydantic_core-2.18.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b2ebef0e0b4454320274f5e83a41844c63438fdc874ea40a8b5b4ecb7693f1c4"}, - {file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a642295cd0c8df1b86fc3dced1d067874c353a188dc8e0f744626d49e9aa51c4"}, - {file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f09baa656c904807e832cf9cce799c6460c450c4ad80803517032da0cd062e2"}, - {file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98906207f29bc2c459ff64fa007afd10a8c8ac080f7e4d5beff4c97086a3dabd"}, - {file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19894b95aacfa98e7cb093cd7881a0c76f55731efad31073db4521e2b6ff5b7d"}, - {file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fbbdc827fe5e42e4d196c746b890b3d72876bdbf160b0eafe9f0334525119c8"}, - {file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f85d05aa0918283cf29a30b547b4df2fbb56b45b135f9e35b6807cb28bc47951"}, - {file = "pydantic_core-2.18.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e85637bc8fe81ddb73fda9e56bab24560bdddfa98aa64f87aaa4e4b6730c23d2"}, - {file = "pydantic_core-2.18.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2f5966897e5461f818e136b8451d0551a2e77259eb0f73a837027b47dc95dab9"}, - {file = "pydantic_core-2.18.4-cp311-none-win32.whl", hash = "sha256:44c7486a4228413c317952e9d89598bcdfb06399735e49e0f8df643e1ccd0558"}, - {file = "pydantic_core-2.18.4-cp311-none-win_amd64.whl", hash = "sha256:8a7164fe2005d03c64fd3b85649891cd4953a8de53107940bf272500ba8a788b"}, - {file = "pydantic_core-2.18.4-cp311-none-win_arm64.whl", hash = "sha256:4e99bc050fe65c450344421017f98298a97cefc18c53bb2f7b3531eb39bc7805"}, - {file = "pydantic_core-2.18.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:6f5c4d41b2771c730ea1c34e458e781b18cc668d194958e0112455fff4e402b2"}, - {file = "pydantic_core-2.18.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2fdf2156aa3d017fddf8aea5adfba9f777db1d6022d392b682d2a8329e087cef"}, - {file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4748321b5078216070b151d5271ef3e7cc905ab170bbfd27d5c83ee3ec436695"}, - {file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:847a35c4d58721c5dc3dba599878ebbdfd96784f3fb8bb2c356e123bdcd73f34"}, - {file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c40d4eaad41f78e3bbda31b89edc46a3f3dc6e171bf0ecf097ff7a0ffff7cb1"}, - {file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:21a5e440dbe315ab9825fcd459b8814bb92b27c974cbc23c3e8baa2b76890077"}, - {file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01dd777215e2aa86dfd664daed5957704b769e726626393438f9c87690ce78c3"}, - {file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4b06beb3b3f1479d32befd1f3079cc47b34fa2da62457cdf6c963393340b56e9"}, - {file = "pydantic_core-2.18.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:564d7922e4b13a16b98772441879fcdcbe82ff50daa622d681dd682175ea918c"}, - {file = "pydantic_core-2.18.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0eb2a4f660fcd8e2b1c90ad566db2b98d7f3f4717c64fe0a83e0adb39766d5b8"}, - {file = "pydantic_core-2.18.4-cp312-none-win32.whl", hash = "sha256:8b8bab4c97248095ae0c4455b5a1cd1cdd96e4e4769306ab19dda135ea4cdb07"}, - {file = "pydantic_core-2.18.4-cp312-none-win_amd64.whl", hash = "sha256:14601cdb733d741b8958224030e2bfe21a4a881fb3dd6fbb21f071cabd48fa0a"}, - {file = "pydantic_core-2.18.4-cp312-none-win_arm64.whl", hash = "sha256:c1322d7dd74713dcc157a2b7898a564ab091ca6c58302d5c7b4c07296e3fd00f"}, - {file = "pydantic_core-2.18.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:44a688331d4a4e2129140a8118479443bd6f1905231138971372fcde37e43528"}, - {file = "pydantic_core-2.18.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a2fdd81edd64342c85ac7cf2753ccae0b79bf2dfa063785503cb85a7d3593223"}, - {file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86110d7e1907ab36691f80b33eb2da87d780f4739ae773e5fc83fb272f88825f"}, - {file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:46387e38bd641b3ee5ce247563b60c5ca098da9c56c75c157a05eaa0933ed154"}, - {file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:123c3cec203e3f5ac7b000bd82235f1a3eced8665b63d18be751f115588fea30"}, - {file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dc1803ac5c32ec324c5261c7209e8f8ce88e83254c4e1aebdc8b0a39f9ddb443"}, - {file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53db086f9f6ab2b4061958d9c276d1dbe3690e8dd727d6abf2321d6cce37fa94"}, - {file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:abc267fa9837245cc28ea6929f19fa335f3dc330a35d2e45509b6566dc18be23"}, - {file = "pydantic_core-2.18.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a0d829524aaefdebccb869eed855e2d04c21d2d7479b6cada7ace5448416597b"}, - {file = "pydantic_core-2.18.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:509daade3b8649f80d4e5ff21aa5673e4ebe58590b25fe42fac5f0f52c6f034a"}, - {file = "pydantic_core-2.18.4-cp39-none-win32.whl", hash = "sha256:ca26a1e73c48cfc54c4a76ff78df3727b9d9f4ccc8dbee4ae3f73306a591676d"}, - {file = "pydantic_core-2.18.4-cp39-none-win_amd64.whl", hash = "sha256:c67598100338d5d985db1b3d21f3619ef392e185e71b8d52bceacc4a7771ea7e"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:574d92eac874f7f4db0ca653514d823a0d22e2354359d0759e3f6a406db5d55d"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1f4d26ceb5eb9eed4af91bebeae4b06c3fb28966ca3a8fb765208cf6b51102ab"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77450e6d20016ec41f43ca4a6c63e9fdde03f0ae3fe90e7c27bdbeaece8b1ed4"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d323a01da91851a4f17bf592faf46149c9169d68430b3146dcba2bb5e5719abc"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43d447dd2ae072a0065389092a231283f62d960030ecd27565672bd40746c507"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:578e24f761f3b425834f297b9935e1ce2e30f51400964ce4801002435a1b41ef"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:81b5efb2f126454586d0f40c4d834010979cb80785173d1586df845a632e4e6d"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ab86ce7c8f9bea87b9d12c7f0af71102acbf5ecbc66c17796cff45dae54ef9a5"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:90afc12421df2b1b4dcc975f814e21bc1754640d502a2fbcc6d41e77af5ec312"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:51991a89639a912c17bef4b45c87bd83593aee0437d8102556af4885811d59f5"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:293afe532740370aba8c060882f7d26cfd00c94cae32fd2e212a3a6e3b7bc15e"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b48ece5bde2e768197a2d0f6e925f9d7e3e826f0ad2271120f8144a9db18d5c8"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:eae237477a873ab46e8dd748e515c72c0c804fb380fbe6c85533c7de51f23a8f"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:834b5230b5dfc0c1ec37b2fda433b271cbbc0e507560b5d1588e2cc1148cf1ce"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e858ac0a25074ba4bce653f9b5d0a85b7456eaddadc0ce82d3878c22489fa4ee"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2fd41f6eff4c20778d717af1cc50eca52f5afe7805ee530a4fbd0bae284f16e9"}, - {file = "pydantic_core-2.18.4.tar.gz", hash = "sha256:ec3beeada09ff865c344ff3bc2f427f5e6c26401cc6113d77e372c3fdac73864"}, -] - -[[package]] -name = "pygments" -version = "2.18.0" -requires_python = ">=3.8" -summary = "Pygments is a syntax highlighting package written in Python." -groups = ["docs"] -files = [ - {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, - {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, -] - -[[package]] -name = "pymdown-extensions" -version = "10.8.1" -requires_python = ">=3.8" -summary = "Extension pack for Python Markdown." -groups = ["docs"] -dependencies = [ - "markdown>=3.6", - "pyyaml", -] -files = [ - {file = "pymdown_extensions-10.8.1-py3-none-any.whl", hash = "sha256:f938326115884f48c6059c67377c46cf631c733ef3629b6eed1349989d1b30cb"}, - {file = "pymdown_extensions-10.8.1.tar.gz", hash = "sha256:3ab1db5c9e21728dabf75192d71471f8e50f216627e9a1fa9535ecb0231b9940"}, -] - -[[package]] -name = "pytest" -version = "8.2.2" -requires_python = ">=3.8" -summary = "pytest: simple powerful testing with Python" -groups = ["test"] -dependencies = [ - "colorama; sys_platform == \"win32\"", - "exceptiongroup>=1.0.0rc8; python_version < \"3.11\"", - "iniconfig", - "packaging", - "pluggy<2.0,>=1.5", - "tomli>=1; python_version < \"3.11\"", -] -files = [ - {file = "pytest-8.2.2-py3-none-any.whl", hash = "sha256:c434598117762e2bd304e526244f67bf66bbd7b5d6cf22138be51ff661980343"}, - {file = "pytest-8.2.2.tar.gz", hash = "sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977"}, -] - -[[package]] -name = "pytest-cov" -version = "5.0.0" -requires_python = ">=3.8" -summary = "Pytest plugin for measuring coverage." -groups = ["test"] -dependencies = [ - "coverage[toml]>=5.2.1", - "pytest>=4.6", -] -files = [ - {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, - {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, -] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -summary = "Extensions to the standard Python datetime module" -groups = ["docs"] -dependencies = [ - "six>=1.5", -] -files = [ - {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, - {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.1" -requires_python = ">=3.6" -summary = "YAML parser and emitter for Python" -groups = ["docs"] -files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, - {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, - {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, - {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, - {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, - {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, -] - -[[package]] -name = "pyyaml-env-tag" -version = "0.1" -requires_python = ">=3.6" -summary = "A custom YAML tag for referencing environment variables in YAML files. " -groups = ["docs"] -dependencies = [ - "pyyaml", -] -files = [ - {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, - {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, -] - -[[package]] -name = "regex" -version = "2024.5.15" -requires_python = ">=3.8" -summary = "Alternative regular expression module, to replace re." -groups = ["docs"] -files = [ - {file = "regex-2024.5.15-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a81e3cfbae20378d75185171587cbf756015ccb14840702944f014e0d93ea09f"}, - {file = "regex-2024.5.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7b59138b219ffa8979013be7bc85bb60c6f7b7575df3d56dc1e403a438c7a3f6"}, - {file = "regex-2024.5.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0bd000c6e266927cb7a1bc39d55be95c4b4f65c5be53e659537537e019232b1"}, - {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eaa7ddaf517aa095fa8da0b5015c44d03da83f5bd49c87961e3c997daed0de7"}, - {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba68168daedb2c0bab7fd7e00ced5ba90aebf91024dea3c88ad5063c2a562cca"}, - {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6e8d717bca3a6e2064fc3a08df5cbe366369f4b052dcd21b7416e6d71620dca1"}, - {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1337b7dbef9b2f71121cdbf1e97e40de33ff114801263b275aafd75303bd62b5"}, - {file = "regex-2024.5.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9ebd0a36102fcad2f03696e8af4ae682793a5d30b46c647eaf280d6cfb32796"}, - {file = "regex-2024.5.15-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9efa1a32ad3a3ea112224897cdaeb6aa00381627f567179c0314f7b65d354c62"}, - {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1595f2d10dff3d805e054ebdc41c124753631b6a471b976963c7b28543cf13b0"}, - {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b802512f3e1f480f41ab5f2cfc0e2f761f08a1f41092d6718868082fc0d27143"}, - {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a0981022dccabca811e8171f913de05720590c915b033b7e601f35ce4ea7019f"}, - {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:19068a6a79cf99a19ccefa44610491e9ca02c2be3305c7760d3831d38a467a6f"}, - {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1b5269484f6126eee5e687785e83c6b60aad7663dafe842b34691157e5083e53"}, - {file = "regex-2024.5.15-cp310-cp310-win32.whl", hash = "sha256:ada150c5adfa8fbcbf321c30c751dc67d2f12f15bd183ffe4ec7cde351d945b3"}, - {file = "regex-2024.5.15-cp310-cp310-win_amd64.whl", hash = "sha256:ac394ff680fc46b97487941f5e6ae49a9f30ea41c6c6804832063f14b2a5a145"}, - {file = "regex-2024.5.15-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f5b1dff3ad008dccf18e652283f5e5339d70bf8ba7c98bf848ac33db10f7bc7a"}, - {file = "regex-2024.5.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c6a2b494a76983df8e3d3feea9b9ffdd558b247e60b92f877f93a1ff43d26656"}, - {file = "regex-2024.5.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a32b96f15c8ab2e7d27655969a23895eb799de3665fa94349f3b2fbfd547236f"}, - {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10002e86e6068d9e1c91eae8295ef690f02f913c57db120b58fdd35a6bb1af35"}, - {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec54d5afa89c19c6dd8541a133be51ee1017a38b412b1321ccb8d6ddbeb4cf7d"}, - {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10e4ce0dca9ae7a66e6089bb29355d4432caed736acae36fef0fdd7879f0b0cb"}, - {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e507ff1e74373c4d3038195fdd2af30d297b4f0950eeda6f515ae3d84a1770f"}, - {file = "regex-2024.5.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1f059a4d795e646e1c37665b9d06062c62d0e8cc3c511fe01315973a6542e40"}, - {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0721931ad5fe0dda45d07f9820b90b2148ccdd8e45bb9e9b42a146cb4f695649"}, - {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:833616ddc75ad595dee848ad984d067f2f31be645d603e4d158bba656bbf516c"}, - {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:287eb7f54fc81546346207c533ad3c2c51a8d61075127d7f6d79aaf96cdee890"}, - {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:19dfb1c504781a136a80ecd1fff9f16dddf5bb43cec6871778c8a907a085bb3d"}, - {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:119af6e56dce35e8dfb5222573b50c89e5508d94d55713c75126b753f834de68"}, - {file = "regex-2024.5.15-cp311-cp311-win32.whl", hash = "sha256:1c1c174d6ec38d6c8a7504087358ce9213d4332f6293a94fbf5249992ba54efa"}, - {file = "regex-2024.5.15-cp311-cp311-win_amd64.whl", hash = "sha256:9e717956dcfd656f5055cc70996ee2cc82ac5149517fc8e1b60261b907740201"}, - {file = "regex-2024.5.15-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:632b01153e5248c134007209b5c6348a544ce96c46005d8456de1d552455b014"}, - {file = "regex-2024.5.15-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e64198f6b856d48192bf921421fdd8ad8eb35e179086e99e99f711957ffedd6e"}, - {file = "regex-2024.5.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68811ab14087b2f6e0fc0c2bae9ad689ea3584cad6917fc57be6a48bbd012c49"}, - {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8ec0c2fea1e886a19c3bee0cd19d862b3aa75dcdfb42ebe8ed30708df64687a"}, - {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0c0c0003c10f54a591d220997dd27d953cd9ccc1a7294b40a4be5312be8797b"}, - {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2431b9e263af1953c55abbd3e2efca67ca80a3de8a0437cb58e2421f8184717a"}, - {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a605586358893b483976cffc1723fb0f83e526e8f14c6e6614e75919d9862cf"}, - {file = "regex-2024.5.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:391d7f7f1e409d192dba8bcd42d3e4cf9e598f3979cdaed6ab11288da88cb9f2"}, - {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9ff11639a8d98969c863d4617595eb5425fd12f7c5ef6621a4b74b71ed8726d5"}, - {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4eee78a04e6c67e8391edd4dad3279828dd66ac4b79570ec998e2155d2e59fd5"}, - {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8fe45aa3f4aa57faabbc9cb46a93363edd6197cbc43523daea044e9ff2fea83e"}, - {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d0a3d8d6acf0c78a1fff0e210d224b821081330b8524e3e2bc5a68ef6ab5803d"}, - {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c486b4106066d502495b3025a0a7251bf37ea9540433940a23419461ab9f2a80"}, - {file = "regex-2024.5.15-cp312-cp312-win32.whl", hash = "sha256:c49e15eac7c149f3670b3e27f1f28a2c1ddeccd3a2812cba953e01be2ab9b5fe"}, - {file = "regex-2024.5.15-cp312-cp312-win_amd64.whl", hash = "sha256:673b5a6da4557b975c6c90198588181029c60793835ce02f497ea817ff647cb2"}, - {file = "regex-2024.5.15-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:13cdaf31bed30a1e1c2453ef6015aa0983e1366fad2667657dbcac7b02f67133"}, - {file = "regex-2024.5.15-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cac27dcaa821ca271855a32188aa61d12decb6fe45ffe3e722401fe61e323cd1"}, - {file = "regex-2024.5.15-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7dbe2467273b875ea2de38ded4eba86cbcbc9a1a6d0aa11dcf7bd2e67859c435"}, - {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64f18a9a3513a99c4bef0e3efd4c4a5b11228b48aa80743be822b71e132ae4f5"}, - {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d347a741ea871c2e278fde6c48f85136c96b8659b632fb57a7d1ce1872547600"}, - {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1878b8301ed011704aea4c806a3cadbd76f84dece1ec09cc9e4dc934cfa5d4da"}, - {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4babf07ad476aaf7830d77000874d7611704a7fcf68c9c2ad151f5d94ae4bfc4"}, - {file = "regex-2024.5.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35cb514e137cb3488bce23352af3e12fb0dbedd1ee6e60da053c69fb1b29cc6c"}, - {file = "regex-2024.5.15-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cdd09d47c0b2efee9378679f8510ee6955d329424c659ab3c5e3a6edea696294"}, - {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:72d7a99cd6b8f958e85fc6ca5b37c4303294954eac1376535b03c2a43eb72629"}, - {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a094801d379ab20c2135529948cb84d417a2169b9bdceda2a36f5f10977ebc16"}, - {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c0c18345010870e58238790a6779a1219b4d97bd2e77e1140e8ee5d14df071aa"}, - {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:16093f563098448ff6b1fa68170e4acbef94e6b6a4e25e10eae8598bb1694b5d"}, - {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e38a7d4e8f633a33b4c7350fbd8bad3b70bf81439ac67ac38916c4a86b465456"}, - {file = "regex-2024.5.15-cp39-cp39-win32.whl", hash = "sha256:71a455a3c584a88f654b64feccc1e25876066c4f5ef26cd6dd711308aa538694"}, - {file = "regex-2024.5.15-cp39-cp39-win_amd64.whl", hash = "sha256:cab12877a9bdafde5500206d1020a584355a97884dfd388af3699e9137bf7388"}, - {file = "regex-2024.5.15.tar.gz", hash = "sha256:d3ee02d9e5f482cc8309134a91eeaacbdd2261ba111b0fef3748eeb4913e6a2c"}, -] - -[[package]] -name = "requests" -version = "2.32.3" -requires_python = ">=3.8" -summary = "Python HTTP for Humans." -groups = ["docs"] -dependencies = [ - "certifi>=2017.4.17", - "charset-normalizer<4,>=2", - "idna<4,>=2.5", - "urllib3<3,>=1.21.1", -] -files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, -] - -[[package]] -name = "ruff" -version = "0.4.9" -requires_python = ">=3.7" -summary = "An extremely fast Python linter and code formatter, written in Rust." -groups = ["lint"] -files = [ - {file = "ruff-0.4.9-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b262ed08d036ebe162123170b35703aaf9daffecb698cd367a8d585157732991"}, - {file = "ruff-0.4.9-py3-none-macosx_11_0_arm64.whl", hash = "sha256:98ec2775fd2d856dc405635e5ee4ff177920f2141b8e2d9eb5bd6efd50e80317"}, - {file = "ruff-0.4.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4555056049d46d8a381f746680db1c46e67ac3b00d714606304077682832998e"}, - {file = "ruff-0.4.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e91175fbe48f8a2174c9aad70438fe9cb0a5732c4159b2a10a3565fea2d94cde"}, - {file = "ruff-0.4.9-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e8e7b95673f22e0efd3571fb5b0cf71a5eaaa3cc8a776584f3b2cc878e46bff"}, - {file = "ruff-0.4.9-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:2d45ddc6d82e1190ea737341326ecbc9a61447ba331b0a8962869fcada758505"}, - {file = "ruff-0.4.9-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:78de3fdb95c4af084087628132336772b1c5044f6e710739d440fc0bccf4d321"}, - {file = "ruff-0.4.9-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:06b60f91bfa5514bb689b500a25ba48e897d18fea14dce14b48a0c40d1635893"}, - {file = "ruff-0.4.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88bffe9c6a454bf8529f9ab9091c99490578a593cc9f9822b7fc065ee0712a06"}, - {file = "ruff-0.4.9-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:673bddb893f21ab47a8334c8e0ea7fd6598ecc8e698da75bcd12a7b9d0a3206e"}, - {file = "ruff-0.4.9-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8c1aff58c31948cc66d0b22951aa19edb5af0a3af40c936340cd32a8b1ab7438"}, - {file = "ruff-0.4.9-py3-none-musllinux_1_2_i686.whl", hash = "sha256:784d3ec9bd6493c3b720a0b76f741e6c2d7d44f6b2be87f5eef1ae8cc1d54c84"}, - {file = "ruff-0.4.9-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:732dd550bfa5d85af8c3c6cbc47ba5b67c6aed8a89e2f011b908fc88f87649db"}, - {file = "ruff-0.4.9-py3-none-win32.whl", hash = "sha256:8064590fd1a50dcf4909c268b0e7c2498253273309ad3d97e4a752bb9df4f521"}, - {file = "ruff-0.4.9-py3-none-win_amd64.whl", hash = "sha256:e0a22c4157e53d006530c902107c7f550b9233e9706313ab57b892d7197d8e52"}, - {file = "ruff-0.4.9-py3-none-win_arm64.whl", hash = "sha256:5d5460f789ccf4efd43f265a58538a2c24dbce15dbf560676e430375f20a8198"}, - {file = "ruff-0.4.9.tar.gz", hash = "sha256:f1cb0828ac9533ba0135d148d214e284711ede33640465e706772645483427e3"}, -] - -[[package]] -name = "semver" -version = "3.0.2" -requires_python = ">=3.7" -summary = "Python helper for Semantic Versioning (https://semver.org)" -groups = ["maintain"] -files = [ - {file = "semver-3.0.2-py3-none-any.whl", hash = "sha256:b1ea4686fe70b981f85359eda33199d60c53964284e0cfb4977d243e37cf4bf4"}, - {file = "semver-3.0.2.tar.gz", hash = "sha256:6253adb39c70f6e51afed2fa7152bcd414c411286088fb4b9effb133885ab4cc"}, -] - -[[package]] -name = "six" -version = "1.16.0" -requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -summary = "Python 2 and 3 compatibility utilities" -groups = ["docs"] -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "tomli" -version = "2.0.1" -requires_python = ">=3.7" -summary = "A lil' TOML parser" -groups = ["maintain", "test"] -marker = "python_version < \"3.11\"" -files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] - -[[package]] -name = "typing-extensions" -version = "4.12.2" -requires_python = ">=3.8" -summary = "Backported and Experimental Type Hints for Python 3.8+" -groups = ["default"] -files = [ - {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, - {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, -] - -[[package]] -name = "urllib3" -version = "2.2.2" -requires_python = ">=3.8" -summary = "HTTP library with thread-safe connection pooling, file post, and more." -groups = ["docs"] -files = [ - {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, - {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, -] - -[[package]] -name = "watchdog" -version = "4.0.1" -requires_python = ">=3.8" -summary = "Filesystem events monitoring" -groups = ["docs"] -files = [ - {file = "watchdog-4.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:da2dfdaa8006eb6a71051795856bedd97e5b03e57da96f98e375682c48850645"}, - {file = "watchdog-4.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e93f451f2dfa433d97765ca2634628b789b49ba8b504fdde5837cdcf25fdb53b"}, - {file = "watchdog-4.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ef0107bbb6a55f5be727cfc2ef945d5676b97bffb8425650dadbb184be9f9a2b"}, - {file = "watchdog-4.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:17e32f147d8bf9657e0922c0940bcde863b894cd871dbb694beb6704cfbd2fb5"}, - {file = "watchdog-4.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:03e70d2df2258fb6cb0e95bbdbe06c16e608af94a3ffbd2b90c3f1e83eb10767"}, - {file = "watchdog-4.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:123587af84260c991dc5f62a6e7ef3d1c57dfddc99faacee508c71d287248459"}, - {file = "watchdog-4.0.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:093b23e6906a8b97051191a4a0c73a77ecc958121d42346274c6af6520dec175"}, - {file = "watchdog-4.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:611be3904f9843f0529c35a3ff3fd617449463cb4b73b1633950b3d97fa4bfb7"}, - {file = "watchdog-4.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:62c613ad689ddcb11707f030e722fa929f322ef7e4f18f5335d2b73c61a85c28"}, - {file = "watchdog-4.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c9904904b6564d4ee8a1ed820db76185a3c96e05560c776c79a6ce5ab71888ba"}, - {file = "watchdog-4.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:667f3c579e813fcbad1b784db7a1aaa96524bed53437e119f6a2f5de4db04235"}, - {file = "watchdog-4.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d10a681c9a1d5a77e75c48a3b8e1a9f2ae2928eda463e8d33660437705659682"}, - {file = "watchdog-4.0.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0144c0ea9997b92615af1d94afc0c217e07ce2c14912c7b1a5731776329fcfc7"}, - {file = "watchdog-4.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:998d2be6976a0ee3a81fb8e2777900c28641fb5bfbd0c84717d89bca0addcdc5"}, - {file = "watchdog-4.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e7921319fe4430b11278d924ef66d4daa469fafb1da679a2e48c935fa27af193"}, - {file = "watchdog-4.0.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:f0de0f284248ab40188f23380b03b59126d1479cd59940f2a34f8852db710625"}, - {file = "watchdog-4.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bca36be5707e81b9e6ce3208d92d95540d4ca244c006b61511753583c81c70dd"}, - {file = "watchdog-4.0.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ab998f567ebdf6b1da7dc1e5accfaa7c6992244629c0fdaef062f43249bd8dee"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:dddba7ca1c807045323b6af4ff80f5ddc4d654c8bce8317dde1bd96b128ed253"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_armv7l.whl", hash = "sha256:4513ec234c68b14d4161440e07f995f231be21a09329051e67a2118a7a612d2d"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_i686.whl", hash = "sha256:4107ac5ab936a63952dea2a46a734a23230aa2f6f9db1291bf171dac3ebd53c6"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_ppc64.whl", hash = "sha256:6e8c70d2cd745daec2a08734d9f63092b793ad97612470a0ee4cbb8f5f705c57"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:f27279d060e2ab24c0aa98363ff906d2386aa6c4dc2f1a374655d4e02a6c5e5e"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_s390x.whl", hash = "sha256:f8affdf3c0f0466e69f5b3917cdd042f89c8c63aebdb9f7c078996f607cdb0f5"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:ac7041b385f04c047fcc2951dc001671dee1b7e0615cde772e84b01fbf68ee84"}, - {file = "watchdog-4.0.1-py3-none-win32.whl", hash = "sha256:206afc3d964f9a233e6ad34618ec60b9837d0582b500b63687e34011e15bb429"}, - {file = "watchdog-4.0.1-py3-none-win_amd64.whl", hash = "sha256:7577b3c43e5909623149f76b099ac49a1a01ca4e167d1785c76eb52fa585745a"}, - {file = "watchdog-4.0.1-py3-none-win_ia64.whl", hash = "sha256:d7b9f5f3299e8dd230880b6c55504a1f69cf1e4316275d1b215ebdd8187ec88d"}, - {file = "watchdog-4.0.1.tar.gz", hash = "sha256:eebaacf674fa25511e8867028d281e602ee6500045b57f43b08778082f7f8b44"}, -] - -[[package]] -name = "zipp" -version = "3.19.2" -requires_python = ">=3.8" -summary = "Backport of pathlib-compatible object wrapper for zip files" -groups = ["docs"] -marker = "python_version < \"3.10\"" -files = [ - {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, - {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"}, -] diff --git a/template/.gitignore b/template/.gitignore new file mode 100644 index 0000000..ddf022c --- /dev/null +++ b/template/.gitignore @@ -0,0 +1,662 @@ +.coverage +.pytest_cache +.venv +*.pyc +# Packages +*.egg +!/tests/**/*.egg +/*.egg-info +/dist/* +build +_build +.cache +*.so + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox +.pytest_cache + +.DS_Store +.idea/* +.python-version +.vscode/* + +/test.py +/test_*.* + +/setup.cfg +MANIFEST.in +/setup.py +/docs/site/* +/tests/fixtures/simple_project/setup.py +/tests/fixtures/project_with_extras/setup.py +.mypy_cache + +.venv +/releases/* +pip-wheel-metadata +/poetry.toml + +poetry/core/* +.idea/ + +# Created by https://www.gitignore.io/api/osx,python,pycharm,windows,visualstudio,visualstudiocode +# Edit at https://www.gitignore.io/?templates=osx,python,pycharm,windows,visualstudio,visualstudiocode + +### OSX ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### PyCharm ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### PyCharm Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +.idea/**/sonarlint/ + +# SonarQube Plugin +.idea/**/sonarIssues.xml + +# Markdown Navigator plugin +.idea/**/markdown-navigator.xml +.idea/**/markdown-navigator/ + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# pyenv +.python-version + +# poetry +.venv + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# Mr Developer +.mr.developer.cfg +.project +.pydevproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# Plugins +.secrets.baseline + +### VisualStudioCode ### +.vscode/* +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +### VisualStudio ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# End of https://www.gitignore.io/api/osx,python,pycharm,windows,visualstudio,visualstudiocode diff --git a/template/README.md.jinja b/template/README.md.jinja new file mode 100644 index 0000000..573ecb6 --- /dev/null +++ b/template/README.md.jinja @@ -0,0 +1 @@ +# {{repo_name}} diff --git a/template/docs/advanced/.keepit b/template/docs/advanced/.keepit new file mode 100644 index 0000000..e69de29 diff --git a/template/docs/concepts/.keepit b/template/docs/concepts/.keepit new file mode 100644 index 0000000..e69de29 diff --git a/template/docs/contribute/index.md b/template/docs/contribute/index.md new file mode 100644 index 0000000..2d0186a --- /dev/null +++ b/template/docs/contribute/index.md @@ -0,0 +1,5 @@ +# How to Contribute + +- fork repo +- you can change if you feel necessary +- send pull request diff --git a/template/docs/index.md b/template/docs/index.md new file mode 100644 index 0000000..2061bac --- /dev/null +++ b/template/docs/index.md @@ -0,0 +1,2 @@ +# Index + diff --git a/template/docs/quickstart/.keepit b/template/docs/quickstart/.keepit new file mode 100644 index 0000000..e69de29 diff --git a/template/docs/theme/main.html b/template/docs/theme/main.html new file mode 100644 index 0000000..e8984f4 --- /dev/null +++ b/template/docs/theme/main.html @@ -0,0 +1,9 @@ +{% extends "base.html" %} + +{% block content %} + {# no ad on the home page #} + {% if not page.is_index %} +
+ {% endif %} + {{ super() }} +{% endblock %} diff --git a/template/mkdocs.yml.jinja b/template/mkdocs.yml.jinja new file mode 100644 index 0000000..74e1bc1 --- /dev/null +++ b/template/mkdocs.yml.jinja @@ -0,0 +1,4 @@ +site_name: "{{module_name}}" +theme: + name: material + diff --git a/template/pyproject.toml.jinja b/template/pyproject.toml.jinja new file mode 100644 index 0000000..0047631 --- /dev/null +++ b/template/pyproject.toml.jinja @@ -0,0 +1,154 @@ +[build-system] +requires = ["mina-build>=0.2.5"] +build-backend = "pdm.backend" + +#[build-system] +#requires = ["pdm-backend", "pdm-polylith-workspace"] +#build-backend = "pdm.backend" + +[project] +authors = [ + { name = "{{author_name}}", email = "{{author_email}}" }, +] +classifiers = [ + "Development Status :: 3 - Alpha", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", +] +description = "{{project_description}}" +dynamic = [ + "version", +] +keywords = [ + "copier-template", + "full-development-lifecycle", + "project-template", + "scaffold", +] +license = {text = "UNDEFINED"} +name = "{{project_name}}" +readme = "README.md" +requires-python = ">=3.9" +dependencies = [ + # "pydantic-settings", + # "typer[all]", + "dynaconf>=3.2.5", + "pydantic>=2.7.4", +] + +[tool.pdm.scripts] +# ss-python-cli = "ss_python.cli:app" +lint = "ruff ." +fmt = "ruff format . --check" +test = "pytest " +docs = "mkdocs serve" +docs-deploy ="mkdocs gh-deploy --force" +cleanup = "sh scripts/cleanup.sh" + +[project.urls] +issue = "https://github.com/{{organization_name}}/{{repo_name}}/issues" +repository = "https://github.com/{{organization_name}}/{{repo_name}}" + +[tool.pdm] +distribution = true + +[tool.pdm.dev-dependencies] +docs = [ + "mkdocs-material>=9.5.27", + "mkdocs>=1.6.0", +] +maintain = [ + "git-changelog>=2.3", +] +lint = [ + "ruff>=0.4.9" +] +test = [ + "pytest-cov>=5.0.0", +] + + +[tool.pytest.ini_options] +addopts = "-l -s --durations=0" +log_cli = true +log_cli_level = "info" +log_date_format = "%Y-%m-%d %H:%M:%S" +log_format = "%(asctime)s %(levelname)s %(message)s" +minversion = "6.0" +cov="qpytpl" +cov-report="html" + +[tool.coverage] + +[tool.coverage.report] +fail_under = 100 + +[tool.coverage.run] +source = [ + "src/qpytpl", +] + +[tool.mypy] +check_untyped_defs = true +disallow_any_unimported = true +disallow_untyped_defs = true +enable_error_code = [ + "ignore-without-code", +] +exclude = [ + "build", + "template", +] +no_implicit_optional = true +show_error_codes = true +warn_return_any = true +warn_unused_ignores = true + + +[tool.ruff] +extend-exclude = [ + "template", +] +fix = true +src = ["src"] + +[tool.ruff.lint] +select = [ + "B", # flake8-bugbear + "D", # pydocstyle + "E", # pycodestyle error + "F", # Pyflakes + "I", # isort + "RUF100", # Unused noqa directive + "S", # flake8-bandit + "SIM", # flake8-simplify + "UP", # pyupgrade + "W", # pycodestyle warning +] + +[tool.ruff.lint.per-file-ignores] +"tests/*" = ["S101"] + +[tool.ruff.lint.pydocstyle] +convention = "google" + + +[tool.tomlsort] +all = true +in_place = true +trailing_comma_inline_array = true + +[[tool.pdm.source]] +name = "mirrors" +url = "https://pypi.tuna.tsinghua.edu.cn/simple/" + +[[tool.pdm.source]] +name = "douban" +url = "https://pypi.doubanio.com/simple/" + + diff --git a/template/scripts/cleanup.sh b/template/scripts/cleanup.sh new file mode 100644 index 0000000..347af4f --- /dev/null +++ b/template/scripts/cleanup.sh @@ -0,0 +1,17 @@ + rm -rf \ + .coverage \ + .mypy_cache \ + .pdm-build \ + .pdm-python \ + .pytest_cache \ + .ruff_cache \ + Pipfile* \ + __pypackages__ \ + build \ + coverage.xml \ + dist + find . -name '*.egg-info' -print0 | xargs -0 rm -rf + find . -name '*.pyc' -print0 | xargs -0 rm -f + find . -name '*.swp' -print0 | xargs -0 rm -f + find . -name '.DS_Store' -print0 | xargs -0 rm -f + find . -name '__pycache__' -print0 | xargs -0 rm -rf \ No newline at end of file diff --git a/template/src/{{module_name}}/__init__.py b/template/src/{{module_name}}/__init__.py new file mode 100644 index 0000000..b1f4b7c --- /dev/null +++ b/template/src/{{module_name}}/__init__.py @@ -0,0 +1,2 @@ +""".editorignore""" +__VERSION__ = "0.0.1" diff --git a/template/src/{{module_name}}/config/__init__.py b/template/src/{{module_name}}/config/__init__.py new file mode 100644 index 0000000..1060a13 --- /dev/null +++ b/template/src/{{module_name}}/config/__init__.py @@ -0,0 +1,32 @@ +import os + +from dynaconf import Dynaconf +from pydantic import BaseModel + +settings = Dynaconf( + settings_file=[ + "configs/settings.toml", + "configs/.secrets.toml", + "settings.toml", + ".secrets.toml", + ], + environment=True, + load_dotenv=True, + envvar_prefix=False, + includes=["../config/custom_settings.toml"], +) + +settings.validators.validate() + + +def ensure_env_settings(conf: Dynaconf, env_name: str): + env_switcher_key = conf.ENV_SWITCHER_FOR_DYNACONF + os.environ[env_switcher_key] = env_name + conf.reload() + + +def setting_to_model(setting: Dynaconf, model_type: type[BaseModel]): + model_value = model_type() + for model_field in model_type.model_fields: + setattr(model_value, model_field, getattr(setting, model_field)) + return model_value From 7a1efee7c2cb170c63a9c9ac4e867c5916684d3b Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 18 Jun 2024 15:37:49 +0800 Subject: [PATCH 2/3] update README --- README.md | 5 +++++ ss-python | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) delete mode 160000 ss-python diff --git a/README.md b/README.md index db10160..9d4dd9d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,10 @@ # README +```sh +copier copy --trust +pdm init +``` + ## PDM as Pythong Depencincy Manager - [PDM](https://pdm.fming.dev/) diff --git a/ss-python b/ss-python deleted file mode 160000 index ed623e8..0000000 --- a/ss-python +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ed623e8c11d0e8d0247433ca4f2525b353711158 From 7f22adab062f75f2f019ade24a565e4d1f858494 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 18 Jun 2024 15:38:44 +0800 Subject: [PATCH 3/3] remove unused files --- copier-pdm | 1 - copier.yaml | 1 - 2 files changed, 2 deletions(-) delete mode 160000 copier-pdm diff --git a/copier-pdm b/copier-pdm deleted file mode 160000 index adff9b6..0000000 --- a/copier-pdm +++ /dev/null @@ -1 +0,0 @@ -Subproject commit adff9b64887d0b4c9ec0b42de1698b34858a511e diff --git a/copier.yaml b/copier.yaml index 0268d31..22d7ae1 100644 --- a/copier.yaml +++ b/copier.yaml @@ -27,7 +27,6 @@ project_description: help: "Provide a concise description to be used in the Python package overview and the introductory paragraph in the README and documentation's index page:" type: str - author_name: default: Your Name help: 'Specify the name of the author:'