Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OPT: Update all non-major dependencies ⬆️ #125

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 1, 2024

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
black (changelog) 24.3.0 -> 24.4.2 age adoption passing confidence
freezegun (changelog) 1.4.0 -> 1.5.1 age adoption passing confidence
mkdocs-git-revision-date-localized-plugin 1.2.4 -> 1.2.6 age adoption passing confidence
mkdocs-material (changelog) 9.5.17 -> 9.5.27 age adoption passing confidence
mkdocstrings (changelog) 0.24.3 -> 0.25.1 age adoption passing confidence
mypy (source, changelog) 1.9.0 -> 1.10.0 age adoption passing confidence
pytest (changelog) 8.1.1 -> 8.2.2 age adoption passing confidence
pytest-asyncio (changelog) 0.23.6 -> 0.23.7 age adoption passing confidence
ruff (source, changelog) 0.3.5 -> 0.4.10 age adoption passing confidence

Release Notes

psf/black (black)

v24.4.2

Compare Source

This is a bugfix release to fix two regressions in the new f-string parser introduced in
24.4.1.

Parser
  • Fix regression where certain complex f-strings failed to parse (#​4332)
Performance
  • Fix bad performance on certain complex string literals (#​4331)

v24.4.1

Compare Source

Highlights
  • Add support for the new Python 3.12 f-string syntax introduced by PEP 701 (#​3822)
Stable style
  • Fix crash involving indented dummy functions containing newlines (#​4318)
Parser
  • Add support for type parameter defaults, a new syntactic feature added to Python 3.13
    by PEP 696 (#​4327)
Integrations
  • Github Action now works even when git archive is skipped (#​4313)

v24.4.0

Compare Source

Stable style
  • Fix unwanted crashes caused by AST equivalency check (#​4290)
Preview style
  • if guards in case blocks are now wrapped in parentheses when the line is too long.
    (#​4269)
  • Stop moving multiline strings to a new line unless inside brackets (#​4289)
Integrations
  • Add a new option use_pyproject to the GitHub Action psf/black. This will read the
    Black version from pyproject.toml. (#​4294)
spulec/freezegun (freezegun)

v1.5.1

Compare Source

  • Fix the typing of the tick() method, and improve it's behaviour.

v1.5.0

Compare Source

  • The default ignore list now contains the queue-package
  • Added a missing move_to-function when calling freeze_time(tick=True)
  • Fixes a rounding error in time.time_ns()
  • Fixed a bug where the default ignore list could not be empty (configure(default_ignore_list=[]))
  • All tick() methods now return the new datetime (instead of None)
  • Type improvements
timvink/mkdocs-git-revision-date-localized-plugin (mkdocs-git-revision-date-localized-plugin)

v1.2.6: revision-date-localized v1.2.6

Compare Source

What's Changed

Full Changelog: timvink/mkdocs-git-revision-date-localized-plugin@v1.2.5...v1.2.6

v1.2.5: revision-date-localized v1.2.5

Compare Source

What's Changed

New Contributors

Full Changelog: timvink/mkdocs-git-revision-date-localized-plugin@v1.2.4...v1.2.5

squidfunk/mkdocs-material (mkdocs-material)

v9.5.27: mkdocs-material-9.5.27

Compare Source

  • Updated Estonian translations

Thanks to @​Eilyre for their contributions

v9.5.26: mkdocs-material-9.5.26

Compare Source

  • Fixed #​7232: Tab switches on scroll when linking tabs (9.5.19 regression)
  • Fixed #​7230: Blog author avatar broken when referring to local file

v9.5.25: mkdocs-material-9.5.25

Compare Source

  • Fixed #​7209: Tags plugin crashing on numeric tags

v9.5.24: mkdocs-material-9.5.24

Compare Source

  • Fixed #​7187: Version selector title rendering issue

v9.5.23: mkdocs-material-9.5.23

Compare Source

  • Fixed #​7183: Edge case in anchor navigation when using instant navigation
  • Fixed #​6436: Version selector not showing version alias

v9.5.22: mkdocs-material-9.5.22

Compare Source

  • Fixed #​7170: Copy button adds empty lines for line spans (9.5.18 regression)
  • Fixed #​7160: Version switching doesn't stay on page (9.5.5 regression)
  • Fixed #​5619: Links in Mermaid.js diagrams not discernible

v9.5.21: mkdocs-material-9.5.21

Compare Source

  • Fixed #​7133: Ensure latest version of Mermaid.js is used
  • Fixed #​7125: Added warning for dotfiles in info plugin

Thanks to @​kamilkrzyskow for their contributions

v9.5.20: mkdocs-material-9.5.20

Compare Source

  • Fixed deprecation warning in privacy plugin (9.5.19 regression)
  • Fixed #​7119: Tags plugin emits deprecation warning (9.5.19 regression)
  • Fixed #​7118: Social plugin crashes if fonts are disabled (9.5.19 regression)
  • Fixed #​7085: Social plugin crashes on Windows when downloading fonts

v9.5.19: mkdocs-material-9.5.19

Compare Source

  • Updated MkDocs to 1.6 and limited version to < 2
  • Updated Docker image to latest Alpine Linux
  • Removed setup.py, now that GitHub fully understands pyproject.toml
  • Improved interop of social plugin with third-party MkDocs themes
  • Fixed #​7099: Blog reading time not rendered correctly for Japanese
  • Fixed #​7097: Improved resilience of tags plugin when no tags are given
  • Fixed #​7090: Active tab indicator in nested content tabs rendering bug

v9.5.18: mkdocs-material-9.5.18

Compare Source

  • Refactored tooltips implementation to fix positioning issues
  • Fixed #​7044: Rendering glitch when hovering contributor avatar in Chrome
  • Fixed #​7043: Highlighted lines in code blocks cutoff on mobile
  • Fixed #​6910: Incorrect position of tooltip for page status in sidebar
  • Fixed #​6760: Incorrect position and overly long tooltip in tables
  • Fixed #​6488: Incorrect position and cutoff tooltip in content tabs
mkdocstrings/mkdocstrings (mkdocstrings)

v0.25.1

Compare Source

Compare with 0.25.0

Bug Fixes

v0.25.0

Compare Source

Compare with 0.24.3

Features
  • Support once parameter in logging methods, allowing to log a message only once with a given logger (1532b59 by Timothée Mazzucotelli).
  • Support blank line between ::: path and YAML options (d799d2f by Timothée Mazzucotelli). Issue-450
Code Refactoring
  • Allow specifying name of template loggers (c5b5f69 by Timothée Mazzucotelli).
python/mypy (mypy)

v1.10.0

Compare Source

pytest-dev/pytest (pytest)

v8.2.2

Compare Source

pytest 8.2.2 (2024-06-04)

Bug Fixes

  • #​12355: Fix possible catastrophic performance slowdown on a certain parametrization pattern involving many higher-scoped parameters.
  • #​12367: Fix a regression in pytest 8.2.0 where unittest class instances (a fresh one is created for each test) were not released promptly on test teardown but only on session teardown.
  • #​12381: Fix possible "Directory not empty" crashes arising from concurent cache dir (.pytest_cache) creation. Regressed in pytest 8.2.0.

Improved Documentation

  • #​12290: Updated Sphinx theme to use Furo instead of Flask, enabling Dark mode theme.
  • #​12356: Added a subsection to the documentation for debugging flaky tests to mention
    lack of thread safety in pytest as a possible source of flakyness.
  • #​12363: The documentation webpages now links to a canonical version to reduce outdated documentation in search engine results.

v8.2.1

Compare Source

pytest 8.2.1 (2024-05-19)

Improvements

  • #​12334: Support for Python 3.13 (beta1 at the time of writing).

Bug Fixes

  • #​12120: Fix [PermissionError]{.title-ref} crashes arising from directories which are not selected on the command-line.
  • #​12191: Keyboard interrupts and system exits are now properly handled during the test collection.
  • #​12300: Fixed handling of 'Function not implemented' error under squashfuse_ll, which is a different way to say that the mountpoint is read-only.
  • #​12308: Fix a regression in pytest 8.2.0 where the permissions of automatically-created .pytest_cache directories became rwx------ instead of the expected rwxr-xr-x.

Trivial/Internal Changes

  • #​12333: pytest releases are now attested using the recent Artifact Attestation support from GitHub, allowing users to verify the provenance of pytest's sdist and wheel artifacts.

v8.2.0

Compare Source

pytest 8.2.0 (2024-04-27)

Deprecations

  • #​12069: A deprecation warning is now raised when implementations of one of the following hooks request a deprecated py.path.local parameter instead of the pathlib.Path parameter which replaced it:

    • pytest_ignore_collect{.interpreted-text role="hook"} - the path parameter - use collection_path instead.
    • pytest_collect_file{.interpreted-text role="hook"} - the path parameter - use file_path instead.
    • pytest_pycollect_makemodule{.interpreted-text role="hook"} - the path parameter - use module_path instead.
    • pytest_report_header{.interpreted-text role="hook"} - the startdir parameter - use start_path instead.
    • pytest_report_collectionfinish{.interpreted-text role="hook"} - the startdir parameter - use start_path instead.

    The replacement parameters are available since pytest 7.0.0.
    The old parameters will be removed in pytest 9.0.0.

    See legacy-path-hooks-deprecated{.interpreted-text role="ref"} for more details.

Features

  • #​11871: Added support for reading command line arguments from a file using the prefix character @, like e.g.: pytest @&#8203;tests.txt. The file must have one argument per line.

    See Read arguments from file <args-from-file>{.interpreted-text role="ref"} for details.

Improvements

  • #​11523: pytest.importorskip{.interpreted-text role="func"} will now issue a warning if the module could be found, but raised ImportError{.interpreted-text role="class"} instead of ModuleNotFoundError{.interpreted-text role="class"}.

    The warning can be suppressed by passing exc_type=ImportError to pytest.importorskip{.interpreted-text role="func"}.

    See import-or-skip-import-error{.interpreted-text role="ref"} for details.

  • #​11728: For unittest-based tests, exceptions during class cleanup (as raised by functions registered with TestCase.addClassCleanup <unittest.TestCase.addClassCleanup>{.interpreted-text role="meth"}) are now reported instead of silently failing.

  • #​11777: Text is no longer truncated in the short test summary info section when -vv is given.

  • #​12112: Improved namespace packages detection when consider_namespace_packages{.interpreted-text role="confval"} is enabled, covering more situations (like editable installs).

  • #​9502: Added PYTEST_VERSION{.interpreted-text role="envvar"} environment variable which is defined at the start of the pytest session and undefined afterwards. It contains the value of pytest.__version__, and among other things can be used to easily check if code is running from within a pytest run.

Bug Fixes

  • #​12065: Fixed a regression in pytest 8.0.0 where test classes containing setup_method and tests using @staticmethod or @classmethod would crash with AttributeError: 'NoneType' object has no attribute 'setup_method'.

    Now the request.instance <pytest.FixtureRequest.instance>{.interpreted-text role="attr"} attribute of tests using @staticmethod and @classmethod is no longer None, but a fresh instance of the class, like in non-static methods.
    Previously it was None, and all fixtures of such tests would share a single self.

  • #​12135: Fixed issue where fixtures adding their finalizer multiple times to fixtures they request would cause unreliable and non-intuitive teardown ordering in some instances.

  • #​12194: Fixed a bug with --importmode=importlib and --doctest-modules where child modules did not appear as attributes in parent modules.

  • #​1489: Fixed some instances where teardown of higher-scoped fixtures was not happening in the reverse order they were initialized in.

Trivial/Internal Changes

  • #​12069: pluggy>=1.5.0 is now required.
  • #​12167: cache <cache>{.interpreted-text role="ref"}: create supporting files (CACHEDIR.TAG, .gitignore, etc.) in a temporary directory to provide atomic semantics.

v8.1.2

Compare Source

pytest 8.1.2 (2024-04-26)

Bug Fixes

  • #​12114: Fixed error in pytest.approx{.interpreted-text role="func"} when used with [numpy]{.title-ref} arrays and comparing with other types.
pytest-dev/pytest-asyncio (pytest-asyncio)

v0.23.7: pytest-asyncio 0.23.7

Compare Source

0.23.7 (2024-05-19)
  • Silence deprecation warnings about unclosed event loops that occurred with certain CPython patch releases #​817
Known issues

As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see #​706). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved.

astral-sh/ruff (ruff)

v0.4.10

Compare Source

Parser
  • Implement re-lexing logic for better error recovery (#​11845)
Rule changes
  • [flake8-copyright] Update CPY001 to check the first 4096 bytes instead of 1024 (#​11927)
  • [pycodestyle] Update E999 to show all syntax errors instead of just the first one (#​11900)
Server
  • Add tracing setup guide to Helix documentation (#​11883)
  • Add tracing setup guide to Neovim documentation (#​11884)
  • Defer notebook cell deletion to avoid an error message (#​11864)
Security
  • Guard against malicious ecosystem comment artifacts (#​11879)

v0.4.9

Compare Source

Preview features
  • [pylint] Implement consider-dict-items (C0206) (#​11688)
  • [refurb] Implement repeated-global (FURB154) (#​11187)
Rule changes
  • [pycodestyle] Adapt fix for E203 to work identical to ruff format (#​10999)
Formatter
  • Fix formatter instability for lines only consisting of zero-width characters (#​11748)
Server
  • Add supported commands in server capabilities (#​11850)
  • Use real file path when available in ruff server (#​11800)
  • Improve error message when a command is run on an unavailable document (#​11823)
  • Introduce the ruff.printDebugInformation command (#​11831)
  • Tracing system now respects log level and trace level, with options to log to a file (#​11747)
CLI
  • Handle non-printable characters in diff view (#​11687)
Bug fixes
  • [refurb] Avoid suggesting starmap when arguments are used outside call (FURB140) (#​11830)
  • [flake8-bugbear] Avoid panic in B909 when checking large loop blocks (#​11772)
  • [refurb] Fix misbehavior of operator.itemgetter when getter param is a tuple (FURB118) (#​11774)

v0.4.8

Compare Source

Performance
  • Linter performance has been improved by around 10% on some microbenchmarks by refactoring the lexer and parser to maintain synchronicity between them (#​11457)
Preview features
  • [flake8-bugbear] Implement return-in-generator (B901) (#​11644)
  • [flake8-pyi] Implement PYI063 (#​11699)
  • [pygrep_hooks] Check blanket ignores via file-level pragmas (PGH004) (#​11540)
Rule changes
  • [pyupgrade] Update UP035 for Python 3.13 and the latest version of typing_extensions (#​11693)
  • [numpy] Update NPY001 rule for NumPy 2.0 (#​11735)
Server
  • Formatting a document with syntax problems no longer spams a visible error popup (#​11745)
CLI
  • Add RDJson support for --output-format flag (#​11682)
Bug fixes
  • [pyupgrade] Write empty string in lieu of panic when fixing UP032 (#​11696)
  • [flake8-simplify] Simplify double negatives in SIM103 (#​11684)
  • Ensure the expression generator adds a newline before type statements (#​11720)
  • Respect per-file ignores for blanket and redirected noqa rules (#​11728)

v0.4.7

Compare Source

Preview features
  • [flake8-pyi] Implement PYI064 (#​11325)
  • [flake8-pyi] Implement PYI066 (#​11541)
  • [flake8-pyi] Implement PYI057 (#​11486)
  • [pyflakes] Enable F822 in __init__.py files by default (#​11370)
Formatter
  • Fix incorrect placement of trailing stub function comments (#​11632)
Server
  • Respect file exclusions in ruff server (#​11590)
  • Add support for documents not exist on disk (#​11588)
  • Add Vim and Kate setup guide for ruff server (#​11615)
Bug fixes
  • Avoid removing newlines between docstring headers and rST blocks (#​11609)
  • Infer indentation with imports when logical indent is absent (#​11608)
  • Use char index rather than position for indent slice (#​11645)
  • [flake8-comprehension] Strip parentheses around generators in C400 (#​11607)
  • Mark repeated-isinstance-calls as unsafe on Python 3.10 and later (#​11622)

v0.4.6

Compare Source

Breaking changes
  • Use project-relative paths when calculating GitLab fingerprints (#​11532)
Preview features
  • [flake8-async] Sleep with >24 hour interval should usually sleep forever (ASYNC116) (#​11498)
Rule changes
  • [numpy] Add missing functions to NumPy 2.0 migration rule (#​11528)
  • [mccabe] Consider irrefutable pattern similar to if .. else for C901 (#​11565)
  • Consider match-case statements for C901, PLR0912, and PLR0915 (#​11521)
  • Remove empty strings when converting to f-string (UP032) (#​11524)
  • [flake8-bandit] request-without-timeout should warn for requests.request (#​11548)
  • [flake8-self] Ignore sunder accesses in flake8-self rules (#​11546)
  • [pyupgrade] Lint for TypeAliasType usages (UP040) (#​11530)
Server
  • Respect excludes in ruff server configuration discovery (#​11551)
  • Use default settings if initialization options is empty or not provided (#​11566)
  • ruff server correctly treats .pyi files as stub files (#​11535)
  • ruff server searches for configuration in parent directories (#​11537)
  • ruff server: An empty code action filter no longer returns notebook source actions (#​11526)
Bug fixes
  • [flake8-logging-format] Fix autofix title in logging-warn (G010) (#​11514)
  • [refurb] Avoid recommending operator.itemgetter with dependence on lambda arguments (#​11574)
  • [flake8-simplify] Avoid recommending context manager in __enter__ implementations (#​11575)
  • Create intermediary directories for --output-file (#​11550)
  • Propagate reads on global variables (#​11584)
  • Treat all singledispatch arguments as runtime-required (#​11523)

v0.4.5

Compare Source

Ruff's language server is now in Beta

v0.4.5 marks the official Beta release of ruff server, an integrated language server built into Ruff.
ruff server supports the same feature set as ruff-lsp, powering linting, formatting, and
code fixes in Ruff's editor integrations -- but with superior performance and
no installation required. We'd love your feedback!

You can enable ruff server in the VS Code extension today.

To read more about this exciting milestone, check out our blog post!

Rule changes
  • [flake8-future-annotations] Reword future-rewritable-type-annotation (FA100) message (#​11381)
  • [pycodestyle] Consider soft keywords for E27 rules (#​11446)
  • [pyflakes] Recommend adding unused import bindings to __all__ (#​11314)
  • [pyflakes] Update documentation and deprecate ignore_init_module_imports (#​11436)
  • [pyupgrade] Mark quotes as unnecessary for non-evaluated annotations (#​11485)
Formatter
  • Avoid multiline quotes warning with quote-style = preserve (#​11490)
Server
  • Support Jupyter Notebook files (#​11206)
  • Support noqa comment code actions (#​11276)
  • Fix automatic configuration reloading (#​11492)
  • Fix several issues with configuration in Neovim and Helix (#​11497)
CLI
  • Add --output-format as a CLI option for ruff config (#​11438)
Bug fixes
  • Avoid PLE0237 for property with setter (#​11377)
  • Avoid TCH005 for if stmt with elif/else block (#​11376)
  • Avoid flagging __future__ annotations as required for non-evaluated type annotations (#​11414)
  • Check for ruff executable in 'bin' directory as installed by 'pip install --target'. (#​11450)
  • Sort edits prior to deduplicating in quotation fix (#​11452)
  • Treat escaped newline as valid sequence (#​11465)
  • [flake8-pie] Preserve parentheses in unnecessary-dict-kwargs (#​11372)
  • [pylint] Ignore __slots__ with dynamic values (#​11488)
  • [pylint] Remove try body from branch counting (#​11487)
  • [refurb] Respect operator precedence in FURB110 (#​11464)
Documentation
  • Add --preview to the README (#​11395)
  • Add Python 3.13 to list of allowed Python versions (#​11411)
  • Simplify Neovim setup documentation (#​11489)
  • Update CONTRIBUTING.md to reflect the new parser (#​11434)
  • Update server documentation with new migration guide (#​11499)
  • [pycodestyle] Clarify motivation for E713 and E714 (#​11483)
  • [pyflakes] Update docs to describe WAI behavior (F541) (#​11362)
  • [pylint] Clearly indicate what is counted as a branch (#​11423)

v0.4.4

Compare Source

Preview features
  • [pycodestyle] Ignore end-of-line comments when determining blank line rules (#​11342)
  • [pylint] Detect pathlib.Path.open calls in unspecified-encoding (PLW1514) (#​11288)
  • [flake8-pyi] Implement PYI059 (generic-not-last-base-class) (#​11233)
  • [flake8-pyi] Implement PYI062 (duplicate-literal-member) (#​11269)
Rule changes
  • [flake8-boolean-trap] Allow passing booleans as positional-only arguments in code such as set(True) (#​11287)
  • [flake8-bugbear] Ignore enum classes in cached-instance-method (B019) (#​11312)
Server
  • Expand tildes when resolving Ruff server configuration file (#​11283)
  • Fix ruff server hanging after Neovim closes (#​11291)
  • Editor settings are used by default if no file-based configuration exists (#​11266)
Bug fixes
  • [pylint] Consider with statements for too-many-branches (PLR0912) (#​11321)
  • [flake8-blind-except, tryceratops] Respect logged and re-raised expressions in nested statements (BLE001, TRY201) (#​11301)
  • Recognise assignments such as __all__ = builtins.list(["foo", "bar"]) as valid __all__ definitions (#​11335)

v0.4.3

Compare Source

Enhancements
Preview features
  • [refurb] Use function range for reimplemented-operator diagnostics (#​11271)
  • [refurb] Ignore methods in reimplemented-operator (FURB118) (#​11270)
  • [refurb] Implement fstring-number-format (FURB116) (#​10921)
  • [ruff] Implement redirected-noqa (RUF101) (#​11052)
  • [pyflakes] Distinguish between first-party and third-party imports for fix suggestions (#​11168)
Rule changes
  • [flake8-bugbear] Ignore non-abstract class attributes when enforcing B024 (#​11210)
  • [flake8-logging] Include inline instantiations when detecting loggers (#​11154)
  • [pylint] Also emit PLR0206 for properties with variadic parameters (#​11200)
  • [ruff] Detect duplicate codes as part of unused-noqa (RUF100) (#​10850)
Formatter
  • Avoid multiline expression if format specifier is present (#​11123)
LSP
  • Write ruff server setup guide for Helix (#​11183)
  • ruff server no longer hangs after shutdown (#​11222)
  • ruff server reads from a configuration TOML file in the user configuration directory if no local configuration exists (#​11225)
  • ruff server respects per-file-ignores configuration (#​11224)
  • ruff server: Support a custom TOML configuration file (#​11140)
  • ruff server: Support setting to prioritize project configuration over editor configuration (#​11086)
Bug fixes
  • Avoid debug assertion around NFKC renames (#​11249)
  • [pyflakes] Prioritize redefined-while-unused over unused-import (#​11173)
  • [ruff] Respect async expressions in comprehension bodies (#​11219)
  • [pygrep_hooks] Fix blanket-noqa panic when last line has noqa with no newline (PGH004) (#​11108)
  • [perflint] Ignore list-copy recommendations for async for loops (#​11250)
  • [pyflakes] Improve invalid-print-syntax documentation (#​11171)
Performance
  • Avoid allocations for isort module names (#​11251)
  • Build a separate ARM wheel for macOS (#​11149)

v0.4.2

Compare Source

Rule changes
  • [flake8-pyi] Allow for overloaded __exit__ and __aexit__ definitions (PYI036) (#​11057)
  • [pyupgrade] Catch usages of "%s" % var and provide an unsafe fix (UP031) (#​11019)
  • [refurb] Implement new rule that suggests min/max over sorted() (FURB192) (#​10868)
Server
  • Fix an issue with missing diagnostics for Neovim and Helix (#​11092)
  • Implement hover documentation for noqa codes (#​11096)
  • Introduce common Ruff configuration options with new server settings (#​11062)
Bug fixes
  • Use macos-12 for building release wheels to enable macOS 11 compatibility (#​11146)
  • [flake8-blind-expect] Allow raise from in BLE001 (#​11131)
  • [flake8-pyi] Allow simple assignments to None in enum class scopes (PYI026) (#​11128)
  • [flake8-simplify] Avoid raising SIM911 for non-zip attribute calls (#​11126)
  • [refurb] Avoid operator.itemgetter suggestion for single-item tuple (#​11095)
  • [ruff] Respect per-file-ignores for RUF100 with no other diagnostics (#​11058)
  • [ruff] Fix async comprehension false positive (RUF029) (#​11070)
Documentation
  • [flake8-bugbear] Document explicitly disabling strict zip (B905) (#​11040)
  • [flake8-type-checking] Mention lint.typing-modules in TCH001, TCH002, and TCH003 (#​11144)
  • [isort] Improve documentation around custom isort sections (#​11050)
  • [pylint] Fix documentation oversight for invalid-X-returns (#​11094)
Performance
  • Use matchit to resolve per-file settings (#​11111)

v0.4.1

Compare Source

Preview features
  • [pylint] Implement invalid-hash-returned (PLE0309) (#​10961)
  • [pylint] Implement invalid-index-returned (PLE0305) (#​10962)
Bug fixes
  • [pylint] Allow NoReturn-like functions for __str__, __len__, etc. (PLE0307) (#​11017)
  • Parser: Use empty range when there's "gap" in token source (#​11032)
  • [ruff] Ignore stub functions in unused-async (RUF029) (#​11026)
  • Parser: Expect indented case block instead of match stmt (#​11033)

v0.4.0

Compare Source

A new, hand-written parser

Ruff's new parser is >2x faster, which translates to a 20-40% speedup for all linting and formatting invocations.
There's a lot to say about this exciting change, so check out the blog post for more details!

See #​10036 for implementation details.

A new language server in Rust

With this release, we also want to highlight our new language server. ruff server is a Rust-powered language
server that comes built-in with Ruff. It can be used with any editor that supports the Language Server Protocol (LSP).
It uses a multi-threaded, lock-free architecture inspired by rust-analyzer and it will open the door for a lot
of exciting features. It’s also faster than our previous Python-based language server
-- but you probably guessed that already.

ruff server is only in alpha, but it has a lot of features that you can try out today:

  • Lints Python files automatically and shows quick-fixes when available
  • Formats Python files, with support for range formatting
  • Comes with commands for quickly performing actions: ruff.applyAutofix, ruff.applyFormat, and ruff.applyOrganizeImports
  • Supports source.fixAll and source.organizeImports source actions
  • Automatically reloads your project configuration when you change it

To setup ruff server with your editor, refer to the README.md.

Preview features
  • [pycodestyle] Do not trigger E3 rules on defs following a function/method with a dummy body (#​10704)
  • [pylint] Implement invalid-bytes-returned (E0308) (#​10959)
  • [pylint] Implement invalid-length-returned (E0303) (#​10963)
  • [pylint] Implement self-cls-assignment (W0642) (#​9267)
  • [pylint] Omit stubs from invalid-bool and invalid-str-return-type (#​11008)
  • [ruff] New rule unused-async (RUF029) to detect unneeded async keywords on functions (#​9966)
Rule changes
  • [flake8-bandit] Allow urllib.request.urlopen calls with static Request argument (S310) (#​10964)
  • [flake8-bugbear] Treat raise NotImplemented-only bodies as stub functions (B006) (#​10990)
  • [flake8-slots] Respect same-file Enum subclasses (SLOT000) (#​11006)
  • [pylint] Support inverted comparisons (PLR1730) (#​10920)
Linter
  • Improve handling of builtin symbols in linter rules (#​10919)
  • Improve display of rules in --show-settings (#​11003)
  • Improve inference capabilities of the BuiltinTypeChecker (#​10976)
  • Resolve classes and functions relative to script name (#​10965)
  • Improve performance of RuleTable::any_enabled (#​10971)
Server

This section is devoted to updates for our new language server, written in Rust.

  • Enable ruff-specific source actions (#​10916)
  • Refreshes diagnostics for open files when file configuration is changed (#​10988)
  • Important errors are now shown as popups (#​10951)
  • Introduce settings for directly configuring the linter and formatter (#​10984)
  • Resolve configuration for each document individually (#​10950)
  • Write a setup guide for Neovim (#​10987)
Configuration
  • Add RUFF_OUTPUT_FILE environment variable support (#​10992)
Bug fixes
  • Avoid non-augmented-assignment for reversed, non-commutative operators (PLR6104) (#​10909)
  • Limit commutative non-augmented-assignments to primitive data types (PLR6104) (#​10912)
  • Respect per-file-ignores for RUF100 on blanket # noqa (#​10908)
  • Consider if expression for parenthesized with items parsing (#​11010)
  • Consider binary expr for parenthesized with items parsing (#​11012)
  • Reset FOR_TARGET context for all kinds of parentheses (#​11009)

v0.3.7

[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.


Configuration

📅 Schedule: Branch creation - "before 4am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot requested a review from eigenein as a code owner May 1, 2024 02:03
@renovate renovate bot added the dependencies Pull requests that update a dependency file label May 1, 2024
Copy link

codecov bot commented May 1, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 91.85%. Comparing base (498285a) to head (83eb968).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #125   +/-   ##
=======================================
  Coverage   91.85%   91.85%           
=======================================
  Files          35       35           
  Lines         786      786           
  Branches       89       89           
=======================================
  Hits          722      722           
  Misses         45       45           
  Partials       19       19           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@renovate renovate bot force-pushed the renovate/all-minor-patch branch 4 times, most recently from 39039b9 to fc6ac9b Compare May 9, 2024 18:57
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 3 times, most recently from 201ac04 to db7c4e7 Compare May 15, 2024 17:36
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 4 times, most recently from d653742 to 631649c Compare May 23, 2024 03:31
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 3 times, most recently from 03b10b4 to 685b93d Compare May 31, 2024 23:37
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 3 times, most recently from c66f7f5 to 5f520cd Compare June 6, 2024 12:19
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 2 times, most recently from 88c67b3 to 1e7dac7 Compare June 16, 2024 15:02
@renovate renovate bot force-pushed the renovate/all-minor-patch branch from 1e7dac7 to 83eb968 Compare June 20, 2024 19:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

0 participants