[flake8] max-complexity = 15 ignore = # Ignore: line length issues, since black's formatter will take care of them. E501, # Ignore: 1 blank line required before class docstring. D203, # See https://stackoverflow.com/a/57074416. W503, # See https://github.com/psf/black/issues/315. E203 exclude = .git, src/datahub/metadata, venv, .tox, __pycache__ per-file-ignores = # imported but unused __init__.py: F401 ban-relative-imports = true [mypy] plugins = sqlmypy, pydantic.mypy exclude = ^(venv|build|dist)/ ignore_missing_imports = yes 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.*] ignore_missing_imports = no [mypy-tests.*] ignore_missing_imports = no [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.utilities.*] disallow_untyped_defs = yes [tool:pytest] addopts = --cov=src --cov-report term-missing --cov-config setup.cfg --strict-markers markers = integration: marks tests to only run in integration (deselect with '-m "not integration"') slow_integration: marks tests that are too slow to even run in integration (deselect with '-m "not slow_integration") testpaths = tests/unit tests/integration [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] # The fail_under value ensures that at least some coverage data is collected. # We override its value in the tox config. show_missing = true exclude_lines = pragma: no cover @abstract if TYPE_CHECKING: omit = # omit codegen src/datahub/metadata/* # omit example dags src/datahub_provider/example_dags/*