Skip to content

Bump the python group across 1 directory with 6 updates - #110

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/python-18f39ad955
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/python-18f39ad955

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Bumps the python group with 6 updates in the / directory:

Package From To
icalendar 7.2.0 7.3.0
joblib 1.5.3 1.6.0
osmnx 2.0.6 2.1.1
tqdm 4.68.4 4.70.1
playwright 1.61.0 1.63.0
geopandas 1.1.4 1.2.0

Updates icalendar from 7.2.0 to 7.3.0

Release notes

Sourced from icalendar's releases.

v7.3.0

To view the changes, please see the Changelog. This release can be installed from PyPI.

v7.2.2

To view the changes, please see the Changelog. This release can be installed from PyPI.

v7.2.1

To view the changes, please see the Changelog. This release can be installed from PyPI.

Changelog

Sourced from icalendar's changelog.

7.3.0 (2026-08-19)

Removals and deprecations


- :attr:`vBinary.obj <icalendar.prop.binary.vBinary.obj>` is deprecated in favor of :attr:`vBinary.bytes <icalendar.prop.binary.vBinary.bytes>`. It is retained as a lossy string view of the value for backward compatibility, and will be removed in icalendar 8. The ``test_ical_value_rejects_non_base64_characters`` test was removed because :attr:`vBinary.ical_value <icalendar.prop.binary.vBinary.ical_value>` no longer validates or decodes Base64. @uwezkhan (`Issue [#1356](https://github.com/collective/icalendar/issues/1356) <https://github.com/collective/icalendar/issues/1356>`_)

New features


- Created an :meth:`~cal.journal.Journal.example` method for the :class:`~cal.journal.Journal` component and an :meth:`~cal.free_busy.FreeBusy.example` method for the :class:`~cal.free_busy.FreeBusy` component, added the :rfc:`5545` examples that they load, and documented their usage in both class docstrings. AI assistance: Kiro CLI with the claude-opus-5 model was used to draft this change. @Souptik96 (`Issue [#743](https://github.com/collective/icalendar/issues/743) &lt;https://github.com/collective/icalendar/issues/743&gt;`_)
- Add :meth:`Alarm.new_display() &lt;icalendar.cal.alarm.Alarm.new_display&gt;`, :meth:`Alarm.new_audio() &lt;icalendar.cal.alarm.Alarm.new_audio&gt;`, and :meth:`Alarm.new_email() &lt;icalendar.cal.alarm.Alarm.new_email&gt;` factory methods for creating :rfc:`5545#section-3.6.6` VALARM components. @klouds27 (`Issue [#865](https://github.com/collective/icalendar/issues/865) &lt;https://github.com/collective/icalendar/issues/865&gt;`_)
- :class:`~icalendar.prop.binary.vBinary` now stores the raw ``bytes`` of the value internally, so non-UTF-8 binary data round-trips losslessly. With the release of icalendar 7.1.0, and previous to this bug fix, :attr:`vBinary.ical_value &lt;icalendar.prop.binary.vBinary.ical_value&gt;` Base64-decoded the raw stored bytes and raised :class:`ValueError` for non-Base64 input. :attr:`vBinary.ical_value &lt;icalendar.prop.binary.vBinary.ical_value&gt;` now returns the raw stored bytes instead of Base64-decoding them, and no longer raises :class:`ValueError` for non-Base64 input. @uwezkhan (`Issue [#1356](https://github.com/collective/icalendar/issues/1356) &lt;https://github.com/collective/icalendar/issues/1356&gt;`_)
- Added :attr:`vBinary.bytes &lt;icalendar.prop.binary.vBinary.bytes&gt;`, exposing the raw binary value of a BINARY property. @uwezkhan (`Issue [#1356](https://github.com/collective/icalendar/issues/1356) &lt;https://github.com/collective/icalendar/issues/1356&gt;`_)
- Added the :exc:`~icalendar.error.ICalParsingError` exception as a public API for programmatic handling of iCalendar parsing failures. AI assistance: ChatGPT was used to help debug terminal errors encountered during development. @GAUTAMSANSWAL (`Issue [#1536](https://github.com/collective/icalendar/issues/1536) &lt;https://github.com/collective/icalendar/issues/1536&gt;`_)
- Created a script to automatically generate the :mod:`~icalendar.timezone.windows_to_olson` module from the Unicode Consortium's CLDR GitHub repository. Added lxml as a new development dependency. Added the target ``wo`` to the ``Makefile`` to generate the file from the root of the repository with ``make wo``. @stevepiercy (`Issue [#1548](https://github.com/collective/icalendar/issues/1548) &lt;https://github.com/collective/icalendar/issues/1548&gt;`_)
- Added :attr:`vBinary.base64data &lt;icalendar.prop.binary.vBinary.base64data&gt;`, a getter/setter for the Base64 string view of a BINARY property's value, so callers no longer need to call :func:`base64.b64encode` or :func:`base64.b64decode` manually. @gagana2023 (`Issue [#1550](https://github.com/collective/icalendar/issues/1550) &lt;https://github.com/collective/icalendar/issues/1550&gt;`_)
- Added :attr:`Alarm.ACTION &lt;icalendar.cal.alarm.Alarm.ACTION&gt;` and :attr:`AlarmTime.action &lt;icalendar.alarms.AlarmTime.action&gt;` access to the :rfc:`5545#section-3.8.6.1` ``ACTION`` property. I used OpenAI Codex with GPT-5 to assist with this change, then reviewed and tested the result. @bm1016bm-svg (`Issue [#1569](https://github.com/collective/icalendar/issues/1569) &lt;https://github.com/collective/icalendar/issues/1569&gt;`_)
- Record the exact CLDR commit used to generate the Windows-to-Olson timezone mapping and fetch the mapping from that pinned revision. I used AI to assist me with this change. @patrickswedish (`Issue [#1575](https://github.com/collective/icalendar/issues/1575) &lt;https://github.com/collective/icalendar/issues/1575&gt;`_)
- Used :meth:`vBinary.from_ical() &lt;icalendar.prop.binary.vBinary.from_ical&gt;` in :attr:`Image.data &lt;icalendar.prop.image.Image.data&gt;` for consistent Base64 validation, removing the manual :func:`base64.b64decode` call. @klouds27 (`Issue [#1638](https://github.com/collective/icalendar/issues/1638) &lt;https://github.com/collective/icalendar/issues/1638&gt;`_)
- Added ``REQUEST_STATUS`` property to :class:`~icalendar.cal.event.Event`, :class:`~icalendar.cal.todo.Todo`, :class:`~icalendar.cal.journal.Journal`, and :class:`~icalendar.cal.free_busy.FreeBusy` with ``request_status`` parameter in ``new()`` constructors per :rfc:`5545#section-3.8.8.3`. I used AI to assist with this change. @SemTiOne (`Issue [#1666](https://github.com/collective/icalendar/issues/1666) &lt;https://github.com/collective/icalendar/issues/1666&gt;`_)
- Improved :exc:`~icalendar.error.ICalParsingError` by including optional value, line, and line number information in exception messages for more consistent iCalendar parsing error reporting. AI assistance: ChatGPT was used to help debug terminal errors encountered during development. @GAUTAMSANSWAL
- Made :exc:`~icalendar.error.JCalParsingError` inherit from :exc:`~icalendar.error.InvalidCalendar` for consistency with :exc:`~icalendar.error.ICalParsingError`. AI assistance: ChatGPT was used to help debug terminal errors encountered during development. @GAUTAMSANSWAL

Bug fixes


