------------------------------------------------------------------- Mon Nov 13 14:21:57 UTC 2023 - Ondřej Súkup - update to 0.1.5 * Preview features * [flake8-bandit] Implement mako-templates (S702) * [flake8-trio] Implement TRIO105 * [flake8-trio] Implement TRIO109 * [flake8-trio] Implement TRIO110 * [flake8-trio] Implement TRIO115 * [refurb] Implement type-none-comparison (FURB169) * Flag all comparisons against builtin types in E721 * Make SIM118 fix as safe when the expression is a known dictionary * Formatter * Fix multiline lambda expression statement formatting * CLI * Add hidden --extension to override inference of source type from file extension * Configuration * Account for selector specificity when merging extend_unsafe_fixes and override extend_safe_fixes * Add support for disabling cache with RUFF_NO_CACHE environment variable * Bug fixes * [E721] Flag comparisons to memoryview * Allow collapsed-ellipsis bodies in other statements * Avoid D301 autofix for u prefixed strings * Only flag flake8-trio rules when trio import is present * Reject more syntactically invalid Python programs * Avoid raising TRIO115 violations for trio.sleep(...) calls with non-number values * Fix F841 false negative on assignment to multiple variables * Documentation * Fix link to isort known-first-party * Add notes on fix safety to a few rules * Add missing toml config tabs * Add instructions for configuration of Emacs * Improve detail link contrast in dark mode * Fix typo in example * Added tabs for configuration files in the documentation * Recommend project.requires-python over target-version * Add singleton escape hatch to B008 documentation * Fix tab configuration docs ------------------------------------------------------------------- Tue Nov 7 11:29:10 UTC 2023 - Ondřej Súkup - Update to 0.1.4 * Preview features * [flake8-trio] Implement timeout-without-await (TRIO001) * [numpy] Implement NumPy 2.0 migration rule (NPY200) * [pylint] Implement bad-open-mode (W1501) * [pylint] Implement import-outside-toplevel (C0415) rule * [pylint] Implement useless-with-lock (W2101) * [pyupgrade] Implement timeout-error-alias (UP041) * [refurb] Implement isinstance-type-none (FURB168) * Detect confusable Unicode-to-Unicode units in RUF001, RUF002, and RUF003 * Add newline after module docstrings in preview style * Formatter * Add a note on line-too-long to the formatter docs * Preserve trailing statement semicolons when using fmt: skip * Preserve trailing semicolons when using fmt: off * Avoid duplicating linter-formatter compatibility warnings * Avoid inserting a newline after function docstrings * Insert newline between docstring and following own line comment * Split tuples in return positions by comma first * Avoid treating byte strings as docstrings * Add --line-length option to format command * Avoid parenthesizing unsplittable because of comments * CLI * Add --output-format to ruff rule and ruff linter * Bug fixes * Respect --force-exclude in lint.exclude and format.exclude * Respect --extend-per-file-ignores on the CLI * Extend bad-dunder-method-name to permit __index__ * Fix panic with 8 in octal escape * Avoid raising D300 when both triple quote styles are present * Consider unterminated f-strings in FStringRanges * Avoid including literal shell=True for truthy, non-True diagnostics * Avoid triggering single-element test for starred expressions * Detect and ignore Jupyter automagics * Fix invalid E231 error with f-strings * Avoid triggering NamedTuple rewrite with starred annotation * Avoid un-setting bracket flag in logical lines * Place 'r' prefix before 'f' for raw format strings * Remove trailing periods from NumPy 2.0 code actions * Fix bug where PLE1307 was raised when formatting %c with characters * Remove unicode flag from comparable * Improve B015 message * Use fixedOverflowWidgets for playground popover * Mark byte_bounds as a non-backwards-compatible NumPy 2.0 change * Internals * Add a dedicated cache directory per Ruff version * Allow selective caching for --fix and --diff * Improve performance of comment parsing * Improve performance of string parsing * Use a dedicated sort key for isort import sorting ------------------------------------------------------------------- Fri Oct 27 07:53:47 UTC 2023 - Ondřej Súkup - Update to 0.1.3 * Formatter * Avoid space around pow for None, True and False * Avoid sorting all paths in the format command * Insert necessary blank line between class and leading comments * Avoid introducing new parentheses in annotated assignments * Refine the warnings about incompatible linter options * Add test and basic implementation for formatter preview mode * Refine warning about incompatible isort settings * Only omit optional parentheses for starting or ending with parentheses * Use source type to determine parser mode for formatting * Don't warn about magic trailing comma when isort.force-single-line is true * Use SourceKind::diff for formatter * Fix fmt:off with trailing child comment * Formatter parentheses support for IpyEscapeCommand * Linter * [pylint] Add buffer methods to bad-dunder-method-name (PLW3201) exclusions * Match rule prefixes from external codes setting in unused-noqa * Use line-length setting for isort in lieu of pycodestyle.max-line-length * Update fix for unnecessary-paren-on-raise-exception to unsafe for unknown types * Correct quick fix message for W605 * Documentation * Fix typo in max-doc-length documentation * Improve documentation around linter-formatter conflicts * Fix link to error suppression documentation in unused-noqa * Add external option to unused-noqa documentation * Add title attribute to icons * Clarify unsafe case in RSE102 * Fix skipping formatting examples * docs: fix name of magic-trailing-comma option in README * Add note about scope of rule changing in versioning policy * Document: Fix default lint rules * Fix a wrong setting in configuration.md * Fix misspelled TOML headers in the tutorial ------------------------------------------------------------------- Wed Oct 25 12:38:40 UTC 2023 - ecsos - Add %{?sle15_python_module_pythons} ------------------------------------------------------------------- Wed Oct 25 11:04:42 UTC 2023 - Ondřej Súkup - Update to 0.1.2 * This release includes the Beta version of the Ruff formatter — an extremely fast, Black-compatible Python formatter * Preview features * [pylint] Implement non-ascii-module-import (C2403) * [pylint] implement non-ascii-name (C2401) * [pylint] Implement unnecessary-lambda (W0108) * [refurb] Implement read-whole-file (FURB101) * Add fix for E223, E224, and E242 * Add fix for E225, E226, E227, and E228 * Add fix for E252 * Add fix for E261 * Add fix for E273 and E274 * Add fix for E275 * Update SIM401 to catch ternary operations * Update E721 to allow is and is not for direct type comparisons * Rule changes * Add backports.strenum to deprecated-imports * Update SIM112 to ignore https_proxy, http_proxy, and no_proxy * Update fix for literal-membership (PLR6201) to be unsafe * Update fix for mutable-argument-defaults (B006) to be unsafe * Formatter * Change line-ending default to auto * Respect parenthesized generators in has_own_parentheses * Add caching to formatter * Remove --line-length option from format command * Add formatter to line-length documentation * Warn about incompatible formatter options * Fix range of unparenthesized tuple subject in match statement * Remove experimental formatter warning * Don't move type param opening parenthesis comment * Update versions in format benchmark script * Avoid loading files for cached format results * CLI * Show the ruff format command in help menus * Add ruff version command with long version display * Configuration * New pycodestyle.max-line-length option * Bug fixes * Detect sys.version_info slices in outdated-version-block * Avoid if-else simplification for TYPE_CHECKING blocks * Avoid false-positive print separator diagnostic with starred argument * Documentation * Fix message for too-many-arguments lint * Fix extend-unsafe-fixes and extend-safe-fixes example * Add links to flake8-import-conventions options * Rework the documentation to incorporate the Ruff formatter * Fix Options JSON schema description * Fix typo (pytext -> pytest) * Improve magic-value-comparison example in docs ------------------------------------------------------------------- Fri Oct 20 10:09:22 UTC 2023 - Ondřej Súkup - update to 0.1.1 * Rule changes * Add unsafe fix for escape-sequence-in-docstring (D301) * Configuration * Respect #(deprecated) attribute in configuration options * Add [format|lint].exclude options * Respect tab-size setting in formatter * Add lint.preview * Preview features * [pylint] Implement literal-membership (PLR6201) * [pylint] Implement too-many-boolean-expressions (PLR0916) * [pylint] Implement misplaced-bare-raise (E0704) * [pylint] Implement global-at-module-level (W0604) * [pylint] Implement unspecified-encoding (PLW1514) * Add fix for triple-single-quotes (D300) * Formatter * New code style badge for ruff format * Fix comments outside expression parentheses * Add --target-version to ruff format * Skip over parentheses when detecting in keyword * Add --diff option to ruff format * Insert newline after nested function or class statements * Use pass over ellipsis in non-function/class contexts * Bug fixes * Lazily evaluate all PEP 695 type alias values * Avoid failed assertion when showing fixes from stdin * Avoid flagging HTTP and HTTPS literals in urllib-open * Avoid flagging bad-dunder-method-name for _ * Remove Python 2-only methods from URLOpen audit * Use set bracket replacement for iteration-over-set to preserve whitespace and comments * Documentation * Update tutorial to match revised Ruff defaults * Update rule B005 docs * Update GitHub actions example in docs to use --output-format * Document lint.preview and format.preview * Clarify that new rules should be added to RuleGroup::Preview. ------------------------------------------------------------------- Tue Oct 17 10:38:21 UTC 2023 - Ondřej Súkup - update to 0.1.0 * Breaking changes + Unsafe fixes are no longer displayed or applied without opt-in + Drop formatting specific rules from the default set + The deprecated format setting has been removed + The format setting cannot be used to configure the output format, use output-format instead + The RUFF_FORMAT environment variable is ignored, use RUFF_OUTPUT_FORMAT instead + The --format option has been removed from ruff check, use --output-format instead * Rule changes + Extend reimplemented-starmap (FURB140) to catch calls with a single and starred argument + Improve cases covered by RUF015 + Update SIM15 to allow open followed by close + Respect msgspec.Struct default-copy semantics in RUF012 + Add sqlalchemy methods to `flake8-boolean-trap`` exclusion list + Add fix for PLR1714 + Add fix for PIE804 + Add fix for PLC0208 + Add fix for PYI055 + Update non-pep695-type-alias to require --unsafe-fixes outside of stub files + Improve fix message for UP018 + Update PLW3201 to support Enum sunder names * Preview features + Only show warnings for empty preview selectors when enabling rules + Add unnecessary-key-check to simplify key in dct and dct[key] to dct.get(key) + Add assignment-in-assert to prevent walrus expressions in assert statements + [refurb] Add single-item-membership-test (FURB171) + [pylint] Add and-or-ternary (R1706) + New rules are added in preview. * Configuration + Add unsafe-fixes setting + Add extend-safe-fixes and extend-unsafe-fixes for promoting and demoting fixes * CLI + Added --unsafe-fixes option for opt-in to display and apply unsafe fixes + Fix use of deprecated --format option in warning + Show changed files when running under --check + Write summary messages to stderr when fixing via stdin instead of omitting them + Update fix summary message in check --diff to include unsafe fix hints + Add notebook cell field to JSON output format + Rename applicability levels to Safe, Unsafe, and Display * Bug fixes + Fix bug where f-strings were allowed in match pattern literal + Fix SIM110 with a yield in the condition + Preserve trailing comments in C414 fixes + Check sequence type before triggering unnecessary-enumerate len suggestion + Use correct start location for class/function clause header + Fix incorrect fixes for SIM101 + Format comment before parameter default correctly + Fix E251 false positive inside f-strings + Allow bindings to be created and referenced within annotations + Show per-cell diffs when analyzing notebooks over stdin + Avoid curly brace escape in f-string format spec + Fix lexing single-quoted f-string with multi-line format spec + Consider nursery rules to be in-preview for ruff rule + Report precise location for invalid conversion flag + Visit pattern match guard as a boolean test + Respect --unfixable in ISC rules + Fix edge case with PIE804 + Show custom message in PTH118 for Path.joinpath with starred arguments + Fix false negative in outdated-version-block when using greater than comparisons + Avoid converting f-strings within Django gettext calls + Fix false positive in PLR6301 + Treat type aliases as typing-only expressions e.g. resolves false positive in TCH004 + Resolve cache-dir relative to project root + Respect subscripted base classes in type-checking rules e.g. resolves false positive in TCH003 + Fix JSON schema limit for line-length + Fix commented-out coalesce keyword * Documentation + Document reimplemented-starmap performance effects + Default to following the system dark/light mode + Add documentation for fixes + Fix typo in docs of PLR6301 + Update UP038 docs to note that it results in slower code + crlf -> cr-lf + Add an example of an unsafe fix + Fix documented examples for unnecessary-subscript-reversal + Correct error in tuple example in ruff formatter docs + Add versioning policy to documentation + Fix invalid code in FURB177 example * Formatter + Less scary ruff format message + Remove spaces from import statements + Formatter quoting for f-strings with triple quotes + Update ruff_python_formatter generate.py comment + Document one-call chaining deviation + Allow f-string modifications in line-shrinking cases + Add trailing comment deviation to README + Add trailing zero between dot and exponential + Force parentheses for power operations in unary expressions * Playground + Fix playground Quick Fix action ------------------------------------------------------------------- Fri Oct 13 16:22:47 UTC 2023 - Ondřej Súkup - initial package