[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/*