diff --git a/.pylint.ini b/.pylint.ini index 18ae00d76..8ff38ea6a 100644 --- a/.pylint.ini +++ b/.pylint.ini @@ -87,6 +87,7 @@ disable= logging-fstring-interpolation, unnecessary-dunder-call, deprecated-module, + deprecated-argument, # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option @@ -418,5 +419,5 @@ known-third-party=enchant [EXCEPTIONS] # Exceptions that will emit a warning when being caught. Defaults to -# "Exception" -overgeneral-exceptions=Exception +# "builtin.Exception" +overgeneral-exceptions=builtin.Exception diff --git a/.verchew.ini b/.verchew.ini index 9832f36a6..ce8587569 100644 --- a/.verchew.ini +++ b/.verchew.ini @@ -5,18 +5,18 @@ version = GNU Make [Python] -cli = python +cli = python3 version = 3.9 || 3.10 || 3.11 || 3.12 [Poetry] cli = poetry -version = 1.7 +version = 1.7 || 1.8 [Graphviz] cli = dot cli_version_arg = -V -version = 9 || 10 +version = 9 || 10 || 11 || 12 optional = true message = This is only needed to generate UML diagrams for documentation. diff --git a/Makefile b/Makefile index e09db7e4e..6efab387a 100644 --- a/Makefile +++ b/Makefile @@ -46,19 +46,18 @@ DEPENDENCIES := $(VIRTUAL_ENV)/.poetry-$(shell bin/checksum pyproject.toml poetr install: $(DEPENDENCIES) .cache $(DEPENDENCIES): poetry.lock - @ rm -rf ~/Library/Preferences/pypoetry - @ poetry config virtualenvs.in-project true + poetry config virtualenvs.in-project true poetry install - @ touch $@ + touch $@ ifndef CI poetry.lock: pyproject.toml poetry lock --no-update - @ touch $@ + touch $@ endif .cache: - @ mkdir -p .cache + mkdir -p .cache # CHECKS ###################################################################### @@ -66,7 +65,7 @@ endif format: install poetry run isort $(PACKAGES) poetry run black $(PACKAGES) - @ echo + echo .PHONY: check check: install format ## Run formaters, linters, and static analysis @@ -96,7 +95,7 @@ test: test-all ## Run unit and integration tests test-unit: install poetry run pytest $(PACKAGE) $(PYTEST_OPTIONS) ifndef DISABLE_COVERAGE - @ echo + echo poetry run coveragespace update unit endif @@ -107,7 +106,7 @@ test-int: test-all test-all: install TEST_INTEGRATION=true poetry run pytest $(PACKAGES) $(PYTEST_OPTIONS) ifndef DISABLE_COVERAGE - @ echo + echo poetry run coveragespace update overall endif @@ -132,16 +131,16 @@ docs: mkdocs uml ## Generate documentation and UML .PHONY: mkdocs mkdocs: install $(MKDOCS_INDEX) $(MKDOCS_INDEX): docs/requirements.txt mkdocs.yml docs/*.md - @ mkdir -p docs/about - @ cd docs && ln -sf ../README.md index.md - @ cd docs/about && ln -sf ../../CHANGELOG.md changelog.md - @ cd docs/about && ln -sf ../../CONTRIBUTING.md contributing.md - @ cd docs/about && ln -sf ../../LICENSE.md license.md + mkdir -p docs/about + cd docs && ln -sf ../README.md index.md + cd docs/about && ln -sf ../../CHANGELOG.md changelog.md + cd docs/about && ln -sf ../../CONTRIBUTING.md contributing.md + cd docs/about && ln -sf ../../LICENSE.md license.md poetry run mkdocs build --clean --strict docs/requirements.txt: poetry.lock - @ poetry run pip list --format=freeze | grep mkdocs > $@ - @ poetry run pip list --format=freeze | grep Pygments >> $@ + poetry run pip list --format=freeze | grep mkdocs > $@ + poetry run pip list --format=freeze | grep Pygments >> $@ .PHONY: uml uml: install docs/*.png @@ -262,6 +261,6 @@ clean-all: clean .PHONY: help help: install - @ grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' .DEFAULT_GOAL := help diff --git a/bin/checksum b/bin/checksum index 1036e2381..1272cd7d6 100755 --- a/bin/checksum +++ b/bin/checksum @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- import hashlib diff --git a/bin/verchew b/bin/verchew index bbd76b7e3..7319e11a6 100755 --- a/bin/verchew +++ b/bin/verchew @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # The MIT License (MIT) diff --git a/doorstop/cli/commands.py b/doorstop/cli/commands.py index 1df175318..503142923 100644 --- a/doorstop/cli/commands.py +++ b/doorstop/cli/commands.py @@ -502,6 +502,8 @@ def run_export(args, cwd, error, catch=True, auto=False, _tree=None): ext = utilities.get_ext(args, error, ".yml", ".csv", whole_tree=whole_tree) # Get the tree or document + document = None + with utilities.capture(catch=catch) as success: exporter.check(ext) tree = _tree or _get_tree(args, cwd, load=whole_tree) @@ -547,6 +549,7 @@ def run_publish(args, cwd, error, catch=True): ext = utilities.get_ext(args, error, ".txt", ".html", whole_tree) # Get the tree or document + document = None with utilities.capture(catch=catch) as success: publisher.check(ext) tree = _get_tree(args, cwd, load=whole_tree) @@ -665,12 +668,10 @@ def _iter_items(args, tree, error): if item: yield item elif document: - for item in document: - yield item + yield from document else: for document in tree: - for item in document: - yield item + yield from document def _export_import(args, cwd, error, document, ext): diff --git a/doorstop/cli/main.py b/doorstop/cli/main.py index 5b92b7c1a..962f6ee5c 100644 --- a/doorstop/cli/main.py +++ b/doorstop/cli/main.py @@ -179,12 +179,12 @@ def main(args=None): # pylint: disable=R0915 log.error(exc) success = False except KeyboardInterrupt: - log.debug("command cancelled") + log.debug(f"command cancelled: {args}") success = False if success: - log.debug("command succeeded") + log.debug("command succeeded: {args}") else: - log.debug("command failed") + log.debug(f"command failed: {args}") sys.exit(1) diff --git a/doorstop/common.py b/doorstop/common.py index aad53aa2e..4f81417a7 100644 --- a/doorstop/common.py +++ b/doorstop/common.py @@ -107,8 +107,7 @@ def read_lines(path, encoding="utf-8"): """ log.trace("reading lines from '{}'...".format(path)) # type: ignore with open(path, "r", encoding=encoding) as stream: - for line in stream: - yield line + yield from stream def read_text(path): diff --git a/doorstop/core/editor.py b/doorstop/core/editor.py index 6dbdde0d9..61e95ca0c 100644 --- a/doorstop/core/editor.py +++ b/doorstop/core/editor.py @@ -94,6 +94,10 @@ def launch(path, tool=None): args = ["start", path] elif os.name == "posix": args = ["xdg-open", path] + else: + raise DoorstopError( + "unknown operating system, unable to determine launch command" + ) # Launch the editor try: diff --git a/doorstop/core/tests/files/published.html b/doorstop/core/tests/files/published.html index 882f46526..609f2e5a4 100644 --- a/doorstop/core/tests/files/published.html +++ b/doorstop/core/tests/files/published.html @@ -1,124 +1,278 @@ -doc-REQ - - - - - - + + + doc-REQ + + + + + + + - - - + + -
-
+ + +
+
-

