[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "pogo-scaled-estimators" version = "1.0a1" dependencies = [ "requests", "requests-cache", "rich", ] requires-python = ">=3.12" authors = [ { name = "Zoé Cassiopée Gauthier", email = "zoe.gauthier@blorp.dev" }, ] description = "Calculates scaled difficulty estimators from Pokebattler simulations." readme = "README.md" license = "MIT" keywords = [] classifiers = [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: Implementation :: CPython", ] [project.urls] "Source" = "https://git.blorp.dev/zo/pogo-scaled-estimators" [project.scripts] ase-cli = "pogo_scaled_estimators:main_cli" [tool.hatch.envs.lint] detached = true dependencies = [ "pyright", "ruff", ] [tool.hatch.envs.lint.scripts] all = ["style", "typing"] format = ["ruff format --fix {args:.}"] style = ["ruff check {args:.}"] typing = ["pyright"] [tool.ruff] target-version = "py312" line-length = 120 [tool.ruff.lint] select = [ # Note: these are ordered to match https://beta.ruff.rs/docs/rules/ "F", # PyFlakes "E", # pycodestyle errors "W", # pycodestyle warnings "I", # isort "N", # pep8-naming "UP", # pyupgrade "ASYNC", # flake8-async "BLE", # flake8-blind-except "FBT", # flake8-boolean-trap "B", # flake8-bugbear "A", # flake8-builtins "COM", # flake8-commas "C4", # flake8-comprehensions "DTZ", # flake8-datetimez "T10", # flake8-debugger "EM", # flake8-errmsg "ISC", # flake8-implicit-str-concat "PIE", # flake8-pie "PT", # flake8-pytest-style "Q", # flake8-quotes "RET", # flake8-return "SLOT", # flake8-slots "SIM", # flake8-simplify "TID", # flake8-tidy-imports "PTH", # flake8-pathlib "TD", # flake8-todo "PL", # PyLint "TRY", # tryceratops "NPY", # NumPy "RUF", # Ruff ] ignore = [ #----- Rules recommended by https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules "W191", # tab-identation "E111", # indentation-with-invalid-multiple "E114", # indentation-with-invalid-multiple-comment "E117", # over-indented "E501", # line-too-long "D206", # indent-with-spaces "D300", # triple-single-quotes "Q000", # bad-quotes-inline-string "Q001", # bad-quotes-multiline-string "Q002", # bad-quotes-docstring "Q003", # avoidable-escaped-quote "COM812", # missing-trailing-comma "COM819", # prohibited-trailing-comma "ISC001", # single-line-implicit-string-concatenation "ISC002", # multi-line-implicit-string-concatenation ] [tool.pyright] include = ["src/glimmer", "tests"] exclude = ["**/__pycache__"] reportMissingImports = true reportMissingTypeStubs = false pythonVersion = "3.12" pythonPlatform = "Linux" typeCheckingMode = "standard" strictListInference = true strictDictionaryInference = true strictSetInference = true reportAssertAlwaysTrue = "error" reportInvalidStringEscapeSequence = "error" reportSelfClsParameterName = "error" reportConstantRedefinition = "error" reportDeprecated = "error" reportDuplicateImport = "error" reportIncompatibleMethodOverride = "error" reportIncompatibleVariableOverride = "error" reportInconsistentConstructor = "error" reportMatchNotExhaustive = "warning" reportOverlappingOverload = "error" reportMissingSuperCall = "error" reportPrivateUsage = "warning" reportTypeCommentUsage = "error" reportUnnecessaryCast = "error" reportUnnecessaryComparison = "error" reportUnnecessaryContains = "error" reportUnnecessaryIsInstance = "error" reportUnusedClass = "warning" reportUnusedImport = "warning" reportUnusedFunction = "warning" reportUnusedVariable = "warning" reportUntypedBaseClass = "error" reportUntypedClassDecorator = "error" reportUntypedFunctionDecorator = "error" reportUntypedNamedTuple = "error" reportCallInDefaultInitializer = "error" reportImplicitOverride = "error" reportPropertyTypeMismatch = "warning" reportShadowedImports = "warning" reportUninitializedInstanceVariable = "warning" reportUnnecessaryTypeIgnoreComment = "warning" reportUnusedCallResult = "warning"