- Resolve the timezone of a &amp;quot;globally unique&amp;quot; :rfc:`5545#section-3.2.19` ``TZID`` such as ``/freeassociation.sourceforge.net/Europe/Berlin``, which is emitted by some clients, including libical and Evolution. :meth:`TZP.timezone &amp;lt;icalendar.timezone.tzp.TZP.timezone&amp;gt;` now strips the leading vendor prefix and resolves the trailing Olson identifier, so the value is parsed as timezone-aware instead of being silently treated as naive. Prepared with AI assistance. @vjsai (`Issue [#313](https://github.com/collective/icalendar/issues/313) &amp;lt;https://github.com/collective/icalendar/issues/313&amp;gt;`_)
- Fixed the :file:`equivalent_timezone_ids.py` script after the call to generate the timezone Python code was removed. @gjabell (`Issue [#1392](https://github.com/collective/icalendar/issues/1392) &amp;lt;https://github.com/collective/icalendar/issues/1392&amp;gt;`_)
- Values of unrecognized properties and ``X-`` properties without a ``VALUE`` parameter were altered by escaping when parsed, serialized, or converted to and from jCal, so they did not round-trip unchanged as :rfc:`7265` specifies. These values are now preserved verbatim. Additionally, the ``PROXIMITY`` property (:rfc:`9074`) was treated as an unknown value type instead of ``TEXT`` and is now recognized correctly. AI disclosure: I used Claude Code (Anthropic's Claude Opus) to draft and refine this change and its tests; I reviewed the output and validated the change locally. @lcampanella98 (`Issue [#1445](https://github.com/collective/icalendar/issues/1445) &amp;lt;https://github.com/collective/icalendar/issues/1445&amp;gt;`_)
- Ship :file:`funding.json` in PyPI source distributions so packaging and test runs from the sdist no longer fail with :class:`FileNotFoundError`. @Hishamkhashman1 (`Issue [#1493](https://github.com/collective/icalendar/issues/1493) &amp;lt;https://github.com/collective/icalendar/issues/1493&amp;gt;`_)
- Avoid folding content lines between escape prefixes and their escaped characters. AI disclosure: I used GPT-5 Codex to help draft and refine this change and its tests; I reviewed and validated the output locally. @kingrubic (`Issue [#1501](https://github.com/collective/icalendar/issues/1501) &amp;lt;https://github.com/collective/icalendar/issues/1501&amp;gt;`_)
- Preserve ``URI`` value parameters on a jCal round-trip. :meth:`vUri.from_jcal &amp;lt;icalendar.prop.uri.vUri.from_jcal&amp;gt;` previously passed the parameters positionally, but ``vUri.__new__`` takes ``encoding`` as its second positional parameter. As a result, the ``URI`` value parameters were consumed as ``encoding`` and dropped. For example, ``ATTACH;FMTTYPE=...`` or ``CONFERENCE;FEATURE=...`` lost their parameters. They are now passed as the ``params`` keyword. Prepared with the assistance of an AI coding agent (Anthropic's Claude Opus 4.8). @gaoflow (`Issue [#1526](https://github.com/collective/icalendar/issues/1526) &amp;lt;https://github.com/collective/icalendar/issues/1526&amp;gt;`_)
- Updated the Windows timezone mapping for ``Mountain Standard Time (Mexico)`` to ``America/Mazatlan``, so dates after Mexico's 2022 timezone changes use the correct UTC-7 offset instead of UTC-6. Prepared with AI assistance. @RobHannay (`Issue [#1546](https://github.com/collective/icalendar/issues/1546) &amp;lt;https://github.com/collective/icalendar/issues/1546&amp;gt;`_)
- ``IMAGE`` properties now use their explicitly declared ``VALUE`` type instead of always being parsed as unknown, while ``IMAGE`` without a ``VALUE`` parameter remains unknown. I used OpenAI Codex with GPT-5 to assist with this change. @floze-the-genius (`Issue [#1561](https://github.com/collective/icalendar/issues/1561) &amp;lt;https://github.com/collective/icalendar/issues/1561&amp;gt;`_)
- Removed ``ATTACH`` from :attr:`Alarm.singletons &amp;lt;icalendar.cal.alarm.Alarm.singletons&amp;gt;`. An &amp;quot;email&amp;quot; ``VALARM`` may carry more than one ``ATTACH`` per :rfc:`5545#section-3.6.6`, so ``ATTACH`` belongs in ``multiple`` only; it was previously listed in both ``singletons`` and ``multiple``. Added a regression test that ``singletons`` and ``multiple`` are disjoint for every registered component. Prepared with the assistance of an AI coding agent (Anthropic's Claude Opus 4.8). @vtino17 (`Issue [#1569](https://github.com/collective/icalendar/issues/1569) &amp;lt;https://github.com/collective/icalendar/issues/1569&amp;gt;`_)
- :attr:`Alarm.REPEAT &amp;lt;icalendar.cal.alarm.Alarm.REPEAT&amp;gt;`, :attr:`Alarm.repeat &amp;lt;icalendar.cal.alarm.Alarm.repeat&amp;gt;`, :attr:`Event.sequence &amp;lt;icalendar.cal.event.Event.sequence&amp;gt;`, and :attr:`Event.priority &amp;lt;icalendar.cal.event.Event.priority&amp;gt;` now reject non-integers (including booleans) with :exc:`TypeError` and negative values with :exc:`~icalendar.error.InvalidCalendar`. @heyncth (`Issue [#1594](https://github.com/collective/icalendar/issues/1594) &amp;lt;https://github.com/collective/icalendar/issues/1594&amp;gt;`_)
- Added the missing ``BINARY`` member to :class:`icalendar.enums.VALUE`, per :rfc:`5545#section-3.2.20`. ``VALUE.BINARY`` previously raised :exc:`AttributeError`. Prepared with the assistance of an AI coding agent (Anthropic's Claude Opus 4.8). @vtino17 (`Issue [#1607](https://github.com/collective/icalendar/issues/1607) &amp;lt;https://github.com/collective/icalendar/issues/1607&amp;gt;`_)
- A ``PERIOD`` value written with dates instead of datetimes, such as ``RDATE;VALUE=PERIOD:19970101/19970102``, was accepted when a calendar was parsed and then raised an :exc:`AttributeError` when it was written out again, or a :exc:`TypeError` where only one half was a date. Such a value is now read as midnight, in the timezone of the other half where it has one. I used AI to assist me with this change. @lcampanella98 (`Issue [#1633](https://github.com/collective/icalendar/issues/1633) &amp;lt;https://github.com/collective/icalendar/issues/1633&amp;gt;`_)
- When :func:`timezone.use_pytz &amp;lt;icalendar.timezone.use_pytz&amp;gt;` was in effect, a date parsed with a ``TZID``, such as ``RDATE;TZID=America/New_York;VALUE=DATE:19970101``, was given the timezone's oldest known offset, its local mean time, so the value was minutes off. It is now read with the offset that applied on that date. Calendars read with zoneinfo, the default, were not affected. I used AI to assist me with this change. @lcampanella98 (`Issue [#1633](https://github.com/collective/icalendar/issues/1633) &amp;lt;https://github.com/collective/icalendar/issues/1633&amp;gt;`_)
- Escape a lone ``\r`` as ``\n`` in ``icalendar.parser.string._escape_char``, used by :meth:`vText.to_ical &amp;lt;icalendar.prop.text.vText.to_ical&amp;gt;`. A carriage return not followed by a line feed was previously left raw in the serialized content line, so a ``SUMMARY`` or ``DESCRIPTION`` built from untrusted text could carry a control character into the iCalendar stream and split the line for lenient consumers. ``\r\n`` and ``\n`` were already escaped, and the parameter escaper already mapped ``\r`` to ``^n``. @alhudz (`Pull Request [#1462](https://github.com/collective/icalendar/issues/1462) &amp;lt;https://github.com/collective/icalendar/pull/1462&amp;gt;`_)
- Reject non-ASCII digits in the ``ordwk`` part of :class:`~icalendar.prop.recur.weekday.vWeekday` (``BYDAY``, ``BYWEEKDAY``, and ``WKST``). The value validation regular expression ``\d`` matches non-ASCII digits, such as the Arabic-Indic ``١٢``. A value such as ``١٢MO`` was silently accepted as ``relative == 12``, instead of being rejected, as required by :rfc:`5545#section-3.3.10` (``ordwk = 1*2DIGIT``). This mirrors the earlier :class:`~icalendar.prop.recur.month.vMonth` fix. Drafted with AI assistance (Claude Opus 4.8); reviewed, tested, and verified by the author. @Labib-Bin-Salam
- Reject raw CR and LF in :class:`~icalendar.prop.uri.vUri`, :class:`~icalendar.prop.cal_address.vCalAddress`, :class:`~icalendar.prop.inline.vInline`, and :class:`~icalendar.prop.xml_reference.vXmlReference`. These value types are not escaped on serialization, so a lone ``\r`` in the value was written straight into the content line, slipping past the newline-only assertion in ``Contentline`` and reparsing as a separate property. This was reachable from untrusted jCal via ``URL``, ``ATTENDEE``, and ``ORGANIZER``. @alhudz
- jCal property names, parameter names, and ``RRULE`` part names are now validated as lowercase iCalendar tokens when parsing jCal (RFC 7265 sections :rfc:`7265#section-3.4`, :rfc:`7265#section-3.5`, and :rfc:`7265#section-3.6.10`). They were kept verbatim and re-emitted into the content line on serialization, so a name containing ``:``, ``;``, or a lone carriage return could inject parameters or a new content line for consumers that treat a bare ``\r`` as a break. @alhudz


Documentation
&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;... (truncated)&lt;/p&gt;
&lt;/details&gt;
&lt;details&gt;
&lt;summary&gt;Commits&lt;/summary&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/collective/icalendar/commit/138c8453db34fbb584bbcbc592fd7bd4b972e8ef&quot;&gt;&lt;code&gt;138c845&lt;/code&gt;&lt;/a&gt; remove duplicated news fragment&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/collective/icalendar/commit/933ff2c789dab88e9fde0e249bcdec832dc1e5e4&quot;&gt;&lt;code&gt;933ff2c&lt;/code&gt;&lt;/a&gt; Merge main into 7.x&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/collective/icalendar/commit/849919f4f6e9de4f684fcc2c391d347bdfada0e8&quot;&gt;&lt;code&gt;849919f&lt;/code&gt;&lt;/a&gt; version 7.3.0&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/collective/icalendar/commit/8d20a43036fd5acbc5a36f9e885dbdc3267462cd&quot;&gt;&lt;code&gt;8d20a43&lt;/code&gt;&lt;/a&gt; move breaking change to feature (&lt;a href=&quot;https://redirect.github.com/collective/icalendar/issues/1685&quot;&gt;#1685&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/collective/icalendar/commit/bc179116e63a2447adf77de66034bd3d2078b9f3&quot;&gt;&lt;code&gt;bc17911&lt;/code&gt;&lt;/a&gt; [docs] Fix unqualified cross-references in Todo docstrings (&lt;a href=&quot;https://redirect.github.com/collective/icalendar/issues/1678&quot;&gt;#1678&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/collective/icalendar/commit/698624cacf4b48244a82acb3cc60de9cd0f33750&quot;&gt;&lt;code&gt;698624c&lt;/code&gt;&lt;/a&gt; Add REQUEST-STATUS property (&lt;a href=&quot;https://redirect.github.com/collective/icalendar/issues/1672&quot;&gt;#1672&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/collective/icalendar/commit/82b19379a16cea095659efc0f132d3b3b4ad1dba&quot;&gt;&lt;code&gt;82b1937&lt;/code&gt;&lt;/a&gt; Add return type hint to use_default (&lt;a href=&quot;https://redirect.github.com/collective/icalendar/issues/1665&quot;&gt;#1665&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/collective/icalendar/commit/514be871254a99ebbd35b72e9f155afa1f67431e&quot;&gt;&lt;code&gt;514be87&lt;/code&gt;&lt;/a&gt; fix: validate non-negative integer values for repeat, sequence, priority (&lt;a href=&quot;https://redirect.github.com/collective/icalendar/issues/1598&quot;&gt;#1598&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/collective/icalendar/commit/069e672ace766b3ed0db171d5fab5bbf40c3b864&quot;&gt;&lt;code&gt;069e672&lt;/code&gt;&lt;/a&gt; Rename timezone_datetime_property to _timezone_datetime_property (&lt;a href=&quot;https://redirect.github.com/collective/icalendar/issues/1011&quot;&gt;#1011&lt;/a&gt;) (&lt;a href=&quot;https://redirect.github.com/collective/icalendar/issues/1675&quot;&gt;#1675&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/collective/icalendar/commit/b83927513910b6cbe740e8ab52d21c03a004d06a&quot;&gt;&lt;code&gt;b839275&lt;/code&gt;&lt;/a&gt; chore(deps): bump github/codeql-action/upload-sarif from ea14db8afdef5d462e69...&lt;/li&gt;
&lt;li&gt;Additional commits viewable in &lt;a href=&quot;https://github.com/collective/icalendar/compare/v7.2.0...v7.3.0&quot;&gt;compare view&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;

&lt;br /&gt;</code></pre>

Updates `joblib` from 1.5.3 to 1.6.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/joblib/joblib/blob/main/CHANGES.rst">joblib's changelog</a>.</em></p>
<blockquote>
<h2>Release 1.6.0 - 2026/08/31</h2>
<ul>
<li>
<p>Fix caching of functions whose source cannot be retrieved, such as functions
defined in a notebook cell. Their identity fell back to
<code>str(hash(func.__code__))</code>, which is salted by <code>PYTHONHASHSEED</code> and so
differed between processes. A worker reading the <code>func_code.py</code> written by
another one concluded that the function had changed and wiped the whole
cache directory for it, discarding results computed by its peers.
<code>func_code.py</code> is also no longer rewritten in place, so a reader can no
longer catch it half-written and draw the same conclusion.
<a href="https://redirect.github.com/joblib/joblib/issues/1694">joblib/joblib#1694</a></p>
</li>
<li>
<p>Drop python 3.9 support. The oldest supported Python version
is now Python 3.10.
<a href="https://redirect.github.com/joblib/joblib/pull/1773">joblib/joblib#1773</a></p>
</li>
<li>
<p>Fix <code>eval_expr</code> (used to evaluate the <code>pre_dispatch</code> argument of
<code>Parallel</code>) to raise a <code>ValueError</code> as documented instead of leaking a
<code>ZeroDivisionError</code> for expressions that divide or take a modulo by zero.
<a href="https://redirect.github.com/joblib/joblib/pull/1810">joblib/joblib#1810</a></p>
</li>
<li>
<p><code>MemorizedResult</code> now forwards <code>mmap_mode</code> to its store backend, so a
cached array reconstructed from a location is memory-mapped as requested
instead of being loaded fully into memory.
<a href="https://redirect.github.com/joblib/joblib/pull/1799">joblib/joblib#1799</a></p>
</li>
<li>
<p>Unvendor cloudpickle to more quickly benefit from maintenance releases
of cloudpickle
<a href="https://redirect.github.com/joblib/joblib/pull/1775">joblib/joblib#1775</a></p>
</li>
<li>
<p>Fix <code>Memory.cache</code> for functions with a keyword-only argument that has a
default declared before a keyword-only argument without a default.
<a href="https://redirect.github.com/joblib/joblib/issues/1731">joblib/joblib#1731</a></p>
</li>
<li>
<p>Fix behavior of <code>filter_args</code> on some precise cases.
<a href="https://redirect.github.com/joblib/joblib/pull/1800">joblib/joblib#1800</a></p>
</li>
<li>
<p>Fix a concurrency error that could happen with unordered generator.
<a href="https://redirect.github.com/joblib/joblib/pull/1789">joblib/joblib#1789</a></p>
</li>
<li>
<p>Fix: <code>dump()</code> now accepts any input <code>os.PathLike</code> object to be consistent with
<code>load</code>.
<a href="https://redirect.github.com/joblib/joblib/pull/1812">joblib/joblib#1812</a></p>
</li>
<li>
<p>The documentation now uses pydata sphinx theme. Furthermore, optional dependencies
<code>test</code> and <code>docs</code> have been added to <code>pyproject.toml</code>.
<a href="https://redirect.github.com/joblib/joblib/pull/1774">joblib/joblib#1774</a></p>
</li>
<li>
<p>Vendor <code>loky 3.6.0</code></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/joblib/joblib/commit/cd9a6b05fc4f2b1c8202eb62c4e863484f8cc099"><code>cd9a6b0</code></a> Release 1.6.0 (<a href="https://redirect.github.com/joblib/joblib/issues/1844">#1844</a>)</li>
<li><a href="https://github.com/joblib/joblib/commit/d873f972949d78166af6c945667c53f04d41fed6"><code>d873f97</code></a> MNT vendor loky 3.6.0 (<a href="https://redirect.github.com/joblib/joblib/issues/1843">#1843</a>)</li>
<li><a href="https://github.com/joblib/joblib/commit/4ff61afd0849f18fddf5fbd137c1f02bfaed5223"><code>4ff61af</code></a> Bump the github-actions group with 4 updates (<a href="https://redirect.github.com/joblib/joblib/issues/1832">#1832</a>)</li>
<li><a href="https://github.com/joblib/joblib/commit/804f4725e1a27b1425c8aabcf7312ceb11c3a07d"><code>804f472</code></a> FIX make func_code stable across processes when the source is unavailable (<a href="https://redirect.github.com/joblib/joblib/issues/1">#1</a>...</li>
<li><a href="https://github.com/joblib/joblib/commit/65cc49da449f70ffa73bc7c3c57fd418392f9993"><code>65cc49d</code></a> TST Restore RNG sequence in hash compatibility test (<a href="https://redirect.github.com/joblib/joblib/issues/1837">#1837</a>)</li>
<li><a href="https://github.com/joblib/joblib/commit/c1b654161a2c245acdf9830bf6fc7553f8c0b6b2"><code>c1b6541</code></a> CI Use pytest-run-parallel on free-threaded build (<a href="https://redirect.github.com/joblib/joblib/issues/1819">#1819</a>)</li>
<li><a href="https://github.com/joblib/joblib/commit/f6b80d3ec961409ff4704e9695e9c89599bcf272"><code>f6b80d3</code></a> MNT Simplify isinstance check in hashing (<a href="https://redirect.github.com/joblib/joblib/issues/1835">#1835</a>)</li>
<li><a href="https://github.com/joblib/joblib/commit/fa4d5afd851955f3e2a805cdacaf6bf9512e7576"><code>fa4d5af</code></a> MNT remove python 3.9 from CI (<a href="https://redirect.github.com/joblib/joblib/issues/1773">#1773</a>)</li>
<li><a href="https://github.com/joblib/joblib/commit/53cea7b177c3400154613372614a0f35274b036d"><code>53cea7b</code></a> DOC Update release docs to reflect usage of trusted publishing (<a href="https://redirect.github.com/joblib/joblib/issues/1826">#1826</a>)</li>
<li><a href="https://github.com/joblib/joblib/commit/26500e91e1cfcacd0d50ba759bfecc4792f3528e"><code>26500e9</code></a> Bump the github-actions group across 1 directory with 3 updates (<a href="https://redirect.github.com/joblib/joblib/issues/1790">#1790</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/joblib/joblib/compare/1.5.3...1.6.0">compare view</a></li>
</ul>
</details>
<br />

Updates `osmnx` from 2.0.6 to 2.1.1
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/gboeing/osmnx/blob/main/CHANGELOG.md">osmnx's changelog</a>.</em></p>
<blockquote>
<h2>2.1.1 (2026-07-21)</h2>
<ul>
<li>fix projection bug when re-projecting an already-projected graph (<a href="https://redirect.github.com/gboeing/osmnx/issues/1373">#1373</a> <a href="https://redirect.github.com/gboeing/osmnx/issues/1374">#1374</a>)</li>
<li>fix projection bug after consolidating intersections (<a href="https://redirect.github.com/gboeing/osmnx/issues/1388">#1388</a>)</li>
<li>fix cloverleaf intersection consolidation bug (<a href="https://redirect.github.com/gboeing/osmnx/issues/1396">#1396</a>)</li>
<li>fix minor bugs (<a href="https://redirect.github.com/gboeing/osmnx/issues/1395">#1395</a>)</li>
<li>move DNS config after cache check to prevent unnecessary resolving (<a href="https://redirect.github.com/gboeing/osmnx/issues/1397">#1397</a>)</li>
</ul>
<h2>2.1.0 (2026-02-16)</h2>
<ul>
<li>add Python 3.14 support (<a href="https://redirect.github.com/gboeing/osmnx/issues/1336">#1336</a>)</li>
<li>drop Python 3.9 and 3.10 support (<a href="https://redirect.github.com/gboeing/osmnx/issues/1322">#1322</a> <a href="https://redirect.github.com/gboeing/osmnx/issues/1336">#1336</a>)</li>
<li>add validation functions to verify that a graph or GeoDataFrame satisfies OSMnx expectations (<a href="https://redirect.github.com/gboeing/osmnx/issues/1317">#1317</a>)</li>
<li>improve type hinting (<a href="https://redirect.github.com/gboeing/osmnx/issues/1366">#1366</a>)</li>
</ul>
<h2>2.0.7 (2025-11-25)</h2>
<ul>
<li>fix TypeError in _getaddrinfo wrapper when host passed both positionally and as keyword (<a href="https://redirect.github.com/gboeing/osmnx/issues/1340">#1340</a>)</li>
<li>allow interpolate_points function to run on MultiLineString input (<a href="https://redirect.github.com/gboeing/osmnx/issues/1341">#1341</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/gboeing/osmnx/commit/2fc39cb2792ff869881b99f724a2d97f0e958667"><code>2fc39cb</code></a> Merge pull request <a href="https://redirect.github.com/gboeing/osmnx/issues/1399">#1399</a> from gboeing/release</li>
<li><a href="https://github.com/gboeing/osmnx/commit/1f5e08c2d9d12bd2e5262d4b9e0c5ef52bef5d0b"><code>1f5e08c</code></a> version bump</li>
<li><a href="https://github.com/gboeing/osmnx/commit/061c1fa4455627d81c4934e6dd502fff0de05e48"><code>061c1fa</code></a> update pre-commit</li>
<li><a href="https://github.com/gboeing/osmnx/commit/20b155a443e53718788c55d6b470ba44058bbd4f"><code>20b155a</code></a> fix comment</li>
<li><a href="https://github.com/gboeing/osmnx/commit/a59ad0d5a7eeff04e9d682225dcbbcf80b9ac0de"><code>a59ad0d</code></a> Merge pull request <a href="https://redirect.github.com/gboeing/osmnx/issues/1396">#1396</a> from gboeing/consolidate</li>
<li><a href="https://github.com/gboeing/osmnx/commit/4e037290c77f9cc84e96de296f96b28dbbcd915a"><code>4e03729</code></a> code cleanup</li>
<li><a href="https://github.com/gboeing/osmnx/commit/25ff0ae159524d51019774560f019e0b659f516e"><code>25ff0ae</code></a> assign new test to xdist group</li>
<li><a href="https://github.com/gboeing/osmnx/commit/ca4f392ab417d99c99aeedd3ed8f9c2996950b46"><code>ca4f392</code></a> Merge branch 'main' into consolidate</li>
<li><a href="https://github.com/gboeing/osmnx/commit/cb47c0d5c728ad9286bf0d4a05db4e685f034989"><code>cb47c0d</code></a> Update CHANGELOG.md</li>
<li><a href="https://github.com/gboeing/osmnx/commit/6b5a03e71a640ca916768ab9299e82fd1db41f6b"><code>6b5a03e</code></a> Merge pull request <a href="https://redirect.github.com/gboeing/osmnx/issues/1398">#1398</a> from gboeing/tests</li>
<li>Additional commits viewable in <a href="https://github.com/gboeing/osmnx/compare/v2.0.6...v2.1.1">compare view</a></li>
</ul>
</details>
<br />

Updates `tqdm` from 4.68.4 to 4.70.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/tqdm/tqdm/releases">tqdm's releases</a>.</em></p>
<blockquote>
<h2>tqdm v4.70.1 stable</h2>
<ul>
<li><code>contrib.concurrent</code>: fix no-len iterables (<a href="https://redirect.github.com/tqdm/tqdm/issues/1830">#1830</a> &lt;- <a href="https://redirect.github.com/tqdm/tqdm/issues/1828">#1828</a>)</li>
<li>tests: major overhaul (<a href="https://redirect.github.com/tqdm/tqdm/issues/1819">#1819</a>)</li>
<li>update AI policy in PR template</li>
<li>misc lint &amp; tidy</li>
<li>CI: bump workflow actions &amp; pre-commit hooks</li>
</ul>
<h2>tqdm v4.70.0 stable</h2>
<ul>
<li><code>contrib.concurrent</code>: major improvements
<ul>
<li>support <code>process_map(mp_context, max_tasks_per_child)</code>, <code>thread_map(thread_name_prefix)</code> (<a href="https://redirect.github.com/tqdm/tqdm/issues/1265">#1265</a>)</li>
<li>fix <code>total</code> based on shortest iterable length (<a href="https://redirect.github.com/tqdm/tqdm/issues/1473">#1473</a>)</li>
<li>use default <code>max_workers</code> (<a href="https://redirect.github.com/tqdm/tqdm/issues/1543">#1543</a> &lt;- <a href="https://redirect.github.com/tqdm/tqdm/issues/1530">#1530</a>, <a href="https://redirect.github.com/tqdm/tqdm/issues/1518">#1518</a>)</li>
<li>support <code>timeout</code>, <code>buffersize</code> (<a href="https://redirect.github.com/tqdm/tqdm/issues/1576">#1576</a>)</li>
<li>improve ETA (<a href="https://redirect.github.com/tqdm/tqdm/issues/1708">#1708</a> &lt;- <a href="https://redirect.github.com/tqdm/tqdm/issues/1161">#1161</a>)</li>
<li>update <code>as_completed</code> (<a href="https://redirect.github.com/tqdm/tqdm/issues/1709">#1709</a> &lt;- <a href="https://redirect.github.com/tqdm/tqdm/issues/1565">#1565</a>)</li>
<li>add <code>tqdm.concurrent.intepreter_map</code> (<a href="https://redirect.github.com/tqdm/tqdm/issues/1777">#1777</a>)</li>
</ul>
</li>
<li><code>asyncio</code>: support iterables with only <code>__aiter__</code> (<a href="https://redirect.github.com/tqdm/tqdm/issues/1714">#1714</a> &lt;- <a href="https://redirect.github.com/tqdm/tqdm/issues/1686">#1686</a>)</li>
<li>support <code>reset(float(&quot;inf&quot;))</code> (<a href="https://redirect.github.com/tqdm/tqdm/issues/1783">#1783</a> &lt;- <a href="https://redirect.github.com/tqdm/tqdm/issues/1781">#1781</a>, <a href="https://redirect.github.com/tqdm/tqdm/issues/651">#651</a>)</li>
<li>framework: test &amp; reduce wheel size (<a href="https://redirect.github.com/tqdm/tqdm/issues/1782">#1782</a>)</li>
</ul>
<h2>tqdm v4.69.1 stable</h2>
<ul>
<li><code>contrib.logging</code>: preserve filters (<a href="https://redirect.github.com/tqdm/tqdm/issues/1775">#1775</a> &lt;- <a href="https://redirect.github.com/tqdm/tqdm/issues/1581">#1581</a>)</li>
<li><code>rich</code>: misc fixes (<a href="https://redirect.github.com/tqdm/tqdm/issues/1773">#1773</a>)
<ul>
<li>support generators (without <code>len</code>) (<a href="https://redirect.github.com/tqdm/tqdm/issues/1391">#1391</a>)</li>
<li>fix potential <code>AttributeError</code> on exit (<a href="https://redirect.github.com/tqdm/tqdm/issues/1674">#1674</a>)</li>
</ul>
</li>
<li>fix <code>total=float('inf')</code> (<a href="https://redirect.github.com/tqdm/tqdm/issues/1781">#1781</a> &lt;- <a href="https://redirect.github.com/tqdm/tqdm/issues/651">#651</a>)</li>
<li>fix potential <code>AttributeError</code> on exit (<a href="https://redirect.github.com/tqdm/tqdm/issues/1778">#1778</a> &lt;- <a href="https://redirect.github.com/tqdm/tqdm/issues/1668">#1668</a>, <a href="https://redirect.github.com/tqdm/tqdm/issues/1537">#1537</a>, <a href="https://redirect.github.com/tqdm/tqdm/issues/261">#261</a>)</li>
<li>fix minor docs typos (<a href="https://redirect.github.com/tqdm/tqdm/issues/1780">#1780</a>, <a href="https://redirect.github.com/tqdm/tqdm/issues/1746">#1746</a>)</li>
</ul>
<h2>tqdm v4.69.0 stable</h2>
<ul>
<li>add <code>tqdm.asyncio.gather(..., return_exceptions=False)</code> (<a href="https://redirect.github.com/tqdm/tqdm/issues/1776">#1776</a>, <a href="https://redirect.github.com/tqdm/tqdm/issues/1671">#1671</a> &lt;- <a href="https://redirect.github.com/tqdm/tqdm/issues/1286">#1286</a>)</li>
<li>misc minor framework updates
<ul>
<li>bump workflow actions &amp; pre-commit hooks</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/tqdm/tqdm/commit/9cf5a12b1f955468a17f0ba3c59092b23e4258ac"><code>9cf5a12</code></a> Merge pull request <a href="https://redirect.github.com/tqdm/tqdm/issues/1830">#1830</a> from eaubin/master</li>
<li><a href="https://github.com/tqdm/tqdm/commit/24b9e1e08a097f1c30f2d235b63f9eb25ba47974"><code>24b9e1e</code></a> misc tidy</li>
<li><a href="https://github.com/tqdm/tqdm/commit/2a9e4e82ddba07c5dd6d126e23a4745b76ea49c8"><code>2a9e4e8</code></a> contrib.concurrent: fix no-len iterables</li>
<li><a href="https://github.com/tqdm/tqdm/commit/8d6ff8de5a9066de77d0a9df3e80a022a3dcf146"><code>8d6ff8d</code></a> Merge pull request <a href="https://redirect.github.com/tqdm/tqdm/issues/1819">#1819</a> from tqdm/devel</li>
<li><a href="https://github.com/tqdm/tqdm/commit/bed379609c2c8300671c784c8f85a185c8cf6fb3"><code>bed3796</code></a> tests: major overhaul</li>
<li><a href="https://github.com/tqdm/tqdm/commit/4d3d3194d5467e0701bc0f4b836a735273ef0868"><code>4d3d319</code></a> AI policy</li>
<li><a href="https://github.com/tqdm/tqdm/commit/5dcb022b55553b60ed2131b64aa5bf1e65470df1"><code>5dcb022</code></a> minor syntax update</li>
<li><a href="https://github.com/tqdm/tqdm/commit/309effe4244bf45427c5add7f1bcf33f98a7b421"><code>309effe</code></a> tests: pre-commit coverage</li>
<li><a href="https://github.com/tqdm/tqdm/commit/604193aa03b5f5c0ad5f3d441951f0fbb515f1e4"><code>604193a</code></a> tests: slight tidy</li>
<li><a href="https://github.com/tqdm/tqdm/commit/17f1cac07c89943eb0e6082875b3821205308d4f"><code>17f1cac</code></a> CI: bump workflow actions</li>
<li>Additional commits viewable in <a href="https://github.com/tqdm/tqdm/compare/v4.68.4...v4.70.1">compare view</a></li>
</ul>
</details>
<br />

Updates `playwright` from 1.61.0 to 1.63.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/playwright-python/releases">playwright's releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>🪟 Locate across frames</h2>
<p><a href="https://playwright.dev/python/docs/api/class-page#page-frame-locator">page.frame_locator()</a> and <a href="https://playwright.dev/python/docs/api/class-frame#frame-frame-locator">frame.frame_locator()</a> called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:</p>
<pre lang="python"><code># Finds the button in any frame on the page.
page.frame_locator().get_by_role(&quot;button&quot;).click()
</code></pre>
<p>The rest of the locator resolves inside a single frame, just like a regular locator, and an error is thrown when it
matches elements in several frames.</p>
<h2>👁️ Visible-only locators</h2>
<p>New <a href="https://playwright.dev/python/docs/api/class-locator#locator-visible">locator.visible</a> returns a locator that matches only visible elements. It is the recommended
replacement for the <code>:visible</code> CSS pseudo-class:</p>
<pre lang="python"><code>page.locator(&quot;button&quot;).visible.click()
</code></pre>
<h2>🖼️ Aria and screen snapshots in traces</h2>
<p>New <a href="https://playwright.dev/python/docs/api/class-tracing#tracing-start-option-aria-snapshots"><code>aria_snapshots</code></a> and <a href="https://playwright.dev/python/docs/api/class-tracing#tracing-start-option-screen-snapshots"><code>screen_snapshots</code></a> options of
<a href="https://playwright.dev/python/docs/api/class-tracing#tracing-start">tracing.start()</a> capture an aria snapshot and a screenshot of the page on every action:</p>
<pre lang="python"><code>context.tracing.start(snapshots=True, aria_snapshots=True, screen_snapshots=True)
</code></pre>
<p>With aria and screen snapshots recorded, the new <strong>Display Aria</strong> mode in the trace viewer shows the action screenshot
side by side with the aria snapshot, and hovering an aria node highlights it on the screenshot.</p>
<h2>New APIs</h2>
<h3>Browser and Context</h3>
<ul>
<li><a href="https://playwright.dev/python/docs/api/class-browser#browser-new-context-option-http-credentials"><code>http_credentials</code></a> now also accepts an array of credentials. The first entry matching the request origin is used, and entries without an origin match any request.</li>
<li>New option <a href="https://playwright.dev/python/docs/api/class-browsercontext#browser-context-storage-state-option-opfs"><code>opfs</code></a> includes the <a href="https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system">origin private file system</a> in the storage state, so it can be persisted and restored into later contexts.</li>
<li>New events <a href="https://playwright.dev/python/docs/api/class-page#page-event-dialog-closed">page.on('dialogclosed')</a> and <a href="https://playwright.dev/python/docs/api/class-browsercontext#browser-context-event-dialog-closed">browserContext.on('dialogclosed')</a> are emitted when a JavaScript dialog is accepted, dismissed or closed by the user.</li>
</ul>
<h3>Command line</h3>
<ul>
<li><code>playwright install --no-remove</code> keeps the browsers of other Playwright installations instead of removing them.</li>
<li><code>playwright codegen --http-credentials</code> records against pages behind HTTP authentication.</li>
</ul>
<h2>Announcements</h2>
<ul>
<li>⚠️ Ubuntu 20.04 is not supported anymore.</li>
<li>🐧 On Linux arm64, Playwright now downloads the <a href="https://developer.chrome.com/blog/chrome-for-testing">Chrome for Testing</a> build of Chromium, the same build used on all other platforms.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/microsoft/playwright-python/commit/8cb967b3e4199bef5ce38e1cf34df1bf79cb8a8d"><code>8cb967b</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright-python/issues/3200">#3200</a>): devops(docker): move docker publishing to Azure Pipelines</li>
<li><a href="https://github.com/microsoft/playwright-python/commit/ab18c77c56f64b47e871bf4d8b08fd0675559377"><code>ab18c77</code></a> chore: roll Playwright to 1.63.0 (<a href="https://redirect.github.com/microsoft/playwright-python/issues/3198">#3198</a>)</li>
<li><a href="https://github.com/microsoft/playwright-python/commit/0e66a0927e5431b0f659ff41b6544de96b0486f5"><code>0e66a09</code></a> devops(pipeline): resolve pip and npm packages from DevDiv_PublicPackages fee...</li>
<li><a href="https://github.com/microsoft/playwright-python/commit/010a9cc73f8a90bc2d7b9e34591c4e2c4a4ea566"><code>010a9cc</code></a> Pin GitHub Actions to full-length commit SHAs (<a href="https://redirect.github.com/microsoft/playwright-python/issues/3176">#3176</a>)</li>
<li><a href="https://github.com/microsoft/playwright-python/commit/154f67ced51ada646b0fcf8574897d96c9712aa3"><code>154f67c</code></a> fix(sync): wait for initialize before leaving <strong>enter</strong> (<a href="https://redirect.github.com/microsoft/playwright-python/issues/3168">#3168</a>)</li>
<li><a href="https://github.com/microsoft/playwright-python/commit/4af2fc65fb05eb04904b69b6206e9d07ca2b4cbc"><code>4af2fc6</code></a> chore: roll Playwright to 1.62.1 (<a href="https://redirect.github.com/microsoft/playwright-python/issues/3169">#3169</a>)</li>
<li><a href="https://github.com/microsoft/playwright-python/commit/4d2e058f43f05448ad29b19e82919be5b86e8349"><code>4d2e058</code></a> fix(connection): register protocol callback only after successful send (<a href="https://redirect.github.com/microsoft/playwright-python/issues/3167">#3167</a>)</li>
<li><a href="https://github.com/microsoft/playwright-python/commit/eab2bca195df8709bd32fc11129c268cf8963cd2"><code>eab2bca</code></a> chore(deps): remove unused development dependencies (<a href="https://redirect.github.com/microsoft/playwright-python/issues/3164">#3164</a>)</li>
<li><a href="https://github.com/microsoft/playwright-python/commit/3b7c24c3e67dc84f7b0eddd0c5fd2ca685705021"><code>3b7c24c</code></a> chore: roll Playwright to 1.62.0 (<a href="https://redirect.github.com/microsoft/playwright-python/issues/3161">#3161</a>)</li>
<li><a href="https://github.com/microsoft/playwright-python/commit/1db079f769ff42c60b7bde3498fb98f638131534"><code>1db079f</code></a> build(deps): bump typing-extensions from 4.15.0 to 4.16.0 (<a href="https://redirect.github.com/microsoft/playwright-python/issues/3162">#3162</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/microsoft/playwright-python/compare/v1.61.0...v1.63.0">compare view</a></li>
</ul>
</details>
<br />

Updates `geopandas` from 1.1.4 to 1.2.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/geopandas/geopandas/releases">geopandas's releases</a>.</em></p>
<blockquote>
<h2>v1.2.0</h2>
<h2>What's Changed</h2>
<p>New features and improvements:</p>
<ul>
<li>
<p>Static plotting in GeoPandas has been re-implemented. The new tooling shall be mostly
backwards compatible while bringing a set of enhancements:</p>
<ul>
<li>Categorical plotting now allows dict-based mapping of categories to colors and
other styles.</li>
<li>Legends now reflect the geometry type and complete set of styles, not just a
color.</li>
<li>Plotting of continuous variables with a classification scheme can now produce
a colorbar instead of a categorical legend when using <code>colorbar=True</code> within
<code>legend_kwds</code>.</li>
<li><code>vmin</code> and <code>vmax</code> keywords are supported when <code>scheme</code> is defined, not ignored.</li>
<li>When using categorical colormap with categorical plots, colors are now assigned
in order to optimize the contrast of the resulting map.</li>
<li>Colorbar size is automatically adjusted to be approximately the size of the plot.</li>
<li>Colorbar now indicates extensions if the <code>vmin</code> and/or <code>vmax</code> clip the values.</li>
<li>Legends are created automatically by matplotlib. This also means that you can
create a single legend from a layered map by calling <code>ax.legend()</code> directly.</li>
<li>GeoPandas now labels axes using the information on units from CRS. This can be
controlled via the <code>add_labels</code> keyword.</li>
<li>Static plots can include a basemap defined by the <code>tiles</code> keyword, exposing
<code>contextily.add_basemap</code> from within the <code>plot</code> method. Requires <code>contextily</code>
package to be installed.</li>
<li><code>scheme</code> keyword can take a value <code>&quot;greedy&quot;</code> resulting in a greedy (topological)
coloring where no two adjacent polygons share a color. Requires <code>mapclassify</code> and
<code>libpysal</code> packages.</li>
</ul>
<p>The related refactoring of the plotting infrastructure has changed the internal
representation of the figure generated by GeoPandas. This can be considered a breaking
change if you rely the composition of collections, as that has changed. A number of
plotting-related bugs has been fixed along as a side effect. All changes are reflected
in an updated user guide.
(<a href="https://redirect.github.com/geopandas/geopandas/issues/3708">#3708</a>, <a href="https://redirect.github.com/geopandas/geopandas/issues/3728">#3728</a>, <a href="https://redirect.github.com/geopandas/geopandas/issues/3748">#3748</a>, <a href="https://redirect.github.com/geopandas/geopandas/issues/3752">#3752</a>, <a href="https://redirect.github.com/geopandas/geopandas/issues/3753">#3753</a>, <a href="https://redirect.github.com/geopandas/geopandas/issues/3763">#3763</a>, <a href="https://redirect.github.com/geopandas/geopandas/issues/3767">#3767</a>, <a href="https://redirect.github.com/geopandas/geopandas/issues/3689">#3689</a>).</p>
</li>
<li>
<p>GeoParquet improvements:</p>
<ul>
<li>The upcoming GeoParquet 2.0 specification is now supported for both writing
and reading (<a href="https://redirect.github.com/geopandas/geopandas/issues/3632">#3632</a>).</li>
<li><code>read_parquet</code> now support direct reading from HTTP/HTTPS protocols (<a href="https://redirect.github.com/geopandas/geopandas/issues/3699">#3699</a>).</li>
<li><code>GeoDataFrame.to_parquet</code> and <code>read_parquet</code> will now write and read <code>attrs</code>
respectively (<a href="https://redirect.github.com/geopandas/geopandas/issues/3597">#3597</a>).</li>
</ul>
</li>
<li>
<p>Added <code>geopandas.make_grid</code> and <code>GeoSeries.make_grid</code> to generate a square
or hexagonal grids covering the input geometry (<a href="https://redirect.github.com/geopandas/geopandas/issues/2062">#2062</a>).</p>
</li>
<li>
<p>Added <code>geopandas.read_file_info</code> to expose information about file layers, including layer
metadata (this is an alias for <code>pyogrio.read_info</code>) (<a href="https://redirect.github.com/geopandas/geopandas/issues/3759">#3759</a>).</p>
</li>
<li>
<p>Add <code>grid_size</code> parameter to <code>union</code>, <code>difference</code>, <code>symmetric_difference</code>
and <code>intersection</code> (<a href="https://redirect.github.com/geopandas/geopandas/issues/3593">#3593</a>).</p>
</li>
<li>
<p>Document how to access the feature ID (<code>fid</code>) as the index when reading files</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/geopandas/geopandas/blob/main/CHANGELOG.md">geopandas's changelog</a>.</em></p>
<blockquote>
<h2>Version 1.2.0 (September 28, 2026)</h2>
<p>New features and improvements:</p>
<ul>
<li>
<p>Static plotting in GeoPandas has been re-implemented. The new tooling shall be mostly
backwards compatible while bringing a set of enhancements:</p>
<ul>
<li>Categorical plotting now allows dict-based mapping of categories to colors and
other styles.</li>
<li>Legends now reflect the geometry type and complete set of styles, not just a
color.</li>
<li>Plotting of continuous variables with a classification scheme can now produce
a colorbar instead of a categorical legend when using <code>colorbar=True</code> within
<code>legend_kwds</code>.</li>
<li><code>vmin</code> and <code>vmax</code> keywords are supported when <code>scheme</code> is defined, not ignored.</li>
<li>When using categorical colormap with categorical plots, colors are now assigned
in order to optimize the contrast of the resulting map.</li>
<li>Colorbar size is automatically adjusted to be approximately the size of the plot.</li>
<li>Colorbar now indicates extensions if the <code>vmin</code> and/or <code>vmax</code> clip the values.</li>
<li>Legends are created automatically by matplotlib. This also means that you can
create a single legend from a layered map by calling <code>ax.legend()</code> directly.</li>
<li>GeoPandas now labels axes using the information on units from CRS. This can be
controlled via the <code>add_labels</code> keyword.</li>
<li>Static plots can include a basemap defined by the <code>tiles</code> keyword, exposing
<code>contextily.add_basemap</code> from within the <code>plot</code> method. Requires <code>contextily</code>
package to be installed.</li>
<li><code>scheme</code> keyword can take a value <code>&quot;greedy&quot;</code> resulting in a greedy (topological)
coloring where no two adjacent polygons share a color. Requires <code>mapclassify</code> and
<code>libpysal</code> packages.</li>
</ul>
<p>The related refactoring of the plotting infrastructure has changed the internal
representation of the figure generated by GeoPandas. This can be considered a breaking
change if you rely the composition of collections, as that has changed. A number of
plotting-related bugs has been fixed along as a side effect. All changes are reflected
in an updated user guide.
(<a href="https://redirect.github.com/geopandas/geopandas/issues/3708">#3708</a>, <a href="https://redirect.github.com/geopandas/geopandas/issues/3728">#3728</a>, <a href="https://redirect.github.com/geopandas/geopandas/issues/3748">#3748</a>, <a href="https://redirect.github.com/geopandas/geopandas/issues/3752">#3752</a>, <a href="https://redirect.github.com/geopandas/geopandas/issues/3753">#3753</a>, <a href="https://redirect.github.com/geopandas/geopandas/issues/3763">#3763</a>, <a href="https://redirect.github.com/geopandas/geopandas/issues/3767">#3767</a>, <a href="https://redirect.github.com/geopandas/geopandas/issues/3689">#3689</a>).</p>
</li>
<li>
<p>GeoParquet improvements:</p>
<ul>
<li>The upcoming GeoParquet 2.0 specification is now supported for both writing
and reading (<a href="https://redirect.github.com/geopandas/geopandas/issues/3632">#3632</a>).</li>
<li><code>read_parquet</code> now support direct reading from HTTP/HTTPS protocols (<a href="https://redirect.github.com/geopandas/geopandas/issues/3699">#3699</a>).</li>
<li><code>GeoDataFrame.to_parquet</code> and <code>read_parquet</code> will now write and read <code>attrs</code>
respectively (<a href="https://redirect.github.com/geopandas/geopandas/issues/3597">#3597</a>).</li>
</ul>
</li>
<li>
<p>Added <code>geopandas.make_grid</code> and <code>GeoSeries.make_grid</code> to generate a square
or hexagonal grids covering the input geometry (<a href="https://redirect.github.com/geopandas/geopandas/issues/2062">#2062</a>).</p>
</li>
<li>
<p>Added <code>geopandas.read_file_info</code> to expose information about file layers, including layer
metadata (this is an alias for <code>pyogrio.read_info</code>) (<a href="https://redirect.github.com/geopandas/geopandas/issues/3759">#3759</a>).</p>
</li>
<li>
<p>Add <code>grid_size</code> parameter to <code>union</code>, <code>difference</code>, <code>symmetric_difference</code>
and <code>intersection</code> (<a href="https://redirect.github.com/geopandas/geopandas/issues/3593">#3593</a>).</p>
</li>
<li>
<p>Document how to access the feature ID (<code>fid</code>) as the index when reading files
with <code>read_file</code> and the pyogrio engine, using <code>fid_as_index=True</code> (<a href="https://redirect.github.com/geopandas/geopandas/issues/3829">#3829</a>).</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/geopandas/geopandas/commit/199fc53c8a1b87fe4f11d7a8f69f0d1408d9ef71"><code>199fc53</code></a> RLS: v1.2.0</li>
<li><a href="https://github.com/geopandas/geopandas/commit/0429cd109225eadd8d0e415364ce2078919fcc08"><code>0429cd1</code></a> DOC/RLS: update changelog for 1.2 release (<a href="https://redirect.github.com/geopandas/geopandas/issues/3864">#3864</a>)</li>
<li><a href="https://github.com/geopandas/geopandas/commit/3e07c90579c2aabea56c49be7e9780138615e084"><code>3e07c90</code></a> BUG: always use int64 for the explode parts index level (<a href="https://redirect.github.com/geopandas/geopandas/issues/3871">#3871</a>)</li>
<li><a href="https://github.com/geopandas/geopandas/commit/85f365444aa0db235f94814e358e13f85d351353"><code>85f3654</code></a> TST: use fixed byte-order in to_wkb tests (for big endian machine) (<a href="https://redirect.github.com/geopandas/geopandas/issues/3874">#3874</a>)</li>
<li><a href="https://github.com/geopandas/geopandas/commit/6d49816a1f15127c2fcc6b38099c8a38d5502d23"><code>6d49816</code></a> CI: use nightly wheels for shapely in the dev build (<a href="https://redirect.github.com/geopandas/geopandas/issues/3872">#3872</a>)</li>
<li><a href="https://github.com/geopandas/geopandas/commit/69fb61f2538b2cf9ca0feb1f3c470d928ebd7f41"><code>69fb61f</code></a> ENH: expose read_file_info as toplevel function (<a href="https://redirect.github.com/geopandas/geopandas/issues/3759">#3759</a>)</li>
<li><a href="https://github.com/geopandas/geopandas/commit/cc8e4e88f67c10da0bfa0bc696d898f8af1bfad8"><code>cc8e4e8</code></a> TST: filterwarning cleanup (<a href="https://redirect.github.com/geopandas/geopandas/issues/3867">#3867</a>)</li>
<li><a href="https://github.com/geopandas/geopandas/commit/6302753ef93da57ed386af3fc4787c7f923fbf19"><code>6302753</code></a> ENH: support reading GeoParquet 2.0 files with bbox filter (<a href="https://redirect.github.com/geopandas/geopandas/issues/3847">#3847</a>)</li>
<li><a href="https://github.com/geopandas/geopandas/commit/c0e3867385dbfdbb75cea79afa4bf56dbf78ad0a"><code>c0e3867</code></a> ENH: add new make_grid() function (equivalent of st_make_grid) (<a href="https://redirect.github.com/geopandas/geopandas/issues/2197">#2197</a>)</li>
<li><a href="https://github.com/geopandas/geopandas/commit/9e58ea141bb634e6c36a875969c400c7e4e3db45"><code>9e58ea1</code></a> DOC: consolidate contributing guides (<a href="https://redirect.github.com/geopandas/geopandas/issues/3859">#3859</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/geopandas/geopandas/compare/v1.1.4...v1.2.0">compare view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions


</details>

Bumps the python group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [icalendar](https://github.com/collective/icalendar) | `7.2.0` | `7.3.0` |
| [joblib](https://github.com/joblib/joblib) | `1.5.3` | `1.6.0` |
| [osmnx](https://github.com/gboeing/osmnx) | `2.0.6` | `2.1.1` |
| [tqdm](https://github.com/tqdm/tqdm) | `4.68.4` | `4.70.1` |
| [playwright](https://github.com/microsoft/playwright-python) | `1.61.0` | `1.63.0` |
| [geopandas](https://github.com/geopandas/geopandas) | `1.1.4` | `1.2.0` |



Updates `icalendar` from 7.2.0 to 7.3.0
- [Release notes](https://github.com/collective/icalendar/releases)
- [Changelog](https://github.com/collective/icalendar/blob/main/CHANGES.rst)
- [Commits](collective/icalendar@v7.2.0...v7.3.0)

Updates `joblib` from 1.5.3 to 1.6.0
- [Release notes](https://github.com/joblib/joblib/releases)
- [Changelog](https://github.com/joblib/joblib/blob/main/CHANGES.rst)
- [Commits](joblib/joblib@1.5.3...1.6.0)

Updates `osmnx` from 2.0.6 to 2.1.1
- [Changelog](https://github.com/gboeing/osmnx/blob/main/CHANGELOG.md)
- [Commits](gboeing/osmnx@v2.0.6...v2.1.1)

Updates `tqdm` from 4.68.4 to 4.70.1
- [Release notes](https://github.com/tqdm/tqdm/releases)
- [Commits](tqdm/tqdm@v4.68.4...v4.70.1)

Updates `playwright` from 1.61.0 to 1.63.0
- [Release notes](https://github.com/microsoft/playwright-python/releases)
- [Commits](microsoft/playwright-python@v1.61.0...v1.63.0)

Updates `geopandas` from 1.1.4 to 1.2.0
- [Release notes](https://github.com/geopandas/geopandas/releases)
- [Changelog](https://github.com/geopandas/geopandas/blob/main/CHANGELOG.md)
- [Commits](geopandas/geopandas@v1.1.4...v1.2.0)

---
updated-dependencies:
- dependency-name: icalendar
  dependency-version: 7.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: joblib
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: osmnx
  dependency-version: 2.1.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: tqdm
  dependency-version: 4.70.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: playwright
  dependency-version: 1.63.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: geopandas
  dependency-version: 1.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Oct 6, 2026
@dependabot @github

dependabot Bot commented on behalf of github Oct 14, 2026

Copy link
Copy Markdown
Contributor Author

Looks like these dependencies are updatable in another way, so this is no longer needed.

@dependabot dependabot Bot closed this Oct 14, 2026
@dependabot
dependabot Bot deleted the dependabot/uv/python-18f39ad955 branch October 14, 2026 18:19
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 python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants