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

⬆️(project) upgrade python dependencies #590

Merged
merged 1 commit into from
Apr 25, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Apr 15, 2024

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
dev/black (changelog) ==24.3.0 -> ==24.4.1 age adoption passing confidence
dev/mkdocs (changelog) ==1.5.3 -> ==1.6.0 age adoption passing confidence
dev/mkdocs-material (changelog) ==9.5.17 -> ==9.5.19 age adoption passing confidence
dev/mypy (source, changelog) ==1.9.0 -> ==1.10.0 age adoption passing confidence
dev/pyfakefs ==5.4.0 -> ==5.4.1 age adoption passing confidence
dev/pymdown-extensions ==10.7.1 -> ==10.8 age adoption passing confidence
dev/ruff (source, changelog) ==0.3.5 -> ==0.4.1 age adoption passing confidence
lrs/fastapi ==0.110.1 -> ==0.110.2 age adoption passing confidence
lrs/sentry_sdk (changelog) ==1.44.1 -> ==1.45.0 age adoption passing confidence

Release Notes

psf/black (dev/black)

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)
mkdocs/mkdocs (dev/mkdocs)

v1.6.0

Compare Source

Local preview

  • mkdocs serve no longer locks up the browser when more than 5 tabs are open. This is achieved by closing the polling connection whenever a tab becomes inactive. Background tabs will no longer auto-reload either - that will instead happen as soon the tab is opened again. Context: #​3391

  • New flag serve --open to open the site in a browser.
    After the first build is finished, this flag will cause the default OS Web browser to be opened at the home page of the local site.
    Context: #​3500

Drafts

[!warning]
Changed from version 1.5:

The exclude_docs config was split up into two separate concepts.

The exclude_docs config no longer has any special behavior for mkdocs serve - it now always completely excludes the listed documents from the site.

If you wish to use the "drafts" functionality like the exclude_docs key used to do in MkDocs 1.5, please switch to the new config key draft_docs.

See documentation.

Other changes:

  • Reduce warning levels when a "draft" page has a link to a non-existent file. Context: #​3449

Update to deduction of page titles

MkDocs 1.5 had a change in behavior in deducing the page titles from the first heading. Unfortunately this could cause unescaped HTML tags or entities to appear in edge cases.

Now tags are always fully sanitized from the title. Though it still remains the case that Page.title is expected to contain HTML entities and is passed directly to the themes.

Images (notably, emojis in some extensions) get preserved in the title only through their alt attribute's value.

Context: #​3564, #​3578

