[build-system] requires = ["hatchling", "hatch-gradle-version>=0.3.0"] build-backend = "hatchling.build" # project metadata [project] name = "hexdoc" dynamic = ["version"] authors = [ { name="object-Object", email="object@objectobject.ca" }, { name="Alwinfy" }, ] readme = "doc/README.md" classifiers = [ "Framework :: Hatch", ] requires-python = ">=3.11" dependencies = [ "typing_extensions>=4.7.0", "importlib_resources>=6.0.1", "pydantic>=2.3.0", "Jinja2>=3.1.2", "pyjson5>=1.6.3", ] [project.optional-dependencies] dev = [ "black==23.7.0", "isort==5.12.0", "pytest>=7.3.1", "syrupy>=4.0.2", ] [project.scripts] hexdoc = "hexdoc.hexdoc:main" # Gradle version/deps [tool.hatch.version] scheme = "gradle" source = "gradle-properties" py-path = "doc/src/hexdoc/__version__.py" # directory inclusion [tool.hatch.build] only-include = [ "doc/src/hexdoc", "gradle.properties", ] artifacts = [ "/doc/src/hexdoc/_export/generated", ] [tool.hatch.build.targets.wheel] sources = ["doc/src"] # hexdoc entry points [project.entry-points."hexdoc.export"] hexcasting = "hexdoc._export:__resources__" [project.entry-points."hexdoc.Page"] patchouli = "hexdoc.patchouli.page.pages" hexcasting = "hexdoc.hexcasting.page.hex_pages" [project.entry-points."hexdoc.Recipe"] minecraft = "hexdoc.minecraft.recipe.recipes" hexcasting = "hexdoc.hexcasting.hex_recipes" [project.entry-points."hexdoc.ItemIngredient"] minecraft = "hexdoc.minecraft.recipe.ingredients" hexcasting = "hexdoc.hexcasting.hex_recipes" [project.entry-points."hexdoc.BrainsweepeeIngredient"] hexcasting = "hexdoc.hexcasting.hex_recipes" # Pytest [tool.pytest.ini_options] addopts = ["--import-mode=importlib"] [tool.coverage.report] include_namespace_packages = true # formatting and linting [tool.isort] profile = "black" combine_as_imports = true known_first_party = ["hexdoc"] [tool.pyright] pythonVersion = "3.11" pythonPlatform = "All" include = [ "doc/src/hexdoc", "doc/src/hexdoc_templates", ] # mostly we use strict mode # but pyright doesn't allow decreasing error severity in strict mode # so we need to manually specify all of the strict mode overrides so we can do that :/ typeCheckingMode = "basic" strictDictionaryInference = true strictListInference = true strictSetInference = true reportAssertAlwaysTrue = "error" reportConstantRedefinition = "error" reportDeprecated = "error" reportDuplicateImport = "error" reportFunctionMemberAccess = "error" reportIncompatibleMethodOverride = "error" reportIncompatibleVariableOverride = "error" reportIncompleteStub = "error" reportInconsistentConstructor = "error" reportInvalidStringEscapeSequence = "error" reportInvalidStubStatement = "error" reportInvalidTypeVarUse = "error" reportMatchNotExhaustive = "error" reportMissingParameterType = "error" reportMissingTypeStubs = "error" reportOverlappingOverload = "error" reportSelfClsParameterName = "error" reportTypeCommentUsage = "error" reportUnknownParameterType = "error" reportUnnecessaryCast = "error" reportUnnecessaryContains = "error" reportUnsupportedDunderAll = "error" reportUntypedBaseClass = "error" reportUntypedClassDecorator = "error" reportUntypedFunctionDecorator = "error" reportUntypedNamedTuple = "error" reportWildcardImportFromLibrary = "error" reportMissingTypeArgument = "warning" reportPrivateUsage = "warning" reportUnknownArgumentType = "warning" reportUnknownLambdaType = "warning" reportUnknownMemberType = "warning" reportUnnecessaryComparison = "warning" reportUnnecessaryIsInstance = "warning" reportUnusedClass = "warning" reportUnusedExpression = "warning" reportUnusedFunction = "warning" reportUnusedImport = "warning" reportUnusedVariable = "warning" reportUnknownVariableType = "none"