rpdelaney/dumbpw

View on GitHub
pyproject.toml

Summary

Maintainability
Test Coverage
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

[tool.poetry]
name = "dumbpw"
version = "0.5.0"
description = "A bad password generator for bad websites with bad password policies"
authors = ["Ryan Delaney <ryan.patrick.delaney+git@protonmail.com>"]
license = "Apache 2.0"
readme = "README.rst"
repository = "https://github.com/rpdelaney/dumbpw"
homepage = "https://pypi.org/project/dumbpw"
classifiers = [
    "Development Status :: 4 - Beta",
    "Environment :: Console",
    "License :: OSI Approved :: Apache Software License",
    "Programming Language :: Python :: 3 :: Only",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Topic :: Security",
]

[tool.poetry.scripts]
dumbpw = "dumbpw.cli:cli"

[tool.poetry.dependencies]
python = ">=3.10, <4.0"
click = ">=8.0.3"
deal = ">=4.19.1"

[tool.poetry.group.dev.dependencies]
deal-solver = ">=0.1.0"
hypothesis = ">=6.39.4"
mypy = ">=0.981"
ptpython = "^3.0.23"
pylic = ">=3.5.0"
pytest = ">=6.2.5"
pytest-cov = ">=3.0.0"
ruff = "*"

[tool.pytest.ini_options]
testpaths = "tests"
console_output_style = "progress"
addopts = [
    "--cov=dumbpw",
    "--strict-markers",
    "--strict-config",
    "--doctest-modules",
]
filterwarnings = ["error"]
xfail_strict = true

[tool.mypy]
plugins = ["deal.mypy"]

# any
disallow_any_decorated = true
disallow_any_explicit = false
disallow_any_expr = false
disallow_any_generics = true
disallow_any_unimported = true
disallow_subclassing_any = true

# untyped
allow_untyped_globals = false
check_untyped_defs = true
disallow_incomplete_defs = true
disallow_untyped_calls = true
disallow_untyped_decorators = true
disallow_untyped_defs = true

# optionals
no_implicit_optional = true
strict_optional = true

# imports
follow_imports = "normal"
ignore_missing_imports = false

warn_no_return = true
warn_redundant_casts = true
warn_return_any = true
warn_unreachable = true
warn_unused_configs = true
warn_unused_ignores = true

strict_equality = true

# error formating
pretty = true
show_error_context = true
show_column_numbers = true
show_error_codes = true

[[tool.mypy.overrides]]
module = "tests.*"
ignore_errors = true

[[tool.mypy.overrides]]
module = ".venv.*"
ignore_errors = true

[tool.pylic]
# OSI approved licenses: https://opensource.org/licenses/
safe_licenses = [
    "MIT License",
    "BSD License",
    "GNU Lesser General Public License v2 (LGPLv2)",
    "Mozilla Public License 2.0 (MPL 2.0)",
    "Python Software Foundation License",
    "Apache Software License",
]
unsafe_packages = []
ignore_packages = []