代码拉取完成,页面将自动刷新
# ########################
# ##### PYRIGHT
# ########################
# [Docs root]
# https://github.com/microsoft/pyright/tree/main/docs
# [Config option reference]
# https://github.com/microsoft/pyright/blob/main/docs/configuration.md
# Pyright does not have a docs site, but the documentation (a collection of
# markdown files in the GH repo, linked above) is pretty thorough.
[tool.pyright]
include = [
".buildkite/dagster-buildkite",
"docs/sphinx/_ext/dagster-sphinx",
"python_modules",
"examples",
"integration_tests",
"scripts",
]
# Unfortunately pyright does not offer a way to extend the default exclusions, so we have to
# reiterate them here if we want to add anything else.
exclude = [
"**/node_modules",
"**/__pycache__",
"**/__generated__",
"**/vendor",
"**/_vendored",
"**/.tox",
".git",
"**/.venv*",
"**/build",
]
# These two settings point pyright to a python environment to resolve imports against. This virtual
# environment is defined in the `pyright` tox environment in the tox section below-- that
# environment must be built before pyright can run correctly.
venv = ".venv"
venvPath = "pyright/master"
# Minimum version of Python on which code must run. This determines the standard library stubs used by
# pyright.
pythonVersion = "3.9"
# Disable reading type annotations from libraries that are not explicitly marked as typed (i.e. that
# include a py.typed file). All imports from these libraries are given the `Unknown` type (i.e.
# `Any`). This setting does not affect `py.typed` libraries.
useLibraryCodeForTypes = false
# We use ruff for this.
reportInvalidStringEscapeSequence = false
# As of 2023-02-02, there are still many `py.typed` libs that are not compliant with the standards
# for defining a public API.
reportPrivateImportUsage = false
# Since we only use pyright, there is no need to suppress type errors that pyright does not
# recognize.
reportUnnecessaryTypeIgnoreComment = "warning"
# Skip analyzing unannotated code in examples to facilitate terse code.
executionEnvironments = [
{ root = "examples", analyzeUnannotatedFunctions=false },
{ root = "python_modules" },
{ root = "integration_tests" }
]
# ########################
# ##### PYTEST
# ########################
[tool.pytest.ini_options]
filterwarnings = [
"ignore::DeprecationWarning",
"ignore::UserWarning",
"ignore::pytest.PytestCollectionWarning",
]
timeout = 240
addopts = "-ra"
# ########################
# ##### RUFF
# ########################
# [Docs root]
# https://beta.ruff.rs/docs/
# [Config option reference]
# https://beta.ruff.rs/docs/configuration/
#
# As of 2022-12-05, the entire documentation of Ruff is in its very long
# README.
[tool.ruff]
target-version = "py39"
# *.py, *.ipy are included by default
extend-include = ["*.ipynb"]
extend-exclude = [
"*/__generated__/*",
"*/dagster_airflow/vendor/*",
"*/_vendored/*",
"*/snapshots/*",
"python_modules/libraries/dagstermill/dagstermill_tests/notebooks/cli_test_scaffold.ipynb",
]
# Codebase-wide default line length. Override in package-specific pyproject.toml where a different
# length is desired.
line-length = 100
# Fail if Ruff is not running this version.
required-version = "0.11.5"
[tool.ruff.lint]
# we only want to format notebooks, not lint them
exclude = ["*.ipynb"]
ignore = [
# (missing public docstrings) These work off of the Python sense of "public", rather than our
# bespoke definition based off of `@public`. When ruff supports custom plugins then we can write
# appropriate rules to require docstrings for `@public`.
"D100",
"D101",
"D102",
"D103",
"D104",
"D105",
"D106",
"D107",
# (docstring imperative mood) Overly restrictive.
"D401",
# (module level import not at top) There are several places where we use e.g.
# warnings.filterwarings calls before imports.
"E402",
# (line too long): This fires for comments, which the ruff formatter won't auto-wrap. Disabling
# until there is an autoformat solution available for comments.
"E501",
# (no type comparison): There are a few places where we use `== type(None)` which are more clear
# than the equivalent `isinstance` check.
'E721',
# (bare exception): There are many places where we want to catch a maximally generic exception.
'E722',
# (no assign lambda): existing code assigns lambdas in a few places. With ruff formatting
# requiring extra empty lines between defs, disallowing lambda assignment can make code less
# readable.
"E731",
# (try-except-in-loop) we use this pattern in many places and the performance impact is negligible
"PERF203",
# (no concatenation) Existing codebase has many concatentations, no reason to disallow them.
"RUF005",
# (use ClassVar for attr declarations with defaults) This is a good rule for vanilla Python, but
# triggers false positives for many libs that have DSLs that make use of attr defaults.
"RUF012",
##### TEMPORARY DISABLES
# (assorted docstring rules) There are too many violations of these to enable
# right now, but we should enable after fixing the violations.
"D200", # (one-line docstring should fit)
"D205", # (blank line after summary)
"D417", # (missing arg in docstring)
# (assorted perf rules) We have a lot of violations, enable when autofix is available
"PERF401", # (manual-list-comprehension)
"PERF402", # (manual-list-copy)
]
# By default, ruff only uses all "E" (pycodestyle) and "F" (pyflakes) rules.
# Here we append to the defaults.
select = [
# (flake8-builtins) detect shadowing of python builtin symbols by variables and arguments.
# Attributes are OK (which is why A003) is not included here.
"A001",
"A002",
# (useless expression): Expressions that aren't assigned to anything are typically bugs.
"B018",
# (static key dict comprehension): Flag reuse of a key in dict comprehensions.
"B035",
# (pydocstyle) Docstring-related rules. A large subset of these are ignored by the
# "convention=google" setting, we set under tool.ruff.pydocstyle.
"D",
# (pycodestyle) pycodestyle rules
"E",
# (pyflakes) pyflakes rules
"F",
# (isort) detect improperly sorted imports
"I001",
# ban relative imports
"TID252",
# (performance) perflint rules
"PERF",
# (pylint) use all pylint rules from categories "Convention", "Error", and "Warning" (ruff
# currently implements only a subset of pylint's rules)
"PLE",
"PLW",
# (no commented out code) keep commented out code blocks out of the codebase
# "ERA001",
# (ruff-specific) Enable all ruff-specific checks (i.e. not ports of
# functionality from an existing linter).
"RUF",
# (private member access) Flag access to `_`-prefixed symbols. By default the various special
# methods on `NamedTuple` are ignored (e.g. `_replace`).
"SLF001",
# (flake8-type-checking) Auto-sort imports into TYPE_CHECKING blocks depending on whether
# they are runtime or type-only imports.
"TCH",
# (banned-api) Flag use of banned APIs. See tool.ruff.flake8-tidy-imports.banned-api for details.
"TID251",
# (disallow print statements) keep debugging statements out of the codebase
"T20",
# (pyupgrade) auto-upgrade syntax to newer versions of Python
"UP",
# (invalid escape sequence) flag errant backslashes
"W605",
]
[tool.ruff.lint.flake8-builtins]
# We use `id` in many places and almost never want to use the python builtin.
builtins-ignorelist = ["id"]
[tool.ruff.lint.flake8-tidy-imports.banned-api]
"__future__.annotations".msg = "Directly quote annotations instead."
[tool.ruff.lint.isort]
# Combine multiple `from foo import bar as baz` statements with the same source
# (`foo`) into a single statement.
combine-as-imports = true
# In cases where imports are automatically removed, allows the imports to be automatically collapsed
split-on-trailing-comma = false
# Imports of the form `from foo import bar as baz` show one `import bar as baz`
# per line. Useful for __init__.py files that just re-export symbols.
force-wrap-aliases = true
[tool.ruff.lint.flake8-tidy-imports]
# Disallow all relative imports.
ban-relative-imports = "all"
[tool.ruff.lint.per-file-ignores]
# Don't format docstrings in alembic migrations.
"**/alembic/versions/*.py" = ["D"]
"examples/docs_snippets/docs_snippets/guides/etl/transform-dbt/dbt_definitions*.py" = ["I001"]
[tool.ruff.lint.pydocstyle]
# Enforce google-style docstrings. This is equivalent to ignoring a large number of pydocstyle (D)
# rules incompatible with google-style docstrings. See:
# https://google.github.io/styleguide/pyguide.html#383-functions-and-methods
convention = "google"
[tool.ruff.format]
exclude = ["examples/docs_snippets/docs_snippets/guides/etl/transform-dbt/dbt_definitions*.py"]
[tool.dagster]
module_name = "dagster_test.toys.repo"
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。