Merging upstream version 0.15.0.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-05 11:39:50 +01:00
parent bfebc2a0f4
commit 0a0cb7f4fd
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
103 changed files with 79620 additions and 742 deletions

View file

@ -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",
]