Themes

  • Built-in themes now also support Polish language (#​3613)
"readthedocs" theme
  • Fix: "readthedocs" theme can now correctly handle deeply nested nav configurations (over 2 levels deep), without confusedly expanding all sections and jumping around vertically. (#​3464)

  • Fix: "readthedocs" theme now shows a link to the repository (with a generic logo) even when isn't one of the 3 known hosters. (#​3435)

  • "readthedocs" theme now also has translation for the word "theme" in the footer that mistakenly always remained in English. (#​3613, #​3625)

"mkdocs" theme

The "mkdocs" theme got a big update to a newer version of Bootstrap, meaning a slight overhaul of styles. Colors (most notably of admonitions) have much better contrast.

The "mkdocs" theme now has support for dark mode - both automatic (based on the OS/browser setting) and with a manual toggle. Both of these options are not enabled by default and need to be configured explicitly.
See color_mode, user_color_mode_toggle in documentation.

[!warning]
Possible breaking change:

jQuery is no longer included into the "mkdocs" theme. If you were relying on it in your scripts, you will need to separately add it first (into mkdocs.yml) as an extra script:

extra_javascript:
  - https://code.jquery.com/jquery-3.7.1.min.js

Or even better if the script file is copied and included from your docs dir.

Context: #​3493, #​3649

Configuration

New "enabled" setting for all plugins

You may have seen some plugins take up the convention of having a setting enabled: false (or usually controlled through an environment variable) to make the plugin do nothing.

Now every plugin has this setting. Plugins can still choose to implement this config themselves and decide how it behaves (and unless they drop older versions of MkDocs, they still should for now), but now there's always a fallback for every plugin.

See documentation. Context: #​3395

Validation

Validation of hyperlinks between pages
Absolute links

Historically, within Markdown, MkDocs only recognized relative links that lead to another physical *.md document (or media file). This is a good convention to follow because then the source pages are also freely browsable without MkDocs, for example on GitHub. Whereas absolute links were left unmodified (making them often not work as expected or, more recently, warned against).

If you dislike having to always use relative links, now you can opt into absolute links and have them work correctly.

If you set the setting validation.links.absolute_links to the new value relative_to_docs, all Markdown links starting with / will be understood as being relative to the docs_dir root. The links will then be validated for correctness according to all the other rules that were already working for relative links in prior versions of MkDocs. For the HTML output, these links will still be turned relative so that the site still works reliably.

So, now any document (e.g. "dir1/foo.md") can link to the document "dir2/bar.md" as [link](/dir2/bar.md), in addition to the previously only correct way [link](../dir2/bar.md).

You have to enable the setting, though. The default is still to just skip any processing of such links.

See documentation. Context: #​3485

Absolute links within nav

Absolute links within the nav: config were also always skipped. It is now possible to also validate them in the same way with validation.nav.absolute_links. Though it makes a bit less sense because then the syntax is simply redundant with the syntax that comes without the leading slash.

Anchors

There is a new config setting that is recommended to enable warnings for:

validation:
  anchors: warn

Example of a warning that this can produce:

WARNING -  Doc file 'foo/example.md' contains a link '../bar.md#some-heading', but the doc 'foo/bar.md' does not contain an anchor '#some-heading'.

Any of the below methods of declaring an anchor will be detected by MkDocs:

#### Heading producing an anchor
#### Another heading {#custom-anchor-for-heading-using-attr-list}

<a id="raw-anchor"></a>

[](){#markdown-anchor-using-attr-list}

Plugins and extensions that insert anchors, in order to be compatible with this, need to be developed as treeprocessors that insert etree elements as their mode of operation, rather than raw HTML which is undetectable for this purpose.

If you as a user are dealing with falsely reported missing anchors and there's no way to resolve this, you can choose to disable these messages by setting this option to ignore (and they are at INFO level by default anyway).

See documentation. Context: #​3463

Other changes:

  • When the nav config is not specified at all, the not_in_nav setting (originally added in 1.5.0) gains an additional behavior: documents covered by not_in_nav will not be part of the automatically deduced navigation. Context: #​3443

  • Fix: the !relative YAML tag for markdown_extensions (originally added in 1.5.0) - it was broken in many typical use cases.

    See documentation. Context: #​3466

  • Config validation now exits on first error, to avoid showing bizarre secondary errors. Context: #​3437

  • MkDocs used to shorten error messages for unexpected errors such as "file not found", but that is no longer the case, the full error message and stack trace will be possible to see (unless the error has a proper handler, of course). Context: #​3445

Upgrades for plugin developers

Plugins can add multiple handlers for the same event type, at multiple priorities

See mkdocs.plugins.CombinedEvent in documentation. Context: #​3448

Enabling true generated files and expanding the File API

See documentation.

  • There is a new pair of attributes File.content_string that becomes the official API for obtaining the content of a file and is used by MkDocs itself.

    This replaces the old approach where one had to manually read the file located at File.abs_src_path, although that is still the primary action that these new attributes do under the hood.

  • The content of a File can be backed by a string and no longer has to be a real existing file at abs_src_path.

    It is possible to set the attribute File.content_string or File.content_bytes and it will take precedence over abs_src_path.

    Further, abs_src_path is no longer guaranteed to be present and can be None instead. MkDocs itself still uses physical files in all cases, but eventually plugins will appear that don't populate this attribute.

  • There is a new constructor File.generated() that should be used by plugins instead of the File() constructor. It is much more convenient because one doesn't need to manually look up the values such as docs_dir and use_directory_urls. Its signature is one of:

    f = File.generated(config: MkDocsConfig, src_uri: str, content: str | bytes)
    f = File.generated(config: MkDocsConfig, src_uri: str, abs_src_path: str)

    This way, it is now extremely easy to add a virtual file even from a hook:

    def on_files(files: Files, config: MkDocsConfig):
        files.append(File.generated(config, 'fake/path.md', content="Hello, world!"))

    For large content it is still best to use physical files, but one no longer needs to manipulate the path by providing a fake unused docs_dir.

  • There is a new attribute File.generated_by that arose by convention - for generated files it should be set to the name of the plugin (the key in the plugins: collection) that produced this file. This attribute is populated automatically when using the File.generated() constructor.

  • It is possible to set the edit_uri attribute of a File, for example from a plugin or hook, to make it different from the default (equal to src_uri), and this will be reflected in the edit link of the document. This can be useful because some pages aren't backed by a real file and are instead created dynamically from some other source file or script. So a hook could set the edit_uri to that source file or script accordingly.

  • The File object now stores its original src_dir, dest_dir, use_directory_urls values as attributes.

  • Fields of File are computed on demand but cached. Only the three above attributes are primary ones, and partly also dest_uri. This way, it is possible to, for example, overwrite dest_uri of a File, and abs_dest_path will be calculated based on it. However you need to clear the attribute first using del f.abs_dest_path, because the values are cached.

  • File instances are now hashable (can be used as keys of a dict). Two files can no longer be considered "equal" unless it's the exact same instance of File.

Other changes:

  • The internal storage of File objects inside a Files object has been reworked, so any plugins that choose to access Files._files will get a deprecation warning.

  • The order of File objects inside a Files collection is no longer significant when automatically inferring the nav. They get forcibly sorted according to the default alphabetic order.

Context: #​3451, #​3463

Hooks and debugging

  • Hook files can now import adjacent *.py files using the import statement. Previously this was possible to achieve only through a sys.path workaround. See the new mention in documentation. Context: #​3568

  • Verbose -v log shows the sequence of plugin events in more detail - shows each invoked plugin one by one, not only the event type. Context: #​3444

Deprecations

  • Python 3.7 is no longer supported, Python 3.12 is officially supported. Context: #​3429

  • The theme config file mkdocs_theme.yml no longer executes YAML tags. Context: #​3465

  • The plugin event on_page_read_source is soft-deprecated because there is always a better alternative to it (see the new File API or just on_page_markdown, depending on the desired interaction).

    When multiple plugins/hooks apply this event handler, they trample over each other, so now there is a warning in that case.

    See documentation. Context: #​3503

API deprecations
  • It is no longer allowed to set File.page to a type other than Page or a subclass thereof. Context: #​3443 - following the deprecation in version 1.5.3 and #​3381.

  • Theme._vars is deprecated - use theme['foo'] instead of theme._vars['foo']

  • utils: modified_time(), get_html_path(), get_url_path(), is_html_file(), is_template_file() are removed. path_to_url() is deprecated.

  • LiveReloadServer.watch() no longer accepts a custom callback.

Context: #​3429

Misc

  • The sitemap.xml.gz file is slightly more reproducible and no longer changes on every build, but instead only once per day (upon a date change). Context: #​3460

Other small improvements; see commit log.

squidfunk/mkdocs-material (dev/mkdocs-material)

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
python/mypy (dev/mypy)

v1.10.0

Compare Source

pytest-dev/pyfakefs (dev/pyfakefs)

v5.4.1

Compare Source

Fixes a regression.

Fixes
  • fixed a regression from version 5.4.0 that incorrectly handled files opened twice via file descriptor
    (see #​997)
facelessuser/pymdown-extensions (dev/pymdown-extensions)

v10.8

Compare Source

10.8

  • NEW: Require Python Markdown 3.6+.
  • FIX: Fix some test cases.
  • FIX: Fix warnings due to recent changes in Python Markdown.
astral-sh/ruff (dev/ruff)

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

Preview features
  • [flake8-bugbear] Implement loop-iterator-mutation (B909) (#​9578)
  • [pylint] Implement rule to prefer augmented assignment (PLR6104) (#​9932)
Bug fixes
  • Avoid TOCTOU errors in cache initialization (#​10884)
  • [pylint] Recode nan-comparison rule to W0177 (#​10894)
  • [pylint] Reverse min-max logic in if-stmt-min-max (#​10890)

v0.3.6

Compare Source

Preview features
  • [pylint] Implement bad-staticmethod-argument (PLW0211) (#​10781)
  • [pylint] Implement if-stmt-min-max (PLR1730, PLR1731) (#​10002)
  • [pyupgrade] Replace str,Enum multiple inheritance with StrEnum UP042 (#​10713)
  • [refurb] Implement if-expr-instead-of-or-operator (FURB110) (#​10687)
  • [refurb] Implement int-on-sliced-str (FURB166) (#​10650)
  • [refurb] Implement write-whole-file (FURB103) (#​10802)
  • [refurb] Support itemgetter in reimplemented-operator (FURB118) (#​10526)
  • [flake8_comprehensions] Add sum/min/max to unnecessary comprehension check (C419) (#​10759)
Rule changes
  • [pydocstyle] Require capitalizing docstrings where the first sentence is a single word (D403) (#​10776)
  • [pycodestyle] Ignore annotated lambdas in class scopes (E731) (#​10720)
  • [flake8-pyi] Various improvements to PYI034 (#​10807)
  • [flake8-slots] Flag subclasses of call-based typing.NamedTuples as well as subclasses of collections.namedtuple() (SLOT002) (#​10808)
  • [pyflakes] Allow forward references in class bases in stub files (F821) (#​10779)
  • [pygrep-hooks] Improve blanket-noqa error message (PGH004) (#​10851)
CLI
Configuration
  • Support negated patterns in [extend-]per-file-ignores (#​10852)
Bug fixes
  • [flake8-import-conventions] Accept non-aliased (but correct) import in unconventional-import-alias (ICN001) (#​10729)
  • [flake8-quotes] Add semantic model flag when inside f-string replacement field (#​10766)
  • [pep8-naming] Recursively resolve TypeDicts for N815 violations (#​10719)
  • [flake8-quotes] Respect Q00* ignores in flake8-quotes rules (#​10728)
  • [flake8-simplify] Show negated condition in needless-bool diagnostics (SIM103) (#​10854)
  • [ruff] Use within-scope shadowed bindings in asyncio-dangling-task (RUF006) (#​10793)
  • [flake8-pytest-style] Fix single-tuple conversion in pytest-parametrize-values-wrong-type (PT007) (#​10862)
  • [flake8-return] Ignore assignments to annotated variables in unnecessary-assign (RET504) (#​10741)
  • [refurb] Do not allow any keyword arguments for read-whole-file in rb mode (FURB101) (#​10803)
  • [pylint] Don't recommend decorating staticmethods with @singledispatch (PLE1519, PLE1520) (#​10637)
  • [pydocstyle] Use section name range for all section-related docstring diagnostics (#​10740)
  • Respect # noqa directives on __all__ openers (#​10798)
tiangolo/fastapi (lrs/fastapi)

v0.110.2

Compare Source

Fixes
  • 🐛 Fix support for query parameters with list types, handle JSON encoding Pydantic UndefinedType. PR #​9929 by @​arjwilliams.
Refactors
  • ♻️ Simplify Pydantic configs in OpenAPI models in fastapi/openapi/models.py. PR #​10886 by @​JoeTanto2.
  • ✨ Add support for Pydantic's 2.7 new deprecated Field parameter, remove URL from validation errors response. PR #​11461 by @​tiangolo.
Docs
Translations
Internal
getsentry/sentry-python (lrs/sentry_sdk)

v1.45.0

Compare Source

This is the final 1.x release for the forseeable future. Development will continue on the 2.x release line. The first 2.x version will be available in the next few weeks.

Various fixes & improvements
  • Allow to upsert monitors (#​2929) by @​sentrivana

    It's now possible to provide monitor_config to the monitor decorator/context manager directly:

    from sentry_sdk.crons import monitor

Configuration

📅 Schedule: Branch creation - "before 7am on monday" (UTC), Automerge - At any time (no schedule defined).

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

Rebasing: Whenever PR is behind base branch, 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 force-pushed the renovate/python-dependencies branch 10 times, most recently from 2ec5ad0 to 751e8d7 Compare April 22, 2024 09:58
@wilbrdt
Copy link
Contributor

wilbrdt commented Apr 23, 2024

Waiting for mkdocs-material to be compatible with mkdocs 1.6.0 (see squidfunk/mkdocs-material#7076)

@renovate renovate bot force-pushed the renovate/python-dependencies branch 2 times, most recently from bc4fd15 to 35549ee Compare April 24, 2024 16:19
| datasource | package            | from    | to      |
| ---------- | ------------------ | ------- | ------- |
| pypi       | black              | 24.3.0  | 24.4.1  |
| pypi       | mkdocs             | 1.5.3   | 1.6.0   |
| pypi       | mkdocs-material    | 9.5.17  | 9.5.19  |
| pypi       | mypy               | 1.9.0   | 1.10.0  |
| pypi       | pyfakefs           | 5.4.0   | 5.4.1   |
| pypi       | pymdown-extensions | 10.7.1  | 10.8    |
| pypi       | ruff               | 0.3.5   | 0.4.1   |
| pypi       | fastapi            | 0.110.1 | 0.110.2 |
| pypi       | sentry_sdk         | 1.44.1  | 1.45.0  |
@renovate renovate bot force-pushed the renovate/python-dependencies branch from 35549ee to 805ce26 Compare April 25, 2024 09:18
@wilbrdt wilbrdt merged commit 82b2b6f into main Apr 25, 2024
24 of 25 checks passed
@wilbrdt wilbrdt deleted the renovate/python-dependencies branch April 25, 2024 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants