<commit_before>[tool.black]
line-length = 100
target-version = ["py38"]

[tool.isort]
src_paths = [".", "tools", "tools/setup/emoji"]
known_third_party = "zulip"
profile = "black"
line_length = 100

[tool.mypy]
# Logistics of what code to check and how to handle the data.
scripts_are_modules = true
show_traceback = true
# See https://zulip.readthedocs.io/en/latest/testing/mypy.html#mypy-stubs-for-third-party-modules
# for notes on how we manage mypy stubs.
mypy_path = "$MYPY_CONFIG_FILE_DIR/stubs"
cache_dir = "$MYPY_CONFIG_FILE_DIR/var/mypy-cache"

# Enable strict mode, with some exceptions.
strict = true
disallow_subclassing_any = false
disallow_untyped_calls = false
disallow_untyped_decorators = false
warn_return_any = false

# Enable optional errors.
enable_error_code = [
    "redundant-expr",
    "truthy-bool",
    "ignore-without-code",
    "unused-awaitable",
]

# Display the codes needed for # type: ignore[code] annotations.
show_error_codes = true

# Warn of unreachable or redundant code.
warn_unreachable = true

# dmypy enables local_partial_types implicitly. We need mypy to align
# with this behavior.
local_partial_types = true

plugins = ["mypy_django_plugin.main"]

[[tool.mypy.overrides]]
module = ["zproject.configured_settings", "zproject.settings", "zproject.default_settings"]
no_implicit_reexport = false

[[tool.mypy.overrides]]
module = [
    "ahocorasick.*",
    "aioapns.*",
    "bitfield.*",
    "bmemcached.*",
    "cairosvg.*",
    "circuitbreaker.*",
    "coverage.*",
    "cssutils.*",
    "defusedxml.*", # https://github.com/tiran/defusedxml/issues/46
    "digitalocean.*",
    "disposable_email_domains.*",
    "django_auth_ldap.*",
    "django_bmemcached.*",
    "django_cte.*",
    "django_otp.*",
    "django_scim.*",
    "django_sendfile.*",
    "django_statsd.*",
    "DNS.*",
    "fakeldap.*",
    "gcm.*",
    "gitlint.*",
    "jsonref.*",
    "ldap.*",
    "moto.*", # https://github.com/spulec/moto/issues/4944
    "onelogin.*",
    "premailer.*",
    "pyinotify.*",
    "pyoembed.*",
    "pyuca.*",
    "re2.*",
    "requests_oauthlib.*", # https://github.com/requests/requests-oauthlib/issues/428
    "scim2_filter_parser.attr_paths",
    "scrapy.*", # https://github.com/scrapy/scrapy/issues/4041
    "social_core.*",
    "social_django.*",
    "sourcemap.*",
    "talon_core.*",
    "tlds.*",
    "twitter.*",
    "two_factor.*",
]
ignore_missing_imports = true

[tool.django-stubs]
django_settings_module = "zproject.settings"

[tool.ruff]
# See https://github.com/charliermarsh/ruff#rules for error code definitions.
extend-select = [
    "B", # bugbear
    "C", # comprehensions
    "M", # meta
    "U", # upgrade
    "W", # style warnings
]
ignore = [
    "B006", # Do not use mutable data structures for argument defaults
    "B007", # Loop control variable not used within the loop body
    "C408", # Unnecessary `dict` call (rewrite as a literal)
    "E402", # Module level import not at top of file
    "E501", # Line too long
    "E731", # Do not assign a lambda expression, use a def
]
line-length = 100
target-version = "py38"<commit_msg>ruff: Specify all selected errors.<commit_after>[tool.black]
line-length = 100
target-version = ["py38"]

[tool.isort]
src_paths = [".", "tools", "tools/setup/emoji"]
known_third_party = "zulip"
profile = "black"
line_length = 100

[tool.mypy]
# Logistics of what code to check and how to handle the data.
scripts_are_modules = true
show_traceback = true
# See https://zulip.readthedocs.io/en/latest/testing/mypy.html#mypy-stubs-for-third-party-modules
# for notes on how we manage mypy stubs.
mypy_path = "$MYPY_CONFIG_FILE_DIR/stubs"
cache_dir = "$MYPY_CONFIG_FILE_DIR/var/mypy-cache"

# Enable strict mode, with some exceptions.
strict = true
disallow_subclassing_any = false
disallow_untyped_calls = false
disallow_untyped_decorators = false
warn_return_any = false

# Enable optional errors.
enable_error_code = [
    "redundant-expr",
    "truthy-bool",
    "ignore-without-code",
    "unused-awaitable",
]

# Display the codes needed for # type: ignore[code] annotations.
show_error_codes = true

# Warn of unreachable or redundant code.
warn_unreachable = true

# dmypy enables local_partial_types implicitly. We need mypy to align
# with this behavior.
local_partial_types = true

plugins = ["mypy_django_plugin.main"]

[[tool.mypy.overrides]]
module = ["zproject.configured_settings", "zproject.settings", "zproject.default_settings"]
no_implicit_reexport = false

[[tool.mypy.overrides]]
module = [
    "ahocorasick.*",
    "aioapns.*",
    "bitfield.*",
    "bmemcached.*",
    "cairosvg.*",
    "circuitbreaker.*",
    "coverage.*",
    "cssutils.*",
    "defusedxml.*", # https://github.com/tiran/defusedxml/issues/46
    "digitalocean.*",
    "disposable_email_domains.*",
    "django_auth_ldap.*",
    "django_bmemcached.*",
    "django_cte.*",
    "django_otp.*",
    "django_scim.*",
    "django_sendfile.*",
    "django_statsd.*",
    "DNS.*",
    "fakeldap.*",
    "gcm.*",
    "gitlint.*",
    "jsonref.*",
    "ldap.*",
    "moto.*", # https://github.com/spulec/moto/issues/4944
    "onelogin.*",
    "premailer.*",
    "pyinotify.*",
    "pyoembed.*",
    "pyuca.*",
    "re2.*",
    "requests_oauthlib.*", # https://github.com/requests/requests-oauthlib/issues/428
    "scim2_filter_parser.attr_paths",
    "scrapy.*", # https://github.com/scrapy/scrapy/issues/4041
    "social_core.*",
    "social_django.*",
    "sourcemap.*",
    "talon_core.*",
    "tlds.*",
    "twitter.*",
    "two_factor.*",
]
ignore_missing_imports = true

[tool.django-stubs]
django_settings_module = "zproject.settings"

[tool.ruff]
# See https://github.com/charliermarsh/ruff#rules for error code definitions.
select = [
    "B", # bugbear
    "C", # comprehensions
    "E", # style errors
    "F", # flakes
    "M", # meta
    "U", # upgrade
    "W", # style warnings
]
ignore = [
    "B006", # Do not use mutable data structures for argument defaults
    "B007", # Loop control variable not used within the loop body
    "C408", # Unnecessary `dict` call (rewrite as a literal)
    "E402", # Module level import not at top of file
    "E501", # Line too long
    "E731", # Do not assign a lambda expression, use a def
]
line-length = 100
target-version = "py38"
{'fraction_non_alphanumeric': 0.15471637985978332, 'fraction_numerical': 0.014659018483110261, 'mean_word_length': 3.63589364844904, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 12, 'lorem ipsum': 0, 'www.': 0, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3547334', 'n_tokens_mistral': 2368, 'n_tokens_neox': 2261, 'n_words': 484}