103 lines
3.6 KiB
INI

[mypy]
plugins =
./tests/test_helpers/sqlalchemy_mypy_plugin.py,
pydantic.mypy
exclude = ^(venv/|build/|dist/|examples/transforms/setup.py)
ignore_missing_imports = yes
namespace_packages = no
# implicit_optional = no
strict_optional = yes
check_untyped_defs = yes
disallow_incomplete_defs = yes
disallow_untyped_decorators = yes
warn_unused_configs = yes
# eventually we'd like to enable these
disallow_untyped_defs = no
# try to be a bit more strict in certain areas of the codebase
[mypy-datahub]
# Allow implicit reexport for datahub's __init__.py
implicit_reexport = yes
[mypy-datahub.sdk]
# Allow implicit reexport for datahub.sdk's __init__.py
implicit_reexport = yes
[mypy-datahub.*]
ignore_missing_imports = no
implicit_reexport = no
[mypy-datahub.metadata.*]
# TODO: Remove this once all the code has been updated.
implicit_reexport = yes
[mypy-datahub.ingestion.*]
# TODO: Remove this once all the code has been updated.
implicit_reexport = yes
[mypy-datahub_provider.*]
ignore_missing_imports = no
[mypy-tests.*]
ignore_missing_imports = no
[mypy-google.protobuf.*]
# mypy sometimes ignores the above ignore_missing_imports = yes
# See https://github.com/python/mypy/issues/10632 and
# https://github.com/python/mypy/issues/10619#issuecomment-1174208395
# for a discussion of why this happens.
ignore_missing_imports = yes
[mypy-datahub.configuration.*]
disallow_untyped_defs = yes
[mypy-datahub.emitter.*]
disallow_untyped_defs = yes
[mypy-datahub.ingestion.api.*]
disallow_untyped_defs = yes
[mypy-datahub.ingestion.run.*]
disallow_untyped_defs = yes
[mypy-datahub.sql_parsing.*]
disallow_untyped_defs = yes
[mypy-datahub.utilities.*]
disallow_untyped_defs = yes
[tool:pytest]
asyncio_mode = auto
addopts = --cov=src --cov-report= --cov-config setup.cfg --strict-markers -p no:faker
markers =
slow: marks tests that are slow to run, including all docker-based tests (deselect with '-m not slow')
integration: marks all integration tests, across all batches (deselect with '-m "not integration"')
integration_batch_0: mark tests to run in batch 0 of integration tests. This is done mainly for parallelization in CI. Batch 0 is the default batch.
integration_batch_1: mark tests to run in batch 1 of integration tests
integration_batch_2: mark tests to run in batch 2 of integration tests
testpaths =
tests/unit
tests/integration
filterwarnings =
# Ignore some warnings that come from dependencies.
ignore:Deprecated call to \`pkg_resources.declare_namespace:DeprecationWarning
ignore:pkg_resources is deprecated as an API:DeprecationWarning
ignore:Did not recognize type:sqlalchemy.exc.SAWarning
ignore::datahub.configuration.pydantic_migration_helpers.PydanticDeprecatedSince20
ignore::datahub.configuration.common.ConfigurationWarning
ignore:The new datahub SDK:datahub.errors.ExperimentalWarning
# We should not be unexpectedly seeing API tracing warnings.
error::datahub.errors.APITracingWarning
[coverage:run]
# Because of some quirks in the way setup.cfg, coverage.py, pytest-cov,
# and tox interact, we should not uncomment the following line.
# See https://pytest-cov.readthedocs.io/en/latest/config.html and
# https://coverage.readthedocs.io/en/coverage-5.0/config.html.
# We also have some additional pytest/cov config options in tox.ini.
# source = src
[coverage:paths]
# This is necessary for tox-based coverage to be counted properly.
source =
src
*/site-packages
[coverage:report]
show_missing = true
exclude_lines =
pragma: no cover
@abstract
if TYPE_CHECKING:
omit =
# omit codegen
src/datahub/metadata/*