Test document for development of Doorstop

-

1.2.3 REQ001

-

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod +

+

+ Test document for development of + + Doorstop + +

+

+

+ 1.2.3 REQ001 +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia -deserunt mollit anim id est laborum.

-

Parent links: SYS001, SYS002

-

1.4 REQ003

-

Unicode: -40° ±1%

-
-

external/text.txt (line 3)

-
-

Parent links: REQ001

-

1.5 REQ006

-

Hello, world!

-
-

external/text.txt (line 3) -external/text2.txt

-
-

Parent links: REQ001

-

1.6 REQ004

-

Hello, world!

-

2.1 Plantuml REQ002

-

Hello, world!

-

Dot Executable: /opt/local/bin/dotDot executable does not existCannot find Graphviz. You should try @startumltestdot@enduml or java -jar plantuml.jar -testdot 

-

Child links: TST001, TST002

-

2.1 REQ2-001

-

Hello, world!

-

Test Math Expressions in Latex Style:

-

Inline Style 1: $a \ne 0$ +deserunt mollit anim id est laborum. +

+

+ + Parent links: + + + SYS001 + + , + + SYS002 + +

+

+ 1.4 REQ003 +

+

+ Unicode: -40° ±1% +

+
+

+ + external/text.txt + + (line 3) +

+
+

+ + Parent links: + + + REQ001 + +

+

+ 1.5 REQ006 +

+

+ Hello, world! +

+
+

+ + external/text.txt + + (line 3) + + external/text2.txt + +

+
+

+ + Parent links: + + + REQ001 + +

+

+ 1.6 REQ004 +

+

+ Hello, world! +

+

+ 2.1 Plantuml + + REQ002 + +

+

+ Hello, world! +

+

+

+

+ + Child links: + + + TST001 + + , + + TST002 + +

+

+ 2.1 REQ2-001 +

+

+ Hello, world! +

+

+ Test Math Expressions in Latex Style: +

+

+ Inline Style 1: $a \ne 0$ Inline Style 2: (ax^2 + bx + c = 0) -Multiline: $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$

-

Parent links: REQ001

-

Child links: TST001

+Multiline: $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ +

+

+ + Parent links: + + + REQ001 + +

+

+ + Child links: + + + TST001 + +

-
-
- - +
+
+ + - diff --git a/doorstop/core/tests/files/published2.html b/doorstop/core/tests/files/published2.html index 3d01124a9..d8f7c82bf 100644 --- a/doorstop/core/tests/files/published2.html +++ b/doorstop/core/tests/files/published2.html @@ -1,122 +1,242 @@ -doc-REQ - - - - - - + + + doc-REQ + + + + + + + - - - + + -
-
+ + +
+
-

Test document for development of Doorstop

-

1.2.3 REQ001

-

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod +

+

+ Test document for development of + + Doorstop + +

+

+

+ 1.2.3 REQ001 +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia -deserunt mollit anim id est laborum.

-

Links: SYS001, SYS002

-

1.4 REQ003

-

Unicode: -40° ±1%

-
-

external/text.txt (line 3)

-
-

Links: REQ001

-

1.5 REQ006

-

Hello, world!

-
-

external/text.txt (line 3) -external/text2.txt

-
-

Links: REQ001

-

1.6 REQ004

-

Hello, world!

-

2.1 Plantuml REQ002

-

Hello, world!

-

Dot Executable: /opt/local/bin/dotDot executable does not existCannot find Graphviz. You should try @startumltestdot@enduml or java -jar plantuml.jar -testdot 

-

2.1 REQ2-001

-

Hello, world!

-

Test Math Expressions in Latex Style:

-

Inline Style 1: $a \ne 0$ +deserunt mollit anim id est laborum. +

+

+ + Links: SYS001, SYS002 + +

+

+ 1.4 REQ003 +

+

+ Unicode: -40° ±1% +

+
+

+ + external/text.txt + + (line 3) +

+
+

+ + Links: REQ001 + +

+

+ 1.5 REQ006 +

+

+ Hello, world! +

+
+

+ + external/text.txt + + (line 3) + + external/text2.txt + +

+
+

+ + Links: REQ001 + +

+

+ 1.6 REQ004 +

+

+ Hello, world! +

+

+ 2.1 Plantuml + + REQ002 + +

+

+ Hello, world! +

+

+

+

+ 2.1 REQ2-001 +

+

+ Hello, world! +

+

+ Test Math Expressions in Latex Style: +

+

+ Inline Style 1: $a \ne 0$ Inline Style 2: (ax^2 + bx + c = 0) -Multiline: $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$

-

Links: REQ001

+Multiline: $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ +

+

+ + Links: REQ001 + +

-
-
- - +
+
+ + - diff --git a/doorstop/core/tests/test_all.py b/doorstop/core/tests/test_all.py index 6d2af1f8b..d5f040ea8 100644 --- a/doorstop/core/tests/test_all.py +++ b/doorstop/core/tests/test_all.py @@ -16,6 +16,7 @@ import openpyxl import yaml from plantuml_markdown import PlantUMLMarkdownExtension +from bs4 import BeautifulSoup from doorstop import common, core from doorstop.common import DoorstopError, DoorstopInfo, DoorstopWarning @@ -35,6 +36,14 @@ from doorstop.core.vcs import mockvcs +def _remove_html_element(html: str, element: str) -> None: + soup = BeautifulSoup(html, "html.parser") + for data in soup([element]): + data.decompose() + + return soup.prettify() + + class TestItem(unittest.TestCase): """Integration tests for the Item class.""" @@ -582,9 +591,11 @@ def setUp(self): FILES, "plantuml-1.2024.7.jar" ) plantuml_ext = next( - x for x in HtmlPublisher.EXTENSIONS if type(x) == PlantUMLMarkdownExtension + x for x in HtmlPublisher.EXTENSIONS if type(x) is PlantUMLMarkdownExtension + ) + plantuml_ext.setConfigs( + {"server": "", "plantuml_cmd": plantuml_cmd, "theme": "bluegray"} ) - plantuml_ext.setConfigs({"server": "", "plantuml_cmd": plantuml_cmd}) def tearDown(self): if os.path.exists(self.temp): @@ -668,11 +679,16 @@ def test_lines_html_document_linkify(self): self.document, ".html", linkify=True, toc=True ) actual = "".join(line + "\n" for line in lines) + + # Strip out SVG tag, as its proven hard to get reproducable output from + # PlantUML across architectures. + actual_stripped = _remove_html_element(actual, "ns0:svg") + # Assert - if actual != expected: + if actual_stripped != expected: common.log.error(f"Published content changed: {path}") - common.write_text(actual, path) - self.assertEqual(expected, actual) + common.write_text(actual_stripped, path) + self.assertEqual(expected, actual_stripped) @patch("doorstop.settings.PUBLISH_CHILD_LINKS", False) def test_lines_html_document_without_child_links(self): @@ -682,11 +698,16 @@ def test_lines_html_document_without_child_links(self): # Act lines = core.publisher.publish_lines(self.document, ".html", toc=True) actual = "".join(line + "\n" for line in lines) + + # Strip out SVG tag, as its proven hard to get reproducable output from + # PlantUML across architectures. + actual_stripped = _remove_html_element(actual, "ns0:svg") + # Assert - if actual != expected: + if actual_stripped != expected: common.log.error(f"Published content changed: {path}") - common.write_text(actual, path) - self.assertEqual(expected, actual) + common.write_text(actual_stripped, path) + self.assertEqual(expected, actual_stripped) class TestModule(unittest.TestCase): diff --git a/poetry.lock b/poetry.lock index 9688c3dbc..f5b5fc250 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "altgraph" @@ -13,22 +13,17 @@ files = [ [[package]] name = "astroid" -version = "2.13.5" +version = "3.2.4" description = "An abstract syntax tree for Python with inference support." optional = false -python-versions = ">=3.7.2" +python-versions = ">=3.8.0" files = [ - {file = "astroid-2.13.5-py3-none-any.whl", hash = "sha256:6891f444625b6edb2ac798829b689e95297e100ddf89dbed5a8c610e34901501"}, - {file = "astroid-2.13.5.tar.gz", hash = "sha256:df164d5ac811b9f44105a72b8f9d5edfb7b5b2d7e979b04ea377a77b3229114a"}, + {file = "astroid-3.2.4-py3-none-any.whl", hash = "sha256:413658a61eeca6202a59231abb473f932038fbcbf1666587f66d482083413a25"}, + {file = "astroid-3.2.4.tar.gz", hash = "sha256:0e14202810b30da1b735827f78f5157be2bbd4a7a59b7707ca0bfc2fb4c0063a"}, ] [package.dependencies] -lazy-object-proxy = ">=1.4.0" typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} -wrapt = [ - {version = ">=1.11,<2", markers = "python_version < \"3.11\""}, - {version = ">=1.14,<2", markers = "python_version >= \"3.11\""}, -] [[package]] name = "atomicwrites" @@ -513,52 +508,6 @@ MarkupSafe = ">=2.0" [package.extras] i18n = ["Babel (>=2.7)"] -[[package]] -name = "lazy-object-proxy" -version = "1.10.0" -description = "A fast and thorough lazy object proxy." -optional = false -python-versions = ">=3.8" -files = [ - {file = "lazy-object-proxy-1.10.0.tar.gz", hash = "sha256:78247b6d45f43a52ef35c25b5581459e85117225408a4128a3daf8bf9648ac69"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:855e068b0358ab916454464a884779c7ffa312b8925c6f7401e952dcf3b89977"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab7004cf2e59f7c2e4345604a3e6ea0d92ac44e1c2375527d56492014e690c3"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc0d2fc424e54c70c4bc06787e4072c4f3b1aa2f897dfdc34ce1013cf3ceef05"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e2adb09778797da09d2b5ebdbceebf7dd32e2c96f79da9052b2e87b6ea495895"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1f711e2c6dcd4edd372cf5dec5c5a30d23bba06ee012093267b3376c079ec83"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-win32.whl", hash = "sha256:76a095cfe6045c7d0ca77db9934e8f7b71b14645f0094ffcd842349ada5c5fb9"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:b4f87d4ed9064b2628da63830986c3d2dca7501e6018347798313fcf028e2fd4"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fec03caabbc6b59ea4a638bee5fce7117be8e99a4103d9d5ad77f15d6f81020c"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02c83f957782cbbe8136bee26416686a6ae998c7b6191711a04da776dc9e47d4"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009e6bb1f1935a62889ddc8541514b6a9e1fcf302667dcb049a0be5c8f613e56"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75fc59fc450050b1b3c203c35020bc41bd2695ed692a392924c6ce180c6f1dc9"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:782e2c9b2aab1708ffb07d4bf377d12901d7a1d99e5e410d648d892f8967ab1f"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-win32.whl", hash = "sha256:edb45bb8278574710e68a6b021599a10ce730d156e5b254941754a9cc0b17d03"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:e271058822765ad5e3bca7f05f2ace0de58a3f4e62045a8c90a0dfd2f8ad8cc6"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e98c8af98d5707dcdecc9ab0863c0ea6e88545d42ca7c3feffb6b4d1e370c7ba"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:952c81d415b9b80ea261d2372d2a4a2332a3890c2b83e0535f263ddfe43f0d43"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80b39d3a151309efc8cc48675918891b865bdf742a8616a337cb0090791a0de9"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e221060b701e2aa2ea991542900dd13907a5c90fa80e199dbf5a03359019e7a3"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:92f09ff65ecff3108e56526f9e2481b8116c0b9e1425325e13245abfd79bdb1b"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-win32.whl", hash = "sha256:3ad54b9ddbe20ae9f7c1b29e52f123120772b06dbb18ec6be9101369d63a4074"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:127a789c75151db6af398b8972178afe6bda7d6f68730c057fbbc2e96b08d282"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4ed0518a14dd26092614412936920ad081a424bdcb54cc13349a8e2c6d106a"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ad9e6ed739285919aa9661a5bbed0aaf410aa60231373c5579c6b4801bd883c"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc0a92c02fa1ca1e84fc60fa258458e5bf89d90a1ddaeb8ed9cc3147f417255"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0aefc7591920bbd360d57ea03c995cebc204b424524a5bd78406f6e1b8b2a5d8"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5faf03a7d8942bb4476e3b62fd0f4cf94eaf4618e304a19865abf89a35c0bbee"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-win32.whl", hash = "sha256:e333e2324307a7b5d86adfa835bb500ee70bfcd1447384a822e96495796b0ca4"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:cb73507defd385b7705c599a94474b1d5222a508e502553ef94114a143ec6696"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:366c32fe5355ef5fc8a232c5436f4cc66e9d3e8967c01fb2e6302fd6627e3d94"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2297f08f08a2bb0d32a4265e98a006643cd7233fb7983032bd61ac7a02956b3b"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18dd842b49456aaa9a7cf535b04ca4571a302ff72ed8740d06b5adcd41fe0757"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:217138197c170a2a74ca0e05bddcd5f1796c735c37d0eee33e43259b192aa424"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a3a87cf1e133e5b1994144c12ca4aa3d9698517fe1e2ca82977781b16955658"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-win32.whl", hash = "sha256:30b339b2a743c5288405aa79a69e706a06e02958eab31859f7f3c04980853b70"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:a899b10e17743683b293a729d3a11f2f399e8a90c73b089e29f5d0fe3509f0dd"}, - {file = "lazy_object_proxy-1.10.0-pp310.pp311.pp312.pp38.pp39-none-any.whl", hash = "sha256:80fa48bd89c8f2f456fc0765c11c23bf5af827febacd2f523ca5bc1893fcc09d"}, -] - [[package]] name = "macfsevents" version = "0.8.4" @@ -986,23 +935,24 @@ setuptools = ">=42.0.0" [[package]] name = "pylint" -version = "2.15.10" +version = "3.2.7" description = "python code static checker" optional = false -python-versions = ">=3.7.2" +python-versions = ">=3.8.0" files = [ - {file = "pylint-2.15.10-py3-none-any.whl", hash = "sha256:9df0d07e8948a1c3ffa3b6e2d7e6e63d9fb457c5da5b961ed63106594780cc7e"}, - {file = "pylint-2.15.10.tar.gz", hash = "sha256:b3dc5ef7d33858f297ac0d06cc73862f01e4f2e74025ec3eff347ce0bc60baf5"}, + {file = "pylint-3.2.7-py3-none-any.whl", hash = "sha256:02f4aedeac91be69fb3b4bea997ce580a4ac68ce58b89eaefeaf06749df73f4b"}, + {file = "pylint-3.2.7.tar.gz", hash = "sha256:1b7a721b575eaeaa7d39db076b6e7743c993ea44f57979127c517c6c572c803e"}, ] [package.dependencies] -astroid = ">=2.12.13,<=2.14.0-dev0" +astroid = ">=3.2.4,<=3.3.0-dev0" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = [ {version = ">=0.2", markers = "python_version < \"3.11\""}, - {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, + {version = ">=0.3.7", markers = "python_version >= \"3.12\""}, + {version = ">=0.3.6", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, ] -isort = ">=4.2.5,<6" +isort = ">=4.2.5,<5.13.0 || >5.13.0,<6" mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} @@ -1191,6 +1141,7 @@ files = [ {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"}, @@ -1465,6 +1416,17 @@ h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] +[[package]] +name = "verchew" +version = "3.4.2" +description = "System dependency version checker." +optional = false +python-versions = ">=3.8,<4.0" +files = [ + {file = "verchew-3.4.2-py3-none-any.whl", hash = "sha256:d000ec54ccc87240feae05cf9e37b29016ca73406b6f39af69114a32773dfb7e"}, + {file = "verchew-3.4.2.tar.gz", hash = "sha256:98f3f8e4894528afe316879ac848d1a6c8b47168a3b3de2e44fc2f5b83b29149"}, +] + [[package]] name = "waitress" version = "3.0.0" @@ -1556,85 +1518,6 @@ WebOb = ">=1.2" docs = ["Sphinx (>=1.8.1)", "docutils", "pylons-sphinx-themes (>=1.0.8)"] tests = ["PasteDeploy", "WSGIProxy2", "coverage", "pyquery", "pytest", "pytest-cov"] -[[package]] -name = "wrapt" -version = "1.16.0" -description = "Module for decorators, wrappers and monkey patching." -optional = false -python-versions = ">=3.6" -files = [ - {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, - {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, - {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, - {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, - {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, - {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, - {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, - {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, - {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, - {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, - {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, - {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, - {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, - {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, - {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, - {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, - {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, - {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, -] - [[package]] name = "zipp" version = "3.17.0" @@ -1652,5 +1535,5 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" -python-versions = "^3.9" -content-hash = "6e106c06f163ef5b218caa5993a62cd99f6ed58a6c902e2a8ebf6c4f4683be58" +python-versions = "<3.13,>=3.9" +content-hash = "3264dd55dceebca407b61bc4bf00279198c259b1b449c73d3f105ec4835d8933" diff --git a/pyproject.toml b/pyproject.toml index a424edfb5..196384cda 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,7 +43,7 @@ classifiers = [ [tool.poetry.dependencies] -python = "^3.9" +python = "<3.13,>=3.9" pyyaml = "^6.0" markdown = "^3.3.3" @@ -54,6 +54,7 @@ python-markdown-math = "~0.6" plantuml-markdown = "^3.4.2" six = "*" # fixes https://github.com/dougn/python-plantuml/issues/11 openpyxl = ">=3.1.2" +verchew = "^3.4.2" [tool.poetry.dev-dependencies] @@ -62,9 +63,9 @@ black = "^24.3" isort = "^5.12" # Linters -mypy = "^1.1.1" +mypy = ">=1.1.1" pydocstyle = "*" -pylint = "~2.15" +pylint = "~3.2.0" types-markdown = "*" types-pyyaml = "*" types-requests = "*" @@ -106,6 +107,12 @@ quiet = true profile = "black" +[tool.pytest.ini_options] +# log_cli = true +# log_cli_level = "WARNING" +log_file = "pytest.log" +log_file_level = "DEBUG" + [build-system] requires = ["poetry-core"]