diff options
Diffstat (limited to 'pyproject.toml')
-rw-r--r-- | pyproject.toml | 87 |
1 files changed, 51 insertions, 36 deletions
diff --git a/pyproject.toml b/pyproject.toml index 36ed176..0c7a915 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "anta" -version = "v0.14.0" +version = "v0.15.0" readme = "docs/README.md" authors = [{ name = "Khelil Sator", email = "ksator@arista.com" }] maintainers = [ @@ -17,19 +17,17 @@ maintainers = [ description = "Arista Network Test Automation (ANTA) Framework" license = { file = "LICENSE" } dependencies = [ - "aiocache~=0.12.2", - "aio-eapi==0.6.3", - "click~=8.1.6", - "click-help-colors~=0.9", - "cvprac~=1.3.1", - "pydantic>=2.6.1,<2.8.0", - "pydantic-extra-types>=2.1.0", - "eval-type-backport~=0.1.3", # Support newer typing features in older Python versions (required until Python 3.9 support is removed) - "PyYAML~=6.0", - "requests~=2.31.0", - "rich>=13.5.2,<13.8.0", - "asyncssh>=2.13.2,<2.15.0", - "Jinja2~=3.1.2", + "aiocache>=0.12.2", + "asyncssh>=2.13.2", + "cvprac>=1.3.1", + "eval-type-backport>=0.1.3", # Support newer typing features in older Python versions (required until Python 3.9 support is removed) + "Jinja2>=3.1.2", + "pydantic>=2.7", + "pydantic-extra-types>=2.3.0", + "PyYAML>=6.0", + "requests>=2.31.0", + "rich>=13.5.2,<14", + "httpx>=0.27.0" ] keywords = ["test", "anta", "Arista", "network", "automation", "networking", "devops", "netdevops"] classifiers = [ @@ -53,40 +51,44 @@ classifiers = [ requires-python = ">=3.9" [project.optional-dependencies] +cli = [ + "click~=8.1.6", + "click-help-colors>=0.9", +] dev = [ - "bumpver==2023.1129", + "bumpver>=2023.1129", "codespell~=2.2.6", - "mypy~=1.9", "mypy-extensions~=1.0", + "mypy~=1.10", "pre-commit>=3.3.3", + "pylint-pydantic>=0.2.4", "pylint>=2.17.5", - "ruff~=0.3.5", - "pytest>=7.4.0", "pytest-asyncio>=0.21.1", "pytest-cov>=4.1.0", "pytest-dependency", "pytest-html>=3.2.0", "pytest-metadata>=3.0.0", - "pylint-pydantic>=0.2.4", + "pytest>=7.4.0", + "ruff>=0.3.7,<0.5.0", "tox>=4.10.0,<5.0.0", "types-PyYAML", - "types-paramiko", + "types-pyOpenSSL", "types-requests", "typing-extensions", "yamllint>=1.32.0", ] doc = [ "fontawesome_markdown", - "mkdocs>=1.3.1", + "griffe", + "mike==2.1.1", "mkdocs-autorefs>=0.4.1", "mkdocs-bootswatch>=1.1", "mkdocs-git-revision-date-localized-plugin>=1.1.0", "mkdocs-git-revision-date-plugin>=0.3.2", - "mkdocs-material>=8.3.9", "mkdocs-material-extensions>=1.0.3", + "mkdocs-material>=8.3.9", + "mkdocs>=1.3.1", "mkdocstrings[python]>=0.20.0", - "mike==2.0.0", - "griffe", ] [project.urls] @@ -101,14 +103,14 @@ anta = "anta.cli:cli" # Tools ################################ [tool.setuptools.packages.find] -include = ["anta*"] +include = ["anta*", "asynceapi*"] namespaces = false ################################ # Version ################################ [tool.bumpver] -current_version = "0.14.0" +current_version = "0.15.0" version_pattern = "MAJOR.MINOR.PATCH" commit_message = "bump: Version {old_version} -> {new_version}" commit = true @@ -131,6 +133,8 @@ plugins = [ ] # Comment below for better type checking #follow_imports = "skip" +# Make it false if we implement stubs using stubgen from mypy for aio-eapi, aiocache and cvprac +# and configure mypy_path to generated stubs e.g.: mypy_path = "./out" ignore_missing_imports = true warn_redundant_casts = true # Note: tox find some unused type ignore which are required for pre-commit @@ -159,15 +163,20 @@ addopts = "-ra -q -vv --cov --cov-report term:skip-covered --color yes" log_level = "WARNING" render_collapsed = true testpaths = ["tests"] +filterwarnings = [ + "error", + # cvprac is raising the next warning + "default:pkg_resources is deprecated:DeprecationWarning", + # Need to investigate the following - only occuring when running the full pytest suite + "ignore:Exception ignored in.*:pytest.PytestUnraisableExceptionWarning", + +] + [tool.coverage.run] branch = true source = ["anta"] parallel = true -omit= [ - # omit aioeapi patch - "anta/aioeapi.py", -] [tool.coverage.report] # Regexes for lines to exclude from consideration @@ -225,7 +234,9 @@ python = [testenv] description = Run pytest with {basepython} -extras = dev +extras = + dev + cli # posargs allows to run only a specific test using # tox -e <env> -- path/to/my/test::test commands = @@ -297,7 +308,6 @@ exclude = [ "site-packages", "venv", ".github", - "aioeapi.py" # Remove this when https://github.com/jeremyschulman/aio-eapi/pull/13 is merged ] line-length = 165 @@ -374,6 +384,9 @@ runtime-evaluated-base-classes = ["pydantic.BaseModel", "anta.models.AntaTest.In "anta/cli/exec/utils.py" = [ "SLF001", # TODO: some private members, lets try to fix ] +"anta/cli/__init__.py" = [ + "T201", # Allow print statements +] "anta/cli/*" = [ "PLR0913", # Allow more than 5 input arguments in CLI functions "ANN401", # TODO: Check if we can update the Any type hints in the CLI @@ -390,16 +403,17 @@ runtime-evaluated-base-classes = ["pydantic.BaseModel", "anta.models.AntaTest.In "ANN401", # Ok to use Any type hint in our custom get functions "PLR0913", # Ok to have more than 5 arguments in our custom get functions ] -"anta/runner.py" = [ - "C901", # TODO: main function is too complex, needs a refactor - "PERF203", # TODO: try - except within a loop, same sa above needs a refactor -] "anta/device.py" = [ "PLR0913", # Ok to have more than 5 arguments in the AntaDevice classes ] "anta/inventory/__init__.py" = [ "PLR0913", # Ok to have more than 5 arguments in the AntaInventory class ] +"examples/anta_runner.py" = [ # This is an example script and linked in snippets + "S108", # Probable insecure usage of temporary file or directory + "S105", # Possible hardcoded password + "INP001", # Implicit packages +] ################################ # Pylint @@ -433,4 +447,5 @@ extension-pkg-whitelist="pydantic" ignore-paths = [ "^tests/units/anta_tests/.*/data.py$", "^tests/units/anta_tests/routing/.*/data.py$", + "^docs/scripts/anta_runner.py", ] |