pyproject.toml (79 lines of code) (raw):

[tool.ruff] # Ruff is an extremely fast Python linter, written in Rust, that integrates with your favorite editors line-length = 99 exclude = ["build", "dist", "__pycache__", ".git"] # Select specific linting rules to enforce: # "D" - Docstring-related rules (e.g., presence and format of docstrings) # "E4" - Indentation and formatting issues (e.g., multiple imports on one line) # "E7" - Syntax errors or incorrect use of Python constructs (e.g., multiple statements on one line) # "E9" - Runtime errors (e.g., SyntaxError, IOError) # "F" - General flake8 rules (e.g., module imported but unused) lint.select = ["D", "E4", "E7", "E9", "F"] # Add specific linting rules to the selection # D212 - Multi-line docstring summary should start at the first line lint.extend-select = ["D212"] # Ignore specific docstring and formatting rules: # D105 - Docstrings for magic methods # D107 - Docstrings for __init__ # D203 - Conflicts with D211 # D205 - 1 blank line required between summary line and description # D400 - First line should end with a period lint.ignore = ["D105", "D107", "D203", "D205", "D400"] # Extend ignore to include: # E203 - Whitespace before ':' lint.extend-ignore = ["E203"] # Ignore specific issues per file: # F401 - Module imported but unused in __init__.py lint.per-file-ignores = { "__init__.py" = ["F401"] } # Enforce PEP 257 conventions for docstrings lint.pydocstyle = { convention = "pep257" } [tool.bandit] # Bandit is a tool designed to find common security issues in Python code. # Skipping specific checks for: # B101 - Use of assert detected. Assert statements are not suitable for production code. # B104 - Possible binding to all interfaces. This can pose a security risk. # B311 - Standard pseudo-random generators are not suitable for security/cryptographic purposes. # B404 - Importing subprocess module which can be dangerous. skips = ["B101", "B104", "B311", "B404"] [tool.mypy] # MyPy is a static type checker for Python. python_version = "3.12" disallow_untyped_calls = true follow_imports = "normal" ignore_missing_imports = true pretty = true show_error_codes = true strict_optional = true warn_no_return = true warn_redundant_casts = true warn_return_any = true warn_unused_ignores = true warn_unreachable = true [tool.poetry] name = "ecosystem-test-scripts" version = "0.1.0" description = "Python scripts for the Ecosystem Test Engineering team" authors = ["Ecosystem Test Engineering"] readme = "README.md" license = "Mozilla Public License Version 2.0" package-mode = false [tool.poetry.dependencies] python = "^3.12" setuptools = ">=76.0.0" [tool.poetry.group.metric_reporter.dependencies] google-cloud-bigquery = "^3.30.0" google-cloud-storage = "^3.1.0" pydantic = "^2.10.6" python-dateutil = "^2.9.0.post0" types-python-dateutil = "^2.9.0.20241206" xmltodict = "^0.14.2" [tool.poetry.group.dev.dependencies] bandit = "^1.8.3" mypy = "^1.15.0" pytest = "^8.3.5" pytest-cov = "^4.1.0" pytest-mock = "^3.14.0" ruff = "^0.5.7" [build-system] requires = ["poetry-core>=2.0.1"] build-backend = "poetry.core.masonry.api"