Repository navigation
chore(deps): update all dependencies - #18752
renovate-bot wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates various package dependencies across multiple requirements.txt files in the repository. Feedback on these changes highlights a compatibility issue where upgrading geopandas to 1.2.0 unconditionally breaks Python 3.10 support, suggesting the use of environment markers instead. Additionally, the reviewer advises installing monorepo-internal dependencies, specifically google-auth and google-crc32c, from their local paths using editable installs to ensure local changes are properly tested during development and CI.
| google-auth==2.41.1 | ||
| google-cloud-bigquery==3.45.0 | ||
| geojson==3.3.0 | ||
| geopandas==1.2.0 |
There was a problem hiding this comment.
Upgrading geopandas to 1.2.0 unconditionally will break compatibility for Python 3.10 environments, as GeoPandas 1.2.0 requires Python 3.11 or greater. Since Python 3.10 is still supported by this repository, please use environment markers to fall back to 1.1.2 on Python 3.10.
geopandas==1.1.2; python_version < '3.11'
geopandas==1.2.0; python_version >= '3.11'
| geojson==3.3.0 | ||
| geopandas==1.2.0 | ||
| google-api-core==2.42.0 | ||
| google-auth==2.62.0 |
There was a problem hiding this comment.
In the google-cloud-python monorepo, google-auth is a member of the monorepo and exists locally in the packages/ directory. It should be installed directly from the local path to ensure that local changes are tested during development and CI.
-e ../../../google-auth
References
- In the
google-cloud-pythonmonorepo,google-crc32candgoogle-authare now members of the monorepo and exist locally in thepackages/directory, so they can be installed directly from local paths.
| google-cloud-core==2.8.0 | ||
| google-crc32c==1.7.1 | ||
| google-resumable-media==2.7.2 | ||
| google-crc32c==1.9.0 |
There was a problem hiding this comment.
In the google-cloud-python monorepo, google-crc32c is a member of the monorepo and exists locally in the packages/ directory. It should be installed directly from the local path to ensure that local changes are tested during development and CI.
-e ../../../google-crc32c
References
- In the
google-cloud-pythonmonorepo,google-crc32candgoogle-authare now members of the monorepo and exist locally in thepackages/directory, so they can be installed directly from local paths.
| @@ -1,10 +1,10 @@ | |||
| google-auth==2.52.0 | |||
| google-auth==2.62.0 | |||
There was a problem hiding this comment.
In the google-cloud-python monorepo, google-auth is a member of the monorepo and exists locally in the packages/ directory. It should be installed directly from the local path to ensure that local changes are tested during development and CI.
-e ../../../google-auth
References
- In the
google-cloud-pythonmonorepo,google-crc32candgoogle-authare now members of the monorepo and exist locally in thepackages/directory, so they can be installed directly from local paths.
131afbc to
a74ca65
Compare
a74ca65 to
820ee34
Compare
820ee34 to
924e311
Compare
924e311 to
6efdc48
Compare
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
==2.1.4→==2.1.5==0.10.3→==0.15.1==0.10.3→==0.15.1==2026.7.22→==2026.10.18==3.4.9→==3.5.2==3.4.3→==3.5.2==3.5.1→==3.5.2==8.4.2→==8.5.0==8.3.0→==8.5.0==50.0.0→==50.0.2==50.0.1→==50.0.2==0.4.0→==0.4.4v4.0.1→v4.0.3==4.2.0→==4.2.4==3.2.0→==3.3.0==1.1.2→==1.2.0==2.33.0→==2.42.0==2.28.0→==2.42.0==2.41.0→==2.42.0==2.56.2→==2.62.0==2.41.1→==2.62.0==2.52.0→==2.62.0==2.60.0→==2.62.0==1.2.2→==1.5.0==3.45.0→==3.46.2==3.41.0→==3.46.2==3.44.0→==3.46.2==2.31.0→==2.32.0==2.29.0→==2.32.0==3.69.0→==3.71.0==1.7.1→==1.9.0==2.7.2→==2.11.0==3.45.0→==3.46.2==3.5.4→==3.5.6==1.83.0→==1.84.0==1.75.1→==1.84.0==3.18→==3.20==3.15→==3.20==8.1.8→==8.1.9==3.0.3→==3.0.4==26.2→==26.2.1==4.9.6→==4.13.5==1.28.2→==1.29.0==1.26.1→==1.29.0==7.35.1→==7.36.23.14→3.153.12→3.153.10→3.15==1.6.3→==1.6.4==0.15.12→==0.17.1==21.14.7→==21.14.11==2.5.0→==2.5.1Release Notes
googleapis/google-cloud-python (bigquery-magics)
v0.15.1: bigquery-magics: v0.15.1Compare Source
Bug Fixes
v0.15.0: google-cloud-discoveryengine 0.15.0Compare Source
Bug Fixes
Add labels for additional Sessions identification (PiperOrigin-RevId:
8207103) (1dbd0988)Include AssistAnswer as a part of the Session (PiperOrigin-RevId:
8207103) (1dbd0988)v0.14.0: google-cloud-discoveryengine 0.14.0Compare Source
0.14.0 (2025-10-16)
v0.13.0Compare Source
v0.12.2: bigquery-magics: v0.12.2Compare Source
v0.12.2 (2026-03-26)
v0.12.1: google-ai-generativelanguage: v0.12.1Compare Source
Features
v0.12.0: google-cloud-recommendations-ai 0.12.0Compare Source
0.12.0 (2026-01-09)
v0.11.0: google-cloud-recommendations-ai 0.11.00.11.0 (2025-10-20)
certifi/python-certifi (certifi)
v2026.10.18Compare Source
pallets/click (click)
v8.5.0Compare Source
Released 2026-08-24
5.1+ and pwsh 7+) alongside the existing
bash,zsh, andfishcompleters. Use
_FOO_BAR_COMPLETE=powershell_source foo-barto generatethe completion script. {issue}
2672{pr}3637Colorama is no longer a dependency and is not used. {issue}
2986{pr}3505Argumentaccepts ahelpparameter, and help output includesa
Positional argumentssection when argument help is available. {issue}2983{pr}3473confirm()andprompt()strip ANSI color and style codes from theprompt when the output stream does not support them, matching
echo().This stripping was lost in
8.4.0when {pr}2969began writing theprompt with
input()directly. {issue}3572{pr}36533656Pathwithallow_dash=Trueno longer triggers aBytesWarning,an error under
python -bb, when checking a value against the-convention. {issue}
2877{pr}3642custom_version_option, a--versionoption whose output isproduced by a callback, covering cases {func}
version_optionintentionallydoes not. The feature set of {func}
version_optionis now frozen; seediscussion #3527. {pr}
3581style()andsecho()no longer silently drop the 256-color index0(black) passed as
fgorbg, and now validate color arguments. Invalidcolors raise a
ValueErrorinstead of aTypeError. {pr}3677_click_default_helpinstead ofhelp, so a parameter namedhelpnolonger breaks parsing. The new name is visible in
{meth}
Command.to_info_dictoutput. Parameters that overwrite each other'svalue trigger a warning: an argument sharing its name with another
parameter, or any parameter claiming the reserved name. Options may still
share a name to compete for the same value (feature switches).
{issue}
2819{pr}3678unstyleand the ANSI handling behind help-text wrapping now strip the fullCSI escape-sequence grammar. {pr}
3681Optionflag handling: the flag-kind, type, lazy-default andvalidation steps in
Option.__init__move into focused helpers, andflag_valueanddefaultkeep their unset sentinel at construction(resolved lazily on read) so
is UNSETreliably tells a user-supplied valuefrom an auto-derived one. Runtime behavior is unchanged, but
{meth}
Parameter.to_info_dictnow resolvesdefault=Trueon a featureswitch to its
flag_value, matching what the function receives at calltime. {pr}
3641get_binary_streamand {func}get_text_streamare deprecated andwill be removed in Click 9.0. {issue}
3481{pr}3695click.utilsnames were never intentionally public and arenow private (
_-prefixed). The old names remain available with aDeprecationWarninguntil Click 9.0:LazyFile,KeepOpenFile,make_default_short_help,PacifyFlushWrapper, andsafecall.{issue}
3099{pr}3695CliRunner.isolated_filesystem. It relies on{func}
os.chdir, which mutates process-global state and is notthread-safe. The helper predates Python 3 and modern pytest: use a
temporary directory ({class}
tempfile.TemporaryDirectoryor pytest'stmp_pathfixture) with absolute paths instead. For running tests inparallel, use process-based isolation (such as
pytest-xdist) ratherthan threads, since {meth}
CliRunner.invokealso redirects theprocess-global standard streams. {issue}
3501{issue}3700{pr}3704prompt()is now generically typed and returns the type produced bytype,value_proc, or a matchingdefaultinstead ofAny.{class}
ParamTypetakes a second optional type parameter describing theinput value it accepts (
ParamType[int, str]for a type convertingstrings to integers), defaulting to
Any. {pr}3407Command.get_help_option_namesreturns the help option names in theorder they were declared. {pr}
3728get_pager_fileyields a text stream on Windows again. The temporaryfile backend opened its file in binary mode, so writing a
strto the pagerraised
TypeError: a bytes-like object is required, not 'str', and thecolorargument was ignored on that path. Regression introduced in8.4.0by {pr}
1572. {issue}3731{issue}3732{issue}3740{pr}3739progressbarsettles on its final position whenupdate_min_stepsdoes not divide the total. Steps below that threshold are applied when the
bar finishes, so
show_posrenders20/20rather than the last multipleit reached. {issue}
3571{pr}3769PermissionError: [WinError 32]on Windows. The temporary file backendunlinked its file without closing it first, and Windows refuses to remove a
file the process still holds open, so the cleanup failure masked the real
exception. {issue}
3731{pr}3764{func}
get_pager_filepicked for the output stream, and witherrors="replace"to match the pipe backend. Any text stdout can encodereaches the pager.
PAGERto the pager command instead of silently dropping them. On Windows,PAGER="less -R"now invokesless -Ron the temporary file rather thanbare
less. {pr}37773416{pr}
3777editacceptsos.PathLikevalues forfilename, in addition tostrings. {issue}
2869{pr}3781pyca/cryptography (cryptography)
v50.0.2Compare Source
v50.0.1Compare Source
pypa/distlib (distlib)
v0.4.4Compare Source
v0.4.3Compare Source
v0.4.2Compare Source
v0.4.1Compare Source
dorny/paths-filter
v4.0.3Compare Source
v4.0.2Compare Source
tox-dev/py-filelock (filelock)
v4.2.4Compare Source
PyPI release
Full Changelog: tox-dev/filelock@4.2.3...4.2.4
v4.2.3Compare Source
types.LazyImportTypeno longer triggersAttributeErroratexit. #860
EFTYPEwhen a no-follow open refuses a symlink in a soft reader/writer lock's protocol tree, so heartbeatreports lost ownership rather than a transient refresh error.
PyPI release
Full Changelog: tox-dev/filelock@4.2.2...4.2.3
v4.2.2Compare Source
with lock:ended, when an earlieracquire()hadfailed because the working directory no longer exists. That call still raises
FileNotFoundError, and it nowleaves the lock's hold count unchanged. #856
PyPI release
Full Changelog: tox-dev/filelock@4.2.1...4.2.2
v4.2.1Compare Source
close>andclose>end only the holds that tasks acquiredthrough that wrapper. A reader that arrives during
close()gets the closed error instead of joining the ending hold.After synchronous code closes or force-releases the shared lock, the wrappers refuse to admit readers into the ended
hold, and
close()on such a wrapper returns.Closing one wrapper no longer ends a task's nested hold taken through another wrapper on the same path. #832
ReadWriteLocklocks again after arelease()that an exception from a signal handler interrupted.The async read-write wrappers stop admitting readers into such a level. The async read-write locks forget a hold whose
backend release failed after the backend let go, and they free the memory of each acquire that times out or is canceled.
AsyncFileLockreturns fromrelease()after a few hundred acquires gave up behind a waiting one. An exception from a signal handler delivered while anAsyncFileLockcall joinsits queue no longer blocks every later call on that lock. #833
ReadWriteLockacting on-journal,-walor-shmfiles another process puts beside itsdatabase: a write could land in another file, a reader could get in beside a writer, and an acquire could fail. SQLite
now opens the database by name only in a directory no other account can write, and through a private hard link
elsewhere. On Windows the directory's access control list decides. Where hard links are unavailable, keep the database
in a directory other accounts cannot write, such as one under
%LOCALAPPDATA%. The lock removes link directoriesthrough a checked descriptor rather than by name, reads a link directory's name only when the locking account owns it,
and leaves alone a directory with other content renamed onto a link directory's name. A database whose schema takes more
than a few kilobytes to load raises
ValueErrorinstead of running past the acquire timeout. #834UnixFileLockno longer truncates a file it did not create,such as one renamed to the lock path, and no longer applies
modeto it. Anon_acquiredhook that writes holdermetadata now truncates the file itself. A lease (Linux) or an oplock (Windows) on the lock file or a soft lock's marker
no longer holds
acquire()past itstimeoutorblocking=False, and an oplock no longer holdsrelease();ReadWriteLockon Windows waits for itstimeoutand raisesTimeout. On Windows,a
modewithout group and other bits, such as0o600, now creates the lock file with an owner-only permissionlist; the
ReadWriteLockdatabase gets the same. The soft locks' writability check no longer follows asymlink swapped in at the lock path. On a filesystem without
flock, a contender from another account now waits on amarker it cannot write instead of raising
PermissionError. #835SoftFileLock,MarkerSoftFileLockandSoftFileLeaseremovinga live holder's marker in three cases: the holder and the contender run in Linux time namespaces with different boottime
offsets; only one of them can read the boot id; a process other than the owner rewrote the marker. Soft markers no
longer carry group or other write bits. A process name containing a carriage return or another line separator no longer
makes the stale check raise
ValueError. When/proc/self/ns/timeexists but cannot be read, the stale checkno longer compares start times and keeps the marker. #836
the hold can no longer re-enter or release it.
AsyncSoftReadWriteLockgives back one level onrelease, so synchronous readers of a shared singleton keep theirs.
SoftReadWriteLocktracks readlevels per thread:
release()from a thread that holds none raisesRuntimeError. After its heartbeatrecorded a lost hold, it refuses new acquires until that hold is released. #838
StrictSoftFileLockcreates<path>.filelockand itsclaimsdirectory with the lock'smodeand sets the sticky bit (a directory flag that lets only a file's owner remove it) on both. On the next acquisition it
narrows a directory it owns that an earlier release created wider; it leaves a directory of another account as it is,
so remove such leftovers by hand. It reaches
claimsthrough a descriptor opened without following symlinks; onWindows it holds both directories open and refuses a junction (a directory that points at another directory). Under a
sticky parent such as
/tmpit refuses a coordination directory of another account, asSoftReadWriteLockdoes for<path>.rw. One read grace now covers a whole claim scan, a failedclaim cleanup no longer leaves the sentinel descriptor open, and a non-regular node at a sentinel private-record name
raises
SoftFileLockProtocolError. On Windows, contenders read claims without blocking their owner'sunlink. #839
acquireorrelease. A release that a signal handler cutsshort after it has started now completes before the error propagates. A handler that acquires the lock its own thread is
releasing now gets
RuntimeErrorinstead of a hold that stays held. The singleton cache no longer hands out anis_singleton=Truelock or aReadWriteLockwhose finalizer is running, which released the newholder's lock. A signal during
os.fork()no longer leaves the other threads blocked in their next lock call, and afork from another thread no longer waits for a
ReadWriteLockacquire on a busy database. #840its marker behind on release after such a change. The path resolved when an acquisition starts stays in use until
the hold ends. An
is_singleton=Truelookup no longer returns a cached lock whose relative path now resolves toanother file; a held lock still matches the file it holds. A rename of the lock's directory during a hold no longer
leaves the marker behind or reports a false lease compromise, and a waiter no longer creates a second lock file in a
directory that was renamed away. #841
SoftReadWriteLockreaches its records through descriptors of<path>.rwandgenorholdersopened without following symlinks. On Windows it holds those directories open and refuses a junction (a directory that
points at another directory). A tree swapped in after an earlier acquire therefore cannot redirect them. Its heartbeat
rewrites a holder record only when the name still leads to the file it created, and does not block on a FIFO (a named
pipe). A heartbeat that finds
<path>.rwreplaced by a symlink or junction reports the hold lost instead of endingthe heartbeat thread. A live lock object repeats the ownership check whenever the tree it opens is not the one it
prepared. #842
SoftFileLock,MarkerSoftFileLockandSoftFileLeaseremovingor displacing a live holder's marker in five cases. ext4 gave a freed inode number to the next marker. A stalled
FileLockremoved itsENOSYSplaceholder after a peer replaced it. A failed acquire cleaned upafter a successor took the path. A stale break left the lock path empty while it checked the marker it had moved. A
lifetimebreak judged a marker by a reused inode number. On Linux and macOS a stale marker now changes hands in oneatomic exchange. On other platforms without one, except Windows, including NFS and SMB, the marker stays in place and
waits for
timeoutorbreak_lock(). Restoring a marker no longer follows a symlink found under the break name. Aholder that releases while a peer's exchange has its marker aside leaves a record no lock parses, so the put-back lands
a marker that ages out. A lease heartbeat that finds another file at the lock path once, while a peer's break has its
marker aside, waits for the next refresh before it reports a compromise. A contender that finds a dead breaker's marker
puts back the marker that breaker left under its break name. A marker is the breaker's own only when it names the
breaker's process on this host; the same process number on another host is a holder. A contender takes a stranded marker
under a name of its own before it puts the marker back, so two contenders no longer reverse each other's exchange and
remove the live holder's marker. A claim left behind by a failed put-back is retried on the next poll. #843
AsyncReadWriteLockorAsyncSoftReadWriteLockacquire that waits foranother process now stops the wait and raises the cancellation. It used to wait until that process released, or raise
Timeout. Athread_local=TrueAsyncFileLockthat threads with their own eventloops share no longer deadlocks when one thread waits for the lock while another holds it. #844
SoftReadWriteLockrefuses a commit that lands a whole retention window behind the log, so twocommitters stalled at adjacent generations can no longer admit a second writer. Its stale check samples the clock before
it reads a holder record, so a pause between the two no longer counts as time the record stayed unchanged. #845
SoftFileLockcontender evicting an empty marker after two seconds while its owner held thelock. The owner is a
SoftFileLockbefore 3.22, which writes nothing into its marker, or a current one still writingits record. An empty marker now reads as held, and
timeout,lifetimeorbreak_lock()clears it. A contenderthat finds an empty marker a dead breaker left aside puts it back instead of removing it. #846
ReadWriteLockon Windows acting on-journaland-walfiles another account places besideits database: an acquire could fail with
OperationalError, or SQLite could replay the journal anddelete the file it names. The lock now reads the database directory's access control list. Where an account other than
the locking account,
SYSTEMandAdministratorscan add or remove names, SQLite opens a hard link inside adirectory only those accounts can write. A filesystem without hard links raises
OSError. #854SoftReadWriteLocksubclasses sharing singleton instances with the base class or sibling subclasses.Each concrete class now keeps its own cache and construction guard, including after fork, while preserving
cooperative class-definition keywords. #855
fail on unrelated changes. #849
PyPI release
Full Changelog: tox-dev/filelock@4.2.0...4.2.1
jazzband/geojson (geojson)
v3.3.0Compare Source
geopandas/geopandas (geopandas)
v1.2.0Compare Source
New features and improvements:
Static plotting in GeoPandas has been re-implemented. The new tooling shall be mostly
backwards compatible while bringing a set of enhancements:
other styles.
color.
a colorbar instead of a categorical legend when using
colorbar=Truewithinlegend_kwds.vminandvmaxkeywords are supported whenschemeis defined, not ignored.in order to optimize the contrast of the resulting map.
vminand/orvmaxclip the values.create a single legend from a layered map by calling
ax.legend()directly.controlled via the
add_labelskeyword.tileskeyword, exposingcontextily.add_basemapfrom within theplotmethod. Requirescontextilypackage to be installed.
schemekeyword can take a value"greedy"resulting in a greedy (topological)coloring where no two adjacent polygons share a color. Requires
mapclassifyandlibpysalpackages.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.
(#3708, #3728, #3748, #3752, #3753, #3763, #3767, #3689).
GeoParquet improvements:
and reading (#3632).
read_parquetnow support direct reading from HTTP/HTTPS protocols (#3699).GeoDataFrame.to_parquetandread_parquetwill now write and readattrsrespectively (#3597).
Added
geopandas.make_gridandGeoSeries.make_gridto generate a squareor hexagonal grids covering the input geometry (#2062).
Added
geopandas.read_file_infoto expose information about file layers, including layermetadata (this is an alias for
pyogrio.read_info) (#3759).Add
grid_sizeparameter tounion,difference,symmetric_differenceand
intersection(#3593).Document how to access the feature ID (
fid) as the index when reading fileswith
read_fileand the pyogrio engine, usingfid_as_index=True(#3829).Deprecations and compatibility notes:
resolutionkeyword tobufferhas been deprecated to align with the convention in shapely,quad_segsshould be used instead (#3600).use_pygeoswhich had no functionality,seedkeyword in sample_points (replaced byrng) (#3613).Bug fixes:
GeoSeries.sample_pointslooping without end on zero-area polygons, such as acollapsed ring; it now returns an empty
MultiPoint, as it already did for emptyand missing geometries (#3851).
read_parquetignoring thepartitioningkeyword when auto-detectingthe columns to read, so that
partitioning=Noneno longer raises (#3459).GeoDataFrame.explode()raising a cryptic error when passing multiple(non-geometry) columns; it now falls back to the pandas multi-column explode (#2753).
GeoDataFrame.from_featuresraising aValueErrorfor an empty list offeatures when a
crsis provided; it now returns an emptyGeoDataFramewitha
geometrycolumn (#3777).explode(index_parts=True)andget_coordinates(index_parts=True)beingint32instead ofint64on 32-bitplatforms (#3865).
Community:
Notes on dependencies:
shapely 2.1, are now the minimum required version for these dependencies.
Furthermore, the minimum tested version for optional dependencies has been updated to
fiona 1.8.21, scipy 1.9, matplotlib 3.9, mapclassify 2.7 folium 0.15, pyarrow 15.0 and
SQLAlchemy 2.0. Older versions of these libraries may continue to work, but are no longer
considered supported (#3371, #3581).
v1.1.4Compare Source
Bug fixes:
to_postgisagainst SQL injection (#3800).sample_pointsare not sorted along x-axis (#3773).GeoDataFrame.explore()ignoring customlegend_kwds={"labels": ...}for categorical and boolean columns (#3496).
keep_geom_typein theoverlay()function withempty input (#3745).
v1.1.3Compare Source
This release addresses a handful of small compatibility issues with pandas 3.0 and backports some bugfixes.
Bug fixes:
GeoSeries.sample_pointsnot accepting list-likesizewhen generating points usingpointpaterns(#3710).from_wkt/wkbto correctly handle missing values with pandas 3 (where the newstrdtype is used) (#3714).to_postgisto correctly handle missing values with pandas 3 (where the newstrdtype is used) (#3722).locto assign column values to a new row index now correctly preserves the column CRS and geometry dtypeon pandas 3.1, due to an upstream bug fix (#3741, Pandas #62523)
pointpatsmethods ofsample_points`` can now be fixed withrng` (#3737).googleapis/google-cloud-python (google-cloud-bigquery)
v3.46.2Compare Source
Bug Fixes
v3.46.1Compare Source
Bug Fixes