{"id":3,"name":"pandas","ecosystem":"pip","repository_url":"https://github.com/pandas-dev/pandas","issues_count":4354,"created_at":"2025-06-06T15:01:32.354Z","updated_at":"2025-06-06T15:01:32.354Z","purl":"pkg:pypi/pandas","metadata":{"id":2845106,"name":"pandas","ecosystem":"pypi","description":"Powerful data structures for data analysis, time series, and statistics","homepage":null,"licenses":"BSD 3-Clause License\n         \n         Copyright (c) 2008-2011, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team\n         All rights reserved.\n         \n         Copyright (c) 2011-2023, Open source contributors.\n         \n         Redistribution and use in source and binary forms, with or without\n         modification, are permitted provided that the following conditions are met:\n         \n         * Redistributions of source code must retain the above copyright notice, this\n           list of conditions and the following disclaimer.\n         \n         * Redistributions in binary form must reproduce the above copyright notice,\n           this list of conditions and the following disclaimer in the documentation\n           and/or other materials provided with the distribution.\n         \n         * Neither the name of the copyright holder nor the names of its\n           contributors may be used to endorse or promote products derived from\n           this software without specific prior written permission.\n         \n         THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n         AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n         IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n         DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n         FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n         DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n         SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n         CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n         OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n         OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n         Copyright (c) 2010-2019 Keith Goodman\n         Copyright (c) 2019 Bottleneck Developers\n         All rights reserved.\n         \n         Redistribution and use in source and binary forms, with or without\n         modification, are permitted provided that the following conditions are met:\n         \n             * Redistributions of source code must retain the above copyright notice,\n               this list of conditions and the following disclaimer.\n         \n             * Redistributions in binary form must reproduce the above copyright\n               notice, this list of conditions and the following disclaimer in the\n               documentation and/or other materials provided with the distribution.\n         \n         THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n         AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n         IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n         ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n         LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n         CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n         SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n         INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n         CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n         ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n         POSSIBILITY OF SUCH DAMAGE.Copyright 2017- Paul Ganssle \u003cpaul@ganssle.io\u003e\n         Copyright 2017- dateutil contributors (see AUTHORS file)\n         \n            Licensed under the Apache License, Version 2.0 (the \"License\");\n            you may not use this file except in compliance with the License.\n            You may obtain a copy of the License at\n         \n                http://www.apache.org/licenses/LICENSE-2.0\n         \n            Unless required by applicable law or agreed to in writing, software\n            distributed under the License is distributed on an \"AS IS\" BASIS,\n            WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n            See the License for the specific language governing permissions and\n            limitations under the License.\n         \n         The above license applies to all contributions after 2017-12-01, as well as\n         all contributions that have been re-licensed (see AUTHORS file for the list of\n         contributors who have re-licensed their code).\n         --------------------------------------------------------------------------------\n         dateutil - Extensions to the standard Python datetime module.\n         \n         Copyright (c) 2003-2011 - Gustavo Niemeyer \u003cgustavo@niemeyer.net\u003e\n         Copyright (c) 2012-2014 - Tomi Pieviläinen \u003ctomi.pievilainen@iki.fi\u003e\n         Copyright (c) 2014-2016 - Yaron de Leeuw \u003cme@jarondl.net\u003e\n         Copyright (c) 2015-     - Paul Ganssle \u003cpaul@ganssle.io\u003e\n         Copyright (c) 2015-     - dateutil contributors (see AUTHORS file)\n         \n         All rights reserved.\n         \n         Redistribution and use in source and binary forms, with or without\n         modification, are permitted provided that the following conditions are met:\n         \n             * Redistributions of source code must retain the above copyright notice,\n               this list of conditions and the following disclaimer.\n             * Redistributions in binary form must reproduce the above copyright notice,\n               this list of conditions and the following disclaimer in the documentation\n               and/or other materials provided with the distribution.\n             * Neither the name of the copyright holder nor the names of its\n               contributors may be used to endorse or promote products derived from\n               this software without specific prior written permission.\n         \n         THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n         \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n         LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n         A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n         CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n         EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n         PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n         PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n         LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n         NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n         SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n         \n         The above BSD License Applies to all code, even that also covered by Apache 2.0.# MIT License\n         \n         Copyright (c) 2019 Hadley Wickham; RStudio; and Evan Miller\n         \n         Permission is hereby granted, free of charge, to any person obtaining a copy\n         of this software and associated documentation files (the \"Software\"), to deal\n         in the Software without restriction, including without limitation the rights\n         to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n         copies of the Software, and to permit persons to whom the Software is\n         furnished to do so, subject to the following conditions:\n         \n         The above copyright notice and this permission notice shall be included in all\n         copies or substantial portions of the Software.\n         \n         THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n         IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n         FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n         AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n         LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n         OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n         SOFTWARE.\n         Based on http://opensource.org/licenses/MIT\n         \n         This is a template. Complete and ship as file LICENSE the following 2\n         lines (only)\n         \n         YEAR:\n         COPYRIGHT HOLDER:\n         \n         and specify as\n         \n         License: MIT + file LICENSE\n         \n         Copyright (c) \u003cYEAR\u003e, \u003cCOPYRIGHT HOLDER\u003e\n         \n         Permission is hereby granted, free of charge, to any person obtaining\n         a copy of this software and associated documentation files (the\n         \"Software\"), to deal in the Software without restriction, including\n         without limitation the rights to use, copy, modify, merge, publish,\n         distribute, sublicense, and/or sell copies of the Software, and to\n         permit persons to whom the Software is furnished to do so, subject to\n         the following conditions:\n         \n         The above copyright notice and this permission notice shall be\n         included in all copies or substantial portions of the Software.\n         \n         THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n         EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n         MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n         NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n         LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n         OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n         WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n         The MIT License\n         \n         Copyright (c) 2008-     Attractive Chaos \u003cattractor@live.co.uk\u003e\n         \n         Permission is hereby granted, free of charge, to any person obtaining\n         a copy of this software and associated documentation files (the\n         \"Software\"), to deal in the Software without restriction, including\n         without limitation the rights to use, copy, modify, merge, publish,\n         distribute, sublicense, and/or sell copies of the Software, and to\n         permit persons to whom the Software is furnished to do so, subject to\n         the following conditions:\n         \n         The above copyright notice and this permission notice shall be\n         included in all copies or substantial portions of the Software.\n         \n         THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n         EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n         MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n         NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\n         BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n         ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n         CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n         SOFTWARE.musl as a whole is licensed under the following standard MIT license:\n         \n         ----------------------------------------------------------------------\n         Copyright © 2005-2020 Rich Felker, et al.\n         \n         Permission is hereby granted, free of charge, to any person obtaining\n         a copy of this software and associated documentation files (the\n         \"Software\"), to deal in the Software without restriction, including\n         without limitation the rights to use, copy, modify, merge, publish,\n         distribute, sublicense, and/or sell copies of the Software, and to\n         permit persons to whom the Software is furnished to do so, subject to\n         the following conditions:\n         \n         The above copyright notice and this permission notice shall be\n         included in all copies or substantial portions of the Software.\n         \n         THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n         EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n         MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n         IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n         CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n         TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n         SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n         ----------------------------------------------------------------------\n         \n         Authors/contributors include:\n         \n         A. Wilcox\n         Ada Worcester\n         Alex Dowad\n         Alex Suykov\n         Alexander Monakov\n         Andre McCurdy\n         Andrew Kelley\n         Anthony G. Basile\n         Aric Belsito\n         Arvid Picciani\n         Bartosz Brachaczek\n         Benjamin Peterson\n         Bobby Bingham\n         Boris Brezillon\n         Brent Cook\n         Chris Spiegel\n         Clément Vasseur\n         Daniel Micay\n         Daniel Sabogal\n         Daurnimator\n         David Carlier\n         David Edelsohn\n         Denys Vlasenko\n         Dmitry Ivanov\n         Dmitry V. Levin\n         Drew DeVault\n         Emil Renner Berthing\n         Fangrui Song\n         Felix Fietkau\n         Felix Janda\n         Gianluca Anzolin\n         Hauke Mehrtens\n         He X\n         Hiltjo Posthuma\n         Isaac Dunham\n         Jaydeep Patil\n         Jens Gustedt\n         Jeremy Huntwork\n         Jo-Philipp Wich\n         Joakim Sindholt\n         John Spencer\n         Julien Ramseier\n         Justin Cormack\n         Kaarle Ritvanen\n         Khem Raj\n         Kylie McClain\n         Leah Neukirchen\n         Luca Barbato\n         Luka Perkov\n         M Farkas-Dyck (Strake)\n         Mahesh Bodapati\n         Markus Wichmann\n         Masanori Ogino\n         Michael Clark\n         Michael Forney\n         Mikhail Kremnyov\n         Natanael Copa\n         Nicholas J. Kain\n         orc\n         Pascal Cuoq\n         Patrick Oppenlander\n         Petr Hosek\n         Petr Skocik\n         Pierre Carrier\n         Reini Urban\n         Rich Felker\n         Richard Pennington\n         Ryan Fairfax\n         Samuel Holland\n         Segev Finer\n         Shiz\n         sin\n         Solar Designer\n         Stefan Kristiansson\n         Stefan O'Rear\n         Szabolcs Nagy\n         Timo Teräs\n         Trutz Behn\n         Valentin Ochs\n         Will Dietz\n         William Haddon\n         William Pitcock\n         \n         Portions of this software are derived from third-party works licensed\n         under terms compatible with the above MIT license:\n         \n         The TRE regular expression implementation (src/regex/reg* and\n         src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed\n         under a 2-clause BSD license (license text in the source files). The\n         included version has been heavily modified by Rich Felker in 2012, in\n         the interests of size, simplicity, and namespace cleanliness.\n         \n         Much of the math library code (src/math/* and src/complex/*) is\n         Copyright © 1993,2004 Sun Microsystems or\n         Copyright © 2003-2011 David Schultz or\n         Copyright © 2003-2009 Steven G. Kargl or\n         Copyright © 2003-2009 Bruce D. Evans or\n         Copyright © 2008 Stephen L. Moshier or\n         Copyright © 2017-2018 Arm Limited\n         and labelled as such in comments in the individual source files. All\n         have been licensed under extremely permissive terms.\n         \n         The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008\n         The Android Open Source Project and is licensed under a two-clause BSD\n         license. It was taken from Bionic libc, used on Android.\n         \n         The AArch64 memcpy and memset code (src/string/aarch64/*) are\n         Copyright © 1999-2019, Arm Limited.\n         \n         The implementation of DES for crypt (src/crypt/crypt_des.c) is\n         Copyright © 1994 David Burren. It is licensed under a BSD license.\n         \n         The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was\n         originally written by Solar Designer and placed into the public\n         domain. The code also comes with a fallback permissive license for use\n         in jurisdictions that may not recognize the public domain.\n         \n         The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011\n         Valentin Ochs and is licensed under an MIT-style license.\n         \n         The x86_64 port was written by Nicholas J. Kain and is licensed under\n         the standard MIT terms.\n         \n         The mips and microblaze ports were originally written by Richard\n         Pennington for use in the ellcc project. The original code was adapted\n         by Rich Felker for build system and code conventions during upstream\n         integration. It is licensed under the standard MIT terms.\n         \n         The mips64 port was contributed by Imagination Technologies and is\n         licensed under the standard MIT terms.\n         \n         The powerpc port was also originally written by Richard Pennington,\n         and later supplemented and integrated by John Spencer. It is licensed\n         under the standard MIT terms.\n         \n         All other files which have no copyright comments are original works\n         produced specifically for use as part of this library, written either\n         by Rich Felker, the main author of the library, or by one or more\n         contibutors listed above. Details on authorship of individual files\n         can be found in the git version control history of the project. The\n         omission of copyright and license comments in each file is in the\n         interest of source tree size.\n         \n         In addition, permission is hereby granted for all public header files\n         (include/* and arch/*/bits/*) and crt files intended to be linked into\n         applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit\n         the copyright notice and permission notice otherwise required by the\n         license, and to use these files without any requirement of\n         attribution. These files include substantial contributions from:\n         \n         Bobby Bingham\n         John Spencer\n         Nicholas J. Kain\n         Rich Felker\n         Richard Pennington\n         Stefan Kristiansson\n         Szabolcs Nagy\n         \n         all of whom have explicitly granted such permission.\n         \n         This file previously contained text expressing a belief that most of\n         the files covered by the above exception were sufficiently trivial not\n         to be subject to copyright, resulting in confusion over whether it\n         negated the permissions granted in the license. In the spirit of\n         permissive licensing, and of not having licensing issues being an\n         obstacle to adoption, that text has been removed.Copyright (c) 2005-2023, NumPy Developers.\n         All rights reserved.\n         \n         Redistribution and use in source and binary forms, with or without\n         modification, are permitted provided that the following conditions are\n         met:\n         \n             * Redistributions of source code must retain the above copyright\n                notice, this list of conditions and the following disclaimer.\n         \n             * Redistributions in binary form must reproduce the above\n                copyright notice, this list of conditions and the following\n                disclaimer in the documentation and/or other materials provided\n                with the distribution.\n         \n             * Neither the name of the NumPy Developers nor the names of any\n                contributors may be used to endorse or promote products derived\n                from this software without specific prior written permission.\n         \n         THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n         \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n         LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n         A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n         OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n         SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n         LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n         DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n         THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n         (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n         OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n                                          Apache License\n                                    Version 2.0, January 2004\n                                 http://www.apache.org/licenses/\n         \n            TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n         \n            1. Definitions.\n         \n               \"License\" shall mean the terms and conditions for use, reproduction,\n               and distribution as defined by Sections 1 through 9 of this document.\n         \n               \"Licensor\" shall mean the copyright owner or entity authorized by\n               the copyright owner that is granting the License.\n         \n               \"Legal Entity\" shall mean the union of the acting entity and all\n               other entities that control, are controlled by, or are under common\n               control with that entity. For the purposes of this definition,\n               \"control\" means (i) the power, direct or indirect, to cause the\n               direction or management of such entity, whether by contract or\n               otherwise, or (ii) ownership of fifty percent (50%) or more of the\n               outstanding shares, or (iii) beneficial ownership of such entity.\n         \n               \"You\" (or \"Your\") shall mean an individual or Legal Entity\n               exercising permissions granted by this License.\n         \n               \"Source\" form shall mean the preferred form for making modifications,\n               including but not limited to software source code, documentation\n               source, and configuration files.\n         \n               \"Object\" form shall mean any form resulting from mechanical\n               transformation or translation of a Source form, including but\n               not limited to compiled object code, generated documentation,\n               and conversions to other media types.\n         \n               \"Work\" shall mean the work of authorship, whether in Source or\n               Object form, made available under the License, as indicated by a\n               copyright notice that is included in or attached to the work\n               (an example is provided in the Appendix below).\n         \n               \"Derivative Works\" shall mean any work, whether in Source or Object\n               form, that is based on (or derived from) the Work and for which the\n               editorial revisions, annotations, elaborations, or other modifications\n               represent, as a whole, an original work of authorship. For the purposes\n               of this License, Derivative Works shall not include works that remain\n               separable from, or merely link (or bind by name) to the interfaces of,\n               the Work and Derivative Works thereof.\n         \n               \"Contribution\" shall mean any work of authorship, including\n               the original version of the Work and any modifications or additions\n               to that Work or Derivative Works thereof, that is intentionally\n               submitted to Licensor for inclusion in the Work by the copyright owner\n               or by an individual or Legal Entity authorized to submit on behalf of\n               the copyright owner. For the purposes of this definition, \"submitted\"\n               means any form of electronic, verbal, or written communication sent\n               to the Licensor or its representatives, including but not limited to\n               communication on electronic mailing lists, source code control systems,\n               and issue tracking systems that are managed by, or on behalf of, the\n               Licensor for the purpose of discussing and improving the Work, but\n               excluding communication that is conspicuously marked or otherwise\n               designated in writing by the copyright owner as \"Not a Contribution.\"\n         \n               \"Contributor\" shall mean Licensor and any individual or Legal Entity\n               on behalf of whom a Contribution has been received by Licensor and\n               subsequently incorporated within the Work.\n         \n            2. Grant of Copyright License. Subject to the terms and conditions of\n               this License, each Contributor hereby grants to You a perpetual,\n               worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n               copyright license to reproduce, prepare Derivative Works of,\n               publicly display, publicly perform, sublicense, and distribute the\n               Work and such Derivative Works in Source or Object form.\n         \n            3. Grant of Patent License. Subject to the terms and conditions of\n               this License, each Contributor hereby grants to You a perpetual,\n               worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n               (except as stated in this section) patent license to make, have made,\n               use, offer to sell, sell, import, and otherwise transfer the Work,\n               where such license applies only to those patent claims licensable\n               by such Contributor that are necessarily infringed by their\n               Contribution(s) alone or by combination of their Contribution(s)\n               with the Work to which such Contribution(s) was submitted. If You\n               institute patent litigation against any entity (including a\n               cross-claim or counterclaim in a lawsuit) alleging that the Work\n               or a Contribution incorporated within the Work constitutes direct\n               or contributory patent infringement, then any patent licenses\n               granted to You under this License for that Work shall terminate\n               as of the date such litigation is filed.\n         \n            4. Redistribution. You may reproduce and distribute copies of the\n               Work or Derivative Works thereof in any medium, with or without\n               modifications, and in Source or Object form, provided that You\n               meet the following conditions:\n         \n               (a) You must give any other recipients of the Work or\n                   Derivative Works a copy of this License; and\n         \n               (b) You must cause any modified files to carry prominent notices\n                   stating that You changed the files; and\n         \n               (c) You must retain, in the Source form of any Derivative Works\n                   that You distribute, all copyright, patent, trademark, and\n                   attribution notices from the Source form of the Work,\n                   excluding those notices that do not pertain to any part of\n                   the Derivative Works; and\n         \n               (d) If the Work includes a \"NOTICE\" text file as part of its\n                   distribution, then any Derivative Works that You distribute must\n                   include a readable copy of the attribution notices contained\n                   within such NOTICE file, excluding those notices that do not\n                   pertain to any part of the Derivative Works, in at least one\n                   of the following places: within a NOTICE text file distributed\n                   as part of the Derivative Works; within the Source form or\n                   documentation, if provided along with the Derivative Works; or,\n                   within a display generated by the Derivative Works, if and\n                   wherever such third-party notices normally appear. The contents\n                   of the NOTICE file are for informational purposes only and\n                   do not modify the License. You may add Your own attribution\n                   notices within Derivative Works that You distribute, alongside\n                   or as an addendum to the NOTICE text from the Work, provided\n                   that such additional attribution notices cannot be construed\n                   as modifying the License.\n         \n               You may add Your own copyright statement to Your modifications and\n               may provide additional or different license terms and conditions\n               for use, reproduction, or distribution of Your modifications, or\n               for any such Derivative Works as a whole, provided Your use,\n               reproduction, and distribution of the Work otherwise complies with\n               the conditions stated in this License.\n         \n            5. Submission of Contributions. Unless You explicitly state otherwise,\n               any Contribution intentionally submitted for inclusion in the Work\n               by You to the Licensor shall be under the terms and conditions of\n               this License, without any additional terms or conditions.\n               Notwithstanding the above, nothing herein shall supersede or modify\n               the terms of any separate license agreement you may have executed\n               with Licensor regarding such Contributions.\n         \n            6. Trademarks. This License does not grant permission to use the trade\n               names, trademarks, service marks, or product names of the Licensor,\n               except as required for reasonable and customary use in describing the\n               origin of the Work and reproducing the content of the NOTICE file.\n         \n            7. Disclaimer of Warranty. Unless required by applicable law or\n               agreed to in writing, Licensor provides the Work (and each\n               Contributor provides its Contributions) on an \"AS IS\" BASIS,\n               WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n               implied, including, without limitation, any warranties or conditions\n               of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n               PARTICULAR PURPOSE. You are solely responsible for determining the\n               appropriateness of using or redistributing the Work and assume any\n               risks associated with Your exercise of permissions under this License.\n         \n            8. Limitation of Liability. In no event and under no legal theory,\n               whether in tort (including negligence), contract, or otherwise,\n               unless required by applicable law (such as deliberate and grossly\n               negligent acts) or agreed to in writing, shall any Contributor be\n               liable to You for damages, including any direct, indirect, special,\n               incidental, or consequential damages of any character arising as a\n               result of this License or out of the use or inability to use the\n               Work (including but not limited to damages for loss of goodwill,\n               work stoppage, computer failure or malfunction, or any and all\n               other commercial damages or losses), even if such Contributor\n               has been advised of the possibility of such damages.\n         \n            9. Accepting Warranty or Additional Liability. While redistributing\n               the Work or Derivative Works thereof, You may choose to offer,\n               and charge a fee for, acceptance of support, warranty, indemnity,\n               or other liability obligations and/or rights consistent with this\n               License. However, in accepting such obligations, You may act only\n               on Your own behalf and on Your sole responsibility, not on behalf\n               of any other Contributor, and only if You agree to indemnify,\n               defend, and hold each Contributor harmless for any liability\n               incurred by, or claims asserted against, such Contributor by reason\n               of your accepting any such warranty or additional liability.\n         \n            END OF TERMS AND CONDITIONS\n         \n         \n         Copyright (c) Donald Stufft and individual contributors.\n         All rights reserved.\n         \n         Redistribution and use in source and binary forms, with or without\n         modification, are permitted provided that the following conditions are met:\n         \n             1. Redistributions of source code must retain the above copyright notice,\n                this list of conditions and the following disclaimer.\n         \n             2. Redistributions in binary form must reproduce the above copyright\n                notice, this list of conditions and the following disclaimer in the\n                documentation and/or other materials provided with the distribution.\n         \n         THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n         ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n         WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n         DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n         FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n         DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n         SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n         CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n         OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n         OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.A. HISTORY OF THE SOFTWARE\n         ==========================\n         \n         Python was created in the early 1990s by Guido van Rossum at Stichting\n         Mathematisch Centrum (CWI, see https://www.cwi.nl) in the Netherlands\n         as a successor of a language called ABC.  Guido remains Python's\n         principal author, although it includes many contributions from others.\n         \n         In 1995, Guido continued his work on Python at the Corporation for\n         National Research Initiatives (CNRI, see https://www.cnri.reston.va.us)\n         in Reston, Virginia where he released several versions of the\n         software.\n         \n         In May 2000, Guido and the Python core development team moved to\n         BeOpen.com to form the BeOpen PythonLabs team.  In October of the same\n         year, the PythonLabs team moved to Digital Creations, which became\n         Zope Corporation.  In 2001, the Python Software Foundation (PSF, see\n         https://www.python.org/psf/) was formed, a non-profit organization\n         created specifically to own Python-related Intellectual Property.\n         Zope Corporation was a sponsoring member of the PSF.\n         \n         All Python releases are Open Source (see https://opensource.org for\n         the Open Source Definition).  Historically, most, but not all, Python\n         releases have also been GPL-compatible; the table below summarizes\n         the various releases.\n         \n             Release         Derived     Year        Owner       GPL-\n                             from                                compatible? (1)\n         \n             0.9.0 thru 1.2              1991-1995   CWI         yes\n             1.3 thru 1.5.2  1.2         1995-1999   CNRI        yes\n             1.6             1.5.2       2000        CNRI        no\n             2.0             1.6         2000        BeOpen.com  no\n             1.6.1           1.6         2001        CNRI        yes (2)\n             2.1             2.0+1.6.1   2001        PSF         no\n             2.0.1           2.0+1.6.1   2001        PSF         yes\n             2.1.1           2.1+2.0.1   2001        PSF         yes\n             2.1.2           2.1.1       2002        PSF         yes\n             2.1.3           2.1.2       2002        PSF         yes\n             2.2 and above   2.1.1       2001-now    PSF         yes\n         \n         Footnotes:\n         \n         (1) GPL-compatible doesn't mean that we're distributing Python under\n             the GPL.  All Python licenses, unlike the GPL, let you distribute\n             a modified version without making your changes open source.  The\n             GPL-compatible licenses make it possible to combine Python with\n             other software that is released under the GPL; the others don't.\n         \n         (2) According to Richard Stallman, 1.6.1 is not GPL-compatible,\n             because its license has a choice of law clause.  According to\n             CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1\n             is \"not incompatible\" with the GPL.\n         \n         Thanks to the many outside volunteers who have worked under Guido's\n         direction to make these releases possible.\n         \n         \n         B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON\n         ===============================================================\n         \n         Python software and documentation are licensed under the\n         Python Software Foundation License Version 2.\n         \n         Starting with Python 3.8.6, examples, recipes, and other code in\n         the documentation are dual licensed under the PSF License Version 2\n         and the Zero-Clause BSD license.\n         \n         Some software incorporated into Python is under different licenses.\n         The licenses are listed with code falling under that license.\n         \n         \n         PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2\n         --------------------------------------------\n         \n         1. This LICENSE AGREEMENT is between the Python Software Foundation\n         (\"PSF\"), and the Individual or Organization (\"Licensee\") accessing and\n         otherwise using this software (\"Python\") in source or binary form and\n         its associated documentation.\n         \n         2. Subject to the terms and conditions of this License Agreement, PSF hereby\n         grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,\n         analyze, test, perform and/or display publicly, prepare derivative works,\n         distribute, and otherwise use Python alone or in any derivative version,\n         provided, however, that PSF's License Agreement and PSF's notice of copyright,\n         i.e., \"Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,\n         2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Python Software Foundation;\n         All Rights Reserved\" are retained in Python alone or in any derivative version\n         prepared by Licensee.\n         \n         3. In the event Licensee prepares a derivative work that is based on\n         or incorporates Python or any part thereof, and wants to make\n         the derivative work available to others as provided herein, then\n         Licensee hereby agrees to include in any such work a brief summary of\n         the changes made to Python.\n         \n         4. PSF is making Python available to Licensee on an \"AS IS\"\n         basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR\n         IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND\n         DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS\n         FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT\n         INFRINGE ANY THIRD PARTY RIGHTS.\n         \n         5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON\n         FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS\n         A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,\n         OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.\n         \n         6. This License Agreement will automatically terminate upon a material\n         breach of its terms and conditions.\n         \n         7. Nothing in this License Agreement shall be deemed to create any\n         relationship of agency, partnership, or joint venture between PSF and\n         Licensee.  This License Agreement does not grant permission to use PSF\n         trademarks or trade name in a trademark sense to endorse or promote\n         products or services of Licensee, or any third party.\n         \n         8. By copying, installing or otherwise using Python, Licensee\n         agrees to be bound by the terms and conditions of this License\n         Agreement.\n         \n         \n         BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0\n         -------------------------------------------\n         \n         BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1\n         \n         1. This LICENSE AGREEMENT is between BeOpen.com (\"BeOpen\"), having an\n         office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the\n         Individual or Organization (\"Licensee\") accessing and otherwise using\n         this software in source or binary form and its associated\n         documentation (\"the Software\").\n         \n         2. Subject to the terms and conditions of this BeOpen Python License\n         Agreement, BeOpen hereby grants Licensee a non-exclusive,\n         royalty-free, world-wide license to reproduce, analyze, test, perform\n         and/or display publicly, prepare derivative works, distribute, and\n         otherwise use the Software alone or in any derivative version,\n         provided, however, that the BeOpen Python License is retained in the\n         Software, alone or in any derivative version prepared by Licensee.\n         \n         3. BeOpen is making the Software available to Licensee on an \"AS IS\"\n         basis.  BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR\n         IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND\n         DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS\n         FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT\n         INFRINGE ANY THIRD PARTY RIGHTS.\n         \n         4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE\n         SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS\n         AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY\n         DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.\n         \n         5. This License Agreement will automatically terminate upon a material\n         breach of its terms and conditions.\n         \n         6. This License Agreement shall be governed by and interpreted in all\n         respects by the law of the State of California, excluding conflict of\n         law provisions.  Nothing in this License Agreement shall be deemed to\n         create any relationship of agency, partnership, or joint venture\n         between BeOpen and Licensee.  This License Agreement does not grant\n         permission to use BeOpen trademarks or trade names in a trademark\n         sense to endorse or promote products or services of Licensee, or any\n         third party.  As an exception, the \"BeOpen Python\" logos available at\n         http://www.pythonlabs.com/logos.html may be used according to the\n         permissions granted on that web page.\n         \n         7. By copying, installing or otherwise using the software, Licensee\n         agrees to be bound by the terms and conditions of this License\n         Agreement.\n         \n         \n         CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1\n         ---------------------------------------\n         \n         1. This LICENSE AGREEMENT is between the Corporation for National\n         Research Initiatives, having an office at 1895 Preston White Drive,\n         Reston, VA 20191 (\"CNRI\"), and the Individual or Organization\n         (\"Licensee\") accessing and otherwise using Python 1.6.1 software in\n         source or binary form and its associated documentation.\n         \n         2. Subject to the terms and conditions of this License Agreement, CNRI\n         hereby grants Licensee a nonexclusive, royalty-free, world-wide\n         license to reproduce, analyze, test, perform and/or display publicly,\n         prepare derivative works, distribute, and otherwise use Python 1.6.1\n         alone or in any derivative version, provided, however, that CNRI's\n         License Agreement and CNRI's notice of copyright, i.e., \"Copyright (c)\n         1995-2001 Corporation for National Research Initiatives; All Rights\n         Reserved\" are retained in Python 1.6.1 alone or in any derivative\n         version prepared by Licensee.  Alternately, in lieu of CNRI's License\n         Agreement, Licensee may substitute the following text (omitting the\n         quotes): \"Python 1.6.1 is made available subject to the terms and\n         conditions in CNRI's License Agreement.  This Agreement together with\n         Python 1.6.1 may be located on the internet using the following\n         unique, persistent identifier (known as a handle): 1895.22/1013.  This\n         Agreement may also be obtained from a proxy server on the internet\n         using the following URL: http://hdl.handle.net/1895.22/1013\".\n         \n         3. In the event Licensee prepares a derivative work that is based on\n         or incorporates Python 1.6.1 or any part thereof, and wants to make\n         the derivative work available to others as provided herein, then\n         Licensee hereby agrees to include in any such work a brief summary of\n         the changes made to Python 1.6.1.\n         \n         4. CNRI is making Python 1.6.1 available to Licensee on an \"AS IS\"\n         basis.  CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR\n         IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND\n         DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS\n         FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT\n         INFRINGE ANY THIRD PARTY RIGHTS.\n         \n         5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON\n         1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS\n         A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,\n         OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.\n         \n         6. This License Agreement will automatically terminate upon a material\n         breach of its terms and conditions.\n         \n         7. This License Agreement shall be governed by the federal\n         intellectual property law of the United States, including without\n         limitation the federal copyright law, and, to the extent such\n         U.S. federal law does not apply, by the law of the Commonwealth of\n         Virginia, excluding Virginia's conflict of law provisions.\n         Notwithstanding the foregoing, with regard to derivative works based\n         on Python 1.6.1 that incorporate non-separable material that was\n         previously distributed under the GNU General Public License (GPL), the\n         law of the Commonwealth of Virginia shall govern this License\n         Agreement only as to issues arising under or with respect to\n         Paragraphs 4, 5, and 7 of this License Agreement.  Nothing in this\n         License Agreement shall be deemed to create any relationship of\n         agency, partnership, or joint venture between CNRI and Licensee.  This\n         License Agreement does not grant permission to use CNRI trademarks or\n         trade name in a trademark sense to endorse or promote products or\n         services of Licensee, or any third party.\n         \n         8. By clicking on the \"ACCEPT\" button where indicated, or by copying,\n         installing or otherwise using Python 1.6.1, Licensee agrees to be\n         bound by the terms and conditions of this License Agreement.\n         \n                 ACCEPT\n         \n         \n         CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2\n         --------------------------------------------------\n         \n         Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,\n         The Netherlands.  All rights reserved.\n         \n         Permission to use, copy, modify, and distribute this software and its\n         documentation for any purpose and without fee is hereby granted,\n         provided that the above copyright notice appear in all copies and that\n         both that copyright notice and this permission notice appear in\n         supporting documentation, and that the name of Stichting Mathematisch\n         Centrum or CWI not be used in advertising or publicity pertaining to\n         distribution of the software without specific, written prior\n         permission.\n         \n         STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO\n         THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n         FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE\n         FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n         WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n         ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT\n         OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n         \n         ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION\n         ----------------------------------------------------------------------\n         \n         Permission to use, copy, modify, and/or distribute this software for any\n         purpose with or without fee is hereby granted.\n         \n         THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n         REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n         AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n         INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n         LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n         OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n         PERFORMANCE OF THIS SOFTWARE.\n         Copyright (c) 2014, Al Sweigart\n         All rights reserved.\n         \n         Redistribution and use in source and binary forms, with or without\n         modification, are permitted provided that the following conditions are met:\n         \n         * Redistributions of source code must retain the above copyright notice, this\n           list of conditions and the following disclaimer.\n         \n         * Redistributions in binary form must reproduce the above copyright notice,\n           this list of conditions and the following disclaimer in the documentation\n           and/or other materials provided with the distribution.\n         \n         * Neither the name of the {organization} nor the names of its\n           contributors may be used to endorse or promote products derived from\n           this software without specific prior written permission.\n         \n         THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n         AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n         IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n         DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n         FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n         DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n         SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n         CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n         OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n         OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.Copyright (c) 2017 Anthony Sottile\n         \n         Permission is hereby granted, free of charge, to any person obtaining a copy\n         of this software and associated documentation files (the \"Software\"), to deal\n         in the Software without restriction, including without limitation the rights\n         to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n         copies of the Software, and to permit persons to whom the Software is\n         furnished to do so, subject to the following conditions:\n         \n         The above copyright notice and this permission notice shall be included in\n         all copies or substantial portions of the Software.\n         \n         THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n         IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n         FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n         AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n         LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n         OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n         THE SOFTWARE.Copyright (c) 2015-2019 Jared Hobbs\n         \n         Permission is hereby granted, free of charge, to any person obtaining a copy of\n         this software and associated documentation files (the \"Software\"), to deal in\n         the Software without restriction, including without limitation the rights to\n         use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n         of the Software, and to permit persons to whom the Software is furnished to do\n         so, subject to the following conditions:\n         \n         The above copyright notice and this permission notice shall be included in all\n         copies or substantial portions of the Software.\n         \n         THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n         IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n         FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n         AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n         LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n         OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n         SOFTWARE.Developed by ESN, an Electronic Arts Inc. studio.\n         Copyright (c) 2014, Electronic Arts Inc.\n         All rights reserved.\n         \n         Redistribution and use in source and binary forms, with or without\n         modification, are permitted provided that the following conditions are met:\n         * Redistributions of source code must retain the above copyright\n         notice, this list of conditions and the following disclaimer.\n         * Redistributions in binary form must reproduce the above copyright\n         notice, this list of conditions and the following disclaimer in the\n         documentation and/or other materials provided with the distribution.\n         * Neither the name of ESN, Electronic Arts Inc. nor the\n         names of its contributors may be used to endorse or promote products\n         derived from this software without specific prior written permission.\n         \n         THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n         ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n         WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n         DISCLAIMED. IN NO EVENT SHALL ELECTRONIC ARTS INC. BE LIABLE\n         FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n         (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n         LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n         ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n         (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n         SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n         \n         ----\n         \n         Portions of code from MODP_ASCII - Ascii transformations (upper/lower, etc)\n         https://github.com/client9/stringencoders\n         \n           Copyright 2005, 2006, 2007\n           Nick Galbreath -- nickg [at] modp [dot] com\n           All rights reserved.\n         \n           Redistribution and use in source and binary forms, with or without\n           modification, are permitted provided that the following conditions are\n           met:\n         \n             Redistributions of source code must retain the above copyright\n             notice, this list of conditions and the following disclaimer.\n         \n             Redistributions in binary form must reproduce the above copyright\n             notice, this list of conditions and the following disclaimer in the\n             documentation and/or other materials provided with the distribution.\n         \n             Neither the name of the modp.com nor the names of its\n             contributors may be used to endorse or promote products derived from\n             this software without specific prior written permission.\n         \n           THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n           \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n           LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n           A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n           OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n           SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n           LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n           DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n           THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n           (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n           OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n         \n           This is the standard \"new\" BSD license:\n           http://www.opensource.org/licenses/bsd-license.php\n         \n         https://github.com/client9/stringencoders/blob/cfd5c1507325ae497ea9bacdacba12c0ffd79d30/COPYING\n         \n         ----\n         \n         Numeric decoder derived from from TCL library\n         https://opensource.apple.com/source/tcl/tcl-14/tcl/license.terms\n          * Copyright (c) 1988-1993 The Regents of the University of California.\n          * Copyright (c) 1994 Sun Microsystems, Inc.\n         \n           This software is copyrighted by the Regents of the University of\n           California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState\n           Corporation and other parties.  The following terms apply to all files\n           associated with the software unless explicitly disclaimed in\n           individual files.\n         \n           The authors hereby grant permission to use, copy, modify, distribute,\n           and license this software and its documentation for any purpose, provided\n           that existing copyright notices are retained in all copies and that this\n           notice is included verbatim in any distributions. No written agreement,\n           license, or royalty fee is required for any of the authorized uses.\n           Modifications to this software may be copyrighted by their authors\n           and need not follow the licensing terms described here, provided that\n           the new terms are clearly indicated on the first page of each file where\n           they apply.\n         \n           IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY\n           FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES\n           ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY\n           DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE\n           POSSIBILITY OF SUCH DAMAGE.\n         \n           THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,\n           INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,\n           FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE\n           IS PROVIDED ON AN \"AS IS\" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE\n           NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR\n           MODIFICATIONS.\n         \n           GOVERNMENT USE: If you are acquiring this software on behalf of the\n           U.S. government, the Government shall have only \"Restricted Rights\"\n           in the software and related documentation as defined in the Federal\n           Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2).  If you\n           are acquiring the software on behalf of the Department of Defense, the\n           software shall be classified as \"Commercial Computer Software\" and the\n           Government shall have only \"Restricted Rights\" as defined in Clause\n           252.227-7013 (c) (1) of DFARs.  Notwithstanding the foregoing, the\n           authors grant the U.S. Government and others acting in its behalf\n           permission to use and distribute the software in accordance with the\n           terms specified in this license.Apache License\n         Version 2.0, January 2004\n         http://www.apache.org/licenses/\n         \n         TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n         \n         1. Definitions.\n         \n         \"License\" shall mean the terms and conditions for use, reproduction, and\n         distribution as defined by Sections 1 through 9 of this document.\n         \n         \"Licensor\" shall mean the copyright owner or entity authorized by the copyright\n         owner that is granting the License.\n         \n         \"Legal Entity\" shall mean the union of the acting entity and all other entities\n         that control, are controlled by, or are under common control with that entity.\n         For the purposes of this definition, \"control\" means (i) the power, direct or\n         indirect, to cause the direction or management of such entity, whether by\n         contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the\n         outstanding shares, or (iii) beneficial ownership of such entity.\n         \n         \"You\" (or \"Your\") shall mean an individual or Legal Entity exercising\n         permissions granted by this License.\n         \n         \"Source\" form shall mean the preferred form for making modifications, including\n         but not limited to software source code, documentation source, and configuration\n         files.\n         \n         \"Object\" form shall mean any form resulting from mechanical transformation or\n         translation of a Source form, including but not limited to compiled object code,\n         generated documentation, and conversions to other media types.\n         \n         \"Work\" shall mean the work of authorship, whether in Source or Object form, made\n         available under the License, as indicated by a copyright notice that is included\n         in or attached to the work (an example is provided in the Appendix below).\n         \n         \"Derivative Works\" shall mean any work, whether in Source or Object form, that\n         is based on (or derived from) the Work and for which the editorial revisions,\n         annotations, elaborations, or other modifications represent, as a whole, an\n         original work of authorship. For the purposes of this License, Derivative Works\n         shall not include works that remain separable from, or merely link (or bind by\n         name) to the interfaces of, the Work and Derivative Works thereof.\n         \n         \"Contribution\" shall mean any work of authorship, including the original version\n         of the Work and any modifications or additions to that Work or Derivative Works\n         thereof, that is intentionally submitted to Licensor for inclusion in the Work\n         by the copyright owner or by an individual or Legal Entity authorized to submit\n         on behalf of the copyright owner. For the purposes of this definition,\n         \"submitted\" means any form of electronic, verbal, or written communication sent\n         to the Licensor or its representatives, including but not limited to\n         communication on electronic mailing lists, source code control systems, and\n         issue tracking systems that are managed by, or on behalf of, the Licensor for\n         the purpose of discussing and improving the Work, but excluding communication\n         that is conspicuously marked or otherwise designated in writing by the copyright\n         owner as \"Not a Contribution.\"\n         \n         \"Contributor\" shall mean Licensor and any individual or Legal Entity on behalf\n         of whom a Contribution has been received by Licensor and subsequently\n         incorporated within the Work.\n         \n         2. Grant of Copyright License.\n         \n         Subject to the terms and conditions of this License, each Contributor hereby\n         grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\n         irrevocable copyright license to reproduce, prepare Derivative Works of,\n         publicly display, publicly perform, sublicense, and distribute the Work and such\n         Derivative Works in Source or Object form.\n         \n         3. Grant of Patent License.\n         \n         Subject to the terms and conditions of this License, each Contributor hereby\n         grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\n         irrevocable (except as stated in this section) patent license to make, have\n         made, use, offer to sell, sell, import, and otherwise transfer the Work, where\n         such license applies only to those patent claims licensable by such Contributor\n         that are necessarily infringed by their Contribution(s) alone or by combination\n         of their Contribution(s) with the Work to which such Contribution(s) was\n         submitted. If You institute patent litigation against any entity (including a\n         cross-claim or counterclaim in a lawsuit) alleging that the Work or a\n         Contribution incorporated within the Work constitutes direct or contributory\n         patent infringement, then any patent licenses granted to You under this License\n         for that Work shall terminate as of the date such litigation is filed.\n         \n         4. Redistribution.\n         \n         You may reproduce and distribute copies of the Work or Derivative Works thereof\n         in any medium, with or without modifications, and in Source or Object form,\n         provided that You meet the following conditions:\n         \n         You must give any other recipients of the Work or Derivative Works a copy of\n         this License; and\n         You must cause any modified files to carry prominent notices stating that You\n         changed the files; and\n         You must retain, in the Source form of any Derivative Works that You distribute,\n         all copyright, patent, trademark, and attribution notices from the Source form\n         of the Work, excluding those notices that do not pertain to any part of the\n         Derivative Works; and\n         If the Work includes a \"NOTICE\" text file as part of its distribution, then any\n         Derivative Works that You distribute must include a readable copy of the\n         attribution notices contained within such NOTICE file, excluding those notices\n         that do not pertain to any part of the Derivative Works, in at least one of the\n         following places: within a NOTICE text file distributed as part of the\n         Derivative Works; within the Source form or documentation, if provided along\n         with the Derivative Works; or, within a display generated by the Derivative\n         Works, if and wherever such third-party notices normally appear. The contents of\n         the NOTICE file are for informational purposes only and do not modify the\n         License. You may add Your own attribution notices within Derivative Works that\n         You distribute, alongside or as an addendum to the NOTICE text from the Work,\n         provided that such additional attribution notices cannot be construed as\n         modifying the License.\n         You may add Your own copyright statement to Your modifications and may provide\n         additional or different license terms and conditions for use, reproduction, or\n         distribution of Your modifications, or for any such Derivative Works as a whole,\n         provided Your use, reproduction, and distribution of the Work otherwise complies\n         with the conditions stated in this License.\n         \n         5. Submission of Contributions.\n         \n         Unless You explicitly state otherwise, any Contribution intentionally submitted\n         for inclusion in the Work by You to the Licensor shall be under the terms and\n         conditions of this License, without any additional terms or conditions.\n         Notwithstanding the above, nothing herein shall supersede or modify the terms of\n         any separate license agreement you may have executed with Licensor regarding\n         such Contributions.\n         \n         6. Trademarks.\n         \n         This License does not grant permission to use the trade names, trademarks,\n         service marks, or product names of the Licensor, except as required for\n         reasonable and customary use in describing the origin of the Work and\n         reproducing the content of the NOTICE file.\n         \n         7. Disclaimer of Warranty.\n         \n         Unless required by applicable law or agreed to in writing, Licensor provides the\n         Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS,\n         WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,\n         including, without limitation, any warranties or conditions of TITLE,\n         NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are\n         solely responsible for determining the appropriateness of using or\n         redistributing the Work and assume any risks associated with Your exercise of\n         permissions under this License.\n         \n         8. Limitation of Liability.\n         \n         In no event and under no legal theory, whether in tort (including negligence),\n         contract, or otherwise, unless required by applicable law (such as deliberate\n         and grossly negligent acts) or agreed to in writing, shall any Contributor be\n         liable to You for damages, including any direct, indirect, special, incidental,\n         or consequential damages of any character arising as a result of this License or\n         out of the use or inability to use the Work (including but not limited to\n         damages for loss of goodwill, work stoppage, computer failure or malfunction, or\n         any and all other commercial damages or losses), even if such Contributor has\n         been advised of the possibility of such damages.\n         \n         9. Accepting Warranty or Additional Liability.\n         \n         While redistributing the Work or Derivative Works thereof, You may choose to\n         offer, and charge a fee for, acceptance of support, warranty, indemnity, or\n         other liability obligations and/or rights consistent with this License. However,\n         in accepting such obligations, You may act only on Your own behalf and on Your\n         sole responsibility, not on behalf of any other Contributor, and only if You\n         agree to indemnify, defend, and hold each Contributor harmless for any liability\n         incurred by, or claims asserted against, such Contributor by reason of your\n         accepting any such warranty or additional liability.\n         \n         END OF TERMS AND CONDITIONS\n         \n         APPENDIX: How to apply the Apache License to your work\n         \n         To apply the Apache License to your work, attach the following boilerplate\n         notice, with the fields enclosed by brackets \"[]\" replaced with your own\n         identifying information. (Don't include the brackets!) The text should be\n         enclosed in the appropriate comment syntax for the file format. We also\n         recommend that a file or class name and description of purpose be included on\n         the same \"printed page\" as the copyright notice for easier identification within\n         third-party archives.\n         \n            Copyright [yyyy] [name of copyright owner]\n         \n            Licensed under the Apache License, Version 2.0 (the \"License\");\n            you may not use this file except in compliance with the License.\n            You may obtain a copy of the License at\n         \n              http://www.apache.org/licenses/LICENSE-2.0\n         \n            Unless required by applicable law or agreed to in writing, software\n            distributed under the License is distributed on an \"AS IS\" BASIS,\n            WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n            See the License for the specific language governing permissions and\n            limitations under the License.","normalized_licenses":["Other"],"repository_url":"https://github.com/pandas-dev/pandas","keywords_array":[],"namespace":null,"versions_count":111,"first_release_published_at":"2009-12-25T23:58:31.000Z","latest_release_published_at":"2025-06-05T03:25:48.000Z","latest_release_number":"2.3.0","last_synced_at":"2025-06-05T12:32:15.163Z","created_at":"2022-04-10T11:59:33.201Z","updated_at":"2025-06-05T12:32:15.901Z","registry_url":"https://pypi.org/project/pandas/","install_command":"pip install pandas --index-url https://pypi.org/simple","documentation_url":"https://pandas.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Environment :: Console","Intended Audience :: Science/Research","License :: OSI Approved :: BSD License","Operating System :: OS Independent","Programming Language :: Cython","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.9","Topic :: Scientific/Engineering"],"normalized_name":"pandas"},"repo_metadata":{"id":1029924,"uuid":"858127","full_name":"pandas-dev/pandas","owner":"pandas-dev","description":"Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more","archived":false,"fork":false,"pushed_at":"2024-10-28T21:05:18.000Z","size":361208,"stargazers_count":43640,"open_issues_count":3671,"forks_count":17915,"subscribers_count":1109,"default_branch":"main","last_synced_at":"2024-10-29T15:52:23.059Z","etag":null,"topics":["alignment","data-analysis","data-science","flexible","pandas","python"],"latest_commit_sha":null,"homepage":"https://pandas.pydata.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pandas-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null},"funding":{"custom":"https://pandas.pydata.org/donate.html","github":["numfocus"],"tidelift":"pypi/pandas"}},"created_at":"2010-08-24T01:37:33.000Z","updated_at":"2024-10-29T15:19:56.000Z","dependencies_parsed_at":"2023-10-02T11:48:36.565Z","dependency_job_id":"4a8d4169-2afd-47ec-9c8f-e8a7fb8ac1d9","html_url":"https://github.com/pandas-dev/pandas","commit_stats":{"total_commits":31576,"total_committers":3550,"mean_commits":8.894647887323943,"dds":0.8478274638966303,"last_synced_commit":"888b6bc1bb3fdf203dda64e50336db4eb9b1e778"},"previous_names":["pydata/pandas"],"tags_count":176,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pandas-dev","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222090770,"owners_count":16929471,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"pandas-dev","name":"pandas","uuid":"21206976","kind":"organization","description":"Powerful data manipulation tools for Python","email":"pandas-dev@python.org","website":"http://pandas.pydata.org","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/21206976?v=4","repositories_count":13,"last_synced_at":"2024-04-14T17:23:45.243Z","metadata":{"has_sponsors_listing":false,"funding":{"custom":"https://pandas.pydata.org/donate.html","github":["numfocus"],"tidelift":"pypi/pandas"}},"html_url":"https://github.com/pandas-dev","funding_links":["https://pandas.pydata.org/donate.html","https://github.com/sponsors/numfocus","https://tidelift.com/funding/github/pypi/pandas"],"total_stars":42165,"followers":4179,"following":0,"created_at":"2022-11-02T21:56:38.694Z","updated_at":"2024-04-14T17:23:47.820Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pandas-dev","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pandas-dev/repositories"},"tags":[{"name":"v2.2.2","sha":"d9cdd2ee5a58015ef6f4d15c7226110c9aab8140","kind":"tag","published_at":"2024-04-10T17:43:07.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.2.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.2.2/manifests"},{"name":"v2.2.1","sha":"bdc79c146c2e32f2cab629be240f01658cfb6cc2","kind":"tag","published_at":"2024-02-23T14:49:46.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.2.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.2.1/manifests"},{"name":"v2.2.0","sha":"f538741432edf55c6b9fb5d0d496d2dd1d7c2457","kind":"tag","published_at":"2024-01-20T00:39:39.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.2.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.2.0/manifests"},{"name":"v3.0.0.dev0","sha":"dc37a6d035474c25932d805cfe50a47b04916a83","kind":"tag","published_at":"2024-01-11T01:34:52.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v3.0.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v3.0.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v3.0.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v3.0.0.dev0/manifests"},{"name":"v2.2.0rc0","sha":"d4c8d82b52045f49a0bb1d762968918a06886ae9","kind":"tag","published_at":"2023-12-22T19:19:29.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.2.0rc0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.2.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.2.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.2.0rc0/manifests"},{"name":"v2.3.0.dev0","sha":"dc37a6d035474c25932d805cfe50a47b04916a83","kind":"tag","published_at":"2023-12-22T19:16:26.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.3.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.3.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.3.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.3.0.dev0/manifests"},{"name":"v2.1.4","sha":"a671b5a8bf5dd13fb19f0e88edc679bc9e15c673","kind":"tag","published_at":"2023-12-08T14:18:01.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.1.4","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.1.4/manifests"},{"name":"v2.1.3","sha":"2a953cf80b77e4348bf50ed724f8abc0d814d9dd","kind":"tag","published_at":"2023-11-10T17:14:22.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.1.3","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.1.3/manifests"},{"name":"v2.1.2","sha":"a60ad39b4a9febdea9a59d602dad44b1538b0ea5","kind":"tag","published_at":"2023-10-26T16:09:02.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.1.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.1.2/manifests"},{"name":"v2.2.0.dev0","sha":"49ca01ba9023b677f2b2d1c42e99f45595258b74","kind":"tag","published_at":"2023-10-07T01:37:03.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.2.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.2.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.2.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.2.0.dev0/manifests"},{"name":"v2.1.1","sha":"e86ed377639948c64c429059127bcf5b359ab6be","kind":"tag","published_at":"2023-09-20T19:25:04.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.1.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.1.1/manifests"},{"name":"v2.2.0dev0","sha":"49ca01ba9023b677f2b2d1c42e99f45595258b74","kind":"tag","published_at":"2023-08-30T11:53:04.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.2.0dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.2.0dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.2.0dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.2.0dev0/manifests"},{"name":"v2.1.0","sha":"ba1cccd19da778f0c3a7d6a885685da16a072870","kind":"tag","published_at":"2023-08-30T11:28:32.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.1.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.1.0/manifests"},{"name":"v2.1.0rc0","sha":"1b2d39cbfc3db9520e0f5455a4eb3da0f569fa0f","kind":"tag","published_at":"2023-08-11T16:25:15.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.1.0rc0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.1.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.1.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.1.0rc0/manifests"},{"name":"v2.0.3","sha":"0f437949513225922d851e9581723d82120684a6","kind":"tag","published_at":"2023-06-28T21:47:24.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.0.3","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.0.3/manifests"},{"name":"v2.0.2","sha":"965ceca9fd796940050d6fc817707bba1c4f9bff","kind":"tag","published_at":"2023-05-28T21:03:28.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.0.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.0.2/manifests"},{"name":"v2.0.1","sha":"37ea63d540fd27274cad6585082c91b1283f963d","kind":"tag","published_at":"2023-04-24T00:17:23.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.0.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.0.1/manifests"},{"name":"v2.0.0","sha":"478d340667831908b5b4bf09a2787a11a14560c9","kind":"tag","published_at":"2023-04-03T12:49:37.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.0.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.0.0/manifests"},{"name":"v2.0.0rc1","sha":"c2a7f1ae753737e589617ebaaff673070036d653","kind":"tag","published_at":"2023-03-16T14:59:32.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.0.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.0.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.0.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.0.0rc1/manifests"},{"name":"v2.1.0.dev0","sha":"09c6351374ca45ab621f448d0d7d160f0becbd76","kind":"tag","published_at":"2023-02-20T20:27:18.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.1.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.1.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.1.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.1.0.dev0/manifests"},{"name":"v2.0.0rc0","sha":"1a2e300170efc08cb509a0b4ff6248f8d55ae777","kind":"tag","published_at":"2023-02-20T20:17:32.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.0.0rc0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.0.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.0.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.0.0rc0/manifests"},{"name":"v1.5.3","sha":"2e218d10984e9919f0296931d92ea851c6a6faf5","kind":"tag","published_at":"2023-01-19T03:27:40.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.5.3","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.5.3/manifests"},{"name":"v1.5.2","sha":"8dab54d6573f7186ff0c3b6364d5e4dd635ff3e7","kind":"tag","published_at":"2022-11-21T05:36:14.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.5.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.5.2/manifests"},{"name":"v2.0.0.dev0","sha":"573e7eaffd801ee5bd1f7685697b51eef5b8ed85","kind":"tag","published_at":"2022-10-19T14:11:55.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v2.0.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v2.0.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.0.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v2.0.0.dev0/manifests"},{"name":"v1.5.1","sha":"91111fd99898d9dcaa6bf6bedb662db4108da6e6","kind":"tag","published_at":"2022-10-18T09:44:58.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.5.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.5.1/manifests"},{"name":"v1.5.0","sha":"87cfe4e38bafe7300a6003a1d18bd80f3f77c763","kind":"tag","published_at":"2022-09-19T10:37:26.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.5.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.5.0/manifests"},{"name":"v1.4.4","sha":"ca60aab7340d9989d9428e11a51467658190bb6b","kind":"tag","published_at":"2022-08-31T09:07:09.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.4.4","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.4.4/manifests"},{"name":"v1.6.0.dev0","sha":"573e7eaffd801ee5bd1f7685697b51eef5b8ed85","kind":"tag","published_at":"2022-08-23T17:26:30.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.6.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.6.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.6.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.6.0.dev0/manifests"},{"name":"v1.5.0rc0","sha":"224458ee25d92ccdf289d1ae2741d178df4f323e","kind":"tag","published_at":"2022-08-23T17:18:26.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.5.0rc0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.5.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.5.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.5.0rc0/manifests"},{"name":"v1.4.3","sha":"e8093ba372f9adfe79439d90fe74b0b5b6dea9d6","kind":"tag","published_at":"2022-06-23T10:35:25.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.4.3","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.4.3/manifests"},{"name":"v1.4.2","sha":"4bfe3d07b4858144c219b9346329027024102ab6","kind":"tag","published_at":"2022-04-02T07:46:16.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.4.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.4.2/manifests"},{"name":"v1.4.1","sha":"06d230151e6f18fdb8139d09abf539867a8cd481","kind":"tag","published_at":"2022-02-12T09:04:11.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.4.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.4.1/manifests"},{"name":"v1.4.0","sha":"bb1f651536508cdfef8550f93ace7849b00046ee","kind":"tag","published_at":"2022-01-22T10:35:31.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.4.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.4.0/manifests"},{"name":"v1.5.0.dev0","sha":"7a4a85a0f76c81f8d03d5603baf626a9a068a655","kind":"tag","published_at":"2022-01-05T14:06:05.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.5.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.5.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.5.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.5.0.dev0/manifests"},{"name":"v1.4.0rc0","sha":"d023ba755322e09b95fd954bbdc43f5be224688e","kind":"tag","published_at":"2022-01-05T13:00:16.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.4.0rc0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.4.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.4.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.4.0rc0/manifests"},{"name":"v1.3.5","sha":"66e3805b8cabe977f40c05259cc3fcf7ead5687d","kind":"tag","published_at":"2021-12-12T10:20:48.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.3.5","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.5/manifests"},{"name":"v1.3.4","sha":"945c9ed766a61c7d2c0a7cbb251b6edebf9cb7d5","kind":"tag","published_at":"2021-10-17T12:27:58.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.3.4","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.4/manifests"},{"name":"v1.3.3","sha":"73c68257545b5f8530b7044f56647bd2db92e2ba","kind":"tag","published_at":"2021-09-12T10:02:49.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.3.3","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.3/manifests"},{"name":"v1.3.2","sha":"5f648bf1706dd75a9ca0d29f26eadfbb595fe52b","kind":"tag","published_at":"2021-08-15T12:45:34.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.3.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.2/manifests"},{"name":"v1.3.1","sha":"c7f7443c1bad8262358114d5e88cd9c8a308e8aa","kind":"tag","published_at":"2021-07-25T09:04:51.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.3.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"f00ed8f47020034e752baf0250483053340971b0","kind":"tag","published_at":"2021-07-02T08:12:55.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.3.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.0/manifests"},{"name":"v1.2.5","sha":"7c48ff4409c622c582c56a5702373f726de08e96","kind":"tag","published_at":"2021-06-22T09:53:30.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.2.5","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.5/manifests"},{"name":"v1.3.0rc1","sha":"2dd9e9ba9009a40191c0c0b96262fa3939d609f0","kind":"tag","published_at":"2021-06-13T17:19:28.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.3.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.3.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.0rc1/manifests"},{"name":"v1.4.0.dev0","sha":"cff206be208c61146c0aead51ffacb5a15b4e31d","kind":"tag","published_at":"2021-06-12T12:19:32.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.4.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.4.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.4.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.4.0.dev0/manifests"},{"name":"v1.3.0rc0","sha":"3765b2099e6e2cb4d180edbb354045ae09a40269","kind":"tag","published_at":"2021-06-12T11:45:40.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.3.0rc0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.3.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.0rc0/manifests"},{"name":"v1.2.4","sha":"2cb96529396d93b46abab7bbc73a208e708c642e","kind":"tag","published_at":"2021-04-12T15:59:13.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.2.4","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.4/manifests"},{"name":"v1.2.3","sha":"f2c8480af2f25efdbd803218b9d87980f416563e","kind":"tag","published_at":"2021-03-02T09:43:36.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.2.3","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.3/manifests"},{"name":"v1.2.2","sha":"7d32926db8f7541c356066dcadabf854487738de","kind":"tag","published_at":"2021-02-09T10:55:19.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.2.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.2/manifests"},{"name":"v1.2.1","sha":"9d598a5e1eee26df95b3910e3f2934890d062caa","kind":"tag","published_at":"2021-01-20T11:21:02.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.2.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"3e89b4c4b1580aa890023fc550774e63d499da25","kind":"tag","published_at":"2020-12-26T13:47:00.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.2.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.0/manifests"},{"name":"v1.3.0.dev0","sha":"0f587028e42d5444e2f0edbc0b4c889af16eae26","kind":"tag","published_at":"2020-12-08T13:29:57.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.3.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.3.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.3.0.dev0/manifests"},{"name":"v1.2.0rc0","sha":"7688d3cfebb7227c978cb386145c0d4924209efc","kind":"tag","published_at":"2020-12-08T12:31:44.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.2.0rc0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.2.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.0rc0/manifests"},{"name":"v1.1.5","sha":"b5958ee1999e9aead1938c0bba2b674378807b3d","kind":"tag","published_at":"2020-12-07T11:42:10.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.1.5","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.5/manifests"},{"name":"v1.1.4","sha":"67a3d4241ab84419856b84fc3ebc9abcbe66c6b3","kind":"tag","published_at":"2020-10-30T12:59:10.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.1.4","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.4/manifests"},{"name":"v1.1.3","sha":"db08276bc116c438d3fdee492026f8223584c477","kind":"tag","published_at":"2020-10-05T15:27:32.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.1.3","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.3/manifests"},{"name":"v1.1.2","sha":"2a7d3326dee660824a8433ffd01065f8ac37f7d6","kind":"tag","published_at":"2020-09-08T16:28:24.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.1.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"f2ca0a2665b2d169c97de87b8e778dbed86aea07","kind":"tag","published_at":"2020-08-20T16:54:47.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.1.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.1/manifests"},{"name":"v1.2.0.dev0","sha":"d1b1faa3f68dad6163000784c34a66b8f6c227e1","kind":"tag","published_at":"2020-07-28T19:29:02.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.2.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.2.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.2.0.dev0/manifests"},{"name":"v1.1.0","sha":"d9fff2792bf16178d4e450fe7384244e50635733","kind":"tag","published_at":"2020-07-28T13:14:59.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.1.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.0/manifests"},{"name":"v1.1.0rc0","sha":"bfac13628394ac7317bb94833319bd6bf87603af","kind":"tag","published_at":"2020-07-17T19:03:50.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.1.0rc0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.1.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.0rc0/manifests"},{"name":"v1.0.5","sha":"b687cd4d9e520666a956a60849568a98dd00c672","kind":"tag","published_at":"2020-06-17T11:50:04.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.0.5","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.0.5/manifests"},{"name":"v1.0.4","sha":"1ce1c3c1ef9894bf1ba79805f37514291f52a9da","kind":"tag","published_at":"2020-05-28T13:16:39.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.0.4","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.0.4/manifests"},{"name":"v1.0.3","sha":"3adf3340453d6704d4a2cb47058214cc697a7d29","kind":"tag","published_at":"2020-03-18T13:18:49.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.0.3","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.0.3/manifests"},{"name":"v1.0.2","sha":"7485dbe6fcdab3fe2e5a23534ba00767d50374d8","kind":"tag","published_at":"2020-03-12T14:41:43.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.0.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.0.2/manifests"},{"name":"v1.0.1","sha":"29d6b0232aab9576afa896ff5bab0b994760495a","kind":"tag","published_at":"2020-02-05T16:15:29.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.0.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.0.1/manifests"},{"name":"v1.1.0.dev0","sha":"b7fcb545a1a298817cd7d9f8940f19992d1202d2","kind":"tag","published_at":"2020-01-30T12:51:09.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.1.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.1.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.1.0.dev0/manifests"},{"name":"v1.0.0","sha":"fd9ceb9dce3d62d8a9caa6ba7c127b512939452e","kind":"tag","published_at":"2020-01-29T21:46:55.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.0.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.0.0/manifests"},{"name":"v1.0.0rc0","sha":"d3f08566a80239a18a813ebda9a2ebb0368b1dc5","kind":"tag","published_at":"2020-01-09T21:24:50.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v1.0.0rc0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v1.0.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.0.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v1.0.0rc0/manifests"},{"name":"v0.25.3","sha":"62a87bf4a2af02a8d3bc271ad26e5994292b8e6a","kind":"tag","published_at":"2019-10-31T20:16:54.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.25.3","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.25.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.25.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.25.3/manifests"},{"name":"v0.25.2","sha":"0efc71b53f019c6c5a8da7a38e08646ca75c17d9","kind":"tag","published_at":"2019-10-18T16:09:30.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.25.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.25.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.25.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.25.2/manifests"},{"name":"v0.26.0.dev0","sha":"d48306e77c0a708e0ee33a2aa1da7e267df52ef6","kind":"tag","published_at":"2019-09-15T12:00:53.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.26.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.26.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.26.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.26.0.dev0/manifests"},{"name":"v0.25.1","sha":"171c71611886aab8549a8620c5b0071a129ad685","kind":"tag","published_at":"2019-08-22T14:36:05.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.25.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.25.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.25.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.25.1/manifests"},{"name":"v0.25.0","sha":"d1accd032b648c9affd6dce1f81feb9c99422483","kind":"tag","published_at":"2019-07-18T16:03:22.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.25.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.25.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.25.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.25.0/manifests"},{"name":"v0.25.0rc0","sha":"2efb60717bda9fc64344c5f6647d58564930808e","kind":"tag","published_at":"2019-07-04T04:03:46.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.25.0rc0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.25.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.25.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.25.0rc0/manifests"},{"name":"v0.24.2","sha":"cb00deb94500205fcb27a33cc1d0df79a9727f8b","kind":"tag","published_at":"2019-03-12T21:12:11.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.24.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.24.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.24.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.24.2/manifests"},{"name":"v0.24.1","sha":"1700680381bdbfbc1abe9774f96881801b24d6ca","kind":"tag","published_at":"2019-02-03T21:15:49.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.24.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.24.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.24.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.24.1/manifests"},{"name":"v0.25.0.dev0","sha":"0c4113fa0906273007cc12a4bcadff85d943dc84","kind":"tag","published_at":"2019-01-25T21:32:10.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.25.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.25.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.25.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.25.0.dev0/manifests"},{"name":"v0.24.0","sha":"83eb2428ceb6257042173582f3f436c2c887aa69","kind":"tag","published_at":"2019-01-25T15:32:26.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.24.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.24.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.24.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.24.0/manifests"},{"name":"v0.24.0rc1","sha":"fdc4db25a9988a7b595a3756760d05a6c177123d","kind":"tag","published_at":"2019-01-11T14:11:28.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.24.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.24.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.24.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.24.0rc1/manifests"},{"name":"v0.23.4","sha":"0409521665bd436a10aea7e06336066bf07ff057","kind":"tag","published_at":"2018-08-03T17:19:26.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.23.4","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.23.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.4/manifests"},{"name":"v0.23.3","sha":"edb71fda022c6a155717e7a25679040ee0476639","kind":"tag","published_at":"2018-07-07T15:09:56.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.23.3","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.23.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.3/manifests"},{"name":"v0.23.2","sha":"9b0f560a73d11b2fa72c48d7fd16126b5137f349","kind":"tag","published_at":"2018-07-05T22:04:24.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.23.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.23.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.2/manifests"},{"name":"v0.23.1","sha":"1a23779f09abc6ebf908d66ee88b973b767e2e3c","kind":"tag","published_at":"2018-06-12T17:42:08.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.23.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.23.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.1/manifests"},{"name":"v0.24.0.dev0","sha":"2eb5a67999552d60f7a2a9e1922549d5417d714f","kind":"tag","published_at":"2018-05-16T02:41:16.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.24.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.24.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.24.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.24.0.dev0/manifests"},{"name":"v0.23.0","sha":"3147a86e1b20571766b488a8444c74cef29729ad","kind":"tag","published_at":"2018-05-15T20:12:46.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.23.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.23.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.0/manifests"},{"name":"v0.23.0rc2","sha":"b02c69ac7309ccf63a17471b25475bf0c0ebe3c3","kind":"tag","published_at":"2018-05-02T14:47:19.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.23.0rc2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.23.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.0rc2/manifests"},{"name":"v0.23.0rc1","sha":"44ccca1f3c27795322b979cf6e5dbd49422b5173","kind":"commit","published_at":"2018-05-02T11:16:53.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.23.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.23.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.0rc1/manifests"},{"name":"v0.22.0","sha":"a00154dcfe5057cb3fd86653172e74b6893e337d","kind":"tag","published_at":"2017-12-30T19:56:59.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.22.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.22.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.22.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.22.0/manifests"},{"name":"v0.23.0.dev0","sha":"fae79204e2b60ac1ff2b2309352ffb5d9382a017","kind":"tag","published_at":"2017-12-29T12:29:49.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.23.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.23.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.23.0.dev0/manifests"},{"name":"v0.21.1","sha":"7bb204a05fee20c3c825e7da39ccaf39fbeb8ca5","kind":"tag","published_at":"2017-12-12T03:56:04.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.21.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.21.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.21.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.21.1/manifests"},{"name":"v0.22.0.dev0","sha":"fc1e50733ea4c372f4c9eb3a53bf35e102d5d215","kind":"tag","published_at":"2017-10-27T18:27:25.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.22.0.dev0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.22.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.22.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.22.0.dev0/manifests"},{"name":"v0.21.0","sha":"81372093f1fdc0c07e4b45ba0f47b0360fabd405","kind":"tag","published_at":"2017-10-27T15:25:37.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.21.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.21.0/manifests"},{"name":"v0.21.0rc1","sha":"c277cd76416d4e930b1f05da873b9eaf101139da","kind":"tag","published_at":"2017-10-13T01:39:33.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.21.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.21.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.21.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.21.0rc1/manifests"},{"name":"v0.20.3","sha":"3a7f956c30528736beaae5784f509a76d892e229","kind":"tag","published_at":"2017-07-07T16:55:34.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.20.3","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.20.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.20.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.20.3/manifests"},{"name":"v0.20.2","sha":"2814061730893bc8122caa4e01197c699da352e6","kind":"tag","published_at":"2017-06-04T20:54:15.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.20.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.20.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.20.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.20.2/manifests"},{"name":"v0.21.0.dev","sha":"e5134306bd47db9f6d0f125d2cafd0b8a789e065","kind":"tag","published_at":"2017-05-05T19:39:52.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.21.0.dev","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.21.0.dev","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.21.0.dev","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.21.0.dev/manifests"},{"name":"v0.20.1","sha":"e346c663cf76186c22f4d3b703461b1b60db280f","kind":"tag","published_at":"2017-05-05T17:00:01.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.20.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.20.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.20.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.20.1/manifests"},{"name":"v0.20.0","sha":"a31c96d34d00dc757908b564dc93991e867d83e2","kind":"tag","published_at":"2017-05-05T02:25:54.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.20.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.20.0/manifests"},{"name":"v0.20.0rc2","sha":"2002da33b0a755fcf7ef64b2c87ca4252f0e7df0","kind":"tag","published_at":"2017-05-04T14:55:20.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.20.0rc2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.20.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.20.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.20.0rc2/manifests"},{"name":"v0.20.0rc1","sha":"19fc8dac68e088126ffd132dc322dbf8a163ec69","kind":"tag","published_at":"2017-04-22T03:33:48.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.20.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.20.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.20.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.20.0rc1/manifests"},{"name":"v0.19.2","sha":"825876ca7ee8ac7bea463925399c083d5f190b3e","kind":"tag","published_at":"2016-12-24T15:53:34.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.19.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.19.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.19.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.19.2/manifests"},{"name":"v0.19.1","sha":"27b783986230a3d044d045604b72a51acd13b7be","kind":"tag","published_at":"2016-11-03T14:20:21.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.19.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.19.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.19.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.19.1/manifests"},{"name":"v0.19.0","sha":"b97dbd01e49f54ae6fa8df382d6f6e4c771d2bc0","kind":"tag","published_at":"2016-10-02T13:53:26.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.19.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.19.0/manifests"},{"name":"v0.19.0rc1","sha":"497a3bcbf6a1f97a9596278f78b9883b50a4c66f","kind":"tag","published_at":"2016-09-07T19:42:42.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.19.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.19.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.19.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.19.0rc1/manifests"},{"name":"v0.18.1","sha":"87b0f4dc1e91571cc4dd933b7cb181b99606ad20","kind":"tag","published_at":"2016-05-03T13:51:08.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.18.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.18.1/manifests"},{"name":"v0.18.0","sha":"e462ece64b7cb12fe7cad6e085f62f3bfe9785c6","kind":"tag","published_at":"2016-03-11T21:43:51.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.18.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.18.0/manifests"},{"name":"v0.18.0rc2","sha":"e5ed87b33ab6cd9dade10df945bc5d7452310b7d","kind":"tag","published_at":"2016-03-09T14:38:21.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.18.0rc2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.18.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.18.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.18.0rc2/manifests"},{"name":"v0.18.0rc1","sha":"9259a56c600f6ea247a9c58c00af017790fe5e21","kind":"tag","published_at":"2016-02-13T15:47:45.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.18.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.18.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.18.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.18.0rc1/manifests"},{"name":"v0.17.1","sha":"6c30cbecf8e5ae610f2a37ba821116bd9f77044d","kind":"tag","published_at":"2015-11-20T16:49:57.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.17.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.17.1/manifests"},{"name":"v0.17.0","sha":"fe48704835323c140846d1bde5e1387aa0cac3d4","kind":"tag","published_at":"2015-10-09T12:30:06.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.17.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.17.0/manifests"},{"name":"v0.17.0rc2","sha":"071cffd63e4b99362c68a5e2d472b629618c50a1","kind":"tag","published_at":"2015-10-03T20:23:55.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.17.0rc2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.17.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.17.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.17.0rc2/manifests"},{"name":"v0.17.0rc1","sha":"9687145e06aed545c14630460d24a9693c9a0b39","kind":"tag","published_at":"2015-09-11T16:20:39.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.17.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.17.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.17.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.17.0rc1/manifests"},{"name":"v0.16.3","sha":"6b1055c765c488e6fb411eed452abf75ff8df4bb","kind":"commit","published_at":"2015-06-17T23:45:08.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.16.3","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.16.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.16.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.16.3/manifests"},{"name":"v0.16.2","sha":"06832891870119984c6a5404bc7f7a471f43b99c","kind":"tag","published_at":"2015-06-13T10:45:57.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.16.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.16.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.16.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.16.2/manifests"},{"name":"v0.16.1","sha":"ca9eefc3c4733f368c054e33537ff18384114b43","kind":"tag","published_at":"2015-05-11T01:10:48.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.16.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.16.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.16.1/manifests"},{"name":"v0.16.0","sha":"c91bdbadfdbf9f60879ead8dd86bd1e72ca18ccf","kind":"tag","published_at":"2015-03-22T13:37:17.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.16.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.16.0/manifests"},{"name":"v0.16.0rc1","sha":"9e859f40c1651b38f9528aaccd211b1706cf317e","kind":"tag","published_at":"2015-03-13T14:01:02.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.16.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.16.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.16.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.16.0rc1/manifests"},{"name":"v0.15.2","sha":"18ea1d856d45c87fe18a41d1a267ede46e10880e","kind":"tag","published_at":"2014-12-11T13:59:56.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.15.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.15.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.15.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.15.2/manifests"},{"name":"v0.15.2pre","sha":"f1b270fcf5d505eebe4bf964f0541d6a43c3560e","kind":"commit","published_at":"2014-11-21T14:05:11.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.15.2pre","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.15.2pre","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.15.2pre","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.15.2pre/manifests"},{"name":"v0.15.1","sha":"d8ab3415373ea42713c096a97c3d9ed5c9cb82ee","kind":"tag","published_at":"2014-11-08T13:14:33.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.15.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.15.1/manifests"},{"name":"v0.15.0","sha":"017adeaa4b70d63fe6c788db457dc9d31562f4d6","kind":"tag","published_at":"2014-10-18T22:52:46.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.15.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.15.0/manifests"},{"name":"v0.15.0rc1","sha":"8dfbe09c1443334fc3036465712195a36c773f4b","kind":"tag","published_at":"2014-10-07T00:39:07.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.15.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.15.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.15.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.15.0rc1/manifests"},{"name":"v0.15pre","sha":"12248ffc942acf3a224922495102462c6999c804","kind":"commit","published_at":"2014-09-07T12:52:01.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.15pre","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.15pre","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.15pre","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.15pre/manifests"},{"name":"v0.14.1","sha":"d839555f5e080a981ce5faf89b4df7dfe0924541","kind":"tag","published_at":"2014-07-10T23:46:19.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.14.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.14.1/manifests"},{"name":"v0.14.0","sha":"da0f7ae362bb0ee747c3c5c141327d1d8ba161bc","kind":"tag","published_at":"2014-05-30T11:47:40.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.14.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.14.0/manifests"},{"name":"v0.14.0rc1","sha":"76f6cf0050025ec5a6187e17957ea9a158cc2d56","kind":"tag","published_at":"2014-05-16T22:28:09.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.14.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.14.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.14.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.14.0rc1/manifests"},{"name":"v0.13.1","sha":"d10a658673b7d2c2e7a346461c9a4bfc5233d7e1","kind":"tag","published_at":"2014-02-03T04:52:01.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.13.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.13.1/manifests"},{"name":"v0.13.0_ahl2","sha":"48c005ea761adcaf6b76a84aa94da0d35db8c6d6","kind":"tag","published_at":"2014-01-16T13:26:09.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.13.0_ahl2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.13.0_ahl2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.13.0_ahl2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.13.0_ahl2/manifests"},{"name":"v0.13.0_ahl1","sha":"db18d443dc0eac6454b864e179579619493899dc","kind":"tag","published_at":"2014-01-08T13:06:05.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.13.0_ahl1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.13.0_ahl1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.13.0_ahl1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.13.0_ahl1/manifests"},{"name":"v0.13.0","sha":"a5410ed841759badae2c3fe4cc71335c9dd6ad92","kind":"tag","published_at":"2013-12-30T17:02:51.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.13.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.13.0/manifests"},{"name":"v0.13.0rc1","sha":"16052e501adc3dedec3bf8cf65a7ea24300de1b1","kind":"tag","published_at":"2013-11-29T20:53:26.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.13.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.13.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.13.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.13.0rc1/manifests"},{"name":"v0.12.0","sha":"8c0a34f15f8a87def3f7ad6ebdac052de44669f2","kind":"tag","published_at":"2013-07-24T20:18:35.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.12.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.12.0/manifests"},{"name":"v0.12.0rc1","sha":"b96ab6bddd5f2e84bd88a0659c4d98154819cffc","kind":"tag","published_at":"2013-07-09T05:12:59.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.12.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.12.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.12.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.12.0rc1/manifests"},{"name":"v0.11.0","sha":"f9eea308611152f1f7bb89981380fa5d85685f48","kind":"tag","published_at":"2013-04-23T00:54:40.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.11.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.11.0/manifests"},{"name":"v0.11.0rc1","sha":"258c7e3c5ec5dca7bec32308925b94267fbcff61","kind":"tag","published_at":"2013-04-13T01:59:28.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.11.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.11.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.11.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.11.0rc1/manifests"},{"name":"v0.10.1","sha":"31ecaa9d06f71b5d652d15441cf6b2dcc6f7e640","kind":"tag","published_at":"2013-01-22T05:22:19.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.10.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.10.1/manifests"},{"name":"v0.10.0","sha":"1751bae723d336904bca81945097b3b700b11801","kind":"tag","published_at":"2012-12-17T16:49:37.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.10.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.10.0/manifests"},{"name":"v0.10.0b1","sha":"78ce0ce8baef9c66bbee77083c0d12a47d5e294f","kind":"tag","published_at":"2012-12-11T23:45:40.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.10.0b1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.10.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.10.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.10.0b1/manifests"},{"name":"v0.9.1","sha":"9867f8af6e20cd2248626548f9b3f9a66b57789c","kind":"tag","published_at":"2012-11-15T00:41:16.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.9.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.9.1/manifests"},{"name":"v0.9.1rc1","sha":"2d576ee9b9337210a8c85f11e48177db42ecd57f","kind":"tag","published_at":"2012-11-09T23:58:51.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.9.1rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.9.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.9.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.9.1rc1/manifests"},{"name":"v0.9.0","sha":"b5956fdc123b0208cf36fafc1b80a9671c66efbb","kind":"tag","published_at":"2012-10-08T00:17:09.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.9.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.9.0/manifests"},{"name":"v0.9.0rc2","sha":"6d9bd5a6374f1d6b4c18d3d53fc0413c82a16b49","kind":"tag","published_at":"2012-09-27T01:43:06.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.9.0rc2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.9.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.9.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.9.0rc2/manifests"},{"name":"v0.9.0rc1","sha":"e1b6e44bed02f47f59bf2d71c836f42f6e130dea","kind":"tag","published_at":"2012-09-21T03:16:30.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.9.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.9.0rc1/manifests"},{"name":"debian/0.8.1-1","sha":"23fa6f8b3d1f823dbafb64dc52e5a96fefe9236c","kind":"tag","published_at":"2012-07-23T00:34:56.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/debian/0.8.1-1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/debian/0.8.1-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.8.1-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.8.1-1/manifests"},{"name":"v0.8.1","sha":"4e95b311bbf320d7b88edd6f8ce17194e48b8145","kind":"tag","published_at":"2012-07-22T19:42:50.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.8.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.8.1/manifests"},{"name":"debian/0.8.0-2","sha":"1c24700c3ba74419988e74319fd46e1f937c1f4d","kind":"tag","published_at":"2012-07-13T12:59:27.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/debian/0.8.0-2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/debian/0.8.0-2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.8.0-2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.8.0-2/manifests"},{"name":"debian/0.8.0-1","sha":"f5a1bc9cda068f724d2de2ddc0da8ac2c518095b","kind":"tag","published_at":"2012-06-29T17:54:33.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/debian/0.8.0-1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/debian/0.8.0-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.8.0-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.8.0-1/manifests"},{"name":"v0.8.0","sha":"a901af2cdfe411d6aa9f9b1f6fa3223738f3e514","kind":"tag","published_at":"2012-06-29T16:20:39.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.8.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.8.0/manifests"},{"name":"debian/0.8.0_rc2+git26-g76c6351-1","sha":"c91f6d1f62d02a65af78651f61f8db9a62c58b1b","kind":"tag","published_at":"2012-06-27T18:02:27.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/debian/0.8.0_rc2+git26-g76c6351-1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/debian/0.8.0_rc2+git26-g76c6351-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.8.0_rc2+git26-g76c6351-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.8.0_rc2+git26-g76c6351-1/manifests"},{"name":"v0.8.0rc2","sha":"5d90f7d0e7e9bb53e55fdb7b70f972aa502004ed","kind":"tag","published_at":"2012-06-22T19:44:42.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.8.0rc2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.8.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.8.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.8.0rc2/manifests"},{"name":"v0.8.0rc1","sha":"5f5df2aa34f027d3fc83abb19cf7840ababd4557","kind":"tag","published_at":"2012-06-22T19:34:55.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.8.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.8.0rc1/manifests"},{"name":"debian/0.8.0_b2+git68-g7240b87-1","sha":"1c08383fc3cf24d503ae221c5d31b93899da6473","kind":"tag","published_at":"2012-06-21T03:04:29.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/debian/0.8.0_b2+git68-g7240b87-1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/debian/0.8.0_b2+git68-g7240b87-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.8.0_b2+git68-g7240b87-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.8.0_b2+git68-g7240b87-1/manifests"},{"name":"debian/0.8.0_b2-1","sha":"a1d768829015796d16486cbc1e99020348901e25","kind":"tag","published_at":"2012-06-12T17:31:31.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/debian/0.8.0_b2-1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/debian/0.8.0_b2-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.8.0_b2-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.8.0_b2-1/manifests"},{"name":"v0.8.0b2","sha":"fde270b20861fbf36d3063d504fb299d0b58695b","kind":"tag","published_at":"2012-06-12T16:41:46.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.8.0b2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.8.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.8.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.8.0b2/manifests"},{"name":"v0.8.0b1","sha":"5b98fdfeae2ef42d78242c4cca1e0959b9c710db","kind":"tag","published_at":"2012-05-29T01:06:01.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.8.0b1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.8.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.8.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.8.0b1/manifests"},{"name":"debian/0.7.3-1","sha":"dfd7447e47562a941bb355af51c475823520f9e3","kind":"tag","published_at":"2012-04-13T00:25:55.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/debian/0.7.3-1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/debian/0.7.3-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.7.3-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.7.3-1/manifests"},{"name":"v0.7.3","sha":"9d0949396a8533d9fb9b0a6d0fb90a9f0ac16b23","kind":"tag","published_at":"2012-04-12T17:52:15.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.7.3","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.7.3/manifests"},{"name":"v0.7.2","sha":"4117b4fde3ffbc74a48b01f3a28f1f76b2db05fd","kind":"tag","published_at":"2012-03-16T20:37:30.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.7.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.7.2/manifests"},{"name":"debian/0.7.1+git1-ga2e86c2-1","sha":"483ca398bd20ae42dd1a9d12f972634b384d560b","kind":"tag","published_at":"2012-03-02T16:03:15.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/debian/0.7.1+git1-ga2e86c2-1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/debian/0.7.1+git1-ga2e86c2-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.7.1+git1-ga2e86c2-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.7.1+git1-ga2e86c2-1/manifests"},{"name":"v0.7.1","sha":"776d80c2145ce4a4df1cf5c9ad21140b09df671d","kind":"tag","published_at":"2012-02-29T22:04:50.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.7.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.7.1/manifests"},{"name":"debian/0.7.0-1","sha":"abc59ab02622560f226dd32bd068857053bc96d0","kind":"tag","published_at":"2012-02-10T03:13:36.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/debian/0.7.0-1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/debian/0.7.0-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.7.0-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.7.0-1/manifests"},{"name":"v0.7.0","sha":"13f5db0ac0ba5a30d64866cdbd02b9985efa6303","kind":"tag","published_at":"2012-02-09T22:29:10.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.7.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.7.0/manifests"},{"name":"v0.7.0rc1","sha":"06f608182ecd516abcd140531c65e07b30293eb0","kind":"tag","published_at":"2012-01-20T04:34:18.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.7.0rc1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.7.0rc1/manifests"},{"name":"debian/0.6.1-1","sha":"2ca93a17ed4609960f0ee3b8704b8b2edca1db5b","kind":"tag","published_at":"2012-01-05T03:41:19.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/debian/0.6.1-1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/debian/0.6.1-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.6.1-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.6.1-1/manifests"},{"name":"v0.6.1","sha":"d5fbdcc26520d1c92b5dd73bb6e9a9902756ad16","kind":"tag","published_at":"2011-12-13T23:04:27.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.6.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"010a620da89e5babc137b924dd1f632b4f6e6fee","kind":"tag","published_at":"2011-11-26T03:21:44.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.6.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.6.0/manifests"},{"name":"debian/0.5.0+git7-gcf32be2-1","sha":"da3e95da95e1e07acc535b8e734b9b80a0972609","kind":"tag","published_at":"2011-11-02T01:20:54.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/debian/0.5.0+git7-gcf32be2-1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/debian/0.5.0+git7-gcf32be2-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.5.0+git7-gcf32be2-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.5.0+git7-gcf32be2-1/manifests"},{"name":"v0.5.0","sha":"8f79f7c6e01874bbf7f3b9bc38af01551c90121e","kind":"tag","published_at":"2011-10-25T02:32:58.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.5.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.5.0/manifests"},{"name":"debian/0.4.3-1","sha":"a0aa6a96d8a2456523d9f407d3f9f936f24dd7c8","kind":"tag","published_at":"2011-10-18T15:32:00.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/debian/0.4.3-1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/debian/0.4.3-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.4.3-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.4.3-1/manifests"},{"name":"v0.4.3","sha":"a8b14798fe18050e486845b26370d4899f46a8b3","kind":"tag","published_at":"2011-10-09T21:57:38.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.4.3","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.4.3/manifests"},{"name":"v0.4.2","sha":"35c6b68facf00788e9092d1fcedd53acbf99be89","kind":"tag","published_at":"2011-10-03T04:46:47.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.4.2","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.4.2/manifests"},{"name":"debian/0.4.1-1","sha":"ba1ff88c95b081741eb28c8630aaa6b0423900e0","kind":"tag","published_at":"2011-09-26T14:44:30.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/debian/0.4.1-1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/debian/0.4.1-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.4.1-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.4.1-1/manifests"},{"name":"v0.4.1","sha":"cdc607c8ebd05419c0c446298a89814eac817459","kind":"tag","published_at":"2011-09-26T01:21:50.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.4.1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.4.1/manifests"},{"name":"debian/0.4.0-1","sha":"645d61131ad5acf768fff906a25e9e34b53efb92","kind":"tag","published_at":"2011-09-14T21:41:17.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/debian/0.4.0-1","html_url":"https://github.com/pandas-dev/pandas/releases/tag/debian/0.4.0-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.4.0-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/debian%2F0.4.0-1/manifests"},{"name":"v0.4.0","sha":"9e406c50b77949433ed8f7fd094fd30b5421a35e","kind":"tag","published_at":"2011-09-12T20:32:15.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/v0.4.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/v0.4.0/manifests"},{"name":"0.3.0","sha":"4906ee79d730f77be02ec586ec7f66c95a0433da","kind":"commit","published_at":"2011-02-20T01:06:28.000Z","download_url":"https://codeload.github.com/pandas-dev/pandas/tar.gz/0.3.0","html_url":"https://github.com/pandas-dev/pandas/releases/tag/0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandas-dev%2Fpandas/tags/0.3.0/manifests"}]},"repo_metadata_updated_at":"2024-10-29T20:20:23.496Z","dependent_packages_count":24950,"downloads":334387280,"downloads_period":"last-month","dependent_repos_count":310870,"rankings":{"downloads":0.005685913790541941,"dependent_repos_count":0.0016507491649960472,"dependent_packages_count":0.0005502497216653492,"stargazers_count":0.06694704946928413,"forks_count":0.03448231589102854,"docker_downloads_count":0.028979818674375053,"average":0.02304934945198184},"purl":"pkg:pypi/pandas","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/pandas","docker_dependents_count":10931,"docker_downloads_count":2305483893,"usage_url":"https://repos.ecosyste.ms/usage/pypi/pandas","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/pandas/dependencies","status":null,"funding_links":["https://pandas.pydata.org/donate.html","https://github.com/sponsors/numfocus","https://tidelift.com/funding/github/pypi/pandas"],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pandas/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pandas/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pandas/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pandas/related_packages","maintainers":[{"uuid":"simonjayhawkins","login":"simonjayhawkins","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/simonjayhawkins/","role":null,"created_at":"2022-11-23T06:37:32.900Z","updated_at":"2022-11-23T06:37:32.900Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/simonjayhawkins/packages"},{"uuid":"jorisvandenbossche","login":"jorisvandenbossche","name":null,"email":null,"url":null,"packages_count":12,"html_url":"https://pypi.org/user/jorisvandenbossche/","role":null,"created_at":"2022-11-23T06:37:32.784Z","updated_at":"2022-11-23T06:37:32.784Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/jorisvandenbossche/packages"},{"uuid":"MarcoGorelli","login":"MarcoGorelli","name":null,"email":null,"url":null,"packages_count":24,"html_url":"https://pypi.org/user/MarcoGorelli/","role":null,"created_at":"2022-11-23T06:37:32.884Z","updated_at":"2022-11-23T06:37:32.884Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/MarcoGorelli/packages"},{"uuid":"tomaugspurger","login":"tomaugspurger","name":null,"email":null,"url":null,"packages_count":30,"html_url":"https://pypi.org/user/tomaugspurger/","role":null,"created_at":"2022-11-23T06:37:32.815Z","updated_at":"2022-11-23T06:37:32.815Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/tomaugspurger/packages"},{"uuid":"willayd","login":"willayd","name":null,"email":null,"url":null,"packages_count":5,"html_url":"https://pypi.org/user/willayd/","role":null,"created_at":"2022-11-23T06:37:32.924Z","updated_at":"2022-11-23T06:37:32.924Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/willayd/packages"},{"uuid":"datapythonista","login":"datapythonista","name":null,"email":null,"url":null,"packages_count":6,"html_url":"https://pypi.org/user/datapythonista/","role":null,"created_at":"2022-11-23T06:37:32.844Z","updated_at":"2022-11-23T06:37:32.844Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/datapythonista/packages"},{"uuid":"jbrockmendel","login":"jbrockmendel","name":null,"email":null,"url":null,"packages_count":4,"html_url":"https://pypi.org/user/jbrockmendel/","role":null,"created_at":"2022-11-23T06:37:32.868Z","updated_at":"2022-11-23T06:37:32.868Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/jbrockmendel/packages"},{"uuid":"jreback","login":"jreback","name":null,"email":null,"url":null,"packages_count":5,"html_url":"https://pypi.org/user/jreback/","role":null,"created_at":"2022-11-23T06:37:32.792Z","updated_at":"2022-11-23T06:37:32.792Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/jreback/packages"},{"uuid":"jreback1","login":"jreback1","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/jreback1/","role":null,"created_at":"2022-11-23T06:37:32.802Z","updated_at":"2022-11-23T06:37:32.802Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/jreback1/packages"},{"uuid":"wesm","login":"wesm","name":null,"email":null,"url":null,"packages_count":12,"html_url":"https://pypi.org/user/wesm/","role":null,"created_at":"2022-11-23T06:37:32.830Z","updated_at":"2022-11-23T06:37:32.830Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/wesm/packages"},{"uuid":"lithomas1","login":"lithomas1","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/lithomas1/","role":null,"created_at":"2022-11-23T06:37:32.875Z","updated_at":"2022-11-23T06:37:32.875Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/lithomas1/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690055,"maintainers_count":292646,"namespaces_count":0,"keywords_count":228482,"github":"pypi","metadata":{"funded_packages_count":48953},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-05T05:19:27.498Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},"unique_repositories_count":1858,"unique_repositories_count_past_30_days":83,"recent_issues":[{"uuid":"5725164001","node_id":"PR_kwDOQ-qtOc8AAAABG3qxvA","number":277,"state":"open","title":"chore(deps): bump the python-runtime group across 1 directory with 40 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-06T08:10:33.000Z","updated_at":"2026-10-06T08:10:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-runtime","update_count":40,"packages":[{"name":"typer","old_version":"0.25.1","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"textual","old_version":"7.5.0","new_version":"8.2.8","repository_url":"https://github.com/Textualize/textual"},{"name":"dynaconf","old_version":"3.2.13","new_version":"3.3.5","repository_url":"https://github.com/dynaconf/dynaconf"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"python-dotenv","old_version":"1.2.2","new_version":"1.2.4","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"numpy","old_version":"2.3.5","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"sqlalchemy","old_version":"2.0.45","new_version":"2.1.3","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"tenacity","old_version":"9.1.2","new_version":"9.1.4","repository_url":"https://github.com/jd/tenacity"},{"name":"networkx","old_version":"3.6.1","new_version":"3.7","repository_url":"https://github.com/networkx/networkx"},{"name":"pyrate-limiter","old_version":"3.9.0","new_version":"4.5.0","repository_url":"https://github.com/vutran1710/PyrateLimiter"},{"name":"deepdiff","old_version":"8.6.2","new_version":"9.1.0","repository_url":"https://github.com/qlustered/deepdiff"},{"name":"chromadb","old_version":"1.5.5","new_version":"1.5.9","repository_url":"https://github.com/chroma-core/chroma"},{"name":"fsspec","old_version":"2026.6.0","new_version":"2026.9.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"beautifulsoup4","old_version":"4.14.3","new_version":"4.15.0"},{"name":"pytest","old_version":"9.0.3","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-benchmark","old_version":"4.0.0","new_version":"5.3.0","repository_url":"https://github.com/ionelmc/pytest-benchmark"},{"name":"hypothesis","old_version":"6.152.4","new_version":"6.168.3","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"markdown-it-py","old_version":"4.0.0","new_version":"4.2.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"mypy","old_version":"1.20.2","new_version":"2.4.0","repository_url":"https://github.com/python/mypy"},{"name":"ruff","old_version":"0.15.4","new_version":"0.16.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"4.6.0","new_version":"4.6.2","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pandas-stubs","old_version":"2.3.3.251219","new_version":"2.3.3.260113","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"types-networkx","old_version":"3.6.1.20251220","new_version":"3.6.1.20260911","repository_url":"https://github.com/python/typeshed"},{"name":"types-pyyaml","old_version":"6.0.12.20250915","new_version":"6.0.12.20260906","repository_url":"https://github.com/python/typeshed"},{"name":"types-jsonschema","old_version":"4.26.0.20260408","new_version":"4.26.0.20260518","repository_url":"https://github.com/python/typeshed"},{"name":"mutmut","old_version":"2.5.1","new_version":"3.8.0","repository_url":"https://github.com/boxed/mutmut"},{"name":"errorworks","old_version":"0.1.3","new_version":"0.2.0","repository_url":"https://github.com/johnm-dta/errorworks"},{"name":"starlette","old_version":"1.3.1","new_version":"1.7.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"psycopg2-binary","old_version":"2.9.12","new_version":"2.9.13","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"litellm","old_version":"1.102.0","new_version":"1.103.2","repository_url":"https://github.com/BerriAI/litellm"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.31.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-identity","old_version":"1.25.1","new_version":"1.26.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-keyvault-secrets","old_version":"4.11.0","new_version":"4.11.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"boto3","old_version":"1.43.46","new_version":"1.43.108","repository_url":"https://github.com/boto/boto3"},{"name":"cryptography","old_version":"50.0.1","new_version":"50.0.2","repository_url":"https://github.com/pyca/cryptography"},{"name":"websockets","old_version":"14.2","new_version":"17.1","repository_url":"https://github.com/python-websockets/websockets"},{"name":"bcrypt","old_version":"4.3.0","new_version":"5.0.0","repository_url":"https://github.com/pyca/bcrypt"},{"name":"prometheus-client","old_version":"0.25.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-runtime group with 40 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [typer](https://github.com/fastapi/typer) | `0.25.1` | `0.27.2` |\n| [textual](https://github.com/Textualize/textual) | `7.5.0` | `8.2.8` |\n| [dynaconf](https://github.com/dynaconf/dynaconf) | `3.2.13` | `3.3.5` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.2` | `1.2.4` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.5` | `2.5.3` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.6` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.45` | `2.1.3` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [networkx](https://github.com/networkx/networkx) | `3.6.1` | `3.7` |\n| [pyrate-limiter](https://github.com/vutran1710/PyrateLimiter) | `3.9.0` | `4.5.0` |\n| [deepdiff](https://github.com/qlustered/deepdiff) | `8.6.2` | `9.1.0` |\n| [chromadb](https://github.com/chroma-core/chroma) | `1.5.5` | `1.5.9` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.6.0` | `2026.9.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.3` | `4.15.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `4.0.0` | `5.3.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.152.4` | `6.168.3` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `4.0.0` | `4.2.0` |\n| [mypy](https://github.com/python/mypy) | `1.20.2` | `2.4.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.4` | `0.16.10` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.6.0` | `4.6.2` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.3.251219` | `2.3.3.260113` |\n| [types-networkx](https://github.com/python/typeshed) | `3.6.1.20251220` | `3.6.1.20260911` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20250915` | `6.0.12.20260906` |\n| [types-jsonschema](https://github.com/python/typeshed) | `4.26.0.20260408` | `4.26.0.20260518` |\n| [mutmut](https://github.com/boxed/mutmut) | `2.5.1` | `3.8.0` |\n| [errorworks](https://github.com/johnm-dta/errorworks) | `0.1.3` | `0.2.0` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.7.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.12` | `2.9.13` |\n| [litellm](https://github.com/BerriAI/litellm) | `1.102.0` | `1.103.2` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.31.0` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.1` | `1.26.0` |\n| [azure-keyvault-secrets](https://github.com/Azure/azure-sdk-for-python) | `4.11.0` | `4.11.3` |\n| [boto3](https://github.com/boto/boto3) | `1.43.46` | `1.43.108` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.1` | `50.0.2` |\n| [websockets](https://github.com/python-websockets/websockets) | `14.2` | `17.1` |\n| [bcrypt](https://github.com/pyca/bcrypt) | `4.3.0` | `5.0.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.25.0` | `0.26.0` |\n\n\nUpdates `typer` from 0.25.1 to 0.27.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/releases\"\u003etyper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.27.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Create \u003ccode\u003eexceptions\u003c/code\u003e module and \u003ccode\u003eTyperException\u003c/code\u003e base class. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1942\"\u003e#1942\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix showing \u003ccode\u003efast\u003c/code\u003e button as external link in animated terminals in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1912\"\u003e#1912\u003c/a\u003e by \u003ca href=\"https://github.com/phalberg\"\u003e\u003ccode\u003e@​phalberg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Bump setup-uv action to 10.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1940\"\u003e#1940\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Migrate automatic labels to Latest Changes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1931\"\u003e#1931\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove legacy label check. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1930\"\u003e#1930\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔐 Use PR Submit for pull requests. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1928\"\u003e#1928\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Use GitHub CLI for Git authentication. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1927\"\u003e#1927\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Use PR Push commit identity. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1926\"\u003e#1926\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒 Replace pre-commit PAT with PR Push. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1923\"\u003e#1923\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove Zensical docs cache. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1922\"\u003e#1922\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove the old Latest Changes workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1921\"\u003e#1921\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group with 6 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1917\"\u003e#1917\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.21.3 to 11.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1910\"\u003e#1910\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group with 5 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1916\"\u003e#1916\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Make \u003ccode\u003eepilog\u003c/code\u003e formatting consistent with other parts of the help string. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1405\"\u003e#1405\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add Library Skills documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1906\"\u003e#1906\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Prevent scroll-to-top on restart/fast buttons in the documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1904\"\u003e#1904\u003c/a\u003e by \u003ca href=\"https://github.com/phalberg\"\u003e\u003ccode\u003e@​phalberg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Recommend uv projects by default in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1903\"\u003e#1903\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update help docs. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1902\"\u003e#1902\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade latest-changes to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1909\"\u003e#1909\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.27.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e💥 Update metavar printing. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1863\"\u003e#1863\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 5 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1896\"\u003e#1896\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Bump ty to 0.0.53. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1877\"\u003e#1877\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group across 1 directory with 4 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1897\"\u003e#1897\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/blob/master/docs/release-notes.md\"\u003etyper's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.27.2 (2026-08-28)\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Create \u003ccode\u003eexceptions\u003c/code\u003e module and \u003ccode\u003eTyperException\u003c/code\u003e base class. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1942\"\u003e#1942\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix showing \u003ccode\u003efast\u003c/code\u003e button as external link in animated terminals in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1912\"\u003e#1912\u003c/a\u003e by \u003ca href=\"https://github.com/phalberg\"\u003e\u003ccode\u003e@​phalberg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Bump setup-uv action to 10.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1940\"\u003e#1940\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Migrate automatic labels to Latest Changes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1931\"\u003e#1931\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove legacy label check. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1930\"\u003e#1930\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔐 Use PR Submit for pull requests. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1928\"\u003e#1928\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Use GitHub CLI for Git authentication. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1927\"\u003e#1927\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Use PR Push commit identity. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1926\"\u003e#1926\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒 Replace pre-commit PAT with PR Push. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1923\"\u003e#1923\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove Zensical docs cache. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1922\"\u003e#1922\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove the old Latest Changes workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1921\"\u003e#1921\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group with 6 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1917\"\u003e#1917\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.21.3 to 11.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1910\"\u003e#1910\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group with 5 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1916\"\u003e#1916\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.27.1 (2026-08-03)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Make \u003ccode\u003eepilog\u003c/code\u003e formatting consistent with other parts of the help string. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1405\"\u003e#1405\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add Library Skills documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1906\"\u003e#1906\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Prevent scroll-to-top on restart/fast buttons in the documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1904\"\u003e#1904\u003c/a\u003e by \u003ca href=\"https://github.com/phalberg\"\u003e\u003ccode\u003e@​phalberg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Recommend uv projects by default in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1903\"\u003e#1903\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update help docs. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1902\"\u003e#1902\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade latest-changes to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1909\"\u003e#1909\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.27.0 (2026-07-15)\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e💥 Update metavar printing. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1863\"\u003e#1863\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/99eb220df7c69a0f14a0b69214042677e0760b9d\"\u003e\u003ccode\u003e99eb220\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.27.2 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1943\"\u003e#1943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/a2c9f1e0afd8bba61b07ba8bc41c9a53b92aafc8\"\u003e\u003ccode\u003ea2c9f1e\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/41dea8f4a0f9285cb225c9f7451beb856a251a07\"\u003e\u003ccode\u003e41dea8f\u003c/code\u003e\u003c/a\u003e ♻️ Create \u003ccode\u003eexceptions\u003c/code\u003e module and \u003ccode\u003eTyperException\u003c/code\u003e base class (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1942\"\u003e#1942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/407d924044759cf9687662cd9638e940664a70f9\"\u003e\u003ccode\u003e407d924\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/41c8224bbdc37d982a636388220af7667f07cd9a\"\u003e\u003ccode\u003e41c8224\u003c/code\u003e\u003c/a\u003e ⬆️ Bump setup-uv action to 10.0.1 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1940\"\u003e#1940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/9a7b2e83f6b62c750d6026b0de9ebf2026a8b8fa\"\u003e\u003ccode\u003e9a7b2e8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/31f30d721335d3f4280855812e439c61b6560376\"\u003e\u003ccode\u003e31f30d7\u003c/code\u003e\u003c/a\u003e 👷 Migrate automatic labels to Latest Changes (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1931\"\u003e#1931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/dacef1b7f7e2fad9136f38da6c1ae8ed333699a8\"\u003e\u003ccode\u003edacef1b\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/42a96390527255c2b50187f5dc5c180c06c26676\"\u003e\u003ccode\u003e42a9639\u003c/code\u003e\u003c/a\u003e 👷 Remove legacy label check (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1930\"\u003e#1930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/361bdd822dd5eafc9c2e3e55ed3a94b746a39aa6\"\u003e\u003ccode\u003e361bdd8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/typer/compare/0.25.1...0.27.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `textual` from 7.5.0 to 8.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/releases\"\u003etextual's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe more super release\u003c/h2\u003e\n\u003cp\u003eFixes for extended key processing, and a crash bug for clicking the screen padding area.\u003c/p\u003e\n\u003ch2\u003e[8.2.8] - 2026-06-30\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed parsing Kitty extended keys with multiple codepoints \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6592\"\u003eTextualize/textual#6592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed crash when clicking in the Screen's padding \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6598\"\u003eTextualize/textual#6598\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esuper+backspace is now an alias for ctrl+u in Input and TextArea \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6594\"\u003eTextualize/textual#6594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ealt+backspace (option+backspace on Mac) has the same effect as ctrl+backspace in Input and TextArea \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6593\"\u003eTextualize/textual#6593\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe more Kitty Release\u003c/h2\u003e\n\u003cp\u003eThis release adds additional support for the Kitty key protocol. Which enables some additional keys on some terminals. Additionally, Textual will report modifier keys as separate key events.\u003c/p\u003e\n\u003cp\u003eAdditionally there are a few more shortcuts to the Text Area.\u003c/p\u003e\n\u003cp\u003eThis release sponsored by Mistral AI. See release notes for detail.\u003c/p\u003e\n\u003ch2\u003e[8.2.7] - 2026-05-19\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Kitty key protocol \u0026quot;Report all keys as escape codes\u0026quot; which enabled alt+backspace on Warp \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6544\"\u003eTextualize/textual#6544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for detecting separate modifier keys for terminals that support the Kitty key protocol \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6544\"\u003eTextualize/textual#6544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eTEXTUAL_DISABLE_KITTY_KEY\u003c/code\u003e env var to disable Kitty key protocol support (debug aid). \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6544\"\u003eTextualize/textual#6544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUndo/redo/copy/cut/paste in TextArea will now work with cmd+ on supported terminals \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6543\"\u003eTextualize/textual#6543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn TextArea, ctrl+u will now delete a newline if the cursor is at the start \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6543\"\u003eTextualize/textual#6543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ein TextArea alt+delete is now bound to delete word right \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6543\"\u003eTextualize/textual#6543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eText opacity applied to an ansi theme will now set the dim attribute if the opacity is \u0026lt; 50% \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6546\"\u003eTextualize/textual#6546\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe more selective release\u003c/h2\u003e\n\u003cp\u003eImproved text select logic. You can select text without first clicking on a content area.\u003c/p\u003e\n\u003cp\u003eMay break snapshots without affecting appearance.\u003c/p\u003e\n\u003ch2\u003e[8.2.6] - 2026-04-13\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed selection to the right of code fence blocks (may break some snapshots)\u003c/li\u003e\n\u003cli\u003eFixed Markdown code fences losing content when switching themes \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6537\"\u003eTextualize/textual#6537\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/blob/main/CHANGELOG.md\"\u003etextual's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[8.2.8] - 2026-06-30\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed parsing Kitty extended keys with multiple codepoints \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6592\"\u003eTextualize/textual#6592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed crash when clicking in the Screen's padding \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6598\"\u003eTextualize/textual#6598\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esuper+backspace is now an alias for ctrl+u in Input and TextArea \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6594\"\u003eTextualize/textual#6594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ealt+backspace (option+backspace on Mac) has the same effect as ctrl+backspace in Input and TextArea \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6593\"\u003eTextualize/textual#6593\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.7] - 2026-05-19\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Kitty key protocol \u0026quot;Report all keys as escape codes\u0026quot; which enabled alt+backspace on Warp \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6544\"\u003eTextualize/textual#6544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for detecting separate modifier keys for terminals that support the Kitty key protocol \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6544\"\u003eTextualize/textual#6544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eTEXTUAL_DISABLE_KITTY_KEY\u003c/code\u003e env var to disable Kitty key protocol support (debug aid). \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6544\"\u003eTextualize/textual#6544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUndo/redo/copy/cut/paste in TextArea will now work with cmd+ on supported terminals \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6543\"\u003eTextualize/textual#6543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn TextArea, ctrl+u will now delete a newline if the cursor is at the start \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6543\"\u003eTextualize/textual#6543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ein TextArea alt+delete is now bound to delete word right \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6543\"\u003eTextualize/textual#6543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eText opacity applied to an ansi theme will now set the dim attribute if the opacity is \u0026lt; 50% \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6546\"\u003eTextualize/textual#6546\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed text opacity with ANSI themes creating RGB colors.  \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6546\"\u003eTextualize/textual#6546\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.6] - 2026-05-13\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed selection to the right of code fence blocks (may break some snapshots)\u003c/li\u003e\n\u003cli\u003eFixed Markdown code fences losing content when switching themes \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6537\"\u003eTextualize/textual#6537\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded ability to select outside of text, so the user doesn't need to be quite so precise \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6523\"\u003eTextualize/textual#6523\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.5] - 2026-04-30\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTwo new themes: \u0026quot;ansi-dark\u0026quot; and \u0026quot;ansi-light\u0026quot; \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6513\"\u003eTextualize/textual#6513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded an \u003ccode\u003eansi\u003c/code\u003e value to themes \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6513\"\u003eTextualize/textual#6513\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/1d99508b928a771b51e1a527319c6b87dcff9e05\"\u003e\u003ccode\u003e1d99508\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6609\"\u003e#6609\u003c/a\u003e from Textualize/bump828\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/ab36ccc741a7f6d1d10b12e1eafd8fedaa515df1\"\u003e\u003ccode\u003eab36ccc\u003c/code\u003e\u003c/a\u003e Bump 8.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/da5b7aa98717289207270ed6c9fcd68c78e54c17\"\u003e\u003ccode\u003eda5b7aa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6598\"\u003e#6598\u003c/a\u003e from Textualize/screen-padding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/77e25d59d8c1e50d1228bbec54f1fdc8f2a3e10b\"\u003e\u003ccode\u003e77e25d5\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/4e592bfc7bf1d0412d0df6dabee40347b523e1b8\"\u003e\u003ccode\u003e4e592bf\u003c/code\u003e\u003c/a\u003e snapshots\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/e02c6cc01461d93141e9ef5dac5a6f029c6ef616\"\u003e\u003ccode\u003ee02c6cc\u003c/code\u003e\u003c/a\u003e fix screen padding crash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/8ce58dc0287e6247f25096c3a1a7349a411cc485\"\u003e\u003ccode\u003e8ce58dc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6592\"\u003e#6592\u003c/a\u003e from Textualize/kitty-codepoints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/fec10399fab3c75f14d36d0faa01589b8ae13408\"\u003e\u003ccode\u003efec1039\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into kitty-codepoints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/aea9d4b5529841757aead36670a8a7f75aa61ed9\"\u003e\u003ccode\u003eaea9d4b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6594\"\u003e#6594\u003c/a\u003e from Textualize/super-backspace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/64c1f8b401889628ec40b8ea1afd67a298773831\"\u003e\u003ccode\u003e64c1f8b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into super-backspace\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/textual/compare/v7.5.0...v8.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dynaconf` from 3.2.13 to 3.3.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dynaconf/dynaconf/releases\"\u003edynaconf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/releases/tag/3.3.5\"\u003e3.3.5\u003c/a\u003e - 2026-08-05\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSkip non-str keys when resolving key casing (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1446\"\u003e#1446\u003c/a\u003e). By \u003ca href=\"https://github.com/shuvamk\"\u003e\u003ccode\u003e@​shuvamk\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGet/get_fresh with dotted keys stop working after first call (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1423\"\u003e#1423\u003c/a\u003e). By \u003ca href=\"https://github.com/pctablet505\"\u003e\u003ccode\u003e@​pctablet505\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix get_history ignoring its history_limit argument (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1424\"\u003e#1424\u003c/a\u003e). By \u003ca href=\"https://github.com/chuenchen309\"\u003e\u003ccode\u003e@​chuenchen309\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression on override precedence with proper dynaconf-token cleanup (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1438\"\u003e#1438\u003c/a\u003e). By \u003ca href=\"https://github.com/pedro-psb\"\u003e\u003ccode\u003e@​pedro-psb\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003cstrong\u003edeepcopy\u003c/strong\u003e to DataDict to match DataList (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1440\"\u003e#1440\u003c/a\u003e). By \u003ca href=\"https://github.com/digitronik\"\u003e\u003ccode\u003e@​digitronik\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded py314 in toxList and up some test packages to full support this (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1443\"\u003e#1443\u003c/a\u003e). By \u003ca href=\"https://github.com/even-even\"\u003e\u003ccode\u003e@​even-even\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.3.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/releases/tag/3.3.4\"\u003e3.3.4\u003c/a\u003e - 2026-07-29\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed error when passing a list values for env on dynaconf init (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1278\"\u003e#1278\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1421\"\u003e#1421\u003c/a\u003e). By \u003ca href=\"https://github.com/apoorvdarshan\"\u003e\u003ccode\u003e@​apoorvdarshan\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eClean up nested dynaconf_merge tokens when parent key is new (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1435\"\u003e#1435\u003c/a\u003e). By \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep sibling keys that share a dotted path leaf name (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1434\"\u003e#1434\u003c/a\u003e). By \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert container subclasses (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1436\"\u003e#1436\u003c/a\u003e). By \u003ca href=\"https://github.com/deepakganesh78\"\u003e\u003ccode\u003e@​deepakganesh78\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDjango early validation integration code bug (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1432\"\u003e#1432\u003c/a\u003e). By \u003ca href=\"https://github.com/pedro-psb\"\u003e\u003ccode\u003e@​pedro-psb\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChore\u003c/h3\u003e\n\u003ch2\u003e3.3.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dynaconf/dynaconf/blob/master/CHANGELOG.md\"\u003edynaconf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/releases/tag/3.3.5\"\u003e3.3.5\u003c/a\u003e - 2026-08-05\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSkip non-str keys when resolving key casing (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1446\"\u003e#1446\u003c/a\u003e). By \u003ca href=\"https://github.com/shuvamk\"\u003e\u003ccode\u003e@​shuvamk\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGet/get_fresh with dotted keys stop working after first call (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1423\"\u003e#1423\u003c/a\u003e). By \u003ca href=\"https://github.com/pctablet505\"\u003e\u003ccode\u003e@​pctablet505\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix get_history ignoring its history_limit argument (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1424\"\u003e#1424\u003c/a\u003e). By \u003ca href=\"https://github.com/chuenchen309\"\u003e\u003ccode\u003e@​chuenchen309\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression on override precedence with proper dynaconf-token cleanup (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1438\"\u003e#1438\u003c/a\u003e). By \u003ca href=\"https://github.com/pedro-psb\"\u003e\u003ccode\u003e@​pedro-psb\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003cstrong\u003edeepcopy\u003c/strong\u003e to DataDict to match DataList (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1440\"\u003e#1440\u003c/a\u003e). By \u003ca href=\"https://github.com/digitronik\"\u003e\u003ccode\u003e@​digitronik\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded py314 in toxList and up some test packages to full support this (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1443\"\u003e#1443\u003c/a\u003e). By \u003ca href=\"https://github.com/even-even\"\u003e\u003ccode\u003e@​even-even\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/releases/tag/3.3.4\"\u003e3.3.4\u003c/a\u003e - 2026-07-29\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed error when passing a list values for env on dynaconf init (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1278\"\u003e#1278\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1421\"\u003e#1421\u003c/a\u003e). By \u003ca href=\"https://github.com/apoorvdarshan\"\u003e\u003ccode\u003e@​apoorvdarshan\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eClean up nested dynaconf_merge tokens when parent key is new (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1435\"\u003e#1435\u003c/a\u003e). By \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep sibling keys that share a dotted path leaf name (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1434\"\u003e#1434\u003c/a\u003e). By \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert container subclasses (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1436\"\u003e#1436\u003c/a\u003e). By \u003ca href=\"https://github.com/deepakganesh78\"\u003e\u003ccode\u003e@​deepakganesh78\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDjango early validation integration code bug (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1432\"\u003e#1432\u003c/a\u003e). By \u003ca href=\"https://github.com/pedro-psb\"\u003e\u003ccode\u003e@​pedro-psb\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChore\u003c/h3\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/releases/tag/3.3.3\"\u003e3.3.3\u003c/a\u003e - 2026-07-22\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/cad7e12f8310f390706a6d6d0eff4b95c533a885\"\u003e\u003ccode\u003ecad7e12\u003c/code\u003e\u003c/a\u003e Release version 3.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/282f0935fa925fef3d4e63aab88defe50b6c49d1\"\u003e\u003ccode\u003e282f093\u003c/code\u003e\u003c/a\u003e fix: skip non-str keys when resolving key casing (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/0e26bd6d69fe22ddc17f48fff5b2046d4403b3fa\"\u003e\u003ccode\u003e0e26bd6\u003c/code\u003e\u003c/a\u003e fix: get/get_fresh with dotted keys stop working after first call (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1423\"\u003e#1423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/833533d1a3b1557016a0cf190be0b021d92795cb\"\u003e\u003ccode\u003e833533d\u003c/code\u003e\u003c/a\u003e chore: Added py314 in toxList and up some test packages to full support this ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/1654b0d0de4853485751f1f74f6aa01cd68c9f8a\"\u003e\u003ccode\u003e1654b0d\u003c/code\u003e\u003c/a\u003e fix: Fix get_history ignoring its history_limit argument (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/c3e65779f5fd7082130cb11391712b0b7f1ce85b\"\u003e\u003ccode\u003ec3e6577\u003c/code\u003e\u003c/a\u003e test: support django-debug-toolbar 4.4+ (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1428\"\u003e#1428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/3674951ba030d4b5613d72d46fe245f99c7eca45\"\u003e\u003ccode\u003e3674951\u003c/code\u003e\u003c/a\u003e fix: Fix regression on override precedence with proper dynaconf-token cleanup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/3c0cb3cbe9cfca12f3ed5932135bc75c25bead4f\"\u003e\u003ccode\u003e3c0cb3c\u003c/code\u003e\u003c/a\u003e fix: add \u003cstrong\u003edeepcopy\u003c/strong\u003e to DataDict to match DataList (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1440\"\u003e#1440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/dbae7f17bef45beaf69744704bb27c0377ef0528\"\u003e\u003ccode\u003edbae7f1\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.3.5-dev0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/95e219915d831f4259af3026b6ef1ea30609a9c7\"\u003e\u003ccode\u003e95e2199\u003c/code\u003e\u003c/a\u003e Release version 3.3.4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dynaconf/dynaconf/compare/3.2.13...3.3.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.13.4 to 2.13.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.5/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/001dea020e0809844e5b17666432c9135a976f46\"\u003e\u003ccode\u003e001dea0\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epypa/gh-action-pypi-publish\u003c/code\u003e action to v1.14.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/558379fee957fad25858e33596146c72d5674843\"\u003e\u003ccode\u003e558379f\u003c/code\u003e\u003c/a\u003e Bump twine to v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2cfd5d3d2ae721ea882c045f83b7f7a4003aab01\"\u003e\u003ccode\u003e2cfd5d3\u003c/code\u003e\u003c/a\u003e Do not check for docs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a735bee5c64e1fe50785c376adaf1275e752b8ac\"\u003e\u003ccode\u003ea735bee\u003c/code\u003e\u003c/a\u003e Fix more Clippy lints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7eed4a16b87afaced4d0eafae230453de3410d64\"\u003e\u003ccode\u003e7eed4a1\u003c/code\u003e\u003c/a\u003e Fix Clippy 0.1.95 warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b353bbb20a4989b4c033e2be2b4a40d36178b16a\"\u003e\u003ccode\u003eb353bbb\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/63d2cccd6e760da6bbc7fe81a53cb2bde3768f5e\"\u003e\u003ccode\u003e63d2ccc\u003c/code\u003e\u003c/a\u003e Count validated model fields once in smart unions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a53ec2ed342fda4e6aa3684399d04ea57be9a6e4\"\u003e\u003ccode\u003ea53ec2e\u003c/code\u003e\u003c/a\u003e Speed up PyPy CI tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d65e0f96e890ca82f4b66a15d5b3bd65af2c661c\"\u003e\u003ccode\u003ed65e0f9\u003c/code\u003e\u003c/a\u003e Workaround circular import error in Mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/47a6dbf8ad6216211bd0df6ec5c2c6c6ed905b72\"\u003e\u003ccode\u003e47a6dbf\u003c/code\u003e\u003c/a\u003e Fix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.4...v2.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.2 to 1.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edotenv get\u003c/code\u003e no longer exits with code 1 for empty string values (\u003ccode\u003eKEY=\u003c/code\u003e) by [\u003ca href=\"https://github.com/ShamikOfficial\"\u003e\u003ccode\u003e@​ShamikOfficial\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn unquoted empty value followed by an inline comment (e.g. \u003ccode\u003eKEY= # comment\u003c/code\u003e) is now parsed as an empty string instead of the comment text by [\u003ca href=\"https://github.com/Noethix55555\"\u003e\u003ccode\u003e@​Noethix55555\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run --no-override\u003c/code\u003e now expands variable references with the same precedence as \u003ccode\u003eload_dotenv(override=False)\u003c/code\u003e, so a value like \u003ccode\u003e${BASE}/suffix\u003c/code\u003e uses the existing \u003ccode\u003eBASE\u003c/code\u003e from the environment instead of the one from the \u003ccode\u003e.env\u003c/code\u003e file by [\u003ca href=\"https://github.com/ROTl24\"\u003e\u003ccode\u003e@​ROTl24\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.4] - 2026-10-01\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edotenv get\u003c/code\u003e no longer exits with code 1 for empty string values (\u003ccode\u003eKEY=\u003c/code\u003e) by [\u003ca href=\"https://github.com/ShamikOfficial\"\u003e\u003ccode\u003e@​ShamikOfficial\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn unquoted empty value followed by an inline comment (e.g. \u003ccode\u003eKEY= # comment\u003c/code\u003e) is now parsed as an empty string instead of the comment text by [\u003ca href=\"https://github.com/Noethix55555\"\u003e\u003ccode\u003e@​Noethix55555\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run --no-override\u003c/code\u003e now expands variable references with the same precedence as \u003ccode\u003eload_dotenv(override=False)\u003c/code\u003e, so a value like \u003ccode\u003e${BASE}/suffix\u003c/code\u003e uses the existing \u003ccode\u003eBASE\u003c/code\u003e from the environment instead of the one from the \u003ccode\u003e.env\u003c/code\u003e file by [\u003ca href=\"https://github.com/ROTl24\"\u003e\u003ccode\u003e@​ROTl24\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.3] - 2026-08-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/a565c2cc41599c48eabc6b7b7f5b826d43c5a6d7\"\u003e\u003ccode\u003ea565c2c\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.3 → 1.2.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a7abd00261e51baba958e15f443c66165042ea2\"\u003e\u003ccode\u003e4a7abd0\u003c/code\u003e\u003c/a\u003e docs: add 1.2.4 release notes (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f215c0274dc4c310e5ca5feb4c6bddade25ece21\"\u003e\u003ccode\u003ef215c02\u003c/code\u003e\u003c/a\u003e fix: dotenv get exits 0 for empty string values (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/58f2d7c112235b347040bb5cb579d4ebc0a0ad91\"\u003e\u003ccode\u003e58f2d7c\u003c/code\u003e\u003c/a\u003e test: make test_run_with_command_flags portable and meaningful (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e0310e5bb3f2b701b11bbc007ca0c82c1bd56f38\"\u003e\u003ccode\u003ee0310e5\u003c/code\u003e\u003c/a\u003e fix: honor --no-override when expanding variables in dotenv run (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/a00cb2eed0704cd6d2071b2004c37e95ccc86ee5\"\u003e\u003ccode\u003ea00cb2e\u003c/code\u003e\u003c/a\u003e docs: add CHANGELOG entry for \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e (fix \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/600\"\u003e#600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f5485a61eefa5e686d6d5bdc7aa9ad6b104b1e92\"\u003e\u003ccode\u003ef5485a6\u003c/code\u003e\u003c/a\u003e fix: parse empty unquoted value with inline comment as empty string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/49515afee2d50c33cad9419b3800b3a0dc93fc59\"\u003e\u003ccode\u003e49515af\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.2 → 1.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ac846ff2760b65470e769d7eed33e540f0934e1\"\u003e\u003ccode\u003e8ac846f\u003c/code\u003e\u003c/a\u003e chore: add release runbook (RELEASING.md) and make release target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/bb31c944fb4b40e8dea59587f525840c38326166\"\u003e\u003ccode\u003ebb31c94\u003c/code\u003e\u003c/a\u003e docs: add 1.2.3 release notes (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.2...v1.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.3.5 to 2.5.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.3 (Sep 6, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.5.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.5.3 is a patch release that fixes bugs discovered after the 2.5.2\nrelease. Apart from the usual bug and maintenance work, there are a number of\nStringDType related fixes for problems discovered during the ongoing string\nwork in the main branch.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.12-3.15\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCasting a fixed-width byte string array (\u003ccode\u003enp.bytes_\u003c/code\u003e) to \u003ccode\u003eStringDType\u003c/code\u003e\nnow raises \u003ccode\u003eTypeError\u003c/code\u003e when the bytes are not valid UTF-8. Previously the\ninvalid bytes were stored as-is and later caused undefined behavior in\nstring operations.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32296\"\u003egh-32296\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMaskedArray._fill_value\u003c/code\u003e would become stale when ufuncs that change dtype\nleft the result holding a fill_value typed for the old dtype. The mismatch\nwas silent until something later called \u003ccode\u003e_check_fill_value\u003c/code\u003e, such as\n\u003ccode\u003e.view()\u003c/code\u003e, and then a \u003ccode\u003eTypeError\u003c/code\u003e would be raised. Now, when the copied\nfill_value is no longer valid for the new dtype, fall back to the\ndefault fill_value for that dtype instead of propagating the stale value.\nThis may raise a \u003ccode\u003eComplexWarning\u003c/code\u003e if the fill_value is complex and the\nnew dtype is real.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32423\"\u003egh-32423\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIason Krommydas\u003c/li\u003e\n\u003cli\u003eJames Davies +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaanas Arora\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eShikhar Goel +\u003c/li\u003e\n\u003cli\u003eYeonho Kim +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 27 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32235\"\u003e#32235\u003c/a\u003e: MAINT: Prepare 2.5.x for further development\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst\"\u003enumpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis is a walkthrough of the NumPy 2.4.0 release on Linux, which will be the\nfirst feature release using the \u003ccode\u003enumpy/numpy-release \u0026lt;https://github.com/numpy/numpy-release\u0026gt;\u003c/code\u003e__ repository.\u003c/p\u003e\n\u003cp\u003eThe commands can be copied into the command line, but be sure to replace 2.4.0\nwith the correct version. This should be read together with the\n:ref:\u003ccode\u003egeneral release guide \u0026lt;prepare_release\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eFacility preparation\u003c/h1\u003e\n\u003cp\u003eBefore beginning to make a release, use the \u003ccode\u003erequirements/*_requirements.txt\u003c/code\u003e files to\nensure that you have the needed software. Most software can be installed with\npip, but some will require apt-get, dnf, or whatever your system uses for\nsoftware. You will also need a GitHub personal access token (PAT) to push the\ndocumentation. There are a few ways to streamline things:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGit can be set up to use a keyring to store your GitHub personal access token.\nSearch online for the details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePrior to release\u003c/h1\u003e\n\u003ch2\u003eAdd/drop Python versions\u003c/h2\u003e\n\u003cp\u003eWhen adding or dropping Python versions, multiple config and CI files need to\nbe edited in addition to changing the minimum version in \u003ccode\u003epyproject.toml\u003c/code\u003e.\nMake these changes in an ordinary PR against main and backport if necessary.\nWe currently release wheels for new Python versions after the first Python RC\nonce manylinux and cibuildwheel support that new Python version.\u003c/p\u003e\n\u003ch2\u003eBackport pull requests\u003c/h2\u003e\n\u003cp\u003eChanges that have been marked for this release must be backported to the\nmaintenance/2.4.x branch.\u003c/p\u003e\n\u003ch2\u003eUpdate 2.4.0 milestones\u003c/h2\u003e\n\u003cp\u003eLook at the issues/prs with 2.4.0 milestones and either push them off to a\nlater version, or maybe remove the milestone. You may need to add a milestone.\u003c/p\u003e\n\u003ch2\u003eCheck the numpy-release repo\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/dd88c0c19b54ad9ed3533224221285bf0873249a\"\u003e\u003ccode\u003edd88c0c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32511\"\u003e#32511\u003c/a\u003e from charris/prepare-2.5.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/edcac6acc392f4010933ee83e8a4769a7cfe92c5\"\u003e\u003ccode\u003eedcac6a\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.5.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fd4d908aff89773ead13f7c6a0ab31153f14439e\"\u003e\u003ccode\u003efd4d908\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32509\"\u003e#32509\u003c/a\u003e from charris/backport-32496\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/65bb1da13d0ee784be84d173b86784f0d64bdaca\"\u003e\u003ccode\u003e65bb1da\u003c/code\u003e\u003c/a\u003e BUG: fix crash in ufunc.resolve_dtypes with a Python scalar type (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32496\"\u003e#32496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/294956e85dfaea149aada1278c2ed6be0f6f28c8\"\u003e\u003ccode\u003e294956e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32506\"\u003e#32506\u003c/a\u003e from charris/backport-32503\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/26428d9a3f5ab4f604b326347e3a9c6dcc00c1cb\"\u003e\u003ccode\u003e26428d9\u003c/code\u003e\u003c/a\u003e DOC: fix scipy docs links in intersphinx mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32507\"\u003e#32507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/5fab1cbc6aa9e119d9f931243a56c6fbca989476\"\u003e\u003ccode\u003e5fab1cb\u003c/code\u003e\u003c/a\u003e DOC: use static scipy doc site for intershpinx (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32503\"\u003e#32503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7beed2f7e9a24e493a04ff7e2eb1db0d7f9c50e6\"\u003e\u003ccode\u003e7beed2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32481\"\u003e#32481\u003c/a\u003e from ngoldbaum/stringdtype-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8972f70798a2ba1bb4557157982fd6001906f993\"\u003e\u003ccode\u003e8972f70\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32478\"\u003e#32478\u003c/a\u003e from charris/backport-32466\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/ab1b58902a868d4151ef3cf8dbeb91d8a1924fa4\"\u003e\u003ccode\u003eab1b589\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32477\"\u003e#32477\u003c/a\u003e from charris/backport-32423\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.3.5...v2.5.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.3.3 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.3.3...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.45 to 2.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.3\u003c/h1\u003e\n\u003cp\u003eReleased: October 2, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [regression]\u003c/strong\u003e Fixed regression where columns delivered to a mapped class from an\nunmapped \u003ccode\u003e_orm.MappedAsDataclass\u003c/code\u003e mixin, or from a class decorated\nwith \u003ccode\u003e_orm.unmapped_dataclass()\u003c/code\u003e, would not be placed in the\n\u003ccode\u003e_schema.Table\u003c/code\u003e in the order in which they were declared on the\nmixin; columns that had no dataclass default, such as a primary key column\nwith no \u003ccode\u003e_orm.mapped_column.default\u003c/code\u003e, or which made use of\n\u003ccode\u003e_orm.mapped_column.default_factory\u003c/code\u003e, would be moved after the\nremaining columns of the mixin.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13634\"\u003e#13634\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug] [regression]\u003c/strong\u003e Fixed regression caused by the new implementation of\n\u003ccode\u003eExecutableStatement.params()\u003c/code\u003e where parameter values established\nusing this method would not be rendered when compiling the statement with\nthe \u003ccode\u003eliteral_binds\u003c/code\u003e compiler option, instead rendering NULL with a\nwarning.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13635\"\u003e#13635\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.1.2\u003c/h1\u003e\n\u003cp\u003eReleased: October 2, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [regression]\u003c/strong\u003e Fixed regression caused by \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/5987\"\u003e#5987\u003c/a\u003e where the \u003ccode\u003eselectinload()\u003c/code\u003e\nloader strategy would ignore additional criteria present in the\n\u003ccode\u003e_orm.relationship.primaryjoin\u003c/code\u003e of a many-to-many relationship,\nsuch as a comparison against a column on the association table or on the\nparent table, loading related rows that should have been excluded.  The\n\u003ccode\u003eomit_join\u003c/code\u003e optimization for many-to-many relationships is now only used\nwhen the primaryjoin consists solely of comparisons between the parent's\nprimary key columns and the association table.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13626\"\u003e#13626\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tenacity` from 9.1.2 to 9.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jd/tenacity/releases\"\u003etenacity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.1.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eretry()\u003c/code\u003e annotations with async \u003ccode\u003esleep=\u003c/code\u003e function by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/555\"\u003ejd/tenacity#555\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.3...9.1.4\"\u003ehttps://github.com/jd/tenacity/compare/9.1.3...9.1.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e9.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply formatting to num seconds in before_sleep_log by \u003ca href=\"https://github.com/aguinane\"\u003e\u003ccode\u003e@​aguinane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/489\"\u003ejd/tenacity#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/sandrobonazzola\"\u003e\u003ccode\u003e@​sandrobonazzola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/528\"\u003ejd/tenacity#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping: Accept non-standard logger in helpers logging something by \u003ca href=\"https://github.com/k4nar\"\u003e\u003ccode\u003e@​k4nar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/540\"\u003ejd/tenacity#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(wait): add \u003ccode\u003ewait_exception\u003c/code\u003e strategy by \u003ca href=\"https://github.com/capitan-davide\"\u003e\u003ccode\u003e@​capitan-davide\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/541\"\u003ejd/tenacity#541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix syntax error in wait_chain docstring example by \u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/548\"\u003ejd/tenacity#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop Python 3.9 support (EOL) by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/552\"\u003ejd/tenacity#552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport async sleep for sync fn-to-retry by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/551\"\u003ejd/tenacity#551\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aguinane\"\u003e\u003ccode\u003e@​aguinane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/489\"\u003ejd/tenacity#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sandrobonazzola\"\u003e\u003ccode\u003e@​sandrobonazzola\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/528\"\u003ejd/tenacity#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k4nar\"\u003e\u003ccode\u003e@​k4nar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/540\"\u003ejd/tenacity#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/capitan-davide\"\u003e\u003ccode\u003e@​capitan-davide\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/541\"\u003ejd/tenacity#541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/548\"\u003ejd/tenacity#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/552\"\u003ejd/tenacity#552\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.2...9.1.3\"\u003ehttps://github.com/jd/tenacity/compare/9.1.2...9.1.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/d4e868d6b8368c00b5a1fad54de36c2c8c3a0fb3\"\u003e\u003ccode\u003ed4e868d\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eretry()\u003c/code\u003e annotations with async \u003ccode\u003esleep=\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/24415ebbca6ecafdf870af06441656dd96149d1d\"\u003e\u003ccode\u003e24415eb\u003c/code\u003e\u003c/a\u003e support async sleep for sync fn (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/3bf33b44096077a0608855f6a380fd8a25fa6f2...\n\n_Description has been truncated_","html_url":"https://github.com/dta-au/elspeth/pull/277","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dta-au%2Felspeth/issues/277","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/277/packages"},{"uuid":"5712776062","node_id":"PR_kwDOTLeQFs8AAAABGtuMUw","number":24,"state":"open","title":"Bump the python-minor group across 1 directory with 76 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-05T13:22:26.000Z","updated_at":"2026-10-05T13:22:28.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-minor","update_count":76,"packages":[{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"aiohttp","old_version":"3.14.1","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"annotated-doc","old_version":"0.0.4","new_version":"0.0.5","repository_url":"https://github.com/fastapi/annotated-doc"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"anyio","old_version":"4.13.0","new_version":"4.15.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"apscheduler","old_version":"3.11.2","new_version":"3.11.3","repository_url":"https://github.com/agronholm/apscheduler"},{"name":"black","old_version":"26.3.1","new_version":"26.5.1","repository_url":"https://github.com/psf/black"},{"name":"boto3","old_version":"1.42.86","new_version":"1.43.107","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.42.86","new_version":"1.43.107","repository_url":"https://github.com/boto/botocore"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.7.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.7","new_version":"3.5.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.2","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"cyclonedx-python-lib","old_version":"11.11.0","new_version":"11.12.0","repository_url":"https://github.com/CycloneDX/cyclonedx-python-lib"},{"name":"fastapi","old_version":"0.110.1","new_version":"0.142.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"flake8","old_version":"7.3.0","new_version":"7.4.1","repository_url":"https://github.com/pycqa/flake8"},{"name":"fsspec","old_version":"2026.3.0","new_version":"2026.9.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"google-ai-generativelanguage","old_version":"0.6.15","new_version":"0.12.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-api-core","old_version":"2.30.2","new_version":"2.40.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-api-python-client","old_version":"2.194.0","new_version":"2.201.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.49.1","new_version":"2.59.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth-httplib2","old_version":"0.3.1","new_version":"0.4.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.74.0","new_version":"1.75.5","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.80.0","new_version":"1.84.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.71.2","new_version":"1.84.0"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"httplib2","old_version":"0.31.2","new_version":"0.32.0","repository_url":"https://github.com/httplib2/httplib2"},{"name":"idna","old_version":"3.11","new_version":"3.20","repository_url":"https://github.com/kjd/idna"},{"name":"importlib-metadata","old_version":"9.0.0","new_version":"9.0.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"jiter","old_version":"0.13.0","new_version":"0.17.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jq","old_version":"1.11.0","new_version":"1.12.0","repository_url":"https://github.com/mwilliamson/jq.py"},{"name":"librt","old_version":"0.8.1","new_version":"0.16.0","repository_url":"https://github.com/mypyc/librt"},{"name":"litellm","old_version":"1.80.0","new_version":"1.103.2","repository_url":"https://github.com/BerriAI/litellm"},{"name":"markdown-it-py","old_version":"4.0.0","new_version":"4.2.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"motor","old_version":"3.3.1","new_version":"3.7.1","repository_url":"https://github.com/mongodb/motor"},{"name":"msgpack","old_version":"1.2.1","new_version":"1.2.3","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"numpy","old_version":"2.4.4","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"},{"name":"packaging","old_version":"26.0","new_version":"26.3","repository_url":"https://github.com/pypa/packaging"},{"name":"pandas","old_version":"3.0.2","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pathspec","old_version":"1.0.4","new_version":"1.1.1","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pillow","old_version":"12.2.0","new_version":"12.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pip-api","old_version":"0.0.34","new_version":"0.0.35","repository_url":"https://github.com/di/pip-api"},{"name":"platformdirs","old_version":"4.9.6","new_version":"4.12.2","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"propcache","old_version":"0.4.1","new_version":"0.5.4","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.27.2","new_version":"1.29.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pyasn1","old_version":"0.6.3","new_version":"0.6.4","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"pycodestyle","old_version":"2.14.0","new_version":"2.15.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.49.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.20.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.13.0","new_version":"2.15.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.17.0","new_version":"4.18.2","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"pyparsing","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest","old_version":"9.0.3","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"python-dotenv","old_version":"1.2.2","new_version":"1.2.4","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"python-multipart","old_version":"0.0.31","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"regex","old_version":"2026.4.4","new_version":"2026.9.29","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"resend","old_version":"2.29.0","new_version":"2.49.0","repository_url":"https://github.com/resendlabs/resend-python"},{"name":"s3transfer","old_version":"0.16.0","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"s5cmd","old_version":"0.2.0","new_version":"0.3.3","repository_url":"https://github.com/jcfr/s5cmd-python-distributions"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.71.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.2","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.1","repository_url":"https://github.com/tqdm/tqdm"},{"name":"typer","old_version":"0.24.1","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"typing-inspection","old_version":"0.4.2","new_version":"0.4.4","repository_url":"https://github.com/pydantic/typing-inspection"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"tzdata","old_version":"2026.1","new_version":"2026.4","repository_url":"https://github.com/python/tzdata"},{"name":"tzlocal","old_version":"5.3.1","new_version":"5.4.4","repository_url":"https://github.com/regebro/tzlocal"},{"name":"urllib3","old_version":"2.6.3","new_version":"2.8.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.25.0","new_version":"0.54.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.1.1","new_version":"1.3.0","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"wrapt","old_version":"2.2.2","new_version":"2.5.0","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"yarl","old_version":"1.23.0","new_version":"1.25.1","repository_url":"https://github.com/aio-libs/yarl"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor group with 76 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.14.1` | `3.14.3` |\n| [annotated-doc](https://github.com/fastapi/annotated-doc) | `0.0.4` | `0.0.5` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.13.0` | `4.15.1` |\n| [apscheduler](https://github.com/agronholm/apscheduler) | `3.11.2` | `3.11.3` |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.1` |\n| [boto3](https://github.com/boto/boto3) | `1.42.86` | `1.43.107` |\n| [botocore](https://github.com/boto/botocore) | `1.42.86` | `1.43.107` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.7.22` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.7` | `3.5.2` |\n| [click](https://github.com/pallets/click) | `8.3.2` | `8.5.0` |\n| [cyclonedx-python-lib](https://github.com/CycloneDX/cyclonedx-python-lib) | `11.11.0` | `11.12.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.110.1` | `0.142.2` |\n| [flake8](https://github.com/pycqa/flake8) | `7.3.0` | `7.4.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.3.0` | `2026.9.0` |\n| [google-ai-generativelanguage](https://github.com/googleapis/google-cloud-python) | `0.6.15` | `0.12.1` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.30.2` | `2.40.0` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.194.0` | `2.201.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.49.1` | `2.59.1` |\n| [google-auth-httplib2](https://github.com/googleapis/google-cloud-python) | `0.3.1` | `0.4.4` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.74.0` | `1.75.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.80.0` | `1.84.0` |\n| [grpcio-status](https://grpc.io) | `1.71.2` | `1.84.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.6.0` |\n| [httplib2](https://github.com/httplib2/httplib2) | `0.31.2` | `0.32.0` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.20` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `9.0.0` | `9.0.1` |\n| [jiter](https://github.com/pydantic/jiter) | `0.13.0` | `0.17.0` |\n| [jq](https://github.com/mwilliamson/jq.py) | `1.11.0` | `1.12.0` |\n| [librt](https://github.com/mypyc/librt) | `0.8.1` | `0.16.0` |\n| [litellm](https://github.com/BerriAI/litellm) | `1.80.0` | `1.103.2` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `4.0.0` | `4.2.0` |\n| [motor](https://github.com/mongodb/motor) | `3.3.1` | `3.7.1` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.2.1` | `1.2.3` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.4` | `2.5.3` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.3` |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.2` | `3.0.6` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `1.0.4` | `1.1.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.2.0` | `12.3.0` |\n| [pip-api](https://github.com/di/pip-api) | `0.0.34` | `0.0.35` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.6` | `4.12.2` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.4.1` | `0.5.4` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.27.2` | `1.29.0` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.3` | `0.6.4` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.14.0` | `2.15.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.5` | `2.49.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.20.0` | `2.21.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.13.0` | `2.15.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.17.0` | `4.18.2` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.3.2` | `3.3.3` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.2` | `1.2.4` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.31` | `0.0.32` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.4.4` | `2026.9.29` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [resend](https://github.com/resendlabs/resend-python) | `2.29.0` | `2.49.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.16.0` | `0.19.2` |\n| [s5cmd](https://github.com/jcfr/s5cmd-python-distributions) | `0.2.0` | `0.3.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.71.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.1` |\n| [typer](https://github.com/fastapi/typer) | `0.24.1` | `0.27.2` |\n| [typing-inspection](https://github.com/pydantic/typing-inspection) | `0.4.2` | `0.4.4` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [tzdata](https://github.com/python/tzdata) | `2026.1` | `2026.4` |\n| [tzlocal](https://github.com/regebro/tzlocal) | `5.3.1` | `5.4.4` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.3` | `2.8.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.25.0` | `0.54.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.1` | `1.3.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `2.2.2` | `2.5.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.23.0` | `1.25.1` |\n\n\nUpdates `aiohappyeyeballs` from 2.6.1 to 2.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/releases\"\u003eaiohappyeyeballs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.7.1 (2026-07-01)\u003c/h2\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse defaultdict to help with performance (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/239\"\u003e#239\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/e10f335ad9630122832e967428ac138992a50bca\"\u003e\u003ccode\u003ee10f335\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCollapse collect-then-remove pattern in utils helpers (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/227\"\u003e#227\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/0dd3fd16fe394eb8493000dc9b9894fad3ca3190\"\u003e\u003ccode\u003e0dd3fd1\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMerge identical except blocks in _connect_sock cleanup (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/229\"\u003e#229\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/b7c186e3242eb4d6eaf0918857a99c263b3186fb\"\u003e\u003ccode\u003eb7c186e\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSimplify _interleave_addrinfos family grouping (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/226\"\u003e#226\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/fdf6548a5f8b38e45ad7cee8add3c3a7e34e2805\"\u003e\u003ccode\u003efdf6548\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.7.0...v2.7.1\"\u003ev2.7.0...v2.7.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.7.0 (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/224\"\u003e#224\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/10e7d4341666605de295dd00da716e30002e78c2\"\u003e\u003ccode\u003e10e7d43\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.6.2...v2.7.0\"\u003ev2.6.2...v2.7.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.6.2 (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClear error on empty addr_infos in start_connection (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/222\"\u003e#222\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/55dd76aee978ca47a38899b9caf69d058bf41fb3\"\u003e\u003ccode\u003e55dd76a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize obtaining event-loop down to 1 line (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/185\"\u003e#185\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/02a70296210125b45952c3221db0dfb76d8ea911\"\u003e\u003ccode\u003e02a7029\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStop verify_no_lingering_tasks from leaking an event loop (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/221\"\u003e#221\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/ce43beb0242007dc57be6e2f4e3bf0b9f4f239d1\"\u003e\u003ccode\u003ece43beb\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.6.1...v2.6.2\"\u003ev2.6.1...v2.6.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/blob/main/CHANGELOG.md\"\u003eaiohappyeyeballs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.7.1 (2026-07-01)\u003c/h2\u003e\n\u003ch3\u003ePerformance improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse defaultdict to help with performance (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/e10f335ad9630122832e967428ac138992a50bca\"\u003e\u003ccode\u003ee10f335\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify _interleave_addrinfos family grouping (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/fdf6548a5f8b38e45ad7cee8add3c3a7e34e2805\"\u003e\u003ccode\u003efdf6548\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCollapse collect-then-remove pattern in utils helpers (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/0dd3fd16fe394eb8493000dc9b9894fad3ca3190\"\u003e\u003ccode\u003e0dd3fd1\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMerge identical except blocks in _connect_sock cleanup (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/b7c186e3242eb4d6eaf0918857a99c263b3186fb\"\u003e\u003ccode\u003eb7c186e\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.7.0 (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd python 3.14 support (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/10e7d4341666605de295dd00da716e30002e78c2\"\u003e\u003ccode\u003e10e7d43\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.6.2 (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClear error on empty addr_infos in start_connection (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/55dd76aee978ca47a38899b9caf69d058bf41fb3\"\u003e\u003ccode\u003e55dd76a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStop verify_no_lingering_tasks from leaking an event loop (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/ce43beb0242007dc57be6e2f4e3bf0b9f4f239d1\"\u003e\u003ccode\u003ece43beb\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize obtaining event-loop down to 1 line (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/02a70296210125b45952c3221db0dfb76d8ea911\"\u003e\u003ccode\u003e02a7029\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/4dfc926e30eea8d24c1a71602d73c0e9a895c191\"\u003e\u003ccode\u003e4dfc926\u003c/code\u003e\u003c/a\u003e 2.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/e10f335ad9630122832e967428ac138992a50bca\"\u003e\u003ccode\u003ee10f335\u003c/code\u003e\u003c/a\u003e perf: use defaultdict to help with performance (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/239\"\u003e#239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/338277badfb25fc38759ce38ab9ea2c20ec1bfff\"\u003e\u003ccode\u003e338277b\u003c/code\u003e\u003c/a\u003e chore: stop tracking .DS_Store files (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/251\"\u003e#251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/16978694944ed7fb5e7b49a173160144ccac45bc\"\u003e\u003ccode\u003e1697869\u003c/code\u003e\u003c/a\u003e ci: add codspeed benchmark suite for addrinfo reordering hot paths (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/d40a848cd2262b435242646fa8e220300bcd6952\"\u003e\u003ccode\u003ed40a848\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump starlette from 1.0.1 to 1.3.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/51d42669b2b94a78c6d4bd059e449b8ef51c6646\"\u003e\u003ccode\u003e51d4266\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump cryptography from 46.0.7 to 48.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/2df44b3987d3c887a8493ba19259c63588226d6c\"\u003e\u003ccode\u003e2df44b3\u003c/code\u003e\u003c/a\u003e chore(pre-commit.ci): pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/241\"\u003e#241\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/3e3cb615f00bfb4d29c30e0c86c897f4de8fb02d\"\u003e\u003ccode\u003e3e3cb61\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump pytest from 9.0.3 to 9.1.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/922dcd79a66d67fdd98a5f9b7587c4f8cda44653\"\u003e\u003ccode\u003e922dcd7\u003c/code\u003e\u003c/a\u003e chore(deps-ci): bump the github-actions group with 4 updates (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/245\"\u003e#245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/70461c583a8cf3c6fa85b8c48b8e4b576cee8083\"\u003e\u003ccode\u003e70461c5\u003c/code\u003e\u003c/a\u003e ci: drop .github/FUNDING.yml to inherit org-wide config (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.6.1...v2.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiohttp` from 3.14.1 to 3.14.3\nUpdates `annotated-doc` from 0.0.4 to 0.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/annotated-doc/releases\"\u003eannotated-doc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.5\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Python 3.8. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/36\"\u003e#36\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump ruff from 0.14.3 to 0.14.10. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/31\"\u003e#31\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/63\"\u003e#63\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade latest-changes to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/92\"\u003e#92\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/91\"\u003e#91\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/90\"\u003e#90\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pre-commit hooks. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/89\"\u003e#89\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add GH workflow to bump pre-commit hook versions. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/81\"\u003e#81\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Set Dependabot schedule interval to \u0026quot;monthly\u0026quot;. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/82\"\u003e#82\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix latest-changes checkout target. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/85\"\u003e#85\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update issue-manager to 0.8.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/84\"\u003e#84\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update latest-changes to 0.6.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/83\"\u003e#83\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/72\"\u003e#72\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/80\"\u003e#80\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump \u003ca href=\"https://github.com/crate-ci/typos\"\u003ehttps://github.com/crate-ci/typos\u003c/a\u003e from v1.46.0 to 1.47.2 in the pre-commit group across 1 directory. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/76\"\u003e#76\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Simplify pull request workflow triggers. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/79\"\u003e#79\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update issue-manager to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/78\"\u003e#78\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update issue-manager to 0.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/77\"\u003e#77\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Update zizmor workflow security checks. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/75\"\u003e#75\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix alls-green test dependency. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/74\"\u003e#74\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add pre-commit hook to catch typos. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/68\"\u003e#68\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/70\"\u003e#70\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group with 2 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/71\"\u003e#71\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Automate release preparation. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/69\"\u003e#69\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Configure Dependabot to group updates and update weekly. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/62\"\u003e#62\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/65\"\u003e#65\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix branch name in \u003ccode\u003eguard-dependencies.yml\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/61\"\u003e#61\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/60\"\u003e#60\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.33 to 0.0.34. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/58\"\u003e#58\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.11 to 0.3.13. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/59\"\u003e#59\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/50\"\u003e#50\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Bump the lower bound of \u003ccode\u003ety\u003c/code\u003e to 0.0.25. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/57\"\u003e#57\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Configure \u003ccode\u003ety\u003c/code\u003e to exit with error code on warnings. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/56\"\u003e#56\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/add-to-project from 1.0.2 to 2.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/54\"\u003e#54\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/labeler from 6.0.1 to 6.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/55\"\u003e#55\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.8 to 0.15.12. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/51\"\u003e#51\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.8 to 0.3.11. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/53\"\u003e#53\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.27 to 0.0.33. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/52\"\u003e#52\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/annotated-doc/blob/main/release-notes.md\"\u003eannotated-doc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.5 (2026-07-28)\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Python 3.8. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/36\"\u003e#36\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump ruff from 0.14.3 to 0.14.10. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/31\"\u003e#31\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/63\"\u003e#63\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade latest-changes to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/92\"\u003e#92\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/91\"\u003e#91\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/90\"\u003e#90\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pre-commit hooks. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/89\"\u003e#89\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add GH workflow to bump pre-commit hook versions. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/81\"\u003e#81\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Set Dependabot schedule interval to \u0026quot;monthly\u0026quot;. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/82\"\u003e#82\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix latest-changes checkout target. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/85\"\u003e#85\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update issue-manager to 0.8.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/84\"\u003e#84\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update latest-changes to 0.6.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/83\"\u003e#83\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/72\"\u003e#72\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/80\"\u003e#80\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump \u003ca href=\"https://github.com/crate-ci/typos\"\u003ehttps://github.com/crate-ci/typos\u003c/a\u003e from v1.46.0 to 1.47.2 in the pre-commit group across 1 directory. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/76\"\u003e#76\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Simplify pull request workflow triggers. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/79\"\u003e#79\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update issue-manager to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/78\"\u003e#78\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update issue-manager to 0.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/77\"\u003e#77\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Update zizmor workflow security checks. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/75\"\u003e#75\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix alls-green test dependency. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/74\"\u003e#74\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add pre-commit hook to catch typos. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/68\"\u003e#68\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/70\"\u003e#70\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group with 2 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/71\"\u003e#71\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Automate release preparation. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/69\"\u003e#69\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Configure Dependabot to group updates and update weekly. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/62\"\u003e#62\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/65\"\u003e#65\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix branch name in \u003ccode\u003eguard-dependencies.yml\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/61\"\u003e#61\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/60\"\u003e#60\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.33 to 0.0.34. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/58\"\u003e#58\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.11 to 0.3.13. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/59\"\u003e#59\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/50\"\u003e#50\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Bump the lower bound of \u003ccode\u003ety\u003c/code\u003e to 0.0.25. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/57\"\u003e#57\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Configure \u003ccode\u003ety\u003c/code\u003e to exit with error code on warnings. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/56\"\u003e#56\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/add-to-project from 1.0.2 to 2.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/54\"\u003e#54\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/labeler from 6.0.1 to 6.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/55\"\u003e#55\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.8 to 0.15.12. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/51\"\u003e#51\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.8 to 0.3.11. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/53\"\u003e#53\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/ef48d6ad51d226f772fd9c5284f55199afe4007c\"\u003e\u003ccode\u003eef48d6a\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.0.5 (\u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/issues/93\"\u003e#93\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/c628000835a26f6bc8c776f90bcbcf95211f233b\"\u003e\u003ccode\u003ec628000\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/e0b4579d2ad8d62a304c9f30a1c2c084f0d372e5\"\u003e\u003ccode\u003ee0b4579\u003c/code\u003e\u003c/a\u003e ➖ Drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/issues/36\"\u003e#36\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/ef956b4e9f2c0e2bead1cba7a6888e1ed8c2c237\"\u003e\u003ccode\u003eef956b4\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/84bf1e5402c5e0cfd1462c5d3c8bae22fb717bd8\"\u003e\u003ccode\u003e84bf1e5\u003c/code\u003e\u003c/a\u003e ⬆️ Upgrade latest-changes to 0.7.1 (\u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/issues/92\"\u003e#92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/cf773e138b1dc5608ce0f0d11e1939c410ef6228\"\u003e\u003ccode\u003ecf773e1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/1375d6eb8147cb2352d080ef09f356dfc18e0d29\"\u003e\u003ccode\u003e1375d6e\u003c/code\u003e\u003c/a\u003e ⬆ Bump the github-actions group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/cd373656cbf40e5fd4cc28680ca5e05bf12709cb\"\u003e\u003ccode\u003ecd37365\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/f9f3b695cbacc4ffc37d9cebff6e05bd1751f68a\"\u003e\u003ccode\u003ef9f3b69\u003c/code\u003e\u003c/a\u003e ⬆ Bump the python-packages group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/842084457f0a7739fb91d2a4ea602b2bc4e15767\"\u003e\u003ccode\u003e8420844\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/annotated-doc/compare/0.0.4...0.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `annotated-types` from 0.7.0 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/annotated-types/annotated-types/releases\"\u003eannotated-types's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename DocInfo to Doc by \u003ca href=\"https://github.com/zen-xu\"\u003e\u003ccode\u003e@​zen-xu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/80\"\u003eannotated-types/annotated-types#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/83\"\u003eannotated-types/annotated-types#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docstring of \u003ccode\u003eTimezone\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/84\"\u003eannotated-types/annotated-types#84\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate license-files to be PEP-639 compliant (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/85\"\u003e#85\u003c/a\u003e) by \u003ca href=\"https://github.com/shoeffner\"\u003e\u003ccode\u003e@​shoeffner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/86\"\u003eannotated-types/annotated-types#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: typo in README.md by \u003ca href=\"https://github.com/camiloaz\"\u003e\u003ccode\u003e@​camiloaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/87\"\u003eannotated-types/annotated-types#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd CI for PyPy3.11 and fix test (issue 71) by \u003ca href=\"https://github.com/mattip\"\u003e\u003ccode\u003e@​mattip\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/88\"\u003eannotated-types/annotated-types#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix string predicate names in doc by \u003ca href=\"https://github.com/leogermond\"\u003e\u003ccode\u003e@​leogermond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/90\"\u003eannotated-types/annotated-types#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd SPDX license expression by \u003ca href=\"https://github.com/wichert\"\u003e\u003ccode\u003e@​wichert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/92\"\u003eannotated-types/annotated-types#92\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python 3.14 to the test matrix by \u003ca href=\"https://github.com/imtoopunkforyou\"\u003e\u003ccode\u003e@​imtoopunkforyou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/96\"\u003eannotated-types/annotated-types#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8-3.9 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/97\"\u003eannotated-types/annotated-types#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in \u003ccode\u003eLen\u003c/code\u003e docstring by \u003ca href=\"https://github.com/Dutcho\"\u003e\u003ccode\u003e@​Dutcho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/100\"\u003eannotated-types/annotated-types#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for 0.8.0 release by \u003ca href=\"https://github.com/adriangb\"\u003e\u003ccode\u003e@​adriangb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/103\"\u003eannotated-types/annotated-types#103\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zen-xu\"\u003e\u003ccode\u003e@​zen-xu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/80\"\u003eannotated-types/annotated-types#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/83\"\u003eannotated-types/annotated-types#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shoeffner\"\u003e\u003ccode\u003e@​shoeffner\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/86\"\u003eannotated-types/annotated-types#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/camiloaz\"\u003e\u003ccode\u003e@​camiloaz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/87\"\u003eannotated-types/annotated-types#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mattip\"\u003e\u003ccode\u003e@​mattip\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/88\"\u003eannotated-types/annotated-types#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leogermond\"\u003e\u003ccode\u003e@​leogermond\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/90\"\u003eannotated-types/annotated-types#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wichert\"\u003e\u003ccode\u003e@​wichert\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/92\"\u003eannotated-types/annotated-types#92\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imtoopunkforyou\"\u003e\u003ccode\u003e@​imtoopunkforyou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/96\"\u003eannotated-types/annotated-types#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dutcho\"\u003e\u003ccode\u003e@​Dutcho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/100\"\u003eannotated-types/annotated-types#100\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/annotated-types/annotated-types/compare/v0.7.0...v0.8.0\"\u003ehttps://github.com/annotated-types/annotated-types/compare/v0.7.0...v0.8.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/9eb96680138269811a39d838d720abc3dce33954\"\u003e\u003ccode\u003e9eb9668\u003c/code\u003e\u003c/a\u003e Prepare for 0.8.0 release (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/10b77644f88b385357653730a1ab23748ca3ae2e\"\u003e\u003ccode\u003e10b7764\u003c/code\u003e\u003c/a\u003e Fix typo in \u003ccode\u003eLen\u003c/code\u003e docstring (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/100\"\u003e#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/955f7576d616feb6e9407c74498517787c38afd4\"\u003e\u003ccode\u003e955f757\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop EOL 3.8-3.9 (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/97\"\u003e#97\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/bd280fea7983550d266f993d868b8dd7ff822bf1\"\u003e\u003ccode\u003ebd280fe\u003c/code\u003e\u003c/a\u003e Added Python 3.14 to the test matrix (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/96\"\u003e#96\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/a471bb757663452459893e6f593118ec21eb1b9e\"\u003e\u003ccode\u003ea471bb7\u003c/code\u003e\u003c/a\u003e Add SPDX license expression (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/92\"\u003e#92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/eab91d9a8c0d3f73661fc4b0794a1fe76c94fa84\"\u003e\u003ccode\u003eeab91d9\u003c/code\u003e\u003c/a\u003e Fix string predicate names in doc (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/03ad9c3c7b4d4dfe9e33c09075a3a2766c0820e1\"\u003e\u003ccode\u003e03ad9c3\u003c/code\u003e\u003c/a\u003e add CI for PyPy3.11 and fix test (issue 71) (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/88\"\u003e#88\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/5ae60437f0ab493cedd27311bc6ce6d2188e8d8b\"\u003e\u003ccode\u003e5ae6043\u003c/code\u003e\u003c/a\u003e fix: typo in README.md (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/87\"\u003e#87\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/b60ad7bff90019c7de3547df1c8e3586eb328423\"\u003e\u003ccode\u003eb60ad7b\u003c/code\u003e\u003c/a\u003e Update license-files to be PEP-639 compliant (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/85\"\u003e#85\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/86\"\u003e#86\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/3fbeb6d129760ae48d7a0372fb9301764acc95ae\"\u003e\u003ccode\u003e3fbeb6d\u003c/code\u003e\u003c/a\u003e Fix docstring of \u003ccode\u003eTimezone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/annotated-types/annotated-types/compare/v0.7.0...v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.13.0 to 4.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented a compatibility fix for supporting direct access of \u003ccode\u003eanyio.*\u003c/code\u003e submodules from the main package even when those submodules were not directly imported first (\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311\"\u003e#1311\u003c/a\u003e \u0026lt;\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311%5C%3E\"\u003eagronholm/anyio#1311\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for the newer keyword-only arguments on \u003ccode\u003eanyio.Path\u003c/code\u003e methods to match the standard library \u003ccode\u003epathlib.Path\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eexists()\u003c/code\u003e (Python 3.12+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_dir()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_file()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eowner()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003egroup()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enewline\u003c/code\u003e on \u003ccode\u003eread_text()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1286\"\u003e#1286\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1293\"\u003e#1293\u003c/a\u003e; PR by \u003ca href=\"https://github.com/jaideeppyne\"\u003e\u003ccode\u003e@​jaideeppyne\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eamap\u003c/code\u003e, \u003ccode\u003egather\u003c/code\u003e, and \u003ccode\u003eas_completed\u003c/code\u003e utility functions to simplify common patterns (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1173\"\u003e#1173\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003e--anyio-mode\u003c/code\u003e command-line option as an alternative to the \u003ccode\u003eanyio_mode\u003c/code\u003e ini setting, and fix the pytest plugin's auto mode detection to recognize the mode when set via either mechanism(e.g: \u003ccode\u003epytest_asyncio\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1242\"\u003e#1242\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003eanyio.Future\u003c/code\u003e synchronization primitive which behaves similar to \u003ccode\u003easyncio.Future\u003c/code\u003e, allowing tasks to wait for a value (or exception) from another task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1146\"\u003e#1146\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded guidance for managing multiple memory object stream producers and consumers with cloned streams (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/330\"\u003e#330\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nightcityblade\"\u003e\u003ccode\u003e@​nightcityblade\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eStapledObjectStream.send_nowait()\u003c/code\u003e that delegates to the underlying \u003ccode\u003eObjectSendStream\u003c/code\u003e, if it implements it (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1241\"\u003e#1241\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003emove_on_at()\u003c/code\u003e and \u003ccode\u003efail_at()\u003c/code\u003e functions to complement \u003ccode\u003emove_on_after()\u003c/code\u003e and \u003ccode\u003efail_after()\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the default name for a task spawned with \u003ccode\u003eTaskGroup.create_task(func())\u003c/code\u003e to match the default task name for the analogous task spawned with \u003ccode\u003eTaskGroup.start_soon(func)\u003c/code\u003e or \u003ccode\u003eTaskGroup.start(func)\u003c/code\u003e in more situations. Previously, the default name of a \u003ccode\u003eTaskGroup.create_task\u003c/code\u003e task never included the module name. (The default name for a task spawned with \u003ccode\u003eTaskGroup.start_soon\u003c/code\u003e or \u003ccode\u003eTaskGroup.start\u003c/code\u003e typically includes the module name.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1234\"\u003e#1234\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the \u003ccode\u003eanyio\u003c/code\u003e and \u003ccode\u003eanyio.abc\u003c/code\u003e modules to lazily (much like \u003ccode\u003e810\u003c/code\u003e) import the necessary submodules. This is done by parsing the AST of the module and building a lookup table from the \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block. A fallback mode has been provided for installations where the source code is unavailable (e.g. PyInstaller). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1169\"\u003e#1169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed free-threading compatibility issues arising from the fact that on Python 3.14 free-threading builds, newly created threads inherit the current context by default, causing AnyIO to behave erroneously in relation to \u003ccode\u003estart_blocking_portal()\u003c/code\u003e and \u003ccode\u003eanyio.to_thread.run_sync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1224\"\u003e#1224\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eSpooledTemporaryFile.readinto()\u003c/code\u003e and \u003ccode\u003ereadinto1()\u003c/code\u003e reading twice before rollover, so the destination buffer was overwritten by the second read and the file position advanced twice, silently losing data (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1215\"\u003e#1215\u003c/a\u003e; PR by \u003ca href=\"https://github.com/c-tonneslan\"\u003e\u003ccode\u003e@​c-tonneslan\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003efail_after\u003c/code\u003e (and the new \u003ccode\u003efail_at\u003c/code\u003e) allowing for added exception context when raising \u003ccode\u003eTimeoutError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1227\"\u003e#1227\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the default \u003ccode\u003eTaskHandle.name\u003c/code\u003e missing part of the task name for tasks started with \u003ccode\u003eTaskGroup.start\u003c/code\u003e on Trio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1231\"\u003e#1231\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.run\u003c/code\u003e leaking, or at least, delaying collection of loop and root_task due to the root task being cached in a \u003ccode\u003eRunVar\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1203\"\u003e#1203\u003c/a\u003e; PR by \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.Path.with_stem()\u003c/code\u003e silently producing a wrong path (e.g. \u003ccode\u003ePath(\u0026quot;.txt\u0026quot;)\u003c/code\u003e) instead of raising \u003ccode\u003eValueError\u003c/code\u003e when given an empty stem on a path with a non-empty suffix, unlike \u003ccode\u003epathlib.PurePath.with_stem\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1200\"\u003e#1200\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eUNIXSocketStream.aclose()\u003c/code\u003e raising \u003ccode\u003easyncio.InvalidStateError\u003c/code\u003e when a concurrent receive or send operation had just been cancelled on the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1267\"\u003e#1267\u003c/a\u003e; PR by \u003ca href=\"https://github.com/alloutflo\"\u003e\u003ccode\u003e@​alloutflo\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the pytest plugin importing the deprecated \u003ccode\u003e_pytest.python.CallSpec2\u003c/code\u003e alias, which triggers \u003ccode\u003ePytestRemovedIn10Warning\u003c/code\u003e on \u003ccode\u003epytest\u0026gt;=9.2\u003c/code\u003e and crashes pytest at startup when \u003ccode\u003efilterwarnings = error\u003c/code\u003e is configured (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1271\"\u003e#1271\u003c/a\u003e; PR by \u003ca href=\"https://github.com/matthewfeickert\"\u003e\u003ccode\u003e@​matthewfeickert\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an asyncio worker thread race that could raise \u003ccode\u003eRuntimeError\u003c/code\u003e when the event loop closed between checking its state and scheduling the worker result (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1265\"\u003e#1265\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hansu650\"\u003e\u003ccode\u003e@​hansu650\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eCapacityLimiter\u003c/code\u003e on the asyncio backend over-granting tokens when \u003ccode\u003etotal_tokens\u003c/code\u003e was raised while the limiter was over-subscribed (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1223\"\u003e#1223\u003c/a\u003e; PR by \u003ca href=\"https://github.com/zelinewang\"\u003e\u003ccode\u003e@​zelinewang\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/ffcd1542cd6d127980205f90a0100078849dd703\"\u003e\u003ccode\u003effcd154\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0ecf5ed98d294242509b043ebd1a0843e52d892f\"\u003e\u003ccode\u003e0ecf5ed\u003c/code\u003e\u003c/a\u003e Added a workaround for third party code accessing unimported submodules (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1309\"\u003e#1309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/928366259543412a2deb1e2ba09ea45ffa92ef4f\"\u003e\u003ccode\u003e9283662\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d137692a90f76e4f71605e32ea5ca94cab3a539d\"\u003e\u003ccode\u003ed137692\u003c/code\u003e\u003c/a\u003e Improved the instructions for AI agents\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/033fc52b8fa8e90c5d0ef24b10b3860e974a6265\"\u003e\u003ccode\u003e033fc52\u003c/code\u003e\u003c/a\u003e Shield TemporaryDirectory cleanup from cancellation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1304\"\u003e#1304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/942e9a6552cc10b5aaa779d84bfc8e2c3d5fcffc\"\u003e\u003ccode\u003e942e9a6\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1305\"\u003e#1305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b825c3be7cb4ca1a8000b8065d4e147843deb704\"\u003e\u003ccode\u003eb825c3b\u003c/code\u003e\u003c/a\u003e Fixed pyproject.toml changes not triggering the test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9727dc504681e2986b5bc285de9571fb467539af\"\u003e\u003ccode\u003e9727dc5\u003c/code\u003e\u003c/a\u003e Fixed start inconsistencies between trio and asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b05fe6d160a640355c201363cab286a7d2581da8\"\u003e\u003ccode\u003eb05fe6d\u003c/code\u003e\u003c/a\u003e Fixed wrong type in move_on_after (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1297\"\u003e#1297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/44d0c93cc20079acbf38ba4dbed5ab9df323f153\"\u003e\u003ccode\u003e44d0c93\u003c/code\u003e\u003c/a\u003e Fixed asyncio task group coroutine cleanup (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.13.0...4.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apscheduler` from 3.11.2 to 3.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/apscheduler/releases\"\u003eapscheduler's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed sub-minute interval jobs stalling for the duration of a DST spring-forward gap when the scheduler was configured with a \u003ccode\u003eZoneInfo\u003c/code\u003e time zone, caused by the wakeup delay being computed from the naive wall-clock difference instead of the actual UTC difference (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1103\"\u003e#1103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed imported jobs missing their scheduler and job store links (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1119\"\u003e#1119\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/4308ec95b94069f5dbdddb6c60fb792dfc8c40a4\"\u003e\u003ccode\u003e4308ec9\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/ff68780d7f66fe0f505c3a32764005cd004996b9\"\u003e\u003ccode\u003eff68780\u003c/code\u003e\u003c/a\u003e Added a note about weekday numbers in CronTrigger.from_crontab()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/36936e904052e6bfbd03f83e17b03701b7a589fe\"\u003e\u003ccode\u003e36936e9\u003c/code\u003e\u003c/a\u003e Updated actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/c0ff7e4ccfcc703db44a905b70c1d6568a6f81fa\"\u003e\u003ccode\u003ec0ff7e4\u003c/code\u003e\u003c/a\u003e Fixed Pyside6 tests failing on Python 3.9 and 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/1b782c90edeac787deb3106fb3e5c775b3d6b0cd\"\u003e\u003ccode\u003e1b782c9\u003c/code\u003e\u003c/a\u003e Fixed fixture \u003ccode\u003ecoreapp\u003c/code\u003e not found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/dc3dde4a34c021f215d120d88fe19ddc66bb8a66\"\u003e\u003ccode\u003edc3dde4\u003c/code\u003e\u003c/a\u003e Test against PySide6 on all Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/18a6f6b637e372730f6325786f97936e6eaa9f77\"\u003e\u003ccode\u003e18a6f6b\u003c/code\u003e\u003c/a\u003e Fixed imported jobs missing their scheduler and job store links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/1693db4d8861bf941d299d79a586797ad0ac6467\"\u003e\u003ccode\u003e1693db4\u003c/code\u003e\u003c/a\u003e Fix interval jobs stalling across DST spring-forward with ZoneInfo (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1114\"\u003e#1114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/0636bf4931fddb706b948b6781ebbd76058f1443\"\u003e\u003ccode\u003e0636bf4\u003c/code\u003e\u003c/a\u003e Added Python 3.14 to the test matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/3eb3de8115f1631dc5e2ecce7b00175d34ffbdf9\"\u003e\u003ccode\u003e3eb3de8\u003c/code\u003e\u003c/a\u003e Fixed bad use of pytest.raises()\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/apscheduler/compare/3.11.2...3.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 26.3.1 to 26.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 26.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/87928e6d6761a4a6d22250e1fee5601b3998086e\"\u003e\u003ccode\u003e87928e6\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5140\"\u003e#5140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c970a49702488739add6c728122deb3a99900803\"\u003e\u003ccode\u003ec970a49\u003c/code\u003e\u003c/a\u003e Preserve comments before fmt: skip lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5809338fd5f92d50e80c2ad312292ae6d428a480\"\u003e\u003ccode\u003e5809338\u003c/code\u003e\u003c/a\u003e Preserve inline comments inside annotation subscripts (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/61361b71995f6ea44ce01915bacd3ecc50642507\"\u003e\u003ccode\u003e61361b7\u003c/code\u003e\u003c/a\u003e docs: add Neovim integration guide and fix http link (\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ebe6018e3254629788376e619207719fbe34a849\"\u003e\u003ccode\u003eebe6018\u003c/code\u003e\u003c/a\u003e CI Hotfixes (\u003ca href=\"https://redirect.github.com/psf/black/issues/5136\"\u003e#5136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9cbd95f80e97c1ab4d690d1d41b81579a13bf75c\"\u003e\u003ccode\u003e9cbd95f\u003c/code\u003e\u003c/a\u003e Fix publish binaries again on Windows (\u003ca href=\"https://redirect.github.com/psf/black/issues/5134\"\u003e#5134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/3dc8e6c41911bdaedb4bac8d633979c34a112b78\"\u003e\u003ccode\u003e3dc8e6c\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5132\"\u003e#5132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6d0fff0d5a965b9d0d3dbd7c5738d835fd574130\"\u003e\u003ccode\u003e6d0fff0\u003c/code\u003e\u003c/a\u003e Fix publish binaries workflow (\u003ca href=\"https://redirect.github.com/psf/black/issues/5133\"\u003e#5133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d2490e24dad33b8f68c77602ee29160de0fea24b\"\u003e\u003ccode\u003ed2490e2\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5131\"\u003e#5131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b13ea76fa69d4923381df65deb1a5c896ca27ad\"\u003e\u003ccode\u003e2b13ea7\u003c/code\u003e\u003c/a\u003e Preserve multiline headers with fmt skip (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.3.1...26.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.42.86 to 1.43.107\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/402e09ca457c8b8ea37097e32dcf2de7c612bb2f\"\u003e\u003ccode\u003e402e09c\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.107'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/4d321645cb78851589720fec5d08c6f8cf64c9b4\"\u003e\u003ccode\u003e4d32164\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.107\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/e6738b9bfc67ceb6f9eb8792a10eac83b283b959\"\u003e\u003ccode\u003ee6738b9\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c2a321bb8a8513706b906703fc9945e6de62e400\"\u003e\u003ccode\u003ec2a321b\u003c/code\u003e\u003c/a\u003e Bump \u003ca href=\"https://github.com/astral-sh/ruff-pre-commit\"\u003ehttps://github.com/astral-sh/ruff-pre-commit\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/88630f82cb40220991b6fb0505703e7cd575e38b\"\u003e\u003ccode\u003e88630f8\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.106'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/fac0859a5381737c27dd088886e99286031db120\"\u003e\u003ccode\u003efac0859\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.106' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/eefb3fcda392ec4fd5cbf212643cb01a6b4f98ae\"\u003e\u003ccode\u003eeefb3fc\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.106\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/88781899883b66a97cc95023d0c0ef1fda909f5d\"\u003e\u003ccode\u003e8878189\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca...\n\n_Description has been truncated_","html_url":"https://github.com/rahuldecor-svg/emergent/pull/24","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahuldecor-svg%2Femergent/issues/24","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/24/packages"},{"uuid":"5708354980","node_id":"PR_kwDOQkZs088AAAABGqHwXQ","number":404,"state":"open","title":"deps: bump the python-minor-patch group across 1 directory with 90 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-05T07:48:12.000Z","updated_at":"2026-10-05T07:48:13.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"python-minor-patch","update_count":90,"packages":[{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"xarray","old_version":"2026.7.0","new_version":"2026.9.0","repository_url":"https://github.com/pydata/xarray"},{"name":"matplotlib","old_version":"3.11.1","new_version":"3.11.2","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"transformers","old_version":"5.16.1","new_version":"5.18.0","repository_url":"https://github.com/huggingface/transformers"},{"name":"torch","old_version":"2.13.0","new_version":"2.14.1","repository_url":"https://github.com/pytorch/pytorch"},{"name":"accelerate","old_version":"1.14.0","new_version":"1.15.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"python-dotenv","old_version":"1.2.3","new_version":"1.2.4","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"fastapi","old_version":"0.141.1","new_version":"0.142.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.52.4","new_version":"0.54.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sse-starlette","old_version":"3.4.8","new_version":"3.5.0","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"geopandas","old_version":"1.1.4","new_version":"1.2.0","repository_url":"https://github.com/geopandas/geopandas"},{"name":"duckdb","old_version":"1.5.5","new_version":"1.5.6","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"ruff","old_version":"0.16.5","new_version":"0.16.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/python/mypy"},{"name":"affine","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/rasterio/affine"},{"name":"anyio","old_version":"4.14.2","new_version":"4.15.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"ast-serialize","old_version":"0.8.0","new_version":"0.11.2","repository_url":"https://github.com/mypyc/ast_serialize"},{"name":"authlib","old_version":"1.7.2","new_version":"1.8.0","repository_url":"https://github.com/authlib/authlib"},{"name":"build","old_version":"1.6.0","new_version":"1.6.1","repository_url":"https://github.com/pypa/build"},{"name":"cachetools","old_version":"7.1.7","new_version":"7.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"caio","old_version":"0.12.2","new_version":"0.12.9","repository_url":"https://github.com/mosquito/caio"},{"name":"cftime","old_version":"1.6.5","new_version":"1.6.6","repository_url":"https://github.com/Unidata/cftime"},{"name":"charset-normalizer","old_version":"3.5.1","new_version":"3.5.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.15.4","new_version":"7.16.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cryptography","old_version":"50.0.1","new_version":"50.0.2","repository_url":"https://github.com/pyca/cryptography"},{"name":"cuda-bindings","old_version":"13.3.1","new_version":"13.4.3","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.8.0","new_version":"1.8.3","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.3.1","new_version":"13.4.2"},{"name":"fonttools","old_version":"4.63.0","new_version":"4.66.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"fsspec","old_version":"2026.7.0","new_version":"2026.9.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"googleapis-common-protos","old_version":"1.75.2","new_version":"1.75.5","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"griffelib","old_version":"2.2.0","new_version":"2.3.0"},{"name":"grpcio","old_version":"1.83.1","new_version":"1.84.0","repository_url":"https://github.com/grpc/grpc"},{"name":"idna","old_version":"3.19","new_version":"3.20","repository_url":"https://github.com/kjd/idna"},{"name":"imageio","old_version":"2.37.4","new_version":"2.38.0","repository_url":"https://github.com/imageio/imageio"},{"name":"importlib-metadata","old_version":"9.0.0","new_version":"9.0.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"joblib","old_version":"1.5.3","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"joserfc","old_version":"1.7.4","new_version":"1.7.5","repository_url":"https://github.com/authlib/joserfc"},{"name":"kiwisolver","old_version":"1.5.0","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.5","new_version":"0.6","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librt","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/mypyc/librt"},{"name":"mmh3","old_version":"5.3.0","new_version":"5.3.1","repository_url":"https://github.com/hajimes/mmh3"},{"name":"narwhals","old_version":"2.25.0","new_version":"2.26.0","repository_url":"https://github.com/narwhals-dev/narwhals"},{"name":"nvidia-cublas","old_version":"13.6.1.10","new_version":"13.8.1.7"},{"name":"nvidia-cuda-cupti","old_version":"13.3.75","new_version":"13.4.92"},{"name":"nvidia-cuda-nvrtc","old_version":"13.3.33","new_version":"13.4.92"},{"name":"nvidia-cuda-runtime","old_version":"13.3.29","new_version":"13.4.92"},{"name":"nvidia-cudnn-cu13","old_version":"9.24.0.43","new_version":"9.27.0.42"},{"name":"nvidia-cufft","old_version":"12.3.0.29","new_version":"12.4.0.43"},{"name":"nvidia-cufile","old_version":"1.18.1.6","new_version":"1.19.1.55"},{"name":"nvidia-curand","old_version":"10.4.3.29","new_version":"10.4.4.72"},{"name":"nvidia-cusolver","old_version":"12.2.6.9","new_version":"12.3.4.7"},{"name":"nvidia-cusparse","old_version":"12.8.2.51","new_version":"12.8.6.72"},{"name":"nvidia-cusparselt-cu13","old_version":"0.9.1","new_version":"0.10.0"},{"name":"nvidia-nccl-cu13","old_version":"2.31.2","new_version":"2.32.3"},{"name":"nvidia-nvjitlink","old_version":"13.3.33","new_version":"13.4.92"},{"name":"nvidia-nvshmem-cu13","old_version":"3.7.2","new_version":"3.8.0"},{"name":"nvidia-nvtx","old_version":"13.3.29","new_version":"13.4.92"},{"name":"onnxruntime","old_version":"1.29.0","new_version":"1.30.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"opentelemetry-api","old_version":"1.44.0","new_version":"1.45.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.44.0","new_version":"1.45.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.44.0","new_version":"1.45.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.44.0","new_version":"1.45.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-sdk","old_version":"1.44.0","new_version":"1.45.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.65b0","new_version":"0.66b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pillow-heif","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/bigcat88/pillow_heif"},{"name":"platformdirs","old_version":"4.11.5","new_version":"4.12.2","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"propcache","old_version":"0.5.2","new_version":"0.5.4","repository_url":"https://github.com/aio-libs/propcache"},{"name":"protobuf","old_version":"7.36.0","new_version":"7.36.2"},{"name":"py-key-value-aio","old_version":"0.4.5","new_version":"0.4.6"},{"name":"pydantic-core","old_version":"2.48.0","new_version":"2.49.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pyjwt","old_version":"2.13.0","new_version":"2.15.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyproject-hooks","old_version":"1.2.0","new_version":"1.3.3","repository_url":"https://github.com/pypa/pyproject-hooks"},{"name":"regex","old_version":"2026.7.19","new_version":"2026.9.29","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"rich-rst","old_version":"2.1.0","new_version":"2.2.0","repository_url":"https://github.com/wasi-master/rich-rst"},{"name":"scikit-learn","old_version":"1.9.0","new_version":"1.9.1","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"starlette","old_version":"1.6.0","new_version":"1.7.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"threadpoolctl","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tokenizers","old_version":"0.23.1","new_version":"0.23.2","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"tqdm","old_version":"4.70.0","new_version":"4.70.1","repository_url":"https://github.com/tqdm/tqdm"},{"name":"triton","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"typer","old_version":"0.27.1","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"tzdata","old_version":"2026.3","new_version":"2026.4","repository_url":"https://github.com/python/tzdata"},{"name":"uvloop","old_version":"0.22.1","new_version":"0.23.0","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"watchfiles","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websocket-client","old_version":"1.9.0","new_version":"1.9.2","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"xyzservices","old_version":"2026.3.0","new_version":"2026.9.1","repository_url":"https://github.com/geopandas/xyzservices"},{"name":"yarl","old_version":"1.24.5","new_version":"1.25.1","repository_url":"https://github.com/aio-libs/yarl"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 90 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.5` | `3.0.6` |\n| [xarray](https://github.com/pydata/xarray) | `2026.7.0` | `2026.9.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.11.1` | `3.11.2` |\n| [transformers](https://github.com/huggingface/transformers) | `5.16.1` | `5.18.0` |\n| [torch](https://github.com/pytorch/pytorch) | `2.13.0` | `2.14.1` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.14.0` | `1.15.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.3` | `1.2.4` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.141.1` | `0.142.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.52.4` | `0.54.0` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.4.8` | `3.5.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| [geopandas](https://github.com/geopandas/geopandas) | `1.1.4` | `1.2.0` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.5.5` | `1.5.6` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.5` | `0.16.10` |\n| [mypy](https://github.com/python/mypy) | `2.3.1` | `2.4.0` |\n| [affine](https://github.com/rasterio/affine) | `3.0.0` | `3.0.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.2` | `4.15.1` |\n| [ast-serialize](https://github.com/mypyc/ast_serialize) | `0.8.0` | `0.11.2` |\n| [authlib](https://github.com/authlib/authlib) | `1.7.2` | `1.8.0` |\n| [build](https://github.com/pypa/build) | `1.6.0` | `1.6.1` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.2.0` |\n| [caio](https://github.com/mosquito/caio) | `0.12.2` | `0.12.9` |\n| [cftime](https://github.com/Unidata/cftime) | `1.6.5` | `1.6.6` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.5.1` | `3.5.2` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.15.4` | `7.16.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.1` | `50.0.2` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.3.1` | `13.4.3` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.8.0` | `1.8.3` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.3.1` | `13.4.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.63.0` | `4.66.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.7.0` | `2026.9.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.75.2` | `1.75.5` |\n| griffelib | `2.2.0` | `2.3.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.83.1` | `1.84.0` |\n| [idna](https://github.com/kjd/idna) | `3.19` | `3.20` |\n| [imageio](https://github.com/imageio/imageio) | `2.37.4` | `2.38.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `9.0.0` | `9.0.1` |\n| [joblib](https://github.com/joblib/joblib) | `1.5.3` | `1.6.0` |\n| [joserfc](https://github.com/authlib/joserfc) | `1.7.4` | `1.7.5` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.5.0` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.5` | `0.6` |\n| [librt](https://github.com/mypyc/librt) | `0.15.0` | `0.16.0` |\n| [mmh3](https://github.com/hajimes/mmh3) | `5.3.0` | `5.3.1` |\n| [narwhals](https://github.com/narwhals-dev/narwhals) | `2.25.0` | `2.26.0` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.6.1.10` | `13.8.1.7` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.3.75` | `13.4.92` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.3.33` | `13.4.92` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.3.29` | `13.4.92` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.24.0.43` | `9.27.0.42` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.3.0.29` | `12.4.0.43` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.18.1.6` | `1.19.1.55` |\n| [nvidia-curand](https://developer.nvidia.com/cuda-zone) | `10.4.3.29` | `10.4.4.72` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.2.6.9` | `12.3.4.7` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.8.2.51` | `12.8.6.72` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.9.1` | `0.10.0` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.31.2` | `2.32.3` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.3.33` | `13.4.92` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.7.2` | `3.8.0` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.3.29` | `13.4.92` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.29.0` | `1.30.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.65b0` | `0.66b0` |\n| [pillow-heif](https://github.com/bigcat88/pillow_heif) | `1.5.0` | `1.8.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.11.5` | `4.12.2` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.5.2` | `0.5.4` |\n| [protobuf](https://developers.google.com/protocol-buffers/) | `7.36.0` | `7.36.2` |\n| py-key-value-aio | `0.4.5` | `0.4.6` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.48.0` | `2.49.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.13.0` | `2.15.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.3.2` | `3.3.3` |\n| [pyproject-hooks](https://github.com/pypa/pyproject-hooks) | `1.2.0` | `1.3.3` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.7.19` | `2026.9.29` |\n| [rich-rst](https://github.com/wasi-master/rich-rst) | `2.1.0` | `2.2.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.9.0` | `1.9.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.6.0` | `1.7.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.6.0` | `3.7.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.23.1` | `0.23.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.70.0` | `4.70.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.7.1` | `3.8.0` |\n| [typer](https://github.com/fastapi/typer) | `0.27.1` | `0.27.2` |\n| [tzdata](https://github.com/python/tzdata) | `2026.3` | `2026.4` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.22.1` | `0.23.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.2.0` | `1.3.0` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.9.0` | `1.9.2` |\n| [xyzservices](https://github.com/geopandas/xyzservices) | `2026.3.0` | `2026.9.1` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.24.5` | `1.25.1` |\n\n\nUpdates `pandas` from 3.0.5 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.5...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xarray` from 2026.7.0 to 2026.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydata/xarray/releases\"\u003exarray's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2026.09.0\u003c/h2\u003e\n\u003cp\u003eThis release adds read support for Zarr V3 rectilinear (variable-sized) chunks, Arrow PyCapsule export for :py:class:\u003ccode\u003eDataArray\u003c/code\u003e, a new :py:meth:\u003ccode\u003eDataArray.plot.lines\u003c/code\u003e plotting method, :py:class:\u003ccode\u003eDataTree\u003c/code\u003e support in :py:func:\u003ccode\u003eapply_ufunc\u003c/code\u003e, and flox-accelerated groupby medians. Bottleneck is now disabled by default, the remaining zarr-python 2 compatibility code has been removed, and the minimum \u003ccode\u003eh5netcdf\u003c/code\u003e version is now 1.8. It also includes many bug fixes.\u003c/p\u003e\n\u003cp\u003eThis is the last xarray release that will support Python 3.11. Future releases will require Python 3.12 or later.\u003c/p\u003e\n\u003cp\u003eThanks to the 45 contributors to this release:\nANIRUDDHA ADAK, Ahmet Kamer Çivi, Albert Yau, Andrew Scherer, Anirban Mandal, Aryan Singh K., Asish Kumar, Chandan P, Charles Turner, Deepak Cherian, Devraj Pal, Dipak Chaudhari, Eltsefon Mark, Evan Lyall, Illviljan, Joe Hamman, Johnson K C, Jules Chéron, Justus Magin, Kropiunig, Marcus Campbell, Mark Harfouche, Matt Van Horn, Matthew Rocklin, Matthias Schabel, Michael Niklas, Nick Hodgskin, Patrick N. Raanes, Peter Hron, Puneet Dixit, QinXi, Samuel Le Meur-Diebolt, Spencer Clark, Stanley C, Stephan Hoyer, Thomas Kluyver, Tom Nicholas, dsk0425-sketch, genrichez, hushen, imam, omsatpute61-afk, stepit, whn and ✨Sarah Z✨\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd empty whats-new section for v2026.07.1 by \u003ca href=\"https://github.com/shoyer\"\u003e\u003ccode\u003e@​shoyer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11446\"\u003epydata/xarray#11446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: remove unused imports in quick overview guide by \u003ca href=\"https://github.com/stefanopitton\"\u003e\u003ccode\u003e@​stefanopitton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11444\"\u003epydata/xarray#11444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix dask rolling bottleneck dtype metadata by \u003ca href=\"https://github.com/mrocklin\"\u003e\u003ccode\u003e@​mrocklin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11449\"\u003epydata/xarray#11449\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMAINT: Add make to Pixi::doc feature by \u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11457\"\u003epydata/xarray#11457\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable bottleneck by default by \u003ca href=\"https://github.com/takluyver\"\u003e\u003ccode\u003e@​takluyver\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11461\"\u003epydata/xarray#11461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix polyval returning a sentinel value for NaT in timedelta coordinates by \u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11478\"\u003epydata/xarray#11478\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMaintenance: Support zarr\u0026gt;=3.0 by \u003ca href=\"https://github.com/jhamman\"\u003e\u003ccode\u003e@​jhamman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11232\"\u003epydata/xarray#11232\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix stacking dimensions with falsy names by \u003ca href=\"https://github.com/JOhnsonKC201\"\u003e\u003ccode\u003e@​JOhnsonKC201\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11477\"\u003epydata/xarray#11477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from nbsphinx/jupyter-sphinx to myst_nb by \u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11456\"\u003epydata/xarray#11456\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHarmonize encoding from h5netcdf with netcdf4 by \u003ca href=\"https://github.com/hmaarrfk\"\u003e\u003ccode\u003e@​hmaarrfk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11067\"\u003epydata/xarray#11067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC explain how open_dataset handles grouped files by \u003ca href=\"https://github.com/Whning0513\"\u003e\u003ccode\u003e@​Whning0513\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11497\"\u003epydata/xarray#11497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: document stable sortby ordering by \u003ca href=\"https://github.com/Whning0513\"\u003e\u003ccode\u003e@​Whning0513\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11491\"\u003epydata/xarray#11491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: describe custom index inline representations by \u003ca href=\"https://github.com/Whning0513\"\u003e\u003ccode\u003e@​Whning0513\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11493\"\u003epydata/xarray#11493\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOCS: Update contrib instructions for Myst-nb by \u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11487\"\u003epydata/xarray#11487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRerun \u003ccode\u003egenerate_aggregations.py\u003c/code\u003e by \u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11489\"\u003epydata/xarray#11489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump scientific-python/issue-from-pytest-log-action by \u003ca href=\"https://github.com/keewis\"\u003e\u003ccode\u003e@​keewis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11498\"\u003epydata/xarray#11498\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egenerate-aggregations\u003c/code\u003e Pixi task and CI workflow by \u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11495\"\u003epydata/xarray#11495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump \u003ccode\u003eissue-from-pytest-log-action\u003c/code\u003e to v1.6.2 by \u003ca href=\"https://github.com/keewis\"\u003e\u003ccode\u003e@​keewis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11500\"\u003epydata/xarray#11500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove aggregation docstrings to improve searchability by \u003ca href=\"https://github.com/SomeCoder23\"\u003e\u003ccode\u003e@​SomeCoder23\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11471\"\u003epydata/xarray#11471\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emove the nightly env into its own file by \u003ca href=\"https://github.com/keewis\"\u003e\u003ccode\u003e@​keewis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11481\"\u003epydata/xarray#11481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eenable interactive exploration of examples using \u003ccode\u003ejupyterlite-sphinx\u003c/code\u003e by \u003ca href=\"https://github.com/keewis\"\u003e\u003ccode\u003e@​keewis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/10299\"\u003epydata/xarray#10299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUG: Fix coordinate transform shape after transpose by \u003ca href=\"https://github.com/sdiebolt\"\u003e\u003ccode\u003e@​sdiebolt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11513\"\u003epydata/xarray#11513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003eBooleanCoder\u003c/code\u003e from \u003ccode\u003ezarr\u003c/code\u003e writes by \u003ca href=\"https://github.com/elyall\"\u003e\u003ccode\u003e@​elyall\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11318\"\u003epydata/xarray#11318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse flox for median in groupby/resample operations by \u003ca href=\"https://github.com/sdiebolt\"\u003e\u003ccode\u003e@​sdiebolt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11239\"\u003epydata/xarray#11239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: run slow Hypothesis job on schedule and dispatch by \u003ca href=\"https://github.com/aryansk\"\u003e\u003ccode\u003e@​aryansk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11520\"\u003epydata/xarray#11520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: dask divide by zero error when empty dimensions are passed into partial autochunk spec by \u003ca href=\"https://github.com/charles-turner-1\"\u003e\u003ccode\u003e@​charles-turner-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11486\"\u003epydata/xarray#11486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise a TypeError when a Coordinates object is used as a coordinate value by \u003ca href=\"https://github.com/NoiceHax\"\u003e\u003ccode\u003e@​NoiceHax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11523\"\u003epydata/xarray#11523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid densifying sparse.COO data in to_series()/to_dataframe() by \u003ca href=\"https://github.com/patnr\"\u003e\u003ccode\u003e@​patnr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11528\"\u003epydata/xarray#11528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI: mypy errors and doctest warning by \u003ca href=\"https://github.com/dcherian\"\u003e\u003ccode\u003e@​dcherian\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11535\"\u003epydata/xarray#11535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix alignment and copy of transposed CoordinateTransformIndex-backed arrays by \u003ca href=\"https://github.com/sdiebolt\"\u003e\u003ccode\u003e@​sdiebolt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11532\"\u003epydata/xarray#11532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bool test arrays in construct_dataarray being all False by \u003ca href=\"https://github.com/marcus-campbell\"\u003e\u003ccode\u003e@​marcus-campbell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11529\"\u003epydata/xarray#11529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003cstrong\u003earrow_c_stream\u003c/strong\u003e function by \u003ca href=\"https://github.com/jules-ch\"\u003e\u003ccode\u003e@​jules-ch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11338\"\u003epydata/xarray#11338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix scalar selection for nested tuple MultiIndex keys by \u003ca href=\"https://github.com/puneetdixit200\"\u003e\u003ccode\u003e@​puneetdixit200\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11348\"\u003epydata/xarray#11348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix LaTeX labels broken by textwrap in plot utils (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11452\"\u003e#11452\u003c/a\u003e) by \u003ca href=\"https://github.com/genrichez\"\u003e\u003ccode\u003e@​genrichez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11476\"\u003epydata/xarray#11476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't warn about a missing _FillValue for CF coordinate variables by \u003ca href=\"https://github.com/NoiceHax\"\u003e\u003ccode\u003e@​NoiceHax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11524\"\u003epydata/xarray#11524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11518: Fix keepdims in \u003ccode\u003eDatasetGroupBy.xyz\u003c/code\u003e and \u003ccode\u003eDatasetRolling.xyz\u003c/code\u003e by \u003ca href=\"https://github.com/charles-turner-1\"\u003e\u003ccode\u003e@​charles-turner-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11521\"\u003epydata/xarray#11521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMAINT: Update pixi-lock action by \u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11546\"\u003epydata/xarray#11546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt to upstream change in resampling with a \u003ccode\u003eDay\u003c/code\u003e frequency by \u003ca href=\"https://github.com/spencerkclark\"\u003e\u003ccode\u003e@​spencerkclark\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11547\"\u003epydata/xarray#11547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire h5netcdf for running \u003ccode\u003eTestNetCDF4ClassicViaH5NetCDFData\u003c/code\u003e tests by \u003ca href=\"https://github.com/spencerkclark\"\u003e\u003ccode\u003e@​spencerkclark\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11550\"\u003epydata/xarray#11550\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt to change in behavior of \u003ccode\u003epd.DateOffset\u003c/code\u003e in \u003ccode\u003eisinstance\u003c/code\u003e by \u003ca href=\"https://github.com/spencerkclark\"\u003e\u003ccode\u003e@​spencerkclark\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11548\"\u003epydata/xarray#11548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix typo/grammar in \u003ccode\u003eDataset._rename()\u003c/code\u003e docstring by \u003ca href=\"https://github.com/charles-turner-1\"\u003e\u003ccode\u003e@​charles-turner-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11557\"\u003epydata/xarray#11557\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/2f3339b20e6ea0e856a0b89a2c75b00ad275f080\"\u003e\u003ccode\u003e2f3339b\u003c/code\u003e\u003c/a\u003e Update whats-new for v2026.09.0 release (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11641\"\u003e#11641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/f515b4d12d2ca019feff3ec772300ce33fbfad54\"\u003e\u003ccode\u003ef515b4d\u003c/code\u003e\u003c/a\u003e Add LineCollection plot (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/7173\"\u003e#7173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/7b03d827dfd957702f57bcb98021e23ef504efce\"\u003e\u003ccode\u003e7b03d82\u003c/code\u003e\u003c/a\u003e Update release command in HOW_TO_RELEASE.md (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11640\"\u003e#11640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/e75bcf95b88a945bbff34cb6d1a33d10727c3560\"\u003e\u003ccode\u003ee75bcf9\u003c/code\u003e\u003c/a\u003e Read-only support for Zarr V3 rectilinear (variable-size) chunks (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11592\"\u003e#11592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/c1253559d13de7fd3f0be718b25e7acd3b5ef618\"\u003e\u003ccode\u003ec125355\u003c/code\u003e\u003c/a\u003e Add whats-new entry for scipy backend axis-reorder fix (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11639\"\u003e#11639\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/a1ded92bba2604e8f2678dc5ed792c0043076270\"\u003e\u003ccode\u003ea1ded92\u003c/code\u003e\u003c/a\u003e fix: preserve stringdtype in zarr v3 round trips (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11474\"\u003e#11474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/5bf7aa271cc4660aa5768af9d2178042cfc03cd4\"\u003e\u003ccode\u003e5bf7aa2\u003c/code\u003e\u003c/a\u003e Fix axis reordering bug in scipy backend outer indexing (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11638\"\u003e#11638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/ede38e513f648eaf38fc5acf5ad03fba05c35d8d\"\u003e\u003ccode\u003eede38e5\u003c/code\u003e\u003c/a\u003e Warn when explicit dims rename tuple-style DataArray coords (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11292\"\u003e#11292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/154bdf69f33edc99929f8c6987fc566587a3a109\"\u003e\u003ccode\u003e154bdf6\u003c/code\u003e\u003c/a\u003e Fix str.replace(..., n=0) replacing every occurrence instead of none (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11545\"\u003e#11545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/1161f7b42507b54f01660f850fdf4922676b018a\"\u003e\u003ccode\u003e1161f7b\u003c/code\u003e\u003c/a\u003e Document how to find unlimited_dims via encoding (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11618\"\u003e#11618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydata/xarray/compare/v2026.07.0...v2026.09.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.11.1 to 3.11.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREL: v3.11.2\u003c/h2\u003e\n\u003cp\u003eThis is the second bugfix release of the 3.11.x series.\u003c/p\u003e\n\u003cp\u003eThis release contains several bug-fixes and adjustments:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up RGBA-stage image resampling\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ehexbin\u003c/code\u003e clipping in PDF output\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e\\text\u003c/code\u003e with internal braces\u003c/li\u003e\n\u003cli\u003eFix some crashes and make some checks more robust to unlikely cases\u003c/li\u003e\n\u003cli\u003eFix frame skew when saving GIF animations with \u003ccode\u003ePillowWriter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix HiDPI handling in Qt toolbar and WebAgg embeddings\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eResizeEvent\u003c/code\u003e handling for \u003ccode\u003eTextBox\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix bug with PGF hatch linewidth and color\u003c/li\u003e\n\u003cli\u003eFix a bug with drawing an empty Collection\u003c/li\u003e\n\u003cli\u003eFix incorrect glyphs in Cairo backends\u003c/li\u003e\n\u003cli\u003eImprove build system to prevent conflicts between wheels and system libraries\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d3ca9172e392048ec242b90e8423e88d1a3000b2\"\u003e\u003ccode\u003ed3ca917\u003c/code\u003e\u003c/a\u003e REL: v3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/b76fea990aa10afdba9225ee0f058d942cfcb770\"\u003e\u003ccode\u003eb76fea9\u003c/code\u003e\u003c/a\u003e DOC: Set current version to 3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/39c7f0678af763abe850b41a71cd2724e326157c\"\u003e\u003ccode\u003e39c7f06\u003c/code\u003e\u003c/a\u003e DOC: Prepare GitHub stats for 3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5dd13e39ceadb89af6e17c64cb0c71a2c3ddc94e\"\u003e\u003ccode\u003e5dd13e3\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.11.1-doc' into release-3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/aa484be97e65ffa1c7e2770864dc44a219625180\"\u003e\u003ccode\u003eaa484be\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.11.0-doc' into v3.11.1-doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/0e10f83000d7993160feb264f84150b5a4cacfff\"\u003e\u003ccode\u003e0e10f83\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32330\"\u003e#32330\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-32324-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/ebe947bd694df95e189fb93b63060051a6b55f3d\"\u003e\u003ccode\u003eebe947b\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32324\"\u003e#32324\u003c/a\u003e: Don't force any diagnostics to be errors in bundled Harfbuzz\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/8f4b7c53b228dceded120488f569ff936d91844c\"\u003e\u003ccode\u003e8f4b7c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32322\"\u003e#32322\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-32321-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/93278ade075ca4b6483afac10f9a2d1e775a5f36\"\u003e\u003ccode\u003e93278ad\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32321\"\u003e#32321\u003c/a\u003e: DOC: correct note about PyOS_InputHook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/b0aee786396e59de7ea5a1cec646cbc889250b57\"\u003e\u003ccode\u003eb0aee78\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32319\"\u003e#32319\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-32305-on-v...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.11.1...v3.11.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.16.1 to 5.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 5.18.0\u003c/h2\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eNemotron 3 Diarization\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eNemotron 3 Diarization is an open-weight streaming speaker diarization model designed to determine \u0026quot;who spoke when\u0026quot; in real-world audio. It supports both streaming and offline inference, handles up to eight speakers, and orders speaker outputs by each speaker's first arrival in the input audio.\u003c/p\u003e\n\u003cp\u003eThe model uses the Arrival-Order Speaker Cache (AOSC) \u003ca href=\"https://huggingface.co/papers/2507.18446\"\u003e1\u003c/a\u003e and FIFO queue introduced for Streaming Sortformer \u003ca href=\"https://huggingface.co/papers/2507.18446\"\u003e1\u003c/a\u003e, \u003ca href=\"https://huggingface.co/papers/2409.06656\"\u003e2\u003c/a\u003e. A single checkpoint supports configurable latency profiles, from an 80 ms input buffer to a 30.4 s offline-style buffer, and configurable output frame resolution in multiples of 10 ms. With chunked inference, the maximum audio duration is not limited.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/nemotron3_diarization\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Nemotron3Diarization (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/49056\"\u003e#49056\u003c/a\u003e) by \u003ca href=\"https://github.com/eustlb\"\u003e\u003ccode\u003e@​eustlb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/49056\"\u003e#49056\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNemotronH Omni\u003c/h3\u003e\n\u003cp\u003eNemotronH Omni is a multimodal reasoning model from NVIDIA that pairs the \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/nemotron_h\"\u003eNemotronH\u003c/a\u003e hybrid\nMamba-Transformer language model with a \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/radio\"\u003eRADIO\u003c/a\u003e vision encoder and an optional Parakeet-based sound encoder.\nImage (and video) patches are projected through a RADIO tower and a pixel-shuffle MLP into the language model's\nembedding space at the \u003ccode\u003e\u0026lt;image\u0026gt;\u003c/code\u003e / \u003ccode\u003e\u0026lt;video\u0026gt;\u003c/code\u003e context-token positions; audio clips are projected in the same way at\n\u003ccode\u003e\u0026lt;audio\u0026gt;\u003c/code\u003e positions. The result is a single autoregressive model that reasons jointly over text, images, video and\nsound.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/nemotron_h_omni\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Nemotron Omni (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46509\"\u003e#46509\u003c/a\u003e) by \u003ca href=\"https://github.com/meatybobby\"\u003e\u003ccode\u003e@​meatybobby\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46509\"\u003e#46509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHyperCLOVAX Vision V2\u003c/h3\u003e\n\u003cp\u003eHyperCLOVAX Vision V2 is a multimodal vision-language model developed by NAVER. It combines the \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/hyperclovax\"\u003eHyperClovaX\u003c/a\u003e language model backbone with a \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen2_5_vl\"\u003eQwen2.5-VL\u003c/a\u003e vision encoder. The model supports text, image, and video inputs and is capable of chain-of-thought reasoning via built-in thinking tokens (\u003ccode\u003e\u0026lt;think\u0026gt;...\u0026lt;/think\u0026gt;\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/hyperclovax_vision_v2\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eadd HyperClovaX Vision (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44314\"\u003e#44314\u003c/a\u003e) by \u003ca href=\"https://github.com/jp1924\"\u003e\u003ccode\u003e@​jp1924\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/44314\"\u003e#44314\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGTE\u003c/h3\u003e\n\u003cp\u003eGTE was proposed in \u003ca href=\"https://huggingface.co/papers/2407.19669\"\u003emGTE: Generalized Long-Context Text Representation and Reranking Models for Multilingual Text Retrieval\u003c/a\u003e by Xin Zhang, Yanzhao Zhang, Dingkun Long, Wen Xie, Ziqi Dai, Jialong Tang, Huan Lin, Baosong Yang, Pengjun Xie, Fei Huang, Meishan Zhang, Wenjie Li and Min Zhang.\u003c/p\u003e\n\u003cp\u003eGTE is a BERT-style bidirectional encoder that replaces absolute position embeddings with RoPE, uses a gated MLP, and applies layer normalization after each residual connection. The same architecture backs Alibaba's \u003ccode\u003egte-*-v1.5\u003c/code\u003e, \u003ccode\u003egte-multilingual-*\u003c/code\u003e and \u003ccode\u003egte-en-mlm-*\u003c/code\u003e checkpoints as well as Snowflake's \u003ccode\u003esnowflake-arctic-embed-m-v2.0\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/gte\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emodel: Add GTE to Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48416\"\u003e#48416\u003c/a\u003e) by \u003ca href=\"https://github.com/harshaljanjani\"\u003e\u003ccode\u003e@​harshaljanjani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48416\"\u003e#48416\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🚨 [ROCm] gpt-oss: route FA3 to aiter-flash-attn, generate ROCm fixtures (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46837\"\u003e#46837\u003c/a\u003e) by \u003ca href=\"https://github.com/Abdennacer-Badaoui\"\u003e\u003ccode\u003e@​Abdennacer-Badaoui\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🚨 Speed up detr image processing (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48066\"\u003e#48066\u003c/a\u003e) by \u003ca href=\"https://github.com/guarin\"\u003e\u003ccode\u003e@​guarin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🚨 Remap indexers layer_type (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48974\"\u003e#48974\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🚨 [vLLM] Fix video token counting for Transformers backend video inputs (Part 1) (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48894\"\u003e#48894\u003c/a\u003e) by \u003ca href=\"https://github.com/harshaljanjani\"\u003e\u003ccode\u003e@​harshaljanjani\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/a906d3c4b65095f2308b6a6a193e934d03b8eb5d\"\u003e\u003ccode\u003ea906d3c\u003c/code\u003e\u003c/a\u003e v5.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/57296d1c69d793f7efcaee7b9bd12f401c0f3a38\"\u003e\u003ccode\u003e57296d1\u003c/code\u003e\u003c/a\u003e model: Add GTE to Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48416\"\u003e#48416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/88536f2af2a14f2f9a4f50336fd17dfbe987bbdb\"\u003e\u003ccode\u003e88536f2\u003c/code\u003e\u003c/a\u003e [Nemotron3Diarization] fix streaming last stft frame dropped (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/49167\"\u003e#49167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5cd287772edf72ff340d833cb198c054bc0549f6\"\u003e\u003ccode\u003e5cd2877\u003c/code\u003e\u003c/a\u003e Fix missing router_logits in Qwen3.5-MoE and other MoE models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/49179\"\u003e#49179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4fcb1ff51f5fff1fc4b82a21d42b5cdfb4d937af\"\u003e\u003ccode\u003e4fcb1ff\u003c/code\u003e\u003c/a\u003e Fix MiniMax M3 partial 3D vision rotary embeddings (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/49164\"\u003e#49164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/8520b1566152f1b252357354aa7eec57b955949d\"\u003e\u003ccode\u003e8520b15\u003c/code\u003e\u003c/a\u003e Add Strix Halo (gfx1151) Atlas Inference Hub-kernel path for Qwen3.5/3.6/3.8 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/a877116cf32c25989f0aba0eaee4f0dc00e96948\"\u003e\u003ccode\u003ea877116\u003c/code\u003e\u003c/a\u003e Fix MPS GQA version gating (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/49210\"\u003e#49210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/e0299e2a026db0c6bcc9851294f0468bd07020b2\"\u003e\u003ccode\u003ee0299e2\u003c/code\u003e\u003c/a\u003e Fix additional_special_tokens data loss with extra_special_tokens (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47848\"\u003e#47848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5aab6428edbbf4af3827b329389e4d5fa8536abb\"\u003e\u003ccode\u003e5aab642\u003c/code\u003e\u003c/a\u003e Fix stale _added_tokens_encoder entries in cpmant and wav2vec2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47440\"\u003e#47440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0c18a638046679d8fcccb4cb067b6bcfac0426a8\"\u003e\u003ccode\u003e0c18a63\u003c/code\u003e\u003c/a\u003e Fix deepstack features for mixed-input (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/49177\"\u003e#49177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.1...v5.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `torch` from 2.13.0 to 2.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/pytorch/releases\"\u003etorch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyTorch 2.14.1 Release\u003c/h2\u003e\n\u003cp\u003eThis release is meant to fix the following regressions and silent correctness issues:\u003c/p\u003e\n\u003ch2\u003eSilent correctness fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect \u003ccode\u003etorch.linalg.lstsq\u003c/code\u003e solutions on MPS for complex batched underdetermined systems (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/196113\"\u003e#196113\u003c/a\u003e), fixed by \u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/196128\"\u003e#196128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix non-orthogonal \u003ccode\u003eU\u003c/code\u003e and inaccurate small singular values from \u003ccode\u003etorch.linalg.svd\u003c/code\u003e on MPS for rank-deficient and ill-conditioned inputs (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/196112\"\u003e#196112\u003c/a\u003e), fixed by \u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/196139\"\u003e#196139\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/199063\"\u003e#199063\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate the CUDA 13.2 Linux binaries to CUDA 13.2.2 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/196351\"\u003e#196351\u003c/a\u003e). This NVIDIA update resolves two critical issues that could produce incorrect results (\u003ca href=\"https://docs.nvidia.com/cuda/archive/13.2.2/cuda-toolkit-release-notes/index.html#overview\"\u003eCUDA 13.2.2 release notes\u003c/a\u003e):\n\u003cul\u003e\n\u003cli\u003ecuBLAS: \u003ccode\u003ecublasLtMatmul()\u003c/code\u003e could ignore tensor-wide scaling for NVFP4 matrix multiplications (introduced in CUDA 13.2 Update 1)\u003c/li\u003e\n\u003cli\u003eCompiler: failed thread reconvergence could leave stale or corrupted register values in kernels with nested thread divergence (present since CUDA 12.8)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRegression fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003etorch.linalg.svd\u003c/code\u003e, \u003ccode\u003etorch.linalg.svdvals\u003c/code\u003e and \u003ccode\u003etorch.linalg.lstsq\u003c/code\u003e failing on MPS with a Metal pipeline-state error for inputs above 8192 elements (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/195937\"\u003e#195937\u003c/a\u003e), fixed by \u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/195949\"\u003e#195949\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/195950\"\u003e#195950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix internal assert in \u003ccode\u003etorch.svd(out=)\u003c/code\u003e on MPS for complex inputs (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/195822\"\u003e#195822\u003c/a\u003e), fixed by \u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/195872\"\u003e#195872\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePyTorch 2.14.0 Release Notes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#highlights\"\u003eHighlights\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes\"\u003eBackwards Incompatible Changes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#deprecations\"\u003eDeprecations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#new-features\"\u003eNew Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#improvements\"\u003eImprovements\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes\"\u003eBug fixes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#performance\"\u003ePerformance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#developers\"\u003eDevelopers\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHighlights\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eFor more details about these highlighted features, you can look at the release blogpost. Below are the full release notes for this release.\u003c/p\u003e\n\u003ch1\u003eBackwards Incompatible Changes\u003c/h1\u003e\n\u003ch2\u003etorch.nn\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003etorch.nn.LinearCrossEntropyOptions\u003c/code\u003e no longer accepts \u003ccode\u003eacc_policy=\u0026quot;balanced\u0026quot;\u003c/code\u003e; use \u003ccode\u003e\u0026quot;compact\u0026quot;\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/188283\"\u003e#188283\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003e\u0026quot;balanced\u0026quot;\u003c/code\u003e policy was removed because \u003ccode\u003e\u0026quot;compact\u0026quot;\u003c/code\u003e provides the same weight-gradient accumulation precision with lower memory use on CUDA, already uses the equivalent scratch layout for mixed-precision inputs on other devices, and was never selected by \u003ccode\u003e\u0026quot;auto\u0026quot;\u003c/code\u003e. Constructing the options with \u003ccode\u003eacc_policy=\u0026quot;balanced\u0026quot;\u003c/code\u003e now raises \u003ccode\u003eValueError: invalid acc_policy: 'balanced'; expected one of 'auto', 'accurate', 'compact'\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/5c4886908584029761b579af026dcfb627c84070\"\u003e\u003ccode\u003e5c48869\u003c/code\u003e\u003c/a\u003e [MPS] Fix Jacobi SVD convergence for small columns (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/199086\"\u003e#199086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/35223a275e49a6154269e19ac34b7fdd9709d031\"\u003e\u003ccode\u003e35223a2\u003c/code\u003e\u003c/a\u003e [release/2.14] Run the release runner-group reconcile in pytorch/pytorch (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/19\"\u003e#19\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/41ffbc4a994e058af9fe00ed5caba73fc1033359\"\u003e\u003ccode\u003e41ffbc4\u003c/code\u003e\u003c/a\u003e [release-only] Update version to 2.14.1 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/198661\"\u003e#198661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/e8f0c016eefa7870720d625f4e71bb6265d6c5c0\"\u003e\u003ccode\u003ee8f0c01\u003c/code\u003e\u003c/a\u003e [release/2.14] [CD] Update to CUDA 13.2.2 for Linux binaries (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/198644\"\u003e#198644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/911665dcb02655bac5948e5ced8d8232372d9941\"\u003e\u003ccode\u003e911665d\u003c/code\u003e\u003c/a\u003e [MPS] Cherry-pick native SVD fixes into release/2.14 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/198394\"\u003e#198394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/2b3ec34829036a65cd9d1398ea72a0167dc37470\"\u003e\u003ccode\u003e2b3ec34\u003c/code\u003e\u003c/a\u003e [release/2.14] Import SDPAParams in test_transformers to fix lint (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194970\"\u003e#194970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/08187d9e0fba026dc8217405802ab5381dc88d90\"\u003e\u003ccode\u003e08187d9\u003c/code\u003e\u003c/a\u003e [cuDNN] Add guards for cuDNN SDPA decode (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194963\"\u003e#194963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/8ceea97051dec8f6bee23d24bd7704dcb6843ade\"\u003e\u003ccode\u003e8ceea97\u003c/code\u003e\u003c/a\u003e Pin cython \u0026lt; 3.3.0 for the Windows Triton wheel build (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194931\"\u003e#194931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/99ecebc63014f3454331b5a0914871daa063b512\"\u003e\u003ccode\u003e99ecebc\u003c/code\u003e\u003c/a\u003e [Cherry-pick][release/2.14] [inductor] Fix loop-local load CSE lifetime (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194\"\u003e#194\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/ec283a75077fa3ee24a9cda2c58d2b24d95ca98c\"\u003e\u003ccode\u003eec283a7\u003c/code\u003e\u003c/a\u003e Bump the Python 3.15 numpy pin to 2.5.2 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194821\"\u003e#194821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/pytorch/compare/v2.13.0...v2.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `accelerate` from 1.14.0 to 1.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/accelerate/releases\"\u003eaccelerate's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev1.15.0: FSDP2 activation memory, dtensor improvements\u003c/h1\u003e\n\u003ch2\u003eFSDP2\u003c/h2\u003e\n\u003cp\u003eA large batch of FSDP2 work this release: two fixes that cut activation memory at long sequence lengths, tied-embedding support on torch \u0026gt;= 2.13, and a round of checkpointing correctness and scale fixes.\u003c/p\u003e\n\u003cp\u003eActivation checkpointing was wrapping each \u003cem\u003echild\u003c/em\u003e of the matched layer (\u003ccode\u003eself_attn\u003c/code\u003e, \u003ccode\u003emlp\u003c/code\u003e, the norms) instead of the layer itself, so every inter-child activation stayed saved for backward. It now wraps the layer.\u003c/p\u003e\n\u003cp\u003eThere's also a new FSDP2-only \u003ccode\u003eactivation_checkpointing_offload\u003c/code\u003e, which moves the remaining per-layer checkpoint inputs to pinned CPU memory. Gradients are exactly those of plain activation checkpointing:\u003c/p\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003e# fsdp2.yaml\r\nfsdp_config:\r\n  fsdp_version: 2\r\n  fsdp_auto_wrap_policy: TRANSFORMER_BASED_WRAP\r\n  fsdp_activation_checkpointing: true\r\n  fsdp_activation_checkpointing_offload: true\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eaccelerate launch --config_file fsdp2.yaml train.py\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eFSDP2 activation checkpointing: wrap the matched transformer layer itself, not each of its children by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4172\"\u003e#4172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd FSDP2 \u003ccode\u003eactivation_checkpointing_offload\u003c/code\u003e: offload checkpointed layer inputs to pinned CPU memory by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4175\"\u003e#4175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix FSDP2 tied-embedding models on torch \u0026gt;= 2.13: put the output embedding in the same fully_shard group by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4171\"\u003e#4171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix FSDP2/PEFT/\u003ccode\u003eFULL_STATE_DICT\u003c/code\u003e dropping every rank's adapter shard except rank 0 by \u003ca href=\"https://github.com/AmineDiro\"\u003e\u003ccode\u003e@​AmineDiro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4206\"\u003e#4206\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFSDP2: per-rank torch.save/load for SHARDED_STATE_DICT to fix 2800+ NPU checkpoint timeout by \u003ca href=\"https://github.com/gygdh-001\"\u003e\u003ccode\u003e@​gygdh-001\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4105\"\u003e#4105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix FSDP sharded checkpoint path resolution by \u003ca href=\"https://github.com/HaomingSong\"\u003e\u003ccode\u003e@​HaomingSong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4119\"\u003e#4119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise a clear error when FSDP is enabled on a mesh with no shard dimension by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4180\"\u003e#4180\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDTensor\u003c/h2\u003e\n\u003cp\u003eTwo fixes for DTensor-sharded models, which you hit with FSDP2, tensor parallelism, or any N-D parallelism setup: gradient clipping no longer fails on the \u003ccode\u003eforeach\u003c/code\u003e op when plain tensors and DTensors are mixed, and \u003ccode\u003eprepare_model\u003c/code\u003e leaves an already-sharded model where it is:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eClip grad norm support for dtensors by \u003ca href=\"https://github.com/michaelbenayoun\"\u003e\u003ccode\u003e@​michaelbenayoun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4219\"\u003e#4219\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eprepare_model: don't move DTensor-sharded models to the device by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4181\"\u003e#4181\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOffloading \u0026amp; Quantization\u003c/h2\u003e\n\u003cp\u003eAn entire model can now be dispatched to disk, including tied weights — useful for tools like \u003ccode\u003ellm-compressor\u003c/code\u003e that compress large models on machines that can't hold them:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Offloading] Support full disk offloading by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4083\"\u003e#4083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix disk offload crash on FP8 tensors by \u003ca href=\"https://github.com/shoemoney\"\u003e\u003ccode\u003e@​shoemoney\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4151\"\u003e#4151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTrackers\u003c/h2\u003e\n\u003cp\u003eCustom trackers can be registered by name and then selected from \u003ccode\u003elog_with=\u003c/code\u003e like any built-in one:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom accelerate import Accelerator\r\nfrom accelerate.tracking import register_tracker_class\r\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/6afc1e5ee217051fde702b23de2813344dc0fd33\"\u003e\u003ccode\u003e6afc1e5\u003c/code\u003e\u003c/a\u003e Release: v1.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/636a9343b4265db1212b04c778b8910b5cbfa713\"\u003e\u003ccode\u003e636a934\u003c/code\u003e\u003c/a\u003e Fix nightly CI: tensor parallel size detection and DeepSpeed warmup steps (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/385d9fb40bdb92b0cb34775ad0ef493c171e559f\"\u003e\u003ccode\u003e385d9fb\u003c/code\u003e\u003c/a\u003e docs: fix three dead links left by the docs restructure (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4230\"\u003e#4230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/c424d0b82d4ed61672bf30f1a81ce80370fd945a\"\u003e\u003ccode\u003ec424d0b\u003c/code\u003e\u003c/a\u003e docs: fix garbled sentence in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4231\"\u003e#4231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/0f7e35fe7902cc6ba8dc01b146d6447900464b88\"\u003e\u003ccode\u003e0f7e35f\u003c/code\u003e\u003c/a\u003e Clip grad norm support for dtensors (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4219\"\u003e#4219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/b2ac5095f04585043e21d295afe3aaaacdcc8357\"\u003e\u003ccode\u003eb2ac509\u003c/code\u003e\u003c/a\u003e Fix FSDP2/ PEFT/\u003ccode\u003eFULL_STATE_DICT\u003c/code\u003e dropping every rank's adapter shard except ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/33e8bc499254e7f3886db3f8a277d05a4ad2667e\"\u003e\u003ccode\u003e33e8bc4\u003c/code\u003e\u003c/a\u003e Fix load_accelerator_state only restoring one RNG backend (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4217\"\u003e#4217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/50de3ad45f4da279819529e443ba746eb5b3b187\"\u003e\u003ccode\u003e50de3ad\u003c/code\u003e\u003c/a\u003e Treat MPS out-of-memory errors as OOM in find_executable_batch_size (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4227\"\u003e#4227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/ab5fe8e507366f814fee59138eb96b9879cb05d6\"\u003e\u003ccode\u003eab5fe8e\u003c/code\u003e\u003c/a\u003e feat: add the neuron device branch in state (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4218\"\u003e#4218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/9baf95be958c3fd8b2449d1463e6a89e14f61e7d\"\u003e\u003ccode\u003e9baf95b\u003c/code\u003e\u003c/a\u003e Fix MLFLOW_NESTED_RUN never being able to turn nesting off (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4223\"\u003e#4223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/accelerate/compare/v1.14.0...v1.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.3 to 1.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edotenv get\u003c/code\u003e no longer exits with code 1 for empty string values (\u003ccode\u003eKEY=\u003c/code\u003e) by [\u003ca href=\"https://github.com/ShamikOfficial\"\u003e\u003ccode\u003e@​ShamikOfficial\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn unquoted empty value followed by an inline comment (e.g. \u003ccode\u003eKEY= # comment\u003c/code\u003e) is now parsed as an empty string instead of the comment text by [\u003ca href=\"https://github.com/Noethix55555\"\u003e\u003ccode\u003e@​Noethix55555\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run --no-override\u003c/code\u003e now expands variable references with the same precedence as \u003ccode\u003eload_dotenv(override=False)\u003c/code\u003e, so a value like \u003ccode\u003e${BASE}/suffix\u003c/code\u003e uses the existing \u003ccode\u003eBASE\u003c/code\u003e from the environment instead of the one from the \u003ccode\u003e.env\u003c/code\u003e file by [\u003ca href=\"https://github.com/ROTl24\"\u003e\u003ccode\u003e@​ROTl24\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.4] - 2026-10-01\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edotenv get\u003c/code\u003e no longer exits with code 1 for empty string values (\u003ccode\u003eKEY=\u003c/code\u003e) by [\u003ca href=\"https://github.com/ShamikOfficial\"\u003e\u003ccode\u003e@​ShamikOfficial\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn unquoted empty value followed by an inline comment (e.g. \u003ccode\u003eKEY= # comment\u003c/code\u003e) is now parsed as an empty string instead of the comment text by [\u003ca href=\"https://github.com/Noethix55555\"\u003e\u003ccode\u003e@​Noethix55555\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run --no-override\u003c/code\u003e now expands variable references with the same precedence as \u003ccode\u003eload_dotenv(override=False)\u003c/code\u003e, so a value like \u003ccode\u003e${BASE}/suffix\u003c/code\u003e uses the existing \u003ccode\u003eBASE\u003c/code\u003e from the environment instead of the one from the \u003ccode\u003e.env\u003c/code\u003e file by [\u003ca href=\"https://github.com/ROTl24\"\u003e\u003ccode\u003e@​ROTl24\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/a565c2cc41599c48eabc6b7b7f5b826d43c5a6d7\"\u003e\u003ccode\u003ea565c2c\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.3 → 1.2.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a7abd00261e51baba958e15f443c66165042ea2\"\u003e\u003ccode\u003e4a7abd0\u003c/code\u003e\u003c/a\u003e docs: add 1.2.4 release notes (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f215c0274dc4c310e5ca5feb4c6bddade25ece21\"\u003e\u003ccode\u003ef215c02\u003c/code\u003e\u003c/a\u003e fix: dotenv get exits 0 for empty string values (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/58f2d7c112235b347040bb5cb579d4ebc0a0ad91\"\u003e\u003ccode\u003e58f2d7c\u003c/code\u003e\u003c/a\u003e test: make test_run_with_command_flags portable and meaningful (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e0310e5bb3f2b701b11bbc007ca0c82c1bd56f38\"\u003e\u003ccode\u003ee0310e5\u003c/code\u003e\u003c/a\u003e fix: honor --no-override when expanding variables in dotenv run (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/a00cb2eed0704cd6d2071b2004c37e95ccc86ee5\"\u003e\u003ccode\u003ea00cb2e\u003c/code\u003e\u003c/a\u003e docs: add CHANGELOG entry for \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e (fix \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/600\"\u003e#600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f5485a61eefa5e686d6d5bdc7aa9ad6b104b1e92\"\u003e\u003ccode\u003ef5485a6\u003c/code\u003e\u003c/a\u003e fix: parse empty unquoted value with inline comment as empty string\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.3...v1.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.141.1 to 0.142.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.142.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Allow startup when automatic OpenTelemetry configuration fails. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16418\"\u003e#16418\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.142.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix repeated endpoint wrapping in included routers. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16414\"\u003e#16414\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.142.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add native OpenTelemetry support. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16403\"\u003e#16403\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📱 Improve mobile responsiveness of conference rail. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16196\"\u003e#16196\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Remove conf section and add event banner. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16193\"\u003e#16193\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove unused image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16195\"\u003e#16195\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Use buttons for Termynal controls. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16132\"\u003e#16132\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for hi (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16212\"\u003e#16212\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16210\"\u003e#16210\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16211\"\u003e#16211\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16208\"\u003e#16208\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16209\"\u003e#16209\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16207\"\u003e#16207\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16206\"\u003e#16206\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16205\"\u003e#16205\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16204\"\u003e#16204\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16203\"\u003e#16203\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16202\"\u003e#16202\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16201\"\u003e#16201\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16171\"\u003e#16171\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix frontend test timeout with Starlette Git. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16408\"\u003e#16408\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Permit.io. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16406\"\u003e#16406\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump anyio from 4.12.1 to 4.14.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16375\"\u003e#16375\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 15 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16285\"\u003e#16285\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 1.3.1 to 1.6.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16289\"\u003e#16289\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump annotated-doc from 0.0.4 to 0.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16288\"\u003e#16288\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typing-inspection from 0.4.2 to 0.4.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16286\"\u003e#16286\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/78c4324f0c56bc5282a459978779a9e532d19709\"\u003e\u003ccode\u003e78c4324\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16419\"\u003e#16419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2579ed0d9e73205326463025cc756650f642f511\"\u003e\u003ccode\u003e2579ed0\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1d4953d2e528b58cfb09bbc28fb25dcda227c6ea\"\u003e\u003ccode\u003e1d4953d\u003c/code\u003e\u003c/a\u003e 🐛 Allow startup when automatic OpenTelemetry configuration fails (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16418\"\u003e#16418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3e33a03bdaa3a89f27d5e0c390c4ba9032f14b5e\"\u003e\u003ccode\u003e3e33a03\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16415\"\u003e#16415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/12ea7f5a5e76c5ba3495c2803f57ed92ac67731b\"\u003e\u003ccode\u003e12ea7f5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ac88f563db5f4d3300d43355eca728c93ed9ffe2\"\u003e\u003ccode\u003eac88f56\u003c/code\u003e\u003c/a\u003e 🐛 Fix repeated endpoint wrapping in included routers (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16414\"\u003e#16414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/bd41128123fd08d693f5541e27c550eebe20f8b0\"\u003e\u003ccode\u003ebd41128\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.0 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16411\"\u003e#16411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7aa21e53c859ce52b17196b35909efca6f2fa11f\"\u003e\u003ccode\u003e7aa21e5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b3949cd9e5932f76217131fceabc74145c3db24\"\u003e\u003ccode\u003e4b3949c\u003c/code\u003e\u003c/a\u003e ✨ Add native OpenTelemetry support (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16403\"\u003e#16403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c30032a1b68fb36c03fffe1856369d3824607c7c\"\u003e\u003ccode\u003ec30032a\u003c/code\u003e\u003c/a\u003e 📝 Update release note...\n\n_Description has been truncated_","html_url":"https://github.com/jotaele44/spiderweb-pr/pull/404","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jotaele44%2Fspiderweb-pr/issues/404","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/404/packages"},{"uuid":"5706365706","node_id":"PR_kwDOUkjINM8AAAABGoiFBg","number":30,"state":"closed","title":"build(deps): Bump the routine group across 1 directory with 52 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-06T05:08:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-05T04:19:00.000Z","updated_at":"2026-10-06T05:08:51.000Z","time_to_close":89389,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"routine","update_count":52,"packages":[{"name":"anyio","old_version":"4.14.2","new_version":"4.15.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"ast-serialize","old_version":"0.8.0","new_version":"0.11.2","repository_url":"https://github.com/mypyc/ast_serialize"},{"name":"boto3","old_version":"1.43.85","new_version":"1.43.107","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.43.85","new_version":"1.43.107","repository_url":"https://github.com/boto/botocore"},{"name":"charset-normalizer","old_version":"3.5.1","new_version":"3.5.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"cryptography","old_version":"50.0.1","new_version":"50.0.2","repository_url":"https://github.com/pyca/cryptography"},{"name":"fastapi","old_version":"0.141.1","new_version":"0.142.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"flake8","old_version":"7.3.0","new_version":"7.4.1","repository_url":"https://github.com/pycqa/flake8"},{"name":"fsspec","old_version":"2026.7.0","new_version":"2026.9.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"google-ai-generativelanguage","old_version":"0.6.15","new_version":"0.12.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-api-core","old_version":"2.33.0","new_version":"2.40.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-api-python-client","old_version":"2.200.0","new_version":"2.201.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.57.0","new_version":"2.59.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth-httplib2","old_version":"0.4.2","new_version":"0.4.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-genai","old_version":"2.22.0","new_version":"2.27.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"googleapis-common-protos","old_version":"1.75.0","new_version":"1.75.5","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.83.1","new_version":"1.84.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.71.2","new_version":"1.84.0"},{"name":"idna","old_version":"3.19","new_version":"3.20","repository_url":"https://github.com/kjd/idna"},{"name":"isort","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/PyCQA/isort"},{"name":"jaraco-context","old_version":"6.1.0","new_version":"6.1.2","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"jiter","old_version":"0.16.0","new_version":"0.17.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"librt","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/mypyc/librt"},{"name":"msgpack","old_version":"1.2.1","new_version":"1.2.3","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"motor","old_version":"3.3.1","new_version":"3.7.1","repository_url":"https://github.com/mongodb/motor"},{"name":"mypy","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/python/mypy"},{"name":"numpy","old_version":"2.4.6","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"platformdirs","old_version":"4.11.6","new_version":"4.12.2","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"propcache","old_version":"0.5.2","new_version":"0.5.4","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.28.2","new_version":"1.29.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycodestyle","old_version":"2.14.0","new_version":"2.15.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pydantic-core","old_version":"2.46.5","new_version":"2.49.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pyjwt","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.18.2","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"pyparsing","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"python-dotenv","old_version":"1.2.3","new_version":"1.2.4","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"regex","old_version":"2026.9.3","new_version":"2026.9.29","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"ruff","old_version":"0.16.8","new_version":"0.16.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"sentry-sdk","old_version":"2.35.0","new_version":"2.71.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"tqdm","old_version":"4.70.0","new_version":"4.70.1","repository_url":"https://github.com/tqdm/tqdm"},{"name":"tzdata","old_version":"2026.3","new_version":"2026.4","repository_url":"https://github.com/python/tzdata"},{"name":"uvicorn","old_version":"0.25.0","new_version":"0.54.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"wheel","old_version":"0.46.2","new_version":"0.48.0","repository_url":"https://github.com/pypa/wheel"},{"name":"yarl","old_version":"1.24.5","new_version":"1.25.1","repository_url":"https://github.com/aio-libs/yarl"},{"name":"sqlalchemy","old_version":"2.0.51","new_version":"2.1.1","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.18.5","new_version":"1.20.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"mako","old_version":"1.3.12","new_version":"1.4.3","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"greenlet","old_version":"3.5.4","new_version":"3.5.6","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"psycopg","old_version":"3.3.2","new_version":"3.3.6","repository_url":"https://github.com/psycopg/psycopg"},{"name":"psycopg-binary","old_version":"3.3.2","new_version":"3.3.6","repository_url":"https://github.com/psycopg/psycopg"}],"path":null,"ecosystem":"pip"},"body":"Bumps the routine group with 52 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.2` | `4.15.1` |\n| [ast-serialize](https://github.com/mypyc/ast_serialize) | `0.8.0` | `0.11.2` |\n| [boto3](https://github.com/boto/boto3) | `1.43.85` | `1.43.107` |\n| [botocore](https://github.com/boto/botocore) | `1.43.85` | `1.43.107` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.5.1` | `3.5.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.1` | `50.0.2` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.141.1` | `0.142.2` |\n| [flake8](https://github.com/pycqa/flake8) | `7.3.0` | `7.4.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.7.0` | `2026.9.0` |\n| [google-ai-generativelanguage](https://github.com/googleapis/google-cloud-python) | `0.6.15` | `0.12.1` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.33.0` | `2.40.0` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.200.0` | `2.201.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.57.0` | `2.59.1` |\n| [google-auth-httplib2](https://github.com/googleapis/google-cloud-python) | `0.4.2` | `0.4.4` |\n| [google-genai](https://github.com/googleapis/python-genai) | `2.22.0` | `2.27.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.75.0` | `1.75.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.83.1` | `1.84.0` |\n| [grpcio-status](https://grpc.io) | `1.71.2` | `1.84.0` |\n| [idna](https://github.com/kjd/idna) | `3.19` | `3.20` |\n| [isort](https://github.com/PyCQA/isort) | `9.0.1` | `9.0.2` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.1.0` | `6.1.2` |\n| [jiter](https://github.com/pydantic/jiter) | `0.16.0` | `0.17.0` |\n| [librt](https://github.com/mypyc/librt) | `0.15.0` | `0.16.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.2.1` | `1.2.3` |\n| [motor](https://github.com/mongodb/motor) | `3.3.1` | `3.7.1` |\n| [mypy](https://github.com/python/mypy) | `2.3.1` | `2.4.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.6` | `2.5.3` |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.5` | `3.0.6` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.11.6` | `4.12.2` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.5.2` | `0.5.4` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.28.2` | `1.29.0` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.14.0` | `2.15.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.5` | `2.49.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.15.0` | `2.15.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.18.2` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.3.2` | `3.3.3` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.3` | `1.2.4` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.9.3` | `2026.9.29` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.8` | `0.16.10` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.35.0` | `2.71.0` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.70.0` | `4.70.1` |\n| [tzdata](https://github.com/python/tzdata) | `2026.3` | `2026.4` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.25.0` | `0.54.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.2.0` | `1.3.0` |\n| [wheel](https://github.com/pypa/wheel) | `0.46.2` | `0.48.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.24.5` | `1.25.1` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.51` | `2.1.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.5` | `1.20.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.12` | `1.4.3` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.5.4` | `3.5.6` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.3.2` | `3.3.6` |\n| [psycopg-binary](https://github.com/psycopg/psycopg) | `3.3.2` | `3.3.6` |\n\n\nUpdates `anyio` from 4.14.2 to 4.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented a compatibility fix for supporting direct access of \u003ccode\u003eanyio.*\u003c/code\u003e submodules from the main package even when those submodules were not directly imported first (\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311\"\u003e#1311\u003c/a\u003e \u0026lt;\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311%5C%3E\"\u003eagronholm/anyio#1311\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for the newer keyword-only arguments on \u003ccode\u003eanyio.Path\u003c/code\u003e methods to match the standard library \u003ccode\u003epathlib.Path\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eexists()\u003c/code\u003e (Python 3.12+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_dir()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_file()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eowner()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003egroup()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enewline\u003c/code\u003e on \u003ccode\u003eread_text()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1286\"\u003e#1286\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1293\"\u003e#1293\u003c/a\u003e; PR by \u003ca href=\"https://github.com/jaideeppyne\"\u003e\u003ccode\u003e@​jaideeppyne\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eamap\u003c/code\u003e, \u003ccode\u003egather\u003c/code\u003e, and \u003ccode\u003eas_completed\u003c/code\u003e utility functions to simplify common patterns (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1173\"\u003e#1173\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003e--anyio-mode\u003c/code\u003e command-line option as an alternative to the \u003ccode\u003eanyio_mode\u003c/code\u003e ini setting, and fix the pytest plugin's auto mode detection to recognize the mode when set via either mechanism(e.g: \u003ccode\u003epytest_asyncio\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1242\"\u003e#1242\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003eanyio.Future\u003c/code\u003e synchronization primitive which behaves similar to \u003ccode\u003easyncio.Future\u003c/code\u003e, allowing tasks to wait for a value (or exception) from another task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1146\"\u003e#1146\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded guidance for managing multiple memory object stream producers and consumers with cloned streams (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/330\"\u003e#330\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nightcityblade\"\u003e\u003ccode\u003e@​nightcityblade\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eStapledObjectStream.send_nowait()\u003c/code\u003e that delegates to the underlying \u003ccode\u003eObjectSendStream\u003c/code\u003e, if it implements it (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1241\"\u003e#1241\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003emove_on_at()\u003c/code\u003e and \u003ccode\u003efail_at()\u003c/code\u003e functions to complement \u003ccode\u003emove_on_after()\u003c/code\u003e and \u003ccode\u003efail_after()\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the default name for a task spawned with \u003ccode\u003eTaskGroup.create_task(func())\u003c/code\u003e to match the default task name for the analogous task spawned with \u003ccode\u003eTaskGroup.start_soon(func)\u003c/code\u003e or \u003ccode\u003eTaskGroup.start(func)\u003c/code\u003e in more situations. Previously, the default name of a \u003ccode\u003eTaskGroup.create_task\u003c/code\u003e task never included the module name. (The default name for a task spawned with \u003ccode\u003eTaskGroup.start_soon\u003c/code\u003e or \u003ccode\u003eTaskGroup.start\u003c/code\u003e typically includes the module name.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1234\"\u003e#1234\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the \u003ccode\u003eanyio\u003c/code\u003e and \u003ccode\u003eanyio.abc\u003c/code\u003e modules to lazily (much like \u003ccode\u003e810\u003c/code\u003e) import the necessary submodules. This is done by parsing the AST of the module and building a lookup table from the \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block. A fallback mode has been provided for installations where the source code is unavailable (e.g. PyInstaller). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1169\"\u003e#1169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed free-threading compatibility issues arising from the fact that on Python 3.14 free-threading builds, newly created threads inherit the current context by default, causing AnyIO to behave erroneously in relation to \u003ccode\u003estart_blocking_portal()\u003c/code\u003e and \u003ccode\u003eanyio.to_thread.run_sync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1224\"\u003e#1224\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eSpooledTemporaryFile.readinto()\u003c/code\u003e and \u003ccode\u003ereadinto1()\u003c/code\u003e reading twice before rollover, so the destination buffer was overwritten by the second read and the file position advanced twice, silently losing data (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1215\"\u003e#1215\u003c/a\u003e; PR by \u003ca href=\"https://github.com/c-tonneslan\"\u003e\u003ccode\u003e@​c-tonneslan\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003efail_after\u003c/code\u003e (and the new \u003ccode\u003efail_at\u003c/code\u003e) allowing for added exception context when raising \u003ccode\u003eTimeoutError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1227\"\u003e#1227\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the default \u003ccode\u003eTaskHandle.name\u003c/code\u003e missing part of the task name for tasks started with \u003ccode\u003eTaskGroup.start\u003c/code\u003e on Trio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1231\"\u003e#1231\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.run\u003c/code\u003e leaking, or at least, delaying collection of loop and root_task due to the root task being cached in a \u003ccode\u003eRunVar\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1203\"\u003e#1203\u003c/a\u003e; PR by \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.Path.with_stem()\u003c/code\u003e silently producing a wrong path (e.g. \u003ccode\u003ePath(\u0026quot;.txt\u0026quot;)\u003c/code\u003e) instead of raising \u003ccode\u003eValueError\u003c/code\u003e when given an empty stem on a path with a non-empty suffix, unlike \u003ccode\u003epathlib.PurePath.with_stem\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1200\"\u003e#1200\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eUNIXSocketStream.aclose()\u003c/code\u003e raising \u003ccode\u003easyncio.InvalidStateError\u003c/code\u003e when a concurrent receive or send operation had just been cancelled on the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1267\"\u003e#1267\u003c/a\u003e; PR by \u003ca href=\"https://github.com/alloutflo\"\u003e\u003ccode\u003e@​alloutflo\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the pytest plugin importing the deprecated \u003ccode\u003e_pytest.python.CallSpec2\u003c/code\u003e alias, which triggers \u003ccode\u003ePytestRemovedIn10Warning\u003c/code\u003e on \u003ccode\u003epytest\u0026gt;=9.2\u003c/code\u003e and crashes pytest at startup when \u003ccode\u003efilterwarnings = error\u003c/code\u003e is configured (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1271\"\u003e#1271\u003c/a\u003e; PR by \u003ca href=\"https://github.com/matthewfeickert\"\u003e\u003ccode\u003e@​matthewfeickert\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an asyncio worker thread race that could raise \u003ccode\u003eRuntimeError\u003c/code\u003e when the event loop closed between checking its state and scheduling the worker result (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1265\"\u003e#1265\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hansu650\"\u003e\u003ccode\u003e@​hansu650\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eCapacityLimiter\u003c/code\u003e on the asyncio backend over-granting tokens when \u003ccode\u003etotal_tokens\u003c/code\u003e was raised while the limiter was over-subscribed (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1223\"\u003e#1223\u003c/a\u003e; PR by \u003ca href=\"https://github.com/zelinewang\"\u003e\u003ccode\u003e@​zelinewang\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/ffcd1542cd6d127980205f90a0100078849dd703\"\u003e\u003ccode\u003effcd154\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0ecf5ed98d294242509b043ebd1a0843e52d892f\"\u003e\u003ccode\u003e0ecf5ed\u003c/code\u003e\u003c/a\u003e Added a workaround for third party code accessing unimported submodules (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1309\"\u003e#1309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/928366259543412a2deb1e2ba09ea45ffa92ef4f\"\u003e\u003ccode\u003e9283662\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d137692a90f76e4f71605e32ea5ca94cab3a539d\"\u003e\u003ccode\u003ed137692\u003c/code\u003e\u003c/a\u003e Improved the instructions for AI agents\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/033fc52b8fa8e90c5d0ef24b10b3860e974a6265\"\u003e\u003ccode\u003e033fc52\u003c/code\u003e\u003c/a\u003e Shield TemporaryDirectory cleanup from cancellation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1304\"\u003e#1304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/942e9a6552cc10b5aaa779d84bfc8e2c3d5fcffc\"\u003e\u003ccode\u003e942e9a6\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1305\"\u003e#1305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b825c3be7cb4ca1a8000b8065d4e147843deb704\"\u003e\u003ccode\u003eb825c3b\u003c/code\u003e\u003c/a\u003e Fixed pyproject.toml changes not triggering the test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9727dc504681e2986b5bc285de9571fb467539af\"\u003e\u003ccode\u003e9727dc5\u003c/code\u003e\u003c/a\u003e Fixed start inconsistencies between trio and asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b05fe6d160a640355c201363cab286a7d2581da8\"\u003e\u003ccode\u003eb05fe6d\u003c/code\u003e\u003c/a\u003e Fixed wrong type in move_on_after (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1297\"\u003e#1297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/44d0c93cc20079acbf38ba4dbed5ab9df323f153\"\u003e\u003ccode\u003e44d0c93\u003c/code\u003e\u003c/a\u003e Fixed asyncio task group coroutine cleanup (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.14.2...4.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ast-serialize` from 0.8.0 to 0.11.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/f508fe57c3e39cdda9f74e6e19f3ee126bcaddd7\"\u003e\u003ccode\u003ef508fe5\u003c/code\u003e\u003c/a\u003e Bump version to 0.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/8642c8620660ec949f7c99116cd30f93656ada41\"\u003e\u003ccode\u003e8642c86\u003c/code\u003e\u003c/a\u003e Fix edge case in Literal type handling (\u003ca href=\"https://redirect.github.com/mypyc/ast_serialize/issues/92\"\u003e#92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/3039f8bc0ee4c7a2793ff50086528ae257b33b7f\"\u003e\u003ccode\u003e3039f8b\u003c/code\u003e\u003c/a\u003e Serialize flag for lazy imports (\u003ca href=\"https://redirect.github.com/mypyc/ast_serialize/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/e667a2b7b4a1d2ab98af4d28100cdff5b53fbf20\"\u003e\u003ccode\u003ee667a2b\u003c/code\u003e\u003c/a\u003e Bump version to 0.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/30e8c5f7c663e9c4000d05379cd30575109eaf55\"\u003e\u003ccode\u003e30e8c5f\u003c/code\u003e\u003c/a\u003e Simple-minded universal newline normalization (\u003ca href=\"https://redirect.github.com/mypyc/ast_serialize/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/98d1303ef8515dfcf3cdbe90d25acf4cfd139765\"\u003e\u003ccode\u003e98d1303\u003c/code\u003e\u003c/a\u003e Fix syntax error in try/except (\u003ca href=\"https://redirect.github.com/mypyc/ast_serialize/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/1dac8dea21d3d8c9c40885288c55ef70c266fc3d\"\u003e\u003ccode\u003e1dac8de\u003c/code\u003e\u003c/a\u003e Bump version to 0.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/fdc40ec3b24d43545fcbe9c8bcd5e3e1ce3b3510\"\u003e\u003ccode\u003efdc40ec\u003c/code\u003e\u003c/a\u003e Fix false negative in Ruff parser in try/except (\u003ca href=\"https://redirect.github.com/mypyc/ast_serialize/issues/88\"\u003e#88\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/0ece21caaf859ef37b1836af5626c7bdc3c6fde0\"\u003e\u003ccode\u003e0ece21c\u003c/code\u003e\u003c/a\u003e Special-case empty type comment (\u003ca href=\"https://redirect.github.com/mypyc/ast_serialize/issues/87\"\u003e#87\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/a19a7a557170c5b04ca00675df6fdc7732088fe9\"\u003e\u003ccode\u003ea19a7a5\u003c/code\u003e\u003c/a\u003e Expose serialize_string_type() in public API (\u003ca href=\"https://redirect.github.com/mypyc/ast_serialize/issues/86\"\u003e#86\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mypyc/ast_serialize/compare/v0.8.0...v0.11.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.43.85 to 1.43.107\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/402e09ca457c8b8ea37097e32dcf2de7c612bb2f\"\u003e\u003ccode\u003e402e09c\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.107'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/4d321645cb78851589720fec5d08c6f8cf64c9b4\"\u003e\u003ccode\u003e4d32164\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.107\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/e6738b9bfc67ceb6f9eb8792a10eac83b283b959\"\u003e\u003ccode\u003ee6738b9\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c2a321bb8a8513706b906703fc9945e6de62e400\"\u003e\u003ccode\u003ec2a321b\u003c/code\u003e\u003c/a\u003e Bump \u003ca href=\"https://github.com/astral-sh/ruff-pre-commit\"\u003ehttps://github.com/astral-sh/ruff-pre-commit\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/88630f82cb40220991b6fb0505703e7cd575e38b\"\u003e\u003ccode\u003e88630f8\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.106'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/fac0859a5381737c27dd088886e99286031db120\"\u003e\u003ccode\u003efac0859\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.106' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/eefb3fcda392ec4fd5cbf212643cb01a6b4f98ae\"\u003e\u003ccode\u003eeefb3fc\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.106\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/88781899883b66a97cc95023d0c0ef1fda909f5d\"\u003e\u003ccode\u003e8878189\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/29c0d66ad5dbd02c82d637f92113a30eb76a3acd\"\u003e\u003ccode\u003e29c0d66\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.105'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/82c6dbe501e56be2fb589a267471d7f76f1d92b1\"\u003e\u003ccode\u003e82c6dbe\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.105' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.43.85...1.43.107\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.43.85 to 1.43.107\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/646bd4ec3f99d60798e95195e2d7153bcd37055d\"\u003e\u003ccode\u003e646bd4e\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.107'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/ed2917897b672d91bf51696bd3bacf140deb86ff\"\u003e\u003ccode\u003eed29178\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.107\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/66727259aabc1d5dc7f5265060d1f3998dd11a8e\"\u003e\u003ccode\u003e6672725\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/f19f55e0197e3c6a584e654ca692a7c858f07e25\"\u003e\u003ccode\u003ef19f55e\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/ca596c760aa129f49da8ff971726e8b85297b50d\"\u003e\u003ccode\u003eca596c7\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.106'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/96abf2d1f44aebf783b9272d518bc2193d4e8eb5\"\u003e\u003ccode\u003e96abf2d\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.106' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/1808528fec99689349da8882b23db343e50c0f43\"\u003e\u003ccode\u003e1808528\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.106\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/3d316f06c903c6aab747913b9834bb77333c1bda\"\u003e\u003ccode\u003e3d316f0\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/053554bf4606d7affaad0d40e9f3367b7a7ff771\"\u003e\u003ccode\u003e053554b\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/e9bb16cfe0583e228886cc8022399a85fbb22fed\"\u003e\u003ccode\u003ee9bb16c\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.105'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.43.85...1.43.107\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.5.1 to 3.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.5.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.5.1...3.5.2\"\u003e3.5.2\u003c/a\u003e (2026-09-29)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised the Cython upper bound to \u003ccode\u003e\u0026lt;3.4\u003c/code\u003e for native builds. The bound remains \u003ccode\u003e\u0026lt;3.3\u003c/code\u003e for\n\u003ccode\u003eabi3\u003c/code\u003e builds to preserve compatibility with the Python 3.7 Limited API.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValid UTF-8 Chinese JSON incorrectly detected as PTCP154 due to excessive noise penalties\nfor uncommon CJK characters. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupported encodings without aliases failing name resolution or being ignored in charset\ndeclarations. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/800\"\u003e#800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.5.1...3.5.2\"\u003e3.5.2\u003c/a\u003e (2026-09-29)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised the Cython upper bound to \u003ccode\u003e\u0026lt;3.4\u003c/code\u003e for native builds. The bound remains \u003ccode\u003e\u0026lt;3.3\u003c/code\u003e for\n\u003ccode\u003eabi3\u003c/code\u003e builds to preserve compatibility with the Python 3.7 Limited API.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValid UTF-8 Chinese JSON incorrectly detected as PTCP154 due to excessive noise penalties\nfor uncommon CJK characters. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupported encodings without aliases failing name resolution or being ignored in charset\ndeclarations. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/800\"\u003e#800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/935c29ad2d0d6e62fcf3a6e0617c55dc6e85db8f\"\u003e\u003ccode\u003e935c29a\u003c/code\u003e\u003c/a\u003e Release 3.5.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/805\"\u003e#805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9d3238a7ae9676e05ee1da5da826297b374f2282\"\u003e\u003ccode\u003e9d3238a\u003c/code\u003e\u003c/a\u003e test: disable traefik in downstream niquests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b4c0368fdc9183b8e77e39d865328a4a40103750\"\u003e\u003ccode\u003eb4c0368\u003c/code\u003e\u003c/a\u003e docs: write changelog entry for 3.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/717da3108bf90d979c1485ae55c0b11f2eab650b\"\u003e\u003ccode\u003e717da31\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/264895d4e9313b088c9698f5394278a3c7ab58a7\"\u003e\u003ccode\u003e264895d\u003c/code\u003e\u003c/a\u003e chore: update pypa/cibuildwheel and pypa/gh-action-pypi-publish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/41e28b6cb19d7ec85560f869cbc2a599c8fc855b\"\u003e\u003ccode\u003e41e28b6\u003c/code\u003e\u003c/a\u003e chore: raise Cython upper bound to 3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b130b7dae36658c7ba67381fe06a62c7c7c03894\"\u003e\u003ccode\u003eb130b7d\u003c/code\u003e\u003c/a\u003e Fix valid UTF-8 Chinese JSON misdetected as PTCP154 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f6afd31c54fe20524f96be00de3bcb0e81727526\"\u003e\u003ccode\u003ef6afd31\u003c/code\u003e\u003c/a\u003e Make the IANA_NO_ALIASES encodings resolvable by name (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/800\"\u003e#800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.5.1...3.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 50.0.1 to 50.0.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e50.0.2 - 2026-09-30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.3.\n* Added ``abi3.abi3t`` wheels for free-threaded CPython 3.15 and later.\n* Updated to PyO3 0.29.2, which fixes building ``cryptography`` on Cygwin and\n  MSYS2.\n\u003cp\u003e.. _v50-0-1:\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/4dda5c7fe4ae71b8925f2551910a0ef959df9c7a\"\u003e\u003ccode\u003e4dda5c7\u003c/code\u003e\u003c/a\u003e [50.0.x] Bump for 50.0.2 release + changelog (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15733\"\u003e#15733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/70c881cd7ea97d38df09f57c1117470cd1a5a2f7\"\u003e\u003ccode\u003e70c881c\u003c/code\u003e\u003c/a\u003e [50.0.x] Bump pyo3 to 0.29.2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15731\"\u003e#15731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/a8c45c449b8d29908a14561afd45fee8bf27d044\"\u003e\u003ccode\u003ea8c45c4\u003c/code\u003e\u003c/a\u003e [50.0.x] Build abi3.abi3t wheels for CPython 3.15+ (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15496\"\u003e#15496\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15732\"\u003e#15732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/50.0.1...50.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.141.1 to 0.142.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.142.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Allow startup when automatic OpenTelemetry configuration fails. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16418\"\u003e#16418\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.142.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix repeated endpoint wrapping in included routers. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16414\"\u003e#16414\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.142.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add native OpenTelemetry support. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16403\"\u003e#16403\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📱 Improve mobile responsiveness of conference rail. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16196\"\u003e#16196\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Remove conf section and add event banner. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16193\"\u003e#16193\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove unused image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16195\"\u003e#16195\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Use buttons for Termynal controls. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16132\"\u003e#16132\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for hi (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16212\"\u003e#16212\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16210\"\u003e#16210\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16211\"\u003e#16211\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16208\"\u003e#16208\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16209\"\u003e#16209\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16207\"\u003e#16207\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16206\"\u003e#16206\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16205\"\u003e#16205\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16204\"\u003e#16204\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16203\"\u003e#16203\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16202\"\u003e#16202\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16201\"\u003e#16201\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16171\"\u003e#16171\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix frontend test timeout with Starlette Git. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16408\"\u003e#16408\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Permit.io. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16406\"\u003e#16406\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump anyio from 4.12.1 to 4.14.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16375\"\u003e#16375\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 15 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16285\"\u003e#16285\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 1.3.1 to 1.6.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16289\"\u003e#16289\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump annotated-doc from 0.0.4 to 0.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16288\"\u003e#16288\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typing-inspection from 0.4.2 to 0.4.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16286\"\u003e#16286\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/78c4324f0c56bc5282a459978779a9e532d19709\"\u003e\u003ccode\u003e78c4324\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16419\"\u003e#16419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2579ed0d9e73205326463025cc756650f642f511\"\u003e\u003ccode\u003e2579ed0\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1d4953d2e528b58cfb09bbc28fb25dcda227c6ea\"\u003e\u003ccode\u003e1d4953d\u003c/code\u003e\u003c/a\u003e 🐛 Allow startup when automatic OpenTelemetry configuration fails (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16418\"\u003e#16418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3e33a03bdaa3a89f27d5e0c390c4ba9032f14b5e\"\u003e\u003ccode\u003e3e33a03\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16415\"\u003e#16415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/12ea7f5a5e76c5ba3495c2803f57ed92ac67731b\"\u003e\u003ccode\u003e12ea7f5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ac88f563db5f4d3300d43355eca728c93ed9ffe2\"\u003e\u003ccode\u003eac88f56\u003c/code\u003e\u003c/a\u003e 🐛 Fix repeated endpoint wrapping in included routers (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16414\"\u003e#16414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/bd41128123fd08d693f5541e27c550eebe20f8b0\"\u003e\u003ccode\u003ebd41128\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.0 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16411\"\u003e#16411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7aa21e53c859ce52b17196b35909efca6f2fa11f\"\u003e\u003ccode\u003e7aa21e5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b3949cd9e5932f76217131fceabc74145c3db24\"\u003e\u003ccode\u003e4b3949c\u003c/code\u003e\u003c/a\u003e ✨ Add native OpenTelemetry support (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16403\"\u003e#16403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c30032a1b68fb36c03fffe1856369d3824607c7c\"\u003e\u003ccode\u003ec30032a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.141.1...0.142.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8` from 7.3.0 to 7.4.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/7eccf20b526fe4f2230bf9afeeef2fc9f97faf8d\"\u003e\u003ccode\u003e7eccf20\u003c/code\u003e\u003c/a\u003e Release 7.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/fe7311d78073c079468b03193c7cbfac5174776c\"\u003e\u003ccode\u003efe7311d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/2057\"\u003e#2057\u003c/a\u003e from PyCQA/fix-pyflakes-4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/819d5e6912003135e93cd466260922b8228a1fa3\"\u003e\u003ccode\u003e819d5e6\u003c/code\u003e\u003c/a\u003e fix pyflakes 4.x --builtins integration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/31405090a83cade9350502e481dcd1f032cb50b9\"\u003e\u003ccode\u003e3140509\u003c/code\u003e\u003c/a\u003e Release 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/e12e23174f10cafd7cf046d0a750c2d59fe2d451\"\u003e\u003ccode\u003ee12e231\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/2055\"\u003e#2055\u003c/a\u003e from PyCQA/add-315-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f0225365d819e55379044ce347077cba3ab9f202\"\u003e\u003ccode\u003ef022536\u003c/code\u003e\u003c/a\u003e add python 3.15 to CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/07eb8ae3f15ee6eeb4d0f748f1c54f7211267fd4\"\u003e\u003ccode\u003e07eb8ae\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/2054\"\u003e#2054\u003c/a\u003e from PyCQA/latest-pyflakes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/a9e6dc227342a5cfcf5df56909370ecbc87725a3\"\u003e\u003ccode\u003ea9e6dc2\u003c/code\u003e\u003c/a\u003e update to latest pyflakes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/2436eabb34f69e8ac29bdbd3f452b4509bf78644\"\u003e\u003ccode\u003e2436eab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/2053\"\u003e#2053\u003c/a\u003e from PyCQA/latest-pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/b44ddd48986c5e2d20e4461084a38d9b233d66c3\"\u003e\u003ccode\u003eb44ddd4\u003c/code\u003e\u003c/a\u003e update to latest pycodestyle\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/7.3.0...7.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fsspec` from 2026.7.0 to 2026.9.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/0f76baaae4a227b085b18e8469e6cc1792a95ade\"\u003e\u003ccode\u003e0f76baa\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2166\"\u003e#2166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/695f831c2a2c55b48b11045ea2f2b34d529eaa43\"\u003e\u003ccode\u003e695f831\u003c/code\u003e\u003c/a\u003e Add age-based cleanup for simplecache (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2118\"\u003e#2118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/42aa46875c50f43d2d258540981772b86da7a6fb\"\u003e\u003ccode\u003e42aa468\u003c/code\u003e\u003c/a\u003e Mirror \u003ccode\u003ereadinto\u003c/code\u003e from the pyarrow stream onto \u003ccode\u003eArrowFile\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/4a4e6ae778d9cbc8f036a0b7af9467d94d0acac6\"\u003e\u003ccode\u003e4a4e6ae\u003c/code\u003e\u003c/a\u003e Make the SFTP host key policy configurable (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2126\"\u003e#2126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/a0ce6dbecad9d42f19a2e1462cb61fec9b77da2e\"\u003e\u003ccode\u003ea0ce6db\u003c/code\u003e\u003c/a\u003e Normalize paths in AsyncFileSystemWrapper like the wrapped filesystem (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2159\"\u003e#2159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/c5fea6d8e8c140a0cacbe94fa573df5becbf192e\"\u003e\u003ccode\u003ec5fea6d\u003c/code\u003e\u003c/a\u003e Fix cat_ranges on whole-file caches after \u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2154\"\u003e#2154\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2163\"\u003e#2163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/9efb18b4939d01ac9b06a481bda8125f48dbc738\"\u003e\u003ccode\u003e9efb18b\u003c/code\u003e\u003c/a\u003e Patch HAS_CPYTHON_API where _fast_slice reads it (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2164\"\u003e#2164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/27bcd35c5487570da9f3a97fd66a3f4268ca0c87\"\u003e\u003ccode\u003e27bcd35\u003c/code\u003e\u003c/a\u003e feat(AdaptiveReadaheadCache): introducing a new cache-type adaptive (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2093\"\u003e#2093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/a681aca115b6687a1ea1fcfd4ac1f5f8c4cc03c5\"\u003e\u003ccode\u003ea681aca\u003c/code\u003e\u003c/a\u003e Ignore a leading slash in TarFileSystem paths (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2148\"\u003e#2148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/57c55f87d780856181653eca4d5cc14e22d8e5f9\"\u003e\u003ccode\u003e57c55f8\u003c/code\u003e\u003c/a\u003e Make names relative in DirFileSystem.walk(detail=True) (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/filesystem_spec/compare/2026.7.0...2026.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-ai-generativelanguage` from 0.6.15 to 0.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-ai-generativelanguage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-vectorsearch: v0.11.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-vectorsearch-v0.11.4...google-cloud-vectorsearch-v0.11.5\"\u003e0.11.5\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeclare Python3.15 support (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8775794508e17150023c8e7152543410014458bf\"\u003e8775794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-video-stitcher: v0.11.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-video-stitcher-v0.11.1...google-cloud-video-stitcher-v0.11.2\"\u003e0.11.2\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeclare Python3.15 support (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8775794508e17150023c8e7152543410014458bf\"\u003e8775794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-maps-routing: v0.11.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-maps-routing-v0.11.1...google-maps-routing-v0.11.2\"\u003e0.11.2\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeclare Python3.15 support (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8775794508e17150023c8e7152543410014458bf\"\u003e8775794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-maps-places: v0.9.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-maps-places-v0.9.0...google-maps-places-v0.9.1\"\u003e0.9.1\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeclare Python3.15 support (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8775794508e17150023c8e7152543410014458bf\"\u003e8775794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-workstations: v0.8.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-workstations-v0.8.1...google-cloud-workstations-v0.8.2\"\u003e0.8.2\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeclare Python3.15 support (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8775794508e17150023c8e7152543410014458bf\"\u003e8775794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-storagebatchoperations: v0.8.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-storagebatchoperations-v0.8.0...google-cloud-storagebatchoperations-v0.8.1\"\u003e0.8.1\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeclare Python3.15 support (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8775794508e17150023c8e7152543410014458bf\"\u003e8775794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-maps-mapsplatformdatasets: v0.8.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-maps-mapsplatformdatasets-v0.8.0...google-maps-mapsplatformdatasets-v0.8.1\"\u003e0.8.1\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/69401247a72c0f0786741ac937c3c5aa2afc8ead\"\u003e\u003ccode\u003e6940124\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18503\"\u003e#18503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/522db0e2a04098d0ed3fd54ec32be12e8183a335\"\u003e\u003ccode\u003e522db0e\u003c/code\u003e\u003c/a\u003e ci(gapic-generator): add showcase canary job, span artifact upload, and isola...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5d57b255271ed43274286cb65a9f6e52ee56875a\"\u003e\u003ccode\u003e5d57b25\u003c/code\u003e\u003c/a\u003e fix(ci): fix docfx and db-dtypes pandas compat (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18512\"\u003e#18512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c38e960ae0349f9856c012c668c07fac24f8f0dc\"\u003e\u003ccode\u003ec38e960\u003c/code\u003e\u003c/a\u003e fix(spanner): stop deleting multiplexed sessions on rotation and close (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18332\"\u003e#18332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/80efd633fde5480d83c6889f8a3bf2e98a73370c\"\u003e\u003ccode\u003e80efd63\u003c/code\u003e\u003c/a\u003e perf(spanner): support PartialResultSet.last with background stream draining ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/28d33f6c81ea3c6cdeea392ed4a3f40333acbb5d\"\u003e\u003ccode\u003e28d33f6\u003c/code\u003e\u003c/a\u003e chore(storage): rename zonal buckets to rapid buckets in system tests (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18492\"\u003e#18492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/04ef51e31698462229c1269ad01d7ae06d9a7bb7\"\u003e\u003ccode\u003e04ef51e\u003c/code\u003e\u003c/a\u003e fix(db-dtypes): support updated pandas datetime reduction error message (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18526\"\u003e#18526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d7d3d20db46fb996b278ec4d3f74e03365d789a0\"\u003e\u003ccode\u003ed7d3d20\u003c/code\u003e\u003c/a\u003e feat: update Compute v1 API to version 2026-09-01 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18523\"\u003e#18523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6ed844782d453f1d1ebd3f70f8f0484254ff15b1\"\u003e\u003ccode\u003e6ed8447\u003c/code\u003e\u003c/a\u003e feat(bigquery): Declare Python 3.15 support (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18525\"\u003e#18525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7d7adcaee688603077ea53abec678130045c20ed\"\u003e\u003ccode\u003e7d7adca\u003c/code\u003e\u003c/a\u003e feat: update API sources and regenerate (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18513\"\u003e#18513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-ai-generativelanguage-v0.6.15...google-ai-generativelanguage-v0.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-core` from 2.33.0 to 2.40.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-api-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-texttospeech: v2.38.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-texttospeech-v2.37.0...google-cloud-texttospeech-v2.38.0\"\u003e2.38.0\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeclare Python3.15 support (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8775794508e17150023c8e7152543410014458bf\"\u003e8775794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/CHANGELOG.md\"\u003egoogle-api-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePlease refer to each API's \u003ccode\u003eCHANGELOG.md\u003c/code\u003e file under the \u003ccode\u003epackages/\u003c/code\u003e directory\u003c/p\u003e\n\u003ch2\u003eChangelogs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-ads-admanager/CHANGELOG.md\"\u003egoogle-ads-admanager==0.10.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-ads-marketingplatform-admin/CHANGELOG.md\"\u003egoogle-ads-marketingplatform-admin==0.6.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-ai-generativelanguage/CHANGELOG.md\"\u003egoogle-ai-generativelanguage==0.12.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-analytics-admin/CHANGELOG.md\"\u003egoogle-analytics-admin==0.30.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-analytics-data/CHANGELOG.md\"\u003egoogle-analytics-data==0.23.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-apps-card/CHANGELOG.md\"\u003egoogle-apps-card==0.7.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-apps-chat/CHANGELOG.md\"\u003egoogle-apps-chat==0.10.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-apps-events-subscriptions/CHANGELOG.md\"\u003egoogle-apps-events-subscriptions==0.6.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-apps-meet/CHANGELOG.md\"\u003egoogle-apps-meet==0.5.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-apps-script-type/CHANGELOG.md\"\u003egoogle-apps-script-type==0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-area120-tables/CHANGELOG.md\"\u003egoogle-area120-tables==0.15.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-access-approval/CHANGELOG.md\"\u003egoogle-cloud-access-approval==1.20.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-access-context-manager/CHANGELOG.md\"\u003egoogle-cloud-access-context-manager==0.6.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-advisorynotifications/CHANGELOG.md\"\u003egoogle-cloud-advisorynotifications==0.7.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-alloydb-connectors/CHANGELOG.md\"\u003egoogle-cloud-alloydb-connectors==0.5.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-alloydb/CHANGELOG.md\"\u003egoogle-cloud-alloydb==0.11.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-api-gateway/CHANGELOG.md\"\u003egoogle-cloud-api-gateway==1.16.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-api-keys/CHANGELOG.md\"\u003egoogle-cloud-api-keys==0.9.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-apigee-connect/CHANGELOG.md\"\u003egoogle-cloud-apigee-connect==1.16.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-apigee-registry/CHANGELOG.md\"\u003egoogle-cloud-apigee-registry==0.10.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-apihub/CHANGELOG.md\"\u003egoogle-cloud-apihub==0.7.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-appengine-admin/CHANGELOG.md\"\u003egoogle-cloud-appengine-admin==1.18.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-appengine-logging/CHANGELOG.md\"\u003egoogle-cloud-appengine-logging==1.10.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-apphub/CHANGELOG.md\"\u003egoogle-cloud-apphub==0.5.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-artifact-registry/CHANGELOG.md\"\u003egoogle-cloud-artifact-registry==1.22.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-asset/CHANGELOG.md\"\u003egoogle-cloud-asset==4.4.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-assured-workloads/CHANGELOG.md\"\u003egoogle-cloud-assured-workloads==2.4.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-audit-log/CHANGELOG.md\"\u003egoogle-cloud-audit-log==0.6.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-automl/CHANGELOG.md\"\u003egoogle-cloud-automl==2.20.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-backupdr/CHANGELOG.md\"\u003egoogle-cloud-backupdr==0.10.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bare-metal-solution/CHANGELOG.md\"\u003egoogle-cloud-bare-metal-solution==1.14.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-batch/CHANGELOG.md\"\u003egoogle-cloud-batch==0.22.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-beyondcorp-appconnections/CHANGELOG.md\"\u003egoogle-cloud-beyondcorp-appconnections==0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-beyondcorp-appconnectors/CHANGELOG.md\"\u003egoogle-cloud-beyondcorp-appconnectors==0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-beyondcorp-appgateways/CHANGELOG.md\"\u003egoogle-cloud-beyondcorp-appgateways==0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-beyondcorp-clientconnectorservices/CHANGELOG.md\"\u003egoogle-cloud-beyondcorp-clientconnectorservices==0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-beyondcorp-clientgateways/CHANGELOG.md\"\u003egoogle-cloud-beyondcorp-clientgateways==0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-analyticshub/CHANGELOG.md\"\u003egoogle-cloud-bigquery-analyticshub==0.9.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-biglake/CHANGELOG.md\"\u003egoogle-cloud-bigquery-biglake==0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-connection/CHANGELOG.md\"\u003egoogle-cloud-bigquery-connection==1.22.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-data-exchange/CHANGELOG.md\"\u003egoogle-cloud-bigquery-data-exchange==0.9.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-datapolicies/CHANGELOG.md\"\u003egoogle-cloud-bigquery-datapolicies==0.10.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-datatransfer/CHANGELOG.md\"\u003egoogle-cloud-bigquery-datatransfer==3.23.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-logging/CHANGELOG.md\"\u003egoogle-cloud-bigquery-logging==1.10.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-migration/CHANGELOG.md\"\u003egoogle-cloud-bigquery-migration==0.15.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-reservation/CHANGELOG.md\"\u003egoogle-cloud-bigquery-reservation==1.25.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d6bed5a3d4a9348f6aebb75b7ceb8d599a133c0a\"\u003e\u003ccode\u003ed6bed5a\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18464\"\u003e#18464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/78ff458d055a6104a385dc96990773f02a138f7d\"\u003e\u003ccode\u003e78ff458\u003c/code\u003e\u003c/a\u003e feat(gapic-generator): add schema support for resumable uploads (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18480\"\u003e#18480\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/af2100a0131b20488b96891248a46389cf4c420b\"\u003e\u003ccode\u003eaf2100a\u003c/code\u003e\u003c/a\u003e tests: add showcase to golden files (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18479\"\u003e#18479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e1d306a5e0213f99e2c9d740a25622f006e3bb46\"\u003e\u003ccode\u003ee1d306a\u003c/code\u003e\u003c/a\u003e fix: resolve error where google/longrunning/operations.proto is missing (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18477\"\u003e#18477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5013b91ebb431b923cb8454dcda2284fed737cfe\"\u003e\u003ccode\u003e5013b91\u003c/code\u003e\u003c/a\u003e chore: update librarian to v0.46.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18494\"\u003e#18494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7871fa9d142807248e225cb9d24d2ffda88e1b90\"\u003e\u003ccode\u003e7871fa9\u003c/code\u003e\u003c/a\u003e fix(gapic-generator): init mock response in version header test (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18488\"\u003e#18488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0b488a395542e9c76f535e82a7298fabaee8f4af\"\u003e\u003ccode\u003e0b488a3\u003c/code\u003e\u003c/a\u003e feat(bigtable): Reroute Mutations Batcher to use data client (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18200\"\u003e#18200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/30b4f440c24db348b043382178e53727c49c96de\"\u003e\u003ccode\u003e30b4f44\u003c/code\u003e\u003c/a\u003e fix(google-auth-oauthlib): prevent ipv6 address reuse (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18463\"\u003e#18463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1d9f4681be8792da62468bf405d5b2554a646be1\"\u003e\u003ccode\u003e1d9f468\u003c/code\u003e\u003c/a\u003e chore(main): release google-auth 2.59.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18465\"\u003e#18465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c7c133aac3b761eba6ca9fad7abe1065a94f480b\"\u003e\u003ccode\u003ec7c133a\u003c/code\u003e\u003c/a\u003e chore(bigtable): Added an internal batch completed callback to the data clien...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-api-core-v2.33.0...google-api-core-v2.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.200.0 to 2.201.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.201.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.200.0...v2.201.0\"\u003e2.201.0\u003c/a\u003e (2026-09-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eaccesscontextmanager:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c05bd83c57b411dc76368407908e67e8b4a3663e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c05bd83c57b411dc76368407908e67e8b4a3663e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8e4ffe5ed7a0520fc67374d8c4a0d93571a27fc4\"\u003e8e4ffe5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/277ad485b5c45dbadab8ea32d7b66a23b19e6204\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/277ad485b5c45dbadab8ea32d7b66a23b19e6204\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8e4ffe5ed7a0520fc67374d8c4a0d93571a27fc4\"\u003e8e4ffe5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eagentidentitycredentials:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/3b1642ed3453b8fd881d07bf0869d922d48a4efc\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/3b1642ed3453b8fd881d07bf0869d922d48a4efc\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8616840293fb69025ce8c3fa28583843c88497dc\"\u003e8616840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eagentregistry:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/7319764c93831281ff4465213879c97bb7c973a1\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/7319764c93831281ff4465213879c97bb7c973a1\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/99710afb84674cd21a87a60e386bca82ca6d817c\"\u003e99710af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/277ad485b5c45dbadab8ea32d7b66a23b19e6204\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/277ad485b5c45dbadab8ea32d7b66a23b19e6204\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8e4ffe5ed7a0520fc67374d8c4a0d93571a27fc4\"\u003e8e4ffe5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2efc53079fec2b2589dd7d4298f3db3a962d38ce\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2efc53079fec2b2589dd7d4298f3db3a962d38ce\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/99710afb84674cd21a87a60e386bca82ca6d817c\"\u003e99710af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/73ad8ac1b80dc0e53950ec0bb92765348a854f63\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/73ad8ac1b80dc0e53950ec0bb92765348a854f63\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/496433cb5c5e37c3f3cca582c73387262fc8e745\"\u003e496433c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d5a6a0a09b18c296369b6b6c59e6d9aa02f8ad15\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d5a6a0a09b18c296369b6b6c59e6d9aa02f8ad15\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8616840293fb69025ce8c3fa28583843c88497dc\"\u003e8616840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/603d8daca1a63cce1c0c7cacb69da0a40eab9060\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/603d8daca1a63cce1c0c7cacb69da0a40eab9060\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8e4ffe5ed7a0520fc67374d8c4a0d93571a27fc4\"\u003e8e4ffe5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a535eb115211b2bdee02514cdd789ad9babd0a0b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a535eb115211b2bdee02514cdd789ad9babd0a0b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8616840293fb69025ce8c3fa28583843c88497dc\"\u003e8616840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/f915a539dd64fd8acc33b179353f15a6e2411964\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/f915a539dd64fd8acc33b179353f15a6e2411964\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/496433cb5c5e37c3f3cca582c73387262fc8e745\"\u003e496433c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticsdata:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a856de7ac57f4a5706ae996fd7cedcfa2fe804e8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a856de7ac57f4a5706ae996fd7cedcfa2fe804e8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/99710afb84674cd21a87a60e386bca82ca6d817c\"\u003e99710af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticshub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2c32da3c010eca4ad16d99d96cac0408e6c45a1b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2c32da3c010eca4ad16d99d96cac0408e6c45a1b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/496433cb5c5e37c3f3cca582c73387262fc8e745\"\u003e496433c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticshub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/62babb473b5ba1261d7e362ec14e0e4d6ea594af\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/62babb473b5ba1261d7e362ec14e0e4d6ea594af\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8616840293fb69025ce8c3fa28583843c88497dc\"\u003e8616840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidmanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/fd74e7451e04c5b7533ce8e4942c8f3b763ad4c5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/fd74e7451e04c5b7533ce8e4942c8f3b763ad4c5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8616840293fb69025ce8c3fa28583843c88497dc\"\u003e8616840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidpublisher:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/4cf6af34b6a1c55533f90b7a69a0341a40bdc250\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/4cf6af34b6a1c55533f90b7a69a0341a40bdc250\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8616840293fb69025ce8c3fa28583843c88497dc\"\u003e8616840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidpublisher:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/57208553add39495a53e7fb83342dcc569e6cf98\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/57208553add39495a53e7fb83342dcc569e6cf98\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8e4ffe5ed7a0520fc67374d8c4a0d93571a27fc4\"\u003e8e4ffe5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapigateway:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/goog...\n\n_Description has been truncated_","html_url":"https://github.com/dossnathan-dotcom/perchpointplatform/pull/30","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dossnathan-dotcom%2Fperchpointplatform/issues/30","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/30/packages"},{"uuid":"5697504300","node_id":"PR_kwDOTXO5VM8AAAABGhpkKg","number":80,"state":"closed","title":"chore(deps): bump the backend-dependencies group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-10-04T08:44:02.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-04T08:15:14.000Z","updated_at":"2026-10-04T08:44:11.000Z","time_to_close":1728,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"backend-dependencies","update_count":16,"packages":[{"name":"fastapi","old_version":"0.139.0","new_version":"0.142.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.51.0","new_version":"0.54.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"sqlalchemy","old_version":"2.0.51","new_version":"2.1.1","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.18.5","new_version":"1.20.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"redis","old_version":"5.3.1","new_version":"8.1.0","repository_url":"https://github.com/redis/redis-py"},{"name":"click","old_version":"8.4.2","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"scipy","old_version":"1.18.0","new_version":"1.18.1","repository_url":"https://github.com/scipy/scipy"},{"name":"scikit-learn","old_version":"1.9.0","new_version":"1.9.1","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"lightgbm","old_version":"4.6.0","new_version":"4.7.0","repository_url":"https://github.com/lightgbm-org/LightGBM"},{"name":"statsmodels","old_version":"0.14.6","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"openai","old_version":"2.45.0","new_version":"3.22.1","repository_url":"https://github.com/openai/openai-python"},{"name":"ruff","old_version":"0.15.21","new_version":"0.16.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/python/mypy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the backend-dependencies group with 16 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.139.0` | `0.142.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.51.0` | `0.54.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.51` | `2.1.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.5` | `1.20.0` |\n| [redis](https://github.com/redis/redis-py) | `5.3.1` | `8.1.0` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.6` |\n| [scipy](https://github.com/scipy/scipy) | `1.18.0` | `1.18.1` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.9.0` | `1.9.1` |\n| [lightgbm](https://github.com/lightgbm-org/LightGBM) | `4.6.0` | `4.7.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.6` | `0.15.0` |\n| [openai](https://github.com/openai/openai-python) | `2.45.0` | `3.22.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.21` | `0.16.9` |\n| [mypy](https://github.com/python/mypy) | `2.3.0` | `2.3.1` |\n\n\nUpdates `fastapi` from 0.139.0 to 0.142.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.142.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Allow startup when automatic OpenTelemetry configuration fails. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16418\"\u003e#16418\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.142.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix repeated endpoint wrapping in included routers. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16414\"\u003e#16414\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.142.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add native OpenTelemetry support. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16403\"\u003e#16403\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📱 Improve mobile responsiveness of conference rail. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16196\"\u003e#16196\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Remove conf section and add event banner. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16193\"\u003e#16193\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove unused image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16195\"\u003e#16195\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Use buttons for Termynal controls. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16132\"\u003e#16132\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for hi (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16212\"\u003e#16212\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16210\"\u003e#16210\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16211\"\u003e#16211\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16208\"\u003e#16208\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16209\"\u003e#16209\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16207\"\u003e#16207\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16206\"\u003e#16206\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16205\"\u003e#16205\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16204\"\u003e#16204\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16203\"\u003e#16203\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16202\"\u003e#16202\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16201\"\u003e#16201\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16171\"\u003e#16171\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix frontend test timeout with Starlette Git. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16408\"\u003e#16408\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Permit.io. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16406\"\u003e#16406\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump anyio from 4.12.1 to 4.14.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16375\"\u003e#16375\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 15 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16285\"\u003e#16285\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 1.3.1 to 1.6.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16289\"\u003e#16289\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump annotated-doc from 0.0.4 to 0.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16288\"\u003e#16288\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typing-inspection from 0.4.2 to 0.4.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16286\"\u003e#16286\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/78c4324f0c56bc5282a459978779a9e532d19709\"\u003e\u003ccode\u003e78c4324\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16419\"\u003e#16419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2579ed0d9e73205326463025cc756650f642f511\"\u003e\u003ccode\u003e2579ed0\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1d4953d2e528b58cfb09bbc28fb25dcda227c6ea\"\u003e\u003ccode\u003e1d4953d\u003c/code\u003e\u003c/a\u003e 🐛 Allow startup when automatic OpenTelemetry configuration fails (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16418\"\u003e#16418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3e33a03bdaa3a89f27d5e0c390c4ba9032f14b5e\"\u003e\u003ccode\u003e3e33a03\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16415\"\u003e#16415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/12ea7f5a5e76c5ba3495c2803f57ed92ac67731b\"\u003e\u003ccode\u003e12ea7f5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ac88f563db5f4d3300d43355eca728c93ed9ffe2\"\u003e\u003ccode\u003eac88f56\u003c/code\u003e\u003c/a\u003e 🐛 Fix repeated endpoint wrapping in included routers (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16414\"\u003e#16414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/bd41128123fd08d693f5541e27c550eebe20f8b0\"\u003e\u003ccode\u003ebd41128\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.0 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16411\"\u003e#16411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7aa21e53c859ce52b17196b35909efca6f2fa11f\"\u003e\u003ccode\u003e7aa21e5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b3949cd9e5932f76217131fceabc74145c3db24\"\u003e\u003ccode\u003e4b3949c\u003c/code\u003e\u003c/a\u003e ✨ Add native OpenTelemetry support (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16403\"\u003e#16403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c30032a1b68fb36c03fffe1856369d3824607c7c\"\u003e\u003ccode\u003ec30032a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.139.0...0.142.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.51.0 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.54.0\u003c/h2\u003e\n\u003ch2\u003e📨 Send metadata after the response body\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.54.0 adds response trailers and \u003ccode\u003e103 Early Hints\u003c/code\u003e to its experimental HTTP/2 implementation through \u003ccode\u003ezttp\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.54.0 \u0026quot;zttp\u0026gt;=0.0.34\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend HTTP/2 response trailers\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e). The ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension lets applications send metadata, such as checksums, after the response body. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them. Multiple trailer messages are combined before completing the response.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental and opt-in.\u003c/strong\u003e Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Upgrade-based h2c and WebSockets over HTTP/2 remain unsupported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e💡 Hint at resources before the final response\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend \u003ccode\u003e103 Early Hints\u003c/code\u003e over HTTP/2\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e). Applications can use the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension to send resource hints before the final response. Each supplied link becomes a separate \u003ccode\u003eLink\u003c/code\u003e header.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.53.0...0.54.0\"\u003e0.53.0...0.54.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.53.0\u003c/h2\u003e\n\u003ch2\u003e🌐 Opt-in HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.53.0 adds experimental HTTP/2 through \u003ccode\u003ezttp\u003c/code\u003e, alongside a new \u003ccode\u003ezuvloop\u003c/code\u003e integration and connection-handling improvements.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.53.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eServe HTTP/1.1 and HTTP/2 with \u003ccode\u003ezttp\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e). Install \u003ccode\u003ezttp\u003c/code\u003e, then enable HTTP/2 with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Uvicorn negotiates HTTP/2 over TLS with ALPN and supports cleartext prior knowledge.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental.\u003c/strong\u003e Upgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚙️ More event loop choice\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRun Uvicorn with \u003ccode\u003ezuvloop\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e). Install \u003ccode\u003ezuvloop\u003c/code\u003e separately and select it explicitly with \u003ccode\u003e--loop zuvloop\u003c/code\u003e on CPython 3.14 or newer.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛡️ More reliable connections and proxies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHonor \u003ccode\u003eConnection: close\u003c/code\u003e token lists\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e). Uvicorn now parses comma-separated tokens case-insensitively across HTTP implementations.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTrust IPv6 loopback proxies by default\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e). The default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value now includes \u003ccode\u003e::1\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eKeep upgraded WebSockets alive\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e). Uvicorn cancels the HTTP keep-alive timer when the connection becomes a WebSocket.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.4...0.53.0\"\u003e0.52.4...0.53.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0 (September 24, 2026)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support remains experimental. Install \u003ccode\u003ezttp\u0026gt;=0.0.34\u003c/code\u003e and enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd HTTP/2 response trailers through the ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd HTTP/2 \u003ccode\u003e103 Early Hints\u003c/code\u003e through the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.53.0 (September 14, 2026)\u003c/h2\u003e\n\u003cp\u003eThis release adds experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e. Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\nUpgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ezuvloop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle comma-separated, case-insensitive \u003ccode\u003eConnection: close\u003c/code\u003e tokens across HTTP implementations (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTrust IPv6 loopback in the default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancel the HTTP keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.4 (August 18, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.3 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.24 and use its combined receive path, improving HTTP/1.1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3067\"\u003e#3067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.2 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.22, fixing bodyless request receives and improving HTTP/1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.1 (August 1, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete the closing handshake on server-initiated WebSocket closes in the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e and \u003ccode\u003ewsproto\u003c/code\u003e implementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing write flow control to the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, preventing data truncation on server-initiated closes with large in-flight payloads (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3048\"\u003e#3048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle connection loss while a WebSocket write is waiting on backpressure (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3eb9a9ab9af69005c687728097461c1fd2a95db9\"\u003e\u003ccode\u003e3eb9a9a\u003c/code\u003e\u003c/a\u003e Version 0.54.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3161\"\u003e#3161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cd7ef6d31c1a09a3653f326cda7813d35ffd6082\"\u003e\u003ccode\u003ecd7ef6d\u003c/code\u003e\u003c/a\u003e Remove races from supervisor tests (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a56c7cce64aaa37e5864f882a5cbce8aa1dac47a\"\u003e\u003ccode\u003ea56c7cc\u003c/code\u003e\u003c/a\u003e Support HTTP/2 response trailers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9bd4404cca9506e9ba4f46b69ef72d011ceef2bd\"\u003e\u003ccode\u003e9bd4404\u003c/code\u003e\u003c/a\u003e chore(deps): bump anyio from 4.13.0 to 4.14.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/21f39ef7988366f77fb3172569bd235ac5de34cc\"\u003e\u003ccode\u003e21f39ef\u003c/code\u003e\u003c/a\u003e Add HTTP/2 Early Hints support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/421708fbc1a704dac8bd4053a7c4c0bf4d3704ee\"\u003e\u003ccode\u003e421708f\u003c/code\u003e\u003c/a\u003e Version 0.53.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f1a1bff7be819f5724d6fdf86dfd448a97c62e23\"\u003e\u003ccode\u003ef1a1bff\u003c/code\u003e\u003c/a\u003e Unset the keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/63971ed952090438896e6eba7d07178b616d97cc\"\u003e\u003ccode\u003e63971ed\u003c/code\u003e\u003c/a\u003e Document HTTP/2 support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7d1a0055aee5e281accc646b559ddd147486bf8a\"\u003e\u003ccode\u003e7d1a005\u003c/code\u003e\u003c/a\u003e Remove race from multiprocess health check test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3128\"\u003e#3128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5ac6265a01ff6dcadb0e4250152c3deaf8a168a9\"\u003e\u003ccode\u003e5ac6265\u003c/code\u003e\u003c/a\u003e Add ::1 to FORWARDED_ALLOW_IPS (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.51.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.13.4 to 2.13.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.5/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/001dea020e0809844e5b17666432c9135a976f46\"\u003e\u003ccode\u003e001dea0\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epypa/gh-action-pypi-publish\u003c/code\u003e action to v1.14.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/558379fee957fad25858e33596146c72d5674843\"\u003e\u003ccode\u003e558379f\u003c/code\u003e\u003c/a\u003e Bump twine to v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2cfd5d3d2ae721ea882c045f83b7f7a4003aab01\"\u003e\u003ccode\u003e2cfd5d3\u003c/code\u003e\u003c/a\u003e Do not check for docs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a735bee5c64e1fe50785c376adaf1275e752b8ac\"\u003e\u003ccode\u003ea735bee\u003c/code\u003e\u003c/a\u003e Fix more Clippy lints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7eed4a16b87afaced4d0eafae230453de3410d64\"\u003e\u003ccode\u003e7eed4a1\u003c/code\u003e\u003c/a\u003e Fix Clippy 0.1.95 warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b353bbb20a4989b4c033e2be2b4a40d36178b16a\"\u003e\u003ccode\u003eb353bbb\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/63d2cccd6e760da6bbc7fe81a53cb2bde3768f5e\"\u003e\u003ccode\u003e63d2ccc\u003c/code\u003e\u003c/a\u003e Count validated model fields once in smart unions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a53ec2ed342fda4e6aa3684399d04ea57be9a6e4\"\u003e\u003ccode\u003ea53ec2e\u003c/code\u003e\u003c/a\u003e Speed up PyPy CI tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d65e0f96e890ca82f4b66a15d5b3bd65af2c661c\"\u003e\u003ccode\u003ed65e0f9\u003c/code\u003e\u003c/a\u003e Workaround circular import error in Mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/47a6dbf8ad6216211bd0df6ec5c2c6c6ed905b72\"\u003e\u003ccode\u003e47a6dbf\u003c/code\u003e\u003c/a\u003e Fix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.4...v2.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.14.2 to 2.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003eBehavior changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003ecase_sensitive\u003c/code\u003e now applies to init kwargs and config-file sources\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/900\"\u003e#900\u003c/a\u003e). \u003ccode\u003eInitSettingsSource\u003c/code\u003e and the JSON/TOML/YAML config sources previously ignored \u003ccode\u003ecase_sensitive\u003c/code\u003e. Since it defaults to \u003ccode\u003eFalse\u003c/code\u003e, \u003cstrong\u003ecase-insensitive matching is now the default\u003c/strong\u003e for these sources — e.g. \u003ccode\u003eSettings(TeSt=...)\u003c/code\u003e now populates a \u003ccode\u003etest\u003c/code\u003e field where it previously did not. Nested keys are still matched case-sensitively.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFields with unresolved forward references now emit a warning\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/901\"\u003e#901\u003c/a\u003e). Settings sources can silently fail to resolve such fields; they now raise \u003ccode\u003eIncompleteFieldDefinitionWarning\u003c/code\u003e telling you to call \u003ccode\u003emodel_rebuild()\u003c/code\u003e. If you have \u003ccode\u003efilterwarnings = error\u003c/code\u003e configured, this may surface as a new failure.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNon-JSON env values for strict fields now raise \u003ccode\u003eValidationError\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/926\"\u003e#926\u003c/a\u003e) instead of a less specific error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eShow environment variable names in CLI help\u003c/strong\u003e via \u003ccode\u003ecli_show_env_vars=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/860\"\u003e#860\u003c/a\u003e), so generated \u003ccode\u003e--help\u003c/code\u003e output doubles as configuration documentation.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003ePYDANTIC_SETTINGS_DEBUG\u003c/code\u003e for debugging settings resolution\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/906\"\u003e#906\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/913\"\u003e#913\u003c/a\u003e). Set it to a truthy value with \u003ccode\u003eDEBUG\u003c/code\u003e logging enabled to see each source's contribution in priority order, which source won for each value, and which \u003ccode\u003eenv_file\u003c/code\u003e/secret files were probed, loaded, or skipped — the long-standing \u0026quot;why isn't my \u003ccode\u003e.env\u003c/code\u003e being picked up?\u0026quot; question.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003etoml_table_header\u003c/code\u003e for regular TOML files\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/882\"\u003e#882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/886\"\u003e#886\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/887\"\u003e#887\u003c/a\u003e), letting you root settings at a nested table in any TOML file, not just \u003ccode\u003epyproject.toml\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eTraversable\u003c/code\u003e support for JSON/TOML/YAML file sources\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/902\"\u003e#902\u003c/a\u003e), so you can load config packaged inside a distribution — including files inside a zip or wheel — via \u003ccode\u003eimportlib.resources.files(...)\u003c/code\u003e without casting to \u003ccode\u003ePath\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eGCP: \u003ccode\u003eproject_id\u003c/code\u003e can come from an earlier settings source\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/878\"\u003e#878\u003c/a\u003e), rather than only from the constructor or \u003ccode\u003eGOOGLE_CLOUD_PROJECT\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix env vars not loading on Windows with \u003ccode\u003ecase_sensitive=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/894\"\u003e#894\u003c/a\u003e). Windows upper-cases \u003ccode\u003eos.environ\u003c/code\u003e keys, so fields raised \u003ccode\u003eField required\u003c/code\u003e instead of picking up their values.\u003c/li\u003e\n\u003cli\u003eRead secret files as UTF-8 instead of the platform locale encoding (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/917\"\u003e#917\u003c/a\u003e). On Windows code pages such as cp1252 this silently corrupted non-ASCII secrets.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eAliasPath\u003c/code\u003e on nested model fields not JSON-decoding env values (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/898\"\u003e#898\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix case-insensitive matching for \u003cstrong\u003eoptional\u003c/strong\u003e nested models (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/905\"\u003e#905\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix dotenv extras being wrongly claimed by a complex field sharing a name prefix (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/912\"\u003e#912\u003c/a\u003e) — e.g. \u003ccode\u003edbx_token\u003c/code\u003e being swallowed by a \u003ccode\u003edb: dict\u003c/code\u003e field.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003enested_model_default_partial_update=True\u003c/code\u003e corrupting discriminated unions (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/876\"\u003e#876\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSecret\u003c/code\u003e subclasses crashing when loaded from the environment (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/920\"\u003e#920\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix enum names not parsing through nested annotations such as \u003ccode\u003eOptional[Annotated[MyEnum, ...]]\u003c/code\u003e with \u003ccode\u003eenv_parse_enums=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/910\"\u003e#910\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAn empty \u003ccode\u003eyaml_config_section\u003c/code\u003e now falls back to defaults instead of raising \u003ccode\u003eAttributeError: 'NoneType' object has no attribute 'keys'\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/914\"\u003e#914\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNestedSecretsSettingsSource\u003c/code\u003e no longer follows symlinks pointing outside \u003ccode\u003esecrets_dir\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/889\"\u003e#889\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eGCP: skip the \u003ccode\u003elist_secrets\u003c/code\u003e call when \u003ccode\u003ecase_sensitive=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/862\"\u003e#862\u003c/a\u003e), lowering the required IAM permissions to just \u003ccode\u003eroles/secretmanager.secretAccessor\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAWS: \u003ccode\u003etypes-boto3[secretsmanager]\u003c/code\u003e is no longer required at runtime (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/880\"\u003e#880\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument JSON parsing of complex env values, plus a comma-separated-values recipe (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/919\"\u003e#919\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRecommend an async settings loading pattern (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/908\"\u003e#908\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eClarify behavior when an unprefixed value is present in a dotenv file (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/895\"\u003e#895\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eClarify environment variable helper descriptions (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/867\"\u003e#867\u003c/a\u003e) and fix assorted typos (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/904\"\u003e#904\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate documentation link for Pydantic settings by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/863\"\u003epydantic/pydantic-settings#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/865\"\u003epydantic/pydantic-settings#865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify environment variable helper descriptions by \u003ca href=\"https://github.com/vip892766gma\"\u003e\u003ccode\u003e@​vip892766gma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/867\"\u003epydantic/pydantic-settings#867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/870\"\u003epydantic/pydantic-settings#870\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/875\"\u003epydantic/pydantic-settings#875\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip list_secrets call when case_sensitive=True by \u003ca href=\"https://github.com/ecerulm\"\u003e\u003ccode\u003e@​ecerulm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/862\"\u003epydantic/pydantic-settings#862\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGoogleSecretManagerSettingsSource: read project_id from previous sources by \u003ca href=\"https://github.com/ecerulm\"\u003e\u003ccode\u003e@​ecerulm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/878\"\u003epydantic/pydantic-settings#878\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/f725ca187bee4212e9ef799eefa3cb25be788462\"\u003e\u003ccode\u003ef725ca1\u003c/code\u003e\u003c/a\u003e Prepare release 2.15.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/930\"\u003e#930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/28f35c25fac5d61210d532c31a300d49c0b684a4\"\u003e\u003ccode\u003e28f35c2\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/929\"\u003e#929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9056db049560897229f2603493753bae27b6479f\"\u003e\u003ccode\u003e9056db0\u003c/code\u003e\u003c/a\u003e test: move function-local imports to the top of test modules (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/927\"\u003e#927\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/f077e3ab3d9492838c7ef9275a88c95134688095\"\u003e\u003ccode\u003ef077e3a\u003c/code\u003e\u003c/a\u003e fix: raise ValidationError for non-JSON env values on strict fields (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/926\"\u003e#926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ae25d703c458b57f5a9a425f6ec9a28ad868f980\"\u003e\u003ccode\u003eae25d70\u003c/code\u003e\u003c/a\u003e fix: treat Secret subclasses as non-complex fields (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/716\"\u003e#716\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/798dcea2a23b08a3e9b37994014e036224f6dd18\"\u003e\u003ccode\u003e798dcea\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/924\"\u003e#924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/a190041d353bda2d432ea1908de4c499ae89ee0a\"\u003e\u003ccode\u003ea190041\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/925\"\u003e#925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/5d9333282b5c85d65a457c45e4476369b9949726\"\u003e\u003ccode\u003e5d93332\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/921\"\u003e#921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/d2fdeda91157140d2ff0c05404f32a9b1218115a\"\u003e\u003ccode\u003ed2fdeda\u003c/code\u003e\u003c/a\u003e fix: read secret files as UTF-8 instead of the locale encoding (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/917\"\u003e#917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/2256a4e60f83f2da81e7654252562fc4841aa5d4\"\u003e\u003ccode\u003e2256a4e\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 3 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/915\"\u003e#915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.14.2...v2.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.51 to 2.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.1\u003c/h1\u003e\n\u003cp\u003eReleased: September 25, 2026\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Removed the legacy underscore-separated extra names such as\n\u003ccode\u003emssql_pymssql\u003c/code\u003e and \u003ccode\u003epostgresql_psycopg\u003c/code\u003e from \u003ccode\u003epyproject.toml\u003c/code\u003e.\nThey normalize to the same names as the existing dash-separated extras,\nwhich is disallowed by \u003ca href=\"https://peps.python.org/pep-0685\"\u003ePEP 685\u003c/a\u003e, and caused the 2.1.0 source\ndistribution to fail to build with installers that enforce this rule,\nsuch as uv. The underscore spellings continue to work when installing,\nas installers normalize extra names before matching them.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13604\"\u003e#13604\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cp\u003eReleased: September 24, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [feature]\u003c/strong\u003e Added \u003ccode\u003e_orm.composite.column_template\u003c/code\u003e parameter to\n\u003ccode\u003e_orm.composite()\u003c/code\u003e.  When the composite class is a dataclass, this\nparameter accepts a string template such as \u003ccode\u003e\u0026quot;person_%s\u0026quot;\u003c/code\u003e, containing\nexactly one \u003ccode\u003e%s\u003c/code\u003e placeholder, that's used to generate column names for\ndataclass fields that don't otherwise have an explicit name, rather than\nusing the bare field name.  This removes the need to hand-write a\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e for each field when the same composite dataclass\nis mapped multiple times on the same class with different column-name\nprefixes.  Pull request courtesy Leonardo Rosa.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12575\"\u003e#12575\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where pickling an ORM object that had an instance level lazy\nloader established, such as when the \u003ccode\u003e_orm.raiseload()\u003c/code\u003e option is used,\nwould emit a spurious warning regarding the loader containing additional\ncriteria, if the object had itself been unpickled from a previous\nserialization.  This would occur for objects that cross more than one\nserialization boundary, such as when using multiprocessing.\u003c/p\u003e\n\u003cp\u003eThis change is also \u003cstrong\u003ebackported\u003c/strong\u003e to: 2.0.53\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13574\"\u003e#13574\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where calling \u003ccode\u003e_orm.aliased()\u003c/code\u003e against an existing\n\u003ccode\u003e_orm.aliased()\u003c/code\u003e construct, without passing an explicit selectable,\nwould disregard the selectable of the existing construct and produce an\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.18.5 to 1.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.20.0\u003c/h1\u003e\n\u003cp\u003eReleased: September 11, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [batch]\u003c/strong\u003e Added a warning for the case where an unnamed CHECK constraint on a\nreflected table is omitted from a batch \u0026quot;recreate\u0026quot; operation.  An unnamed\nCHECK constraint can't be reliably carried over in a batch recreate\nas it may refer to columns that are being dropped or changed.  This\nomission was previously a silent operation.   The presence of any\n\u003ccode\u003e~sqlalchemy.schema.CheckConstraint\u003c/code\u003e in\n\u003ccode\u003eOperations.batch_alter_table.table_args\u003c/code\u003e is taken to indicate\nthat the case has been accommodated, and no warning is emitted.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1846\"\u003e#1846\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [autogenerate]\u003c/strong\u003e Autogenerate now renders a warning comment above any rendered\n\u003ccode\u003eOperations.drop_constraint()\u003c/code\u003e directive for which the constraint name\nis \u003ccode\u003eNone\u003c/code\u003e, as is the case when a constraint that has no name in the model\nis dropped, most typically within the \u003ccode\u003edowngrade()\u003c/code\u003e function of a\nmigration that adds an unnamed constraint.  A warning is also emitted on\nthe console when the migration script is generated.   The directive\nrequires a non-None name in order to be able to emit a \u0026quot;DROP CONSTRAINT\u0026quot;\ncommand.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/916\"\u003e#916\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [batch]\u003c/strong\u003e Fixed bug in batch mode where adding a column with a type that generates\nits own CHECK constraint, such as \u003ccode\u003e~sqlalchemy.types.Boolean\u003c/code\u003e or\n\u003ccode\u003e~sqlalchemy.types.Enum\u003c/code\u003e with\n\u003ccode\u003e~sqlalchemy.types.Boolean.create_constraint\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e,\nwould emit the constraint twice when the table was recreated, once under\nthe name generated by the naming convention in use and once under the\nname given to the type.  The constraint is now emitted once, using the\nsame name that would be used outside of batch mode.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1768\"\u003e#1768\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [batch]\u003c/strong\u003e Fixed bug in batch mode where a CHECK constraint generated by a type such\nas \u003ccode\u003e~sqlalchemy.types.Boolean\u003c/code\u003e or \u003ccode\u003e~sqlalchemy.types.Enum\u003c/code\u003e\nwould lose the name established for it by the naming convention in use\nwhen the table was recreated, as the constraint was regenerated against\nthe temporary table used for the recreate operation.  The naming\nconvention is now resolved against the name of the table being replaced.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 5.3.1 to 8.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e✨ Highlights\u003c/h2\u003e\n\u003ch3\u003eAsync maintenance notifications\u003c/h3\u003e\n\u003cp\u003eredis-py now supports server-pushed \u003cstrong\u003emaintenance notifications\u003c/strong\u003e in the asyncio stack for both\nstandalone and cluster clients, bringing the async client to parity with the sync implementation.\nWhen a Redis deployment signals maintenance events (such as node migration or failover windows), the\nasync client reacts through the maintenance-notifications handler (\u003ccode\u003eredis/maint_notifications.py\u003c/code\u003e and\nits async integration under \u003ccode\u003eredis/asyncio/\u003c/code\u003e), allowing applications to adapt connection handling\nduring maintenance without downtime. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4177\"\u003e#4177\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eExpanded command coverage\u003c/h3\u003e\n\u003cp\u003eThis release adds a batch of new command surfaces across core data types and modules:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLists\u003c/strong\u003e — \u003ccode\u003eLMOVEM\u003c/code\u003e / \u003ccode\u003eBLMOVEM\u003c/code\u003e for moving multiple elements between lists (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4174\"\u003e#4174\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSets\u003c/strong\u003e — \u003ccode\u003eSDIFFCARD\u003c/code\u003e and \u003ccode\u003eSUNIONCARD\u003c/code\u003e cardinality commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4171\"\u003e#4171\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eStreams\u003c/strong\u003e — \u003ccode\u003eMAXCOUNT\u003c/code\u003e / \u003ccode\u003eMAXSIZE\u003c/code\u003e options for \u003ccode\u003eXREAD\u003c/code\u003e and \u003ccode\u003eXREADGROUP\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4173\"\u003e#4173\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTime Series\u003c/strong\u003e — \u003ccode\u003eTS.READ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4170\"\u003e#4170\u003c/a\u003e), \u003ccode\u003eTS.QUERYLABELS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4197\"\u003e#4197\u003c/a\u003e), \u003ccode\u003eTS.NRANGE\u003c/code\u003e / \u003ccode\u003eTS.NREVRANGE\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4163\"\u003e#4163\u003c/a\u003e),\nand an \u003ccode\u003eexclude_empty\u003c/code\u003e (\u003ccode\u003eEXCLUDEEMPTY\u003c/code\u003e) option for \u003ccode\u003eTS.MRANGE\u003c/code\u003e / \u003ccode\u003eTS.MREVRANGE\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4188\"\u003e#4188\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSearch\u003c/strong\u003e — \u003ccode\u003eFT.ALIASLIST\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4198\"\u003e#4198\u003c/a\u003e) and a \u003ccode\u003eCOLLECT\u003c/code\u003e reducer for aggregations (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4179\"\u003e#4179\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSentinel\u003c/strong\u003e — replica sentinel aliases (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4127\"\u003e#4127\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd replica sentinel aliases (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4127\"\u003e#4127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd TS.NRANGE and TS.NREVRANGE support to the timeseries command surface (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4163\"\u003e#4163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add TS.READ command support to the timeseries module (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4170\"\u003e#4170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add SDIFFCARD and SUNIONCARD command support (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4171\"\u003e#4171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add MAXCOUNT/MAXSIZE support to XREAD and XREADGROUP (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4173\"\u003e#4173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add LMOVEM and BLMOVEM commands for moving multiple list elements (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4174\"\u003e#4174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add async maintenance-notifications support for standalone and cluster clients (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4177\"\u003e#4177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add COLLECT reducer support to search aggregations (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4179\"\u003e#4179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add exclude_empty (EXCLUDEEMPTY) option to TS.MRANGE and TS.MREVRANGE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4188\"\u003e#4188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add TS.QUERYLABELS support to the timeseries command surface (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4197\"\u003e#4197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add FT.ALIASLIST support (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4198\"\u003e#4198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚠️ Experimental\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add client-side HIMPORT fieldset support for standalone and cluster clients (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4205\"\u003e#4205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe feature considered unstable and \u003cstrong\u003epublic API might be changed in the future minor version\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: detect closed pooled connection without consuming pending push data (RESP3 + hiredis) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4156\"\u003e#4156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Sentinel pool capacity loss after failover (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4193\"\u003e#4193\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/e013126df18e476fbb8b8215f040f39bd3242683\"\u003e\u003ccode\u003ee013126\u003c/code\u003e\u003c/a\u003e Testing with 8.10 GA (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4227\"\u003e#4227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/059d1e97d88dd7ed516628e0a9765ab8e0e299f1\"\u003e\u003ccode\u003e059d1e9\u003c/code\u003e\u003c/a\u003e Fixed TS.NRANGE commands to correctly apply aggregators (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4225\"\u003e#4225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d486a0a982dcdf316006474dc286ca65cbec5a9f\"\u003e\u003ccode\u003ed486a0a\u003c/code\u003e\u003c/a\u003e Fix FIELDNAME alias dropping first character of un-prefixed fields (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4224\"\u003e#4224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/fb931042420baaa5fbb9021955e444f7afa66dc2\"\u003e\u003ccode\u003efb93104\u003c/code\u003e\u003c/a\u003e feat: add client-side HIMPORT fieldset support for standalone and cluster cli...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/9197609f48eb9713411a50534ca48210486a4bf9\"\u003e\u003ccode\u003e9197609\u003c/code\u003e\u003c/a\u003e Fix lat/lon swap in search querystring geo() helper (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4223\"\u003e#4223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/14714a0812d3ff03ad34c89ce6f79e287a04e9fb\"\u003e\u003ccode\u003e14714a0\u003c/code\u003e\u003c/a\u003e fix: Fixed double decoding issue with unquote() (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4222\"\u003e#4222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/227280a939718d09ff9d7c41f9785ffdc21bdc2a\"\u003e\u003ccode\u003e227280a\u003c/code\u003e\u003c/a\u003e Update lib version to 8.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/88d16d0db10c852d1d292628b2c832f1ed117056\"\u003e\u003ccode\u003e88d16d0\u003c/code\u003e\u003c/a\u003e Decode ACL LOG string values on the default RESP3 legacy callback (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4201\"\u003e#4201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/599fd75ca7d0745928280ff3a64ccd224dbf2b76\"\u003e\u003ccode\u003e599fd75\u003c/code\u003e\u003c/a\u003e feat: add FT.ALIASLIST support (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4198\"\u003e#4198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/71e275e6eae94d202b49bccce10ef0d2a59050e7\"\u003e\u003ccode\u003e71e275e\u003c/code\u003e\u003c/a\u003e test: add VectorField RERANK serialization tests for sync and async search (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v5.3.1...v8.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.4.2 to 8.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.5.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.5.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.5.0/\"\u003ehttps://pypi.org/project/click/8.5.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-5-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-5-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/33\"\u003ehttps://github.com/pallets/click/milestone/33\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd built-in shell completion support for PowerShell (Windows PowerShell\n5.1+ and pwsh 7+) alongside the existing \u003ccode\u003ebash\u003c/code\u003e, \u003ccode\u003ezsh\u003c/code\u003e, and \u003ccode\u003efish\u003c/code\u003e\ncompleters. Use \u003ccode\u003e_FOO_BAR_COMPLETE=powershell_source foo-bar\u003c/code\u003e to generate\nthe completion script. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2672\"\u003e#2672\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3637\"\u003e#3637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupported versions of Windows enable ANSI terminal styles by default.\nColorama is no longer a dependency and is not used. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2986\"\u003e#2986\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3505\"\u003e#3505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003eArgument\u003c/code\u003e accepts a \u003ccode\u003ehelp\u003c/code\u003e parameter, and help output includes\na \u003ccode\u003ePositional arguments\u003c/code\u003e section when argument help is available. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2983\"\u003e#2983\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3473\"\u003e#3473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfirm()\u003c/code\u003e and \u003ccode\u003eprompt()\u003c/code\u003e strip ANSI color and style codes from the\nprompt when the output stream does not support them, matching \u003ccode\u003eecho()\u003c/code\u003e.\nThis stripping was lost in \u003ccode\u003e8.4.0\u003c/code\u003e when \u003ca href=\"https://redirect.github.com/pallets/click/issues/2969\"\u003e#2969\u003c/a\u003e began writing the\nprompt with \u003ccode\u003einput()\u003c/code\u003e directly. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3572\"\u003e#3572\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3653\"\u003e#3653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003ePath\u003c/code\u003e with \u003ccode\u003eallow_dash=True\u003c/code\u003e no longer triggers a \u003ccode\u003eBytesWarning\u003c/code\u003e,\nan error under \u003ccode\u003epython -bb\u003c/code\u003e, when checking a value against the \u003ccode\u003e-\u003c/code\u003e\nconvention. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2877\"\u003e#2877\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3642\"\u003e#3642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd {func}\u003ccode\u003ecustom_version_option\u003c/code\u003e, a \u003ccode\u003e--version\u003c/code\u003e option whose output is\nproduced by a callback, covering cases {func}\u003ccode\u003eversion_option\u003c/code\u003e intentionally\ndoes not. The feature set of {func}\u003ccode\u003eversion_option\u003c/code\u003e is now frozen; see\n[discussion \u003ca href=\"https://redirect.github.com/pallets/click/issues/3527\"\u003e#3527\u003c/a\u003e](\u003ca href=\"https://github.com/pallets/click/discussions/3527\"\u003ehttps://github.com/pallets/click/discussions/3527\u003c/a\u003e). \u003ca href=\"https://redirect.github.com/pallets/click/issues/3581\"\u003e#3581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estyle()\u003c/code\u003e and \u003ccode\u003esecho()\u003c/code\u003e no longer silently drop the 256-color index \u003ccode\u003e0\u003c/code\u003e\n(black) passed as \u003ccode\u003efg\u003c/code\u003e or \u003ccode\u003ebg\u003c/code\u003e, and now validate color arguments. Invalid\ncolors raise a \u003ccode\u003eValueError\u003c/code\u003e instead of a \u003ccode\u003eTypeError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3677\"\u003e#3677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe automatic help option stores its value under the reserved name\n\u003ccode\u003e_click_default_help\u003c/code\u003e instead of \u003ccode\u003ehelp\u003c/code\u003e, so a parameter named \u003ccode\u003ehelp\u003c/code\u003e no\nlonger breaks parsing. The new name is visible in\n{meth}\u003ccode\u003eCommand.to_info_dict\u003c/code\u003e output. Parameters that overwrite each other's\nvalue trigger a warning: an argument sharing its name with another\nparameter, or any parameter claiming the reserved name. Options may still\nshare a name to compete for the same value (feature switches).\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2819\"\u003e#2819\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3678\"\u003e#3678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunstyle\u003c/code\u003e and the ANSI handling behind help-text wrapping now strip the full\nCSI escape-sequence grammar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3681\"\u003e#3681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStreamline \u003ccode\u003eOption\u003c/code\u003e flag handling: the flag-kind, type, lazy-default and\nvalidation steps in \u003ccode\u003eOption.__init__\u003c/code\u003e move into focused helpers, and\n\u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003edefault\u003c/code\u003e keep their unset sentinel at construction\n(resolved lazily on read) so \u003ccode\u003eis UNSET\u003c/code\u003e reliably tells a user-supplied value\nfrom an auto-derived one. Runtime behavior is unchanged, but\n{meth}\u003ccode\u003eParameter.to_info_dict\u003c/code\u003e now resolves \u003ccode\u003edefault=True\u003c/code\u003e on a feature\nswitch to its \u003ccode\u003eflag_value\u003c/code\u003e, matching what the function receives at call\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.5.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-08-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd built-in shell completion support for PowerShell (Windows PowerShell\n5.1+ and pwsh 7+) alongside the existing \u003ccode\u003ebash\u003c/code\u003e, \u003ccode\u003ezsh\u003c/code\u003e, and \u003ccode\u003efish\u003c/code\u003e\ncompleters. Use \u003ccode\u003e_FOO_BAR_COMPLETE=powershell_source foo-bar\u003c/code\u003e to generate\nthe completion script. {issue}\u003ccode\u003e2672\u003c/code\u003e {pr}\u003ccode\u003e3637\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSupported versions of Windows enable ANSI terminal styles by default.\nColorama is no longer a dependency and is not used. {issue}\u003ccode\u003e2986\u003c/code\u003e {pr}\u003ccode\u003e3505\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003eArgument\u003c/code\u003e accepts a \u003ccode\u003ehelp\u003c/code\u003e parameter, and help output includes\na \u003ccode\u003ePositional arguments\u003c/code\u003e section when argument help is available. {issue}\u003ccode\u003e2983\u003c/code\u003e {pr}\u003ccode\u003e3473\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfirm()\u003c/code\u003e and \u003ccode\u003eprompt()\u003c/code\u003e strip ANSI color and style codes from the\nprompt when the output stream does not support them, matching \u003ccode\u003eecho()\u003c/code\u003e.\nThis stripping was lost in \u003ccode\u003e8.4.0\u003c/code\u003e when {pr}\u003ccode\u003e2969\u003c/code\u003e began writing the\nprompt with \u003ccode\u003einput()\u003c/code\u003e directly. {issue}\u003ccode\u003e3572\u003c/code\u003e {pr}\u003ccode\u003e3653\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix test failures when using pytest \u0026gt;= 9.1. {pr}\u003ccode\u003e3656\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003ePath\u003c/code\u003e with \u003ccode\u003eallow_dash=True\u003c/code\u003e no longer triggers a \u003ccode\u003eBytesWarning\u003c/code\u003e,\nan error under \u003ccode\u003epython -bb\u003c/code\u003e, when checking a value against the \u003ccode\u003e-\u003c/code\u003e\nconvention. {issue}\u003ccode\u003e2877\u003c/code\u003e {pr}\u003ccode\u003e3642\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd {func}\u003ccode\u003ecustom_version_option\u003c/code\u003e, a \u003ccode\u003e--version\u003c/code\u003e option whose output is\nproduced by a callback, covering cases {func}\u003ccode\u003eversion_option\u003c/code\u003e intentionally\ndoes not. The feature set of {func}\u003ccode\u003eversion_option\u003c/code\u003e is now frozen; see\n[discussion \u003ca href=\"https://redirect.github.com/pallets/click/issues/3527\"\u003e#3527\u003c/a\u003e](\u003ca href=\"https://github.com/pallets/click/discussions/3527\"\u003ehttps://github.com/pallets/click/discussions/3527\u003c/a\u003e). {pr}\u003ccode\u003e3581\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estyle()\u003c/code\u003e and \u003ccode\u003esecho()\u003c/code\u003e no longer silently drop the 256-color index \u003ccode\u003e0\u003c/code\u003e\n(black) passed as \u003ccode\u003efg\u003c/code\u003e or \u003ccode\u003ebg\u003c/code\u003e, and now validate color arguments. Invalid\ncolors raise a \u003ccode\u003eValueError\u003c/code\u003e instead of a \u003ccode\u003eTypeError\u003c/code\u003e. {pr}\u003ccode\u003e3677\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe automatic help option stores its value under the reserved name\n\u003ccode\u003e_click_default_help\u003c/code\u003e instead of \u003ccode\u003ehelp\u003c/code\u003e, so a parameter named \u003ccode\u003ehelp\u003c/code\u003e no\nlonger breaks parsing. The new name is visible in\n{meth}\u003ccode\u003eCommand.to_info_dict\u003c/code\u003e output. Parameters that overwrite each other's\nvalue trigger a warning: an argument sharing its name with another\nparameter, or any parameter claiming the reserved name. Options may still\nshare a name to compete for the same value (feature switches).\n{issue}\u003ccode\u003e2819\u003c/code\u003e {pr}\u003ccode\u003e3678\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunstyle\u003c/code\u003e and the ANSI handling behind help-text wrapping now strip the full\nCSI escape-sequence grammar. {pr}\u003ccode\u003e3681\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStreamline \u003ccode\u003eOption\u003c/code\u003e flag handling: the flag-kind, type, lazy-default and\nvalidation steps in \u003ccode\u003eOption.__init__\u003c/code\u003e move into focused helpers, and\n\u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003edefault\u003c/code\u003e keep their unset sentinel at construction\n(resolved lazily on read) so \u003ccode\u003eis UNSET\u003c/code\u003e reliably tells a user-supplied value\nfrom an auto-derived one. Runtime behavior is unchanged, but\n{meth}\u003ccode\u003eParameter.to_info_dict\u003c/code\u003e now resolves \u003ccode\u003edefault=True\u003c/code\u003e on a feature\nswitch to its \u003ccode\u003eflag_value\u003c/code\u003e, matching what the function receives at call\ntime. {pr}\u003ccode\u003e3641\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eget_binary_stream\u003c/code\u003e and {func}\u003ccode\u003eget_text_stream\u003c/code\u003e are deprecated and\nwill be removed in Click 9.0. {issue}\u003ccode\u003e3481\u003c/code\u003e {pr}\u003ccode\u003e3695\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe following \u003ccode\u003eclick.utils\u003c/code\u003e names were never intentionally public and are\nnow private (\u003ccode\u003e_\u003c/code\u003e-prefixed). The old names remain available with a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e until Click 9.0: \u003ccode\u003eLazyFile\u003c/code\u003e, \u003ccode\u003eKeepOpenFile\u003c/code\u003e,\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8b19813f2bfca99f1018a587a8cf54fc959f2e5d\"\u003e\u003ccode\u003e8b19813\u003c/code\u003e\u003c/a\u003e Release version 8.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2c8cd3ac958a7eb316d67f2d316c27086c4c0369\"\u003e\u003ccode\u003e2c8cd3a\u003c/code\u003e\u003c/a\u003e Add FAQ entry about \u003ccode\u003eUnicodeEncodeError\u003c/code\u003e on Windows (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3778\"\u003e#3778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/131c86aadddfa5cb6dca8339c9d6294c4eacb8ac\"\u003e\u003ccode\u003e131c86a\u003c/code\u003e\u003c/a\u003e Add FAQ entry about \u003ccode\u003eUnicodeEncodeError\u003c/code\u003e on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e1fd5946ab26aaf372009eaff1acf947140b40fb\"\u003e\u003ccode\u003ee1fd594\u003c/code\u003e\u003c/a\u003e Add support of \u003ccode\u003epathlib.Path\u003c/code\u003e to \u003ccode\u003eedit\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3781\"\u003e#3781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a1d87858abd77fa8e3ffc204670ccd75b96c4781\"\u003e\u003ccode\u003ea1d8785\u003c/code\u003e\u003c/a\u003e Add support of \u003ccode\u003epathlib.Path\u003c/code\u003e to \u003ccode\u003eedit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2103e157683c5e4cadc8ee1838df526a54bde9a4\"\u003e\u003ccode\u003e2103e15\u003c/code\u003e\u003c/a\u003e Forward all user's parameters set in \u003ccode\u003ePAGER\u003c/code\u003e and improve flag detection (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3777\"\u003e#3777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a6256bfb5971d5e58585fe7b6c656134e1ade5a4\"\u003e\u003ccode\u003ea6256bf\u003c/code\u003e\u003c/a\u003e Forwards all user's parameters set in \u003ccode\u003ePAGER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/61b69e967e525bd502f5bf42def4d551e761fe0e\"\u003e\u003ccode\u003e61b69e9\u003c/code\u003e\u003c/a\u003e Resolve the pager command once, in \u003ccode\u003e_pager_contextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3776\"\u003e#3776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/9835b0f7612d1b1ea180a975fd6d24cf16791ba8\"\u003e\u003ccode\u003e9835b0f\u003c/code\u003e\u003c/a\u003e Resolve the pager command once, in \u003ccode\u003e_pager_contextmanager\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f36d58bbd7f188178de2d4fe1d0292c510375ca7\"\u003e\u003ccode\u003ef36d58b\u003c/code\u003e\u003c/a\u003e Refactor pager stream handling (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3767\"\u003e#3767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.2...8.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.3.3 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport ...\n\n_Description has been truncated_\n\n\u003c!-- This is an auto-generated comment: release notes by coderabbit.ai --\u003e\n\n## Summary by CodeRabbit\n\n* **Chores**\n  * Updated versions of several application and development dependencies.\n\n\u003c!-- end of auto-generated comment: release notes by coderabbit.ai --\u003e","html_url":"https://github.com/desn1k/betpulse/pull/80","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/desn1k%2Fbetpulse/issues/80","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/80/packages"},{"uuid":"5687275181","node_id":"PR_kwDOPyIw988AAAABGZx5gQ","number":1398,"state":"closed","title":"deps(deps): bump the python-minor-patch group across 1 directory with 42 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-10-03T19:26:03.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-03T06:36:12.000Z","updated_at":"2026-10-03T19:26:13.000Z","time_to_close":46191,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"python-minor-patch","update_count":42,"packages":[{"name":"readchar","old_version":"4.2.1","new_version":"4.2.2","repository_url":"https://github.com/magmax/python-readchar"},{"name":"requests","old_version":"2.33.0","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"python-dotenv","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"litellm","old_version":"1.88.6","new_version":"1.103.1","repository_url":"https://github.com/BerriAI/litellm"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.54.0"},{"name":"chardet","old_version":"7.4.0.post2","new_version":"7.6.0","repository_url":"https://github.com/chardet/chardet"},{"name":"numpy","old_version":"2.4.4","new_version":"2.4.6","repository_url":"https://github.com/numpy/numpy"},{"name":"scikit-learn","old_version":"1.8.0","new_version":"1.9.1","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"pandas","old_version":"3.0.1","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"markdown","old_version":"3.10.2","new_version":"3.11","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pdfplumber","old_version":"0.11.9","new_version":"0.11.10","repository_url":"https://github.com/jsvine/pdfplumber"},{"name":"pytest","old_version":"9.0.3","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-mock","old_version":"3.15.1","new_version":"3.16.0","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"ruff","old_version":"0.14.14","new_version":"0.16.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"black","old_version":"26.3.1","new_version":"26.5.1","repository_url":"https://github.com/psf/black"},{"name":"flake8","old_version":"7.3.0","new_version":"7.4.1","repository_url":"https://github.com/pycqa/flake8"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.2","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pip-audit","old_version":"2.9.0","new_version":"2.10.1","repository_url":"https://github.com/pypa/pip-audit"},{"name":"dopetask","old_version":"0.5.1","new_version":"0.5.7","repository_url":"https://github.com/DDD-Enterprises/dopeTask"},{"name":"tree-sitter","old_version":"0.25.2","new_version":"0.26.0","repository_url":"https://github.com/tree-sitter/py-tree-sitter"},{"name":"tree-sitter-python","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/tree-sitter/tree-sitter-python"},{"name":"tree-sitter-javascript","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/tree-sitter/tree-sitter-javascript"},{"name":"tree-sitter-typescript","old_version":"0.23.0","new_version":"0.23.2","repository_url":"https://github.com/tree-sitter/tree-sitter-typescript"},{"name":"tree-sitter-go","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/tree-sitter/tree-sitter-go"},{"name":"tree-sitter-rust","old_version":"0.23.0","new_version":"0.24.2","repository_url":"https://github.com/tree-sitter/tree-sitter-rust"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"prometheus-client","old_version":"0.24.1","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"pyjwt","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"cryptography","old_version":"50.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"qdrant-client","old_version":"1.17.1","new_version":"1.19.1","repository_url":"https://github.com/qdrant/qdrant-client"},{"name":"pymupdf","old_version":"1.27.2.2","new_version":"1.28.2","repository_url":"https://github.com/pymupdf/pymupdf"},{"name":"beautifulsoup4","old_version":"4.14.3","new_version":"4.15.0"},{"name":"lxml","old_version":"6.1.0","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"python-multipart","old_version":"0.0.31","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.13","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"alembic","old_version":"1.18.4","new_version":"1.20.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pytz","old_version":"2026.1.post1","new_version":"2026.4","repository_url":"https://github.com/stub42/pytz"},{"name":"orjson","old_version":"3.11.7","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"msgpack","old_version":"1.2.1","new_version":"1.2.3","repository_url":"https://github.com/msgpack/msgpack-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 42 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [readchar](https://github.com/magmax/python-readchar) | `4.2.1` | `4.2.2` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.34.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.2` | `1.2.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.5` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [litellm](https://github.com/BerriAI/litellm) | `1.88.6` | `1.103.1` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.54.0` |\n| [chardet](https://github.com/chardet/chardet) | `7.4.0.post2` | `7.6.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.4` | `2.4.6` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.8.0` | `1.9.1` |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.1` | `3.0.6` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.10.2` | `3.11` |\n| [pdfplumber](https://github.com/jsvine/pdfplumber) | `0.11.9` | `0.11.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.15.1` | `3.16.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.14` | `0.16.9` |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.1` |\n| [flake8](https://github.com/pycqa/flake8) | `7.3.0` | `7.4.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.2` |\n| [pip-audit](https://github.com/pypa/pip-audit) | `2.9.0` | `2.10.1` |\n| [dopetask](https://github.com/DDD-Enterprises/dopeTask) | `0.5.1` | `0.5.7` |\n| [tree-sitter](https://github.com/tree-sitter/py-tree-sitter) | `0.25.2` | `0.26.0` |\n| [tree-sitter-python](https://github.com/tree-sitter/tree-sitter-python) | `0.23.0` | `0.25.0` |\n| [tree-sitter-javascript](https://github.com/tree-sitter/tree-sitter-javascript) | `0.23.0` | `0.25.0` |\n| [tree-sitter-typescript](https://github.com/tree-sitter/tree-sitter-typescript) | `0.23.0` | `0.23.2` |\n| [tree-sitter-go](https://github.com/tree-sitter/tree-sitter-go) | `0.23.0` | `0.25.0` |\n| [tree-sitter-rust](https://github.com/tree-sitter/tree-sitter-rust) | `0.23.0` | `0.24.2` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.24.1` | `0.26.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.15.0` | `2.15.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.1` |\n| [qdrant-client](https://github.com/qdrant/qdrant-client) | `1.17.1` | `1.19.1` |\n| [pymupdf](https://github.com/pymupdf/pymupdf) | `1.27.2.2` | `1.28.2` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.3` | `4.15.0` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.0` | `6.1.3` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.31` | `0.0.32` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.13` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.4` | `1.20.0` |\n| [pytz](https://github.com/stub42/pytz) | `2026.1.post1` | `2026.4` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.12.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.2.1` | `1.2.3` |\n\n\nUpdates `readchar` from 4.2.1 to 4.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/magmax/python-readchar/releases\"\u003ereadchar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix pytest 9 compatibility by \u003ca href=\"https://github.com/mweinelt\"\u003e\u003ccode\u003e@​mweinelt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/129\"\u003emagmax/python-readchar#129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd android as supported platform by \u003ca href=\"https://github.com/Mause\"\u003e\u003ccode\u003e@​Mause\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/130\"\u003emagmax/python-readchar#130\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mweinelt\"\u003e\u003ccode\u003e@​mweinelt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/129\"\u003emagmax/python-readchar#129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Mause\"\u003e\u003ccode\u003e@​Mause\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/130\"\u003emagmax/python-readchar#130\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/magmax/python-readchar/compare/v4.2.1...v4.2.2\"\u003ehttps://github.com/magmax/python-readchar/compare/v4.2.1...v4.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/05faadbfd883e80fe8e3ff1f8da97471a3b85262\"\u003e\u003ccode\u003e05faadb\u003c/code\u003e\u003c/a\u003e release v4.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/a9f2384ae26520a9456673b73c05944aae8fd2ca\"\u003e\u003ccode\u003ea9f2384\u003c/code\u003e\u003c/a\u003e Add android as supported platform (\u003ca href=\"https://redirect.github.com/magmax/python-readchar/issues/130\"\u003e#130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/753cb421b5a2cbe3601b1923992ac8b4985839a1\"\u003e\u003ccode\u003e753cb42\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/magmax/python-readchar/issues/129\"\u003e#129\u003c/a\u003e from mweinelt/pytest9-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/5165992002f211fe85175bcbb4f9a60d5e90fdac\"\u003e\u003ccode\u003e5165992\u003c/code\u003e\u003c/a\u003e Fix pytest 9 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/2204f05e47b7e5c6209a49dfde0ad64938e439a5\"\u003e\u003ccode\u003e2204f05\u003c/code\u003e\u003c/a\u003e increment version after release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/magmax/python-readchar/compare/v4.2.1...v4.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.0 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.0...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.2 to 1.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.3] - 2026-08-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/49515afee2d50c33cad9419b3800b3a0dc93fc59\"\u003e\u003ccode\u003e49515af\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.2 → 1.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ac846ff2760b65470e769d7eed33e540f0934e1\"\u003e\u003ccode\u003e8ac846f\u003c/code\u003e\u003c/a\u003e chore: add release runbook (RELEASING.md) and make release target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/bb31c944fb4b40e8dea59587f525840c38326166\"\u003e\u003ccode\u003ebb31c94\u003c/code\u003e\u003c/a\u003e docs: add 1.2.3 release notes (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f7b18d9c72d1abcc2ad4023424b84f5bee30d266\"\u003e\u003ccode\u003ef7b18d9\u003c/code\u003e\u003c/a\u003e fix: round-trip backslashes through set_key (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/751f8c148222e58aa173c83c4e5e6cfccb2cc124\"\u003e\u003ccode\u003e751f8c1\u003c/code\u003e\u003c/a\u003e ci(deps): bump actions/checkout from 6.0.2 to 6.0.3 in the github-actions gro...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f1937b68f338d7ebd7754da377ca08b2f0df8dbb\"\u003e\u003ccode\u003ef1937b6\u003c/code\u003e\u003c/a\u003e chore(deps): update mkdocs-include-markdown-plugin requirement from \u0026gt;=6.0.0 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/45b93720dd5e9e127d0be3971a04855d34e464d8\"\u003e\u003ccode\u003e45b9372\u003c/code\u003e\u003c/a\u003e chore(deps): update pytest requirement from \u0026gt;=3.9 to \u0026gt;=9.0.3 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/72896e9244d2a1ff8d5e1934d3df8a35c813799a\"\u003e\u003ccode\u003e72896e9\u003c/code\u003e\u003c/a\u003e docs: fix broken mkdocs link in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/636\"\u003e#636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/72754a16a4743e4c92edf87ce59ba0e4ff78758d\"\u003e\u003ccode\u003e72754a1\u003c/code\u003e\u003c/a\u003e ci(deps): bump peaceiris/actions-gh-pages from 4.0.0 to 4.1.0 in the github-a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/078325e92558330e9addc661b789c7b6123fa73c\"\u003e\u003ccode\u003e078325e\u003c/code\u003e\u003c/a\u003e ci(security): harden CI/CD supply chain with SHA pinning and least-privilege ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.2...v1.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.5/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/001dea020e0809844e5b17666432c9135a976f46\"\u003e\u003ccode\u003e001dea0\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epypa/gh-action-pypi-publish\u003c/code\u003e action to v1.14.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/558379fee957fad25858e33596146c72d5674843\"\u003e\u003ccode\u003e558379f\u003c/code\u003e\u003c/a\u003e Bump twine to v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2cfd5d3d2ae721ea882c045f83b7f7a4003aab01\"\u003e\u003ccode\u003e2cfd5d3\u003c/code\u003e\u003c/a\u003e Do not check for docs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a735bee5c64e1fe50785c376adaf1275e752b8ac\"\u003e\u003ccode\u003ea735bee\u003c/code\u003e\u003c/a\u003e Fix more Clippy lints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7eed4a16b87afaced4d0eafae230453de3410d64\"\u003e\u003ccode\u003e7eed4a1\u003c/code\u003e\u003c/a\u003e Fix Clippy 0.1.95 warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b353bbb20a4989b4c033e2be2b4a40d36178b16a\"\u003e\u003ccode\u003eb353bbb\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/63d2cccd6e760da6bbc7fe81a53cb2bde3768f5e\"\u003e\u003ccode\u003e63d2ccc\u003c/code\u003e\u003c/a\u003e Count validated model fields once in smart unions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a53ec2ed342fda4e6aa3684399d04ea57be9a6e4\"\u003e\u003ccode\u003ea53ec2e\u003c/code\u003e\u003c/a\u003e Speed up PyPy CI tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d65e0f96e890ca82f4b66a15d5b3bd65af2c661c\"\u003e\u003ccode\u003ed65e0f9\u003c/code\u003e\u003c/a\u003e Workaround circular import error in Mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/47a6dbf8ad6216211bd0df6ec5c2c6c6ed905b72\"\u003e\u003ccode\u003e47a6dbf\u003c/code\u003e\u003c/a\u003e Fix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `docker` from 7.1.0 to 7.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/docker/docker-py/releases\"\u003edocker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.0\u003c/h2\u003e\n\u003ch2\u003eUpgrade Notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edocker.from_env()\u003c/code\u003e now honors the active Docker CLI context when \u003ccode\u003eDOCKER_HOST\u003c/code\u003e is not set.\n\u003cul\u003e\n\u003cli\u003eThis means the client may connect to the daemon selected by \u003ccode\u003eDOCKER_CONTEXT\u003c/code\u003e or the current context in \u003ccode\u003e~/.docker/config.json\u003c/code\u003e, matching Docker CLI behavior more closely.\u003c/li\u003e\n\u003cli\u003eIf your application relied on the previous default connection behavior, set \u003ccode\u003eDOCKER_HOST\u003c/code\u003e explicitly, set \u003ccode\u003eDOCKER_CONTEXT=default\u003c/code\u003e, or pass \u003ccode\u003euse_context=False\u003c/code\u003e to \u003ccode\u003eDockerClient.from_env()\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edocker.from_context()\u003c/code\u003e / \u003ccode\u003eDockerClient.from_context()\u003c/code\u003e for explicitly creating a client from a Docker CLI context.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Docker contexts when creating the default client\u003c/li\u003e\n\u003cli\u003eAdded subpath support for volumes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eexec_run\u003c/code\u003e documentation for the \u003ccode\u003estream\u003c/code\u003e parameter\u003c/li\u003e\n\u003cli\u003eFixed image loading to avoid depending on the deprecated \u003ccode\u003eJSONMessage.error\u003c/code\u003e field\u003c/li\u003e\n\u003cli\u003ePreserved the rotated unlock key in swarm integration tests\u003c/li\u003e\n\u003cli\u003eFixed SSL certificate generation in tests\u003c/li\u003e\n\u003cli\u003eFixed IPv6 integration tests by explicitly enabling IPv6 where required\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated tests for newer Docker Engine behavior\u003c/li\u003e\n\u003cli\u003eCI and build updates\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etests/exec: expect 127 exit code for missing executable by \u003ca href=\"https://github.com/laurazard\"\u003e\u003ccode\u003e@​laurazard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3290\"\u003edocker/docker-py#3290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixing doc for stream param in exec_run by \u003ca href=\"https://github.com/yasonk\"\u003e\u003ccode\u003e@​yasonk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3292\"\u003edocker/docker-py#3292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump default API version to 1.45 (Moby 26.0/26.1) by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3261\"\u003edocker/docker-py#3261\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet a dummy-version if none set, and remove unused APT_MIRROR build-arg by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3267\"\u003edocker/docker-py#3267\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_service_logs: stop testing experimental versions by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/2442\"\u003edocker/docker-py#2442\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile: fix circular reference for integration-dind by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3297\"\u003edocker/docker-py#3297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eimage load: don't depend on deprecated JSONMessage.error field by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3307\"\u003edocker/docker-py#3307\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintegration: test_create_volume_invalid_driver allow either 400 or 404 by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3296\"\u003edocker/docker-py#3296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintegration: adjust tests for omitted \u0026quot;OnBuild\u0026quot; by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3336\"\u003edocker/docker-py#3336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement Subpath Support for Volumes in Docker-Py (\u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3243\"\u003e#3243\u003c/a\u003e) by \u003ca href=\"https://github.com/Khushiyant\"\u003e\u003ccode\u003e@​Khushiyant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3270\"\u003edocker/docker-py#3270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: fix ssl generation by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3365\"\u003edocker/docker-py#3365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest/integration: don't check for deprecated Networks field by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3362\"\u003edocker/docker-py#3362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: Skip from_env_unix tests if DOCKER_HOST is network socket by \u003ca href=\"https://github.com/ricardobranco777\"\u003e\u003ccode\u003e@​ricardobranco777\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3366\"\u003edocker/docker-py#3366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_connect_with_ipv6_address: enable IPv6 by \u003ca href=\"https://github.com/robmry\"\u003e\u003ccode\u003e@​robmry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3372\"\u003edocker/docker-py#3372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_create_with_ipv6_address: enable IPv6 by \u003ca href=\"https://github.com/robmry\"\u003e\u003ccode\u003e@​robmry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3373\"\u003edocker/docker-py#3373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: Migrate off gpg2 and regenerate key ed25519 by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3399\"\u003edocker/docker-py#3399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egha: Pin to digests by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3408\"\u003edocker/docker-py#3408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests on non-amd64 hosts and add ARM64 CI by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3407\"\u003edocker/docker-py#3407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintegration/swarm: Preserve rotated unlock key by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3410\"\u003edocker/docker-py#3410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DKP-2535] Honour context if present for default client, add contexts support by \u003ca href=\"https://github.com/ebriney\"\u003e\u003ccode\u003e@​ebriney\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3401\"\u003edocker/docker-py#3401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: 7.2.0 changelog by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3415\"\u003edocker/docker-py#3415\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/laurazard\"\u003e\u003ccode\u003e@​laurazard\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3290\"\u003edocker/docker-py#3290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yasonk\"\u003e\u003ccode\u003e@​yasonk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3292\"\u003edocker/docker-py#3292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ricardobranco777\"\u003e\u003ccode\u003e@​ricardobranco777\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3366\"\u003edocker/docker-py#3366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/5ad5327fba623897ee9a527d7eee1b01703e0726\"\u003e\u003ccode\u003e5ad5327\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3415\"\u003e#3415\u003c/a\u003e from vvoland/update-changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/d2422303703cf33f604018d0601d8e4b71a2131e\"\u003e\u003ccode\u003ed242230\u003c/code\u003e\u003c/a\u003e docs: 7.2.0 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/ba01cc7291a00a96260792c27046cfaedd9a61dc\"\u003e\u003ccode\u003eba01cc7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3401\"\u003e#3401\u003c/a\u003e from ebriney/client-from-context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/ae5dfe9111b1f4e9fafd4107a8ac4a3fa52644dc\"\u003e\u003ccode\u003eae5dfe9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3410\"\u003e#3410\u003c/a\u003e from vvoland/fix-flaky\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/aa999998eded49919086be7fc4448f5dc9eac689\"\u003e\u003ccode\u003eaa99999\u003c/code\u003e\u003c/a\u003e integration/swarm: Preserve rotated unlock key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/059d371b576b9f324a16753e2a775b1f7731b6d0\"\u003e\u003ccode\u003e059d371\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3407\"\u003e#3407\u003c/a\u003e from vvoland/fix-arm64\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/9b4b9b8461966e5b54638490e66c91e45f25ea19\"\u003e\u003ccode\u003e9b4b9b8\u003c/code\u003e\u003c/a\u003e gha: Add arm64 integration CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/9e9f8ff315fe405d7f7e89b394d6269217c51dfe\"\u003e\u003ccode\u003e9e9f8ff\u003c/code\u003e\u003c/a\u003e Skip tests incompatible with host architecture\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/e0542d9ee4b564822722a3c49d9948484ffb37bc\"\u003e\u003ccode\u003ee0542d9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3408\"\u003e#3408\u003c/a\u003e from vvoland/gha-pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/578a11dd65e167b0421b9f9af143635ce93abe83\"\u003e\u003ccode\u003e578a11d\u003c/code\u003e\u003c/a\u003e gha: Pin to digests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/docker/docker-py/compare/7.1.0...7.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `litellm` from 1.88.6 to 1.103.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/BerriAI/litellm/releases\"\u003elitellm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.103.1\u003c/h2\u003e\n\u003ch2\u003eVerify Docker Image Signature\u003c/h2\u003e\n\u003cp\u003eAll LiteLLM Docker images are signed with \u003ca href=\"https://docs.sigstore.dev/cosign/overview/\"\u003ecosign\u003c/a\u003e. Every release is signed with the same key introduced in \u003ca href=\"https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0\"\u003ecommit \u003ccode\u003e0112e53\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eVerify using the pinned commit hash (recommended):\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eA commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.103.1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eVerify using the release tag (convenience):\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eTags are protected in this repository and resolve to the same key. This option is easier to read but relies on tag protection rules:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/v1.103.1/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.103.1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eExpected output:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eThe following checks were performed on each of these signatures:\n  - The cosign claims were validated\n  - The signatures were verified against the specified public key\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BerriAI/litellm/compare/v1.103.0...v1.103.1\"\u003ehttps://github.com/BerriAI/litellm/compare/v1.103.0...v1.103.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.103.0\u003c/h2\u003e\n\u003ch2\u003eVerify Docker Image Signature\u003c/h2\u003e\n\u003cp\u003eAll LiteLLM Docker images are signed with \u003ca href=\"https://docs.sigstore.dev/cosign/overview/\"\u003ecosign\u003c/a\u003e. Every release is signed with the same key introduced in \u003ca href=\"https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0\"\u003ecommit \u003ccode\u003e0112e53\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eVerify using the pinned commit hash (recommended):\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eA commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.103.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/580bde9a2d148714889ec1c04a9872819e78a778\"\u003e\u003ccode\u003e580bde9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/13\"\u003e#13\u003c/a\u003e from BerriAI/litellm_session_token_1_103_x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/d3bf0066132899ca86fce126a11f4c133d9a74c8\"\u003e\u003ccode\u003ed3bf006\u003c/code\u003e\u003c/a\u003e chore(lint): scope a TRY004 suppression to the bearer-token salt key check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/a80eacacee118fbed54e3d98f239d17a63fac818\"\u003e\u003ccode\u003ea80eaca\u003c/code\u003e\u003c/a\u003e refactor(auth): bind UI/CLI session tokens to their own AES-GCM context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/e7d8bbc5deb36c960162d4ce3922985fe56db835\"\u003e\u003ccode\u003ee7d8bbc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/6\"\u003e#6\u003c/a\u003e from BerriAI/litellm_bump_1_103_1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/bf02f06913c06fe41459f529f3511a32305f16d4\"\u003e\u003ccode\u003ebf02f06\u003c/code\u003e\u003c/a\u003e bump: litellm 1.103.0 -\u0026gt; 1.103.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/c991f4b01f5799eb0b0cab0fb63988e15c3a8a9d\"\u003e\u003ccode\u003ec991f4b\u003c/code\u003e\u003c/a\u003e fix(proxy): unregister logging callbacks removed from the stored config (\u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/43429\"\u003e#43429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/cc111d1ae57fbd4d6c0c2fbd4772fe00460da215\"\u003e\u003ccode\u003ecc111d1\u003c/code\u003e\u003c/a\u003e fix(streaming): backport text-completion usage fix and e2e provider-flake tol...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/4dbbe6eddd1820fdf9f6a2914fb3f03633777988\"\u003e\u003ccode\u003e4dbbe6e\u003c/code\u003e\u003c/a\u003e test(ci): fix the e2e and integration reds left on rc/1.103.0 after \u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/43382\"\u003e#43382\u003c/a\u003e an...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/8aca86a571bd67edcfb34180106a2636b3a4dbfc\"\u003e\u003ccode\u003e8aca86a\u003c/code\u003e\u003c/a\u003e test(e2e): clear the two rc/1.103.0 e2e reds owned by upstream providers (\u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/43\"\u003e#43\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/e640c0eb4155f40a1bcecb3dc6a8ddc81b030080\"\u003e\u003ccode\u003ee640c0e\u003c/code\u003e\u003c/a\u003e test(integration): make rc/1.103.0 integration groups collect and pass again ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/BerriAI/litellm/compare/v1.88.6...v1.103.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.38.0 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.54.0\u003c/h2\u003e\n\u003ch2\u003e📨 Send metadata after the response body\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.54.0 adds response trailers and \u003ccode\u003e103 Early Hints\u003c/code\u003e to its experimental HTTP/2 implementation through \u003ccode\u003ezttp\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.54.0 \u0026quot;zttp\u0026gt;=0.0.34\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend HTTP/2 response trailers\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e). The ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension lets applications send metadata, such as checksums, after the response body. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them. Multiple trailer messages are combined before completing the response.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental and opt-in.\u003c/strong\u003e Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Upgrade-based h2c and WebSockets over HTTP/2 remain unsupported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e💡 Hint at resources before the final response\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend \u003ccode\u003e103 Early Hints\u003c/code\u003e over HTTP/2\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e). Applications can use the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension to send resource hints before the final response. Each supplied link becomes a separate \u003ccode\u003eLink\u003c/code\u003e header.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.53.0...0.54.0\"\u003e0.53.0...0.54.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.53.0\u003c/h2\u003e\n\u003ch2\u003e🌐 Opt-in HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.53.0 adds experimental HTTP/2 through \u003ccode\u003ezttp\u003c/code\u003e, alongside a new \u003ccode\u003ezuvloop\u003c/code\u003e integration and connection-handling improvements.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.53.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eServe HTTP/1.1 and HTTP/2 with \u003ccode\u003ezttp\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e). Install \u003ccode\u003ezttp\u003c/code\u003e, then enable HTTP/2 with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Uvicorn negotiates HTTP/2 over TLS with ALPN and supports cleartext prior knowledge.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental.\u003c/strong\u003e Upgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚙️ More event loop choice\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRun Uvicorn with \u003ccode\u003ezuvloop\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e). Install \u003ccode\u003ezuvloop\u003c/code\u003e separately and select it explicitly with \u003ccode\u003e--loop zuvloop\u003c/code\u003e on CPython 3.14 or newer.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛡️ More reliable connections and proxies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHonor \u003ccode\u003eConnection: close\u003c/code\u003e token lists\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e). Uvicorn now parses comma-separated tokens case-insensitively across HTTP implementations.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTrust IPv6 loopback proxies by default\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e). The default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value now includes \u003ccode\u003e::1\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eKeep upgraded WebSockets alive\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e). Uvicorn cancels the HTTP keep-alive timer when the connection becomes a WebSocket.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.4...0.53.0\"\u003e0.52.4...0.53.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0 (September 24, 2026)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support remains experimental. Install \u003ccode\u003ezttp\u0026gt;=0.0.34\u003c/code\u003e and enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd HTTP/2 response trailers through the ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd HTTP/2 \u003ccode\u003e103 Early Hints\u003c/code\u003e through the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.53.0 (September 14, 2026)\u003c/h2\u003e\n\u003cp\u003eThis release adds experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e. Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\nUpgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ezuvloop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle comma-separated, case-insensitive \u003ccode\u003eConnection: close\u003c/code\u003e tokens across HTTP implementations (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTrust IPv6 loopback in the default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancel the HTTP keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.4 (August 18, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.3 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.24 and use its combined receive path, improving HTTP/1.1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3067\"\u003e#3067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.2 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.22, fixing bodyless request receives and improving HTTP/1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.1 (August 1, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete the closing handshake on server-initiated WebSocket closes in the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e and \u003ccode\u003ewsproto\u003c/code\u003e implementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing write flow control to the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, preventing data truncation on server-initiated closes with large in-flight payloads (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3048\"\u003e#3048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle connection loss while a WebSocket write is waiting on backpressure (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3eb9a9ab9af69005c687728097461c1fd2a95db9\"\u003e\u003ccode\u003e3eb9a9a\u003c/code\u003e\u003c/a\u003e Version 0.54.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3161\"\u003e#3161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cd7ef6d31c1a09a3653f326cda7813d35ffd6082\"\u003e\u003ccode\u003ecd7ef6d\u003c/code\u003e\u003c/a\u003e Remove races from supervisor tests (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a56c7cce64aaa37e5864f882a5cbce8aa1dac47a\"\u003e\u003ccode\u003ea56c7cc\u003c/code\u003e\u003c/a\u003e Support HTTP/2 response trailers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9bd4404cca9506e9ba4f46b69ef72d011ceef2bd\"\u003e\u003ccode\u003e9bd4404\u003c/code\u003e\u003c/a\u003e chore(deps): bump anyio from 4.13.0 to 4.14.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/21f39ef7988366f77fb3172569bd235ac5de34cc\"\u003e\u003ccode\u003e21f39ef\u003c/code\u003e\u003c/a\u003e Add HTTP/2 Early Hints support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/421708fbc1a704dac8bd4053a7c4c0bf4d3704ee\"\u003e\u003ccode\u003e421708f\u003c/code\u003e\u003c/a\u003e Version 0.53.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f1a1bff7be819f5724d6fdf86dfd448a97c62e23\"\u003e\u003ccode\u003ef1a1bff\u003c/code\u003e\u003c/a\u003e Unset the keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/63971ed952090438896e6eba7d07178b616d97cc\"\u003e\u003ccode\u003e63971ed\u003c/code\u003e\u003c/a\u003e Document HTTP/2 support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7d1a0055aee5e281accc646b559ddd147486bf8a\"\u003e\u003ccode\u003e7d1a005\u003c/code\u003e\u003c/a\u003e Remove race from multiprocess health check test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3128\"\u003e#3128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5ac6265a01ff6dcadb0e4250152c3deaf8a168a9\"\u003e\u003ccode\u003e5ac6265\u003c/code\u003e\u003c/a\u003e Add ::1 to FORWARDED_ALLOW_IPS (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `chardet` from 7.4.0.post2 to 7.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chardet/chardet/releases\"\u003echardet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.6.0\u003c/h2\u003e\n\u003cp\u003eBig release: a Cython scoring kernel joins mypyc in compiled wheels, every model retrained on a deduplicated corpus, UTF-7 fixed in both directions, and a guarantee that \u003ccode\u003edetect()\u003c/code\u003e never returns an encoding that can't decode your complete input.\u003c/p\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCompiled wheels now score bigram profiles through a small Cython kernel alongside mypyc, and the pair is 4.7x faster than the pure wheel on CPython 3.14. \u003ccode\u003e_kernel.py\u003c/code\u003e stays plain Python (PyPy and pure wheels run it interpreted, unchanged), and detection output is bit-identical. The kernel declares itself safe without the GIL, so free-threaded CPython scales instead of silently re-enabling the GIL on import: 3.14t runs the whole suite in ~340ms across 8 threads, the fastest configuration measured. Compiled builds now need both hooks: \u003ccode\u003eHATCH_BUILD_HOOK_ENABLE_MYPYC=true HATCH_BUILD_HOOK_ENABLE_CUSTOM=true\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for CPython 3.15, including the free-threaded build. No code changes were needed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edetect()\u003c/code\u003e no longer returns an encoding that cannot decode the input it was given (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/380\"\u003e#380\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e). When the whole input has been examined and the winner's only multi-byte evidence is an incomplete trailing sequence, the best candidate that decodes the input completely wins instead. Genuinely truncated data keeps its answer.\u003c/li\u003e\n\u003cli\u003eFixed delimited ASCII data like \u003ccode\u003e|NAME,+LAY|\u003c/code\u003e misdetecting as UTF-7 (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/371\"\u003e#371\u003c/a\u003e follow-up, thanks \u003ca href=\"https://github.com/agreenburg\"\u003e\u003ccode\u003e@​agreenburg\u003c/code\u003e\u003c/a\u003e). The whole buffer must now actually decode as UTF-7, and a lone shifted character must land in a plausible script range.\u003c/li\u003e\n\u003cli\u003eSigned UTF-7 no longer reads as ASCII: the BOM stage recognizes the four UTF-7 signature prefixes when the rest of the buffer decodes as UTF-7.\u003c/li\u003e\n\u003cli\u003eFixed short apostrophe-heavy English being labeled Scottish Gaelic or Breton: a rare-language label on an input under 128 bytes now needs a 0.03 lead over the best mainstream language (ADR-0005).\u003c/li\u003e\n\u003cli\u003eFixed Hungarian text losing to a Czech reading in confusion rescoring; tied pairs are compared only under language models both encodings have.\u003c/li\u003e\n\u003cli\u003eFixed space-padded text matching a degenerate Serbian model at high confidence; statistical scoring now skips repeated-whitespace bigrams. This also fixes windows-1251 logs misdetecting as windows-1250 (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/379\"\u003e#379\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed EBCDIC text being invisible to the early pipeline stages, and the last two EBCDIC sibling misdetections.\u003c/li\u003e\n\u003cli\u003eFixed training normalization gaps that starved ISO-8859-16 and the 26 pre-euro encodings at exactly their distinguishing bytes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRetrained every bigram model on a refreshed, deduplicated corpus with training provenance now recorded per model.\u003c/li\u003e\n\u003cli\u003eNew ANSI-art model for cp437, trained on 16,621 text-mode art files from \u003ca href=\"https://16colo.rs/\"\u003e16colo.rs\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRare-language arbitration (ADR-0005): low-confidence statistical winners from languages with no documented legacy-encoding population yield to near-tied mainstream candidates.\u003c/li\u003e\n\u003cli\u003eConfusion-group resolution is context-aware: per-occurrence votes, word-shape demotions, art-model exemption.\u003c/li\u003e\n\u003cli\u003eStatistical dead heats no longer resolve by candidate enumeration order.\u003c/li\u003e\n\u003cli\u003eTraining pipeline hardening after a cache-loss post-mortem.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chardet/chardet/compare/7.5.1...7.6.0\"\u003ehttps://github.com/chardet/chardet/compare/7.5.1...7.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.5.1\u003c/h2\u003e\n\u003cp\u003ePatch release: three detection fixes found while benchmarking against charset-normalizer's char-dataset.\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed markup-declared encodings being reported under a name that can't decode the input. A page declaring \u003ccode\u003eShift_JIS\u003c/code\u003e but using CP932 extension characters (like ①) came back as \u003ccode\u003eSHIFT_JIS\u003c/code\u003e, which fails \u003ccode\u003e.decode()\u003c/code\u003e on those same bytes. Superset promotion (\u003ccode\u003eCP932\u003c/code\u003e, \u003ccode\u003eCP949\u003c/code\u003e) now always fires when the reported name can't decode the data but the superset can.\u003c/li\u003e\n\u003cli\u003eFixed a lying charset declaration beating genuine UTF-8 content. A UTF-8 page declaring \u003ccode\u003e\u0026lt;meta charset=\u0026quot;iso-8859-1\u0026quot;\u0026gt;\u003c/code\u003e came back as ISO-8859-1, which decodes to mojibake. Valid multi-byte UTF-8 now wins over a conflicting declaration.\u003c/li\u003e\n\u003cli\u003eFixed BOM-less UTF-16 byte-order detection for pure-CJK text: short Chinese UTF-16 samples came back with reversed endianness at full confidence. Byte order is now chosen by decoding both ways and comparing text quality.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chardet/chardet/compare/7.5.0...7.5.1\"\u003ehttps://github.com/chardet/chardet/compare/7.5.0...7.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.5.0\u003c/h2\u003e\n\u003cp\u003eAccuracy and speed release: truncation-proof byte validity, statistical pruning worth ~2.9x, and half the peak memory.\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed multi-byte encodings being eliminated when the input ends in an incomplete character. Byte-validity filtering used a one-shot strict decode, which cannot tell a truncated tail from corrupt data, so a single dangling lead byte dropped every CJK candidate and the result came down to input-length parity. Also reachable on complete files through chardet's own \u003ccode\u003emax_bytes\u003c/code\u003e and \u003ccode\u003e_SCAN_LIMIT\u003c/code\u003e slicing. Validity checks now decode incrementally with \u003ccode\u003efinal=False\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/376\"\u003e#376\u003c/a\u003e, thanks \u003ca href=\"https://github.com/aadsm\"\u003e\u003ccode\u003e@​aadsm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ecompat_names\u003c/code\u003e (the default) leaking internal Python codec names for seven encodings (\u003ccode\u003eISO-8859-2\u003c/code\u003e, \u003ccode\u003eISO-8859-6\u003c/code\u003e, \u003ccode\u003eISO-8859-13\u003c/code\u003e, \u003ccode\u003eWindows-1250\u003c/code\u003e, \u003ccode\u003eWindows-1256\u003c/code\u003e, \u003ccode\u003eWindows-1257\u003c/code\u003e, \u003ccode\u003eCP874\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/374\"\u003e#374\u003c/a\u003e, thanks \u003ca href=\"https://github.com/aadsm\"\u003e\u003ccode\u003e@​aadsm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ecompat_names\u003c/code\u003e leaking the internal \u003ccode\u003ecp932\u003c/code\u003e codec name; \u003ccode\u003edetect()\u003c/code\u003e now returns \u003ccode\u003eCP932\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/375\"\u003e#375\u003c/a\u003e, thanks \u003ca href=\"https://github.com/uttam12331\"\u003e\u003ccode\u003e@​uttam12331\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chardet/chardet/blob/main/docs/changelog.rst\"\u003echardet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.6.0 (2026-08-14)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ePerformance:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompiled wheels now score bigram profiles through a small Cython\nkernel alongside mypyc, and the pair is 4.7x faster than the pure\nwheel on CPython 3.14.  \u003ccode\u003e_kernel.py\u003c/code\u003e stays plain Python (PyPy and\npure wheels run it interpreted, unchanged), \u003ccode\u003e_kernel.pxd\u003c/code\u003e adds C\ntypes at build time and ships nothing, and detection output is\nbit-identical.  The kernel declares itself safe without the GIL, so\nfree-threaded CPython scales instead of silently re-enabling the GIL\non import: 3.14t runs the whole suite in ~340ms across 8 threads,\nthe fastest configuration measured.  Compiled builds now need both\nhooks::\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eHATCH_BUILD_HOOK_ENABLE_MYPYC=true HATCH_BUILD_HOOK_ENABLE_CUSTOM=true uv build\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for CPython 3.15, including the free-threaded build.\nNo code changes were needed.\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed delimited ASCII data like \u003ccode\u003e|NAME,+LAY|\u003c/code\u003e misdetecting as\nUTF-7, a follow-up to \u003ccode\u003e[#371](https://github.com/chardet/chardet/issues/371) \u0026lt;https://github.com/chardet/chardet/issues/371\u0026gt;\u003c/code\u003e\u003cem\u003e.  Two new checks:\nthe whole buffer must actually decode as UTF-7 (\u003ccode\u003e+|\u003c/code\u003e is an illegal\nshift, so tabular data fails immediately), and a block encoding a\nsingle code unit must land in a script range where a lone shifted\ncharacter plausibly occurs.  \u003ccode\u003e+LAY\u003c/code\u003e decodes to U+2C06, Glagolitic;\nno genuine lone block in the corpus lands anywhere like it, while em\ndashes, ellipses, kanji, and accented letters all pass.\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003c/em\u003e via Claude)\u003c/li\u003e\n\u003cli\u003eSigned UTF-7 no longer reads as ASCII.  The BOM stage recognizes the\nfour UTF-7 signature prefixes (\u003ccode\u003e+/v8-\u003c/code\u003e and friends) when the rest\nof the buffer decodes as UTF-7 --- the prefix alone is ordinary ASCII\n(a diff of V8 source paths starts with \u003ccode\u003e+/v8\u003c/code\u003e).  This is a\ndeliberate divergence from WHATWG's browser-security exclusion of\nUTF-7: chardet already detects the unsigned form, so refusing only\nthe signed one made no sense.\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edetect()\u003c/code\u003e no longer returns an encoding that cannot decode the\ninput it was given\n(\u003ccode\u003e[#380](https://github.com/chardet/chardet/issues/380) \u0026lt;https://github.com/chardet/chardet/issues/380\u0026gt;\u003c/code\u003e_).  When the\nwhole input has been examined and the winner's only multi-byte\nevidence is an incomplete trailing sequence, the best candidate that\ndecodes the input completely wins instead.  Genuinely truncated data\nkeeps its answer: CJK cut mid-character, or input sliced at\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/...\n\n_Description has been truncated_","html_url":"https://github.com/DDD-Enterprises/dopemux-mvp/pull/1398","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DDD-Enterprises%2Fdopemux-mvp/issues/1398","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1398/packages"},{"uuid":"5686723489","node_id":"PR_kwDOPyIw988AAAABGZWeSA","number":1396,"state":"closed","title":"deps(deps): bump the python-minor-patch group across 1 directory with 43 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-03T06:34:13.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-03T05:01:42.000Z","updated_at":"2026-10-03T06:34:15.000Z","time_to_close":5551,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"python-minor-patch","update_count":43,"packages":[{"name":"readchar","old_version":"4.2.1","new_version":"4.2.2","repository_url":"https://github.com/magmax/python-readchar"},{"name":"requests","old_version":"2.33.0","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"python-dotenv","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"litellm","old_version":"1.85.1","new_version":"1.103.1","repository_url":"https://github.com/BerriAI/litellm"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.54.0"},{"name":"chardet","old_version":"7.4.0.post2","new_version":"7.6.0","repository_url":"https://github.com/chardet/chardet"},{"name":"numpy","old_version":"2.4.4","new_version":"2.4.6","repository_url":"https://github.com/numpy/numpy"},{"name":"scikit-learn","old_version":"1.8.0","new_version":"1.9.1","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"pandas","old_version":"3.0.1","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"markdown","old_version":"3.10.2","new_version":"3.11","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pdfplumber","old_version":"0.11.9","new_version":"0.11.10","repository_url":"https://github.com/jsvine/pdfplumber"},{"name":"pytest","old_version":"9.0.3","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-mock","old_version":"3.15.1","new_version":"3.16.0","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"ruff","old_version":"0.14.14","new_version":"0.16.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"black","old_version":"26.3.1","new_version":"26.5.1","repository_url":"https://github.com/psf/black"},{"name":"flake8","old_version":"7.3.0","new_version":"7.4.1","repository_url":"https://github.com/pycqa/flake8"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.2","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pip-audit","old_version":"2.9.0","new_version":"2.10.1","repository_url":"https://github.com/pypa/pip-audit"},{"name":"semgrep","old_version":"1.166.0","new_version":"1.179.0","repository_url":"https://github.com/semgrep/semgrep"},{"name":"dopetask","old_version":"0.5.1","new_version":"0.5.7","repository_url":"https://github.com/DDD-Enterprises/dopeTask"},{"name":"tree-sitter","old_version":"0.25.2","new_version":"0.26.0","repository_url":"https://github.com/tree-sitter/py-tree-sitter"},{"name":"tree-sitter-python","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/tree-sitter/tree-sitter-python"},{"name":"tree-sitter-javascript","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/tree-sitter/tree-sitter-javascript"},{"name":"tree-sitter-typescript","old_version":"0.23.0","new_version":"0.23.2","repository_url":"https://github.com/tree-sitter/tree-sitter-typescript"},{"name":"tree-sitter-go","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/tree-sitter/tree-sitter-go"},{"name":"tree-sitter-rust","old_version":"0.23.0","new_version":"0.24.2","repository_url":"https://github.com/tree-sitter/tree-sitter-rust"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"prometheus-client","old_version":"0.24.1","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"pyjwt","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"cryptography","old_version":"50.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"qdrant-client","old_version":"1.17.1","new_version":"1.19.1","repository_url":"https://github.com/qdrant/qdrant-client"},{"name":"pymupdf","old_version":"1.27.2.2","new_version":"1.28.2","repository_url":"https://github.com/pymupdf/pymupdf"},{"name":"beautifulsoup4","old_version":"4.14.3","new_version":"4.15.0"},{"name":"lxml","old_version":"6.1.0","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"python-multipart","old_version":"0.0.31","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.13","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"alembic","old_version":"1.18.4","new_version":"1.20.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pytz","old_version":"2026.1.post1","new_version":"2026.4","repository_url":"https://github.com/stub42/pytz"},{"name":"orjson","old_version":"3.11.7","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"msgpack","old_version":"1.2.1","new_version":"1.2.3","repository_url":"https://github.com/msgpack/msgpack-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 43 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [readchar](https://github.com/magmax/python-readchar) | `4.2.1` | `4.2.2` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.34.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.2` | `1.2.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.5` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [litellm](https://github.com/BerriAI/litellm) | `1.85.1` | `1.103.1` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.54.0` |\n| [chardet](https://github.com/chardet/chardet) | `7.4.0.post2` | `7.6.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.4` | `2.4.6` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.8.0` | `1.9.1` |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.1` | `3.0.6` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.10.2` | `3.11` |\n| [pdfplumber](https://github.com/jsvine/pdfplumber) | `0.11.9` | `0.11.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.15.1` | `3.16.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.14` | `0.16.9` |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.1` |\n| [flake8](https://github.com/pycqa/flake8) | `7.3.0` | `7.4.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.2` |\n| [pip-audit](https://github.com/pypa/pip-audit) | `2.9.0` | `2.10.1` |\n| [semgrep](https://github.com/semgrep/semgrep) | `1.166.0` | `1.179.0` |\n| [dopetask](https://github.com/DDD-Enterprises/dopeTask) | `0.5.1` | `0.5.7` |\n| [tree-sitter](https://github.com/tree-sitter/py-tree-sitter) | `0.25.2` | `0.26.0` |\n| [tree-sitter-python](https://github.com/tree-sitter/tree-sitter-python) | `0.23.0` | `0.25.0` |\n| [tree-sitter-javascript](https://github.com/tree-sitter/tree-sitter-javascript) | `0.23.0` | `0.25.0` |\n| [tree-sitter-typescript](https://github.com/tree-sitter/tree-sitter-typescript) | `0.23.0` | `0.23.2` |\n| [tree-sitter-go](https://github.com/tree-sitter/tree-sitter-go) | `0.23.0` | `0.25.0` |\n| [tree-sitter-rust](https://github.com/tree-sitter/tree-sitter-rust) | `0.23.0` | `0.24.2` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.24.1` | `0.26.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.15.0` | `2.15.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.1` |\n| [qdrant-client](https://github.com/qdrant/qdrant-client) | `1.17.1` | `1.19.1` |\n| [pymupdf](https://github.com/pymupdf/pymupdf) | `1.27.2.2` | `1.28.2` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.3` | `4.15.0` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.0` | `6.1.3` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.31` | `0.0.32` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.13` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.4` | `1.20.0` |\n| [pytz](https://github.com/stub42/pytz) | `2026.1.post1` | `2026.4` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.12.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.2.1` | `1.2.3` |\n\n\nUpdates `readchar` from 4.2.1 to 4.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/magmax/python-readchar/releases\"\u003ereadchar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix pytest 9 compatibility by \u003ca href=\"https://github.com/mweinelt\"\u003e\u003ccode\u003e@​mweinelt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/129\"\u003emagmax/python-readchar#129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd android as supported platform by \u003ca href=\"https://github.com/Mause\"\u003e\u003ccode\u003e@​Mause\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/130\"\u003emagmax/python-readchar#130\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mweinelt\"\u003e\u003ccode\u003e@​mweinelt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/129\"\u003emagmax/python-readchar#129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Mause\"\u003e\u003ccode\u003e@​Mause\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/130\"\u003emagmax/python-readchar#130\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/magmax/python-readchar/compare/v4.2.1...v4.2.2\"\u003ehttps://github.com/magmax/python-readchar/compare/v4.2.1...v4.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/05faadbfd883e80fe8e3ff1f8da97471a3b85262\"\u003e\u003ccode\u003e05faadb\u003c/code\u003e\u003c/a\u003e release v4.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/a9f2384ae26520a9456673b73c05944aae8fd2ca\"\u003e\u003ccode\u003ea9f2384\u003c/code\u003e\u003c/a\u003e Add android as supported platform (\u003ca href=\"https://redirect.github.com/magmax/python-readchar/issues/130\"\u003e#130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/753cb421b5a2cbe3601b1923992ac8b4985839a1\"\u003e\u003ccode\u003e753cb42\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/magmax/python-readchar/issues/129\"\u003e#129\u003c/a\u003e from mweinelt/pytest9-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/5165992002f211fe85175bcbb4f9a60d5e90fdac\"\u003e\u003ccode\u003e5165992\u003c/code\u003e\u003c/a\u003e Fix pytest 9 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/2204f05e47b7e5c6209a49dfde0ad64938e439a5\"\u003e\u003ccode\u003e2204f05\u003c/code\u003e\u003c/a\u003e increment version after release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/magmax/python-readchar/compare/v4.2.1...v4.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.0 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.0...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.2 to 1.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.3] - 2026-08-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/49515afee2d50c33cad9419b3800b3a0dc93fc59\"\u003e\u003ccode\u003e49515af\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.2 → 1.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ac846ff2760b65470e769d7eed33e540f0934e1\"\u003e\u003ccode\u003e8ac846f\u003c/code\u003e\u003c/a\u003e chore: add release runbook (RELEASING.md) and make release target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/bb31c944fb4b40e8dea59587f525840c38326166\"\u003e\u003ccode\u003ebb31c94\u003c/code\u003e\u003c/a\u003e docs: add 1.2.3 release notes (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f7b18d9c72d1abcc2ad4023424b84f5bee30d266\"\u003e\u003ccode\u003ef7b18d9\u003c/code\u003e\u003c/a\u003e fix: round-trip backslashes through set_key (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/751f8c148222e58aa173c83c4e5e6cfccb2cc124\"\u003e\u003ccode\u003e751f8c1\u003c/code\u003e\u003c/a\u003e ci(deps): bump actions/checkout from 6.0.2 to 6.0.3 in the github-actions gro...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f1937b68f338d7ebd7754da377ca08b2f0df8dbb\"\u003e\u003ccode\u003ef1937b6\u003c/code\u003e\u003c/a\u003e chore(deps): update mkdocs-include-markdown-plugin requirement from \u0026gt;=6.0.0 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/45b93720dd5e9e127d0be3971a04855d34e464d8\"\u003e\u003ccode\u003e45b9372\u003c/code\u003e\u003c/a\u003e chore(deps): update pytest requirement from \u0026gt;=3.9 to \u0026gt;=9.0.3 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/72896e9244d2a1ff8d5e1934d3df8a35c813799a\"\u003e\u003ccode\u003e72896e9\u003c/code\u003e\u003c/a\u003e docs: fix broken mkdocs link in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/636\"\u003e#636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/72754a16a4743e4c92edf87ce59ba0e4ff78758d\"\u003e\u003ccode\u003e72754a1\u003c/code\u003e\u003c/a\u003e ci(deps): bump peaceiris/actions-gh-pages from 4.0.0 to 4.1.0 in the github-a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/078325e92558330e9addc661b789c7b6123fa73c\"\u003e\u003ccode\u003e078325e\u003c/code\u003e\u003c/a\u003e ci(security): harden CI/CD supply chain with SHA pinning and least-privilege ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.2...v1.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.5/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/001dea020e0809844e5b17666432c9135a976f46\"\u003e\u003ccode\u003e001dea0\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epypa/gh-action-pypi-publish\u003c/code\u003e action to v1.14.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/558379fee957fad25858e33596146c72d5674843\"\u003e\u003ccode\u003e558379f\u003c/code\u003e\u003c/a\u003e Bump twine to v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2cfd5d3d2ae721ea882c045f83b7f7a4003aab01\"\u003e\u003ccode\u003e2cfd5d3\u003c/code\u003e\u003c/a\u003e Do not check for docs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a735bee5c64e1fe50785c376adaf1275e752b8ac\"\u003e\u003ccode\u003ea735bee\u003c/code\u003e\u003c/a\u003e Fix more Clippy lints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7eed4a16b87afaced4d0eafae230453de3410d64\"\u003e\u003ccode\u003e7eed4a1\u003c/code\u003e\u003c/a\u003e Fix Clippy 0.1.95 warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b353bbb20a4989b4c033e2be2b4a40d36178b16a\"\u003e\u003ccode\u003eb353bbb\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/63d2cccd6e760da6bbc7fe81a53cb2bde3768f5e\"\u003e\u003ccode\u003e63d2ccc\u003c/code\u003e\u003c/a\u003e Count validated model fields once in smart unions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a53ec2ed342fda4e6aa3684399d04ea57be9a6e4\"\u003e\u003ccode\u003ea53ec2e\u003c/code\u003e\u003c/a\u003e Speed up PyPy CI tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d65e0f96e890ca82f4b66a15d5b3bd65af2c661c\"\u003e\u003ccode\u003ed65e0f9\u003c/code\u003e\u003c/a\u003e Workaround circular import error in Mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/47a6dbf8ad6216211bd0df6ec5c2c6c6ed905b72\"\u003e\u003ccode\u003e47a6dbf\u003c/code\u003e\u003c/a\u003e Fix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `docker` from 7.1.0 to 7.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/docker/docker-py/releases\"\u003edocker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.0\u003c/h2\u003e\n\u003ch2\u003eUpgrade Notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edocker.from_env()\u003c/code\u003e now honors the active Docker CLI context when \u003ccode\u003eDOCKER_HOST\u003c/code\u003e is not set.\n\u003cul\u003e\n\u003cli\u003eThis means the client may connect to the daemon selected by \u003ccode\u003eDOCKER_CONTEXT\u003c/code\u003e or the current context in \u003ccode\u003e~/.docker/config.json\u003c/code\u003e, matching Docker CLI behavior more closely.\u003c/li\u003e\n\u003cli\u003eIf your application relied on the previous default connection behavior, set \u003ccode\u003eDOCKER_HOST\u003c/code\u003e explicitly, set \u003ccode\u003eDOCKER_CONTEXT=default\u003c/code\u003e, or pass \u003ccode\u003euse_context=False\u003c/code\u003e to \u003ccode\u003eDockerClient.from_env()\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edocker.from_context()\u003c/code\u003e / \u003ccode\u003eDockerClient.from_context()\u003c/code\u003e for explicitly creating a client from a Docker CLI context.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Docker contexts when creating the default client\u003c/li\u003e\n\u003cli\u003eAdded subpath support for volumes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eexec_run\u003c/code\u003e documentation for the \u003ccode\u003estream\u003c/code\u003e parameter\u003c/li\u003e\n\u003cli\u003eFixed image loading to avoid depending on the deprecated \u003ccode\u003eJSONMessage.error\u003c/code\u003e field\u003c/li\u003e\n\u003cli\u003ePreserved the rotated unlock key in swarm integration tests\u003c/li\u003e\n\u003cli\u003eFixed SSL certificate generation in tests\u003c/li\u003e\n\u003cli\u003eFixed IPv6 integration tests by explicitly enabling IPv6 where required\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated tests for newer Docker Engine behavior\u003c/li\u003e\n\u003cli\u003eCI and build updates\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etests/exec: expect 127 exit code for missing executable by \u003ca href=\"https://github.com/laurazard\"\u003e\u003ccode\u003e@​laurazard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3290\"\u003edocker/docker-py#3290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixing doc for stream param in exec_run by \u003ca href=\"https://github.com/yasonk\"\u003e\u003ccode\u003e@​yasonk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3292\"\u003edocker/docker-py#3292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump default API version to 1.45 (Moby 26.0/26.1) by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3261\"\u003edocker/docker-py#3261\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet a dummy-version if none set, and remove unused APT_MIRROR build-arg by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3267\"\u003edocker/docker-py#3267\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_service_logs: stop testing experimental versions by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/2442\"\u003edocker/docker-py#2442\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile: fix circular reference for integration-dind by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3297\"\u003edocker/docker-py#3297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eimage load: don't depend on deprecated JSONMessage.error field by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3307\"\u003edocker/docker-py#3307\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintegration: test_create_volume_invalid_driver allow either 400 or 404 by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3296\"\u003edocker/docker-py#3296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintegration: adjust tests for omitted \u0026quot;OnBuild\u0026quot; by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3336\"\u003edocker/docker-py#3336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement Subpath Support for Volumes in Docker-Py (\u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3243\"\u003e#3243\u003c/a\u003e) by \u003ca href=\"https://github.com/Khushiyant\"\u003e\u003ccode\u003e@​Khushiyant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3270\"\u003edocker/docker-py#3270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: fix ssl generation by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3365\"\u003edocker/docker-py#3365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest/integration: don't check for deprecated Networks field by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3362\"\u003edocker/docker-py#3362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: Skip from_env_unix tests if DOCKER_HOST is network socket by \u003ca href=\"https://github.com/ricardobranco777\"\u003e\u003ccode\u003e@​ricardobranco777\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3366\"\u003edocker/docker-py#3366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_connect_with_ipv6_address: enable IPv6 by \u003ca href=\"https://github.com/robmry\"\u003e\u003ccode\u003e@​robmry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3372\"\u003edocker/docker-py#3372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_create_with_ipv6_address: enable IPv6 by \u003ca href=\"https://github.com/robmry\"\u003e\u003ccode\u003e@​robmry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3373\"\u003edocker/docker-py#3373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: Migrate off gpg2 and regenerate key ed25519 by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3399\"\u003edocker/docker-py#3399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egha: Pin to digests by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3408\"\u003edocker/docker-py#3408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests on non-amd64 hosts and add ARM64 CI by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3407\"\u003edocker/docker-py#3407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintegration/swarm: Preserve rotated unlock key by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3410\"\u003edocker/docker-py#3410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DKP-2535] Honour context if present for default client, add contexts support by \u003ca href=\"https://github.com/ebriney\"\u003e\u003ccode\u003e@​ebriney\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3401\"\u003edocker/docker-py#3401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: 7.2.0 changelog by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3415\"\u003edocker/docker-py#3415\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/laurazard\"\u003e\u003ccode\u003e@​laurazard\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3290\"\u003edocker/docker-py#3290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yasonk\"\u003e\u003ccode\u003e@​yasonk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3292\"\u003edocker/docker-py#3292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ricardobranco777\"\u003e\u003ccode\u003e@​ricardobranco777\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3366\"\u003edocker/docker-py#3366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/5ad5327fba623897ee9a527d7eee1b01703e0726\"\u003e\u003ccode\u003e5ad5327\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3415\"\u003e#3415\u003c/a\u003e from vvoland/update-changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/d2422303703cf33f604018d0601d8e4b71a2131e\"\u003e\u003ccode\u003ed242230\u003c/code\u003e\u003c/a\u003e docs: 7.2.0 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/ba01cc7291a00a96260792c27046cfaedd9a61dc\"\u003e\u003ccode\u003eba01cc7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3401\"\u003e#3401\u003c/a\u003e from ebriney/client-from-context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/ae5dfe9111b1f4e9fafd4107a8ac4a3fa52644dc\"\u003e\u003ccode\u003eae5dfe9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3410\"\u003e#3410\u003c/a\u003e from vvoland/fix-flaky\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/aa999998eded49919086be7fc4448f5dc9eac689\"\u003e\u003ccode\u003eaa99999\u003c/code\u003e\u003c/a\u003e integration/swarm: Preserve rotated unlock key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/059d371b576b9f324a16753e2a775b1f7731b6d0\"\u003e\u003ccode\u003e059d371\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3407\"\u003e#3407\u003c/a\u003e from vvoland/fix-arm64\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/9b4b9b8461966e5b54638490e66c91e45f25ea19\"\u003e\u003ccode\u003e9b4b9b8\u003c/code\u003e\u003c/a\u003e gha: Add arm64 integration CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/9e9f8ff315fe405d7f7e89b394d6269217c51dfe\"\u003e\u003ccode\u003e9e9f8ff\u003c/code\u003e\u003c/a\u003e Skip tests incompatible with host architecture\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/e0542d9ee4b564822722a3c49d9948484ffb37bc\"\u003e\u003ccode\u003ee0542d9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3408\"\u003e#3408\u003c/a\u003e from vvoland/gha-pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/578a11dd65e167b0421b9f9af143635ce93abe83\"\u003e\u003ccode\u003e578a11d\u003c/code\u003e\u003c/a\u003e gha: Pin to digests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/docker/docker-py/compare/7.1.0...7.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `litellm` from 1.85.1 to 1.103.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/BerriAI/litellm/releases\"\u003elitellm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.103.1\u003c/h2\u003e\n\u003ch2\u003eVerify Docker Image Signature\u003c/h2\u003e\n\u003cp\u003eAll LiteLLM Docker images are signed with \u003ca href=\"https://docs.sigstore.dev/cosign/overview/\"\u003ecosign\u003c/a\u003e. Every release is signed with the same key introduced in \u003ca href=\"https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0\"\u003ecommit \u003ccode\u003e0112e53\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eVerify using the pinned commit hash (recommended):\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eA commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.103.1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eVerify using the release tag (convenience):\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eTags are protected in this repository and resolve to the same key. This option is easier to read but relies on tag protection rules:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/v1.103.1/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.103.1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eExpected output:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eThe following checks were performed on each of these signatures:\n  - The cosign claims were validated\n  - The signatures were verified against the specified public key\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BerriAI/litellm/compare/v1.103.0...v1.103.1\"\u003ehttps://github.com/BerriAI/litellm/compare/v1.103.0...v1.103.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.103.0\u003c/h2\u003e\n\u003ch2\u003eVerify Docker Image Signature\u003c/h2\u003e\n\u003cp\u003eAll LiteLLM Docker images are signed with \u003ca href=\"https://docs.sigstore.dev/cosign/overview/\"\u003ecosign\u003c/a\u003e. Every release is signed with the same key introduced in \u003ca href=\"https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0\"\u003ecommit \u003ccode\u003e0112e53\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eVerify using the pinned commit hash (recommended):\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eA commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.103.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/580bde9a2d148714889ec1c04a9872819e78a778\"\u003e\u003ccode\u003e580bde9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/13\"\u003e#13\u003c/a\u003e from BerriAI/litellm_session_token_1_103_x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/d3bf0066132899ca86fce126a11f4c133d9a74c8\"\u003e\u003ccode\u003ed3bf006\u003c/code\u003e\u003c/a\u003e chore(lint): scope a TRY004 suppression to the bearer-token salt key check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/a80eacacee118fbed54e3d98f239d17a63fac818\"\u003e\u003ccode\u003ea80eaca\u003c/code\u003e\u003c/a\u003e refactor(auth): bind UI/CLI session tokens to their own AES-GCM context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/e7d8bbc5deb36c960162d4ce3922985fe56db835\"\u003e\u003ccode\u003ee7d8bbc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/6\"\u003e#6\u003c/a\u003e from BerriAI/litellm_bump_1_103_1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/bf02f06913c06fe41459f529f3511a32305f16d4\"\u003e\u003ccode\u003ebf02f06\u003c/code\u003e\u003c/a\u003e bump: litellm 1.103.0 -\u0026gt; 1.103.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/c991f4b01f5799eb0b0cab0fb63988e15c3a8a9d\"\u003e\u003ccode\u003ec991f4b\u003c/code\u003e\u003c/a\u003e fix(proxy): unregister logging callbacks removed from the stored config (\u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/43429\"\u003e#43429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/cc111d1ae57fbd4d6c0c2fbd4772fe00460da215\"\u003e\u003ccode\u003ecc111d1\u003c/code\u003e\u003c/a\u003e fix(streaming): backport text-completion usage fix and e2e provider-flake tol...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/4dbbe6eddd1820fdf9f6a2914fb3f03633777988\"\u003e\u003ccode\u003e4dbbe6e\u003c/code\u003e\u003c/a\u003e test(ci): fix the e2e and integration reds left on rc/1.103.0 after \u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/43382\"\u003e#43382\u003c/a\u003e an...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/8aca86a571bd67edcfb34180106a2636b3a4dbfc\"\u003e\u003ccode\u003e8aca86a\u003c/code\u003e\u003c/a\u003e test(e2e): clear the two rc/1.103.0 e2e reds owned by upstream providers (\u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/43\"\u003e#43\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/e640c0eb4155f40a1bcecb3dc6a8ddc81b030080\"\u003e\u003ccode\u003ee640c0e\u003c/code\u003e\u003c/a\u003e test(integration): make rc/1.103.0 integration groups collect and pass again ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/BerriAI/litellm/compare/v1.85.1...v1.103.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.38.0 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.54.0\u003c/h2\u003e\n\u003ch2\u003e📨 Send metadata after the response body\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.54.0 adds response trailers and \u003ccode\u003e103 Early Hints\u003c/code\u003e to its experimental HTTP/2 implementation through \u003ccode\u003ezttp\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.54.0 \u0026quot;zttp\u0026gt;=0.0.34\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend HTTP/2 response trailers\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e). The ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension lets applications send metadata, such as checksums, after the response body. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them. Multiple trailer messages are combined before completing the response.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental and opt-in.\u003c/strong\u003e Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Upgrade-based h2c and WebSockets over HTTP/2 remain unsupported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e💡 Hint at resources before the final response\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend \u003ccode\u003e103 Early Hints\u003c/code\u003e over HTTP/2\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e). Applications can use the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension to send resource hints before the final response. Each supplied link becomes a separate \u003ccode\u003eLink\u003c/code\u003e header.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.53.0...0.54.0\"\u003e0.53.0...0.54.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.53.0\u003c/h2\u003e\n\u003ch2\u003e🌐 Opt-in HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.53.0 adds experimental HTTP/2 through \u003ccode\u003ezttp\u003c/code\u003e, alongside a new \u003ccode\u003ezuvloop\u003c/code\u003e integration and connection-handling improvements.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.53.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eServe HTTP/1.1 and HTTP/2 with \u003ccode\u003ezttp\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e). Install \u003ccode\u003ezttp\u003c/code\u003e, then enable HTTP/2 with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Uvicorn negotiates HTTP/2 over TLS with ALPN and supports cleartext prior knowledge.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental.\u003c/strong\u003e Upgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚙️ More event loop choice\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRun Uvicorn with \u003ccode\u003ezuvloop\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e). Install \u003ccode\u003ezuvloop\u003c/code\u003e separately and select it explicitly with \u003ccode\u003e--loop zuvloop\u003c/code\u003e on CPython 3.14 or newer.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛡️ More reliable connections and proxies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHonor \u003ccode\u003eConnection: close\u003c/code\u003e token lists\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e). Uvicorn now parses comma-separated tokens case-insensitively across HTTP implementations.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTrust IPv6 loopback proxies by default\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e). The default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value now includes \u003ccode\u003e::1\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eKeep upgraded WebSockets alive\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e). Uvicorn cancels the HTTP keep-alive timer when the connection becomes a WebSocket.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.4...0.53.0\"\u003e0.52.4...0.53.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0 (September 24, 2026)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support remains experimental. Install \u003ccode\u003ezttp\u0026gt;=0.0.34\u003c/code\u003e and enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd HTTP/2 response trailers through the ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd HTTP/2 \u003ccode\u003e103 Early Hints\u003c/code\u003e through the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.53.0 (September 14, 2026)\u003c/h2\u003e\n\u003cp\u003eThis release adds experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e. Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\nUpgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ezuvloop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle comma-separated, case-insensitive \u003ccode\u003eConnection: close\u003c/code\u003e tokens across HTTP implementations (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTrust IPv6 loopback in the default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancel the HTTP keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.4 (August 18, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.3 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.24 and use its combined receive path, improving HTTP/1.1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3067\"\u003e#3067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.2 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.22, fixing bodyless request receives and improving HTTP/1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.1 (August 1, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete the closing handshake on server-initiated WebSocket closes in the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e and \u003ccode\u003ewsproto\u003c/code\u003e implementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing write flow control to the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, preventing data truncation on server-initiated closes with large in-flight payloads (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3048\"\u003e#3048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle connection loss while a WebSocket write is waiting on backpressure (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3eb9a9ab9af69005c687728097461c1fd2a95db9\"\u003e\u003ccode\u003e3eb9a9a\u003c/code\u003e\u003c/a\u003e Version 0.54.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3161\"\u003e#3161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cd7ef6d31c1a09a3653f326cda7813d35ffd6082\"\u003e\u003ccode\u003ecd7ef6d\u003c/code\u003e\u003c/a\u003e Remove races from supervisor tests (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a56c7cce64aaa37e5864f882a5cbce8aa1dac47a\"\u003e\u003ccode\u003ea56c7cc\u003c/code\u003e\u003c/a\u003e Support HTTP/2 response trailers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9bd4404cca9506e9ba4f46b69ef72d011ceef2bd\"\u003e\u003ccode\u003e9bd4404\u003c/code\u003e\u003c/a\u003e chore(deps): bump anyio from 4.13.0 to 4.14.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/21f39ef7988366f77fb3172569bd235ac5de34cc\"\u003e\u003ccode\u003e21f39ef\u003c/code\u003e\u003c/a\u003e Add HTTP/2 Early Hints support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/421708fbc1a704dac8bd4053a7c4c0bf4d3704ee\"\u003e\u003ccode\u003e421708f\u003c/code\u003e\u003c/a\u003e Version 0.53.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f1a1bff7be819f5724d6fdf86dfd448a97c62e23\"\u003e\u003ccode\u003ef1a1bff\u003c/code\u003e\u003c/a\u003e Unset the keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/63971ed952090438896e6eba7d07178b616d97cc\"\u003e\u003ccode\u003e63971ed\u003c/code\u003e\u003c/a\u003e Document HTTP/2 support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7d1a0055aee5e281accc646b559ddd147486bf8a\"\u003e\u003ccode\u003e7d1a005\u003c/code\u003e\u003c/a\u003e Remove race from multiprocess health check test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3128\"\u003e#3128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5ac6265a01ff6dcadb0e4250152c3deaf8a168a9\"\u003e\u003ccode\u003e5ac6265\u003c/code\u003e\u003c/a\u003e Add ::1 to FORWARDED_ALLOW_IPS (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `chardet` from 7.4.0.post2 to 7.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chardet/chardet/releases\"\u003echardet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.6.0\u003c/h2\u003e\n\u003cp\u003eBig release: a Cython scoring kernel joins mypyc in compiled wheels, every model retrained on a deduplicated corpus, UTF-7 fixed in both directions, and a guarantee that \u003ccode\u003edetect()\u003c/code\u003e never returns an encoding that can't decode your complete input.\u003c/p\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCompiled wheels now score bigram profiles through a small Cython kernel alongside mypyc, and the pair is 4.7x faster than the pure wheel on CPython 3.14. \u003ccode\u003e_kernel.py\u003c/code\u003e stays plain Python (PyPy and pure wheels run it interpreted, unchanged), and detection output is bit-identical. The kernel declares itself safe without the GIL, so free-threaded CPython scales instead of silently re-enabling the GIL on import: 3.14t runs the whole suite in ~340ms across 8 threads, the fastest configuration measured. Compiled builds now need both hooks: \u003ccode\u003eHATCH_BUILD_HOOK_ENABLE_MYPYC=true HATCH_BUILD_HOOK_ENABLE_CUSTOM=true\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for CPython 3.15, including the free-threaded build. No code changes were needed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edetect()\u003c/code\u003e no longer returns an encoding that cannot decode the input it was given (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/380\"\u003e#380\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e). When the whole input has been examined and the winner's only multi-byte evidence is an incomplete trailing sequence, the best candidate that decodes the input completely wins instead. Genuinely truncated data keeps its answer.\u003c/li\u003e\n\u003cli\u003eFixed delimited ASCII data like \u003ccode\u003e|NAME,+LAY|\u003c/code\u003e misdetecting as UTF-7 (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/371\"\u003e#371\u003c/a\u003e follow-up, thanks \u003ca href=\"https://github.com/agreenburg\"\u003e\u003ccode\u003e@​agreenburg\u003c/code\u003e\u003c/a\u003e). The whole buffer must now actually decode as UTF-7, and a lone shifted character must land in a plausible script range.\u003c/li\u003e\n\u003cli\u003eSigned UTF-7 no longer reads as ASCII: the BOM stage recognizes the four UTF-7 signature prefixes when the rest of the buffer decodes as UTF-7.\u003c/li\u003e\n\u003cli\u003eFixed short apostrophe-heavy English being labeled Scottish Gaelic or Breton: a rare-language label on an input under 128 bytes now needs a 0.03 lead over the best mainstream language (ADR-0005).\u003c/li\u003e\n\u003cli\u003eFixed Hungarian text losing to a Czech reading in confusion rescoring; tied pairs are compared only under language models both encodings have.\u003c/li\u003e\n\u003cli\u003eFixed space-padded text matching a degenerate Serbian model at high confidence; statistical scoring now skips repeated-whitespace bigrams. This also fixes windows-1251 logs misdetecting as windows-1250 (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/379\"\u003e#379\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed EBCDIC text being invisible to the early pipeline stages, and the last two EBCDIC sibling misdetections.\u003c/li\u003e\n\u003cli\u003eFixed training normalization gaps that starved ISO-8859-16 and the 26 pre-euro encodings at exactly their distinguishing bytes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRetrained every bigram model on a refreshed, deduplicated corpus with training provenance now recorded per model.\u003c/li\u003e\n\u003cli\u003eNew ANSI-art model for cp437, trained on 16,621 text-mode art files from \u003ca href=\"https://16colo.rs/\"\u003e16colo.rs\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRare-language arbitration (ADR-0005): low-confidence statistical winners from languages with no documented legacy-encoding population yield to near-tied mainstream candidates.\u003c/li\u003e\n\u003cli\u003eConfusion-group resolution is context-aware: per-occurrence votes, word-shape demotions, art-model exemption.\u003c/li\u003e\n\u003cli\u003eStatistical dead heats no longer resolve by candidate enumeration order.\u003c/li\u003e\n\u003cli\u003eTraining pipeline hardening after a cache-loss post-mortem.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chardet/chardet/compare/7.5.1...7.6.0\"\u003ehttps://github.com/chardet/chardet/compare/7.5.1...7.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.5.1\u003c/h2\u003e\n\u003cp\u003ePatch release: three detection fixes found while benchmarking against charset-normalizer's char-dataset.\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed markup-declared encodings being reported under a name that can't decode the input. A page declaring \u003ccode\u003eShift_JIS\u003c/code\u003e but using CP932 extension characters (like ①) came back as \u003ccode\u003eSHIFT_JIS\u003c/code\u003e, which fails \u003ccode\u003e.decode()\u003c/code\u003e on those same bytes. Superset promotion (\u003ccode\u003eCP932\u003c/code\u003e, \u003ccode\u003eCP949\u003c/code\u003e) now always fires when the reported name can't decode the data but the superset can.\u003c/li\u003e\n\u003cli\u003eFixed a lying charset declaration beating genuine UTF-8 content. A UTF-8 page declaring \u003ccode\u003e\u0026lt;meta charset=\u0026quot;iso-8859-1\u0026quot;\u0026gt;\u003c/code\u003e came back as ISO-8859-1, which decodes to mojibake. Valid multi-byte UTF-8 now wins over a conflicting declaration.\u003c/li\u003e\n\u003cli\u003eFixed BOM-less UTF-16 byte-order detection for pure-CJK text: short Chinese UTF-16 samples came back with reversed endianness at full confidence. Byte order is now chosen by decoding both ways and comparing text quality.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chardet/chardet/compare/7.5.0...7.5.1\"\u003ehttps://github.com/chardet/chardet/compare/7.5.0...7.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.5.0\u003c/h2\u003e\n\u003cp\u003eAccuracy and speed release: truncation-proof byte validity, statistical pruning worth ~2.9x, and half the peak memory.\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed multi-byte encodings being eliminated when the input ends in an incomplete character. Byte-validity filtering used a one-shot strict decode, which cannot tell a truncated tail from corrupt data, so a single dangling lead byte dropped every CJK candidate and the result came down to input-length parity. Also reachable on complete files through chardet's own \u003ccode\u003emax_bytes\u003c/code\u003e and \u003ccode\u003e_SCAN_LIMIT\u003c/code\u003e slicing. Validity checks now decode incrementally with \u003ccode\u003efinal=False\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/376\"\u003e#376\u003c/a\u003e, thanks \u003ca href=\"https://github.com/aadsm\"\u003e\u003ccode\u003e@​aadsm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ecompat_names\u003c/code\u003e (the default) leaking internal Python codec names for seven encodings (\u003ccode\u003eISO-8859-2\u003c/code\u003e, \u003ccode\u003eISO-8859-6\u003c/code\u003e, \u003ccode\u003eISO-8859-13\u003c/code\u003e, \u003ccode\u003eWindows-1250\u003c/code\u003e, \u003ccode\u003eWindows-1256\u003c/code\u003e, \u003ccode\u003eWindows-1257\u003c/code\u003e, \u003ccode\u003eCP874\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/374\"\u003e#374\u003c/a\u003e, thanks \u003ca href=\"https://github.com/aadsm\"\u003e\u003ccode\u003e@​aadsm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ecompat_names\u003c/code\u003e leaking the internal \u003ccode\u003ecp932\u003c/code\u003e codec name; \u003ccode\u003edetect()\u003c/code\u003e now returns \u003ccode\u003eCP932\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/375\"\u003e#375\u003c/a\u003e, thanks \u003ca href=\"https://github.com/uttam12331\"\u003e\u003ccode\u003e@​uttam12331\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chardet/chardet/blob/main/docs/changelog.rst\"\u003echardet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.6.0 (2026-08-14)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ePerformance:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompiled wheels now score bigram profiles through a small Cython\nkernel alongside mypyc, and the pair is 4.7x faster than the pure\nwheel on CPython 3.14.  \u003ccode\u003e_kernel.py\u003c/code\u003e stays plain Python (PyPy and\npure wheels run it interpreted, unchanged), \u003ccode\u003e_kernel.pxd\u003c/code\u003e adds C\ntypes at build time and ships nothing, and detection output is\nbit-identical.  The kernel declares itself safe without the GIL, so\nfree-threaded CPython scales instead of silently re-enabling the GIL\non import: 3.14t runs the whole suite in ~340ms across 8 threads,\nthe fastest configuration measured.  Compiled builds now need both\nhooks::\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eHATCH_BUILD_HOOK_ENABLE_MYPYC=true HATCH_BUILD_HOOK_ENABLE_CUSTOM=true uv build\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for CPython 3.15, including the free-threaded build.\nNo code changes were needed.\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed delimited ASCII data like \u003ccode\u003e|NAME,+LAY|\u003c/code\u003e misdetecting as\nUTF-7, a follow-up to \u003ccode\u003e[#371](https://github.com/chardet/chardet/issues/371) \u0026lt;https://github.com/chardet/chardet/issues/371\u0026gt;\u003c/code\u003e\u003cem\u003e.  Two new checks:\nthe whole buffer must actually decode as UTF-7 (\u003ccode\u003e+|\u003c/code\u003e is an illegal\nshift, so tabular data fails immediately), and a block encoding a\nsingle code unit must land in a script range where a lone shifted\ncharacter plausibly occurs.  \u003ccode\u003e+LAY\u003c/code\u003e decodes to U+2C06, Glagolitic;\nno genuine lone block in the corpus lands anywhere like it, while em\ndashes, ellipses, kanji, and accented letters all pass.\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003c/em\u003e via Claude)\u003c/li\u003e\n\u003cli\u003eSigned UTF-7 no longer reads as ASCII.  The BOM stage recognizes the\nfour UTF-7 signature prefixes (\u003ccode\u003e+/v8-\u003c/code\u003e and friends) when the rest\nof the buffer decodes as UTF-7 --- the prefix alone is ordinary ASCII\n(a diff of V8 source paths starts with \u003ccode\u003e+/v8\u003c/code\u003e).  This is a\ndeliberate divergence from WHATWG's browser-security exclusion of\nUTF-7: chardet already detects the unsigned form, so refusing only\nthe signed one made no sense.\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edetect()\u003c/code\u003e no longer returns an encoding that cannot decode the\ninput it was given\n(\u003ccode\u003e[#380](https://github.com/chardet/chardet/issues/380) \u0026lt;https://github.com/chardet/chardet/issues/380\u0026gt;\u003c/code\u003e_).  When the\nwhole input has been examined and the winner's only multi-byte\nevidence is an incomplete trailing sequence, the best candidate that\ndecodes the input completely wins instead.  Genuinely truncated data\nkeeps its answer: CJK cut mid-character, or input sliced at\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csumma...\n\n_Description has been truncated_","html_url":"https://github.com/DDD-Enterprises/dopemux-mvp/pull/1396","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DDD-Enterprises%2Fdopemux-mvp/issues/1396","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1396/packages"},{"uuid":"5684646046","node_id":"PR_kwDOU5dh_c8AAAABGXu-iw","number":1,"state":"closed","title":"Bump the python-dependencies group with 2 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-02T23:50:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-02T23:24:23.000Z","updated_at":"2026-10-02T23:50:46.000Z","time_to_close":1582,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":2,"packages":[{"name":"pandas","old_version":"3.0.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"numpy","old_version":"2.4.4","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 2 updates: [pandas](https://github.com/pandas-dev/pandas) and [numpy](https://github.com/numpy/numpy).\n\nUpdates `pandas` from 3.0.3 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.3...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.4 to 2.5.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.3 (Sep 6, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.5.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.5.3 is a patch release that fixes bugs discovered after the 2.5.2\nrelease. Apart from the usual bug and maintenance work, there are a number of\nStringDType related fixes for problems discovered during the ongoing string\nwork in the main branch.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.12-3.15\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCasting a fixed-width byte string array (\u003ccode\u003enp.bytes_\u003c/code\u003e) to \u003ccode\u003eStringDType\u003c/code\u003e\nnow raises \u003ccode\u003eTypeError\u003c/code\u003e when the bytes are not valid UTF-8. Previously the\ninvalid bytes were stored as-is and later caused undefined behavior in\nstring operations.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32296\"\u003egh-32296\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMaskedArray._fill_value\u003c/code\u003e would become stale when ufuncs that change dtype\nleft the result holding a fill_value typed for the old dtype. The mismatch\nwas silent until something later called \u003ccode\u003e_check_fill_value\u003c/code\u003e, such as\n\u003ccode\u003e.view()\u003c/code\u003e, and then a \u003ccode\u003eTypeError\u003c/code\u003e would be raised. Now, when the copied\nfill_value is no longer valid for the new dtype, fall back to the\ndefault fill_value for that dtype instead of propagating the stale value.\nThis may raise a \u003ccode\u003eComplexWarning\u003c/code\u003e if the fill_value is complex and the\nnew dtype is real.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32423\"\u003egh-32423\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIason Krommydas\u003c/li\u003e\n\u003cli\u003eJames Davies +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaanas Arora\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eShikhar Goel +\u003c/li\u003e\n\u003cli\u003eYeonho Kim +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 27 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32235\"\u003e#32235\u003c/a\u003e: MAINT: Prepare 2.5.x for further development\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/dd88c0c19b54ad9ed3533224221285bf0873249a\"\u003e\u003ccode\u003edd88c0c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32511\"\u003e#32511\u003c/a\u003e from charris/prepare-2.5.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/edcac6acc392f4010933ee83e8a4769a7cfe92c5\"\u003e\u003ccode\u003eedcac6a\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.5.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fd4d908aff89773ead13f7c6a0ab31153f14439e\"\u003e\u003ccode\u003efd4d908\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32509\"\u003e#32509\u003c/a\u003e from charris/backport-32496\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/65bb1da13d0ee784be84d173b86784f0d64bdaca\"\u003e\u003ccode\u003e65bb1da\u003c/code\u003e\u003c/a\u003e BUG: fix crash in ufunc.resolve_dtypes with a Python scalar type (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32496\"\u003e#32496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/294956e85dfaea149aada1278c2ed6be0f6f28c8\"\u003e\u003ccode\u003e294956e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32506\"\u003e#32506\u003c/a\u003e from charris/backport-32503\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/26428d9a3f5ab4f604b326347e3a9c6dcc00c1cb\"\u003e\u003ccode\u003e26428d9\u003c/code\u003e\u003c/a\u003e DOC: fix scipy docs links in intersphinx mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32507\"\u003e#32507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/5fab1cbc6aa9e119d9f931243a56c6fbca989476\"\u003e\u003ccode\u003e5fab1cb\u003c/code\u003e\u003c/a\u003e DOC: use static scipy doc site for intershpinx (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32503\"\u003e#32503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7beed2f7e9a24e493a04ff7e2eb1db0d7f9c50e6\"\u003e\u003ccode\u003e7beed2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32481\"\u003e#32481\u003c/a\u003e from ngoldbaum/stringdtype-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8972f70798a2ba1bb4557157982fd6001906f993\"\u003e\u003ccode\u003e8972f70\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32478\"\u003e#32478\u003c/a\u003e from charris/backport-32466\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/ab1b58902a868d4151ef3cf8dbeb91d8a1924fa4\"\u003e\u003ccode\u003eab1b589\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32477\"\u003e#32477\u003c/a\u003e from charris/backport-32423\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.4...v2.5.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/sureshgmst88/blank-app/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sureshgmst88%2Fblank-app/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"},{"uuid":"5674048165","node_id":"PR_kwDOPj-SKM8AAAABGPR5qA","number":762,"state":"closed","title":"chore(deps): bump pandas from 2.1.4 to 3.0.6 in /i-oic-text2sql-ai-agent/tools/sql_db_query/source in the all-dependencies group","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-10-02T07:01:04.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-02T07:00:48.000Z","updated_at":"2026-10-02T07:01:13.000Z","time_to_close":16,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"pandas","old_version":"2.1.4","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"}],"path":"/i-oic-text2sql-ai-agent/tools/sql_db_query/source in the all-dependencies group","ecosystem":"pip"},"body":"Bumps the all-dependencies group in /i-oic-text2sql-ai-agent/tools/sql_db_query/source with 1 update: [pandas](https://github.com/pandas-dev/pandas).\n\nUpdates `pandas` from 2.1.4 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.1.4...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pandas\u0026package-manager=pip\u0026previous-version=2.1.4\u0026new-version=3.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/IBM/oic-i-agentic-ai-tutorials/pull/762","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/IBM%2Foic-i-agentic-ai-tutorials/issues/762","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/762/packages"},{"uuid":"5670853979","node_id":"PR_kwDOUUqApc8AAAABGMycNA","number":4,"state":"open","title":"Bump pandas from 3.0.5 to 3.0.6","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-02T00:01:01.000Z","updated_at":"2026-10-02T00:01:02.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pandas](https://github.com/pandas-dev/pandas) from 3.0.5 to 3.0.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.5...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pandas\u0026package-manager=pip\u0026previous-version=3.0.5\u0026new-version=3.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/nicobayy/MMP/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicobayy%2FMMP/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"5670781645","node_id":"PR_kwDOHemFC88AAAABGMuz-A","number":46,"state":"open","title":"deps: bump the pip-minor group in /egs_aide/看盘神器/v2 with 3 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-01T23:51:14.000Z","updated_at":"2026-10-01T23:51:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"pip-minor","update_count":3,"packages":[{"name":"xlwings","old_version":"0.36.6","new_version":"0.37.5","repository_url":"https://github.com/xlwings/xlwings"},{"name":"pandas","old_version":"3.0.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pytest","old_version":"9.0.3","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"}],"path":"/egs_aide/看盘神器/v2","ecosystem":"pip"},"body":"Bumps the pip-minor group in /egs_aide/看盘神器/v2 with 3 updates: [xlwings](https://github.com/xlwings/xlwings), [pandas](https://github.com/pandas-dev/pandas) and [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `xlwings` from 0.36.6 to 0.37.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/xlwings/xlwings/releases\"\u003exlwings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.37.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelease Notes: \u003ca href=\"https://docs.xlwings.org/en/latest/whatsnew.html\"\u003ehttps://docs.xlwings.org/en/latest/whatsnew.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstallation: To install this release, you must use a package manager like \u003ccode\u003euv\u003c/code\u003e, \u003ccode\u003epip\u003c/code\u003e, or \u003ccode\u003econda\u003c/code\u003e, you can't install from source directly, see \u003ca href=\"https://docs.xlwings.org/en/stable/installation.html\"\u003ehttps://docs.xlwings.org/en/stable/installation.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003exlwings.exe\u003c/code\u003e is a standalone xlwings command-line client with very limited functionality. It currently works for the \u003ccode\u003exlwings vba\u003c/code\u003e and \u003ccode\u003exlwings addin -f\u003c/code\u003e commands and saves you from having to install a full Python installation if these are your only use cases.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadded Sheets.move() by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2755\"\u003exlwings/xlwings#2755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConditional formats by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2756\"\u003exlwings/xlwings#2756\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStrengthen conditional format snapshots by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2757\"\u003exlwings/xlwings#2757\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd data validation API by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2758\"\u003exlwings/xlwings#2758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAutoFilter by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2759\"\u003exlwings/xlwings#2759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd live formatting-aware used range getter by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2764\"\u003exlwings/xlwings#2764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd chart axis \u0026amp; series API by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2763\"\u003exlwings/xlwings#2763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded Range.get_colors() by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2765\"\u003exlwings/xlwings#2765\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd shape-validated bulk fill colors API by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2766\"\u003exlwings/xlwings#2766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdated mac_dict.py and added build script by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2760\"\u003exlwings/xlwings#2760\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: implement PID parsing for macOS 27 compatibility by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2762\"\u003exlwings/xlwings#2762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd public API for cell notes by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2767\"\u003exlwings/xlwings#2767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd  support for threaded comments by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2768\"\u003exlwings/xlwings#2768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for Range.sort() by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2769\"\u003exlwings/xlwings#2769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd range find and replace API by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2770\"\u003exlwings/xlwings#2770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd client cache flag to Office.js function decorator by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2771\"\u003exlwings/xlwings#2771\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd range duplicate removal and special cell selection by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2772\"\u003exlwings/xlwings#2772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd row and column visibility to public range API by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2773\"\u003exlwings/xlwings#2773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for Table column/row operations by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2774\"\u003exlwings/xlwings#2774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd async PivotTable range reads by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2775\"\u003exlwings/xlwings#2775\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/xlwings/xlwings/compare/0.37.4...0.37.5\"\u003ehttps://github.com/xlwings/xlwings/compare/0.37.4...0.37.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.37.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelease Notes: \u003ca href=\"https://docs.xlwings.org/en/latest/whatsnew.html\"\u003ehttps://docs.xlwings.org/en/latest/whatsnew.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstallation: To install this release, you must use a package manager like \u003ccode\u003euv\u003c/code\u003e, \u003ccode\u003epip\u003c/code\u003e, or \u003ccode\u003econda\u003c/code\u003e, you can't install from source directly, see \u003ca href=\"https://docs.xlwings.org/en/stable/installation.html\"\u003ehttps://docs.xlwings.org/en/stable/installation.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003exlwings.exe\u003c/code\u003e is a standalone xlwings command-line client with very limited functionality. It currently works for the \u003ccode\u003exlwings vba\u003c/code\u003e and \u003ccode\u003exlwings addin -f\u003c/code\u003e commands and saves you from having to install a full Python installation if these are your only use cases.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Chart.set_x_axis_values() and fix/set default chart type by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2754\"\u003exlwings/xlwings#2754\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/xlwings/xlwings/compare/0.37.3...0.37.4\"\u003ehttps://github.com/xlwings/xlwings/compare/0.37.3...0.37.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.37.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelease Notes: \u003ca href=\"https://docs.xlwings.org/en/latest/whatsnew.html\"\u003ehttps://docs.xlwings.org/en/latest/whatsnew.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstallation: To install this release, you must use a package manager like \u003ccode\u003euv\u003c/code\u003e, \u003ccode\u003epip\u003c/code\u003e, or \u003ccode\u003econda\u003c/code\u003e, you can't install from source directly, see \u003ca href=\"https://docs.xlwings.org/en/stable/installation.html\"\u003ehttps://docs.xlwings.org/en/stable/installation.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003exlwings.exe\u003c/code\u003e is a standalone xlwings command-line client with very limited functionality. It currently works for the \u003ccode\u003exlwings vba\u003c/code\u003e and \u003ccode\u003exlwings addin -f\u003c/code\u003e commands and saves you from having to install a full Python installation if these are your only use cases.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/d5abd284704b60b65abf16bba8b1446db95d1d1a\"\u003e\u003ccode\u003ed5abd28\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/a325cbc590f303f2e6ba29d26fd68d36209ba639\"\u003e\u003ccode\u003ea325cbc\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/3eb34ec9ea94db9452f5d2e7463ef6231ad7ca71\"\u003e\u003ccode\u003e3eb34ec\u003c/code\u003e\u003c/a\u003e docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/e8ffab42066139a3a21109623d610c73474dbdf5\"\u003e\u003ccode\u003ee8ffab4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/xlwings/xlwings/issues/2775\"\u003e#2775\u003c/a\u003e from xlwings/feat/pivot-read-parity-10-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/7ba7b10820c44ee556a47a3f391705226b0a7133\"\u003e\u003ccode\u003e7ba7b10\u003c/code\u003e\u003c/a\u003e Guard PivotTable actions with live identity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/90dfb04d1bee3d0f3e4b7cafa7ee020bd87a7e35\"\u003e\u003ccode\u003e90dfb04\u003c/code\u003e\u003c/a\u003e Add async PivotTable range reads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/32c6453b5a3db8ff18d9a0cc3d207778642ffdce\"\u003e\u003ccode\u003e32c6453\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/xlwings/xlwings/issues/2774\"\u003e#2774\u003c/a\u003e from xlwings/feat/table-rows-9-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/a17f4cec1a41db2972077ecf8311470aeeae4b5c\"\u003e\u003ccode\u003ea17f4ce\u003c/code\u003e\u003c/a\u003e windows fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/ddbd16f1764c9ec624c933bfd2e44d2bdd5f5259\"\u003e\u003ccode\u003eddbd16f\u003c/code\u003e\u003c/a\u003e fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/309a20537bcc74a2484806c61e4005311f964557\"\u003e\u003ccode\u003e309a205\u003c/code\u003e\u003c/a\u003e fix docs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/xlwings/xlwings/compare/0.36.6...0.37.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 3.0.3 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.3...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.3 to 9.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.1.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.1.1 (2026-06-19)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14220\"\u003e#14220\u003c/a\u003e: Fixed a logic bug in \u003ccode\u003epytest.RaisesGroup\u003c/code\u003e which would might cause it to display incorrect \u0026quot;It matches \u003c!-- raw HTML omitted --\u003eFooError()\u003c!-- raw HTML omitted --\u003e which was paired with \u003c!-- raw HTML omitted --\u003eBarError\u003c!-- raw HTML omitted --\u003e\u0026quot; messages.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14591\"\u003e#14591\u003c/a\u003e: Fixed a regression in pytest 9.1.0 which caused overriding a parametrized fixture with an indirect \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/pytest\"\u003e\u003ccode\u003e@​pytest\u003c/code\u003e\u003c/a\u003e.mark.parametrize\u003c!-- raw HTML omitted --\u003e to fail with \u0026quot;duplicate parametrization of '\u0026lt;fixture name\u0026gt;'\u0026quot;.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14606\"\u003e#14606\u003c/a\u003e: Fixed \u003ccode\u003elist-item\u003c/code\u003e typing errors from mypy in \u003ccode\u003e@pytest.mark.parametrize \u0026lt;pytest.mark.parametrize ref\u0026gt;\u003c/code\u003e \u003ccode\u003eargvalues\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14608\"\u003e#14608\u003c/a\u003e: Fixed a regression in pytest 9.1.0 where \u003ccode\u003econftest.py\u003c/code\u003e files located in \u003ccode\u003e\u0026lt;invocation dir\u0026gt;/test*\u003c/code\u003e were no longer loaded as initial conftests when invoked without arguments.\nThis could cause certain hooks (like \u003ccode\u003epytest_addoption\u003c/code\u003e) in these files to not fire.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.1.0\u003c/h2\u003e\n\u003ch1\u003epytest 9.1.0 (2026-06-13)\u003c/h1\u003e\n\u003ch2\u003eRemovals and backward incompatible breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14533\"\u003e#14533\u003c/a\u003e: When using \u003ccode\u003e--doctest-modules\u003c/code\u003e, autouse fixtures with \u003ccode\u003emodule\u003c/code\u003e, \u003ccode\u003epackage\u003c/code\u003e or \u003ccode\u003esession\u003c/code\u003e scope that are defined inline in Python test modules (not plugins or conftests) will now possibly execute twice.\u003c/p\u003e\n\u003cp\u003eIf this is undesirable, move the fixture definition to a \u003ccode\u003econftest.py\u003c/code\u003e file if possible.\u003c/p\u003e\n\u003cp\u003eTechnical explanation for those interested:\nWhen using \u003c!-- raw HTML omitted --\u003e--doctest-modules\u003c!-- raw HTML omitted --\u003e, pytest possibly collects Python modules twice, once as \u003ccode\u003epytest.Module\u003c/code\u003e and once as a \u003ccode\u003eDoctestModule\u003c/code\u003e (depending on the configuration).\nDue to improvements in pytest's fixture implementation, if e.g. the \u003ccode\u003eDoctestModule\u003c/code\u003e collects a fixture, it is now visible to it only, and not to the \u003ccode\u003eModule\u003c/code\u003e.\nThis means that both need to register the fixtures independently.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations (removal in next major release)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/10819\"\u003e#10819\u003c/a\u003e: Added a deprecation warning for class-scoped fixtures defined as instance methods (without \u003ccode\u003e@classmethod\u003c/code\u003e). Such fixtures set attributes on a different instance than the test methods use, leading to unexpected behavior. Use \u003ccode\u003e@classmethod\u003c/code\u003e decorator instead -- by \u003ccode\u003eyastcher\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003e10819\u003c/code\u003e and \u003ccode\u003e14011\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12882\"\u003e#12882\u003c/a\u003e: Calling \u003ccode\u003erequest.getfixturevalue() \u0026lt;pytest.FixtureRequest.getfixturevalue\u0026gt;\u003c/code\u003e during teardown to request a fixture that was not already requested is now deprecated and will become an error in pytest 10.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003edynamic-fixture-request-during-teardown\u003c/code\u003e for details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13409\"\u003e#13409\u003c/a\u003e: Using non-\u003ccode\u003e~collections.abc.Collection\u003c/code\u003e iterables (such as generators, iterators, or custom iterable objects) for the \u003ccode\u003eargvalues\u003c/code\u003e parameter in \u003ccode\u003e@pytest.mark.parametrize \u0026lt;pytest.mark.parametrize ref\u0026gt;\u003c/code\u003e and \u003ccode\u003emetafunc.parametrize \u0026lt;pytest.Metafunc.parametrize\u0026gt;\u003c/code\u003e is now deprecated.\u003c/p\u003e\n\u003cp\u003eThese iterables get exhausted after the first iteration,\nleading to tests getting unexpectedly skipped in cases such as running \u003ccode\u003epytest.main()\u003c/code\u003e multiple times,\nusing class-level parametrize decorators,\nor collecting tests multiple times.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003eparametrize-iterators\u003c/code\u003e for details and suggestions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute is now deprecated.\nUse \u003ccode\u003econfig.getini() \u0026lt;pytest.Config.getini\u0026gt;\u003c/code\u003e to access configuration values instead.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003econfig-inicfg\u003c/code\u003e for more details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14004\"\u003e#14004\u003c/a\u003e: Passing \u003ccode\u003ebaseid\u003c/code\u003e to \u003ccode\u003e~pytest.FixtureDef\u003c/code\u003e or \u003ccode\u003enodeid\u003c/code\u003e strings to fixture registration APIs is now deprecated. These are internal pytest APIs that are used by some plugins.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/cf470ec0bf7eb89cd97dd56df4859eae5db46447\"\u003e\u003ccode\u003ecf470ec\u003c/code\u003e\u003c/a\u003e Prepare release version 9.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/e0c8ce6cc5db1f08363be6f152c32e6838df2690\"\u003e\u003ccode\u003ee0c8ce6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14625\"\u003e#14625\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/a07c31a97...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/1b82d1694fce22385ee7a4287917fbafbaf2e757\"\u003e\u003ccode\u003e1b82d16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14624\"\u003e#14624\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/b375b79ec...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/501c4bc784da3b08bfcaa64858eba5d15dc59e53\"\u003e\u003ccode\u003e501c4bc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14596\"\u003e#14596\u003c/a\u003e from bluetech/doc-classmethod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b61f588e36e9377c3d1d3f06bece1da0fc31d9ca\"\u003e\u003ccode\u003eb61f588\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14622\"\u003e#14622\u003c/a\u003e from chrisburr/fix-14608-initial-conftest-test-subdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/9a567e009f4d2da3ce1721c6db3109cb5744d40a\"\u003e\u003ccode\u003e9a567e0\u003c/code\u003e\u003c/a\u003e [automated] Update plugin list (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14617\"\u003e#14617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14618\"\u003e#14618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ef8b2993e5b48639e4a3d97d0525df9760781384\"\u003e\u003ccode\u003eef8b299\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14620\"\u003e#14620\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/680f9f3ed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/66abd0784d4cb7c1ba44ab9a8896506cd4985acc\"\u003e\u003ccode\u003e66abd07\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14220\"\u003e#14220\u003c/a\u003e from bysiber/fix-stale-iexp-raisesgroup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/79fbf93b666cac5f27c9dad047943d47b766c8d5\"\u003e\u003ccode\u003e79fbf93\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14612\"\u003e#14612\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/974ed48b6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0d312eb876177e9f1c04262b54060a41034ebf5c\"\u003e\u003ccode\u003e0d312eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14611\"\u003e#14611\u003c/a\u003e from bluetech/parametrize-argvalues-typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.3...9.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/charliedream1/ai_quant_trade/pull/46","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/charliedream1%2Fai_quant_trade/issues/46","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/46/packages"},{"uuid":"5670584182","node_id":"PR_kwDOQqG8is8AAAABGMktRA","number":757,"state":"open","title":"chore(deps): bump the python-dependencies group across 1 directory with 47 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-01T23:25:54.000Z","updated_at":"2026-10-01T23:25:55.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":47,"packages":[{"name":"gwpy","old_version":"4.0.1","new_version":"4.0.2"},{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"matplotlib","old_version":"3.11.1","new_version":"3.11.2","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"setuptools","old_version":"80.10.2","new_version":"84.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"astropy-iers-data","old_version":"0.2026.8.3.0.53.6","new_version":"0.2026.9.28.0.59.37","repository_url":"https://github.com/astropy/astropy-iers-data"},{"name":"build","old_version":"1.4.2","new_version":"1.6.1","repository_url":"https://github.com/pypa/build"},{"name":"charset-normalizer","old_version":"3.4.9","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.4.2","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.15.3","new_version":"7.16.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cryptography","old_version":"50.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"dateparser","old_version":"1.4.1","new_version":"1.4.3","repository_url":"https://github.com/scrapinghub/dateparser"},{"name":"debugpy","old_version":"1.8.21","new_version":"1.8.22","repository_url":"https://github.com/microsoft/debugpy"},{"name":"dqsegdb2","old_version":"1.3.0","new_version":"1.3.1"},{"name":"fastjsonschema","old_version":"2.22.1","new_version":"2.22.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"fonttools","old_version":"4.63.0","new_version":"4.66.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"idna","old_version":"3.18","new_version":"3.20","repository_url":"https://github.com/kjd/idna"},{"name":"ipython","old_version":"9.16.1","new_version":"9.17.1","repository_url":"https://github.com/ipython/ipython"},{"name":"jupyter-client","old_version":"8.9.1","new_version":"8.10.0","repository_url":"https://github.com/jupyter/jupyter_client"},{"name":"kiwisolver","old_version":"1.5.0","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"librt","old_version":"0.13.0","new_version":"0.15.0","repository_url":"https://github.com/mypyc/librt"},{"name":"mypy","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/python/mypy"},{"name":"nbformat","old_version":"5.10.4","new_version":"5.11.1","repository_url":"https://github.com/jupyter/nbformat"},{"name":"packaging","old_version":"26.0","new_version":"26.3","repository_url":"https://github.com/pypa/packaging"},{"name":"platformdirs","old_version":"4.11.0","new_version":"4.12.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pure-eval","old_version":"0.2.3","new_version":"0.2.4","repository_url":"https://github.com/alexmojaki/pure_eval"},{"name":"pygments","old_version":"2.20.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.13.0","new_version":"2.15.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytz","old_version":"2026.3.post1","new_version":"2026.4","repository_url":"https://github.com/stub42/pytz"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"regex","old_version":"2026.7.19","new_version":"2026.9.10","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"ruff","old_version":"0.16.1","new_version":"0.16.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"tornado","old_version":"6.5.7","new_version":"6.5.10","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"tqdm","old_version":"4.70.0","new_version":"4.70.1","repository_url":"https://github.com/tqdm/tqdm"},{"name":"types-pyyaml","old_version":"6.0.12.20260724","new_version":"6.0.12.20260906","repository_url":"https://github.com/python/typeshed"},{"name":"types-requests","old_version":"2.33.0.20260712","new_version":"2.33.0.20260906","repository_url":"https://github.com/python/typeshed"},{"name":"urllib3","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcwidth","old_version":"0.8.2","new_version":"0.9.1","repository_url":"https://github.com/jquast/wcwidth"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"importlib-metadata","old_version":"9.0.0","new_version":"9.0.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"nh3","old_version":"0.3.6","new_version":"0.3.7","repository_url":"https://github.com/messense/nh3"},{"name":"pip","old_version":"26.0.1","new_version":"26.2.1","repository_url":"https://github.com/pypa/pip"},{"name":"pyproject-hooks","old_version":"1.2.0","new_version":"1.3.3","repository_url":"https://github.com/pypa/pyproject-hooks"},{"name":"readme-renderer","old_version":"45.0","new_version":"46.0","repository_url":"https://github.com/pypa/readme_renderer"},{"name":"twine","old_version":"6.2.0","new_version":"7.0.0","repository_url":"https://github.com/pypa/twine"},{"name":"wheel","old_version":"0.46.3","new_version":"0.48.0","repository_url":"https://github.com/pypa/wheel"},{"name":"sphinx","old_version":"8.2.3","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 47 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gwpy](https://gitlab.com/gwpy/gwpy) | `4.0.1` | `4.0.2` |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.5` | `3.0.6` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.11.1` | `3.11.2` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.10.2` | `84.0.0` |\n| [astropy-iers-data](https://github.com/astropy/astropy-iers-data) | `0.2026.8.3.0.53.6` | `0.2026.9.28.0.59.37` |\n| [build](https://github.com/pypa/build) | `1.4.2` | `1.6.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.9` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.15.3` | `7.16.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.1` |\n| [dateparser](https://github.com/scrapinghub/dateparser) | `1.4.1` | `1.4.3` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.21` | `1.8.22` |\n| dqsegdb2 | `1.3.0` | `1.3.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.22.1` | `2.22.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.63.0` | `4.66.0` |\n| [idna](https://github.com/kjd/idna) | `3.18` | `3.20` |\n| [ipython](https://github.com/ipython/ipython) | `9.16.1` | `9.17.1` |\n| [jupyter-client](https://github.com/jupyter/jupyter_client) | `8.9.1` | `8.10.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.5.0` | `1.5.1` |\n| [librt](https://github.com/mypyc/librt) | `0.13.0` | `0.15.0` |\n| [mypy](https://github.com/python/mypy) | `2.3.0` | `2.3.1` |\n| [nbformat](https://github.com/jupyter/nbformat) | `5.10.4` | `5.11.1` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.3` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.11.0` | `4.12.1` |\n| [pure-eval](https://github.com/alexmojaki/pure_eval) | `0.2.3` | `0.2.4` |\n| [pygments](https://github.com/pygments/pygments) | `2.20.0` | `2.21.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.13.0` | `2.15.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.3.2` | `3.3.3` |\n| [pytz](https://github.com/stub42/pytz) | `2026.3.post1` | `2026.4` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.7.19` | `2026.9.10` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.1` | `0.16.9` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.7` | `6.5.10` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.70.0` | `4.70.1` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20260724` | `6.0.12.20260906` |\n| [types-requests](https://github.com/python/typeshed) | `2.33.0.20260712` | `2.33.0.20260906` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.7.0` | `2.8.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.8.2` | `0.9.1` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `9.0.0` | `9.0.1` |\n| [nh3](https://github.com/messense/nh3) | `0.3.6` | `0.3.7` |\n| [pip](https://github.com/pypa/pip) | `26.0.1` | `26.2.1` |\n| [pyproject-hooks](https://github.com/pypa/pyproject-hooks) | `1.2.0` | `1.3.3` |\n| [readme-renderer](https://github.com/pypa/readme_renderer) | `45.0` | `46.0` |\n| [twine](https://github.com/pypa/twine) | `6.2.0` | `7.0.0` |\n| [wheel](https://github.com/pypa/wheel) | `0.46.3` | `0.48.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.2.3` | `9.0.4` |\n\n\nUpdates `gwpy` from 4.0.1 to 4.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://gitlab.com/gwpy/gwpy/tags\"\u003egwpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003cp\u003ePatch release for GWpy 4.0.x.\u003c/p\u003e\n\u003cp\u003eBug Fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with matplotlib 3.11 default colour \u003ccode\u003eprop_cycle\u003c/code\u003e [!2012]\u003c/li\u003e\n\u003cli\u003eEnsure the \u003ccode\u003epelican\u003c/code\u003e extra comes with \u003ccode\u003escitokens\u003c/code\u003e support [!2010]\u003c/li\u003e\n\u003cli\u003eCatch \u003ccode\u003eOSError\u003c/code\u003e inside \u003ccode\u003eon_tape\u003c/code\u003e [!2005]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther Changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate minimum version of \u003ccode\u003elscsoft-glue\u003c/code\u003e [!2003]\u003c/li\u003e\n\u003cli\u003eUpdate minimum version of \u003ccode\u003escitokens\u003c/code\u003e to 1.9.7 [!2008]\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epytest\u003c/code\u003e \u0026gt;=9.0.3 to avoid vulnerability [!2009]\u003c/li\u003e\n\u003cli\u003eImprove minimum acceptable dependencies and testing [!2014]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://gitlab.com/gwpy/gwpy/blob/main/CHANGELOG.rst\"\u003egwpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.0.2 - 2026-08-14\u003c/h1\u003e\n\u003cp\u003ePatch release for GWpy 4.0.x.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eFull details \u0026lt;https://gitlab.com/gwpy/gwpy/-/releases/v4.0.2\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003cp\u003e.. _v4.0.2-bug-fixes:\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix compatibility with matplotlib 3.11 default colour \u003ccode\u003eprop_cycle\u003c/code\u003e\n[:mr:\u003ccode\u003e2012\u003c/code\u003e]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnsure the \u003ccode\u003epelican\u003c/code\u003e extra comes with \u003ccode\u003escitokens\u003c/code\u003e support\n[:mr:\u003ccode\u003e2010\u003c/code\u003e]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCatch \u003ccode\u003eOSError\u003c/code\u003e inside \u003ccode\u003eon_tape\u003c/code\u003e\n[:mr:\u003ccode\u003e2005\u003c/code\u003e]\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v4.0.2-other-changes:\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate minimum version of \u003ccode\u003elscsoft-glue\u003c/code\u003e\n[:mr:\u003ccode\u003e2003\u003c/code\u003e]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate minimum version of \u003ccode\u003escitokens\u003c/code\u003e to 1.9.7\n[:mr:\u003ccode\u003e2008\u003c/code\u003e]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003epytest\u003c/code\u003e \u0026gt;=9.0.3 to avoid vulnerability\n[:mr:\u003ccode\u003e2009\u003c/code\u003e]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove minimum acceptable dependencies and testing\n[:mr:\u003ccode\u003e2014\u003c/code\u003e]\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v4.0.1:\u003c/p\u003e\n\u003cp\u003e==================\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/3bbe4ea130ca2770610b7e4b9ca430fd0b7a15d2\"\u003e\u003ccode\u003e3bbe4ea\u003c/code\u003e\u003c/a\u003e build: configure explicit pypi index for uv publish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/f78983a8f4a6cfb57d4f45b4fdb9d4d0c3cb529b\"\u003e\u003ccode\u003ef78983a\u003c/code\u003e\u003c/a\u003e Merge branch 'debug-tag-cicd' into 'main'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/44785df14ebf48c159868e9933107a7b4bf836c6\"\u003e\u003ccode\u003e44785df\u003c/code\u003e\u003c/a\u003e chore(ci): ensure publish jobs have unique names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/4045f783c7ffdcb307a3e43c838c03b05d6463cd\"\u003e\u003ccode\u003e4045f78\u003c/code\u003e\u003c/a\u003e ci: include rules.yml config once only\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/4e1b4e8ad385d24222c8b0c2d83787e0ff39f5e6\"\u003e\u003ccode\u003e4e1b4e8\u003c/code\u003e\u003c/a\u003e Merge branch 'finalise-4.0.2' into 'main'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/d67463204e1ff5f3aa15a8a792a9b6ab06a2d608\"\u003e\u003ccode\u003ed674632\u003c/code\u003e\u003c/a\u003e chore(docs): update changelog for 4.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/23d4ebbc9be332056502005f990fb8d4dc538b9a\"\u003e\u003ccode\u003e23d4ebb\u003c/code\u003e\u003c/a\u003e Merge branch 'ci-dependency-scanning-no-resolution' into 'main'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/132ebf0ed061cc47f9dff4c425e78a2168952971\"\u003e\u003ccode\u003e132ebf0\u003c/code\u003e\u003c/a\u003e ci: disable gitlab's python dependency-resolution job\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/823b1ea6f624d0853dfa7d358ee8e223a08869a3\"\u003e\u003ccode\u003e823b1ea\u003c/code\u003e\u003c/a\u003e Merge branch 'ci-minimum-dependencies' into 'main'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/086e54bc39cf653da5066ae77e68a6421c39ba23\"\u003e\u003ccode\u003e086e54b\u003c/code\u003e\u003c/a\u003e build: bump minimum acceptable version of lalsuite\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://gitlab.com/gwpy/gwpy/compare/v4.0.1...v4.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 3.0.5 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.5...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.11.1 to 3.11.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREL: v3.11.2\u003c/h2\u003e\n\u003cp\u003eThis is the second bugfix release of the 3.11.x series.\u003c/p\u003e\n\u003cp\u003eThis release contains several bug-fixes and adjustments:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up RGBA-stage image resampling\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ehexbin\u003c/code\u003e clipping in PDF output\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e\\text\u003c/code\u003e with internal braces\u003c/li\u003e\n\u003cli\u003eFix some crashes and make some checks more robust to unlikely cases\u003c/li\u003e\n\u003cli\u003eFix frame skew when saving GIF animations with \u003ccode\u003ePillowWriter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix HiDPI handling in Qt toolbar and WebAgg embeddings\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eResizeEvent\u003c/code\u003e handling for \u003ccode\u003eTextBox\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix bug with PGF hatch linewidth and color\u003c/li\u003e\n\u003cli\u003eFix a bug with drawing an empty Collection\u003c/li\u003e\n\u003cli\u003eFix incorrect glyphs in Cairo backends\u003c/li\u003e\n\u003cli\u003eImprove build system to prevent conflicts between wheels and system libraries\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d3ca9172e392048ec242b90e8423e88d1a3000b2\"\u003e\u003ccode\u003ed3ca917\u003c/code\u003e\u003c/a\u003e REL: v3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/b76fea990aa10afdba9225ee0f058d942cfcb770\"\u003e\u003ccode\u003eb76fea9\u003c/code\u003e\u003c/a\u003e DOC: Set current version to 3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/39c7f0678af763abe850b41a71cd2724e326157c\"\u003e\u003ccode\u003e39c7f06\u003c/code\u003e\u003c/a\u003e DOC: Prepare GitHub stats for 3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5dd13e39ceadb89af6e17c64cb0c71a2c3ddc94e\"\u003e\u003ccode\u003e5dd13e3\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.11.1-doc' into release-3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/aa484be97e65ffa1c7e2770864dc44a219625180\"\u003e\u003ccode\u003eaa484be\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.11.0-doc' into v3.11.1-doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/0e10f83000d7993160feb264f84150b5a4cacfff\"\u003e\u003ccode\u003e0e10f83\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32330\"\u003e#32330\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-32324-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/ebe947bd694df95e189fb93b63060051a6b55f3d\"\u003e\u003ccode\u003eebe947b\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32324\"\u003e#32324\u003c/a\u003e: Don't force any diagnostics to be errors in bundled Harfbuzz\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/8f4b7c53b228dceded120488f569ff936d91844c\"\u003e\u003ccode\u003e8f4b7c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32322\"\u003e#32322\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-32321-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/93278ade075ca4b6483afac10f9a2d1e775a5f36\"\u003e\u003ccode\u003e93278ad\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32321\"\u003e#32321\u003c/a\u003e: DOC: correct note about PyOS_InputHook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/b0aee786396e59de7ea5a1cec646cbc889250b57\"\u003e\u003ccode\u003eb0aee78\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32319\"\u003e#32319\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-32305-on-v...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.11.1...v3.11.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 80.10.2 to 84.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev84.0.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNewline-separated \u003ccode\u003ekeywords\u003c/code\u003e and \u003ccode\u003eplatforms\u003c/code\u003e\u003ccode\u003epypa/setuptools#4887\u003c/code\u003e\u003ccode\u003eold specification \u0026lt;https://peps.python.org/pep-0345/\u0026gt;\u003c/code\u003e_ separated items with spaces and the current one uses commas. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4887\"\u003e#4887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eExtension\u003c/code\u003e\u003ccode\u003epypa/distutils#373\u003c/code\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5022\"\u003e#5022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe C compiler modules now emit log messages through their own \u003ccode\u003ecompilers.C.*\u003c/code\u003e loggers instead of the distutils root logger, part of decoupling the compilers package from distutils. The logger names are normalized to a stable \u003ccode\u003ecompilers.C.*\u003c/code\u003e prefix so they remain constant as the package migrates toward a standalone \u003ccode\u003ecompilers.C\u003c/code\u003e distribution. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5266\"\u003e#5266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe C compilers gained a \u003ccode\u003eCompiler.call\u003c/code\u003e method -- a thin wrapper over \u003ccode\u003esubprocess.check_call\u003c/code\u003e (with macOS deployment-target env injection) that is the modern replacement for \u003ccode\u003eCompiler.spawn\u003c/code\u003e. The compilers no longer depend on \u003ccode\u003edistutils.spawn\u003c/code\u003e, \u003ccode\u003edistutils.dir_util\u003c/code\u003e, \u003ccode\u003edistutils.file_util\u003c/code\u003e, \u003ccode\u003edistutils._modified\u003c/code\u003e, or \u003ccode\u003edistutils.util.execute\u003c/code\u003e/\u003ccode\u003esplit_quoted\u003c/code\u003e: the generic \u003ccode\u003enewer\u003c/code\u003e/\u003ccode\u003enewer_group\u003c/code\u003e and \u003ccode\u003esplit_quoted\u003c/code\u003e helpers are vendored into the \u003ccode\u003ecompilers\u003c/code\u003e package, and \u003ccode\u003eCompiler.mkpath\u003c/code\u003e/\u003ccode\u003emove_file\u003c/code\u003e/\u003ccode\u003eexecute\u003c/code\u003e are implemented directly on the standard library (\u003ccode\u003eos.makedirs\u003c/code\u003e/\u003ccode\u003eshutil.move\u003c/code\u003e). The methods are retained for backward compatibility. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5267\"\u003e#5267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe compilers no longer depend on \u003ccode\u003edistutils.util\u003c/code\u003e, \u003ccode\u003edistutils.version\u003c/code\u003e, \u003ccode\u003edistutils.compat\u003c/code\u003e, or \u003ccode\u003edistutils._macos_compat\u003c/code\u003e. The platform-identification helpers (\u003ccode\u003eget_platform\u003c/code\u003e/\u003ccode\u003eget_host_platform\u003c/code\u003e/\u003ccode\u003eis_mingw\u003c/code\u003e) now live in \u003ccode\u003edistutils.compilers.platform.detect\u003c/code\u003e and the macOS deployment-target logic and \u003ccode\u003ecompiler_fixup\u003c/code\u003e in \u003ccode\u003edistutils.compilers.platform.macos\u003c/code\u003e; \u003ccode\u003eCygwinCCompiler.gcc_version\u003c/code\u003e returns a \u003ccode\u003epackaging.version.Version\u003c/code\u003e. \u003ccode\u003edistutils.util\u003c/code\u003e re-exports the platform/macOS helpers from their new homes for backward compatibility rather than keeping duplicate copies. (sysconfig lookups still route through distutils pending its own decoupling.) (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5268\"\u003e#5268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe compilers now read their build configuration from the standard library's \u003ccode\u003esysconfig\u003c/code\u003e instead of \u003ccode\u003edistutils.sysconfig\u003c/code\u003e. Per-compiler customization -- previously \u003ccode\u003edistutils.sysconfig.customize_compiler\u003c/code\u003e -- has moved into \u003ccode\u003eCompiler.configure_system()\u003c/code\u003e: a no-op on the base class, with \u003ccode\u003eUnixCCompiler\u003c/code\u003e applying the compiler/flag/archiver settings CPython recorded in \u003ccode\u003esysconfig\u003c/code\u003e (and the usual \u003ccode\u003eCC\u003c/code\u003e/\u003ccode\u003eCFLAGS\u003c/code\u003e/\u003ccode\u003eLDSHARED\u003c/code\u003e/… environment overrides). \u003ccode\u003edistutils.sysconfig.customize_compiler\u003c/code\u003e is retained as a thin wrapper that calls \u003ccode\u003ecompiler.configure_system()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe MSVC linker now passes its arguments through a response file when the command line would exceed the Windows maximum length, fixing failures when linking a large number of objects. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4177\"\u003e#4177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe Cygwin and MinGW compilers now pass \u003ccode\u003e-O1\u003c/code\u003e instead of a bare \u003ccode\u003e-O\u003c/code\u003e. The two are equivalent to GCC, but \u003ccode\u003ecc1\u003c/code\u003e rejected the bare form when building 32-bit extensions with \u003ccode\u003e-m32\u003c/code\u003e. -- by :user:\u003ccode\u003edchaudhari7177\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4873\"\u003e#4873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecopy_file\u003c/code\u003e\u003ccode\u003epypa/distutils#379\u003c/code\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5079\"\u003e#5079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSetuptools wheels no longer bundled the project's own test modules. -- by :user:\u003ccode\u003eitscloud0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebuild_ext\u003c/code\u003e no longer fails when cross-compiling with a compiler other than MSVC (such as MinGW). \u003ccode\u003eCompiler\u003c/code\u003e now provides a no-op \u003ccode\u003einitialize()\u003c/code\u003e\u003ccode\u003epypa/distutils#399\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eClarified what \u0026quot;correspond exactly to the directory structure\u0026quot; means in\nthe \u003ccode\u003epackages\u003c/code\u003e section of the Package Discovery user guide. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4109\"\u003e#4109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocumented how \u003ccode\u003ebdist_wheel\u003c/code\u003e's \u003ccode\u003epy_limited_api\u003c/code\u003e option controls\n\u003ccode\u003eabi3\u003c/code\u003e wheel tagging for extension modules -- by :user:\u003ccode\u003eHimanshuagrawal4\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4741\"\u003e#4741\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCompiler.spawn\u003c/code\u003e is deprecated in favor of the new \u003ccode\u003eCompiler.call\u003c/code\u003e. \u003ccode\u003ecall\u003c/code\u003e raises native \u003ccode\u003esubprocess\u003c/code\u003e exceptions; \u003ccode\u003espawn\u003c/code\u003e remains as a shim that emits a \u003ccode\u003eDeprecationWarning\u003c/code\u003e and translates them to \u003ccode\u003eDistutilsExecError\u003c/code\u003e. The MSVC \u003ccode\u003espawn\u003c/code\u003e compatibility shim for third-party monkeypatches predating the \u003ccode\u003eenv\u003c/code\u003e argument (numpy.distutils before 1.19, per \u003ca href=\"https://redirect.github.com/pypa/distutils/issues/15\"\u003epypa/distutils#15\u003c/a\u003e) has been removed. \u003ccode\u003edistutils.spawn.spawn\u003c/code\u003e is likewise reduced to a thin wrapper around \u003ccode\u003esubprocess.check_call\u003c/code\u003e: it no longer resolves \u003ccode\u003ecmd[0]\u003c/code\u003e via \u003ccode\u003eshutil.which\u003c/code\u003e (\u003ccode\u003esubprocess\u003c/code\u003e searches \u003ccode\u003ePATH\u003c/code\u003e itself) nor injects \u003ccode\u003eMACOSX_DEPLOYMENT_TARGET\u003c/code\u003e (that now lives with the compilers, the only callers to which it applied). (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5267\"\u003e#5267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuilding an extension with a \u003ccode\u003eMACOSX_DEPLOYMENT_TARGET\u003c/code\u003e lower than the interpreter's configured value now raises \u003ccode\u003ecompilers.errors.PlatformError\u003c/code\u003e instead of \u003ccode\u003edistutils.errors.DistutilsPlatformError\u003c/code\u003e (the macOS deployment-target check moved into the compilers package). \u003ccode\u003eCygwinCCompiler.gcc_version\u003c/code\u003e returns a \u003ccode\u003epackaging.version.Version\u003c/code\u003e rather than the removed \u003ccode\u003edistutils.version.LooseVersion\u003c/code\u003e. Completing the transition begun in \u003ca href=\"https://redirect.github.com/pypa/distutils/issues/246\"\u003epypa/distutils#246\u003c/a\u003e, \u003ccode\u003eUnixCCompiler.runtime_library_dir_option\u003c/code\u003e now returns the \u003ccode\u003e[\u0026quot;-Wl,--enable-new-dtags\u0026quot;, \u0026quot;-Wl,-rpath,\u0026lt;dir\u0026gt;\u0026quot;]\u003c/code\u003e list directly for GNU ld rather than collapsing it into a single string, and the temporary \u003ccode\u003edistutils.compat.consolidate_linker_args\u003c/code\u003e shim has been removed. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5268\"\u003e#5268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe compilers now define their own exception vocabulary instead of borrowing distutils' framework errors. Language-agnostic exceptions (\u003ccode\u003eError\u003c/code\u003e, \u003ccode\u003eUnknownFileType\u003c/code\u003e, and a new \u003ccode\u003ePlatformError\u003c/code\u003e) live at \u003ccode\u003edistutils.compilers.errors\u003c/code\u003e, leaving room for future \u003ccode\u003ecompilers.\u0026lt;language\u0026gt;\u003c/code\u003e siblings; the C/C++-specific \u003ccode\u003eCompileError\u003c/code\u003e/\u003ccode\u003eLinkError\u003c/code\u003e/\u003ccode\u003eLibError\u003c/code\u003e/\u003ccode\u003ePreprocessError\u003c/code\u003e remain in \u003ccode\u003edistutils.compilers.C.errors\u003c/code\u003e. The compilers now raise \u003ccode\u003ecompilers.errors.PlatformError\u003c/code\u003e where they previously raised \u003ccode\u003edistutils.errors.DistutilsPlatformError\u003c/code\u003e/\u003ccode\u003eDistutilsModuleError\u003c/code\u003e, and \u003ccode\u003ecompilers._modified.newer\u003c/code\u003e raises the stdlib \u003ccode\u003eFileNotFoundError\u003c/code\u003e. \u003ccode\u003edistutils.errors\u003c/code\u003e keeps its own framework exceptions and re-exports the compiler ones (\u003ccode\u003eCCompilerError\u003c/code\u003e, \u003ccode\u003eCompileError\u003c/code\u003e, etc.) for backward compatibility; because \u003ccode\u003eCCompilerError\u003c/code\u003e is \u003ccode\u003ecompilers.errors.Error\u003c/code\u003e, code catching it (as distutils' top-level handlers do) still catches the new \u003ccode\u003ePlatformError\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecustomize_compiler\u003c/code\u003e now asserts that the compiler-related config variables (\u003ccode\u003eCC\u003c/code\u003e, \u003ccode\u003eCXX\u003c/code\u003e, \u003ccode\u003eCFLAGS\u003c/code\u003e, etc.) resolve to strings, raising \u003ccode\u003eAssertionError\u003c/code\u003e if any are unexpectedly \u003ccode\u003eNone\u003c/code\u003e\u003ccode\u003epypa/distutils#363\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev83.0.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python 3.10 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/72e919a8b10aaafc041205d4e3ae0e6a2e1e5f87\"\u003e\u003ccode\u003e72e919a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5293\"\u003e#5293\u003c/a\u003e from pypa/bugfix/integration-pip-flit-backend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/1b2970113fd6cda8d4bcac5a1ef6ff865bff62ee\"\u003e\u003ccode\u003e1b29701\u003c/code\u003e\u003c/a\u003e Select the top-level pyproject.toml when reading build requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/bb1b38189eed960bdb4f4789926472d05e43d335\"\u003e\u003ccode\u003ebb1b381\u003c/code\u003e\u003c/a\u003e Bump version: 83.0.0 → 84.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/ee6fdd710e9f466ea06777b4eca32083fdfc9376\"\u003e\u003ccode\u003eee6fdd7\u003c/code\u003e\u003c/a\u003e Sync with distutils @ e8eb87855 (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5292\"\u003e#5292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/2a4a9e4e377ea11a418aa53b9a3cf567fd69df16\"\u003e\u003ccode\u003e2a4a9e4\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/main' into distutils-e8eb87855\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/cbd1195692917f432ddc2b56babbf2e536f4fd68\"\u003e\u003ccode\u003ecbd1195\u003c/code\u003e\u003c/a\u003e Merge \u003ca href=\"https://github.com/jaraco/skeleton\"\u003ehttps://github.com/jaraco/skeleton\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/bd3594ebfe6c18e161bbc90ef2a91d19881464b1\"\u003e\u003ccode\u003ebd3594e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5287\"\u003e#5287\u003c/a\u003e from Avasam/Configuring-lint.flake8-comprehensions.a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/f02e90a821fee92ff5ee2bf0d681b70cf24ebbb0\"\u003e\u003ccode\u003ef02e90a\u003c/code\u003e\u003c/a\u003e Configure C408 to allow dict(a=1) rather than disabling it\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/c55f52bdb7f952f9ccbd824100c7830dbed5546f\"\u003e\u003ccode\u003ec55f52b\u003c/code\u003e\u003c/a\u003e Configuring lint.flake8-comprehensions.allow-dict-calls-with-keyword-argument...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/e9904b0c7e5e249b535832b88efa847ee097de3a\"\u003e\u003ccode\u003ee9904b0\u003c/code\u003e\u003c/a\u003e Match the distutils sdist base type for the user_options override\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v80.10.2...v84.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `astropy-iers-data` from 0.2026.8.3.0.53.6 to 0.2026.9.28.0.59.37\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astropy/astropy-iers-data/releases\"\u003eastropy-iers-data's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.2026.9.28.0.59.37\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.9.21.0.56.25...v0.2026.9.28.0.59.37\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.9.21.0.56.25...v0.2026.9.28.0.59.37\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.9.21.0.56.25\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.9.14.0.56.43...v0.2026.9.21.0.56.25\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.9.14.0.56.43...v0.2026.9.21.0.56.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.9.14.0.56.43\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.9.7.0.56.14...v0.2026.9.14.0.56.43\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.9.7.0.56.14...v0.2026.9.14.0.56.43\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.9.7.0.56.14\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the actions group in /.github/workflows with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/astropy/astropy-iers-data/pull/78\"\u003eastropy/astropy-iers-data#78\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.8.31.0.57.9...v0.2026.9.7.0.56.14\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.8.31.0.57.9...v0.2026.9.7.0.56.14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.8.31.0.57.9\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.8.24.0.24.29...v0.2026.8.31.0.57.9\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.8.24.0.24.29...v0.2026.8.31.0.57.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.8.24.0.24.29\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.8.18.14.22.31...v0.2026.8.24.0.24.29\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.8.18.14.22.31...v0.2026.8.24.0.24.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.8.18.14.22.31\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade OpenAstronomy to v3.0.3 to fix release workflow by \u003ca href=\"https://github.com/pllim\"\u003e\u003ccode\u003e@​pllim\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/astropy/astropy-iers-data/pull/77\"\u003eastropy/astropy-iers-data#77\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlso include \u003ccode\u003ev0.2026.8.17.0.23.36\u003c/code\u003e that did not make it to PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.8.17.0.23.36...v0.2026.8.18.14.22.31\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.8.17.0.23.36...v0.2026.8.18.14.22.31\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.8.17.0.23.36\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.8.10.0.32.39...v0.2026.8.17.0.23.36\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.8.10.0.32.39...v0.2026.8.17.0.23.36\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.8.10.0.32.39\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.8.3.0.53.6...v0.2026.8.10.0.32.39\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.8.3.0.53.6...v0.2026.8.10.0.32.39\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/bbdcb5834d90fe56acc6c11b31b8637e9f46eb3e\"\u003e\u003ccode\u003ebbdcb58\u003c/code\u003e\u003c/a\u003e Update IERS Earth rotation and leap second tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/c8ea4988d7d2f00601d5e5aae38d8df231f6817c\"\u003e\u003ccode\u003ec8ea498\u003c/code\u003e\u003c/a\u003e Update IERS Earth rotation and leap second tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/958fa5bbcc630c8edcdbbdf721f1a5750b5b806a\"\u003e\u003ccode\u003e958fa5b\u003c/code\u003e\u003c/a\u003e Update IERS Earth rotation and leap second tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/2f779770fc3fa5f6a4bc2d97fabed4539f0619d4\"\u003e\u003ccode\u003e2f77977\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/astropy/astropy-iers-data/issues/78\"\u003e#78\u003c/a\u003e from astropy/dependabot/github_actions/dot-github/work...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/f81abd3b508f6fbb22f1b0513232e76bc598cc8e\"\u003e\u003ccode\u003ef81abd3\u003c/code\u003e\u003c/a\u003e Bump the actions group in /.github/workflows with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/4c65eb329946f60d99c597865c2502f7deecfd7e\"\u003e\u003ccode\u003e4c65eb3\u003c/code\u003e\u003c/a\u003e Update IERS Earth rotation and leap second tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/f9a8973b2bfae83e831008cec1e7898d668bc6f2\"\u003e\u003ccode\u003ef9a8973\u003c/code\u003e\u003c/a\u003e Update IERS Earth rotation and leap second tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/1207499426b84cb28fd2c75de1e395e32bcef1be\"\u003e\u003ccode\u003e1207499\u003c/code\u003e\u003c/a\u003e Update IERS Earth rotation and leap second tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/a942e496b4f19b04f325211916dfac2a1b180f5a\"\u003e\u003ccode\u003ea942e49\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/astropy/astropy-iers-data/issues/77\"\u003e#77\u003c/a\u003e from pllim/pllim-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/12c255d76af4e814ec992fb2f1dfaf4718b0fcbe\"\u003e\u003ccode\u003e12c255d\u003c/code\u003e\u003c/a\u003e Upgrade OpenAstronomy to v3.0.3 to fix release workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.8.3.0.53.6...v0.2026.9.28.0.59.37\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.4.2 to 1.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore[v1]: prepare for v1.6.1 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1181\"\u003epypa/build#1181\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/build/compare/1.6.0...1.6.1\"\u003ehttps://github.com/pypa/build/compare/1.6.0...1.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.6.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace prettier with mdformat and yamlfmt by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1133\"\u003epypa/build#1133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLet yamlfmt format the workflows by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1134\"\u003epypa/build#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(release): semver auto bump, changelog reflow, and roll back 1.5.1 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1132\"\u003epypa/build#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: hash verification in --dependency-constraints-txt could be silently skipped by \u003ca href=\"https://github.com/manfred-kaiser\"\u003e\u003ccode\u003e@​manfred-kaiser\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1140\"\u003epypa/build#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(ci): bump build-and-inspect-python-package to v3.0.1 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1147\"\u003epypa/build#1147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(ci): pin coverage core to ctrace so test contexts record by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1148\"\u003epypa/build#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: run mypy on more parts of the code by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1151\"\u003epypa/build#1151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: turn up strictness on mypy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1153\"\u003epypa/build#1153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: faster mypy, fix merge error by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1156\"\u003epypa/build#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(ci): rerun integration tests on transient network errors by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1150\"\u003epypa/build#1150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: clean up unused casts in tests by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1154\"\u003epypa/build#1154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(typing): apply review feedback from \u003ca href=\"https://redirect.github.com/pypa/build/issues/1093\"\u003e#1093\u003c/a\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1155\"\u003epypa/build#1155\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Generator is more accurate than Iterator by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1152\"\u003epypa/build#1152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: mark test_main_sdist_input_end_to_end with pytest.mark.network by \u003ca href=\"https://github.com/frenzymadness\"\u003e\u003ccode\u003e@​frenzymadness\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1144\"\u003epypa/build#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;⚠️ feat(util): deprecate project_wheel_metadata\u0026quot; by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1158\"\u003epypa/build#1158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: download integration sources once per run by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1157\"\u003epypa/build#1157\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse stdlib \u003ccode\u003eimportlib.metadata\u003c/code\u003e for typing by \u003ca href=\"https://github.com/layday\"\u003e\u003ccode\u003e@​layday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1162\"\u003epypa/build#1162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop redundant \u003ccode\u003eexc_info\u003c/code\u003e parameter from backend exception wrapper by \u003ca href=\"https://github.com/layday\"\u003e\u003ccode\u003e@​layday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1161\"\u003epypa/build#1161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop a few PyPy-specific test skips by \u003ca href=\"https://github.com/layday\"\u003e\u003ccode\u003e@​layday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1164\"\u003epypa/build#1164\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 chore: batch dependency updates weekly on Tuesday by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1165\"\u003epypa/build#1165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👷 ci: use app token for releases by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1169\"\u003epypa/build#1169\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/manfred-kaiser\"\u003e\u003ccode\u003e@​manfred-kaiser\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1140\"\u003epypa/build#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frenzymadness\"\u003e\u003ccode\u003e@​frenzymadness\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1144\"\u003epypa/build#1144\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/build/compare/1.5.1...1.6.0\"\u003ehttps://github.com/pypa/build/compare/1.5.1...1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(cli): accept sdist tarball as srcdir argument by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1057\"\u003epypa/build#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop 3.9 branches for version_info checks by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1059\"\u003epypa/build#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: skip test_uv_install_strips_pythonpath with missing uv by \u003ca href=\"https://github.com/mtelka\"\u003e\u003ccode\u003e@​mtelka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1063\"\u003epypa/build#1063\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove myself from codeowners by \u003ca href=\"https://github.com/FFY00\"\u003e\u003ccode\u003e@​FFY00\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1066\"\u003epypa/build#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: safe_extractall to use pathlib.Path by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1060\"\u003epypa/build#1060\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e####################\n1.6.1 (2026-09-10)\n####################\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid trying to detect symlinks on Windows, regression in 1.6.0 - by :user:\u003ccode\u003ehenryiii\u003c/code\u003e (:issue:\u003ccode\u003e1175\u003c/code\u003e) (:issue:\u003ccode\u003e1175\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eDocumentation\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eFix doubled backslashes in the Windows pip config path (\u003ccode\u003e%APPDATA%\\pip\\pip.ini\u003c/code\u003e) in the docs - by :user:\u003ccode\u003earoh3006\u003c/code\u003e\n(:issue:\u003ccode\u003e1149\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMiscellaneous\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e:issue:\u003ccode\u003e1168\u003c/code\u003e, :issue:\u003ccode\u003e1170\u003c/code\u003e, :issue:\u003ccode\u003e1178\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e####################\n1.6.0 (2026-08-27)\n####################\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--report=PATH\u003c/code\u003e to write a machine-readable JSON report of built artifacts; \u003ccode\u003e--metadata\u003c/code\u003e now also accepts\n\u003ccode\u003e.whl\u003c/code\u003e files - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e (:issue:\u003ccode\u003e198\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003esrcdir\u003c/code\u003e argument now accepts \u003ccode\u003e.tar.gz\u003c/code\u003e source distributions, extracting and building from them - by\n:user:\u003ccode\u003egaborbernat\u003c/code\u003e (:issue:\u003ccode\u003e311\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eThe \u0026quot;Unmet dependencies\u0026quot; error from \u003ccode\u003e--no-isolation\u003c/code\u003e builds now shows the wanted version, found version, and\ninterpreter - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e (:issue:\u003ccode\u003e504\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--sdist-extract-dir\u003c/code\u003e to extract the intermediate sdist into a persistent directory, enabling compiler cache\nreuse across rebuilds - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e (:issue:\u003ccode\u003e614\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--env-dir\u003c/code\u003e to place the isolated build environment at a fixed path, enabling compiler cache reuse across builds\n\u003cul\u003e\n\u003cli\u003eby :user:\u003ccode\u003egaborbernat\u003c/code\u003e (:issue:\u003ccode\u003e655\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePrint a summary of resolved dependency versions (\u003ccode\u003ename==version\u003c/code\u003e) after installing them in isolated builds - by\n:user:\u003ccode\u003egaborbernat\u003c/code\u003e (:issue:\u003ccode\u003e959\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOn build failure, print a tip pointing to \u003ccode\u003e--env-dir\u003c/code\u003e and \u003ccode\u003e--sdist-extract-dir\u003c/code\u003e for debugging and link to the\n\u0026quot;Debug a failed build\u0026quot; how-to - reported by :user:\u003ccode\u003edimpase\u003c/code\u003e, implemented by :user:\u003ccode\u003egaborbernat\u003c/code\u003e (:issue:\u003ccode\u003e966\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003chr /\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/89cccef40df9011f03bec18cf52c53d1096ed6ee\"\u003e\u003ccode\u003e89cccef\u003c/code\u003e\u003c/a\u003e chore: prepare for 1.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/a6f707a75fc8548d7707645e97c7903197387849\"\u003e\u003ccode\u003ea6f707a\u003c/code\u003e\u003c/a\u003e ci: support releases from v* branches (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1178\"\u003e#1178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/77851610de5d3894fa8a88e06e0232901cf93758\"\u003e\u003ccode\u003e7785161\u003c/code\u003e\u003c/a\u003e docs: fix doubled backslashes in Windows pip config path (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1149\"\u003e#1149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/244b250c3219070eebb29764f7709262d48afd41\"\u003e\u003ccode\u003e244b250\u003c/code\u003e\u003c/a\u003e fix: always use copies for the isolated venv on Windows (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/c93ca6f6d252e4d8df7fda4a61f8f9ed8a55a411\"\u003e\u003ccode\u003ec93ca6f\u003c/code\u003e\u003c/a\u003e build(deps): bump re-actors/alls-green from 1.2.2 to 1.3.0 in the github-acti...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/e02ffd32241aec2e306d90869417c1e900c0adb4\"\u003e\u003ccode\u003ee02ffd3\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1173\"\u003e#1173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/aad39a800e3d81bf907018ebe2fab135717da59b\"\u003e\u003ccode\u003eaad39a8\u003c/code\u003e\u003c/a\u003e docs: fix changelog page heading levels and sidebar (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1171\"\u003e#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/5c3fd46b5c38c7caea5dd95ce365971104a734aa\"\u003e\u003ccode\u003e5c3fd46\u003c/code\u003e\u003c/a\u003e docs: use PyPI ref directly (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1172\"\u003e#1172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/1c5bd6c21cbd33c1816978d45219d48fb4c2b269\"\u003e\u003ccode\u003e1c5bd6c\u003c/code\u003e\u003c/a\u003e 🐛 fix(release): format generated changelog (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1170\"\u003e#1170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/7f0cc7ed19969558c7daeaa3652ce2ffc81599c1\"\u003e\u003ccode\u003e7f0cc7e\u003c/code\u003e\u003c/a\u003e 🔧 build(type): replace mypy with pyrefly (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1168\"\u003e#1168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.4.2...1.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.9 to 3.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.5.0...3.5.1\"\u003e3.5.1\u003c/a\u003e (2026-08-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised upper bound of setuptools to v84 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/794\"\u003e#794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache performance access optimization for our CharInfo struct (prebuilt only).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer decoding large content when the noise detector output give a high entropy.\nOnly impacted large content input \u0026gt;1M bytes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.9...3.5.0\"\u003e3.5.0\u003c/a\u003e (2026-08-12)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExplicit support for Python 3.15\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComparing a CharsetMatch to a non-alias encoding strings (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn 0.0 CharsetMatch.multi_byte_usage for empty payloads instead of crashing (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/774\"\u003e#774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA file with both a charset declaration and BOM/SIG did not verify first the BOM/SIG charset.\u003c/li\u003e\n\u003cli\u003eiso2022* cases misdetected due to a flaw in our multibyte chunking logic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced the optional mypyc build with Cython extensions while retaining the\npure Python fallback. The previous engine (mypyc) started to hit rough limit around\nthe optimization of our noise/coherence detector while Cython allows us to\nsteer the engine toward the right generated optimized sources.\nThis change SHOULD not impact bundler (e.g. Pyinstaller) as the module are\nimmediately discoverable (i.e. not hidden import like mypyc did).\nMoreover, a long wished distribution is the abi3 wheels, this will allow us\nto no longer rush each year when a new Python interpreter is released.\nWe still distribute the interpreter specific wheels for faster performance.\u003c/li\u003e\n\u003cli\u003eApplied micro-optimization on several utils.\u003c/li\u003e\n\u003cli\u003eCharsetMatches no longer sort on each match insertion.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an old performance optimization attempt in apy.py (success_fast_tracked+payload_result_cache).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.5.0...3.5.1\"\u003e3.5.1\u003c/a\u003e (2026-08-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised upper bound of setuptools to v84 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/794\"\u003e#794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache performance access optimization for our CharInfo struct (prebuilt only).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer decoding large content when the noise detector output give a high entropy.\nOnly impacted large content input \u0026gt;1M bytes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.9...3.5.0\"\u003e3.5.0\u003c/a\u003e (2026-08-12)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExplicit support for Python 3.15\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComparing a CharsetMatch to a non-alias encoding strings (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn 0.0 CharsetMatch.multi_byte_usage for empty payloads instead of crashing (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/774\"\u003e#774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA file with both a charset declaration and BOM/SIG did not verify first the BOM/SIG charset.\u003c/li\u003e\n\u003cli\u003eiso2022* cases misdetected due to a flaw in our multibyte chunking logic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced the optional mypyc build with Cython extensions while retaining the\npure Python fallback. The previous engine (mypyc) started to hit rough limit around\nthe optimization of our noise/coherence detector while Cython allows us to\nsteer the engine toward the right generated optimized sources.\nThis change SHOULD not impact bundler (e.g. Pyinstaller) as the module are\nimmediately discoverable (i.e. not hidden import like mypyc did).\nMoreover, a long wished distribution is the abi3 wheels, this will allow us\nto no longer rush each year when a new Python interpreter is released.\nWe still distribute the interpreter specific wheels for faster performance.\u003c/li\u003e\n\u003cli\u003eApplied micro-optimization on several utils.\u003c/li\u003e\n\u003cli\u003eCharsetMatches no longer sort on each match insertion.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an old performance optimization attempt in apy.py (success_fast_tracked+payload_result_cache).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/e239bdc5cc1eb1f0db08d4046ad531f805dbea71\"\u003e\u003ccode\u003ee239bdc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/795\"\u003e#795\u003c/a\u003e from jawah/release-3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/648ad776db64a00aa7efd70a94656ac43784abb3\"\u003e\u003ccode\u003e648ad77\u003c/code\u003e\u003c/a\u003e docs: update faq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fab27492c39baa61aca12826022e266781108570\"\u003e\u003ccode\u003efab2749\u003c/code\u003e\u003c/a\u003e docs: write changelog for 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/7d32774e75d16cccd3d22c758a77fca135952787\"\u003e\u003ccode\u003e7d32774\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9a69f609f254ba4bfe9d0cbf375728e43360cdf2\"\u003e\u003ccode\u003e9a69f60\u003c/code\u003e\u003c/a\u003e docs: update data/info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/5dcc6dd81a8a0a4bd525f8d6f508da8285caf402\"\u003e\u003ccode\u003e5dcc6dd\u003c/code\u003e\u003c/a\u003e perf: charinfo cache access optimization in cython\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ea3b4479270762be1228562c590e5a212727f208\"\u003e\u003ccode\u003eea3b447\u003c/code\u003e\u003c/a\u003e fix: do not validate-decode large payload when md says it's noise\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a05917f87b5f71d6022d8abe2b0af239f65c1111\"\u003e\u003ccode\u003ea05917f\u003c/code\u003e\u003c/a\u003e chore: allow setuptools 84 builds (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/794\"\u003e#794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/3325d87c3c73fa1a8746947151faaf9a41177543\"\u003e\u003ccode\u003e3325d87\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/792\"\u003e#792\u003c/a\u003e from jawah/update-cibuildwheel-action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/77203b104216a6d578a682b5ac0514750aa988f7\"\u003e\u003ccode\u003e77203b1\u003c/code\u003e\u003c/a\u003e chore: reformat noxfile.py\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.9...3.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.4.2 to 8.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.5.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.5.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.5.0/\"\u003ehttps://pypi.org/project/click/8.5.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-5-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-5-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/33\"\u003ehttps://github.com/pallets/click/milestone/33\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd built-in shell completion support for PowerShell (Windows PowerShell\n5.1+ and pwsh 7+) alongside the existing \u003ccode\u003ebash\u003c/code\u003e, \u003ccode\u003ezsh\u003c/code\u003e, and \u003ccode\u003efish\u003c/code\u003e\ncompleters. Use \u003ccode\u003e_FOO_BAR_COMPLETE=powershell_source foo-bar\u003c/code\u003e to generate\nthe completion script. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2672\"\u003e#2672\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3637\"\u003e#3637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupported versions of Windows enable ANSI terminal styles by default.\nColorama is no longer a dependency and is not used. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2986\"\u003e#2986\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3505\"\u003e#3505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003eArgument\u003c/code\u003e accepts a \u003ccode\u003ehelp\u003c/code\u003e parameter, and help output includes\na \u003ccode\u003ePositional arguments\u003c/code\u003e section when argument help is available. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2983\"\u003e#2983\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3473\"\u003e#3473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfirm()\u003c/code\u003e and \u003ccode\u003eprompt()\u003c/code\u003e strip ANSI color and style codes from the\nprompt when the output stream does not support them, matching \u003ccode\u003eecho()\u003c/code\u003e.\nThis stripping was lost in \u003ccode\u003e8.4.0\u003c/code\u003e when \u003ca href=\"https://redirect.github.com/pallets/click/issues/2969\"\u003e#2969\u003c/a\u003e began writing the\nprompt with \u003ccode\u003einput()\u003c/code\u003e directly. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3572\"\u003e#3572\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3653\"\u003e#3653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003ePath\u003c/code\u003e with \u003ccode\u003eallow_dash=True\u003c/code\u003e no longer triggers a \u003ccode\u003eBytesWarning\u003c/code\u003e,\nan error under \u003ccode\u003epython -bb\u003c/code\u003e, when checking a value against the \u003ccode\u003e-\u003c/code\u003e\nconvention. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2877\"\u003e#2877\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3642\"\u003e#3642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd {func}\u003ccode\u003ecustom_version_option\u003c/code\u003e, a \u003ccode\u003e--version\u003c/code\u003e option whose output is\nproduced by a callback, covering cases {func}\u003ccode\u003eversion_option\u003c/code\u003e intentionally\ndoes not. The feature set of {func}\u003ccode\u003eversion_option\u003c/code\u003e is now frozen; see\n[discussion \u003ca href=\"https://redirect.github.com/pallets/click/issues/3527\"\u003e#3527\u003c/a\u003e](\u003ca href=\"https://github.com/pallets/click/discussions/3527\"\u003ehttps://github.com/pallets/click/discussions/3527\u003c/a\u003e). \u003ca href=\"https://redirect.github.com/pallets/click/issues/3581\"\u003e#3581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estyle()\u003c/code\u003e and \u003ccode\u003esecho()\u003c/code\u003e no longer silently drop the 256-color index \u003ccode\u003e0\u003c/code\u003e\n(black) passed as \u003ccode\u003efg\u003c/code\u003e or \u003ccode\u003ebg\u003c/code\u003e, and now validate color arguments. Invalid\ncolors raise a \u003ccode\u003eValueError\u003c/code\u003e instead of a \u003ccode\u003eTypeError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3677\"\u003e#3677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe automatic help option stores its value under the reserved name\n\u003ccode\u003e_click_default_help\u003c/code\u003e instead of \u003ccode\u003ehelp\u003c/code\u003e, so a parameter named \u003ccode\u003ehelp\u003c/code\u003e no\nlonger breaks parsing. The new name is visible in\n{meth}\u003ccode\u003eCommand.to_info_dict\u003c/code\u003e output. Parameters that overwrite each other's\nvalue trigger a warning: an argument sharing its name with another\nparameter, or any parameter claiming the reserved name. Options may still\nshare a name to compete for the same value (feature switches).\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2819\"\u003e#2819\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3678\"\u003e#3678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunstyle\u003c/code\u003e and the ANSI handling behind help-text wrapping now strip the full\nCSI escape-sequence grammar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3681\"\u003e#3681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStreamline \u003ccode\u003eOption\u003c/code\u003e flag handling: the flag-kind, type, lazy-default and\nvalidation steps in \u003ccode\u003eOption.__init__\u003c/code\u003e move into focused helpers, and\n\u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003edefault\u003c/code\u003e keep their unset sentinel at construction\n(resolved lazily on read) so \u003ccode\u003eis UNSET\u003c/code\u003e reliably tells a user-supplied value\nfrom an auto-derived one. Runtime behavior is unchanged, but\n{meth}\u003ccode\u003eParameter.to_info_dict\u003c/code\u003e now resolves \u003ccode\u003edefault=True\u003c/code\u003e on a feature\nswitch to its \u003ccode\u003eflag_value\u003c/code\u003e, matching what the function receives at call\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.5.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-08-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd built-in shell completion support for PowerShell (Windows PowerShell\n5.1+ and pwsh 7+) alongside the existing \u003ccode\u003ebash\u003c/code\u003e, \u003ccode\u003ezsh\u003c/code\u003e, and \u003ccode\u003efish\u003c/code\u003e\ncompleters. Use \u003ccode\u003e_FOO_BAR_COMPLETE=powershell_source foo-bar\u003c/code\u003e to generate\nthe completion script. {issue}\u003ccode\u003e2672\u003c/code\u003e {pr}\u003ccode\u003e3637\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSupported versions of Windows enable ANSI terminal styles by default.\nColorama is no longer a dependency and is not used. {issue}\u003ccode\u003e2986\u003c/code\u003e {pr}\u003ccode\u003e3505\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003eArgument\u003c/code\u003e accepts a \u003ccode\u003ehelp\u003c/code\u003e parameter, and help output includes\na \u003ccode\u003ePositional arguments\u003c/code\u003e section when argument help is available. {issue}\u003ccode\u003e2983\u003c/code\u003e {pr}\u003ccode\u003e3473\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfirm()\u003c/code\u003e and \u003ccode\u003eprompt()\u003c/code\u003e strip ANSI color and style codes from the\nprompt when the output stream does not support them, matching \u003ccode\u003eecho()\u003c/code\u003e.\nThis stripping was lost in \u003ccode\u003e8.4.0\u003c/code\u003e when {pr}\u003ccode\u003e2969\u003c/code\u003e began writing the\nprompt with \u003ccode\u003einput()\u003c/code\u003e directly. {issue}\u003ccode\u003e3572\u003c/code\u003e {pr}\u003ccode\u003e3653\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix test failures when using pytest \u0026gt;= 9.1. {pr}\u003ccode\u003e3656\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003ePath\u003c/code\u003e with \u003ccode\u003eallow_dash=True\u003c/code\u003e no longer triggers a \u003ccode\u003eBytesWarning\u003c/code\u003e,\nan error under \u003ccode\u003epython -bb\u003c/code\u003e, when checking a value against the \u003ccode\u003e-\u003c/code\u003e\nconvention. {issue}\u003ccode\u003e2877\u003c/code\u003e {pr}\u003ccode\u003e3642\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd {func}\u003ccode\u003ecustom_version_option\u003c/code\u003e, a \u003ccode\u003e--version\u003c/code\u003e option whose output is\nproduced by a callback, covering cases {func}\u003ccode\u003eversion_option\u003c/code\u003e intentionally\ndoes not. The feature set of {func}\u003ccode\u003eversion_option\u003c/code\u003e is now frozen; see\n[discussion \u003ca href=\"https://redirect.github.com/pallets/click/issues/3527\"\u003e#3527\u003c/a\u003e](\u003ca href=\"https://github.com/pallets/click/discussions/3527\"\u003ehttps://github.com/pallets/click/discussions/3527\u003c/a\u003e). {pr}\u003ccode\u003e3581\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estyle()\u003c/code\u003e and \u003ccode\u003esecho()\u003c/code\u003e no longer silently drop the 256-color index \u003ccode\u003e0\u003c/code\u003e\n(black) passed as \u003ccode\u003efg\u003c/code\u003e or \u003ccode\u003ebg\u003c/code\u003e, and now validate color arguments. Invalid\ncolors raise a \u003ccode\u003eValueError\u003c/code\u003e instead of a \u003ccode\u003eTypeError\u003c/code\u003e. {pr}\u003ccode\u003e3677\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe automatic help option stores its value under the reserved name\n\u003ccode\u003e_click_default_help\u003c/code\u003e instead of \u003ccode\u003ehelp\u003c/code\u003e, so a parameter named \u003ccode\u003ehelp\u003c/code\u003e no\nlonger breaks parsing. The new name is visible in\n{meth}\u003ccode\u003eCommand.to_info_dict\u003c/code\u003e output. Parameters that overwrite each other's\nvalue trigger a warning: an argument sharing its name with another\nparameter, or any parameter claiming the reserved name. Options may still\nshare a name to compete for the same value (feature switches).\n{issue}\u003ccode\u003e2819\u003c/code\u003e {pr}\u003ccode\u003e3678\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunstyle\u003c/code\u003e and the ANSI handling behind help-text wrapping now strip the full\nCSI escape-sequence grammar. {pr}\u003ccode\u003e3681\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStreamline \u003ccode\u003eOption\u003c/code\u003e flag handling: the flag-kind, type, lazy-default and\nvalidation steps in \u003ccode\u003eOption.__init__\u003c/code\u003e move into focused helpers, and\n\u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003edefault\u003c/code\u003e keep their unset sentinel at construction\n(resolved lazily on read) so \u003ccode\u003eis UNSET\u003c/code\u003e reliably tells a user-supplied value\nfrom an auto-derived one. Runtime behavior is unchanged, but\n{meth}\u003ccode\u003eParameter.to_info_dict\u003c/code\u003e now resolves \u003ccode\u003edefault=True\u003c/code\u003e on a feature\nswitch to its \u003ccode\u003eflag_value\u003c/code\u003e, matching what the function receives at call\ntime. {pr}\u003ccode\u003e3641\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eget_binary_stream\u003c/code\u003e and {func}\u003ccode\u003eget_text_stream\u003c/code\u003e are deprecated and\nwill be removed in Click 9.0. {issue}\u003ccode\u003e3481\u003c/code\u003e {pr}\u003ccode\u003e3695\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe following \u003ccode\u003eclick.utils\u003c/code\u003e names were never intentionally public and are\nnow private (\u003ccode\u003e_\u003c/code\u003e-prefixed). The old names remain available with a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e until Click 9.0: \u003ccode\u003eLazyFile\u003c/code\u003e, \u003ccode\u003eKeepOpenFile\u003c/code\u003e,\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8b19813f2bfca99f1018a587a8cf54fc959f2e5d\"\u003e\u003ccode\u003e8b19813\u003c/code\u003e\u003c/a\u003e Release version 8.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2c8cd3ac958a7eb316d67f2d316c27086c4c0369\"\u003e\u003ccode\u003e2c8cd3a\u003c/code\u003e\u003c/a\u003e Add FAQ entry about \u003ccode\u003eUnicodeEncodeError\u003c/code\u003e on Windows (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3778\"\u003e#3778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/131c86aadddfa5cb6dca8339c9d6294c4eacb8ac\"\u003e\u003ccode\u003e131c86a\u003c/code\u003e\u003c/a\u003e Add FAQ entry about \u003ccode\u003eUnicodeEncodeError\u003c/code\u003e on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e1fd5946ab26aaf372009eaff1acf947140b40fb\"\u003e\u003ccode\u003ee1fd594\u003c/code\u003e\u003c/a\u003e Add support of \u003ccode\u003epathlib.Path\u003c/code\u003e to \u003ccode\u003eedit\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3781\"\u003e#3781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a1d87858abd77fa8e3ffc204670ccd75b96c4781\"\u003e\u003ccode\u003ea1d8785\u003c/code\u003e\u003c/a\u003e Add support of \u003ccode\u003epathlib.Path\u003c/code\u003e to \u003ccode\u003eedit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2103e157683c5e4cadc8ee1838df526a54bde9a4\"\u003e\u003ccode\u003e2103e15\u003c/code\u003e\u003c/a\u003e Forward all user's parameters set in \u003ccode\u003ePAGER\u003c/code\u003e and improve flag detection (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3777\"\u003e#3777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a6256bfb5971d5e58585fe7b6c656134e1ade5a4\"\u003e\u003ccode\u003ea6256bf\u003c/code\u003e\u003c/a\u003e Forwards all user's parameters set in \u003ccode\u003ePAGER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/61b69e967e525bd502f5bf42def4d551e761fe0e\"\u003e\u003ccode\u003e61b69e9\u003c/code\u003e\u003c/a\u003e Resolve the pager command once, in \u003ccode\u003e_pager_contextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3776\"\u003e#3776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/9835b0f7612d1b1ea180a975fd6d24cf16791ba8\"\u003e\u003ccode\u003e9835b0f\u003c/code\u003e\u003c/a\u003e Resolve the pager command once, in \u003ccode\u003e_pager_contextmanager\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f36d58bbd7f188178de2d4fe1d0292c510375ca7\"\u003e\u003ccode\u003ef36d58b\u003c/code\u003e\u003c/a\u003e Refactor pager stream handling (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3767\"\u003e#3767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.2...8.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.15.3 to 7.16.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/releases\"\u003ecoverage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.16.2\u003c/h2\u003e\n\u003ch2\u003eVersion 7.16.2 — 2026-09-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: on Python 3.14 and later, a \u003ccode\u003efor\u003c/code\u003e loop completing immediately before a function return could mistakenly report an uncovered branch. This is now fixed, closing \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2168\"\u003eissue 2168\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix: on Python 3.14 and later, the \u003ccode\u003eelse\u003c/code\u003e clause of a \u003ccode\u003etry\u003c/code\u003e whose body is a \u003ccode\u003ewith\u003c/code\u003e statement could incorrectly be reported as covered when the \u003ccode\u003ewith\u003c/code\u003e raised. This is now fixed, closing \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2289\"\u003eissue 2289\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix: with \u003ccode\u003edynamic_context = test_function\u003c/code\u003e, test methods written as \u003ccode\u003e@staticmethod\u003c/code\u003e or \u003ccode\u003e@classmethod\u003c/code\u003e were not given a context of their own. Now they are, on Python 3.11 and later. Closes \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1923\"\u003eissue 1923\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.16.2\"\u003ecoverage 7.16.2\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.16.2\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.16.1\u003c/h2\u003e\n\u003ch2\u003eVersion 7.16.1 — 2026-09-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: when the body of an irrefutable \u003ccode\u003ecase\u003c/code\u003e (like \u003ccode\u003ecase _:\u003c/code\u003e) is entirely excluded, the \u003ccode\u003ecase\u003c/code\u003e line is now excluded too, just as an excluded \u003ccode\u003eelse:\u003c/code\u003e body removes the \u003ccode\u003eelse:\u003c/code\u003e line. Previously the \u003ccode\u003ecase\u003c/code\u003e line was left behind and reported as missing. Closes \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1563\"\u003eissue 1563\u003c/a\u003e with \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2269\"\u003epull 2269\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix: using \u003ca href=\"https://coverage.readthedocs.io/en/latest/api_coveragedata.html#coverage.Covera...\n\n_Description has been truncated_","html_url":"https://github.com/tatsuki-washimi/gwexpy/pull/757","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tatsuki-washimi%2Fgwexpy/issues/757","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/757/packages"},{"uuid":"5665264281","node_id":"PR_kwDOG_CEhs8AAAABGIQ-Bw","number":29,"state":"open","title":"Bump the python group with 8 updates","user":"dependabot[bot]","labels":["skip-changelog","minor","dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-01T16:06:22.000Z","updated_at":"2026-10-01T16:06:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":8,"packages":[{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"plotly","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"streamlit","old_version":"1.63.0","new_version":"1.64.0","repository_url":"https://github.com/streamlit/streamlit"},{"name":"jupyterlab","old_version":"4.6.3","new_version":"4.6.4","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"pandas-stubs","old_version":"3.0.5.260730","new_version":"3.0.5.260914","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"ruff","old_version":"0.16.6","new_version":"0.16.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"ty","old_version":"0.0.78","new_version":"0.0.84","repository_url":"https://github.com/astral-sh/ty"},{"name":"uvicorn","old_version":"0.52.4","new_version":"0.54.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 8 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.5` | `3.0.6` |\n| [plotly](https://github.com/plotly/plotly.py) | `7.0.0` | `7.1.0` |\n| [streamlit](https://github.com/streamlit/streamlit) | `1.63.0` | `1.64.0` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.6.3` | `4.6.4` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `3.0.5.260730` | `3.0.5.260914` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.6` | `0.16.9` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.78` | `0.0.84` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.52.4` | `0.54.0` |\n\nUpdates `pandas` from 3.0.5 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.5...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `plotly` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/releases\"\u003eplotly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003emarginal_x\u003c/code\u003e/\u003ccode\u003emarginal_y=\u0026quot;heatmap\u0026quot;\u003c/code\u003e in \u003ccode\u003edensity_heatmap\u003c/code\u003e, drawing a single-row/column heatmap strip in the margin colored by the same \u003ccode\u003ez\u003c/code\u003e/\u003ccode\u003ehistfunc\u003c/code\u003e aggregate as the main plot and sharing its color scale [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5706\"\u003e#5706\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/lucasjamar\"\u003e\u003ccode\u003e@​lucasjamar\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eAdd support for custom tick values in \u003ccode\u003empl_to_plotly\u003c/code\u003e when the matplotlib tick positions don't follow an arithmetic progression, including custom tick labels and tick values on date axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5262\"\u003e#5262\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Plotly Express treating unsigned integer columns (\u003ccode\u003euint8\u003c/code\u003e, \u003ccode\u003euint16\u003c/code\u003e, \u003ccode\u003euint32\u003c/code\u003e, \u003ccode\u003euint64\u003c/code\u003e) in pandas DataFrames as categorical, which caused \u003ccode\u003epx.bar\u003c/code\u003e and other functions to pick the wrong orientation and render unexpected plots [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/4291\"\u003e#4291\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/4344\"\u003e#4344\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Belagum\"\u003e\u003ccode\u003e@​Belagum\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003empl_to_plotly\u003c/code\u003e not setting \u003ccode\u003epaper_bgcolor\u003c/code\u003e and \u003ccode\u003eplot_bgcolor\u003c/code\u003e from the matplotlib figure and axes backgrounds, so converted figures match the source figure's background colors [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5285\"\u003e#5285\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix rendering issue causing a too-large div when calling \u003ccode\u003eFigure.show()\u003c/code\u003e in Google Colab [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5718\"\u003e#5718\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix the sphinx-gallery scraper so that it generates thumbnails for figures shown with \u003ccode\u003efig.show()\u003c/code\u003e or displayed as the last expression of a code block [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5701\"\u003e#5701\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/larsoner\"\u003e\u003ccode\u003e@​larsoner\u003c/code\u003e\u003c/a\u003e for the contribution!\n\u003cul\u003e\n\u003cli\u003eThe scaper now warns once (instead of failing the build) when static image export is unavailable\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eThe sphinx-gallery scraper no longer scrapes files belonging to other examples during parallel builds [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5701\"\u003e#5701\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/larsoner\"\u003e\u003ccode\u003e@​larsoner\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 4.0.0 to version 4.1.1 [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5722\"\u003e#5722\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5730\"\u003e#5730\u003c/a\u003e]. See the plotly.js release notes for \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v4.1.0\"\u003ev4.1.0\u003c/a\u003e and \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v4.1.1\"\u003ev4.1.1\u003c/a\u003e for details. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd an opt-in modebar button for downloading Plotly figures as JSON [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7990\"\u003e#7990\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8022\"\u003e#8022\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elegend.groupdoubleclick\u003c/code\u003e to set the group behavior for a legend double-click [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7997\"\u003e#7997\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eIncrease default double-click delay threshold to 500ms (from 300) [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8014\"\u003e#8014\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix issue with per-point marker color for hover labels in \u003ccode\u003escattergl\u003c/code\u003e, \u003ccode\u003equiver\u003c/code\u003e traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8027\"\u003e#8027\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003emaplibre-gl\u003c/code\u003e to v6 to address \u003ca href=\"https://github.com/advisories/GHSA-jrc7-96c5-q579\"\u003eCVE-2026-85061\u003c/a\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8035\"\u003e#8035\u003c/a\u003e]\n\u003cul\u003e\n\u003cli\u003eNote: Safari 15, Chrome 56, Firefox 51 and later are now required for map traces\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehex_to_rgb\u003c/code\u003e function to raise error for invalid-length hex codes, and emit warning for hex codes containing alpha [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5729\"\u003e#5729\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/dylanpulver\"\u003e\u003ccode\u003e@​dylanpulver\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md\"\u003eplotly's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[7.1.0] - 2026-09-15\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003emarginal_x\u003c/code\u003e/\u003ccode\u003emarginal_y=\u0026quot;heatmap\u0026quot;\u003c/code\u003e in \u003ccode\u003edensity_heatmap\u003c/code\u003e, drawing a single-row/column heatmap strip in the margin colored by the same \u003ccode\u003ez\u003c/code\u003e/\u003ccode\u003ehistfunc\u003c/code\u003e aggregate as the main plot and sharing its color scale [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5706\"\u003e#5706\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/lucasjamar\"\u003e\u003ccode\u003e@​lucasjamar\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eAdd support for custom tick values in \u003ccode\u003empl_to_plotly\u003c/code\u003e when the matplotlib tick positions don't follow an arithmetic progression, including custom tick labels and tick values on date axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5262\"\u003e#5262\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Plotly Express treating unsigned integer columns (\u003ccode\u003euint8\u003c/code\u003e, \u003ccode\u003euint16\u003c/code\u003e, \u003ccode\u003euint32\u003c/code\u003e, \u003ccode\u003euint64\u003c/code\u003e) in pandas DataFrames as categorical, which caused \u003ccode\u003epx.bar\u003c/code\u003e and other functions to pick the wrong orientation and render unexpected plots [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/4291\"\u003e#4291\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/4344\"\u003e#4344\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Belagum\"\u003e\u003ccode\u003e@​Belagum\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003empl_to_plotly\u003c/code\u003e not setting \u003ccode\u003epaper_bgcolor\u003c/code\u003e and \u003ccode\u003eplot_bgcolor\u003c/code\u003e from the matplotlib figure and axes backgrounds, so converted figures match the source figure's background colors [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5285\"\u003e#5285\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix rendering issue causing a too-large div when calling \u003ccode\u003eFigure.show()\u003c/code\u003e in Google Colab [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5718\"\u003e#5718\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix the sphinx-gallery scraper so that it generates thumbnails for figures shown with \u003ccode\u003efig.show()\u003c/code\u003e or displayed as the last expression of a code block [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5701\"\u003e#5701\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/larsoner\"\u003e\u003ccode\u003e@​larsoner\u003c/code\u003e\u003c/a\u003e for the contribution!\n\u003cul\u003e\n\u003cli\u003eThe scaper now warns once (instead of failing the build) when static image export is unavailable\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eThe sphinx-gallery scraper no longer scrapes files belonging to other examples during parallel builds [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5701\"\u003e#5701\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/larsoner\"\u003e\u003ccode\u003e@​larsoner\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 4.0.0 to version 4.1.1 [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5722\"\u003e#5722\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5730\"\u003e#5730\u003c/a\u003e]. See the plotly.js release notes for \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v4.1.0\"\u003ev4.1.0\u003c/a\u003e and \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v4.1.1\"\u003ev4.1.1\u003c/a\u003e for details. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd an opt-in modebar button for downloading Plotly figures as JSON [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7990\"\u003e#7990\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8022\"\u003e#8022\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elegend.groupdoubleclick\u003c/code\u003e to set the group behavior for a legend double-click [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7997\"\u003e#7997\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eIncrease default double-click delay threshold to 500ms (from 300) [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8014\"\u003e#8014\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix issue with per-point marker color for hover labels in \u003ccode\u003escattergl\u003c/code\u003e, \u003ccode\u003equiver\u003c/code\u003e traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8027\"\u003e#8027\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003emaplibre-gl\u003c/code\u003e to v6 to address \u003ca href=\"https://github.com/advisories/GHSA-jrc7-96c5-q579\"\u003eCVE-2026-85061\u003c/a\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8035\"\u003e#8035\u003c/a\u003e]\n\u003cul\u003e\n\u003cli\u003eNote: Safari 15, Chrome 56, Firefox 51 and later are now required for map traces\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehex_to_rgb\u003c/code\u003e function to raise error for invalid-length hex codes, and emit warning for hex codes containing alpha [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5729\"\u003e#5729\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/dylanpulver\"\u003e\u003ccode\u003e@​dylanpulver\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/243bfd0fa5c0a5c29a185e4034a1ab5b111695a5\"\u003e\u003ccode\u003e243bfd0\u003c/code\u003e\u003c/a\u003e version changes for v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/9b3c4da66c48b016dc443820a3cd9d84af7c9a38\"\u003e\u003ccode\u003e9b3c4da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5729\"\u003e#5729\u003c/a\u003e from dylanpulver/hex-to-rgb-rejects-invalid-length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/3aa898ccd6bbb7ee1388b4a1a7c90105bec9b86a\"\u003e\u003ccode\u003e3aa898c\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into hex-to-rgb-rejects-invalid-length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/a93dcc05ca3262524331da25a5f9a55aae86e4fe\"\u003e\u003ccode\u003ea93dcc0\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/7c85d48e0b3cd4ced88fcd44bc0770388f1c501c\"\u003e\u003ccode\u003e7c85d48\u003c/code\u003e\u003c/a\u003e add test for hex_to_rgb 4- and 8-character hex codes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/80a94ecef7c18e35097883655cddb83b3beb2c9d\"\u003e\u003ccode\u003e80a94ec\u003c/code\u003e\u003c/a\u003e accept 4- and 8- character hex codes with a warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/ac78b8b6feb6671b3b909f609339361ad71c402f\"\u003e\u003ccode\u003eac78b8b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5726\"\u003e#5726\u003c/a\u003e from Belagum/px-unsigned-int-continuous\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/1cf77560b87a133440a135704b316fcac9586019\"\u003e\u003ccode\u003e1cf7756\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into px-unsigned-int-continuous\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/ec79917a26141845404c2f2d3ebb04920e58943c\"\u003e\u003ccode\u003eec79917\u003c/code\u003e\u003c/a\u003e add attribution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/ac7bc283145cc4035b3470b2de0dec4c7f639216\"\u003e\u003ccode\u003eac7bc28\u003c/code\u003e\u003c/a\u003e edit changelog entry\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/plotly/plotly.py/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `streamlit` from 1.63.0 to 1.64.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/streamlit/streamlit/releases\"\u003estreamlit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.64.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eNew Features 🎉\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[feature] Add \u003ccode\u003eon_change=\u0026quot;ignore\u0026quot;\u003c/code\u003e mode to st.number_input by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16649\"\u003estreamlit/streamlit#16649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Support asyncio.get_event_loop() in scripts by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16167\"\u003estreamlit/streamlit#16167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add live parameter to st.text_input by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16662\"\u003estreamlit/streamlit#16662\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add st.echarts_chart for native Apache ECharts support by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16785\"\u003estreamlit/streamlit#16785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Async-aware st.cache_data and st.cache_resource by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16168\"\u003estreamlit/streamlit#16168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add \u003ccode\u003eon_change=\u0026quot;ignore\u0026quot;\u003c/code\u003e mode to st.select_slider by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16776\"\u003estreamlit/streamlit#16776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add \u003ccode\u003eon_change=\u0026quot;ignore\u0026quot;\u003c/code\u003e mode to st.selectbox by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16862\"\u003estreamlit/streamlit#16862\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Keep widget values after body-level st.rerun by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16762\"\u003estreamlit/streamlit#16762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Remove expired mapbox.token config option by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16774\"\u003estreamlit/streamlit#16774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Delay button help tooltips on hover by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16794\"\u003estreamlit/streamlit#16794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Prevent duplicate Altair bind widgets with on_select by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16809\"\u003estreamlit/streamlit#16809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Theme Altair parameter-binding widgets by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16813\"\u003estreamlit/streamlit#16813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Register deck.gl layer extensions in pydeck by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16823\"\u003estreamlit/streamlit#16823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Honor pydeck views in st.pydeck_chart by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16819\"\u003estreamlit/streamlit#16819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Encode download filenames unsafe in a quoted header by \u003ca href=\"https://github.com/sfc-gh-dbyttow\"\u003e\u003ccode\u003e@​sfc-gh-dbyttow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16646\"\u003estreamlit/streamlit#16646\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Skip no-op query-param history entries by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16831\"\u003estreamlit/streamlit#16831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Expose st.radio captions as option descriptions by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16811\"\u003estreamlit/streamlit#16811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Parse unknown AppTest proto subtypes by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16835\"\u003estreamlit/streamlit#16835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Raise AppTestError for unsupported AppTest interactions by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16837\"\u003estreamlit/streamlit#16837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Increase Vega-Lite legend title padding by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16818\"\u003estreamlit/streamlit#16818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Stop dropping in-flight Custom Components v2 triggers by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16833\"\u003estreamlit/streamlit#16833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Stringify list columns PyArrow cannot serialize by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16838\"\u003estreamlit/streamlit#16838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Keep elements stale while a stop is pending by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16839\"\u003estreamlit/streamlit#16839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Install skills where Claude Code will find them by \u003ca href=\"https://github.com/sfc-gh-nbellante\"\u003e\u003ccode\u003e@​sfc-gh-nbellante\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16394\"\u003estreamlit/streamlit#16394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Preserve empty AppTest chat input and ChatInputValue repr by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16857\"\u003estreamlit/streamlit#16857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Reject async cache_resource lifecycle callbacks by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16860\"\u003estreamlit/streamlit#16860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Render Altair mark_geoshape charts by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16886\"\u003estreamlit/streamlit#16886\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Hide Streamlit internals from UI traces by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16718\"\u003estreamlit/streamlit#16718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Swap reversed st.slider min/max bounds by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16716\"\u003estreamlit/streamlit#16716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Reject inverted st.number_input min/max bounds by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16895\"\u003estreamlit/streamlit#16895\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Improve nested url_path error message by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16896\"\u003estreamlit/streamlit#16896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Add dict methods to AppTest.session_state by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16897\"\u003estreamlit/streamlit#16897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Close leftover dialogs on full-app rerun by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16901\"\u003estreamlit/streamlit#16901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Classify invalid icon= values more precisely by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16900\"\u003estreamlit/streamlit#16900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Add AppTest proto-variant parse smoke tests by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16911\"\u003estreamlit/streamlit#16911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Reject unsupported on_change modes by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16889\"\u003estreamlit/streamlit#16889\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Prevent callback rerun coalescing races by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16765\"\u003estreamlit/streamlit#16765\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[chore] Release v1.63.0 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16764\"\u003estreamlit/streamlit#16764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Fix chartCategoricalColors and Graphviz docs by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16815\"\u003estreamlit/streamlit#16815\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[chore] Update emojis/material icons by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16753\"\u003estreamlit/streamlit#16753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump plotly.js from 3.7.0 to 4.0.0 in /frontend in the plotly group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16740\"\u003estreamlit/streamlit#16740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Discourage custom HTML in markdown docs by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16830\"\u003estreamlit/streamlit#16830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[chore] Update emojis/material icons by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16867\"\u003estreamlit/streamlit#16867\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/bab1da98cadfc6d35e0a7c3cd2cc0bb3a01555d5\"\u003e\u003ccode\u003ebab1da9\u003c/code\u003e\u003c/a\u003e Up version to 1.64.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/a1df3bdb2076081025a2901f8aeff47eb1d5212a\"\u003e\u003ccode\u003ea1df3bd\u003c/code\u003e\u003c/a\u003e Exclude Emscripten from development lock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/3d6c65cc17431b32753e6ecb67651d208fc194ea\"\u003e\u003ccode\u003e3d6c65c\u003c/code\u003e\u003c/a\u003e [chore] Enable string and index oxlint rules (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16923\"\u003e#16923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/81d08baf6966cce4b2147e8a89d24569e54883fe\"\u003e\u003ccode\u003e81d08ba\u003c/code\u003e\u003c/a\u003e [chore] Note downstream uv compatibility (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16919\"\u003e#16919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/a828f9b99df9e880a1f41bb02b8d383673f5c0a0\"\u003e\u003ccode\u003ea828f9b\u003c/code\u003e\u003c/a\u003e [chore] Add typing tests for st.chat_message (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16905\"\u003e#16905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/6109f88c6eca60f8ca4bcd85b48e6c3d46be95cf\"\u003e\u003ccode\u003e6109f88\u003c/code\u003e\u003c/a\u003e Bump the frontend-minor-patch group in /frontend with 2 updates (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16918\"\u003e#16918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/e952b34bd8c756d1b7fea2d7b01139bfa6421ae4\"\u003e\u003ccode\u003ee952b34\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​swc/plugin-emotion\u003c/code\u003e from 15.0.0 to 16.0.0 in /frontend in the vite group...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/786c5a6da3f6fdab651c89cc46c98442fc395dca\"\u003e\u003ccode\u003e786c5a6\u003c/code\u003e\u003c/a\u003e Bump vitest-canvas-mock from 1.1.5 to 1.2.0 in /frontend in the vitest group ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/1e3b386c1c79722583c7354150163404f5d4d7f0\"\u003e\u003ccode\u003e1e3b386\u003c/code\u003e\u003c/a\u003e Bump eslint from 10.9.1 to 10.10.0 in /frontend in the eslint group (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16915\"\u003e#16915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/24f75d8d8dc83c8b0af41c363a5faf15cf43240a\"\u003e\u003ccode\u003e24f75d8\u003c/code\u003e\u003c/a\u003e [fix] Prevent callback rerun coalescing races (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16765\"\u003e#16765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/streamlit/streamlit/compare/1.63.0...1.64.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jupyterlab` from 4.6.3 to 4.6.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyterlab/jupyterlab/releases\"\u003ejupyterlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.6.4\u003c/h2\u003e\n\u003ch2\u003e4.6.4\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.6.3...1f9dbe334e7d21e4855c9a32c7cd642544ac20c4\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eSecurity fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGHSA-3325-v43h-43rv - moderate\u003c/li\u003e\n\u003cli\u003eGHSA-6966-vjj6-99xv - high\u003c/li\u003e\n\u003cli\u003eGHSA-jwrc-gm9j-263p - moderate\u003c/li\u003e\n\u003cli\u003eGHSA-3jqq-pw4j-pqcj - moderate\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBackport of security patches on 4.6.x branch \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19793\"\u003e#19793\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/MUFFANUJ\"\u003e\u003ccode\u003e@​MUFFANUJ\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache and throttle path resolution to avoid requests storm \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19726\"\u003e#19726\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix race when starting the search - keep correct filter \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19765\"\u003e#19765\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PyPI extension manager \u003ccode\u003epackage.json\u003c/code\u003e inspection for \u003ccode\u003etar.gz\u003c/code\u003e archives \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19613\"\u003e#19613\u003c/a\u003e (\u003ca href=\"https://github.com/MUFFANUJ\"\u003e\u003ccode\u003e@​MUFFANUJ\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix resizing optimization for larger notebooks \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19620\"\u003e#19620\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve kernelspec metadata when spec is unavailable \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19247\"\u003e#19247\u003c/a\u003e (\u003ca href=\"https://github.com/tomatotomata\"\u003e\u003ccode\u003e@​tomatotomata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix respecting \u003ccode\u003ecommsOverSubshells\u003c/code\u003e option in \u003ccode\u003econnectTo()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19734\"\u003e#19734\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eShow context actions for all images, not only SVGs \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19618\"\u003e#19618\u003c/a\u003e (\u003ca href=\"https://github.com/fly1d\"\u003e\u003ccode\u003e@​fly1d\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSave sidebar section expansion state from the hidden flag \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19415\"\u003e#19415\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix memory leak when Property Inspector is open and other issues exposed by new linter rules \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19318\"\u003e#19318\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate links to \u003ccode\u003ejupyter-ydoc\u003c/code\u003e API after docs pages moved \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19790\"\u003e#19790\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: align Yarn cache configuration \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19737\"\u003e#19737\u003c/a\u003e (\u003ca href=\"https://github.com/zihjiang\"\u003e\u003ccode\u003e@​zihjiang\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse Galata filebrowser helpers in tests \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19645\"\u003e#19645\u003c/a\u003e (\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable subshell usage in comm example \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19725\"\u003e#19725\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pin to old ipykernel v7 pre-release in UI tests \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19672\"\u003e#19672\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Altair snapshot \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19488\"\u003e#19488\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eui-test-report-comment\u003c/code\u003e action from \u003ccode\u003emaintainer-tools\u003c/code\u003e \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19290\"\u003e#19290\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBackport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/19307\"\u003e#19307\u003c/a\u003e: Update \u003ccode\u003e@jupyter/eslint-plugin\u003c/code\u003e to v1.1, adopt ne… \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19315\"\u003e#19315\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate the copyright year to 2026 \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19308\"\u003e#19308\u003c/a\u003e (\u003ca href=\"https://github.com/JussiRoos\"\u003e\u003ccode\u003e@​JussiRoos\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the IPython display link in the json-extension README \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19732\"\u003e#19732\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate announcement banner to point to jupyter-wide announcement banner \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19189\"\u003e#19189\u003c/a\u003e (\u003ca href=\"https://github.com/jasongrout\"\u003e\u003ccode\u003e@​jasongrout\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2026-08-10\u0026amp;to=2026-09-21\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ADarshan808+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/fly1d\"\u003e\u003ccode\u003e@​fly1d\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Afly1d+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/jasongrout\"\u003e\u003ccode\u003e@​jasongrout\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajasongrout+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/JussiRoos\"\u003e\u003ccode\u003e@​JussiRoos\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AJussiRoos+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/MUFFANUJ\"\u003e\u003ccode\u003e@​MUFFANUJ\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AMUFFANUJ+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/tomatotomata\"\u003e\u003ccode\u003e@​tomatotomata\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Atomatotomata+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/zihjiang\"\u003e\u003ccode\u003e@​zihjiang\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Azihjiang+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/384bff3af6598b3a6348df58fe34450914b49c41\"\u003e\u003ccode\u003e384bff3\u003c/code\u003e\u003c/a\u003e [ci skip] Publish 4.6.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/1f9dbe334e7d21e4855c9a32c7cd642544ac20c4\"\u003e\u003ccode\u003e1f9dbe3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/19793\"\u003e#19793\u003c/a\u003e from krassowski/security-patches-4.6.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/de324ae91346c713c4f5e5485f97b6e914e0f774\"\u003e\u003ccode\u003ede324ae\u003c/code\u003e\u003c/a\u003e Fix for GHSA-3jqq-pw4j-pqcj\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/f7e5f9803fdf2aaaa0e9bfb9cc73386a8cc5f0b2\"\u003e\u003ccode\u003ef7e5f98\u003c/code\u003e\u003c/a\u003e Fix for GHSA-jwrc-gm9j-263p\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/cf6e89a8d315c4134cefa50c220bca296da466a7\"\u003e\u003ccode\u003ecf6e89a\u003c/code\u003e\u003c/a\u003e Fix for GHSA-6966-vjj6-99xv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/e277bc958e737130ac47b6c5078d08b29298828f\"\u003e\u003ccode\u003ee277bc9\u003c/code\u003e\u003c/a\u003e Fix for GHSA-3325-v43h-43rv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/cd569945bc976caaf0018365fe1947f4f69db9e2\"\u003e\u003ccode\u003ecd56994\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/19790\"\u003e#19790\u003c/a\u003e on branch 4.6.x (Update links to \u003ccode\u003ejupyter-ydoc\u003c/code\u003e API after ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/bbadd0225a351ffcaa01dcbe7a5d9a364d244150\"\u003e\u003ccode\u003ebbadd02\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/19726\"\u003e#19726\u003c/a\u003e on branch 4.6.x (Cache and throttle path resolution to avo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/4ccae660976c055d4e2a3f44b1c5fa86e6416ac4\"\u003e\u003ccode\u003e4ccae66\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/19765\"\u003e#19765\u003c/a\u003e on branch 4.6.x (Fix race when starting the search - keep ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/6c0f66433831a889e29fa87639315be1f2f57b6d\"\u003e\u003ccode\u003e6c0f664\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/19737\"\u003e#19737\u003c/a\u003e on branch 4.6.x (CI: align Yarn cache configuration) (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/19766\"\u003e#19766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/@jupyterlab/lsp@4.6.3...@jupyterlab/lsp@4.6.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas-stubs` from 3.0.5.260730 to 3.0.5.260914\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/6ad02bec34404b639f63af97265a6b2945a26539\"\u003e\u003ccode\u003e6ad02be\u003c/code\u003e\u003c/a\u003e Version 3.0.5.260914\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/553375820a70b95446ef45efb300aec166f3e52d\"\u003e\u003ccode\u003e5533758\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epyrefly\u003c/code\u003e version (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1945\"\u003e#1945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/711cf2f7eedaee369812d293a9cc83a08432096b\"\u003e\u003ccode\u003e711cf2f\u003c/code\u003e\u003c/a\u003e BLD: temporarily pin pyright to 1.1.411 (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1942\"\u003e#1942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/507243e3c1c1f0a6d92b5c409684fd691e2d6980\"\u003e\u003ccode\u003e507243e\u003c/code\u003e\u003c/a\u003e TST: nightly expect \u003ccode\u003ePandas4Warning\u003c/code\u003e for \u003ccode\u003eSeries.drop\u003c/code\u003e/\u003ccode\u003erename\u003c/code\u003e \u003ccode\u003einplace\u003c/code\u003e and...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/a09e2ed4b2f2de525f61c686f842102850422051\"\u003e\u003ccode\u003ea09e2ed\u003c/code\u003e\u003c/a\u003e TYP: align Index subtraction overloads (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1938\"\u003e#1938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/156be75b11f0b8d7be7e9b726d65c1282b1a4148\"\u003e\u003ccode\u003e156be75\u003c/code\u003e\u003c/a\u003e TST: add focused Period scalar subtraction tests (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1936\"\u003e#1936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/6b84c3ac180df555d37d69faa342eb67adb842a4\"\u003e\u003ccode\u003e6b84c3a\u003c/code\u003e\u003c/a\u003e CLN: load tests._typing from pandas-stubs/_typing.pyi without file swap (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1930\"\u003e#1930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/14f8185430ee78528eacb693df151c963cc69d0b\"\u003e\u003ccode\u003e14f8185\u003c/code\u003e\u003c/a\u003e TST: add focused Period scalar addition tests (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1933\"\u003e#1933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/0a77a3a4420399eb21a327de924d8897dda0844b\"\u003e\u003ccode\u003e0a77a3a\u003c/code\u003e\u003c/a\u003e TYP: move stub-only helper types to _stubs_only (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1935\"\u003e#1935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/a3824373b6f3c8ce5a3f2185e64f6eea98fb03ae\"\u003e\u003ccode\u003ea382437\u003c/code\u003e\u003c/a\u003e TYP: update stubs for ty 0.0.76 (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1932\"\u003e#1932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas-stubs/compare/v3.0.5.260730...v3.0.5.260914\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.16.6 to 0.16.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.9\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positives for overloaded division (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28309\"\u003e#28309\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Avoid false positives for calls with keyword arguments (\u003ccode\u003eB009\u003c/code\u003e, \u003ccode\u003eB010\u003c/code\u003e, \u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28776\"\u003e#28776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow lazy imports to be used in deferred annotations (\u003ccode\u003eTID255\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28767\"\u003e#28767\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LibCST-based fixes for Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28616\"\u003e#28616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Mention stubs in the diagnostic message (\u003ccode\u003ePYI002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28542\"\u003e#28542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix horizontal overflow on the rules documentation page (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28699\"\u003e#28699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate rules table with category information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28651\"\u003e#28651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Clarify that \u003ccode\u003eANN401\u003c/code\u003e checks return types in addition to arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28334\"\u003e#28334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Document type-checker interaction (\u003ccode\u003eB010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28509\"\u003e#28509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27794\"\u003e#27794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Mention related isort settings (\u003ccode\u003eRUF022\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28719\"\u003e#28719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qinpei-dev\"\u003e\u003ccode\u003e@​qinpei-dev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanjayrohith\"\u003e\u003ccode\u003e@​sanjayrohith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webdevsamran\"\u003e\u003ccode\u003e@​webdevsamran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaniebot\"\u003e\u003ccode\u003e@​zaniebot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spaceone\"\u003e\u003ccode\u003e@​spaceone\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IbrahimKhan12\"\u003e\u003ccode\u003e@​IbrahimKhan12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devtechedge\"\u003e\u003ccode\u003e@​devtechedge\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GruffElixir\"\u003e\u003ccode\u003e@​GruffElixir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.16.9\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.9/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.9\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positives for overloaded division (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28309\"\u003e#28309\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Avoid false positives for calls with keyword arguments (\u003ccode\u003eB009\u003c/code\u003e, \u003ccode\u003eB010\u003c/code\u003e, \u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28776\"\u003e#28776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow lazy imports to be used in deferred annotations (\u003ccode\u003eTID255\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28767\"\u003e#28767\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LibCST-based fixes for Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28616\"\u003e#28616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Mention stubs in the diagnostic message (\u003ccode\u003ePYI002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28542\"\u003e#28542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix horizontal overflow on the rules documentation page (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28699\"\u003e#28699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate rules table with category information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28651\"\u003e#28651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Clarify that \u003ccode\u003eANN401\u003c/code\u003e checks return types in addition to arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28334\"\u003e#28334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Document type-checker interaction (\u003ccode\u003eB010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28509\"\u003e#28509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27794\"\u003e#27794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Mention related isort settings (\u003ccode\u003eRUF022\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28719\"\u003e#28719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qinpei-dev\"\u003e\u003ccode\u003e@​qinpei-dev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanjayrohith\"\u003e\u003ccode\u003e@​sanjayrohith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webdevsamran\"\u003e\u003ccode\u003e@​webdevsamran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaniebot\"\u003e\u003ccode\u003e@​zaniebot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spaceone\"\u003e\u003ccode\u003e@​spaceone\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IbrahimKhan12\"\u003e\u003ccode\u003e@​IbrahimKhan12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devtechedge\"\u003e\u003ccode\u003e@​devtechedge\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GruffElixir\"\u003e\u003ccode\u003e@​GruffElixir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.16.8\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-16.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVisit functional \u003ccode\u003eTypedDict\u003c/code\u003e keyword arguments correctly (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28584\"\u003e#28584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Detect nested \u003ccode\u003easync with\u003c/code\u003e under sync parent (\u003ccode\u003eSIM117\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27821\"\u003e#27821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve operand order in \u003ccode\u003eSIM109\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27824\"\u003e#27824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0be08a206f9c3180afd3e93bcc792ed5cb1f4db1\"\u003e\u003ccode\u003e0be08a2\u003c/code\u003e\u003c/a\u003e Bump version to 0.16.9 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28882\"\u003e#28882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b4920b72b354e7c715ab861ae23458874683bb02\"\u003e\u003ccode\u003eb4920b7\u003c/code\u003e\u003c/a\u003e Rename \u003ccode\u003eruff_cli\u003c/code\u003e to \u003ccode\u003eruff_command_line\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28881\"\u003e#28881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/47c751b95908a4d1f95f9ef8723036aae9da0b18\"\u003e\u003ccode\u003e47c751b\u003c/code\u003e\u003c/a\u003e Update dependency astral-sh/uv to v0.12.18 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28880\"\u003e#28880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8c244e56a1aeac31c26d2371ef26588e0632235c\"\u003e\u003ccode\u003e8c244e5\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5edf5a1d0a84663079e46983216059f06acea87d\"\u003e\u003ccode\u003e5edf5a1\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003etarget\u003c/code\u003e form in \u003ccode\u003erooster.version_files\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28876\"\u003e#28876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/915bb2b4bf9ae7eee47cf55646bbfebae254a23b\"\u003e\u003ccode\u003e915bb2b\u003c/code\u003e\u003c/a\u003e [ty] Prefer existing @ paths over response files in Ruff and ty (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28877\"\u003e#28877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4710e1aa962b13720cf64aa84eb279c5333896d7\"\u003e\u003ccode\u003e4710e1a\u003c/code\u003e\u003c/a\u003e ci(github): update version number in placeholder of issue template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28871\"\u003e#28871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eedfc62a75bf1ba86d48959b00eea75ae87eadca\"\u003e\u003ccode\u003eeedfc62\u003c/code\u003e\u003c/a\u003e [ty] Propagate outer type context through cast calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28855\"\u003e#28855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ceaa6a00830e1e350b8a23977a1a10ac467920a1\"\u003e\u003ccode\u003eceaa6a0\u003c/code\u003e\u003c/a\u003e [ty] Contain rendered code within Markdown fences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28869\"\u003e#28869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dba0f30615424b94f94a174bba6ce6cce4bf11ff\"\u003e\u003ccode\u003edba0f30\u003c/code\u003e\u003c/a\u003e authorize ruff-pre-commit dispatch via OIDC (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28867\"\u003e#28867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.16.6...0.16.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.78 to 0.0.84\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.84\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003cp\u003eThis release addresses \u003ca href=\"https://github.com/astral-sh/ty/security/advisories/GHSA-vxvm-j4xq-q7m4\"\u003eGHSA-vxvm-j4xq-q7m4\u003c/a\u003e, a use-after-free vulnerability during incremental type checking that can result in arbitrary code execution when analyzing a specially crafted Python project. Users who run ty on untrusted code should upgrade to 0.0.84 or newer.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix stale diagnostics from the LSP server after toggling \u003ccode\u003eshowSyntaxErrors\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28759\"\u003e#28759\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete string keys from dictionary initializers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28820\"\u003e#28820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport LSP requests against closed documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28595\"\u003e#28595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSelect projects for external files using import search paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28594\"\u003e#28594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse workspace editor settings for external files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28639\"\u003e#28639\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid repeated subtyping checks for materialized recursive protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28774\"\u003e#28774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip reading notebooks when discovering scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28781\"\u003e#28781\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid incorrect simplification of \u003ccode\u003eTypeIs\u003c/code\u003e materializations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28817\"\u003e#28817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix disjointness of generic class types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28787\"\u003e#28787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix staticmethod shadowing through generic receivers and unions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28766\"\u003e#28766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer callable signatures from bounded type variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28599\"\u003e#28599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer constant membership in inline list and set literals (e.g. \u003ccode\u003e\u0026quot;foo\u0026quot; in [\u0026quot;foo\u0026quot;]\u003c/code\u003e is now inferred as \u003ccode\u003eLiteral[True]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28676\"\u003e#28676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer through optional generic containers in the legacy solver (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28791\"\u003e#28791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve call narrowing during cyclic inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28708\"\u003e#28708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve intersections of type guard return types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28796\"\u003e#28796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse subtyping for constraint-set implication (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28657\"\u003e#28657\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable \u003ccode\u003einvalid-legacy-positional-parameter\u003c/code\u003e by default (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28834\"\u003e#28834\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOnly consider reachable definitions when determining whether a condition should be exempted from \u003ccode\u003eredundant-condition(-strict)\u003c/code\u003e due to the condition being defined relative to \u003ccode\u003esys.version_info\u003c/code\u003e, \u003ccode\u003esys.platform\u003c/code\u003e, \u003ccode\u003eos.name\u003c/code\u003e or \u003ccode\u003etyping.TYPE_CHECKING\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28788\"\u003e#28788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibraheemdev\"\u003e\u003ccode\u003e@​ibraheemdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.84\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003cp\u003eThis release addresses \u003ca href=\"https://github.com/astral-sh/ty/security/advisories/GHSA-vxvm-j4xq-q7m4\"\u003eGHSA-vxvm-j4xq-q7m4\u003c/a\u003e, a use-after-free vulnerability during incremental type checking that can result in arbitrary code execution when analyzing a specially crafted Python project. Users who run ty on untrusted code should upgrade to 0.0.84 or newer.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix stale diagnostics from the LSP server after toggling \u003ccode\u003eshowSyntaxErrors\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28759\"\u003e#28759\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete string keys from dictionary initializers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28820\"\u003e#28820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport LSP requests against closed documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28595\"\u003e#28595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSelect projects for external files using import search paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28594\"\u003e#28594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse workspace editor settings for external files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28639\"\u003e#28639\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid repeated subtyping checks for materialized recursive protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28774\"\u003e#28774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip reading notebooks when discovering scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28781\"\u003e#28781\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid incorrect simplification of \u003ccode\u003eTypeIs\u003c/code\u003e materializations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28817\"\u003e#28817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix disjointness of generic class types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28787\"\u003e#28787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix staticmethod shadowing through generic receivers and unions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28766\"\u003e#28766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer callable signatures from bounded type variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28599\"\u003e#28599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer constant membership in inline list and set literals (e.g. \u003ccode\u003e\u0026quot;foo\u0026quot; in [\u0026quot;foo\u0026quot;]\u003c/code\u003e is now inferred as \u003ccode\u003eLiteral[True]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28676\"\u003e#28676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer through optional generic containers in the legacy solver (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28791\"\u003e#28791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve call narrowing during cyclic inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28708\"\u003e#28708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve intersections of type guard return types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28796\"\u003e#28796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse subtyping for constraint-set implication (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28657\"\u003e#28657\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable \u003ccode\u003einvalid-legacy-positional-parameter\u003c/code\u003e by default (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28834\"\u003e#28834\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOnly consider reachable definitions when determining whether a condition should be exempted from \u003ccode\u003eredundant-condition(-strict)\u003c/code\u003e due to the condition being defined relative to \u003ccode\u003esys.version_info\u003c/code\u003e, \u003ccode\u003esys.platform\u003c/code\u003e, \u003ccode\u003eos.name\u003c/code\u003e or \u003ccode\u003etyping.TYPE_CHECKING\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28788\"\u003e#28788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibraheemdev\"\u003e\u003ccode\u003e@​ibraheemdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/8dd9a7f7fa35a18275d82117e6593ba45507065f\"\u003e\u003ccode\u003e8dd9a7f\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.84 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4585\"\u003e#4585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/d4e4bf90906c7677049bc3a29d1735de7d22052d\"\u003e\u003ccode\u003ed4e4bf9\u003c/code\u003e\u003c/a\u003e publish to astral-sh/versions via OIDC (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4581\"\u003e#4581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/94ce7333abb356b2068dc98d37a68c993da6d09b\"\u003e\u003ccode\u003e94ce733\u003c/code\u003e\u003c/a\u003e use oidc issued token for docs publication (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4579\"\u003e#4579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/901eeaa9cd9ac06f34e85e4f721f76a0dc36e217\"\u003e\u003ccode\u003e901eeaa\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4576\"\u003e#4576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/09bf0b1b2114a628f3e2296d3d9d28245066c98b\"\u003e\u003ccode\u003e09bf0b1\u003c/code\u003e\u003c/a\u003e Update docker/setup-buildx-action action to v4.3.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4575\"\u003e#4575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/89d6ffe529dd44f64adc0d28f80744b7c7ab217f\"\u003e\u003ccode\u003e89d6ffe\u003c/code\u003e\u003c/a\u003e Update astral-sh/setup-uv action to v10.2.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4574\"\u003e#4574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/9c214798cfcc59069e986876564638fadf32d774\"\u003e\u003ccode\u003e9c21479\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.83 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4569\"\u003e#4569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/04c69110b391e96310e6892cbed9936c4f31d7aa\"\u003e\u003ccode\u003e04c6911\u003c/code\u003e\u003c/a\u003e Sync the ty security mirror (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4549\"\u003e#4549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/3fa57a25767c619dbeba697c2acfbb8eb291519a\"\u003e\u003ccode\u003e3fa57a2\u003c/code\u003e\u003c/a\u003e Grant the versions workflow repository read access (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4550\"\u003e#4550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/a15b35389b44db57f718fd4e19e093481747c53e\"\u003e\u003ccode\u003ea15b353\u003c/code\u003e\u003c/a\u003e use scoped token for release workflow (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4506\"\u003e#4506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.78...0.0.84\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.52.4 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.54.0\u003c/h2\u003e\n\u003ch2\u003e📨 Send metadata after the response body\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.54.0 adds response trailers and \u003ccode\u003e103 Early Hints\u003c/code\u003e to its experimental HTTP/2 implementation through \u003ccode\u003ezttp\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.54.0 \u0026quot;zttp\u0026gt;=0.0.34\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend HTTP/2 response trailers\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e). The ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension lets applications send metadata, such as checksums, after the response body. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them. Multiple trailer messages are combined before completing the response.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental and opt-in.\u003c/strong\u003e Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Upgrade-based h2c and WebSockets over HTTP/2 remain unsupported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e💡 Hint at resources before the final response\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend \u003ccode\u003e103 Early ...\n\n_Description has been truncated_","html_url":"https://github.com/AndreWohnsland/CocktailBerry-Stats/pull/29","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreWohnsland%2FCocktailBerry-Stats/issues/29","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/29/packages"},{"uuid":"5663669743","node_id":"PR_kwDOOJLBp88AAAABGG9pyA","number":2731,"state":"closed","title":"build(deps): Bump pandas from 2.0.3 to 3.0.6","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-10-03T09:03:17.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-01T14:18:15.000Z","updated_at":"2026-10-03T09:03:25.000Z","time_to_close":153902,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","packages":[{"name":"pandas","old_version":"2.0.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pandas](https://github.com/pandas-dev/pandas) from 2.0.3 to 3.0.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.0.3...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pandas\u0026package-manager=pip\u0026previous-version=2.0.3\u0026new-version=3.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Ikey168/Noesis/pull/2731","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ikey168%2FNoesis/issues/2731","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2731/packages"},{"uuid":"5660096249","node_id":"PR_kwDOTZZgEs8AAAABGEGTJg","number":183,"state":"open","title":"chore(deps): update pandas requirement from \u003c4,\u003e=2.2 to \u003e=3.0.6,\u003c4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-01T09:36:10.000Z","updated_at":"2026-10-01T09:37:13.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): update","packages":[{"name":"pandas","old_version":"\u003c4,\u003e=2.2","new_version":"\u003e=3.0.6,\u003c4","repository_url":"https://github.com/pandas-dev/pandas"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pandas](https://github.com/pandas-dev/pandas) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.2.0...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/sharp-signals/Tennis/pull/183","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sharp-signals%2FTennis/issues/183","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/183/packages"},{"uuid":"5658101236","node_id":"PR_kwDORFdqbc8AAAABGCgtnQ","number":287,"state":"open","title":"build(deps): bump the all-dependencies group with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-01T06:41:23.000Z","updated_at":"2026-10-01T06:42:28.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"all-dependencies","update_count":3,"packages":[{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"ruff","old_version":"0.16.5","new_version":"0.16.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pandas-stubs","old_version":"3.0.5.260730","new_version":"3.0.5.260914","repository_url":"https://github.com/pandas-dev/pandas-stubs"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 3 updates: [pandas](https://github.com/pandas-dev/pandas), [ruff](https://github.com/astral-sh/ruff) and [pandas-stubs](https://github.com/pandas-dev/pandas-stubs).\n\nUpdates `pandas` from 3.0.5 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.5...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.16.5 to 0.16.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.9\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positives for overloaded division (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28309\"\u003e#28309\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Avoid false positives for calls with keyword arguments (\u003ccode\u003eB009\u003c/code\u003e, \u003ccode\u003eB010\u003c/code\u003e, \u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28776\"\u003e#28776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow lazy imports to be used in deferred annotations (\u003ccode\u003eTID255\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28767\"\u003e#28767\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LibCST-based fixes for Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28616\"\u003e#28616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Mention stubs in the diagnostic message (\u003ccode\u003ePYI002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28542\"\u003e#28542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix horizontal overflow on the rules documentation page (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28699\"\u003e#28699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate rules table with category information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28651\"\u003e#28651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Clarify that \u003ccode\u003eANN401\u003c/code\u003e checks return types in addition to arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28334\"\u003e#28334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Document type-checker interaction (\u003ccode\u003eB010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28509\"\u003e#28509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27794\"\u003e#27794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Mention related isort settings (\u003ccode\u003eRUF022\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28719\"\u003e#28719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qinpei-dev\"\u003e\u003ccode\u003e@​qinpei-dev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanjayrohith\"\u003e\u003ccode\u003e@​sanjayrohith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webdevsamran\"\u003e\u003ccode\u003e@​webdevsamran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaniebot\"\u003e\u003ccode\u003e@​zaniebot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spaceone\"\u003e\u003ccode\u003e@​spaceone\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IbrahimKhan12\"\u003e\u003ccode\u003e@​IbrahimKhan12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devtechedge\"\u003e\u003ccode\u003e@​devtechedge\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GruffElixir\"\u003e\u003ccode\u003e@​GruffElixir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.16.9\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.9/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.9\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positives for overloaded division (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28309\"\u003e#28309\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Avoid false positives for calls with keyword arguments (\u003ccode\u003eB009\u003c/code\u003e, \u003ccode\u003eB010\u003c/code\u003e, \u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28776\"\u003e#28776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow lazy imports to be used in deferred annotations (\u003ccode\u003eTID255\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28767\"\u003e#28767\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LibCST-based fixes for Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28616\"\u003e#28616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Mention stubs in the diagnostic message (\u003ccode\u003ePYI002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28542\"\u003e#28542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix horizontal overflow on the rules documentation page (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28699\"\u003e#28699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate rules table with category information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28651\"\u003e#28651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Clarify that \u003ccode\u003eANN401\u003c/code\u003e checks return types in addition to arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28334\"\u003e#28334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Document type-checker interaction (\u003ccode\u003eB010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28509\"\u003e#28509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27794\"\u003e#27794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Mention related isort settings (\u003ccode\u003eRUF022\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28719\"\u003e#28719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qinpei-dev\"\u003e\u003ccode\u003e@​qinpei-dev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanjayrohith\"\u003e\u003ccode\u003e@​sanjayrohith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webdevsamran\"\u003e\u003ccode\u003e@​webdevsamran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaniebot\"\u003e\u003ccode\u003e@​zaniebot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spaceone\"\u003e\u003ccode\u003e@​spaceone\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IbrahimKhan12\"\u003e\u003ccode\u003e@​IbrahimKhan12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devtechedge\"\u003e\u003ccode\u003e@​devtechedge\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GruffElixir\"\u003e\u003ccode\u003e@​GruffElixir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.16.8\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-16.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVisit functional \u003ccode\u003eTypedDict\u003c/code\u003e keyword arguments correctly (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28584\"\u003e#28584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Detect nested \u003ccode\u003easync with\u003c/code\u003e under sync parent (\u003ccode\u003eSIM117\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27821\"\u003e#27821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve operand order in \u003ccode\u003eSIM109\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27824\"\u003e#27824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0be08a206f9c3180afd3e93bcc792ed5cb1f4db1\"\u003e\u003ccode\u003e0be08a2\u003c/code\u003e\u003c/a\u003e Bump version to 0.16.9 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28882\"\u003e#28882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b4920b72b354e7c715ab861ae23458874683bb02\"\u003e\u003ccode\u003eb4920b7\u003c/code\u003e\u003c/a\u003e Rename \u003ccode\u003eruff_cli\u003c/code\u003e to \u003ccode\u003eruff_command_line\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28881\"\u003e#28881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/47c751b95908a4d1f95f9ef8723036aae9da0b18\"\u003e\u003ccode\u003e47c751b\u003c/code\u003e\u003c/a\u003e Update dependency astral-sh/uv to v0.12.18 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28880\"\u003e#28880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8c244e56a1aeac31c26d2371ef26588e0632235c\"\u003e\u003ccode\u003e8c244e5\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5edf5a1d0a84663079e46983216059f06acea87d\"\u003e\u003ccode\u003e5edf5a1\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003etarget\u003c/code\u003e form in \u003ccode\u003erooster.version_files\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28876\"\u003e#28876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/915bb2b4bf9ae7eee47cf55646bbfebae254a23b\"\u003e\u003ccode\u003e915bb2b\u003c/code\u003e\u003c/a\u003e [ty] Prefer existing @ paths over response files in Ruff and ty (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28877\"\u003e#28877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4710e1aa962b13720cf64aa84eb279c5333896d7\"\u003e\u003ccode\u003e4710e1a\u003c/code\u003e\u003c/a\u003e ci(github): update version number in placeholder of issue template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28871\"\u003e#28871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eedfc62a75bf1ba86d48959b00eea75ae87eadca\"\u003e\u003ccode\u003eeedfc62\u003c/code\u003e\u003c/a\u003e [ty] Propagate outer type context through cast calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28855\"\u003e#28855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ceaa6a00830e1e350b8a23977a1a10ac467920a1\"\u003e\u003ccode\u003eceaa6a0\u003c/code\u003e\u003c/a\u003e [ty] Contain rendered code within Markdown fences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28869\"\u003e#28869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dba0f30615424b94f94a174bba6ce6cce4bf11ff\"\u003e\u003ccode\u003edba0f30\u003c/code\u003e\u003c/a\u003e authorize ruff-pre-commit dispatch via OIDC (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28867\"\u003e#28867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.16.5...0.16.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas-stubs` from 3.0.5.260730 to 3.0.5.260914\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/6ad02bec34404b639f63af97265a6b2945a26539\"\u003e\u003ccode\u003e6ad02be\u003c/code\u003e\u003c/a\u003e Version 3.0.5.260914\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/553375820a70b95446ef45efb300aec166f3e52d\"\u003e\u003ccode\u003e5533758\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epyrefly\u003c/code\u003e version (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1945\"\u003e#1945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/711cf2f7eedaee369812d293a9cc83a08432096b\"\u003e\u003ccode\u003e711cf2f\u003c/code\u003e\u003c/a\u003e BLD: temporarily pin pyright to 1.1.411 (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1942\"\u003e#1942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/507243e3c1c1f0a6d92b5c409684fd691e2d6980\"\u003e\u003ccode\u003e507243e\u003c/code\u003e\u003c/a\u003e TST: nightly expect \u003ccode\u003ePandas4Warning\u003c/code\u003e for \u003ccode\u003eSeries.drop\u003c/code\u003e/\u003ccode\u003erename\u003c/code\u003e \u003ccode\u003einplace\u003c/code\u003e and...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/a09e2ed4b2f2de525f61c686f842102850422051\"\u003e\u003ccode\u003ea09e2ed\u003c/code\u003e\u003c/a\u003e TYP: align Index subtraction overloads (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1938\"\u003e#1938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/156be75b11f0b8d7be7e9b726d65c1282b1a4148\"\u003e\u003ccode\u003e156be75\u003c/code\u003e\u003c/a\u003e TST: add focused Period scalar subtraction tests (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1936\"\u003e#1936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/6b84c3ac180df555d37d69faa342eb67adb842a4\"\u003e\u003ccode\u003e6b84c3a\u003c/code\u003e\u003c/a\u003e CLN: load tests._typing from pandas-stubs/_typing.pyi without file swap (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1930\"\u003e#1930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/14f8185430ee78528eacb693df151c963cc69d0b\"\u003e\u003ccode\u003e14f8185\u003c/code\u003e\u003c/a\u003e TST: add focused Period scalar addition tests (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1933\"\u003e#1933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/0a77a3a4420399eb21a327de924d8897dda0844b\"\u003e\u003ccode\u003e0a77a3a\u003c/code\u003e\u003c/a\u003e TYP: move stub-only helper types to _stubs_only (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1935\"\u003e#1935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/a3824373b6f3c8ce5a3f2185e64f6eea98fb03ae\"\u003e\u003ccode\u003ea382437\u003c/code\u003e\u003c/a\u003e TYP: update stubs for ty 0.0.76 (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1932\"\u003e#1932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas-stubs/compare/v3.0.5.260730...v3.0.5.260914\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Hermione-Granger-1176/linkedin-analyzer/pull/287","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hermione-Granger-1176%2Flinkedin-analyzer/issues/287","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/287/packages"},{"uuid":"5655797400","node_id":"PR_kwDOKdDCc88AAAABGArTvA","number":31788,"state":"closed","title":"chore(deps): bump pandas from 3.0.3 to 3.0.6","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-10-01T02:14:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-01T02:14:38.000Z","updated_at":"2026-10-01T02:14:52.000Z","time_to_close":5,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"pandas","old_version":"3.0.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pandas](https://github.com/pandas-dev/pandas) from 3.0.3 to 3.0.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.3...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pandas\u0026package-manager=uv\u0026previous-version=3.0.3\u0026new-version=3.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/open-webui/open-webui/pull/31788","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-webui%2Fopen-webui/issues/31788","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/31788/packages"},{"uuid":"5655714219","node_id":"PR_kwDOKdDCc88AAAABGAnH7Q","number":31669,"state":"closed","title":"chore(deps): bump pandas from 3.0.3 to 3.0.6 in /backend","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-10-01T02:05:24.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-01T02:05:20.000Z","updated_at":"2026-10-01T02:05:33.000Z","time_to_close":4,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"pandas","old_version":"3.0.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [pandas](https://github.com/pandas-dev/pandas) from 3.0.3 to 3.0.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.3...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pandas\u0026package-manager=pip\u0026previous-version=3.0.3\u0026new-version=3.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/open-webui/open-webui/pull/31669","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-webui%2Fopen-webui/issues/31669","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/31669/packages"},{"uuid":"5654065364","node_id":"PR_kwDOUk_FLc8AAAABF_TkVw","number":4,"state":"closed","title":"Bump the python group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-01T00:09:16.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-30T22:52:47.000Z","updated_at":"2026-10-01T00:09:25.000Z","time_to_close":4589,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":5,"packages":[{"name":"uvicorn","old_version":"0.34.0","new_version":"0.54.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.36","new_version":"2.1.1","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"apscheduler","old_version":"3.11.0","new_version":"3.11.3","repository_url":"https://github.com/agronholm/apscheduler"},{"name":"pandas","old_version":"2.2.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"numpy","old_version":"2.2.1","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.0` | `0.54.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.36` | `2.1.1` |\n| [apscheduler](https://github.com/agronholm/apscheduler) | `3.11.0` | `3.11.3` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `3.0.6` |\n| [numpy](https://github.com/numpy/numpy) | `2.2.1` | `2.5.3` |\n\n\nUpdates `uvicorn` from 0.34.0 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.54.0\u003c/h2\u003e\n\u003ch2\u003e📨 Send metadata after the response body\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.54.0 adds response trailers and \u003ccode\u003e103 Early Hints\u003c/code\u003e to its experimental HTTP/2 implementation through \u003ccode\u003ezttp\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.54.0 \u0026quot;zttp\u0026gt;=0.0.34\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend HTTP/2 response trailers\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e). The ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension lets applications send metadata, such as checksums, after the response body. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them. Multiple trailer messages are combined before completing the response.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental and opt-in.\u003c/strong\u003e Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Upgrade-based h2c and WebSockets over HTTP/2 remain unsupported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e💡 Hint at resources before the final response\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend \u003ccode\u003e103 Early Hints\u003c/code\u003e over HTTP/2\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e). Applications can use the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension to send resource hints before the final response. Each supplied link becomes a separate \u003ccode\u003eLink\u003c/code\u003e header.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.53.0...0.54.0\"\u003e0.53.0...0.54.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.53.0\u003c/h2\u003e\n\u003ch2\u003e🌐 Opt-in HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.53.0 adds experimental HTTP/2 through \u003ccode\u003ezttp\u003c/code\u003e, alongside a new \u003ccode\u003ezuvloop\u003c/code\u003e integration and connection-handling improvements.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.53.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eServe HTTP/1.1 and HTTP/2 with \u003ccode\u003ezttp\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e). Install \u003ccode\u003ezttp\u003c/code\u003e, then enable HTTP/2 with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Uvicorn negotiates HTTP/2 over TLS with ALPN and supports cleartext prior knowledge.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental.\u003c/strong\u003e Upgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚙️ More event loop choice\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRun Uvicorn with \u003ccode\u003ezuvloop\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e). Install \u003ccode\u003ezuvloop\u003c/code\u003e separately and select it explicitly with \u003ccode\u003e--loop zuvloop\u003c/code\u003e on CPython 3.14 or newer.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛡️ More reliable connections and proxies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHonor \u003ccode\u003eConnection: close\u003c/code\u003e token lists\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e). Uvicorn now parses comma-separated tokens case-insensitively across HTTP implementations.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTrust IPv6 loopback proxies by default\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e). The default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value now includes \u003ccode\u003e::1\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eKeep upgraded WebSockets alive\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e). Uvicorn cancels the HTTP keep-alive timer when the connection becomes a WebSocket.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.4...0.53.0\"\u003e0.52.4...0.53.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0 (September 24, 2026)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support remains experimental. Install \u003ccode\u003ezttp\u0026gt;=0.0.34\u003c/code\u003e and enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd HTTP/2 response trailers through the ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd HTTP/2 \u003ccode\u003e103 Early Hints\u003c/code\u003e through the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.53.0 (September 14, 2026)\u003c/h2\u003e\n\u003cp\u003eThis release adds experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e. Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\nUpgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ezuvloop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle comma-separated, case-insensitive \u003ccode\u003eConnection: close\u003c/code\u003e tokens across HTTP implementations (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTrust IPv6 loopback in the default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancel the HTTP keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.4 (August 18, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.3 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.24 and use its combined receive path, improving HTTP/1.1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3067\"\u003e#3067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.2 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.22, fixing bodyless request receives and improving HTTP/1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.1 (August 1, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete the closing handshake on server-initiated WebSocket closes in the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e and \u003ccode\u003ewsproto\u003c/code\u003e implementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing write flow control to the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, preventing data truncation on server-initiated closes with large in-flight payloads (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3048\"\u003e#3048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle connection loss while a WebSocket write is waiting on backpressure (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3eb9a9ab9af69005c687728097461c1fd2a95db9\"\u003e\u003ccode\u003e3eb9a9a\u003c/code\u003e\u003c/a\u003e Version 0.54.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3161\"\u003e#3161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cd7ef6d31c1a09a3653f326cda7813d35ffd6082\"\u003e\u003ccode\u003ecd7ef6d\u003c/code\u003e\u003c/a\u003e Remove races from supervisor tests (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a56c7cce64aaa37e5864f882a5cbce8aa1dac47a\"\u003e\u003ccode\u003ea56c7cc\u003c/code\u003e\u003c/a\u003e Support HTTP/2 response trailers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9bd4404cca9506e9ba4f46b69ef72d011ceef2bd\"\u003e\u003ccode\u003e9bd4404\u003c/code\u003e\u003c/a\u003e chore(deps): bump anyio from 4.13.0 to 4.14.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/21f39ef7988366f77fb3172569bd235ac5de34cc\"\u003e\u003ccode\u003e21f39ef\u003c/code\u003e\u003c/a\u003e Add HTTP/2 Early Hints support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/421708fbc1a704dac8bd4053a7c4c0bf4d3704ee\"\u003e\u003ccode\u003e421708f\u003c/code\u003e\u003c/a\u003e Version 0.53.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f1a1bff7be819f5724d6fdf86dfd448a97c62e23\"\u003e\u003ccode\u003ef1a1bff\u003c/code\u003e\u003c/a\u003e Unset the keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/63971ed952090438896e6eba7d07178b616d97cc\"\u003e\u003ccode\u003e63971ed\u003c/code\u003e\u003c/a\u003e Document HTTP/2 support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7d1a0055aee5e281accc646b559ddd147486bf8a\"\u003e\u003ccode\u003e7d1a005\u003c/code\u003e\u003c/a\u003e Remove race from multiprocess health check test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3128\"\u003e#3128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5ac6265a01ff6dcadb0e4250152c3deaf8a168a9\"\u003e\u003ccode\u003e5ac6265\u003c/code\u003e\u003c/a\u003e Add ::1 to FORWARDED_ALLOW_IPS (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.34.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.36 to 2.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.1\u003c/h1\u003e\n\u003cp\u003eReleased: September 25, 2026\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Removed the legacy underscore-separated extra names such as\n\u003ccode\u003emssql_pymssql\u003c/code\u003e and \u003ccode\u003epostgresql_psycopg\u003c/code\u003e from \u003ccode\u003epyproject.toml\u003c/code\u003e.\nThey normalize to the same names as the existing dash-separated extras,\nwhich is disallowed by \u003ca href=\"https://peps.python.org/pep-0685\"\u003ePEP 685\u003c/a\u003e, and caused the 2.1.0 source\ndistribution to fail to build with installers that enforce this rule,\nsuch as uv. The underscore spellings continue to work when installing,\nas installers normalize extra names before matching them.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13604\"\u003e#13604\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cp\u003eReleased: September 24, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [feature]\u003c/strong\u003e Added \u003ccode\u003e_orm.composite.column_template\u003c/code\u003e parameter to\n\u003ccode\u003e_orm.composite()\u003c/code\u003e.  When the composite class is a dataclass, this\nparameter accepts a string template such as \u003ccode\u003e\u0026quot;person_%s\u0026quot;\u003c/code\u003e, containing\nexactly one \u003ccode\u003e%s\u003c/code\u003e placeholder, that's used to generate column names for\ndataclass fields that don't otherwise have an explicit name, rather than\nusing the bare field name.  This removes the need to hand-write a\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e for each field when the same composite dataclass\nis mapped multiple times on the same class with different column-name\nprefixes.  Pull request courtesy Leonardo Rosa.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12575\"\u003e#12575\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where pickling an ORM object that had an instance level lazy\nloader established, such as when the \u003ccode\u003e_orm.raiseload()\u003c/code\u003e option is used,\nwould emit a spurious warning regarding the loader containing additional\ncriteria, if the object had itself been unpickled from a previous\nserialization.  This would occur for objects that cross more than one\nserialization boundary, such as when using multiprocessing.\u003c/p\u003e\n\u003cp\u003eThis change is also \u003cstrong\u003ebackported\u003c/strong\u003e to: 2.0.53\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13574\"\u003e#13574\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where calling \u003ccode\u003e_orm.aliased()\u003c/code\u003e against an existing\n\u003ccode\u003e_orm.aliased()\u003c/code\u003e construct, without passing an explicit selectable,\nwould disregard the selectable of the existing construct and produce an\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apscheduler` from 3.11.0 to 3.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/apscheduler/releases\"\u003eapscheduler's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed sub-minute interval jobs stalling for the duration of a DST spring-forward gap when the scheduler was configured with a \u003ccode\u003eZoneInfo\u003c/code\u003e time zone, caused by the wakeup delay being computed from the naive wall-clock difference instead of the actual UTC difference (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1103\"\u003e#1103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed imported jobs missing their scheduler and job store links (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1119\"\u003e#1119\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where a job using a \u003ccode\u003eCronTrigger\u003c/code\u003e scheduled in a repeated time interval during DST transitions could cause the scheduler to get stuck in an infinite loop (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1021\"\u003e#1021\u003c/a\u003e; PR by \u003ca href=\"https://github.com/soulofakuma\"\u003e\u003ccode\u003e@​soulofakuma\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003escheduler.shutdown()\u003c/code\u003e not raising \u003ccode\u003eSchedulerNotRunning\u003c/code\u003e (or raising the wrong exception) for asynchronous schedulers when the scheduler is in fact not running\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCronTrigger\u003c/code\u003e sticking on a folded datetime during the fall-back DST transition (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1021\"\u003e#1021\u003c/a\u003e \u0026lt;\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1021\"\u003eagronholm/apscheduler#1021\u003c/a\u003e\u0026gt;_; PR by \u003ca href=\"https://github.com/berianjames\"\u003e\u003ccode\u003e@​berianjames\u003c/code\u003e\u003c/a\u003e)`\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/4308ec95b94069f5dbdddb6c60fb792dfc8c40a4\"\u003e\u003ccode\u003e4308ec9\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/ff68780d7f66fe0f505c3a32764005cd004996b9\"\u003e\u003ccode\u003eff68780\u003c/code\u003e\u003c/a\u003e Added a note about weekday numbers in CronTrigger.from_crontab()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/36936e904052e6bfbd03f83e17b03701b7a589fe\"\u003e\u003ccode\u003e36936e9\u003c/code\u003e\u003c/a\u003e Updated actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/c0ff7e4ccfcc703db44a905b70c1d6568a6f81fa\"\u003e\u003ccode\u003ec0ff7e4\u003c/code\u003e\u003c/a\u003e Fixed Pyside6 tests failing on Python 3.9 and 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/1b782c90edeac787deb3106fb3e5c775b3d6b0cd\"\u003e\u003ccode\u003e1b782c9\u003c/code\u003e\u003c/a\u003e Fixed fixture \u003ccode\u003ecoreapp\u003c/code\u003e not found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/dc3dde4a34c021f215d120d88fe19ddc66bb8a66\"\u003e\u003ccode\u003edc3dde4\u003c/code\u003e\u003c/a\u003e Test against PySide6 on all Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/18a6f6b637e372730f6325786f97936e6eaa9f77\"\u003e\u003ccode\u003e18a6f6b\u003c/code\u003e\u003c/a\u003e Fixed imported jobs missing their scheduler and job store links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/1693db4d8861bf941d299d79a586797ad0ac6467\"\u003e\u003ccode\u003e1693db4\u003c/code\u003e\u003c/a\u003e Fix interval jobs stalling across DST spring-forward with ZoneInfo (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1114\"\u003e#1114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/0636bf4931fddb706b948b6781ebbd76058f1443\"\u003e\u003ccode\u003e0636bf4\u003c/code\u003e\u003c/a\u003e Added Python 3.14 to the test matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/3eb3de8115f1631dc5e2ecce7b00175d34ffbdf9\"\u003e\u003ccode\u003e3eb3de8\u003c/code\u003e\u003c/a\u003e Fixed bad use of pytest.raises()\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/apscheduler/compare/3.11.0...3.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.2.3 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.2.3...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.2.1 to 2.5.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.3 (Sep 6, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.5.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.5.3 is a patch release that fixes bugs discovered after the 2.5.2\nrelease. Apart from the usual bug and maintenance work, there are a number of\nStringDType related fixes for problems discovered during the ongoing string\nwork in the main branch.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.12-3.15\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCasting a fixed-width byte string array (\u003ccode\u003enp.bytes_\u003c/code\u003e) to \u003ccode\u003eStringDType\u003c/code\u003e\nnow raises \u003ccode\u003eTypeError\u003c/code\u003e when the bytes are not valid UTF-8. Previously the\ninvalid bytes were stored as-is and later caused undefined behavior in\nstring operations.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32296\"\u003egh-32296\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMaskedArray._fill_value\u003c/code\u003e would become stale when ufuncs that change dtype\nleft the result holding a fill_value typed for the old dtype. The mismatch\nwas silent until something later called \u003ccode\u003e_check_fill_value\u003c/code\u003e, such as\n\u003ccode\u003e.view()\u003c/code\u003e, and then a \u003ccode\u003eTypeError\u003c/code\u003e would be raised. Now, when the copied\nfill_value is no longer valid for the new dtype, fall back to the\ndefault fill_value for that dtype instead of propagating the stale value.\nThis may raise a \u003ccode\u003eComplexWarning\u003c/code\u003e if the fill_value is complex and the\nnew dtype is real.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32423\"\u003egh-32423\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIason Krommydas\u003c/li\u003e\n\u003cli\u003eJames Davies +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaanas Arora\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eShikhar Goel +\u003c/li\u003e\n\u003cli\u003eYeonho Kim +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 27 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32235\"\u003e#32235\u003c/a\u003e: MAINT: Prepare 2.5.x for further development\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst\"\u003enumpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis is a walkthrough of the NumPy 2.4.0 release on Linux, which will be the\nfirst feature release using the \u003ccode\u003enumpy/numpy-release \u0026lt;https://github.com/numpy/numpy-release\u0026gt;\u003c/code\u003e__ repository.\u003c/p\u003e\n\u003cp\u003eThe commands can be copied into the command line, but be sure to replace 2.4.0\nwith the correct version. This should be read together with the\n:ref:\u003ccode\u003egeneral release guide \u0026lt;prepare_release\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eFacility preparation\u003c/h1\u003e\n\u003cp\u003eBefore beginning to make a release, use the \u003ccode\u003erequirements/*_requirements.txt\u003c/code\u003e files to\nensure that you have the needed software. Most software can be installed with\npip, but some will require apt-get, dnf, or whatever your system uses for\nsoftware. You will also need a GitHub personal access token (PAT) to push the\ndocumentation. There are a few ways to streamline things:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGit can be set up to use a keyring to store your GitHub personal access token.\nSearch online for the details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePrior to release\u003c/h1\u003e\n\u003ch2\u003eAdd/drop Python versions\u003c/h2\u003e\n\u003cp\u003eWhen adding or dropping Python versions, multiple config and CI files need to\nbe edited in addition to changing the minimum version in \u003ccode\u003epyproject.toml\u003c/code\u003e.\nMake these changes in an ordinary PR against main and backport if necessary.\nWe currently release wheels for new Python versions after the first Python RC\nonce manylinux and cibuildwheel support that new Python version.\u003c/p\u003e\n\u003ch2\u003eBackport pull requests\u003c/h2\u003e\n\u003cp\u003eChanges that have been marked for this release must be backported to the\nmaintenance/2.4.x branch.\u003c/p\u003e\n\u003ch2\u003eUpdate 2.4.0 milestones\u003c/h2\u003e\n\u003cp\u003eLook at the issues/prs with 2.4.0 milestones and either push them off to a\nlater version, or maybe remove the milestone. You may need to add a milestone.\u003c/p\u003e\n\u003ch2\u003eCheck the numpy-release repo\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/dd88c0c19b54ad9ed3533224221285bf0873249a\"\u003e\u003ccode\u003edd88c0c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32511\"\u003e#32511\u003c/a\u003e from charris/prepare-2.5.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/edcac6acc392f4010933ee83e8a4769a7cfe92c5\"\u003e\u003ccode\u003eedcac6a\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.5.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fd4d908aff89773ead13f7c6a0ab31153f14439e\"\u003e\u003ccode\u003efd4d908\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32509\"\u003e#32509\u003c/a\u003e from charris/backport-32496\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/65bb1da13d0ee784be84d173b86784f0d64bdaca\"\u003e\u003ccode\u003e65bb1da\u003c/code\u003e\u003c/a\u003e BUG: fix crash in ufunc.resolve_dtypes with a Python scalar type (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32496\"\u003e#32496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/294956e85dfaea149aada1278c2ed6be0f6f28c8\"\u003e\u003ccode\u003e294956e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32506\"\u003e#32506\u003c/a\u003e from charris/backport-32503\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/26428d9a3f5ab4f604b326347e3a9c6dcc00c1cb\"\u003e\u003ccode\u003e26428d9\u003c/code\u003e\u003c/a\u003e DOC: fix scipy docs links in intersphinx mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32507\"\u003e#32507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/5fab1cbc6aa9e119d9f931243a56c6fbca989476\"\u003e\u003ccode\u003e5fab1cb\u003c/code\u003e\u003c/a\u003e DOC: use static scipy doc site for intershpinx (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32503\"\u003e#32503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7beed2f7e9a24e493a04ff7e2eb1db0d7f9c50e6\"\u003e\u003ccode\u003e7beed2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32481\"\u003e#32481\u003c/a\u003e from ngoldbaum/stringdtype-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8972f70798a2ba1bb4557157982fd6001906f993\"\u003e\u003ccode\u003e8972f70\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32478\"\u003e#32478\u003c/a\u003e from charris/backport-32466\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/ab1b58902a868d4151ef3cf8dbeb91d8a1924fa4\"\u003e\u003ccode\u003eab1b589\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32477\"\u003e#32477\u003c/a\u003e from charris/backport-32423\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.2.1...v2.5.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/theblackmoose/supertrendMoose/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/theblackmoose%2FsupertrendMoose/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"5639678988","node_id":"PR_kwDOT-F1_88AAAABFzvffw","number":94,"state":"closed","title":"chore(deps): bump the backend-minor group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-30T16:24:55.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-30T01:59:14.000Z","updated_at":"2026-09-30T16:24:57.000Z","time_to_close":51941,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"backend-minor","update_count":5,"packages":[{"name":"graphrag","old_version":"3.1.2","new_version":"3.2.0","repository_url":"https://github.com/microsoft/graphrag"},{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pyjwt","old_version":"2.14.0","new_version":"2.15.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"starlette","old_version":"1.6.0","new_version":"1.7.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"ruff","old_version":"0.16.7","new_version":"0.16.9","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the backend-minor group with 5 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [graphrag](https://github.com/microsoft/graphrag) | `3.1.2` | `3.2.0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.5` | `3.0.6` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.14.0` | `2.15.0` |\n| [starlette](https://github.com/Kludex/starlette) | `1.6.0` | `1.7.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.7` | `0.16.9` |\n\n\nUpdates `graphrag` from 3.1.2 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/graphrag/releases\"\u003egraphrag's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange default package feed index. by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2483\"\u003emicrosoft/graphrag#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix/cache event loop lifecycle by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2484\"\u003emicrosoft/graphrag#2484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePr 2481/danfiedler/pin actions by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2485\"\u003emicrosoft/graphrag#2485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd notice. by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2486\"\u003emicrosoft/graphrag#2486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePr 2480/docs/spelling sweep by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2487\"\u003emicrosoft/graphrag#2487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLocal search notebook by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2488\"\u003emicrosoft/graphrag#2488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate contributing doc. by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2500\"\u003emicrosoft/graphrag#2500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAutomate dependency updates. by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2507\"\u003emicrosoft/graphrag#2507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix update-deps skill to work with msft feed. by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2510\"\u003emicrosoft/graphrag#2510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDependency update sweep by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2516\"\u003emicrosoft/graphrag#2516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v3.1.2 by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2519\"\u003emicrosoft/graphrag#2519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies to latest versions (dependency sweep) by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2523\"\u003emicrosoft/graphrag#2523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2528\"\u003emicrosoft/graphrag#2528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies to latest versions (dependency sweep) by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2558\"\u003emicrosoft/graphrag#2558\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies sweep by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2563\"\u003emicrosoft/graphrag#2563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enew cache implementation by \u003ca href=\"https://github.com/gaudyb\"\u003e\u003ccode\u003e@​gaudyb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2570\"\u003emicrosoft/graphrag#2570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v3.2.0 by \u003ca href=\"https://github.com/gaudyb\"\u003e\u003ccode\u003e@​gaudyb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2572\"\u003emicrosoft/graphrag#2572\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microsoft/graphrag/compare/v3.1.1...v3.2.0\"\u003ehttps://github.com/microsoft/graphrag/compare/v3.1.1...v3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/graphrag/blob/main/CHANGELOG.md\"\u003egraphrag's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eminor: Add a concurrency-safe SQLite cache provider.\u003c/li\u003e\n\u003cli\u003epatch: Fix broken doc links and doc string parameter mismatches.\u003c/li\u003e\n\u003cli\u003epatch: Update dependencies to latest versions (dependency sweep).\u003c/li\u003e\n\u003cli\u003epatch: Update dependencies to latest versions (dependency sweep).\u003c/li\u003e\n\u003cli\u003epatch: Update dependencies to latest versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/graphrag/commit/769542fbf1d8e5b4c6a8677fefc34621c87894c5\"\u003e\u003ccode\u003e769542f\u003c/code\u003e\u003c/a\u003e Release v3.2.0 (\u003ca href=\"https://redirect.github.com/microsoft/graphrag/issues/2572\"\u003e#2572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/graphrag/commit/150c697f6d6500280bd80c956565b6fa563bc073\"\u003e\u003ccode\u003e150c697\u003c/code\u003e\u003c/a\u003e new cache implementation (\u003ca href=\"https://redirect.github.com/microsoft/graphrag/issues/2570\"\u003e#2570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/graphrag/commit/82b87bf0434fc69f857663280e2c36a1c48e52fe\"\u003e\u003ccode\u003e82b87bf\u003c/code\u003e\u003c/a\u003e Update dependencies sweep (\u003ca href=\"https://redirect.github.com/microsoft/graphrag/issues/2563\"\u003e#2563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/graphrag/commit/1877d7256b4db4d66f64c491a9b559ef2470d338\"\u003e\u003ccode\u003e1877d72\u003c/code\u003e\u003c/a\u003e Update dependencies to latest versions (dependency sweep) (\u003ca href=\"https://redirect.github.com/microsoft/graphrag/issues/2558\"\u003e#2558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/graphrag/commit/f40e9a26ce62ba0b3fef8837d24aafdcc6e6c704\"\u003e\u003ccode\u003ef40e9a2\u003c/code\u003e\u003c/a\u003e Cleanup (\u003ca href=\"https://redirect.github.com/microsoft/graphrag/issues/2528\"\u003e#2528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/graphrag/commit/a445be73645f47fd5fe601987f89dfd3219a2a86\"\u003e\u003ccode\u003ea445be7\u003c/code\u003e\u003c/a\u003e Update dependencies to latest versions (dependency sweep) (\u003ca href=\"https://redirect.github.com/microsoft/graphrag/issues/2523\"\u003e#2523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/graphrag/commit/6dad6d2b059589624035714d8dcfde94ecc0a5fb\"\u003e\u003ccode\u003e6dad6d2\u003c/code\u003e\u003c/a\u003e Release v3.1.2 (\u003ca href=\"https://redirect.github.com/microsoft/graphrag/issues/2519\"\u003e#2519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/graphrag/compare/v3.1.2...v3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 3.0.5 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.5...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.14.0 to 2.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.15.0\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/2.15.0/CHANGELOG.rst\"\u003e2.15.0 changelog\u003c/a\u003e for complete release details.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.15.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.14.0...2.15.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eSecurity\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Wrap recursion errors from deeply nested JWT payloads in ``DecodeError``\n  instead of exposing a raw ``RecursionError``.\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Support Python 3.15 by @kytta in `[#1202](https://github.com/jpadilla/pyjwt/issues/1202) \u0026amp;lt;https://github.com/jpadilla/pyjwt/pull/1202\u0026amp;gt;`__\n\nChanged\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJWKSetCache\u003c/code\u003e now stores the parsed \u003ccode\u003ePyJWKSet\u003c/code\u003e rather than the raw JWKS\npayload, so a cache hit no longer re-parses every key. \u003ccode\u003eJWKSetCache.put()\u003c/code\u003e\naccepts either form and raises \u003ccode\u003ePyJWKSetError\u003c/code\u003e for anything else. As a\nresult, \u003ccode\u003ePyJWKClient.get_jwk_set()\u003c/code\u003e returns the same \u003ccode\u003ePyJWKSet\u003c/code\u003e instance\nfor as long as it stays cached, rather than a freshly built one per call in\n\u003ccode\u003e[#1208](https://github.com/jpadilla/pyjwt/issues/1208) \u0026amp;lt;https://github.com/jpadilla/pyjwt/pull/1208\u0026amp;gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePyJWKClient.fetch_data()\u003c/code\u003e now raises\n\u003ccode\u003ePyJWKClientError(\u0026amp;quot;The JWKS endpoint did not return a JSON object\u0026amp;quot;)\u003c/code\u003e when\nthe endpoint response is not a JSON object, instead of returning it for\n\u003ccode\u003eget_jwk_set()\u003c/code\u003e to reject. Callers reaching the JWKS through\n\u003ccode\u003eget_jwk_set()\u003c/code\u003e see the same error as before in\n\u003ccode\u003e[#1208](https://github.com/jpadilla/pyjwt/issues/1208) \u0026amp;lt;https://github.com/jpadilla/pyjwt/pull/1208\u0026amp;gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Return cached ``PyJWKSet`` values from ``PyJWKClient.get_jwk_set()`` instead\n  of raising ``PyJWKClientError(\u0026amp;quot;The JWKS endpoint did not return a JSON\n  object\u0026amp;quot;)``. ``JWKSetCache.put()`` documents ``PyJWKSet`` as the cached value,\n  so callers pre-populating the cache to avoid a network round-trip could not\n  read it back in `[#914](https://github.com/jpadilla/pyjwt/issues/914) \u0026amp;lt;https://github.com/jpadilla/pyjwt/issues/914\u0026amp;gt;`__ and\n  `[#1208](https://github.com/jpadilla/pyjwt/issues/1208) \u0026amp;lt;https://github.com/jpadilla/pyjwt/pull/1208\u0026amp;gt;`__\n- ``PyJWKClient.get_jwk_set()`` now caches the key set it returns, so a\n  ``fetch_data()`` override that filters or transforms the JWKS is no longer\n  undone by the next cache hit in\n  `[#1208](https://github.com/jpadilla/pyjwt/issues/1208) \u0026amp;lt;https://github.com/jpadilla/pyjwt/pull/1208\u0026amp;gt;`__\n- Raise the documented ``PyJWTError`` subclass instead of leaking a\n  ``TypeError`` when the ``exp``, ``nbf``, or ``iat`` claim decodes to a\n  non-numeric, non-string value such as a list, dict, or ``null``.\n- Reject OKP JWK private keys when their public ``x`` component does not\n  match the private ``d`` component.\n- Treat malformed JWK Set members as unusable keys rather than letting\n  ``AttributeError`` or ``TypeError`` escape ``PyJWKSet``. A member that is not\n\u0026amp;lt;/tr\u0026amp;gt;\u0026amp;lt;/table\u0026amp;gt; \n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;p\u0026gt;... (truncated)\u0026lt;/p\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/1d41a6478e1562e68ff667fcd703356acf085f68\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1d41a64\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; chore: prepare 2.15.0 release\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/9bc06658f875b9b40091539140bbbdc4639161c3\u0026quot;\u0026gt;\u0026lt;code\u0026gt;9bc0665\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix: make recursive payload tests deterministic\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/5fde08a6cf906aa7698de2d6391d88b73006b17b\u0026quot;\u0026gt;\u0026lt;code\u0026gt;5fde08a\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix: normalize recursive JWT payload errors\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/171062d2d734315272a901100aa4b109f2fc3c19\u0026quot;\u0026gt;\u0026lt;code\u0026gt;171062d\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; utils: mention bytes in force_bytes type error (\u0026lt;a href=\u0026quot;https://redirect.github.com/jpadilla/pyjwt/issues/1173\u0026quot;\u0026gt;#1173\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/c9d4d5375bf464ef363506fed9eb6e7f33217ab6\u0026quot;\u0026gt;\u0026lt;code\u0026gt;c9d4d53\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; docs/conf: drop duplicate 'and' from read() docstring (\u0026lt;a href=\u0026quot;https://redirect.github.com/jpadilla/pyjwt/issues/1174\u0026quot;\u0026gt;#1174\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/2763752196113e1473b0ed7905aa6034aedfbe53\u0026quot;\u0026gt;\u0026lt;code\u0026gt;2763752\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Add support for Python 3.15 (\u0026lt;a href=\u0026quot;https://redirect.github.com/jpadilla/pyjwt/issues/1202\u0026quot;\u0026gt;#1202\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/4adcd02722f5011c60079d3978dfc167b9a8eaa5\u0026quot;\u0026gt;\u0026lt;code\u0026gt;4adcd02\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Catch http.client.HTTPException in PyJWKClient.fetch_data (\u0026lt;a href=\u0026quot;https://redirect.github.com/jpadilla/pyjwt/issues/1201\u0026quot;\u0026gt;#1201\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/9e501d993b4d3e7dba14bdb1722b1d993ac75097\u0026quot;\u0026gt;\u0026lt;code\u0026gt;9e501d9\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix: correct docstring typo in _validate_jti (\u0026lt;a href=\u0026quot;https://redirect.github.com/jpadilla/pyjwt/issues/1179\u0026quot;\u0026gt;#1179\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/4047c44d51950ffda15f40054508d3f17c43b1e2\u0026quot;\u0026gt;\u0026lt;code\u0026gt;4047c44\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; docs: clarify JWK certificate member handling (\u0026lt;a href=\u0026quot;https://redirect.github.com/jpadilla/pyjwt/issues/1212\u0026quot;\u0026gt;#1212\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/f4e2b59f543cc82d46d9d69922bba59e804216b9\u0026quot;\u0026gt;\u0026lt;code\u0026gt;f4e2b59\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; [pre-commit.ci] pre-commit autoupdate (\u0026lt;a href=\u0026quot;https://redirect.github.com/jpadilla/pyjwt/issues/1210\u0026quot;\u0026gt;#1210\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/compare/2.14.0...2.15.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `starlette` from 1.6.0 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.7.0\u003c/h2\u003e\n\u003cp\u003eThis release adds experimental OpenTelemetry tracing, HTTP \u003ccode\u003eQUERY\u003c/code\u003e support, and response trailers in \u003ccode\u003eTestClient\u003c/code\u003e. Starlette now requires AnyIO 4.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\n\u003ccode\u003eOpenTelemetryMiddleware\u003c/code\u003e is experimental. Its API and emitted telemetry may change in minor releases without a deprecation period.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental \u003ccode\u003eOpenTelemetryMiddleware\u003c/code\u003e for HTTP server spans, with URL exclusions and custom tracer providers \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3438\"\u003e#3438\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3463\"\u003e#3463\u003c/a\u003e, and \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3520\"\u003e#3520\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eExpose the matched route through \u003ccode\u003escope[\u0026quot;route\u0026quot;]\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3438\"\u003e#3438\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport the \u003ccode\u003eQUERY\u003c/code\u003e HTTP method in \u003ccode\u003eHTTPEndpoint\u003c/code\u003e, CORS, and OpenAPI 3.2 schema generation \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3489\"\u003e#3489\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCapture HTTP response trailers in \u003ccode\u003eTestClient\u003c/code\u003e and expose them through \u003ccode\u003eresponse.extensions[\u0026quot;http.response.trailers\u0026quot;]\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3563\"\u003e#3563\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport partitioned cookies in \u003ccode\u003eSessionMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3510\"\u003e#3510\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epartitioned\u003c/code\u003e to \u003ccode\u003eResponse.delete_cookie()\u003c/code\u003e on Python 3.14 and later \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3376\"\u003e#3376\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport IPv6 hosts in \u003ccode\u003eTrustedHostMiddleware\u003c/code\u003e and \u003ccode\u003eTestClient\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3471\"\u003e#3471\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport Python 3.15 \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3508\"\u003e#3508\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire \u003ccode\u003eanyio\u0026gt;=4.0.0,\u0026lt;5\u003c/code\u003e, dropping support for AnyIO 3 \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3512\"\u003e#3512\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eWebSocketDisconnected\u003c/code\u003e, a \u003ccode\u003eRuntimeError\u003c/code\u003e subclass, for disconnected WebSocket operations \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2767\"\u003e#2767\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eCollection[str]\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e configuration annotations, including sets and frozensets \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3518\"\u003e#3518\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun background tasks only after the response is sent when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3476\"\u003e#3476\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003e400\u003c/code\u003e for invalid multipart parser input \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3492\"\u003e#3492\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003eVary: Origin\u003c/code\u003e on all normal CORS responses and vary preflight responses by all request headers that affect them \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3516\"\u003e#3516\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3517\"\u003e#3517\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle malformed \u003ccode\u003eHost\u003c/code\u003e headers and IPv6 authorities consistently across URL construction, host routing, and redirect middleware \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3472\"\u003e#3472\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIgnore \u003ccode\u003eRange\u003c/code\u003e headers when \u003ccode\u003eFileResponse\u003c/code\u003e has a status other than \u003ccode\u003e200\u003c/code\u003e, preserving its status and full body \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3568\"\u003e#3568\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle standalone \u003ccode\u003eIf-None-Match: *\u003c/code\u003e in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3201\"\u003e#3201\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReject WebSocket requests to \u003ccode\u003eStaticFiles\u003c/code\u003e without raising an assertion error \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3532\"\u003e#3532\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePersist session mutations made with \u003ccode\u003epopitem()\u003c/code\u003e and \u003ccode\u003e|=\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3436\"\u003e#3436\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle empty and absent payloads in \u003ccode\u003eWebSocketEndpoint.decode()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3372\"\u003e#3372\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eidentity\u003c/code\u003e on \u003ccode\u003eSimpleUser\u003c/code\u003e and \u003ccode\u003eUnauthenticatedUser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3271\"\u003e#3271\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eHTTPException\u003c/code\u003e to use non-standard status codes without an explicit \u003ccode\u003edetail\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3545\"\u003e#3545\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAvoid deprecated AnyIO imports in \u003ccode\u003eTestClient\u003c/code\u003e and add explicit imports in \u003ccode\u003eWSGIMiddleware\u003c/code\u003e for AnyIO 4.15 compatibility \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3498\"\u003e#3498\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3501\"\u003e#3501\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eOffload debug traceback rendering to a worker thread in \u003ccode\u003eServerErrorMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2858\"\u003e#2858\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/starlette/compare/1.6.0...1.7.0\"\u003e1.6.0...1.7.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.0 (September 23, 2026)\u003c/h2\u003e\n\u003cp\u003eThis release adds experimental OpenTelemetry tracing and requires AnyIO 4.\u003c/p\u003e\n\u003cp\u003e!!! warning \u0026quot;OpenTelemetryMiddleware is experimental\u0026quot;\nIts API and emitted telemetry may change in minor releases without a deprecation period\n\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3574\"\u003e#3574\u003c/a\u003e.\u003c/p\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental \u003ccode\u003eOpenTelemetryMiddleware\u003c/code\u003e for HTTP server spans, with URL exclusions and custom tracer providers \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3438\"\u003e#3438\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3463\"\u003e#3463\u003c/a\u003e, and \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3520\"\u003e#3520\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eExpose the matched route through \u003ccode\u003escope[\u0026quot;route\u0026quot;]\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3438\"\u003e#3438\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport the \u003ccode\u003eQUERY\u003c/code\u003e HTTP method in \u003ccode\u003eHTTPEndpoint\u003c/code\u003e, CORS, and OpenAPI 3.2 schema generation \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3489\"\u003e#3489\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCapture HTTP response trailers in \u003ccode\u003eTestClient\u003c/code\u003e and expose them through \u003ccode\u003eresponse.extensions[\u0026quot;http.response.trailers\u0026quot;]\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3563\"\u003e#3563\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport partitioned cookies in \u003ccode\u003eSessionMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3510\"\u003e#3510\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epartitioned\u003c/code\u003e to \u003ccode\u003eResponse.delete_cookie()\u003c/code\u003e on Python 3.14 and later \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3376\"\u003e#3376\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport IPv6 hosts in \u003ccode\u003eTrustedHostMiddleware\u003c/code\u003e and \u003ccode\u003eTestClient\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3471\"\u003e#3471\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport Python 3.15 \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3508\"\u003e#3508\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRequire \u003ccode\u003eanyio\u0026gt;=4.0.0,\u0026lt;5\u003c/code\u003e, dropping support for AnyIO 3 \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3512\"\u003e#3512\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eWebSocketDisconnected\u003c/code\u003e, a \u003ccode\u003eRuntimeError\u003c/code\u003e subclass, for disconnected WebSocket operations \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2767\"\u003e#2767\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eCollection[str]\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e configuration annotations, including sets and frozensets \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3518\"\u003e#3518\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRun background tasks only after the response is sent when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3476\"\u003e#3476\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003e400\u003c/code\u003e for invalid multipart parser input \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3492\"\u003e#3492\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003eVary: Origin\u003c/code\u003e on all normal CORS responses and vary preflight responses by all request headers that affect them \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3516\"\u003e#3516\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3517\"\u003e#3517\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle malformed \u003ccode\u003eHost\u003c/code\u003e headers and IPv6 authorities consistently across URL construction, host routing, and redirect middleware \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3472\"\u003e#3472\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIgnore \u003ccode\u003eRange\u003c/code\u003e headers when \u003ccode\u003eFileResponse\u003c/code\u003e has a status other than \u003ccode\u003e200\u003c/code\u003e, preserving its status and full body \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3568\"\u003e#3568\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle standalone \u003ccode\u003eIf-None-Match: *\u003c/code\u003e in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3201\"\u003e#3201\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReject WebSocket requests to \u003ccode\u003eStaticFiles\u003c/code\u003e without raising an assertion error \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3532\"\u003e#3532\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePersist session mutations made with \u003ccode\u003epopitem()\u003c/code\u003e and \u003ccode\u003e|=\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3436\"\u003e#3436\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle empty and absent payloads in \u003ccode\u003eWebSocketEndpoint.decode()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3372\"\u003e#3372\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eidentity\u003c/code\u003e on \u003ccode\u003eSimpleUser\u003c/code\u003e and \u003ccode\u003eUnauthenticatedUser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3271\"\u003e#3271\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eHTTPException\u003c/code\u003e to use non-standard status codes without an explicit \u003ccode\u003edetail\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3545\"\u003e#3545\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAvoid deprecated AnyIO imports in \u003ccode\u003eTestClient\u003c/code\u003e and add explicit imports in \u003ccode\u003eWSGIMiddleware\u003c/code\u003e for AnyIO 4.15 compatibility \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3498\"\u003e#3498\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3501\"\u003e#3501\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eOffload debug traceback rendering to a worker thread in \u003ccode\u003eServerErrorMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2858\"\u003e#2858\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/2269e9a08c1edd3dfdea865710f40f84c857b623\"\u003e\u003ccode\u003e2269e9a\u003c/code\u003e\u003c/a\u003e Version 1.7.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3575\"\u003e#3575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4fe55eb2649e74fb01472bad9a1bc54fc3495904\"\u003e\u003ccode\u003e4fe55eb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eFileResponse\u003c/code\u003e status for range requests (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3568\"\u003e#3568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/1f08daf1627c866a4244418ea6da673d272fc8bb\"\u003e\u003ccode\u003e1f08daf\u003c/code\u003e\u003c/a\u003e Mark OpenTelemetryMiddleware as experimental (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3574\"\u003e#3574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/57de5fa9c2a98089a78d32d560e9b23e62560d5f\"\u003e\u003ccode\u003e57de5fa\u003c/code\u003e\u003c/a\u003e Support HTTP response trailers in TestClient (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3563\"\u003e#3563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/03f12b7fcf0a3e21a8da648ca0900c79472e9efe\"\u003e\u003ccode\u003e03f12b7\u003c/code\u003e\u003c/a\u003e Allow HTTPException to use non-standard status codes (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3545\"\u003e#3545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/76fd00f1e293990ea41555946a6b0f58901eaca1\"\u003e\u003ccode\u003e76fd00f\u003c/code\u003e\u003c/a\u003e Reject \u003ccode\u003eWebSocket\u003c/code\u003e requests to \u003ccode\u003eStaticFiles\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3532\"\u003e#3532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/f03f65c2f98c592773d691b4d309c68b83e568ef\"\u003e\u003ccode\u003ef03f65c\u003c/code\u003e\u003c/a\u003e docs: fix 'its not available' and 'This ensure' wording (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3526\"\u003e#3526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/485aca4e797d41849743cf73d5adcfd699695467\"\u003e\u003ccode\u003e485aca4\u003c/code\u003e\u003c/a\u003e docs: the test client is built on httpx2, not httpx (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3525\"\u003e#3525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/fd662b17b9cc41dca32a03509305619643f2dd61\"\u003e\u003ccode\u003efd662b1\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003eidentity\u003c/code\u003e on \u003ccode\u003eSimpleUser\u003c/code\u003e and \u003ccode\u003eUnauthenticatedUser\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3271\"\u003e#3271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/41db6a707f2636526847dbda0e5610e732e6b4fc\"\u003e\u003ccode\u003e41db6a7\u003c/code\u003e\u003c/a\u003e Stabilize CodSpeed upload buffer allocations (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3524\"\u003e#3524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/1.6.0...1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.16.7 to 0.16.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.9\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positives for overloaded division (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28309\"\u003e#28309\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Avoid false positives for calls with keyword arguments (\u003ccode\u003eB009\u003c/code\u003e, \u003ccode\u003eB010\u003c/code\u003e, \u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28776\"\u003e#28776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow lazy imports to be used in deferred annotations (\u003ccode\u003eTID255\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28767\"\u003e#28767\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LibCST-based fixes for Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28616\"\u003e#28616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Mention stubs in the diagnostic message (\u003ccode\u003ePYI002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28542\"\u003e#28542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix horizontal overflow on the rules documentation page (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28699\"\u003e#28699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate rules table with category information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28651\"\u003e#28651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Clarify that \u003ccode\u003eANN401\u003c/code\u003e checks return types in addition to arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28334\"\u003e#28334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Document type-checker interaction (\u003ccode\u003eB010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28509\"\u003e#28509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27794\"\u003e#27794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Mention related isort settings (\u003ccode\u003eRUF022\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28719\"\u003e#28719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qinpei-dev\"\u003e\u003ccode\u003e@​qinpei-dev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanjayrohith\"\u003e\u003ccode\u003e@​sanjayrohith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webdevsamran\"\u003e\u003ccode\u003e@​webdevsamran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaniebot\"\u003e\u003ccode\u003e@​zaniebot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spaceone\"\u003e\u003ccode\u003e@​spaceone\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IbrahimKhan12\"\u003e\u003ccode\u003e@​IbrahimKhan12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devtechedge\"\u003e\u003ccode\u003e@​devtechedge\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GruffElixir\"\u003e\u003ccode\u003e@​GruffElixir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.16.9\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.9/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.9\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positives for overloaded division (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28309\"\u003e#28309\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Avoid false positives for calls with keyword arguments (\u003ccode\u003eB009\u003c/code\u003e, \u003ccode\u003eB010\u003c/code\u003e, \u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28776\"\u003e#28776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow lazy imports to be used in deferred annotations (\u003ccode\u003eTID255\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28767\"\u003e#28767\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LibCST-based fixes for Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28616\"\u003e#28616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Mention stubs in the diagnostic message (\u003ccode\u003ePYI002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28542\"\u003e#28542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix horizontal overflow on the rules documentation page (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28699\"\u003e#28699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate rules table with category information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28651\"\u003e#28651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Clarify that \u003ccode\u003eANN401\u003c/code\u003e checks return types in addition to arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28334\"\u003e#28334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Document type-checker interaction (\u003ccode\u003eB010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28509\"\u003e#28509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27794\"\u003e#27794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Mention related isort settings (\u003ccode\u003eRUF022\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28719\"\u003e#28719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qinpei-dev\"\u003e\u003ccode\u003e@​qinpei-dev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanjayrohith\"\u003e\u003ccode\u003e@​sanjayrohith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webdevsamran\"\u003e\u003ccode\u003e@​webdevsamran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaniebot\"\u003e\u003ccode\u003e@​zaniebot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spaceone\"\u003e\u003ccode\u003e@​spaceone\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IbrahimKhan12\"\u003e\u003ccode\u003e@​IbrahimKhan12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devtechedge\"\u003e\u003ccode\u003e@​devtechedge\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GruffElixir\"\u003e\u003ccode\u003e@​GruffElixir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.16.8\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-16.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVisit functional \u003ccode\u003eTypedDict\u003c/code\u003e keyword arguments correctly (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28584\"\u003e#28584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Detect nested \u003ccode\u003easync with\u003c/code\u003e under sync parent (\u003ccode\u003eSIM117\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27821\"\u003e#27821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve operand order in \u003ccode\u003eSIM109\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27824\"\u003e#27824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0be08a206f9c3180afd3e93bcc792ed5cb1f4db1\"\u003e\u003ccode\u003e0be08a2\u003c/code\u003e\u003c/a\u003e Bump version to 0.16.9 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28882\"\u003e#28882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b4920b72b354e7c715ab861ae23458874683bb02\"\u003e\u003ccode\u003eb4920b7\u003c/code\u003e\u003c/a\u003e Rename \u003ccode\u003eruff_cli\u003c/code\u003e to \u003ccode\u003eruff_command_line\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28881\"\u003e#28881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/47c751b95908a4d1f95f9ef8723036aae9da0b18\"\u003e\u003ccode\u003e47c751b\u003c/code\u003e\u003c/a\u003e Update dependency astral-sh/uv to v0.12.18 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28880\"\u003e#28880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8c244e56a1aeac31c26d2371ef26588e0632235c\"\u003e\u003ccode\u003e8c244e5\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5edf5a1d0a84663079e46983216059f06acea87d\"\u003e\u003ccode\u003e5edf5a1\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003etarget\u003c/code\u003e form in \u003ccode\u003erooster.version_files\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28876\"\u003e#28876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/915bb2b4bf9ae7eee47cf55646bbfebae254a23b\"\u003e\u003ccode\u003e915bb2b\u003c/code\u003e\u003c/a\u003e [ty] Prefer existing @ paths over response files in Ruff and ty (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28877\"\u003e#28877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4710e1aa962b13720cf64aa84eb279c5333896d7\"\u003e\u003ccode\u003e4710e1a\u003c/code\u003e\u003c/a\u003e ci(github): update version number in placeholder of issue template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28871\"\u003e#28871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eedfc62a75bf1ba86d48959b00eea75ae87eadca\"\u003e\u003ccode\u003eeedfc62\u003c/code\u003e\u003c/a\u003e [ty] Propagate outer type context through cast calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28855\"\u003e#28855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ceaa6a00830e1e350b8a23977a1a10ac467920a1\"\u003e\u003ccode\u003eceaa6a0\u003c/code\u003e\u003c/a\u003e [ty] Contain rendered code within Markdown fences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28869\"\u003e#28869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dba0f30615424b94f94a174bba6ce6cce4bf11ff\"\u003e\u003ccode\u003edba0f30\u003c/code\u003e\u003c/a\u003e authorize ruff-pre-commit dispatch via OIDC (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28867\"\u003e#28867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.16.7...0.16.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/kehao-playground/graphrag-web-ui/pull/94","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kehao-playground%2Fgraphrag-web-ui/issues/94","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/94/packages"}],"issue_packages":[{"old_version":"2.3.3","new_version":"3.0.6","update_type":"major","path":null,"pr_created_at":"2026-10-06T08:10:33.000Z","version_change":"2.3.3 → 3.0.6","issue":{"uuid":"5725164001","node_id":"PR_kwDOQ-qtOc8AAAABG3qxvA","number":277,"state":"open","title":"chore(deps): bump the python-runtime group across 1 directory with 40 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-06T08:10:33.000Z","updated_at":"2026-10-06T08:10:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-runtime","update_count":40,"packages":[{"name":"typer","old_version":"0.25.1","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"textual","old_version":"7.5.0","new_version":"8.2.8","repository_url":"https://github.com/Textualize/textual"},{"name":"dynaconf","old_version":"3.2.13","new_version":"3.3.5","repository_url":"https://github.com/dynaconf/dynaconf"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"python-dotenv","old_version":"1.2.2","new_version":"1.2.4","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"numpy","old_version":"2.3.5","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"sqlalchemy","old_version":"2.0.45","new_version":"2.1.3","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"tenacity","old_version":"9.1.2","new_version":"9.1.4","repository_url":"https://github.com/jd/tenacity"},{"name":"networkx","old_version":"3.6.1","new_version":"3.7","repository_url":"https://github.com/networkx/networkx"},{"name":"pyrate-limiter","old_version":"3.9.0","new_version":"4.5.0","repository_url":"https://github.com/vutran1710/PyrateLimiter"},{"name":"deepdiff","old_version":"8.6.2","new_version":"9.1.0","repository_url":"https://github.com/qlustered/deepdiff"},{"name":"chromadb","old_version":"1.5.5","new_version":"1.5.9","repository_url":"https://github.com/chroma-core/chroma"},{"name":"fsspec","old_version":"2026.6.0","new_version":"2026.9.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"beautifulsoup4","old_version":"4.14.3","new_version":"4.15.0"},{"name":"pytest","old_version":"9.0.3","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-benchmark","old_version":"4.0.0","new_version":"5.3.0","repository_url":"https://github.com/ionelmc/pytest-benchmark"},{"name":"hypothesis","old_version":"6.152.4","new_version":"6.168.3","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"markdown-it-py","old_version":"4.0.0","new_version":"4.2.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"mypy","old_version":"1.20.2","new_version":"2.4.0","repository_url":"https://github.com/python/mypy"},{"name":"ruff","old_version":"0.15.4","new_version":"0.16.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"4.6.0","new_version":"4.6.2","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pandas-stubs","old_version":"2.3.3.251219","new_version":"2.3.3.260113","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"types-networkx","old_version":"3.6.1.20251220","new_version":"3.6.1.20260911","repository_url":"https://github.com/python/typeshed"},{"name":"types-pyyaml","old_version":"6.0.12.20250915","new_version":"6.0.12.20260906","repository_url":"https://github.com/python/typeshed"},{"name":"types-jsonschema","old_version":"4.26.0.20260408","new_version":"4.26.0.20260518","repository_url":"https://github.com/python/typeshed"},{"name":"mutmut","old_version":"2.5.1","new_version":"3.8.0","repository_url":"https://github.com/boxed/mutmut"},{"name":"errorworks","old_version":"0.1.3","new_version":"0.2.0","repository_url":"https://github.com/johnm-dta/errorworks"},{"name":"starlette","old_version":"1.3.1","new_version":"1.7.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"psycopg2-binary","old_version":"2.9.12","new_version":"2.9.13","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"litellm","old_version":"1.102.0","new_version":"1.103.2","repository_url":"https://github.com/BerriAI/litellm"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.31.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-identity","old_version":"1.25.1","new_version":"1.26.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-keyvault-secrets","old_version":"4.11.0","new_version":"4.11.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"boto3","old_version":"1.43.46","new_version":"1.43.108","repository_url":"https://github.com/boto/boto3"},{"name":"cryptography","old_version":"50.0.1","new_version":"50.0.2","repository_url":"https://github.com/pyca/cryptography"},{"name":"websockets","old_version":"14.2","new_version":"17.1","repository_url":"https://github.com/python-websockets/websockets"},{"name":"bcrypt","old_version":"4.3.0","new_version":"5.0.0","repository_url":"https://github.com/pyca/bcrypt"},{"name":"prometheus-client","old_version":"0.25.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-runtime group with 40 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [typer](https://github.com/fastapi/typer) | `0.25.1` | `0.27.2` |\n| [textual](https://github.com/Textualize/textual) | `7.5.0` | `8.2.8` |\n| [dynaconf](https://github.com/dynaconf/dynaconf) | `3.2.13` | `3.3.5` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.2` | `1.2.4` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.5` | `2.5.3` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.6` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.45` | `2.1.3` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [networkx](https://github.com/networkx/networkx) | `3.6.1` | `3.7` |\n| [pyrate-limiter](https://github.com/vutran1710/PyrateLimiter) | `3.9.0` | `4.5.0` |\n| [deepdiff](https://github.com/qlustered/deepdiff) | `8.6.2` | `9.1.0` |\n| [chromadb](https://github.com/chroma-core/chroma) | `1.5.5` | `1.5.9` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.6.0` | `2026.9.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.3` | `4.15.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `4.0.0` | `5.3.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.152.4` | `6.168.3` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `4.0.0` | `4.2.0` |\n| [mypy](https://github.com/python/mypy) | `1.20.2` | `2.4.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.4` | `0.16.10` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.6.0` | `4.6.2` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.3.251219` | `2.3.3.260113` |\n| [types-networkx](https://github.com/python/typeshed) | `3.6.1.20251220` | `3.6.1.20260911` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20250915` | `6.0.12.20260906` |\n| [types-jsonschema](https://github.com/python/typeshed) | `4.26.0.20260408` | `4.26.0.20260518` |\n| [mutmut](https://github.com/boxed/mutmut) | `2.5.1` | `3.8.0` |\n| [errorworks](https://github.com/johnm-dta/errorworks) | `0.1.3` | `0.2.0` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.7.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.12` | `2.9.13` |\n| [litellm](https://github.com/BerriAI/litellm) | `1.102.0` | `1.103.2` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.31.0` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.1` | `1.26.0` |\n| [azure-keyvault-secrets](https://github.com/Azure/azure-sdk-for-python) | `4.11.0` | `4.11.3` |\n| [boto3](https://github.com/boto/boto3) | `1.43.46` | `1.43.108` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.1` | `50.0.2` |\n| [websockets](https://github.com/python-websockets/websockets) | `14.2` | `17.1` |\n| [bcrypt](https://github.com/pyca/bcrypt) | `4.3.0` | `5.0.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.25.0` | `0.26.0` |\n\n\nUpdates `typer` from 0.25.1 to 0.27.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/releases\"\u003etyper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.27.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Create \u003ccode\u003eexceptions\u003c/code\u003e module and \u003ccode\u003eTyperException\u003c/code\u003e base class. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1942\"\u003e#1942\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix showing \u003ccode\u003efast\u003c/code\u003e button as external link in animated terminals in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1912\"\u003e#1912\u003c/a\u003e by \u003ca href=\"https://github.com/phalberg\"\u003e\u003ccode\u003e@​phalberg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Bump setup-uv action to 10.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1940\"\u003e#1940\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Migrate automatic labels to Latest Changes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1931\"\u003e#1931\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove legacy label check. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1930\"\u003e#1930\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔐 Use PR Submit for pull requests. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1928\"\u003e#1928\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Use GitHub CLI for Git authentication. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1927\"\u003e#1927\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Use PR Push commit identity. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1926\"\u003e#1926\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒 Replace pre-commit PAT with PR Push. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1923\"\u003e#1923\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove Zensical docs cache. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1922\"\u003e#1922\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove the old Latest Changes workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1921\"\u003e#1921\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group with 6 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1917\"\u003e#1917\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.21.3 to 11.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1910\"\u003e#1910\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group with 5 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1916\"\u003e#1916\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Make \u003ccode\u003eepilog\u003c/code\u003e formatting consistent with other parts of the help string. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1405\"\u003e#1405\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add Library Skills documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1906\"\u003e#1906\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Prevent scroll-to-top on restart/fast buttons in the documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1904\"\u003e#1904\u003c/a\u003e by \u003ca href=\"https://github.com/phalberg\"\u003e\u003ccode\u003e@​phalberg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Recommend uv projects by default in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1903\"\u003e#1903\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update help docs. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1902\"\u003e#1902\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade latest-changes to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1909\"\u003e#1909\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.27.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e💥 Update metavar printing. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1863\"\u003e#1863\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 5 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1896\"\u003e#1896\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Bump ty to 0.0.53. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1877\"\u003e#1877\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group across 1 directory with 4 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1897\"\u003e#1897\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/blob/master/docs/release-notes.md\"\u003etyper's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.27.2 (2026-08-28)\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Create \u003ccode\u003eexceptions\u003c/code\u003e module and \u003ccode\u003eTyperException\u003c/code\u003e base class. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1942\"\u003e#1942\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix showing \u003ccode\u003efast\u003c/code\u003e button as external link in animated terminals in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1912\"\u003e#1912\u003c/a\u003e by \u003ca href=\"https://github.com/phalberg\"\u003e\u003ccode\u003e@​phalberg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Bump setup-uv action to 10.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1940\"\u003e#1940\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Migrate automatic labels to Latest Changes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1931\"\u003e#1931\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove legacy label check. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1930\"\u003e#1930\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔐 Use PR Submit for pull requests. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1928\"\u003e#1928\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Use GitHub CLI for Git authentication. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1927\"\u003e#1927\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Use PR Push commit identity. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1926\"\u003e#1926\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒 Replace pre-commit PAT with PR Push. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1923\"\u003e#1923\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove Zensical docs cache. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1922\"\u003e#1922\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove the old Latest Changes workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1921\"\u003e#1921\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group with 6 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1917\"\u003e#1917\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.21.3 to 11.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1910\"\u003e#1910\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group with 5 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1916\"\u003e#1916\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.27.1 (2026-08-03)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Make \u003ccode\u003eepilog\u003c/code\u003e formatting consistent with other parts of the help string. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1405\"\u003e#1405\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add Library Skills documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1906\"\u003e#1906\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Prevent scroll-to-top on restart/fast buttons in the documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1904\"\u003e#1904\u003c/a\u003e by \u003ca href=\"https://github.com/phalberg\"\u003e\u003ccode\u003e@​phalberg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Recommend uv projects by default in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1903\"\u003e#1903\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update help docs. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1902\"\u003e#1902\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade latest-changes to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1909\"\u003e#1909\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.27.0 (2026-07-15)\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e💥 Update metavar printing. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1863\"\u003e#1863\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/99eb220df7c69a0f14a0b69214042677e0760b9d\"\u003e\u003ccode\u003e99eb220\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.27.2 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1943\"\u003e#1943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/a2c9f1e0afd8bba61b07ba8bc41c9a53b92aafc8\"\u003e\u003ccode\u003ea2c9f1e\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/41dea8f4a0f9285cb225c9f7451beb856a251a07\"\u003e\u003ccode\u003e41dea8f\u003c/code\u003e\u003c/a\u003e ♻️ Create \u003ccode\u003eexceptions\u003c/code\u003e module and \u003ccode\u003eTyperException\u003c/code\u003e base class (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1942\"\u003e#1942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/407d924044759cf9687662cd9638e940664a70f9\"\u003e\u003ccode\u003e407d924\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/41c8224bbdc37d982a636388220af7667f07cd9a\"\u003e\u003ccode\u003e41c8224\u003c/code\u003e\u003c/a\u003e ⬆️ Bump setup-uv action to 10.0.1 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1940\"\u003e#1940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/9a7b2e83f6b62c750d6026b0de9ebf2026a8b8fa\"\u003e\u003ccode\u003e9a7b2e8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/31f30d721335d3f4280855812e439c61b6560376\"\u003e\u003ccode\u003e31f30d7\u003c/code\u003e\u003c/a\u003e 👷 Migrate automatic labels to Latest Changes (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1931\"\u003e#1931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/dacef1b7f7e2fad9136f38da6c1ae8ed333699a8\"\u003e\u003ccode\u003edacef1b\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/42a96390527255c2b50187f5dc5c180c06c26676\"\u003e\u003ccode\u003e42a9639\u003c/code\u003e\u003c/a\u003e 👷 Remove legacy label check (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1930\"\u003e#1930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/361bdd822dd5eafc9c2e3e55ed3a94b746a39aa6\"\u003e\u003ccode\u003e361bdd8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/typer/compare/0.25.1...0.27.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `textual` from 7.5.0 to 8.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/releases\"\u003etextual's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe more super release\u003c/h2\u003e\n\u003cp\u003eFixes for extended key processing, and a crash bug for clicking the screen padding area.\u003c/p\u003e\n\u003ch2\u003e[8.2.8] - 2026-06-30\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed parsing Kitty extended keys with multiple codepoints \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6592\"\u003eTextualize/textual#6592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed crash when clicking in the Screen's padding \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6598\"\u003eTextualize/textual#6598\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esuper+backspace is now an alias for ctrl+u in Input and TextArea \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6594\"\u003eTextualize/textual#6594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ealt+backspace (option+backspace on Mac) has the same effect as ctrl+backspace in Input and TextArea \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6593\"\u003eTextualize/textual#6593\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe more Kitty Release\u003c/h2\u003e\n\u003cp\u003eThis release adds additional support for the Kitty key protocol. Which enables some additional keys on some terminals. Additionally, Textual will report modifier keys as separate key events.\u003c/p\u003e\n\u003cp\u003eAdditionally there are a few more shortcuts to the Text Area.\u003c/p\u003e\n\u003cp\u003eThis release sponsored by Mistral AI. See release notes for detail.\u003c/p\u003e\n\u003ch2\u003e[8.2.7] - 2026-05-19\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Kitty key protocol \u0026quot;Report all keys as escape codes\u0026quot; which enabled alt+backspace on Warp \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6544\"\u003eTextualize/textual#6544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for detecting separate modifier keys for terminals that support the Kitty key protocol \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6544\"\u003eTextualize/textual#6544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eTEXTUAL_DISABLE_KITTY_KEY\u003c/code\u003e env var to disable Kitty key protocol support (debug aid). \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6544\"\u003eTextualize/textual#6544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUndo/redo/copy/cut/paste in TextArea will now work with cmd+ on supported terminals \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6543\"\u003eTextualize/textual#6543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn TextArea, ctrl+u will now delete a newline if the cursor is at the start \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6543\"\u003eTextualize/textual#6543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ein TextArea alt+delete is now bound to delete word right \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6543\"\u003eTextualize/textual#6543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eText opacity applied to an ansi theme will now set the dim attribute if the opacity is \u0026lt; 50% \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6546\"\u003eTextualize/textual#6546\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe more selective release\u003c/h2\u003e\n\u003cp\u003eImproved text select logic. You can select text without first clicking on a content area.\u003c/p\u003e\n\u003cp\u003eMay break snapshots without affecting appearance.\u003c/p\u003e\n\u003ch2\u003e[8.2.6] - 2026-04-13\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed selection to the right of code fence blocks (may break some snapshots)\u003c/li\u003e\n\u003cli\u003eFixed Markdown code fences losing content when switching themes \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6537\"\u003eTextualize/textual#6537\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/blob/main/CHANGELOG.md\"\u003etextual's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[8.2.8] - 2026-06-30\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed parsing Kitty extended keys with multiple codepoints \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6592\"\u003eTextualize/textual#6592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed crash when clicking in the Screen's padding \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6598\"\u003eTextualize/textual#6598\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esuper+backspace is now an alias for ctrl+u in Input and TextArea \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6594\"\u003eTextualize/textual#6594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ealt+backspace (option+backspace on Mac) has the same effect as ctrl+backspace in Input and TextArea \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6593\"\u003eTextualize/textual#6593\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.7] - 2026-05-19\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Kitty key protocol \u0026quot;Report all keys as escape codes\u0026quot; which enabled alt+backspace on Warp \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6544\"\u003eTextualize/textual#6544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for detecting separate modifier keys for terminals that support the Kitty key protocol \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6544\"\u003eTextualize/textual#6544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eTEXTUAL_DISABLE_KITTY_KEY\u003c/code\u003e env var to disable Kitty key protocol support (debug aid). \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6544\"\u003eTextualize/textual#6544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUndo/redo/copy/cut/paste in TextArea will now work with cmd+ on supported terminals \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6543\"\u003eTextualize/textual#6543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn TextArea, ctrl+u will now delete a newline if the cursor is at the start \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6543\"\u003eTextualize/textual#6543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ein TextArea alt+delete is now bound to delete word right \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6543\"\u003eTextualize/textual#6543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eText opacity applied to an ansi theme will now set the dim attribute if the opacity is \u0026lt; 50% \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6546\"\u003eTextualize/textual#6546\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed text opacity with ANSI themes creating RGB colors.  \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6546\"\u003eTextualize/textual#6546\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.6] - 2026-05-13\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed selection to the right of code fence blocks (may break some snapshots)\u003c/li\u003e\n\u003cli\u003eFixed Markdown code fences losing content when switching themes \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6537\"\u003eTextualize/textual#6537\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded ability to select outside of text, so the user doesn't need to be quite so precise \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6523\"\u003eTextualize/textual#6523\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.5] - 2026-04-30\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTwo new themes: \u0026quot;ansi-dark\u0026quot; and \u0026quot;ansi-light\u0026quot; \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6513\"\u003eTextualize/textual#6513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded an \u003ccode\u003eansi\u003c/code\u003e value to themes \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6513\"\u003eTextualize/textual#6513\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/1d99508b928a771b51e1a527319c6b87dcff9e05\"\u003e\u003ccode\u003e1d99508\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6609\"\u003e#6609\u003c/a\u003e from Textualize/bump828\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/ab36ccc741a7f6d1d10b12e1eafd8fedaa515df1\"\u003e\u003ccode\u003eab36ccc\u003c/code\u003e\u003c/a\u003e Bump 8.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/da5b7aa98717289207270ed6c9fcd68c78e54c17\"\u003e\u003ccode\u003eda5b7aa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6598\"\u003e#6598\u003c/a\u003e from Textualize/screen-padding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/77e25d59d8c1e50d1228bbec54f1fdc8f2a3e10b\"\u003e\u003ccode\u003e77e25d5\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/4e592bfc7bf1d0412d0df6dabee40347b523e1b8\"\u003e\u003ccode\u003e4e592bf\u003c/code\u003e\u003c/a\u003e snapshots\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/e02c6cc01461d93141e9ef5dac5a6f029c6ef616\"\u003e\u003ccode\u003ee02c6cc\u003c/code\u003e\u003c/a\u003e fix screen padding crash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/8ce58dc0287e6247f25096c3a1a7349a411cc485\"\u003e\u003ccode\u003e8ce58dc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6592\"\u003e#6592\u003c/a\u003e from Textualize/kitty-codepoints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/fec10399fab3c75f14d36d0faa01589b8ae13408\"\u003e\u003ccode\u003efec1039\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into kitty-codepoints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/aea9d4b5529841757aead36670a8a7f75aa61ed9\"\u003e\u003ccode\u003eaea9d4b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6594\"\u003e#6594\u003c/a\u003e from Textualize/super-backspace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/64c1f8b401889628ec40b8ea1afd67a298773831\"\u003e\u003ccode\u003e64c1f8b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into super-backspace\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/textual/compare/v7.5.0...v8.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dynaconf` from 3.2.13 to 3.3.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dynaconf/dynaconf/releases\"\u003edynaconf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/releases/tag/3.3.5\"\u003e3.3.5\u003c/a\u003e - 2026-08-05\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSkip non-str keys when resolving key casing (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1446\"\u003e#1446\u003c/a\u003e). By \u003ca href=\"https://github.com/shuvamk\"\u003e\u003ccode\u003e@​shuvamk\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGet/get_fresh with dotted keys stop working after first call (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1423\"\u003e#1423\u003c/a\u003e). By \u003ca href=\"https://github.com/pctablet505\"\u003e\u003ccode\u003e@​pctablet505\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix get_history ignoring its history_limit argument (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1424\"\u003e#1424\u003c/a\u003e). By \u003ca href=\"https://github.com/chuenchen309\"\u003e\u003ccode\u003e@​chuenchen309\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression on override precedence with proper dynaconf-token cleanup (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1438\"\u003e#1438\u003c/a\u003e). By \u003ca href=\"https://github.com/pedro-psb\"\u003e\u003ccode\u003e@​pedro-psb\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003cstrong\u003edeepcopy\u003c/strong\u003e to DataDict to match DataList (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1440\"\u003e#1440\u003c/a\u003e). By \u003ca href=\"https://github.com/digitronik\"\u003e\u003ccode\u003e@​digitronik\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded py314 in toxList and up some test packages to full support this (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1443\"\u003e#1443\u003c/a\u003e). By \u003ca href=\"https://github.com/even-even\"\u003e\u003ccode\u003e@​even-even\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.3.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/releases/tag/3.3.4\"\u003e3.3.4\u003c/a\u003e - 2026-07-29\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed error when passing a list values for env on dynaconf init (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1278\"\u003e#1278\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1421\"\u003e#1421\u003c/a\u003e). By \u003ca href=\"https://github.com/apoorvdarshan\"\u003e\u003ccode\u003e@​apoorvdarshan\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eClean up nested dynaconf_merge tokens when parent key is new (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1435\"\u003e#1435\u003c/a\u003e). By \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep sibling keys that share a dotted path leaf name (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1434\"\u003e#1434\u003c/a\u003e). By \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert container subclasses (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1436\"\u003e#1436\u003c/a\u003e). By \u003ca href=\"https://github.com/deepakganesh78\"\u003e\u003ccode\u003e@​deepakganesh78\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDjango early validation integration code bug (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1432\"\u003e#1432\u003c/a\u003e). By \u003ca href=\"https://github.com/pedro-psb\"\u003e\u003ccode\u003e@​pedro-psb\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChore\u003c/h3\u003e\n\u003ch2\u003e3.3.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dynaconf/dynaconf/blob/master/CHANGELOG.md\"\u003edynaconf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/releases/tag/3.3.5\"\u003e3.3.5\u003c/a\u003e - 2026-08-05\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSkip non-str keys when resolving key casing (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1446\"\u003e#1446\u003c/a\u003e). By \u003ca href=\"https://github.com/shuvamk\"\u003e\u003ccode\u003e@​shuvamk\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGet/get_fresh with dotted keys stop working after first call (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1423\"\u003e#1423\u003c/a\u003e). By \u003ca href=\"https://github.com/pctablet505\"\u003e\u003ccode\u003e@​pctablet505\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix get_history ignoring its history_limit argument (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1424\"\u003e#1424\u003c/a\u003e). By \u003ca href=\"https://github.com/chuenchen309\"\u003e\u003ccode\u003e@​chuenchen309\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression on override precedence with proper dynaconf-token cleanup (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1438\"\u003e#1438\u003c/a\u003e). By \u003ca href=\"https://github.com/pedro-psb\"\u003e\u003ccode\u003e@​pedro-psb\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003cstrong\u003edeepcopy\u003c/strong\u003e to DataDict to match DataList (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1440\"\u003e#1440\u003c/a\u003e). By \u003ca href=\"https://github.com/digitronik\"\u003e\u003ccode\u003e@​digitronik\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded py314 in toxList and up some test packages to full support this (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1443\"\u003e#1443\u003c/a\u003e). By \u003ca href=\"https://github.com/even-even\"\u003e\u003ccode\u003e@​even-even\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/releases/tag/3.3.4\"\u003e3.3.4\u003c/a\u003e - 2026-07-29\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed error when passing a list values for env on dynaconf init (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1278\"\u003e#1278\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1421\"\u003e#1421\u003c/a\u003e). By \u003ca href=\"https://github.com/apoorvdarshan\"\u003e\u003ccode\u003e@​apoorvdarshan\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eClean up nested dynaconf_merge tokens when parent key is new (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1435\"\u003e#1435\u003c/a\u003e). By \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep sibling keys that share a dotted path leaf name (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1434\"\u003e#1434\u003c/a\u003e). By \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert container subclasses (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1436\"\u003e#1436\u003c/a\u003e). By \u003ca href=\"https://github.com/deepakganesh78\"\u003e\u003ccode\u003e@​deepakganesh78\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDjango early validation integration code bug (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1432\"\u003e#1432\u003c/a\u003e). By \u003ca href=\"https://github.com/pedro-psb\"\u003e\u003ccode\u003e@​pedro-psb\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChore\u003c/h3\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/releases/tag/3.3.3\"\u003e3.3.3\u003c/a\u003e - 2026-07-22\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/cad7e12f8310f390706a6d6d0eff4b95c533a885\"\u003e\u003ccode\u003ecad7e12\u003c/code\u003e\u003c/a\u003e Release version 3.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/282f0935fa925fef3d4e63aab88defe50b6c49d1\"\u003e\u003ccode\u003e282f093\u003c/code\u003e\u003c/a\u003e fix: skip non-str keys when resolving key casing (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/0e26bd6d69fe22ddc17f48fff5b2046d4403b3fa\"\u003e\u003ccode\u003e0e26bd6\u003c/code\u003e\u003c/a\u003e fix: get/get_fresh with dotted keys stop working after first call (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1423\"\u003e#1423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/833533d1a3b1557016a0cf190be0b021d92795cb\"\u003e\u003ccode\u003e833533d\u003c/code\u003e\u003c/a\u003e chore: Added py314 in toxList and up some test packages to full support this ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/1654b0d0de4853485751f1f74f6aa01cd68c9f8a\"\u003e\u003ccode\u003e1654b0d\u003c/code\u003e\u003c/a\u003e fix: Fix get_history ignoring its history_limit argument (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/c3e65779f5fd7082130cb11391712b0b7f1ce85b\"\u003e\u003ccode\u003ec3e6577\u003c/code\u003e\u003c/a\u003e test: support django-debug-toolbar 4.4+ (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1428\"\u003e#1428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/3674951ba030d4b5613d72d46fe245f99c7eca45\"\u003e\u003ccode\u003e3674951\u003c/code\u003e\u003c/a\u003e fix: Fix regression on override precedence with proper dynaconf-token cleanup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/3c0cb3cbe9cfca12f3ed5932135bc75c25bead4f\"\u003e\u003ccode\u003e3c0cb3c\u003c/code\u003e\u003c/a\u003e fix: add \u003cstrong\u003edeepcopy\u003c/strong\u003e to DataDict to match DataList (\u003ca href=\"https://redirect.github.com/dynaconf/dynaconf/issues/1440\"\u003e#1440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/dbae7f17bef45beaf69744704bb27c0377ef0528\"\u003e\u003ccode\u003edbae7f1\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.3.5-dev0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dynaconf/dynaconf/commit/95e219915d831f4259af3026b6ef1ea30609a9c7\"\u003e\u003ccode\u003e95e2199\u003c/code\u003e\u003c/a\u003e Release version 3.3.4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dynaconf/dynaconf/compare/3.2.13...3.3.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.13.4 to 2.13.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.5/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/001dea020e0809844e5b17666432c9135a976f46\"\u003e\u003ccode\u003e001dea0\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epypa/gh-action-pypi-publish\u003c/code\u003e action to v1.14.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/558379fee957fad25858e33596146c72d5674843\"\u003e\u003ccode\u003e558379f\u003c/code\u003e\u003c/a\u003e Bump twine to v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2cfd5d3d2ae721ea882c045f83b7f7a4003aab01\"\u003e\u003ccode\u003e2cfd5d3\u003c/code\u003e\u003c/a\u003e Do not check for docs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a735bee5c64e1fe50785c376adaf1275e752b8ac\"\u003e\u003ccode\u003ea735bee\u003c/code\u003e\u003c/a\u003e Fix more Clippy lints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7eed4a16b87afaced4d0eafae230453de3410d64\"\u003e\u003ccode\u003e7eed4a1\u003c/code\u003e\u003c/a\u003e Fix Clippy 0.1.95 warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b353bbb20a4989b4c033e2be2b4a40d36178b16a\"\u003e\u003ccode\u003eb353bbb\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/63d2cccd6e760da6bbc7fe81a53cb2bde3768f5e\"\u003e\u003ccode\u003e63d2ccc\u003c/code\u003e\u003c/a\u003e Count validated model fields once in smart unions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a53ec2ed342fda4e6aa3684399d04ea57be9a6e4\"\u003e\u003ccode\u003ea53ec2e\u003c/code\u003e\u003c/a\u003e Speed up PyPy CI tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d65e0f96e890ca82f4b66a15d5b3bd65af2c661c\"\u003e\u003ccode\u003ed65e0f9\u003c/code\u003e\u003c/a\u003e Workaround circular import error in Mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/47a6dbf8ad6216211bd0df6ec5c2c6c6ed905b72\"\u003e\u003ccode\u003e47a6dbf\u003c/code\u003e\u003c/a\u003e Fix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.4...v2.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.2 to 1.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edotenv get\u003c/code\u003e no longer exits with code 1 for empty string values (\u003ccode\u003eKEY=\u003c/code\u003e) by [\u003ca href=\"https://github.com/ShamikOfficial\"\u003e\u003ccode\u003e@​ShamikOfficial\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn unquoted empty value followed by an inline comment (e.g. \u003ccode\u003eKEY= # comment\u003c/code\u003e) is now parsed as an empty string instead of the comment text by [\u003ca href=\"https://github.com/Noethix55555\"\u003e\u003ccode\u003e@​Noethix55555\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run --no-override\u003c/code\u003e now expands variable references with the same precedence as \u003ccode\u003eload_dotenv(override=False)\u003c/code\u003e, so a value like \u003ccode\u003e${BASE}/suffix\u003c/code\u003e uses the existing \u003ccode\u003eBASE\u003c/code\u003e from the environment instead of the one from the \u003ccode\u003e.env\u003c/code\u003e file by [\u003ca href=\"https://github.com/ROTl24\"\u003e\u003ccode\u003e@​ROTl24\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.4] - 2026-10-01\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edotenv get\u003c/code\u003e no longer exits with code 1 for empty string values (\u003ccode\u003eKEY=\u003c/code\u003e) by [\u003ca href=\"https://github.com/ShamikOfficial\"\u003e\u003ccode\u003e@​ShamikOfficial\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn unquoted empty value followed by an inline comment (e.g. \u003ccode\u003eKEY= # comment\u003c/code\u003e) is now parsed as an empty string instead of the comment text by [\u003ca href=\"https://github.com/Noethix55555\"\u003e\u003ccode\u003e@​Noethix55555\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run --no-override\u003c/code\u003e now expands variable references with the same precedence as \u003ccode\u003eload_dotenv(override=False)\u003c/code\u003e, so a value like \u003ccode\u003e${BASE}/suffix\u003c/code\u003e uses the existing \u003ccode\u003eBASE\u003c/code\u003e from the environment instead of the one from the \u003ccode\u003e.env\u003c/code\u003e file by [\u003ca href=\"https://github.com/ROTl24\"\u003e\u003ccode\u003e@​ROTl24\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.3] - 2026-08-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/a565c2cc41599c48eabc6b7b7f5b826d43c5a6d7\"\u003e\u003ccode\u003ea565c2c\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.3 → 1.2.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a7abd00261e51baba958e15f443c66165042ea2\"\u003e\u003ccode\u003e4a7abd0\u003c/code\u003e\u003c/a\u003e docs: add 1.2.4 release notes (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f215c0274dc4c310e5ca5feb4c6bddade25ece21\"\u003e\u003ccode\u003ef215c02\u003c/code\u003e\u003c/a\u003e fix: dotenv get exits 0 for empty string values (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/58f2d7c112235b347040bb5cb579d4ebc0a0ad91\"\u003e\u003ccode\u003e58f2d7c\u003c/code\u003e\u003c/a\u003e test: make test_run_with_command_flags portable and meaningful (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e0310e5bb3f2b701b11bbc007ca0c82c1bd56f38\"\u003e\u003ccode\u003ee0310e5\u003c/code\u003e\u003c/a\u003e fix: honor --no-override when expanding variables in dotenv run (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/a00cb2eed0704cd6d2071b2004c37e95ccc86ee5\"\u003e\u003ccode\u003ea00cb2e\u003c/code\u003e\u003c/a\u003e docs: add CHANGELOG entry for \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e (fix \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/600\"\u003e#600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f5485a61eefa5e686d6d5bdc7aa9ad6b104b1e92\"\u003e\u003ccode\u003ef5485a6\u003c/code\u003e\u003c/a\u003e fix: parse empty unquoted value with inline comment as empty string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/49515afee2d50c33cad9419b3800b3a0dc93fc59\"\u003e\u003ccode\u003e49515af\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.2 → 1.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ac846ff2760b65470e769d7eed33e540f0934e1\"\u003e\u003ccode\u003e8ac846f\u003c/code\u003e\u003c/a\u003e chore: add release runbook (RELEASING.md) and make release target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/bb31c944fb4b40e8dea59587f525840c38326166\"\u003e\u003ccode\u003ebb31c94\u003c/code\u003e\u003c/a\u003e docs: add 1.2.3 release notes (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.2...v1.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.3.5 to 2.5.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.3 (Sep 6, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.5.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.5.3 is a patch release that fixes bugs discovered after the 2.5.2\nrelease. Apart from the usual bug and maintenance work, there are a number of\nStringDType related fixes for problems discovered during the ongoing string\nwork in the main branch.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.12-3.15\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCasting a fixed-width byte string array (\u003ccode\u003enp.bytes_\u003c/code\u003e) to \u003ccode\u003eStringDType\u003c/code\u003e\nnow raises \u003ccode\u003eTypeError\u003c/code\u003e when the bytes are not valid UTF-8. Previously the\ninvalid bytes were stored as-is and later caused undefined behavior in\nstring operations.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32296\"\u003egh-32296\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMaskedArray._fill_value\u003c/code\u003e would become stale when ufuncs that change dtype\nleft the result holding a fill_value typed for the old dtype. The mismatch\nwas silent until something later called \u003ccode\u003e_check_fill_value\u003c/code\u003e, such as\n\u003ccode\u003e.view()\u003c/code\u003e, and then a \u003ccode\u003eTypeError\u003c/code\u003e would be raised. Now, when the copied\nfill_value is no longer valid for the new dtype, fall back to the\ndefault fill_value for that dtype instead of propagating the stale value.\nThis may raise a \u003ccode\u003eComplexWarning\u003c/code\u003e if the fill_value is complex and the\nnew dtype is real.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32423\"\u003egh-32423\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIason Krommydas\u003c/li\u003e\n\u003cli\u003eJames Davies +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaanas Arora\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eShikhar Goel +\u003c/li\u003e\n\u003cli\u003eYeonho Kim +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 27 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32235\"\u003e#32235\u003c/a\u003e: MAINT: Prepare 2.5.x for further development\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst\"\u003enumpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis is a walkthrough of the NumPy 2.4.0 release on Linux, which will be the\nfirst feature release using the \u003ccode\u003enumpy/numpy-release \u0026lt;https://github.com/numpy/numpy-release\u0026gt;\u003c/code\u003e__ repository.\u003c/p\u003e\n\u003cp\u003eThe commands can be copied into the command line, but be sure to replace 2.4.0\nwith the correct version. This should be read together with the\n:ref:\u003ccode\u003egeneral release guide \u0026lt;prepare_release\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eFacility preparation\u003c/h1\u003e\n\u003cp\u003eBefore beginning to make a release, use the \u003ccode\u003erequirements/*_requirements.txt\u003c/code\u003e files to\nensure that you have the needed software. Most software can be installed with\npip, but some will require apt-get, dnf, or whatever your system uses for\nsoftware. You will also need a GitHub personal access token (PAT) to push the\ndocumentation. There are a few ways to streamline things:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGit can be set up to use a keyring to store your GitHub personal access token.\nSearch online for the details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePrior to release\u003c/h1\u003e\n\u003ch2\u003eAdd/drop Python versions\u003c/h2\u003e\n\u003cp\u003eWhen adding or dropping Python versions, multiple config and CI files need to\nbe edited in addition to changing the minimum version in \u003ccode\u003epyproject.toml\u003c/code\u003e.\nMake these changes in an ordinary PR against main and backport if necessary.\nWe currently release wheels for new Python versions after the first Python RC\nonce manylinux and cibuildwheel support that new Python version.\u003c/p\u003e\n\u003ch2\u003eBackport pull requests\u003c/h2\u003e\n\u003cp\u003eChanges that have been marked for this release must be backported to the\nmaintenance/2.4.x branch.\u003c/p\u003e\n\u003ch2\u003eUpdate 2.4.0 milestones\u003c/h2\u003e\n\u003cp\u003eLook at the issues/prs with 2.4.0 milestones and either push them off to a\nlater version, or maybe remove the milestone. You may need to add a milestone.\u003c/p\u003e\n\u003ch2\u003eCheck the numpy-release repo\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/dd88c0c19b54ad9ed3533224221285bf0873249a\"\u003e\u003ccode\u003edd88c0c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32511\"\u003e#32511\u003c/a\u003e from charris/prepare-2.5.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/edcac6acc392f4010933ee83e8a4769a7cfe92c5\"\u003e\u003ccode\u003eedcac6a\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.5.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fd4d908aff89773ead13f7c6a0ab31153f14439e\"\u003e\u003ccode\u003efd4d908\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32509\"\u003e#32509\u003c/a\u003e from charris/backport-32496\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/65bb1da13d0ee784be84d173b86784f0d64bdaca\"\u003e\u003ccode\u003e65bb1da\u003c/code\u003e\u003c/a\u003e BUG: fix crash in ufunc.resolve_dtypes with a Python scalar type (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32496\"\u003e#32496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/294956e85dfaea149aada1278c2ed6be0f6f28c8\"\u003e\u003ccode\u003e294956e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32506\"\u003e#32506\u003c/a\u003e from charris/backport-32503\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/26428d9a3f5ab4f604b326347e3a9c6dcc00c1cb\"\u003e\u003ccode\u003e26428d9\u003c/code\u003e\u003c/a\u003e DOC: fix scipy docs links in intersphinx mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32507\"\u003e#32507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/5fab1cbc6aa9e119d9f931243a56c6fbca989476\"\u003e\u003ccode\u003e5fab1cb\u003c/code\u003e\u003c/a\u003e DOC: use static scipy doc site for intershpinx (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32503\"\u003e#32503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7beed2f7e9a24e493a04ff7e2eb1db0d7f9c50e6\"\u003e\u003ccode\u003e7beed2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32481\"\u003e#32481\u003c/a\u003e from ngoldbaum/stringdtype-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8972f70798a2ba1bb4557157982fd6001906f993\"\u003e\u003ccode\u003e8972f70\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32478\"\u003e#32478\u003c/a\u003e from charris/backport-32466\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/ab1b58902a868d4151ef3cf8dbeb91d8a1924fa4\"\u003e\u003ccode\u003eab1b589\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32477\"\u003e#32477\u003c/a\u003e from charris/backport-32423\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.3.5...v2.5.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.3.3 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.3.3...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.45 to 2.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.3\u003c/h1\u003e\n\u003cp\u003eReleased: October 2, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [regression]\u003c/strong\u003e Fixed regression where columns delivered to a mapped class from an\nunmapped \u003ccode\u003e_orm.MappedAsDataclass\u003c/code\u003e mixin, or from a class decorated\nwith \u003ccode\u003e_orm.unmapped_dataclass()\u003c/code\u003e, would not be placed in the\n\u003ccode\u003e_schema.Table\u003c/code\u003e in the order in which they were declared on the\nmixin; columns that had no dataclass default, such as a primary key column\nwith no \u003ccode\u003e_orm.mapped_column.default\u003c/code\u003e, or which made use of\n\u003ccode\u003e_orm.mapped_column.default_factory\u003c/code\u003e, would be moved after the\nremaining columns of the mixin.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13634\"\u003e#13634\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug] [regression]\u003c/strong\u003e Fixed regression caused by the new implementation of\n\u003ccode\u003eExecutableStatement.params()\u003c/code\u003e where parameter values established\nusing this method would not be rendered when compiling the statement with\nthe \u003ccode\u003eliteral_binds\u003c/code\u003e compiler option, instead rendering NULL with a\nwarning.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13635\"\u003e#13635\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.1.2\u003c/h1\u003e\n\u003cp\u003eReleased: October 2, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [regression]\u003c/strong\u003e Fixed regression caused by \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/5987\"\u003e#5987\u003c/a\u003e where the \u003ccode\u003eselectinload()\u003c/code\u003e\nloader strategy would ignore additional criteria present in the\n\u003ccode\u003e_orm.relationship.primaryjoin\u003c/code\u003e of a many-to-many relationship,\nsuch as a comparison against a column on the association table or on the\nparent table, loading related rows that should have been excluded.  The\n\u003ccode\u003eomit_join\u003c/code\u003e optimization for many-to-many relationships is now only used\nwhen the primaryjoin consists solely of comparisons between the parent's\nprimary key columns and the association table.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13626\"\u003e#13626\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tenacity` from 9.1.2 to 9.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jd/tenacity/releases\"\u003etenacity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.1.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eretry()\u003c/code\u003e annotations with async \u003ccode\u003esleep=\u003c/code\u003e function by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/555\"\u003ejd/tenacity#555\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.3...9.1.4\"\u003ehttps://github.com/jd/tenacity/compare/9.1.3...9.1.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e9.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply formatting to num seconds in before_sleep_log by \u003ca href=\"https://github.com/aguinane\"\u003e\u003ccode\u003e@​aguinane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/489\"\u003ejd/tenacity#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/sandrobonazzola\"\u003e\u003ccode\u003e@​sandrobonazzola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/528\"\u003ejd/tenacity#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping: Accept non-standard logger in helpers logging something by \u003ca href=\"https://github.com/k4nar\"\u003e\u003ccode\u003e@​k4nar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/540\"\u003ejd/tenacity#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(wait): add \u003ccode\u003ewait_exception\u003c/code\u003e strategy by \u003ca href=\"https://github.com/capitan-davide\"\u003e\u003ccode\u003e@​capitan-davide\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/541\"\u003ejd/tenacity#541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix syntax error in wait_chain docstring example by \u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/548\"\u003ejd/tenacity#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop Python 3.9 support (EOL) by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/552\"\u003ejd/tenacity#552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport async sleep for sync fn-to-retry by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/551\"\u003ejd/tenacity#551\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aguinane\"\u003e\u003ccode\u003e@​aguinane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/489\"\u003ejd/tenacity#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sandrobonazzola\"\u003e\u003ccode\u003e@​sandrobonazzola\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/528\"\u003ejd/tenacity#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k4nar\"\u003e\u003ccode\u003e@​k4nar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/540\"\u003ejd/tenacity#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/capitan-davide\"\u003e\u003ccode\u003e@​capitan-davide\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/541\"\u003ejd/tenacity#541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/548\"\u003ejd/tenacity#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/552\"\u003ejd/tenacity#552\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.2...9.1.3\"\u003ehttps://github.com/jd/tenacity/compare/9.1.2...9.1.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/d4e868d6b8368c00b5a1fad54de36c2c8c3a0fb3\"\u003e\u003ccode\u003ed4e868d\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eretry()\u003c/code\u003e annotations with async \u003ccode\u003esleep=\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/24415ebbca6ecafdf870af06441656dd96149d1d\"\u003e\u003ccode\u003e24415eb\u003c/code\u003e\u003c/a\u003e support async sleep for sync fn (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/3bf33b44096077a0608855f6a380fd8a25fa6f2...\n\n_Description has been truncated_","html_url":"https://github.com/dta-au/elspeth/pull/277","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dta-au%2Felspeth/issues/277","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/277/packages"}},{"old_version":"3.0.2","new_version":"3.0.6","update_type":"patch","path":null,"pr_created_at":"2026-10-05T13:22:26.000Z","version_change":"3.0.2 → 3.0.6","issue":{"uuid":"5712776062","node_id":"PR_kwDOTLeQFs8AAAABGtuMUw","number":24,"state":"open","title":"Bump the python-minor group across 1 directory with 76 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-05T13:22:26.000Z","updated_at":"2026-10-05T13:22:28.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-minor","update_count":76,"packages":[{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"aiohttp","old_version":"3.14.1","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"annotated-doc","old_version":"0.0.4","new_version":"0.0.5","repository_url":"https://github.com/fastapi/annotated-doc"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"anyio","old_version":"4.13.0","new_version":"4.15.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"apscheduler","old_version":"3.11.2","new_version":"3.11.3","repository_url":"https://github.com/agronholm/apscheduler"},{"name":"black","old_version":"26.3.1","new_version":"26.5.1","repository_url":"https://github.com/psf/black"},{"name":"boto3","old_version":"1.42.86","new_version":"1.43.107","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.42.86","new_version":"1.43.107","repository_url":"https://github.com/boto/botocore"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.7.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.7","new_version":"3.5.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.2","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"cyclonedx-python-lib","old_version":"11.11.0","new_version":"11.12.0","repository_url":"https://github.com/CycloneDX/cyclonedx-python-lib"},{"name":"fastapi","old_version":"0.110.1","new_version":"0.142.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"flake8","old_version":"7.3.0","new_version":"7.4.1","repository_url":"https://github.com/pycqa/flake8"},{"name":"fsspec","old_version":"2026.3.0","new_version":"2026.9.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"google-ai-generativelanguage","old_version":"0.6.15","new_version":"0.12.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-api-core","old_version":"2.30.2","new_version":"2.40.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-api-python-client","old_version":"2.194.0","new_version":"2.201.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.49.1","new_version":"2.59.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth-httplib2","old_version":"0.3.1","new_version":"0.4.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.74.0","new_version":"1.75.5","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.80.0","new_version":"1.84.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.71.2","new_version":"1.84.0"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"httplib2","old_version":"0.31.2","new_version":"0.32.0","repository_url":"https://github.com/httplib2/httplib2"},{"name":"idna","old_version":"3.11","new_version":"3.20","repository_url":"https://github.com/kjd/idna"},{"name":"importlib-metadata","old_version":"9.0.0","new_version":"9.0.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"jiter","old_version":"0.13.0","new_version":"0.17.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jq","old_version":"1.11.0","new_version":"1.12.0","repository_url":"https://github.com/mwilliamson/jq.py"},{"name":"librt","old_version":"0.8.1","new_version":"0.16.0","repository_url":"https://github.com/mypyc/librt"},{"name":"litellm","old_version":"1.80.0","new_version":"1.103.2","repository_url":"https://github.com/BerriAI/litellm"},{"name":"markdown-it-py","old_version":"4.0.0","new_version":"4.2.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"motor","old_version":"3.3.1","new_version":"3.7.1","repository_url":"https://github.com/mongodb/motor"},{"name":"msgpack","old_version":"1.2.1","new_version":"1.2.3","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"numpy","old_version":"2.4.4","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"},{"name":"packaging","old_version":"26.0","new_version":"26.3","repository_url":"https://github.com/pypa/packaging"},{"name":"pandas","old_version":"3.0.2","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pathspec","old_version":"1.0.4","new_version":"1.1.1","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pillow","old_version":"12.2.0","new_version":"12.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pip-api","old_version":"0.0.34","new_version":"0.0.35","repository_url":"https://github.com/di/pip-api"},{"name":"platformdirs","old_version":"4.9.6","new_version":"4.12.2","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"propcache","old_version":"0.4.1","new_version":"0.5.4","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.27.2","new_version":"1.29.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pyasn1","old_version":"0.6.3","new_version":"0.6.4","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"pycodestyle","old_version":"2.14.0","new_version":"2.15.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.49.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.20.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.13.0","new_version":"2.15.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.17.0","new_version":"4.18.2","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"pyparsing","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest","old_version":"9.0.3","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"python-dotenv","old_version":"1.2.2","new_version":"1.2.4","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"python-multipart","old_version":"0.0.31","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"regex","old_version":"2026.4.4","new_version":"2026.9.29","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"resend","old_version":"2.29.0","new_version":"2.49.0","repository_url":"https://github.com/resendlabs/resend-python"},{"name":"s3transfer","old_version":"0.16.0","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"s5cmd","old_version":"0.2.0","new_version":"0.3.3","repository_url":"https://github.com/jcfr/s5cmd-python-distributions"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.71.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.2","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.1","repository_url":"https://github.com/tqdm/tqdm"},{"name":"typer","old_version":"0.24.1","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"typing-inspection","old_version":"0.4.2","new_version":"0.4.4","repository_url":"https://github.com/pydantic/typing-inspection"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"tzdata","old_version":"2026.1","new_version":"2026.4","repository_url":"https://github.com/python/tzdata"},{"name":"tzlocal","old_version":"5.3.1","new_version":"5.4.4","repository_url":"https://github.com/regebro/tzlocal"},{"name":"urllib3","old_version":"2.6.3","new_version":"2.8.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.25.0","new_version":"0.54.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.1.1","new_version":"1.3.0","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"wrapt","old_version":"2.2.2","new_version":"2.5.0","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"yarl","old_version":"1.23.0","new_version":"1.25.1","repository_url":"https://github.com/aio-libs/yarl"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor group with 76 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.14.1` | `3.14.3` |\n| [annotated-doc](https://github.com/fastapi/annotated-doc) | `0.0.4` | `0.0.5` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.13.0` | `4.15.1` |\n| [apscheduler](https://github.com/agronholm/apscheduler) | `3.11.2` | `3.11.3` |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.1` |\n| [boto3](https://github.com/boto/boto3) | `1.42.86` | `1.43.107` |\n| [botocore](https://github.com/boto/botocore) | `1.42.86` | `1.43.107` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.7.22` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.7` | `3.5.2` |\n| [click](https://github.com/pallets/click) | `8.3.2` | `8.5.0` |\n| [cyclonedx-python-lib](https://github.com/CycloneDX/cyclonedx-python-lib) | `11.11.0` | `11.12.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.110.1` | `0.142.2` |\n| [flake8](https://github.com/pycqa/flake8) | `7.3.0` | `7.4.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.3.0` | `2026.9.0` |\n| [google-ai-generativelanguage](https://github.com/googleapis/google-cloud-python) | `0.6.15` | `0.12.1` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.30.2` | `2.40.0` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.194.0` | `2.201.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.49.1` | `2.59.1` |\n| [google-auth-httplib2](https://github.com/googleapis/google-cloud-python) | `0.3.1` | `0.4.4` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.74.0` | `1.75.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.80.0` | `1.84.0` |\n| [grpcio-status](https://grpc.io) | `1.71.2` | `1.84.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.6.0` |\n| [httplib2](https://github.com/httplib2/httplib2) | `0.31.2` | `0.32.0` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.20` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `9.0.0` | `9.0.1` |\n| [jiter](https://github.com/pydantic/jiter) | `0.13.0` | `0.17.0` |\n| [jq](https://github.com/mwilliamson/jq.py) | `1.11.0` | `1.12.0` |\n| [librt](https://github.com/mypyc/librt) | `0.8.1` | `0.16.0` |\n| [litellm](https://github.com/BerriAI/litellm) | `1.80.0` | `1.103.2` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `4.0.0` | `4.2.0` |\n| [motor](https://github.com/mongodb/motor) | `3.3.1` | `3.7.1` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.2.1` | `1.2.3` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.4` | `2.5.3` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.3` |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.2` | `3.0.6` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `1.0.4` | `1.1.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.2.0` | `12.3.0` |\n| [pip-api](https://github.com/di/pip-api) | `0.0.34` | `0.0.35` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.6` | `4.12.2` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.4.1` | `0.5.4` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.27.2` | `1.29.0` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.3` | `0.6.4` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.14.0` | `2.15.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.5` | `2.49.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.20.0` | `2.21.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.13.0` | `2.15.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.17.0` | `4.18.2` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.3.2` | `3.3.3` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.2` | `1.2.4` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.31` | `0.0.32` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.4.4` | `2026.9.29` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [resend](https://github.com/resendlabs/resend-python) | `2.29.0` | `2.49.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.16.0` | `0.19.2` |\n| [s5cmd](https://github.com/jcfr/s5cmd-python-distributions) | `0.2.0` | `0.3.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.71.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.1` |\n| [typer](https://github.com/fastapi/typer) | `0.24.1` | `0.27.2` |\n| [typing-inspection](https://github.com/pydantic/typing-inspection) | `0.4.2` | `0.4.4` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [tzdata](https://github.com/python/tzdata) | `2026.1` | `2026.4` |\n| [tzlocal](https://github.com/regebro/tzlocal) | `5.3.1` | `5.4.4` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.3` | `2.8.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.25.0` | `0.54.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.1` | `1.3.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `2.2.2` | `2.5.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.23.0` | `1.25.1` |\n\n\nUpdates `aiohappyeyeballs` from 2.6.1 to 2.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/releases\"\u003eaiohappyeyeballs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.7.1 (2026-07-01)\u003c/h2\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse defaultdict to help with performance (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/239\"\u003e#239\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/e10f335ad9630122832e967428ac138992a50bca\"\u003e\u003ccode\u003ee10f335\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCollapse collect-then-remove pattern in utils helpers (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/227\"\u003e#227\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/0dd3fd16fe394eb8493000dc9b9894fad3ca3190\"\u003e\u003ccode\u003e0dd3fd1\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMerge identical except blocks in _connect_sock cleanup (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/229\"\u003e#229\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/b7c186e3242eb4d6eaf0918857a99c263b3186fb\"\u003e\u003ccode\u003eb7c186e\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSimplify _interleave_addrinfos family grouping (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/226\"\u003e#226\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/fdf6548a5f8b38e45ad7cee8add3c3a7e34e2805\"\u003e\u003ccode\u003efdf6548\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.7.0...v2.7.1\"\u003ev2.7.0...v2.7.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.7.0 (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/224\"\u003e#224\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/10e7d4341666605de295dd00da716e30002e78c2\"\u003e\u003ccode\u003e10e7d43\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.6.2...v2.7.0\"\u003ev2.6.2...v2.7.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.6.2 (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClear error on empty addr_infos in start_connection (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/222\"\u003e#222\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/55dd76aee978ca47a38899b9caf69d058bf41fb3\"\u003e\u003ccode\u003e55dd76a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize obtaining event-loop down to 1 line (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/185\"\u003e#185\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/02a70296210125b45952c3221db0dfb76d8ea911\"\u003e\u003ccode\u003e02a7029\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStop verify_no_lingering_tasks from leaking an event loop (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/221\"\u003e#221\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/ce43beb0242007dc57be6e2f4e3bf0b9f4f239d1\"\u003e\u003ccode\u003ece43beb\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.6.1...v2.6.2\"\u003ev2.6.1...v2.6.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/blob/main/CHANGELOG.md\"\u003eaiohappyeyeballs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.7.1 (2026-07-01)\u003c/h2\u003e\n\u003ch3\u003ePerformance improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse defaultdict to help with performance (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/e10f335ad9630122832e967428ac138992a50bca\"\u003e\u003ccode\u003ee10f335\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify _interleave_addrinfos family grouping (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/fdf6548a5f8b38e45ad7cee8add3c3a7e34e2805\"\u003e\u003ccode\u003efdf6548\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCollapse collect-then-remove pattern in utils helpers (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/0dd3fd16fe394eb8493000dc9b9894fad3ca3190\"\u003e\u003ccode\u003e0dd3fd1\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMerge identical except blocks in _connect_sock cleanup (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/b7c186e3242eb4d6eaf0918857a99c263b3186fb\"\u003e\u003ccode\u003eb7c186e\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.7.0 (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd python 3.14 support (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/10e7d4341666605de295dd00da716e30002e78c2\"\u003e\u003ccode\u003e10e7d43\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.6.2 (2026-05-20)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClear error on empty addr_infos in start_connection (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/55dd76aee978ca47a38899b9caf69d058bf41fb3\"\u003e\u003ccode\u003e55dd76a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStop verify_no_lingering_tasks from leaking an event loop (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/ce43beb0242007dc57be6e2f4e3bf0b9f4f239d1\"\u003e\u003ccode\u003ece43beb\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize obtaining event-loop down to 1 line (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/02a70296210125b45952c3221db0dfb76d8ea911\"\u003e\u003ccode\u003e02a7029\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/4dfc926e30eea8d24c1a71602d73c0e9a895c191\"\u003e\u003ccode\u003e4dfc926\u003c/code\u003e\u003c/a\u003e 2.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/e10f335ad9630122832e967428ac138992a50bca\"\u003e\u003ccode\u003ee10f335\u003c/code\u003e\u003c/a\u003e perf: use defaultdict to help with performance (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/239\"\u003e#239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/338277badfb25fc38759ce38ab9ea2c20ec1bfff\"\u003e\u003ccode\u003e338277b\u003c/code\u003e\u003c/a\u003e chore: stop tracking .DS_Store files (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/251\"\u003e#251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/16978694944ed7fb5e7b49a173160144ccac45bc\"\u003e\u003ccode\u003e1697869\u003c/code\u003e\u003c/a\u003e ci: add codspeed benchmark suite for addrinfo reordering hot paths (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/d40a848cd2262b435242646fa8e220300bcd6952\"\u003e\u003ccode\u003ed40a848\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump starlette from 1.0.1 to 1.3.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/51d42669b2b94a78c6d4bd059e449b8ef51c6646\"\u003e\u003ccode\u003e51d4266\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump cryptography from 46.0.7 to 48.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/2df44b3987d3c887a8493ba19259c63588226d6c\"\u003e\u003ccode\u003e2df44b3\u003c/code\u003e\u003c/a\u003e chore(pre-commit.ci): pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/241\"\u003e#241\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/3e3cb615f00bfb4d29c30e0c86c897f4de8fb02d\"\u003e\u003ccode\u003e3e3cb61\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump pytest from 9.0.3 to 9.1.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/922dcd79a66d67fdd98a5f9b7587c4f8cda44653\"\u003e\u003ccode\u003e922dcd7\u003c/code\u003e\u003c/a\u003e chore(deps-ci): bump the github-actions group with 4 updates (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/245\"\u003e#245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/70461c583a8cf3c6fa85b8c48b8e4b576cee8083\"\u003e\u003ccode\u003e70461c5\u003c/code\u003e\u003c/a\u003e ci: drop .github/FUNDING.yml to inherit org-wide config (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.6.1...v2.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiohttp` from 3.14.1 to 3.14.3\nUpdates `annotated-doc` from 0.0.4 to 0.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/annotated-doc/releases\"\u003eannotated-doc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.5\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Python 3.8. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/36\"\u003e#36\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump ruff from 0.14.3 to 0.14.10. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/31\"\u003e#31\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/63\"\u003e#63\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade latest-changes to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/92\"\u003e#92\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/91\"\u003e#91\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/90\"\u003e#90\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pre-commit hooks. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/89\"\u003e#89\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add GH workflow to bump pre-commit hook versions. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/81\"\u003e#81\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Set Dependabot schedule interval to \u0026quot;monthly\u0026quot;. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/82\"\u003e#82\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix latest-changes checkout target. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/85\"\u003e#85\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update issue-manager to 0.8.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/84\"\u003e#84\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update latest-changes to 0.6.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/83\"\u003e#83\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/72\"\u003e#72\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/80\"\u003e#80\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump \u003ca href=\"https://github.com/crate-ci/typos\"\u003ehttps://github.com/crate-ci/typos\u003c/a\u003e from v1.46.0 to 1.47.2 in the pre-commit group across 1 directory. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/76\"\u003e#76\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Simplify pull request workflow triggers. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/79\"\u003e#79\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update issue-manager to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/78\"\u003e#78\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update issue-manager to 0.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/77\"\u003e#77\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Update zizmor workflow security checks. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/75\"\u003e#75\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix alls-green test dependency. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/74\"\u003e#74\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add pre-commit hook to catch typos. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/68\"\u003e#68\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/70\"\u003e#70\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group with 2 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/71\"\u003e#71\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Automate release preparation. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/69\"\u003e#69\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Configure Dependabot to group updates and update weekly. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/62\"\u003e#62\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/65\"\u003e#65\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix branch name in \u003ccode\u003eguard-dependencies.yml\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/61\"\u003e#61\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/60\"\u003e#60\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.33 to 0.0.34. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/58\"\u003e#58\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.11 to 0.3.13. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/59\"\u003e#59\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/50\"\u003e#50\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Bump the lower bound of \u003ccode\u003ety\u003c/code\u003e to 0.0.25. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/57\"\u003e#57\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Configure \u003ccode\u003ety\u003c/code\u003e to exit with error code on warnings. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/56\"\u003e#56\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/add-to-project from 1.0.2 to 2.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/54\"\u003e#54\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/labeler from 6.0.1 to 6.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/55\"\u003e#55\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.8 to 0.15.12. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/51\"\u003e#51\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.8 to 0.3.11. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/53\"\u003e#53\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.27 to 0.0.33. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/52\"\u003e#52\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/annotated-doc/blob/main/release-notes.md\"\u003eannotated-doc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.5 (2026-07-28)\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Python 3.8. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/36\"\u003e#36\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump ruff from 0.14.3 to 0.14.10. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/31\"\u003e#31\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/63\"\u003e#63\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade latest-changes to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/92\"\u003e#92\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/91\"\u003e#91\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/90\"\u003e#90\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pre-commit hooks. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/89\"\u003e#89\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add GH workflow to bump pre-commit hook versions. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/81\"\u003e#81\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Set Dependabot schedule interval to \u0026quot;monthly\u0026quot;. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/82\"\u003e#82\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix latest-changes checkout target. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/85\"\u003e#85\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update issue-manager to 0.8.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/84\"\u003e#84\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update latest-changes to 0.6.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/83\"\u003e#83\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/72\"\u003e#72\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group across 1 directory with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/80\"\u003e#80\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump \u003ca href=\"https://github.com/crate-ci/typos\"\u003ehttps://github.com/crate-ci/typos\u003c/a\u003e from v1.46.0 to 1.47.2 in the pre-commit group across 1 directory. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/76\"\u003e#76\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Simplify pull request workflow triggers. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/79\"\u003e#79\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update issue-manager to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/78\"\u003e#78\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update issue-manager to 0.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/77\"\u003e#77\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Update zizmor workflow security checks. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/75\"\u003e#75\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix alls-green test dependency. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/74\"\u003e#74\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add pre-commit hook to catch typos. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/68\"\u003e#68\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/70\"\u003e#70\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group with 2 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/71\"\u003e#71\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Automate release preparation. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/69\"\u003e#69\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Configure Dependabot to group updates and update weekly. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/62\"\u003e#62\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/65\"\u003e#65\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix branch name in \u003ccode\u003eguard-dependencies.yml\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/61\"\u003e#61\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/60\"\u003e#60\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.33 to 0.0.34. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/58\"\u003e#58\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.11 to 0.3.13. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/59\"\u003e#59\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/50\"\u003e#50\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Bump the lower bound of \u003ccode\u003ety\u003c/code\u003e to 0.0.25. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/57\"\u003e#57\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Configure \u003ccode\u003ety\u003c/code\u003e to exit with error code on warnings. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/56\"\u003e#56\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/add-to-project from 1.0.2 to 2.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/54\"\u003e#54\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/labeler from 6.0.1 to 6.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/55\"\u003e#55\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.8 to 0.15.12. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/51\"\u003e#51\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.8 to 0.3.11. PR \u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/pull/53\"\u003e#53\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/ef48d6ad51d226f772fd9c5284f55199afe4007c\"\u003e\u003ccode\u003eef48d6a\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.0.5 (\u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/issues/93\"\u003e#93\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/c628000835a26f6bc8c776f90bcbcf95211f233b\"\u003e\u003ccode\u003ec628000\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/e0b4579d2ad8d62a304c9f30a1c2c084f0d372e5\"\u003e\u003ccode\u003ee0b4579\u003c/code\u003e\u003c/a\u003e ➖ Drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/issues/36\"\u003e#36\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/ef956b4e9f2c0e2bead1cba7a6888e1ed8c2c237\"\u003e\u003ccode\u003eef956b4\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/84bf1e5402c5e0cfd1462c5d3c8bae22fb717bd8\"\u003e\u003ccode\u003e84bf1e5\u003c/code\u003e\u003c/a\u003e ⬆️ Upgrade latest-changes to 0.7.1 (\u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/issues/92\"\u003e#92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/cf773e138b1dc5608ce0f0d11e1939c410ef6228\"\u003e\u003ccode\u003ecf773e1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/1375d6eb8147cb2352d080ef09f356dfc18e0d29\"\u003e\u003ccode\u003e1375d6e\u003c/code\u003e\u003c/a\u003e ⬆ Bump the github-actions group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/cd373656cbf40e5fd4cc28680ca5e05bf12709cb\"\u003e\u003ccode\u003ecd37365\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/f9f3b695cbacc4ffc37d9cebff6e05bd1751f68a\"\u003e\u003ccode\u003ef9f3b69\u003c/code\u003e\u003c/a\u003e ⬆ Bump the python-packages group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/fastapi/annotated-doc/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/annotated-doc/commit/842084457f0a7739fb91d2a4ea602b2bc4e15767\"\u003e\u003ccode\u003e8420844\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/annotated-doc/compare/0.0.4...0.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `annotated-types` from 0.7.0 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/annotated-types/annotated-types/releases\"\u003eannotated-types's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename DocInfo to Doc by \u003ca href=\"https://github.com/zen-xu\"\u003e\u003ccode\u003e@​zen-xu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/80\"\u003eannotated-types/annotated-types#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/83\"\u003eannotated-types/annotated-types#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docstring of \u003ccode\u003eTimezone\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/84\"\u003eannotated-types/annotated-types#84\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate license-files to be PEP-639 compliant (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/85\"\u003e#85\u003c/a\u003e) by \u003ca href=\"https://github.com/shoeffner\"\u003e\u003ccode\u003e@​shoeffner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/86\"\u003eannotated-types/annotated-types#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: typo in README.md by \u003ca href=\"https://github.com/camiloaz\"\u003e\u003ccode\u003e@​camiloaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/87\"\u003eannotated-types/annotated-types#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd CI for PyPy3.11 and fix test (issue 71) by \u003ca href=\"https://github.com/mattip\"\u003e\u003ccode\u003e@​mattip\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/88\"\u003eannotated-types/annotated-types#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix string predicate names in doc by \u003ca href=\"https://github.com/leogermond\"\u003e\u003ccode\u003e@​leogermond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/90\"\u003eannotated-types/annotated-types#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd SPDX license expression by \u003ca href=\"https://github.com/wichert\"\u003e\u003ccode\u003e@​wichert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/92\"\u003eannotated-types/annotated-types#92\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python 3.14 to the test matrix by \u003ca href=\"https://github.com/imtoopunkforyou\"\u003e\u003ccode\u003e@​imtoopunkforyou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/96\"\u003eannotated-types/annotated-types#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8-3.9 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/97\"\u003eannotated-types/annotated-types#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in \u003ccode\u003eLen\u003c/code\u003e docstring by \u003ca href=\"https://github.com/Dutcho\"\u003e\u003ccode\u003e@​Dutcho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/100\"\u003eannotated-types/annotated-types#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for 0.8.0 release by \u003ca href=\"https://github.com/adriangb\"\u003e\u003ccode\u003e@​adriangb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/103\"\u003eannotated-types/annotated-types#103\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zen-xu\"\u003e\u003ccode\u003e@​zen-xu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/80\"\u003eannotated-types/annotated-types#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/83\"\u003eannotated-types/annotated-types#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shoeffner\"\u003e\u003ccode\u003e@​shoeffner\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/86\"\u003eannotated-types/annotated-types#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/camiloaz\"\u003e\u003ccode\u003e@​camiloaz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/87\"\u003eannotated-types/annotated-types#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mattip\"\u003e\u003ccode\u003e@​mattip\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/88\"\u003eannotated-types/annotated-types#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leogermond\"\u003e\u003ccode\u003e@​leogermond\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/90\"\u003eannotated-types/annotated-types#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wichert\"\u003e\u003ccode\u003e@​wichert\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/92\"\u003eannotated-types/annotated-types#92\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imtoopunkforyou\"\u003e\u003ccode\u003e@​imtoopunkforyou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/96\"\u003eannotated-types/annotated-types#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dutcho\"\u003e\u003ccode\u003e@​Dutcho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/100\"\u003eannotated-types/annotated-types#100\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/annotated-types/annotated-types/compare/v0.7.0...v0.8.0\"\u003ehttps://github.com/annotated-types/annotated-types/compare/v0.7.0...v0.8.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/9eb96680138269811a39d838d720abc3dce33954\"\u003e\u003ccode\u003e9eb9668\u003c/code\u003e\u003c/a\u003e Prepare for 0.8.0 release (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/10b77644f88b385357653730a1ab23748ca3ae2e\"\u003e\u003ccode\u003e10b7764\u003c/code\u003e\u003c/a\u003e Fix typo in \u003ccode\u003eLen\u003c/code\u003e docstring (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/100\"\u003e#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/955f7576d616feb6e9407c74498517787c38afd4\"\u003e\u003ccode\u003e955f757\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop EOL 3.8-3.9 (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/97\"\u003e#97\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/bd280fea7983550d266f993d868b8dd7ff822bf1\"\u003e\u003ccode\u003ebd280fe\u003c/code\u003e\u003c/a\u003e Added Python 3.14 to the test matrix (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/96\"\u003e#96\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/a471bb757663452459893e6f593118ec21eb1b9e\"\u003e\u003ccode\u003ea471bb7\u003c/code\u003e\u003c/a\u003e Add SPDX license expression (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/92\"\u003e#92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/eab91d9a8c0d3f73661fc4b0794a1fe76c94fa84\"\u003e\u003ccode\u003eeab91d9\u003c/code\u003e\u003c/a\u003e Fix string predicate names in doc (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/03ad9c3c7b4d4dfe9e33c09075a3a2766c0820e1\"\u003e\u003ccode\u003e03ad9c3\u003c/code\u003e\u003c/a\u003e add CI for PyPy3.11 and fix test (issue 71) (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/88\"\u003e#88\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/5ae60437f0ab493cedd27311bc6ce6d2188e8d8b\"\u003e\u003ccode\u003e5ae6043\u003c/code\u003e\u003c/a\u003e fix: typo in README.md (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/87\"\u003e#87\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/b60ad7bff90019c7de3547df1c8e3586eb328423\"\u003e\u003ccode\u003eb60ad7b\u003c/code\u003e\u003c/a\u003e Update license-files to be PEP-639 compliant (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/85\"\u003e#85\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/86\"\u003e#86\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/annotated-types/annotated-types/commit/3fbeb6d129760ae48d7a0372fb9301764acc95ae\"\u003e\u003ccode\u003e3fbeb6d\u003c/code\u003e\u003c/a\u003e Fix docstring of \u003ccode\u003eTimezone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/annotated-types/annotated-types/compare/v0.7.0...v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.13.0 to 4.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented a compatibility fix for supporting direct access of \u003ccode\u003eanyio.*\u003c/code\u003e submodules from the main package even when those submodules were not directly imported first (\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311\"\u003e#1311\u003c/a\u003e \u0026lt;\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311%5C%3E\"\u003eagronholm/anyio#1311\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for the newer keyword-only arguments on \u003ccode\u003eanyio.Path\u003c/code\u003e methods to match the standard library \u003ccode\u003epathlib.Path\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eexists()\u003c/code\u003e (Python 3.12+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_dir()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_file()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eowner()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003egroup()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enewline\u003c/code\u003e on \u003ccode\u003eread_text()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1286\"\u003e#1286\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1293\"\u003e#1293\u003c/a\u003e; PR by \u003ca href=\"https://github.com/jaideeppyne\"\u003e\u003ccode\u003e@​jaideeppyne\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eamap\u003c/code\u003e, \u003ccode\u003egather\u003c/code\u003e, and \u003ccode\u003eas_completed\u003c/code\u003e utility functions to simplify common patterns (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1173\"\u003e#1173\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003e--anyio-mode\u003c/code\u003e command-line option as an alternative to the \u003ccode\u003eanyio_mode\u003c/code\u003e ini setting, and fix the pytest plugin's auto mode detection to recognize the mode when set via either mechanism(e.g: \u003ccode\u003epytest_asyncio\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1242\"\u003e#1242\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003eanyio.Future\u003c/code\u003e synchronization primitive which behaves similar to \u003ccode\u003easyncio.Future\u003c/code\u003e, allowing tasks to wait for a value (or exception) from another task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1146\"\u003e#1146\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded guidance for managing multiple memory object stream producers and consumers with cloned streams (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/330\"\u003e#330\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nightcityblade\"\u003e\u003ccode\u003e@​nightcityblade\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eStapledObjectStream.send_nowait()\u003c/code\u003e that delegates to the underlying \u003ccode\u003eObjectSendStream\u003c/code\u003e, if it implements it (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1241\"\u003e#1241\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003emove_on_at()\u003c/code\u003e and \u003ccode\u003efail_at()\u003c/code\u003e functions to complement \u003ccode\u003emove_on_after()\u003c/code\u003e and \u003ccode\u003efail_after()\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the default name for a task spawned with \u003ccode\u003eTaskGroup.create_task(func())\u003c/code\u003e to match the default task name for the analogous task spawned with \u003ccode\u003eTaskGroup.start_soon(func)\u003c/code\u003e or \u003ccode\u003eTaskGroup.start(func)\u003c/code\u003e in more situations. Previously, the default name of a \u003ccode\u003eTaskGroup.create_task\u003c/code\u003e task never included the module name. (The default name for a task spawned with \u003ccode\u003eTaskGroup.start_soon\u003c/code\u003e or \u003ccode\u003eTaskGroup.start\u003c/code\u003e typically includes the module name.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1234\"\u003e#1234\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the \u003ccode\u003eanyio\u003c/code\u003e and \u003ccode\u003eanyio.abc\u003c/code\u003e modules to lazily (much like \u003ccode\u003e810\u003c/code\u003e) import the necessary submodules. This is done by parsing the AST of the module and building a lookup table from the \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block. A fallback mode has been provided for installations where the source code is unavailable (e.g. PyInstaller). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1169\"\u003e#1169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed free-threading compatibility issues arising from the fact that on Python 3.14 free-threading builds, newly created threads inherit the current context by default, causing AnyIO to behave erroneously in relation to \u003ccode\u003estart_blocking_portal()\u003c/code\u003e and \u003ccode\u003eanyio.to_thread.run_sync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1224\"\u003e#1224\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eSpooledTemporaryFile.readinto()\u003c/code\u003e and \u003ccode\u003ereadinto1()\u003c/code\u003e reading twice before rollover, so the destination buffer was overwritten by the second read and the file position advanced twice, silently losing data (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1215\"\u003e#1215\u003c/a\u003e; PR by \u003ca href=\"https://github.com/c-tonneslan\"\u003e\u003ccode\u003e@​c-tonneslan\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003efail_after\u003c/code\u003e (and the new \u003ccode\u003efail_at\u003c/code\u003e) allowing for added exception context when raising \u003ccode\u003eTimeoutError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1227\"\u003e#1227\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the default \u003ccode\u003eTaskHandle.name\u003c/code\u003e missing part of the task name for tasks started with \u003ccode\u003eTaskGroup.start\u003c/code\u003e on Trio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1231\"\u003e#1231\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.run\u003c/code\u003e leaking, or at least, delaying collection of loop and root_task due to the root task being cached in a \u003ccode\u003eRunVar\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1203\"\u003e#1203\u003c/a\u003e; PR by \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.Path.with_stem()\u003c/code\u003e silently producing a wrong path (e.g. \u003ccode\u003ePath(\u0026quot;.txt\u0026quot;)\u003c/code\u003e) instead of raising \u003ccode\u003eValueError\u003c/code\u003e when given an empty stem on a path with a non-empty suffix, unlike \u003ccode\u003epathlib.PurePath.with_stem\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1200\"\u003e#1200\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eUNIXSocketStream.aclose()\u003c/code\u003e raising \u003ccode\u003easyncio.InvalidStateError\u003c/code\u003e when a concurrent receive or send operation had just been cancelled on the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1267\"\u003e#1267\u003c/a\u003e; PR by \u003ca href=\"https://github.com/alloutflo\"\u003e\u003ccode\u003e@​alloutflo\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the pytest plugin importing the deprecated \u003ccode\u003e_pytest.python.CallSpec2\u003c/code\u003e alias, which triggers \u003ccode\u003ePytestRemovedIn10Warning\u003c/code\u003e on \u003ccode\u003epytest\u0026gt;=9.2\u003c/code\u003e and crashes pytest at startup when \u003ccode\u003efilterwarnings = error\u003c/code\u003e is configured (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1271\"\u003e#1271\u003c/a\u003e; PR by \u003ca href=\"https://github.com/matthewfeickert\"\u003e\u003ccode\u003e@​matthewfeickert\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an asyncio worker thread race that could raise \u003ccode\u003eRuntimeError\u003c/code\u003e when the event loop closed between checking its state and scheduling the worker result (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1265\"\u003e#1265\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hansu650\"\u003e\u003ccode\u003e@​hansu650\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eCapacityLimiter\u003c/code\u003e on the asyncio backend over-granting tokens when \u003ccode\u003etotal_tokens\u003c/code\u003e was raised while the limiter was over-subscribed (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1223\"\u003e#1223\u003c/a\u003e; PR by \u003ca href=\"https://github.com/zelinewang\"\u003e\u003ccode\u003e@​zelinewang\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/ffcd1542cd6d127980205f90a0100078849dd703\"\u003e\u003ccode\u003effcd154\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0ecf5ed98d294242509b043ebd1a0843e52d892f\"\u003e\u003ccode\u003e0ecf5ed\u003c/code\u003e\u003c/a\u003e Added a workaround for third party code accessing unimported submodules (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1309\"\u003e#1309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/928366259543412a2deb1e2ba09ea45ffa92ef4f\"\u003e\u003ccode\u003e9283662\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d137692a90f76e4f71605e32ea5ca94cab3a539d\"\u003e\u003ccode\u003ed137692\u003c/code\u003e\u003c/a\u003e Improved the instructions for AI agents\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/033fc52b8fa8e90c5d0ef24b10b3860e974a6265\"\u003e\u003ccode\u003e033fc52\u003c/code\u003e\u003c/a\u003e Shield TemporaryDirectory cleanup from cancellation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1304\"\u003e#1304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/942e9a6552cc10b5aaa779d84bfc8e2c3d5fcffc\"\u003e\u003ccode\u003e942e9a6\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1305\"\u003e#1305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b825c3be7cb4ca1a8000b8065d4e147843deb704\"\u003e\u003ccode\u003eb825c3b\u003c/code\u003e\u003c/a\u003e Fixed pyproject.toml changes not triggering the test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9727dc504681e2986b5bc285de9571fb467539af\"\u003e\u003ccode\u003e9727dc5\u003c/code\u003e\u003c/a\u003e Fixed start inconsistencies between trio and asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b05fe6d160a640355c201363cab286a7d2581da8\"\u003e\u003ccode\u003eb05fe6d\u003c/code\u003e\u003c/a\u003e Fixed wrong type in move_on_after (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1297\"\u003e#1297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/44d0c93cc20079acbf38ba4dbed5ab9df323f153\"\u003e\u003ccode\u003e44d0c93\u003c/code\u003e\u003c/a\u003e Fixed asyncio task group coroutine cleanup (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.13.0...4.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apscheduler` from 3.11.2 to 3.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/apscheduler/releases\"\u003eapscheduler's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed sub-minute interval jobs stalling for the duration of a DST spring-forward gap when the scheduler was configured with a \u003ccode\u003eZoneInfo\u003c/code\u003e time zone, caused by the wakeup delay being computed from the naive wall-clock difference instead of the actual UTC difference (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1103\"\u003e#1103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed imported jobs missing their scheduler and job store links (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1119\"\u003e#1119\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/4308ec95b94069f5dbdddb6c60fb792dfc8c40a4\"\u003e\u003ccode\u003e4308ec9\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/ff68780d7f66fe0f505c3a32764005cd004996b9\"\u003e\u003ccode\u003eff68780\u003c/code\u003e\u003c/a\u003e Added a note about weekday numbers in CronTrigger.from_crontab()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/36936e904052e6bfbd03f83e17b03701b7a589fe\"\u003e\u003ccode\u003e36936e9\u003c/code\u003e\u003c/a\u003e Updated actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/c0ff7e4ccfcc703db44a905b70c1d6568a6f81fa\"\u003e\u003ccode\u003ec0ff7e4\u003c/code\u003e\u003c/a\u003e Fixed Pyside6 tests failing on Python 3.9 and 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/1b782c90edeac787deb3106fb3e5c775b3d6b0cd\"\u003e\u003ccode\u003e1b782c9\u003c/code\u003e\u003c/a\u003e Fixed fixture \u003ccode\u003ecoreapp\u003c/code\u003e not found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/dc3dde4a34c021f215d120d88fe19ddc66bb8a66\"\u003e\u003ccode\u003edc3dde4\u003c/code\u003e\u003c/a\u003e Test against PySide6 on all Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/18a6f6b637e372730f6325786f97936e6eaa9f77\"\u003e\u003ccode\u003e18a6f6b\u003c/code\u003e\u003c/a\u003e Fixed imported jobs missing their scheduler and job store links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/1693db4d8861bf941d299d79a586797ad0ac6467\"\u003e\u003ccode\u003e1693db4\u003c/code\u003e\u003c/a\u003e Fix interval jobs stalling across DST spring-forward with ZoneInfo (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1114\"\u003e#1114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/0636bf4931fddb706b948b6781ebbd76058f1443\"\u003e\u003ccode\u003e0636bf4\u003c/code\u003e\u003c/a\u003e Added Python 3.14 to the test matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/3eb3de8115f1631dc5e2ecce7b00175d34ffbdf9\"\u003e\u003ccode\u003e3eb3de8\u003c/code\u003e\u003c/a\u003e Fixed bad use of pytest.raises()\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/apscheduler/compare/3.11.2...3.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 26.3.1 to 26.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 26.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/87928e6d6761a4a6d22250e1fee5601b3998086e\"\u003e\u003ccode\u003e87928e6\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5140\"\u003e#5140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c970a49702488739add6c728122deb3a99900803\"\u003e\u003ccode\u003ec970a49\u003c/code\u003e\u003c/a\u003e Preserve comments before fmt: skip lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5809338fd5f92d50e80c2ad312292ae6d428a480\"\u003e\u003ccode\u003e5809338\u003c/code\u003e\u003c/a\u003e Preserve inline comments inside annotation subscripts (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/61361b71995f6ea44ce01915bacd3ecc50642507\"\u003e\u003ccode\u003e61361b7\u003c/code\u003e\u003c/a\u003e docs: add Neovim integration guide and fix http link (\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ebe6018e3254629788376e619207719fbe34a849\"\u003e\u003ccode\u003eebe6018\u003c/code\u003e\u003c/a\u003e CI Hotfixes (\u003ca href=\"https://redirect.github.com/psf/black/issues/5136\"\u003e#5136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9cbd95f80e97c1ab4d690d1d41b81579a13bf75c\"\u003e\u003ccode\u003e9cbd95f\u003c/code\u003e\u003c/a\u003e Fix publish binaries again on Windows (\u003ca href=\"https://redirect.github.com/psf/black/issues/5134\"\u003e#5134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/3dc8e6c41911bdaedb4bac8d633979c34a112b78\"\u003e\u003ccode\u003e3dc8e6c\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5132\"\u003e#5132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6d0fff0d5a965b9d0d3dbd7c5738d835fd574130\"\u003e\u003ccode\u003e6d0fff0\u003c/code\u003e\u003c/a\u003e Fix publish binaries workflow (\u003ca href=\"https://redirect.github.com/psf/black/issues/5133\"\u003e#5133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d2490e24dad33b8f68c77602ee29160de0fea24b\"\u003e\u003ccode\u003ed2490e2\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5131\"\u003e#5131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b13ea76fa69d4923381df65deb1a5c896ca27ad\"\u003e\u003ccode\u003e2b13ea7\u003c/code\u003e\u003c/a\u003e Preserve multiline headers with fmt skip (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.3.1...26.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.42.86 to 1.43.107\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/402e09ca457c8b8ea37097e32dcf2de7c612bb2f\"\u003e\u003ccode\u003e402e09c\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.107'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/4d321645cb78851589720fec5d08c6f8cf64c9b4\"\u003e\u003ccode\u003e4d32164\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.107\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/e6738b9bfc67ceb6f9eb8792a10eac83b283b959\"\u003e\u003ccode\u003ee6738b9\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c2a321bb8a8513706b906703fc9945e6de62e400\"\u003e\u003ccode\u003ec2a321b\u003c/code\u003e\u003c/a\u003e Bump \u003ca href=\"https://github.com/astral-sh/ruff-pre-commit\"\u003ehttps://github.com/astral-sh/ruff-pre-commit\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/88630f82cb40220991b6fb0505703e7cd575e38b\"\u003e\u003ccode\u003e88630f8\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.106'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/fac0859a5381737c27dd088886e99286031db120\"\u003e\u003ccode\u003efac0859\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.106' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/eefb3fcda392ec4fd5cbf212643cb01a6b4f98ae\"\u003e\u003ccode\u003eeefb3fc\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.106\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/88781899883b66a97cc95023d0c0ef1fda909f5d\"\u003e\u003ccode\u003e8878189\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca...\n\n_Description has been truncated_","html_url":"https://github.com/rahuldecor-svg/emergent/pull/24","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahuldecor-svg%2Femergent/issues/24","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/24/packages"}},{"old_version":"3.0.5","new_version":"3.0.6","update_type":"patch","path":null,"pr_created_at":"2026-10-05T07:48:12.000Z","version_change":"3.0.5 → 3.0.6","issue":{"uuid":"5708354980","node_id":"PR_kwDOQkZs088AAAABGqHwXQ","number":404,"state":"open","title":"deps: bump the python-minor-patch group across 1 directory with 90 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-05T07:48:12.000Z","updated_at":"2026-10-05T07:48:13.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"python-minor-patch","update_count":90,"packages":[{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"xarray","old_version":"2026.7.0","new_version":"2026.9.0","repository_url":"https://github.com/pydata/xarray"},{"name":"matplotlib","old_version":"3.11.1","new_version":"3.11.2","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"transformers","old_version":"5.16.1","new_version":"5.18.0","repository_url":"https://github.com/huggingface/transformers"},{"name":"torch","old_version":"2.13.0","new_version":"2.14.1","repository_url":"https://github.com/pytorch/pytorch"},{"name":"accelerate","old_version":"1.14.0","new_version":"1.15.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"python-dotenv","old_version":"1.2.3","new_version":"1.2.4","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"fastapi","old_version":"0.141.1","new_version":"0.142.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.52.4","new_version":"0.54.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sse-starlette","old_version":"3.4.8","new_version":"3.5.0","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"geopandas","old_version":"1.1.4","new_version":"1.2.0","repository_url":"https://github.com/geopandas/geopandas"},{"name":"duckdb","old_version":"1.5.5","new_version":"1.5.6","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"ruff","old_version":"0.16.5","new_version":"0.16.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/python/mypy"},{"name":"affine","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/rasterio/affine"},{"name":"anyio","old_version":"4.14.2","new_version":"4.15.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"ast-serialize","old_version":"0.8.0","new_version":"0.11.2","repository_url":"https://github.com/mypyc/ast_serialize"},{"name":"authlib","old_version":"1.7.2","new_version":"1.8.0","repository_url":"https://github.com/authlib/authlib"},{"name":"build","old_version":"1.6.0","new_version":"1.6.1","repository_url":"https://github.com/pypa/build"},{"name":"cachetools","old_version":"7.1.7","new_version":"7.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"caio","old_version":"0.12.2","new_version":"0.12.9","repository_url":"https://github.com/mosquito/caio"},{"name":"cftime","old_version":"1.6.5","new_version":"1.6.6","repository_url":"https://github.com/Unidata/cftime"},{"name":"charset-normalizer","old_version":"3.5.1","new_version":"3.5.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.15.4","new_version":"7.16.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cryptography","old_version":"50.0.1","new_version":"50.0.2","repository_url":"https://github.com/pyca/cryptography"},{"name":"cuda-bindings","old_version":"13.3.1","new_version":"13.4.3","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.8.0","new_version":"1.8.3","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.3.1","new_version":"13.4.2"},{"name":"fonttools","old_version":"4.63.0","new_version":"4.66.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"fsspec","old_version":"2026.7.0","new_version":"2026.9.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"googleapis-common-protos","old_version":"1.75.2","new_version":"1.75.5","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"griffelib","old_version":"2.2.0","new_version":"2.3.0"},{"name":"grpcio","old_version":"1.83.1","new_version":"1.84.0","repository_url":"https://github.com/grpc/grpc"},{"name":"idna","old_version":"3.19","new_version":"3.20","repository_url":"https://github.com/kjd/idna"},{"name":"imageio","old_version":"2.37.4","new_version":"2.38.0","repository_url":"https://github.com/imageio/imageio"},{"name":"importlib-metadata","old_version":"9.0.0","new_version":"9.0.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"joblib","old_version":"1.5.3","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"joserfc","old_version":"1.7.4","new_version":"1.7.5","repository_url":"https://github.com/authlib/joserfc"},{"name":"kiwisolver","old_version":"1.5.0","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.5","new_version":"0.6","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librt","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/mypyc/librt"},{"name":"mmh3","old_version":"5.3.0","new_version":"5.3.1","repository_url":"https://github.com/hajimes/mmh3"},{"name":"narwhals","old_version":"2.25.0","new_version":"2.26.0","repository_url":"https://github.com/narwhals-dev/narwhals"},{"name":"nvidia-cublas","old_version":"13.6.1.10","new_version":"13.8.1.7"},{"name":"nvidia-cuda-cupti","old_version":"13.3.75","new_version":"13.4.92"},{"name":"nvidia-cuda-nvrtc","old_version":"13.3.33","new_version":"13.4.92"},{"name":"nvidia-cuda-runtime","old_version":"13.3.29","new_version":"13.4.92"},{"name":"nvidia-cudnn-cu13","old_version":"9.24.0.43","new_version":"9.27.0.42"},{"name":"nvidia-cufft","old_version":"12.3.0.29","new_version":"12.4.0.43"},{"name":"nvidia-cufile","old_version":"1.18.1.6","new_version":"1.19.1.55"},{"name":"nvidia-curand","old_version":"10.4.3.29","new_version":"10.4.4.72"},{"name":"nvidia-cusolver","old_version":"12.2.6.9","new_version":"12.3.4.7"},{"name":"nvidia-cusparse","old_version":"12.8.2.51","new_version":"12.8.6.72"},{"name":"nvidia-cusparselt-cu13","old_version":"0.9.1","new_version":"0.10.0"},{"name":"nvidia-nccl-cu13","old_version":"2.31.2","new_version":"2.32.3"},{"name":"nvidia-nvjitlink","old_version":"13.3.33","new_version":"13.4.92"},{"name":"nvidia-nvshmem-cu13","old_version":"3.7.2","new_version":"3.8.0"},{"name":"nvidia-nvtx","old_version":"13.3.29","new_version":"13.4.92"},{"name":"onnxruntime","old_version":"1.29.0","new_version":"1.30.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"opentelemetry-api","old_version":"1.44.0","new_version":"1.45.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.44.0","new_version":"1.45.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.44.0","new_version":"1.45.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.44.0","new_version":"1.45.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-sdk","old_version":"1.44.0","new_version":"1.45.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.65b0","new_version":"0.66b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pillow-heif","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/bigcat88/pillow_heif"},{"name":"platformdirs","old_version":"4.11.5","new_version":"4.12.2","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"propcache","old_version":"0.5.2","new_version":"0.5.4","repository_url":"https://github.com/aio-libs/propcache"},{"name":"protobuf","old_version":"7.36.0","new_version":"7.36.2"},{"name":"py-key-value-aio","old_version":"0.4.5","new_version":"0.4.6"},{"name":"pydantic-core","old_version":"2.48.0","new_version":"2.49.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pyjwt","old_version":"2.13.0","new_version":"2.15.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyproject-hooks","old_version":"1.2.0","new_version":"1.3.3","repository_url":"https://github.com/pypa/pyproject-hooks"},{"name":"regex","old_version":"2026.7.19","new_version":"2026.9.29","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"rich-rst","old_version":"2.1.0","new_version":"2.2.0","repository_url":"https://github.com/wasi-master/rich-rst"},{"name":"scikit-learn","old_version":"1.9.0","new_version":"1.9.1","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"starlette","old_version":"1.6.0","new_version":"1.7.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"threadpoolctl","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tokenizers","old_version":"0.23.1","new_version":"0.23.2","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"tqdm","old_version":"4.70.0","new_version":"4.70.1","repository_url":"https://github.com/tqdm/tqdm"},{"name":"triton","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"typer","old_version":"0.27.1","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"tzdata","old_version":"2026.3","new_version":"2026.4","repository_url":"https://github.com/python/tzdata"},{"name":"uvloop","old_version":"0.22.1","new_version":"0.23.0","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"watchfiles","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websocket-client","old_version":"1.9.0","new_version":"1.9.2","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"xyzservices","old_version":"2026.3.0","new_version":"2026.9.1","repository_url":"https://github.com/geopandas/xyzservices"},{"name":"yarl","old_version":"1.24.5","new_version":"1.25.1","repository_url":"https://github.com/aio-libs/yarl"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 90 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.5` | `3.0.6` |\n| [xarray](https://github.com/pydata/xarray) | `2026.7.0` | `2026.9.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.11.1` | `3.11.2` |\n| [transformers](https://github.com/huggingface/transformers) | `5.16.1` | `5.18.0` |\n| [torch](https://github.com/pytorch/pytorch) | `2.13.0` | `2.14.1` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.14.0` | `1.15.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.3` | `1.2.4` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.141.1` | `0.142.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.52.4` | `0.54.0` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.4.8` | `3.5.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| [geopandas](https://github.com/geopandas/geopandas) | `1.1.4` | `1.2.0` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.5.5` | `1.5.6` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.5` | `0.16.10` |\n| [mypy](https://github.com/python/mypy) | `2.3.1` | `2.4.0` |\n| [affine](https://github.com/rasterio/affine) | `3.0.0` | `3.0.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.2` | `4.15.1` |\n| [ast-serialize](https://github.com/mypyc/ast_serialize) | `0.8.0` | `0.11.2` |\n| [authlib](https://github.com/authlib/authlib) | `1.7.2` | `1.8.0` |\n| [build](https://github.com/pypa/build) | `1.6.0` | `1.6.1` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.2.0` |\n| [caio](https://github.com/mosquito/caio) | `0.12.2` | `0.12.9` |\n| [cftime](https://github.com/Unidata/cftime) | `1.6.5` | `1.6.6` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.5.1` | `3.5.2` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.15.4` | `7.16.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.1` | `50.0.2` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.3.1` | `13.4.3` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.8.0` | `1.8.3` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.3.1` | `13.4.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.63.0` | `4.66.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.7.0` | `2026.9.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.75.2` | `1.75.5` |\n| griffelib | `2.2.0` | `2.3.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.83.1` | `1.84.0` |\n| [idna](https://github.com/kjd/idna) | `3.19` | `3.20` |\n| [imageio](https://github.com/imageio/imageio) | `2.37.4` | `2.38.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `9.0.0` | `9.0.1` |\n| [joblib](https://github.com/joblib/joblib) | `1.5.3` | `1.6.0` |\n| [joserfc](https://github.com/authlib/joserfc) | `1.7.4` | `1.7.5` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.5.0` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.5` | `0.6` |\n| [librt](https://github.com/mypyc/librt) | `0.15.0` | `0.16.0` |\n| [mmh3](https://github.com/hajimes/mmh3) | `5.3.0` | `5.3.1` |\n| [narwhals](https://github.com/narwhals-dev/narwhals) | `2.25.0` | `2.26.0` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.6.1.10` | `13.8.1.7` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.3.75` | `13.4.92` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.3.33` | `13.4.92` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.3.29` | `13.4.92` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.24.0.43` | `9.27.0.42` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.3.0.29` | `12.4.0.43` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.18.1.6` | `1.19.1.55` |\n| [nvidia-curand](https://developer.nvidia.com/cuda-zone) | `10.4.3.29` | `10.4.4.72` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.2.6.9` | `12.3.4.7` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.8.2.51` | `12.8.6.72` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.9.1` | `0.10.0` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.31.2` | `2.32.3` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.3.33` | `13.4.92` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.7.2` | `3.8.0` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.3.29` | `13.4.92` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.29.0` | `1.30.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.65b0` | `0.66b0` |\n| [pillow-heif](https://github.com/bigcat88/pillow_heif) | `1.5.0` | `1.8.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.11.5` | `4.12.2` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.5.2` | `0.5.4` |\n| [protobuf](https://developers.google.com/protocol-buffers/) | `7.36.0` | `7.36.2` |\n| py-key-value-aio | `0.4.5` | `0.4.6` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.48.0` | `2.49.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.13.0` | `2.15.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.3.2` | `3.3.3` |\n| [pyproject-hooks](https://github.com/pypa/pyproject-hooks) | `1.2.0` | `1.3.3` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.7.19` | `2026.9.29` |\n| [rich-rst](https://github.com/wasi-master/rich-rst) | `2.1.0` | `2.2.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.9.0` | `1.9.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.6.0` | `1.7.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.6.0` | `3.7.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.23.1` | `0.23.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.70.0` | `4.70.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.7.1` | `3.8.0` |\n| [typer](https://github.com/fastapi/typer) | `0.27.1` | `0.27.2` |\n| [tzdata](https://github.com/python/tzdata) | `2026.3` | `2026.4` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.22.1` | `0.23.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.2.0` | `1.3.0` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.9.0` | `1.9.2` |\n| [xyzservices](https://github.com/geopandas/xyzservices) | `2026.3.0` | `2026.9.1` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.24.5` | `1.25.1` |\n\n\nUpdates `pandas` from 3.0.5 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.5...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xarray` from 2026.7.0 to 2026.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydata/xarray/releases\"\u003exarray's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2026.09.0\u003c/h2\u003e\n\u003cp\u003eThis release adds read support for Zarr V3 rectilinear (variable-sized) chunks, Arrow PyCapsule export for :py:class:\u003ccode\u003eDataArray\u003c/code\u003e, a new :py:meth:\u003ccode\u003eDataArray.plot.lines\u003c/code\u003e plotting method, :py:class:\u003ccode\u003eDataTree\u003c/code\u003e support in :py:func:\u003ccode\u003eapply_ufunc\u003c/code\u003e, and flox-accelerated groupby medians. Bottleneck is now disabled by default, the remaining zarr-python 2 compatibility code has been removed, and the minimum \u003ccode\u003eh5netcdf\u003c/code\u003e version is now 1.8. It also includes many bug fixes.\u003c/p\u003e\n\u003cp\u003eThis is the last xarray release that will support Python 3.11. Future releases will require Python 3.12 or later.\u003c/p\u003e\n\u003cp\u003eThanks to the 45 contributors to this release:\nANIRUDDHA ADAK, Ahmet Kamer Çivi, Albert Yau, Andrew Scherer, Anirban Mandal, Aryan Singh K., Asish Kumar, Chandan P, Charles Turner, Deepak Cherian, Devraj Pal, Dipak Chaudhari, Eltsefon Mark, Evan Lyall, Illviljan, Joe Hamman, Johnson K C, Jules Chéron, Justus Magin, Kropiunig, Marcus Campbell, Mark Harfouche, Matt Van Horn, Matthew Rocklin, Matthias Schabel, Michael Niklas, Nick Hodgskin, Patrick N. Raanes, Peter Hron, Puneet Dixit, QinXi, Samuel Le Meur-Diebolt, Spencer Clark, Stanley C, Stephan Hoyer, Thomas Kluyver, Tom Nicholas, dsk0425-sketch, genrichez, hushen, imam, omsatpute61-afk, stepit, whn and ✨Sarah Z✨\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd empty whats-new section for v2026.07.1 by \u003ca href=\"https://github.com/shoyer\"\u003e\u003ccode\u003e@​shoyer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11446\"\u003epydata/xarray#11446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: remove unused imports in quick overview guide by \u003ca href=\"https://github.com/stefanopitton\"\u003e\u003ccode\u003e@​stefanopitton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11444\"\u003epydata/xarray#11444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix dask rolling bottleneck dtype metadata by \u003ca href=\"https://github.com/mrocklin\"\u003e\u003ccode\u003e@​mrocklin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11449\"\u003epydata/xarray#11449\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMAINT: Add make to Pixi::doc feature by \u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11457\"\u003epydata/xarray#11457\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable bottleneck by default by \u003ca href=\"https://github.com/takluyver\"\u003e\u003ccode\u003e@​takluyver\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11461\"\u003epydata/xarray#11461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix polyval returning a sentinel value for NaT in timedelta coordinates by \u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11478\"\u003epydata/xarray#11478\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMaintenance: Support zarr\u0026gt;=3.0 by \u003ca href=\"https://github.com/jhamman\"\u003e\u003ccode\u003e@​jhamman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11232\"\u003epydata/xarray#11232\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix stacking dimensions with falsy names by \u003ca href=\"https://github.com/JOhnsonKC201\"\u003e\u003ccode\u003e@​JOhnsonKC201\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11477\"\u003epydata/xarray#11477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from nbsphinx/jupyter-sphinx to myst_nb by \u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11456\"\u003epydata/xarray#11456\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHarmonize encoding from h5netcdf with netcdf4 by \u003ca href=\"https://github.com/hmaarrfk\"\u003e\u003ccode\u003e@​hmaarrfk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11067\"\u003epydata/xarray#11067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC explain how open_dataset handles grouped files by \u003ca href=\"https://github.com/Whning0513\"\u003e\u003ccode\u003e@​Whning0513\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11497\"\u003epydata/xarray#11497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: document stable sortby ordering by \u003ca href=\"https://github.com/Whning0513\"\u003e\u003ccode\u003e@​Whning0513\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11491\"\u003epydata/xarray#11491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: describe custom index inline representations by \u003ca href=\"https://github.com/Whning0513\"\u003e\u003ccode\u003e@​Whning0513\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11493\"\u003epydata/xarray#11493\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOCS: Update contrib instructions for Myst-nb by \u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11487\"\u003epydata/xarray#11487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRerun \u003ccode\u003egenerate_aggregations.py\u003c/code\u003e by \u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11489\"\u003epydata/xarray#11489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump scientific-python/issue-from-pytest-log-action by \u003ca href=\"https://github.com/keewis\"\u003e\u003ccode\u003e@​keewis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11498\"\u003epydata/xarray#11498\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egenerate-aggregations\u003c/code\u003e Pixi task and CI workflow by \u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11495\"\u003epydata/xarray#11495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump \u003ccode\u003eissue-from-pytest-log-action\u003c/code\u003e to v1.6.2 by \u003ca href=\"https://github.com/keewis\"\u003e\u003ccode\u003e@​keewis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11500\"\u003epydata/xarray#11500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove aggregation docstrings to improve searchability by \u003ca href=\"https://github.com/SomeCoder23\"\u003e\u003ccode\u003e@​SomeCoder23\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11471\"\u003epydata/xarray#11471\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emove the nightly env into its own file by \u003ca href=\"https://github.com/keewis\"\u003e\u003ccode\u003e@​keewis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11481\"\u003epydata/xarray#11481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eenable interactive exploration of examples using \u003ccode\u003ejupyterlite-sphinx\u003c/code\u003e by \u003ca href=\"https://github.com/keewis\"\u003e\u003ccode\u003e@​keewis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/10299\"\u003epydata/xarray#10299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUG: Fix coordinate transform shape after transpose by \u003ca href=\"https://github.com/sdiebolt\"\u003e\u003ccode\u003e@​sdiebolt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11513\"\u003epydata/xarray#11513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003eBooleanCoder\u003c/code\u003e from \u003ccode\u003ezarr\u003c/code\u003e writes by \u003ca href=\"https://github.com/elyall\"\u003e\u003ccode\u003e@​elyall\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11318\"\u003epydata/xarray#11318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse flox for median in groupby/resample operations by \u003ca href=\"https://github.com/sdiebolt\"\u003e\u003ccode\u003e@​sdiebolt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11239\"\u003epydata/xarray#11239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: run slow Hypothesis job on schedule and dispatch by \u003ca href=\"https://github.com/aryansk\"\u003e\u003ccode\u003e@​aryansk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11520\"\u003epydata/xarray#11520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: dask divide by zero error when empty dimensions are passed into partial autochunk spec by \u003ca href=\"https://github.com/charles-turner-1\"\u003e\u003ccode\u003e@​charles-turner-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11486\"\u003epydata/xarray#11486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise a TypeError when a Coordinates object is used as a coordinate value by \u003ca href=\"https://github.com/NoiceHax\"\u003e\u003ccode\u003e@​NoiceHax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11523\"\u003epydata/xarray#11523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid densifying sparse.COO data in to_series()/to_dataframe() by \u003ca href=\"https://github.com/patnr\"\u003e\u003ccode\u003e@​patnr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11528\"\u003epydata/xarray#11528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI: mypy errors and doctest warning by \u003ca href=\"https://github.com/dcherian\"\u003e\u003ccode\u003e@​dcherian\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11535\"\u003epydata/xarray#11535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix alignment and copy of transposed CoordinateTransformIndex-backed arrays by \u003ca href=\"https://github.com/sdiebolt\"\u003e\u003ccode\u003e@​sdiebolt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11532\"\u003epydata/xarray#11532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bool test arrays in construct_dataarray being all False by \u003ca href=\"https://github.com/marcus-campbell\"\u003e\u003ccode\u003e@​marcus-campbell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11529\"\u003epydata/xarray#11529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003cstrong\u003earrow_c_stream\u003c/strong\u003e function by \u003ca href=\"https://github.com/jules-ch\"\u003e\u003ccode\u003e@​jules-ch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11338\"\u003epydata/xarray#11338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix scalar selection for nested tuple MultiIndex keys by \u003ca href=\"https://github.com/puneetdixit200\"\u003e\u003ccode\u003e@​puneetdixit200\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11348\"\u003epydata/xarray#11348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix LaTeX labels broken by textwrap in plot utils (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11452\"\u003e#11452\u003c/a\u003e) by \u003ca href=\"https://github.com/genrichez\"\u003e\u003ccode\u003e@​genrichez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11476\"\u003epydata/xarray#11476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't warn about a missing _FillValue for CF coordinate variables by \u003ca href=\"https://github.com/NoiceHax\"\u003e\u003ccode\u003e@​NoiceHax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11524\"\u003epydata/xarray#11524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11518: Fix keepdims in \u003ccode\u003eDatasetGroupBy.xyz\u003c/code\u003e and \u003ccode\u003eDatasetRolling.xyz\u003c/code\u003e by \u003ca href=\"https://github.com/charles-turner-1\"\u003e\u003ccode\u003e@​charles-turner-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11521\"\u003epydata/xarray#11521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMAINT: Update pixi-lock action by \u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11546\"\u003epydata/xarray#11546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt to upstream change in resampling with a \u003ccode\u003eDay\u003c/code\u003e frequency by \u003ca href=\"https://github.com/spencerkclark\"\u003e\u003ccode\u003e@​spencerkclark\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11547\"\u003epydata/xarray#11547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire h5netcdf for running \u003ccode\u003eTestNetCDF4ClassicViaH5NetCDFData\u003c/code\u003e tests by \u003ca href=\"https://github.com/spencerkclark\"\u003e\u003ccode\u003e@​spencerkclark\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11550\"\u003epydata/xarray#11550\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt to change in behavior of \u003ccode\u003epd.DateOffset\u003c/code\u003e in \u003ccode\u003eisinstance\u003c/code\u003e by \u003ca href=\"https://github.com/spencerkclark\"\u003e\u003ccode\u003e@​spencerkclark\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11548\"\u003epydata/xarray#11548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix typo/grammar in \u003ccode\u003eDataset._rename()\u003c/code\u003e docstring by \u003ca href=\"https://github.com/charles-turner-1\"\u003e\u003ccode\u003e@​charles-turner-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/xarray/pull/11557\"\u003epydata/xarray#11557\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/2f3339b20e6ea0e856a0b89a2c75b00ad275f080\"\u003e\u003ccode\u003e2f3339b\u003c/code\u003e\u003c/a\u003e Update whats-new for v2026.09.0 release (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11641\"\u003e#11641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/f515b4d12d2ca019feff3ec772300ce33fbfad54\"\u003e\u003ccode\u003ef515b4d\u003c/code\u003e\u003c/a\u003e Add LineCollection plot (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/7173\"\u003e#7173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/7b03d827dfd957702f57bcb98021e23ef504efce\"\u003e\u003ccode\u003e7b03d82\u003c/code\u003e\u003c/a\u003e Update release command in HOW_TO_RELEASE.md (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11640\"\u003e#11640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/e75bcf95b88a945bbff34cb6d1a33d10727c3560\"\u003e\u003ccode\u003ee75bcf9\u003c/code\u003e\u003c/a\u003e Read-only support for Zarr V3 rectilinear (variable-size) chunks (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11592\"\u003e#11592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/c1253559d13de7fd3f0be718b25e7acd3b5ef618\"\u003e\u003ccode\u003ec125355\u003c/code\u003e\u003c/a\u003e Add whats-new entry for scipy backend axis-reorder fix (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11639\"\u003e#11639\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/a1ded92bba2604e8f2678dc5ed792c0043076270\"\u003e\u003ccode\u003ea1ded92\u003c/code\u003e\u003c/a\u003e fix: preserve stringdtype in zarr v3 round trips (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11474\"\u003e#11474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/5bf7aa271cc4660aa5768af9d2178042cfc03cd4\"\u003e\u003ccode\u003e5bf7aa2\u003c/code\u003e\u003c/a\u003e Fix axis reordering bug in scipy backend outer indexing (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11638\"\u003e#11638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/ede38e513f648eaf38fc5acf5ad03fba05c35d8d\"\u003e\u003ccode\u003eede38e5\u003c/code\u003e\u003c/a\u003e Warn when explicit dims rename tuple-style DataArray coords (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11292\"\u003e#11292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/154bdf69f33edc99929f8c6987fc566587a3a109\"\u003e\u003ccode\u003e154bdf6\u003c/code\u003e\u003c/a\u003e Fix str.replace(..., n=0) replacing every occurrence instead of none (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11545\"\u003e#11545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/xarray/commit/1161f7b42507b54f01660f850fdf4922676b018a\"\u003e\u003ccode\u003e1161f7b\u003c/code\u003e\u003c/a\u003e Document how to find unlimited_dims via encoding (\u003ca href=\"https://redirect.github.com/pydata/xarray/issues/11618\"\u003e#11618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydata/xarray/compare/v2026.07.0...v2026.09.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.11.1 to 3.11.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREL: v3.11.2\u003c/h2\u003e\n\u003cp\u003eThis is the second bugfix release of the 3.11.x series.\u003c/p\u003e\n\u003cp\u003eThis release contains several bug-fixes and adjustments:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up RGBA-stage image resampling\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ehexbin\u003c/code\u003e clipping in PDF output\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e\\text\u003c/code\u003e with internal braces\u003c/li\u003e\n\u003cli\u003eFix some crashes and make some checks more robust to unlikely cases\u003c/li\u003e\n\u003cli\u003eFix frame skew when saving GIF animations with \u003ccode\u003ePillowWriter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix HiDPI handling in Qt toolbar and WebAgg embeddings\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eResizeEvent\u003c/code\u003e handling for \u003ccode\u003eTextBox\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix bug with PGF hatch linewidth and color\u003c/li\u003e\n\u003cli\u003eFix a bug with drawing an empty Collection\u003c/li\u003e\n\u003cli\u003eFix incorrect glyphs in Cairo backends\u003c/li\u003e\n\u003cli\u003eImprove build system to prevent conflicts between wheels and system libraries\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d3ca9172e392048ec242b90e8423e88d1a3000b2\"\u003e\u003ccode\u003ed3ca917\u003c/code\u003e\u003c/a\u003e REL: v3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/b76fea990aa10afdba9225ee0f058d942cfcb770\"\u003e\u003ccode\u003eb76fea9\u003c/code\u003e\u003c/a\u003e DOC: Set current version to 3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/39c7f0678af763abe850b41a71cd2724e326157c\"\u003e\u003ccode\u003e39c7f06\u003c/code\u003e\u003c/a\u003e DOC: Prepare GitHub stats for 3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5dd13e39ceadb89af6e17c64cb0c71a2c3ddc94e\"\u003e\u003ccode\u003e5dd13e3\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.11.1-doc' into release-3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/aa484be97e65ffa1c7e2770864dc44a219625180\"\u003e\u003ccode\u003eaa484be\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.11.0-doc' into v3.11.1-doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/0e10f83000d7993160feb264f84150b5a4cacfff\"\u003e\u003ccode\u003e0e10f83\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32330\"\u003e#32330\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-32324-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/ebe947bd694df95e189fb93b63060051a6b55f3d\"\u003e\u003ccode\u003eebe947b\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32324\"\u003e#32324\u003c/a\u003e: Don't force any diagnostics to be errors in bundled Harfbuzz\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/8f4b7c53b228dceded120488f569ff936d91844c\"\u003e\u003ccode\u003e8f4b7c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32322\"\u003e#32322\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-32321-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/93278ade075ca4b6483afac10f9a2d1e775a5f36\"\u003e\u003ccode\u003e93278ad\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32321\"\u003e#32321\u003c/a\u003e: DOC: correct note about PyOS_InputHook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/b0aee786396e59de7ea5a1cec646cbc889250b57\"\u003e\u003ccode\u003eb0aee78\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32319\"\u003e#32319\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-32305-on-v...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.11.1...v3.11.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.16.1 to 5.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 5.18.0\u003c/h2\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eNemotron 3 Diarization\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eNemotron 3 Diarization is an open-weight streaming speaker diarization model designed to determine \u0026quot;who spoke when\u0026quot; in real-world audio. It supports both streaming and offline inference, handles up to eight speakers, and orders speaker outputs by each speaker's first arrival in the input audio.\u003c/p\u003e\n\u003cp\u003eThe model uses the Arrival-Order Speaker Cache (AOSC) \u003ca href=\"https://huggingface.co/papers/2507.18446\"\u003e1\u003c/a\u003e and FIFO queue introduced for Streaming Sortformer \u003ca href=\"https://huggingface.co/papers/2507.18446\"\u003e1\u003c/a\u003e, \u003ca href=\"https://huggingface.co/papers/2409.06656\"\u003e2\u003c/a\u003e. A single checkpoint supports configurable latency profiles, from an 80 ms input buffer to a 30.4 s offline-style buffer, and configurable output frame resolution in multiples of 10 ms. With chunked inference, the maximum audio duration is not limited.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/nemotron3_diarization\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Nemotron3Diarization (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/49056\"\u003e#49056\u003c/a\u003e) by \u003ca href=\"https://github.com/eustlb\"\u003e\u003ccode\u003e@​eustlb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/49056\"\u003e#49056\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNemotronH Omni\u003c/h3\u003e\n\u003cp\u003eNemotronH Omni is a multimodal reasoning model from NVIDIA that pairs the \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/nemotron_h\"\u003eNemotronH\u003c/a\u003e hybrid\nMamba-Transformer language model with a \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/radio\"\u003eRADIO\u003c/a\u003e vision encoder and an optional Parakeet-based sound encoder.\nImage (and video) patches are projected through a RADIO tower and a pixel-shuffle MLP into the language model's\nembedding space at the \u003ccode\u003e\u0026lt;image\u0026gt;\u003c/code\u003e / \u003ccode\u003e\u0026lt;video\u0026gt;\u003c/code\u003e context-token positions; audio clips are projected in the same way at\n\u003ccode\u003e\u0026lt;audio\u0026gt;\u003c/code\u003e positions. The result is a single autoregressive model that reasons jointly over text, images, video and\nsound.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/nemotron_h_omni\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Nemotron Omni (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46509\"\u003e#46509\u003c/a\u003e) by \u003ca href=\"https://github.com/meatybobby\"\u003e\u003ccode\u003e@​meatybobby\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46509\"\u003e#46509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHyperCLOVAX Vision V2\u003c/h3\u003e\n\u003cp\u003eHyperCLOVAX Vision V2 is a multimodal vision-language model developed by NAVER. It combines the \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/hyperclovax\"\u003eHyperClovaX\u003c/a\u003e language model backbone with a \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen2_5_vl\"\u003eQwen2.5-VL\u003c/a\u003e vision encoder. The model supports text, image, and video inputs and is capable of chain-of-thought reasoning via built-in thinking tokens (\u003ccode\u003e\u0026lt;think\u0026gt;...\u0026lt;/think\u0026gt;\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/hyperclovax_vision_v2\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eadd HyperClovaX Vision (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44314\"\u003e#44314\u003c/a\u003e) by \u003ca href=\"https://github.com/jp1924\"\u003e\u003ccode\u003e@​jp1924\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/44314\"\u003e#44314\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGTE\u003c/h3\u003e\n\u003cp\u003eGTE was proposed in \u003ca href=\"https://huggingface.co/papers/2407.19669\"\u003emGTE: Generalized Long-Context Text Representation and Reranking Models for Multilingual Text Retrieval\u003c/a\u003e by Xin Zhang, Yanzhao Zhang, Dingkun Long, Wen Xie, Ziqi Dai, Jialong Tang, Huan Lin, Baosong Yang, Pengjun Xie, Fei Huang, Meishan Zhang, Wenjie Li and Min Zhang.\u003c/p\u003e\n\u003cp\u003eGTE is a BERT-style bidirectional encoder that replaces absolute position embeddings with RoPE, uses a gated MLP, and applies layer normalization after each residual connection. The same architecture backs Alibaba's \u003ccode\u003egte-*-v1.5\u003c/code\u003e, \u003ccode\u003egte-multilingual-*\u003c/code\u003e and \u003ccode\u003egte-en-mlm-*\u003c/code\u003e checkpoints as well as Snowflake's \u003ccode\u003esnowflake-arctic-embed-m-v2.0\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/gte\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emodel: Add GTE to Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48416\"\u003e#48416\u003c/a\u003e) by \u003ca href=\"https://github.com/harshaljanjani\"\u003e\u003ccode\u003e@​harshaljanjani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48416\"\u003e#48416\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🚨 [ROCm] gpt-oss: route FA3 to aiter-flash-attn, generate ROCm fixtures (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46837\"\u003e#46837\u003c/a\u003e) by \u003ca href=\"https://github.com/Abdennacer-Badaoui\"\u003e\u003ccode\u003e@​Abdennacer-Badaoui\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🚨 Speed up detr image processing (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48066\"\u003e#48066\u003c/a\u003e) by \u003ca href=\"https://github.com/guarin\"\u003e\u003ccode\u003e@​guarin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🚨 Remap indexers layer_type (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48974\"\u003e#48974\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🚨 [vLLM] Fix video token counting for Transformers backend video inputs (Part 1) (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48894\"\u003e#48894\u003c/a\u003e) by \u003ca href=\"https://github.com/harshaljanjani\"\u003e\u003ccode\u003e@​harshaljanjani\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/a906d3c4b65095f2308b6a6a193e934d03b8eb5d\"\u003e\u003ccode\u003ea906d3c\u003c/code\u003e\u003c/a\u003e v5.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/57296d1c69d793f7efcaee7b9bd12f401c0f3a38\"\u003e\u003ccode\u003e57296d1\u003c/code\u003e\u003c/a\u003e model: Add GTE to Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48416\"\u003e#48416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/88536f2af2a14f2f9a4f50336fd17dfbe987bbdb\"\u003e\u003ccode\u003e88536f2\u003c/code\u003e\u003c/a\u003e [Nemotron3Diarization] fix streaming last stft frame dropped (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/49167\"\u003e#49167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5cd287772edf72ff340d833cb198c054bc0549f6\"\u003e\u003ccode\u003e5cd2877\u003c/code\u003e\u003c/a\u003e Fix missing router_logits in Qwen3.5-MoE and other MoE models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/49179\"\u003e#49179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4fcb1ff51f5fff1fc4b82a21d42b5cdfb4d937af\"\u003e\u003ccode\u003e4fcb1ff\u003c/code\u003e\u003c/a\u003e Fix MiniMax M3 partial 3D vision rotary embeddings (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/49164\"\u003e#49164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/8520b1566152f1b252357354aa7eec57b955949d\"\u003e\u003ccode\u003e8520b15\u003c/code\u003e\u003c/a\u003e Add Strix Halo (gfx1151) Atlas Inference Hub-kernel path for Qwen3.5/3.6/3.8 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/a877116cf32c25989f0aba0eaee4f0dc00e96948\"\u003e\u003ccode\u003ea877116\u003c/code\u003e\u003c/a\u003e Fix MPS GQA version gating (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/49210\"\u003e#49210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/e0299e2a026db0c6bcc9851294f0468bd07020b2\"\u003e\u003ccode\u003ee0299e2\u003c/code\u003e\u003c/a\u003e Fix additional_special_tokens data loss with extra_special_tokens (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47848\"\u003e#47848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5aab6428edbbf4af3827b329389e4d5fa8536abb\"\u003e\u003ccode\u003e5aab642\u003c/code\u003e\u003c/a\u003e Fix stale _added_tokens_encoder entries in cpmant and wav2vec2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47440\"\u003e#47440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0c18a638046679d8fcccb4cb067b6bcfac0426a8\"\u003e\u003ccode\u003e0c18a63\u003c/code\u003e\u003c/a\u003e Fix deepstack features for mixed-input (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/49177\"\u003e#49177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.1...v5.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `torch` from 2.13.0 to 2.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/pytorch/releases\"\u003etorch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyTorch 2.14.1 Release\u003c/h2\u003e\n\u003cp\u003eThis release is meant to fix the following regressions and silent correctness issues:\u003c/p\u003e\n\u003ch2\u003eSilent correctness fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect \u003ccode\u003etorch.linalg.lstsq\u003c/code\u003e solutions on MPS for complex batched underdetermined systems (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/196113\"\u003e#196113\u003c/a\u003e), fixed by \u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/196128\"\u003e#196128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix non-orthogonal \u003ccode\u003eU\u003c/code\u003e and inaccurate small singular values from \u003ccode\u003etorch.linalg.svd\u003c/code\u003e on MPS for rank-deficient and ill-conditioned inputs (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/196112\"\u003e#196112\u003c/a\u003e), fixed by \u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/196139\"\u003e#196139\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/199063\"\u003e#199063\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate the CUDA 13.2 Linux binaries to CUDA 13.2.2 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/196351\"\u003e#196351\u003c/a\u003e). This NVIDIA update resolves two critical issues that could produce incorrect results (\u003ca href=\"https://docs.nvidia.com/cuda/archive/13.2.2/cuda-toolkit-release-notes/index.html#overview\"\u003eCUDA 13.2.2 release notes\u003c/a\u003e):\n\u003cul\u003e\n\u003cli\u003ecuBLAS: \u003ccode\u003ecublasLtMatmul()\u003c/code\u003e could ignore tensor-wide scaling for NVFP4 matrix multiplications (introduced in CUDA 13.2 Update 1)\u003c/li\u003e\n\u003cli\u003eCompiler: failed thread reconvergence could leave stale or corrupted register values in kernels with nested thread divergence (present since CUDA 12.8)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRegression fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003etorch.linalg.svd\u003c/code\u003e, \u003ccode\u003etorch.linalg.svdvals\u003c/code\u003e and \u003ccode\u003etorch.linalg.lstsq\u003c/code\u003e failing on MPS with a Metal pipeline-state error for inputs above 8192 elements (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/195937\"\u003e#195937\u003c/a\u003e), fixed by \u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/195949\"\u003e#195949\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/195950\"\u003e#195950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix internal assert in \u003ccode\u003etorch.svd(out=)\u003c/code\u003e on MPS for complex inputs (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/195822\"\u003e#195822\u003c/a\u003e), fixed by \u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/195872\"\u003e#195872\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePyTorch 2.14.0 Release Notes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#highlights\"\u003eHighlights\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes\"\u003eBackwards Incompatible Changes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#deprecations\"\u003eDeprecations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#new-features\"\u003eNew Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#improvements\"\u003eImprovements\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes\"\u003eBug fixes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#performance\"\u003ePerformance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#developers\"\u003eDevelopers\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHighlights\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eFor more details about these highlighted features, you can look at the release blogpost. Below are the full release notes for this release.\u003c/p\u003e\n\u003ch1\u003eBackwards Incompatible Changes\u003c/h1\u003e\n\u003ch2\u003etorch.nn\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003etorch.nn.LinearCrossEntropyOptions\u003c/code\u003e no longer accepts \u003ccode\u003eacc_policy=\u0026quot;balanced\u0026quot;\u003c/code\u003e; use \u003ccode\u003e\u0026quot;compact\u0026quot;\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/188283\"\u003e#188283\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003e\u0026quot;balanced\u0026quot;\u003c/code\u003e policy was removed because \u003ccode\u003e\u0026quot;compact\u0026quot;\u003c/code\u003e provides the same weight-gradient accumulation precision with lower memory use on CUDA, already uses the equivalent scratch layout for mixed-precision inputs on other devices, and was never selected by \u003ccode\u003e\u0026quot;auto\u0026quot;\u003c/code\u003e. Constructing the options with \u003ccode\u003eacc_policy=\u0026quot;balanced\u0026quot;\u003c/code\u003e now raises \u003ccode\u003eValueError: invalid acc_policy: 'balanced'; expected one of 'auto', 'accurate', 'compact'\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/5c4886908584029761b579af026dcfb627c84070\"\u003e\u003ccode\u003e5c48869\u003c/code\u003e\u003c/a\u003e [MPS] Fix Jacobi SVD convergence for small columns (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/199086\"\u003e#199086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/35223a275e49a6154269e19ac34b7fdd9709d031\"\u003e\u003ccode\u003e35223a2\u003c/code\u003e\u003c/a\u003e [release/2.14] Run the release runner-group reconcile in pytorch/pytorch (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/19\"\u003e#19\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/41ffbc4a994e058af9fe00ed5caba73fc1033359\"\u003e\u003ccode\u003e41ffbc4\u003c/code\u003e\u003c/a\u003e [release-only] Update version to 2.14.1 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/198661\"\u003e#198661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/e8f0c016eefa7870720d625f4e71bb6265d6c5c0\"\u003e\u003ccode\u003ee8f0c01\u003c/code\u003e\u003c/a\u003e [release/2.14] [CD] Update to CUDA 13.2.2 for Linux binaries (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/198644\"\u003e#198644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/911665dcb02655bac5948e5ced8d8232372d9941\"\u003e\u003ccode\u003e911665d\u003c/code\u003e\u003c/a\u003e [MPS] Cherry-pick native SVD fixes into release/2.14 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/198394\"\u003e#198394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/2b3ec34829036a65cd9d1398ea72a0167dc37470\"\u003e\u003ccode\u003e2b3ec34\u003c/code\u003e\u003c/a\u003e [release/2.14] Import SDPAParams in test_transformers to fix lint (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194970\"\u003e#194970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/08187d9e0fba026dc8217405802ab5381dc88d90\"\u003e\u003ccode\u003e08187d9\u003c/code\u003e\u003c/a\u003e [cuDNN] Add guards for cuDNN SDPA decode (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194963\"\u003e#194963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/8ceea97051dec8f6bee23d24bd7704dcb6843ade\"\u003e\u003ccode\u003e8ceea97\u003c/code\u003e\u003c/a\u003e Pin cython \u0026lt; 3.3.0 for the Windows Triton wheel build (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194931\"\u003e#194931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/99ecebc63014f3454331b5a0914871daa063b512\"\u003e\u003ccode\u003e99ecebc\u003c/code\u003e\u003c/a\u003e [Cherry-pick][release/2.14] [inductor] Fix loop-local load CSE lifetime (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194\"\u003e#194\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/ec283a75077fa3ee24a9cda2c58d2b24d95ca98c\"\u003e\u003ccode\u003eec283a7\u003c/code\u003e\u003c/a\u003e Bump the Python 3.15 numpy pin to 2.5.2 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194821\"\u003e#194821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/pytorch/compare/v2.13.0...v2.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `accelerate` from 1.14.0 to 1.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/accelerate/releases\"\u003eaccelerate's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev1.15.0: FSDP2 activation memory, dtensor improvements\u003c/h1\u003e\n\u003ch2\u003eFSDP2\u003c/h2\u003e\n\u003cp\u003eA large batch of FSDP2 work this release: two fixes that cut activation memory at long sequence lengths, tied-embedding support on torch \u0026gt;= 2.13, and a round of checkpointing correctness and scale fixes.\u003c/p\u003e\n\u003cp\u003eActivation checkpointing was wrapping each \u003cem\u003echild\u003c/em\u003e of the matched layer (\u003ccode\u003eself_attn\u003c/code\u003e, \u003ccode\u003emlp\u003c/code\u003e, the norms) instead of the layer itself, so every inter-child activation stayed saved for backward. It now wraps the layer.\u003c/p\u003e\n\u003cp\u003eThere's also a new FSDP2-only \u003ccode\u003eactivation_checkpointing_offload\u003c/code\u003e, which moves the remaining per-layer checkpoint inputs to pinned CPU memory. Gradients are exactly those of plain activation checkpointing:\u003c/p\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003e# fsdp2.yaml\r\nfsdp_config:\r\n  fsdp_version: 2\r\n  fsdp_auto_wrap_policy: TRANSFORMER_BASED_WRAP\r\n  fsdp_activation_checkpointing: true\r\n  fsdp_activation_checkpointing_offload: true\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eaccelerate launch --config_file fsdp2.yaml train.py\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eFSDP2 activation checkpointing: wrap the matched transformer layer itself, not each of its children by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4172\"\u003e#4172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd FSDP2 \u003ccode\u003eactivation_checkpointing_offload\u003c/code\u003e: offload checkpointed layer inputs to pinned CPU memory by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4175\"\u003e#4175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix FSDP2 tied-embedding models on torch \u0026gt;= 2.13: put the output embedding in the same fully_shard group by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4171\"\u003e#4171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix FSDP2/PEFT/\u003ccode\u003eFULL_STATE_DICT\u003c/code\u003e dropping every rank's adapter shard except rank 0 by \u003ca href=\"https://github.com/AmineDiro\"\u003e\u003ccode\u003e@​AmineDiro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4206\"\u003e#4206\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFSDP2: per-rank torch.save/load for SHARDED_STATE_DICT to fix 2800+ NPU checkpoint timeout by \u003ca href=\"https://github.com/gygdh-001\"\u003e\u003ccode\u003e@​gygdh-001\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4105\"\u003e#4105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix FSDP sharded checkpoint path resolution by \u003ca href=\"https://github.com/HaomingSong\"\u003e\u003ccode\u003e@​HaomingSong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4119\"\u003e#4119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise a clear error when FSDP is enabled on a mesh with no shard dimension by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4180\"\u003e#4180\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDTensor\u003c/h2\u003e\n\u003cp\u003eTwo fixes for DTensor-sharded models, which you hit with FSDP2, tensor parallelism, or any N-D parallelism setup: gradient clipping no longer fails on the \u003ccode\u003eforeach\u003c/code\u003e op when plain tensors and DTensors are mixed, and \u003ccode\u003eprepare_model\u003c/code\u003e leaves an already-sharded model where it is:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eClip grad norm support for dtensors by \u003ca href=\"https://github.com/michaelbenayoun\"\u003e\u003ccode\u003e@​michaelbenayoun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4219\"\u003e#4219\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eprepare_model: don't move DTensor-sharded models to the device by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4181\"\u003e#4181\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOffloading \u0026amp; Quantization\u003c/h2\u003e\n\u003cp\u003eAn entire model can now be dispatched to disk, including tied weights — useful for tools like \u003ccode\u003ellm-compressor\u003c/code\u003e that compress large models on machines that can't hold them:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Offloading] Support full disk offloading by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4083\"\u003e#4083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix disk offload crash on FP8 tensors by \u003ca href=\"https://github.com/shoemoney\"\u003e\u003ccode\u003e@​shoemoney\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4151\"\u003e#4151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTrackers\u003c/h2\u003e\n\u003cp\u003eCustom trackers can be registered by name and then selected from \u003ccode\u003elog_with=\u003c/code\u003e like any built-in one:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom accelerate import Accelerator\r\nfrom accelerate.tracking import register_tracker_class\r\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/6afc1e5ee217051fde702b23de2813344dc0fd33\"\u003e\u003ccode\u003e6afc1e5\u003c/code\u003e\u003c/a\u003e Release: v1.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/636a9343b4265db1212b04c778b8910b5cbfa713\"\u003e\u003ccode\u003e636a934\u003c/code\u003e\u003c/a\u003e Fix nightly CI: tensor parallel size detection and DeepSpeed warmup steps (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/385d9fb40bdb92b0cb34775ad0ef493c171e559f\"\u003e\u003ccode\u003e385d9fb\u003c/code\u003e\u003c/a\u003e docs: fix three dead links left by the docs restructure (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4230\"\u003e#4230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/c424d0b82d4ed61672bf30f1a81ce80370fd945a\"\u003e\u003ccode\u003ec424d0b\u003c/code\u003e\u003c/a\u003e docs: fix garbled sentence in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4231\"\u003e#4231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/0f7e35fe7902cc6ba8dc01b146d6447900464b88\"\u003e\u003ccode\u003e0f7e35f\u003c/code\u003e\u003c/a\u003e Clip grad norm support for dtensors (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4219\"\u003e#4219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/b2ac5095f04585043e21d295afe3aaaacdcc8357\"\u003e\u003ccode\u003eb2ac509\u003c/code\u003e\u003c/a\u003e Fix FSDP2/ PEFT/\u003ccode\u003eFULL_STATE_DICT\u003c/code\u003e dropping every rank's adapter shard except ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/33e8bc499254e7f3886db3f8a277d05a4ad2667e\"\u003e\u003ccode\u003e33e8bc4\u003c/code\u003e\u003c/a\u003e Fix load_accelerator_state only restoring one RNG backend (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4217\"\u003e#4217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/50de3ad45f4da279819529e443ba746eb5b3b187\"\u003e\u003ccode\u003e50de3ad\u003c/code\u003e\u003c/a\u003e Treat MPS out-of-memory errors as OOM in find_executable_batch_size (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4227\"\u003e#4227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/ab5fe8e507366f814fee59138eb96b9879cb05d6\"\u003e\u003ccode\u003eab5fe8e\u003c/code\u003e\u003c/a\u003e feat: add the neuron device branch in state (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4218\"\u003e#4218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/accelerate/commit/9baf95be958c3fd8b2449d1463e6a89e14f61e7d\"\u003e\u003ccode\u003e9baf95b\u003c/code\u003e\u003c/a\u003e Fix MLFLOW_NESTED_RUN never being able to turn nesting off (\u003ca href=\"https://redirect.github.com/huggingface/accelerate/issues/4223\"\u003e#4223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/accelerate/compare/v1.14.0...v1.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.3 to 1.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edotenv get\u003c/code\u003e no longer exits with code 1 for empty string values (\u003ccode\u003eKEY=\u003c/code\u003e) by [\u003ca href=\"https://github.com/ShamikOfficial\"\u003e\u003ccode\u003e@​ShamikOfficial\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn unquoted empty value followed by an inline comment (e.g. \u003ccode\u003eKEY= # comment\u003c/code\u003e) is now parsed as an empty string instead of the comment text by [\u003ca href=\"https://github.com/Noethix55555\"\u003e\u003ccode\u003e@​Noethix55555\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run --no-override\u003c/code\u003e now expands variable references with the same precedence as \u003ccode\u003eload_dotenv(override=False)\u003c/code\u003e, so a value like \u003ccode\u003e${BASE}/suffix\u003c/code\u003e uses the existing \u003ccode\u003eBASE\u003c/code\u003e from the environment instead of the one from the \u003ccode\u003e.env\u003c/code\u003e file by [\u003ca href=\"https://github.com/ROTl24\"\u003e\u003ccode\u003e@​ROTl24\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.4] - 2026-10-01\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edotenv get\u003c/code\u003e no longer exits with code 1 for empty string values (\u003ccode\u003eKEY=\u003c/code\u003e) by [\u003ca href=\"https://github.com/ShamikOfficial\"\u003e\u003ccode\u003e@​ShamikOfficial\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn unquoted empty value followed by an inline comment (e.g. \u003ccode\u003eKEY= # comment\u003c/code\u003e) is now parsed as an empty string instead of the comment text by [\u003ca href=\"https://github.com/Noethix55555\"\u003e\u003ccode\u003e@​Noethix55555\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run --no-override\u003c/code\u003e now expands variable references with the same precedence as \u003ccode\u003eload_dotenv(override=False)\u003c/code\u003e, so a value like \u003ccode\u003e${BASE}/suffix\u003c/code\u003e uses the existing \u003ccode\u003eBASE\u003c/code\u003e from the environment instead of the one from the \u003ccode\u003e.env\u003c/code\u003e file by [\u003ca href=\"https://github.com/ROTl24\"\u003e\u003ccode\u003e@​ROTl24\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/a565c2cc41599c48eabc6b7b7f5b826d43c5a6d7\"\u003e\u003ccode\u003ea565c2c\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.3 → 1.2.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a7abd00261e51baba958e15f443c66165042ea2\"\u003e\u003ccode\u003e4a7abd0\u003c/code\u003e\u003c/a\u003e docs: add 1.2.4 release notes (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f215c0274dc4c310e5ca5feb4c6bddade25ece21\"\u003e\u003ccode\u003ef215c02\u003c/code\u003e\u003c/a\u003e fix: dotenv get exits 0 for empty string values (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/58f2d7c112235b347040bb5cb579d4ebc0a0ad91\"\u003e\u003ccode\u003e58f2d7c\u003c/code\u003e\u003c/a\u003e test: make test_run_with_command_flags portable and meaningful (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e0310e5bb3f2b701b11bbc007ca0c82c1bd56f38\"\u003e\u003ccode\u003ee0310e5\u003c/code\u003e\u003c/a\u003e fix: honor --no-override when expanding variables in dotenv run (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/a00cb2eed0704cd6d2071b2004c37e95ccc86ee5\"\u003e\u003ccode\u003ea00cb2e\u003c/code\u003e\u003c/a\u003e docs: add CHANGELOG entry for \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/663\"\u003e#663\u003c/a\u003e (fix \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/600\"\u003e#600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f5485a61eefa5e686d6d5bdc7aa9ad6b104b1e92\"\u003e\u003ccode\u003ef5485a6\u003c/code\u003e\u003c/a\u003e fix: parse empty unquoted value with inline comment as empty string\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.3...v1.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.141.1 to 0.142.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.142.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Allow startup when automatic OpenTelemetry configuration fails. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16418\"\u003e#16418\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.142.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix repeated endpoint wrapping in included routers. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16414\"\u003e#16414\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.142.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add native OpenTelemetry support. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16403\"\u003e#16403\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📱 Improve mobile responsiveness of conference rail. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16196\"\u003e#16196\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Remove conf section and add event banner. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16193\"\u003e#16193\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove unused image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16195\"\u003e#16195\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Use buttons for Termynal controls. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16132\"\u003e#16132\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for hi (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16212\"\u003e#16212\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16210\"\u003e#16210\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16211\"\u003e#16211\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16208\"\u003e#16208\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16209\"\u003e#16209\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16207\"\u003e#16207\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16206\"\u003e#16206\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16205\"\u003e#16205\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16204\"\u003e#16204\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16203\"\u003e#16203\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16202\"\u003e#16202\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16201\"\u003e#16201\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16171\"\u003e#16171\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix frontend test timeout with Starlette Git. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16408\"\u003e#16408\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Permit.io. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16406\"\u003e#16406\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump anyio from 4.12.1 to 4.14.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16375\"\u003e#16375\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 15 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16285\"\u003e#16285\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 1.3.1 to 1.6.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16289\"\u003e#16289\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump annotated-doc from 0.0.4 to 0.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16288\"\u003e#16288\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typing-inspection from 0.4.2 to 0.4.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16286\"\u003e#16286\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/78c4324f0c56bc5282a459978779a9e532d19709\"\u003e\u003ccode\u003e78c4324\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16419\"\u003e#16419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2579ed0d9e73205326463025cc756650f642f511\"\u003e\u003ccode\u003e2579ed0\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1d4953d2e528b58cfb09bbc28fb25dcda227c6ea\"\u003e\u003ccode\u003e1d4953d\u003c/code\u003e\u003c/a\u003e 🐛 Allow startup when automatic OpenTelemetry configuration fails (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16418\"\u003e#16418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3e33a03bdaa3a89f27d5e0c390c4ba9032f14b5e\"\u003e\u003ccode\u003e3e33a03\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16415\"\u003e#16415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/12ea7f5a5e76c5ba3495c2803f57ed92ac67731b\"\u003e\u003ccode\u003e12ea7f5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ac88f563db5f4d3300d43355eca728c93ed9ffe2\"\u003e\u003ccode\u003eac88f56\u003c/code\u003e\u003c/a\u003e 🐛 Fix repeated endpoint wrapping in included routers (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16414\"\u003e#16414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/bd41128123fd08d693f5541e27c550eebe20f8b0\"\u003e\u003ccode\u003ebd41128\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.0 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16411\"\u003e#16411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7aa21e53c859ce52b17196b35909efca6f2fa11f\"\u003e\u003ccode\u003e7aa21e5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b3949cd9e5932f76217131fceabc74145c3db24\"\u003e\u003ccode\u003e4b3949c\u003c/code\u003e\u003c/a\u003e ✨ Add native OpenTelemetry support (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16403\"\u003e#16403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c30032a1b68fb36c03fffe1856369d3824607c7c\"\u003e\u003ccode\u003ec30032a\u003c/code\u003e\u003c/a\u003e 📝 Update release note...\n\n_Description has been truncated_","html_url":"https://github.com/jotaele44/spiderweb-pr/pull/404","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jotaele44%2Fspiderweb-pr/issues/404","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/404/packages"}},{"old_version":"3.0.5","new_version":"3.0.6","update_type":"patch","path":null,"pr_created_at":"2026-10-05T04:19:00.000Z","version_change":"3.0.5 → 3.0.6","issue":{"uuid":"5706365706","node_id":"PR_kwDOUkjINM8AAAABGoiFBg","number":30,"state":"closed","title":"build(deps): Bump the routine group across 1 directory with 52 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-06T05:08:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-05T04:19:00.000Z","updated_at":"2026-10-06T05:08:51.000Z","time_to_close":89389,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"routine","update_count":52,"packages":[{"name":"anyio","old_version":"4.14.2","new_version":"4.15.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"ast-serialize","old_version":"0.8.0","new_version":"0.11.2","repository_url":"https://github.com/mypyc/ast_serialize"},{"name":"boto3","old_version":"1.43.85","new_version":"1.43.107","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.43.85","new_version":"1.43.107","repository_url":"https://github.com/boto/botocore"},{"name":"charset-normalizer","old_version":"3.5.1","new_version":"3.5.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"cryptography","old_version":"50.0.1","new_version":"50.0.2","repository_url":"https://github.com/pyca/cryptography"},{"name":"fastapi","old_version":"0.141.1","new_version":"0.142.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"flake8","old_version":"7.3.0","new_version":"7.4.1","repository_url":"https://github.com/pycqa/flake8"},{"name":"fsspec","old_version":"2026.7.0","new_version":"2026.9.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"google-ai-generativelanguage","old_version":"0.6.15","new_version":"0.12.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-api-core","old_version":"2.33.0","new_version":"2.40.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-api-python-client","old_version":"2.200.0","new_version":"2.201.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.57.0","new_version":"2.59.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth-httplib2","old_version":"0.4.2","new_version":"0.4.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-genai","old_version":"2.22.0","new_version":"2.27.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"googleapis-common-protos","old_version":"1.75.0","new_version":"1.75.5","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.83.1","new_version":"1.84.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.71.2","new_version":"1.84.0"},{"name":"idna","old_version":"3.19","new_version":"3.20","repository_url":"https://github.com/kjd/idna"},{"name":"isort","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/PyCQA/isort"},{"name":"jaraco-context","old_version":"6.1.0","new_version":"6.1.2","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"jiter","old_version":"0.16.0","new_version":"0.17.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"librt","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/mypyc/librt"},{"name":"msgpack","old_version":"1.2.1","new_version":"1.2.3","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"motor","old_version":"3.3.1","new_version":"3.7.1","repository_url":"https://github.com/mongodb/motor"},{"name":"mypy","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/python/mypy"},{"name":"numpy","old_version":"2.4.6","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"platformdirs","old_version":"4.11.6","new_version":"4.12.2","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"propcache","old_version":"0.5.2","new_version":"0.5.4","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.28.2","new_version":"1.29.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycodestyle","old_version":"2.14.0","new_version":"2.15.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pydantic-core","old_version":"2.46.5","new_version":"2.49.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pyjwt","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.18.2","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"pyparsing","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"python-dotenv","old_version":"1.2.3","new_version":"1.2.4","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"regex","old_version":"2026.9.3","new_version":"2026.9.29","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"ruff","old_version":"0.16.8","new_version":"0.16.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"sentry-sdk","old_version":"2.35.0","new_version":"2.71.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"tqdm","old_version":"4.70.0","new_version":"4.70.1","repository_url":"https://github.com/tqdm/tqdm"},{"name":"tzdata","old_version":"2026.3","new_version":"2026.4","repository_url":"https://github.com/python/tzdata"},{"name":"uvicorn","old_version":"0.25.0","new_version":"0.54.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"wheel","old_version":"0.46.2","new_version":"0.48.0","repository_url":"https://github.com/pypa/wheel"},{"name":"yarl","old_version":"1.24.5","new_version":"1.25.1","repository_url":"https://github.com/aio-libs/yarl"},{"name":"sqlalchemy","old_version":"2.0.51","new_version":"2.1.1","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.18.5","new_version":"1.20.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"mako","old_version":"1.3.12","new_version":"1.4.3","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"greenlet","old_version":"3.5.4","new_version":"3.5.6","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"psycopg","old_version":"3.3.2","new_version":"3.3.6","repository_url":"https://github.com/psycopg/psycopg"},{"name":"psycopg-binary","old_version":"3.3.2","new_version":"3.3.6","repository_url":"https://github.com/psycopg/psycopg"}],"path":null,"ecosystem":"pip"},"body":"Bumps the routine group with 52 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.2` | `4.15.1` |\n| [ast-serialize](https://github.com/mypyc/ast_serialize) | `0.8.0` | `0.11.2` |\n| [boto3](https://github.com/boto/boto3) | `1.43.85` | `1.43.107` |\n| [botocore](https://github.com/boto/botocore) | `1.43.85` | `1.43.107` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.5.1` | `3.5.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.1` | `50.0.2` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.141.1` | `0.142.2` |\n| [flake8](https://github.com/pycqa/flake8) | `7.3.0` | `7.4.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.7.0` | `2026.9.0` |\n| [google-ai-generativelanguage](https://github.com/googleapis/google-cloud-python) | `0.6.15` | `0.12.1` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.33.0` | `2.40.0` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.200.0` | `2.201.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.57.0` | `2.59.1` |\n| [google-auth-httplib2](https://github.com/googleapis/google-cloud-python) | `0.4.2` | `0.4.4` |\n| [google-genai](https://github.com/googleapis/python-genai) | `2.22.0` | `2.27.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.75.0` | `1.75.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.83.1` | `1.84.0` |\n| [grpcio-status](https://grpc.io) | `1.71.2` | `1.84.0` |\n| [idna](https://github.com/kjd/idna) | `3.19` | `3.20` |\n| [isort](https://github.com/PyCQA/isort) | `9.0.1` | `9.0.2` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.1.0` | `6.1.2` |\n| [jiter](https://github.com/pydantic/jiter) | `0.16.0` | `0.17.0` |\n| [librt](https://github.com/mypyc/librt) | `0.15.0` | `0.16.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.2.1` | `1.2.3` |\n| [motor](https://github.com/mongodb/motor) | `3.3.1` | `3.7.1` |\n| [mypy](https://github.com/python/mypy) | `2.3.1` | `2.4.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.6` | `2.5.3` |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.5` | `3.0.6` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.11.6` | `4.12.2` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.5.2` | `0.5.4` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.28.2` | `1.29.0` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.14.0` | `2.15.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.5` | `2.49.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.15.0` | `2.15.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.18.2` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.3.2` | `3.3.3` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.3` | `1.2.4` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.9.3` | `2026.9.29` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.8` | `0.16.10` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.35.0` | `2.71.0` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.70.0` | `4.70.1` |\n| [tzdata](https://github.com/python/tzdata) | `2026.3` | `2026.4` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.25.0` | `0.54.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.2.0` | `1.3.0` |\n| [wheel](https://github.com/pypa/wheel) | `0.46.2` | `0.48.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.24.5` | `1.25.1` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.51` | `2.1.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.5` | `1.20.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.12` | `1.4.3` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.5.4` | `3.5.6` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.3.2` | `3.3.6` |\n| [psycopg-binary](https://github.com/psycopg/psycopg) | `3.3.2` | `3.3.6` |\n\n\nUpdates `anyio` from 4.14.2 to 4.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented a compatibility fix for supporting direct access of \u003ccode\u003eanyio.*\u003c/code\u003e submodules from the main package even when those submodules were not directly imported first (\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311\"\u003e#1311\u003c/a\u003e \u0026lt;\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311%5C%3E\"\u003eagronholm/anyio#1311\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for the newer keyword-only arguments on \u003ccode\u003eanyio.Path\u003c/code\u003e methods to match the standard library \u003ccode\u003epathlib.Path\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eexists()\u003c/code\u003e (Python 3.12+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_dir()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_file()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eowner()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003egroup()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enewline\u003c/code\u003e on \u003ccode\u003eread_text()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1286\"\u003e#1286\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1293\"\u003e#1293\u003c/a\u003e; PR by \u003ca href=\"https://github.com/jaideeppyne\"\u003e\u003ccode\u003e@​jaideeppyne\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eamap\u003c/code\u003e, \u003ccode\u003egather\u003c/code\u003e, and \u003ccode\u003eas_completed\u003c/code\u003e utility functions to simplify common patterns (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1173\"\u003e#1173\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003e--anyio-mode\u003c/code\u003e command-line option as an alternative to the \u003ccode\u003eanyio_mode\u003c/code\u003e ini setting, and fix the pytest plugin's auto mode detection to recognize the mode when set via either mechanism(e.g: \u003ccode\u003epytest_asyncio\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1242\"\u003e#1242\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003eanyio.Future\u003c/code\u003e synchronization primitive which behaves similar to \u003ccode\u003easyncio.Future\u003c/code\u003e, allowing tasks to wait for a value (or exception) from another task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1146\"\u003e#1146\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded guidance for managing multiple memory object stream producers and consumers with cloned streams (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/330\"\u003e#330\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nightcityblade\"\u003e\u003ccode\u003e@​nightcityblade\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eStapledObjectStream.send_nowait()\u003c/code\u003e that delegates to the underlying \u003ccode\u003eObjectSendStream\u003c/code\u003e, if it implements it (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1241\"\u003e#1241\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003emove_on_at()\u003c/code\u003e and \u003ccode\u003efail_at()\u003c/code\u003e functions to complement \u003ccode\u003emove_on_after()\u003c/code\u003e and \u003ccode\u003efail_after()\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the default name for a task spawned with \u003ccode\u003eTaskGroup.create_task(func())\u003c/code\u003e to match the default task name for the analogous task spawned with \u003ccode\u003eTaskGroup.start_soon(func)\u003c/code\u003e or \u003ccode\u003eTaskGroup.start(func)\u003c/code\u003e in more situations. Previously, the default name of a \u003ccode\u003eTaskGroup.create_task\u003c/code\u003e task never included the module name. (The default name for a task spawned with \u003ccode\u003eTaskGroup.start_soon\u003c/code\u003e or \u003ccode\u003eTaskGroup.start\u003c/code\u003e typically includes the module name.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1234\"\u003e#1234\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the \u003ccode\u003eanyio\u003c/code\u003e and \u003ccode\u003eanyio.abc\u003c/code\u003e modules to lazily (much like \u003ccode\u003e810\u003c/code\u003e) import the necessary submodules. This is done by parsing the AST of the module and building a lookup table from the \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block. A fallback mode has been provided for installations where the source code is unavailable (e.g. PyInstaller). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1169\"\u003e#1169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed free-threading compatibility issues arising from the fact that on Python 3.14 free-threading builds, newly created threads inherit the current context by default, causing AnyIO to behave erroneously in relation to \u003ccode\u003estart_blocking_portal()\u003c/code\u003e and \u003ccode\u003eanyio.to_thread.run_sync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1224\"\u003e#1224\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eSpooledTemporaryFile.readinto()\u003c/code\u003e and \u003ccode\u003ereadinto1()\u003c/code\u003e reading twice before rollover, so the destination buffer was overwritten by the second read and the file position advanced twice, silently losing data (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1215\"\u003e#1215\u003c/a\u003e; PR by \u003ca href=\"https://github.com/c-tonneslan\"\u003e\u003ccode\u003e@​c-tonneslan\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003efail_after\u003c/code\u003e (and the new \u003ccode\u003efail_at\u003c/code\u003e) allowing for added exception context when raising \u003ccode\u003eTimeoutError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1227\"\u003e#1227\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the default \u003ccode\u003eTaskHandle.name\u003c/code\u003e missing part of the task name for tasks started with \u003ccode\u003eTaskGroup.start\u003c/code\u003e on Trio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1231\"\u003e#1231\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.run\u003c/code\u003e leaking, or at least, delaying collection of loop and root_task due to the root task being cached in a \u003ccode\u003eRunVar\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1203\"\u003e#1203\u003c/a\u003e; PR by \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.Path.with_stem()\u003c/code\u003e silently producing a wrong path (e.g. \u003ccode\u003ePath(\u0026quot;.txt\u0026quot;)\u003c/code\u003e) instead of raising \u003ccode\u003eValueError\u003c/code\u003e when given an empty stem on a path with a non-empty suffix, unlike \u003ccode\u003epathlib.PurePath.with_stem\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1200\"\u003e#1200\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eUNIXSocketStream.aclose()\u003c/code\u003e raising \u003ccode\u003easyncio.InvalidStateError\u003c/code\u003e when a concurrent receive or send operation had just been cancelled on the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1267\"\u003e#1267\u003c/a\u003e; PR by \u003ca href=\"https://github.com/alloutflo\"\u003e\u003ccode\u003e@​alloutflo\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the pytest plugin importing the deprecated \u003ccode\u003e_pytest.python.CallSpec2\u003c/code\u003e alias, which triggers \u003ccode\u003ePytestRemovedIn10Warning\u003c/code\u003e on \u003ccode\u003epytest\u0026gt;=9.2\u003c/code\u003e and crashes pytest at startup when \u003ccode\u003efilterwarnings = error\u003c/code\u003e is configured (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1271\"\u003e#1271\u003c/a\u003e; PR by \u003ca href=\"https://github.com/matthewfeickert\"\u003e\u003ccode\u003e@​matthewfeickert\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an asyncio worker thread race that could raise \u003ccode\u003eRuntimeError\u003c/code\u003e when the event loop closed between checking its state and scheduling the worker result (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1265\"\u003e#1265\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hansu650\"\u003e\u003ccode\u003e@​hansu650\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eCapacityLimiter\u003c/code\u003e on the asyncio backend over-granting tokens when \u003ccode\u003etotal_tokens\u003c/code\u003e was raised while the limiter was over-subscribed (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1223\"\u003e#1223\u003c/a\u003e; PR by \u003ca href=\"https://github.com/zelinewang\"\u003e\u003ccode\u003e@​zelinewang\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/ffcd1542cd6d127980205f90a0100078849dd703\"\u003e\u003ccode\u003effcd154\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0ecf5ed98d294242509b043ebd1a0843e52d892f\"\u003e\u003ccode\u003e0ecf5ed\u003c/code\u003e\u003c/a\u003e Added a workaround for third party code accessing unimported submodules (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1309\"\u003e#1309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/928366259543412a2deb1e2ba09ea45ffa92ef4f\"\u003e\u003ccode\u003e9283662\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d137692a90f76e4f71605e32ea5ca94cab3a539d\"\u003e\u003ccode\u003ed137692\u003c/code\u003e\u003c/a\u003e Improved the instructions for AI agents\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/033fc52b8fa8e90c5d0ef24b10b3860e974a6265\"\u003e\u003ccode\u003e033fc52\u003c/code\u003e\u003c/a\u003e Shield TemporaryDirectory cleanup from cancellation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1304\"\u003e#1304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/942e9a6552cc10b5aaa779d84bfc8e2c3d5fcffc\"\u003e\u003ccode\u003e942e9a6\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1305\"\u003e#1305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b825c3be7cb4ca1a8000b8065d4e147843deb704\"\u003e\u003ccode\u003eb825c3b\u003c/code\u003e\u003c/a\u003e Fixed pyproject.toml changes not triggering the test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9727dc504681e2986b5bc285de9571fb467539af\"\u003e\u003ccode\u003e9727dc5\u003c/code\u003e\u003c/a\u003e Fixed start inconsistencies between trio and asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b05fe6d160a640355c201363cab286a7d2581da8\"\u003e\u003ccode\u003eb05fe6d\u003c/code\u003e\u003c/a\u003e Fixed wrong type in move_on_after (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1297\"\u003e#1297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/44d0c93cc20079acbf38ba4dbed5ab9df323f153\"\u003e\u003ccode\u003e44d0c93\u003c/code\u003e\u003c/a\u003e Fixed asyncio task group coroutine cleanup (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.14.2...4.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ast-serialize` from 0.8.0 to 0.11.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/f508fe57c3e39cdda9f74e6e19f3ee126bcaddd7\"\u003e\u003ccode\u003ef508fe5\u003c/code\u003e\u003c/a\u003e Bump version to 0.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/8642c8620660ec949f7c99116cd30f93656ada41\"\u003e\u003ccode\u003e8642c86\u003c/code\u003e\u003c/a\u003e Fix edge case in Literal type handling (\u003ca href=\"https://redirect.github.com/mypyc/ast_serialize/issues/92\"\u003e#92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/3039f8bc0ee4c7a2793ff50086528ae257b33b7f\"\u003e\u003ccode\u003e3039f8b\u003c/code\u003e\u003c/a\u003e Serialize flag for lazy imports (\u003ca href=\"https://redirect.github.com/mypyc/ast_serialize/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/e667a2b7b4a1d2ab98af4d28100cdff5b53fbf20\"\u003e\u003ccode\u003ee667a2b\u003c/code\u003e\u003c/a\u003e Bump version to 0.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/30e8c5f7c663e9c4000d05379cd30575109eaf55\"\u003e\u003ccode\u003e30e8c5f\u003c/code\u003e\u003c/a\u003e Simple-minded universal newline normalization (\u003ca href=\"https://redirect.github.com/mypyc/ast_serialize/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/98d1303ef8515dfcf3cdbe90d25acf4cfd139765\"\u003e\u003ccode\u003e98d1303\u003c/code\u003e\u003c/a\u003e Fix syntax error in try/except (\u003ca href=\"https://redirect.github.com/mypyc/ast_serialize/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/1dac8dea21d3d8c9c40885288c55ef70c266fc3d\"\u003e\u003ccode\u003e1dac8de\u003c/code\u003e\u003c/a\u003e Bump version to 0.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/fdc40ec3b24d43545fcbe9c8bcd5e3e1ce3b3510\"\u003e\u003ccode\u003efdc40ec\u003c/code\u003e\u003c/a\u003e Fix false negative in Ruff parser in try/except (\u003ca href=\"https://redirect.github.com/mypyc/ast_serialize/issues/88\"\u003e#88\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/0ece21caaf859ef37b1836af5626c7bdc3c6fde0\"\u003e\u003ccode\u003e0ece21c\u003c/code\u003e\u003c/a\u003e Special-case empty type comment (\u003ca href=\"https://redirect.github.com/mypyc/ast_serialize/issues/87\"\u003e#87\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/ast_serialize/commit/a19a7a557170c5b04ca00675df6fdc7732088fe9\"\u003e\u003ccode\u003ea19a7a5\u003c/code\u003e\u003c/a\u003e Expose serialize_string_type() in public API (\u003ca href=\"https://redirect.github.com/mypyc/ast_serialize/issues/86\"\u003e#86\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mypyc/ast_serialize/compare/v0.8.0...v0.11.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.43.85 to 1.43.107\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/402e09ca457c8b8ea37097e32dcf2de7c612bb2f\"\u003e\u003ccode\u003e402e09c\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.107'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/4d321645cb78851589720fec5d08c6f8cf64c9b4\"\u003e\u003ccode\u003e4d32164\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.107\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/e6738b9bfc67ceb6f9eb8792a10eac83b283b959\"\u003e\u003ccode\u003ee6738b9\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c2a321bb8a8513706b906703fc9945e6de62e400\"\u003e\u003ccode\u003ec2a321b\u003c/code\u003e\u003c/a\u003e Bump \u003ca href=\"https://github.com/astral-sh/ruff-pre-commit\"\u003ehttps://github.com/astral-sh/ruff-pre-commit\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/88630f82cb40220991b6fb0505703e7cd575e38b\"\u003e\u003ccode\u003e88630f8\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.106'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/fac0859a5381737c27dd088886e99286031db120\"\u003e\u003ccode\u003efac0859\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.106' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/eefb3fcda392ec4fd5cbf212643cb01a6b4f98ae\"\u003e\u003ccode\u003eeefb3fc\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.106\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/88781899883b66a97cc95023d0c0ef1fda909f5d\"\u003e\u003ccode\u003e8878189\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/29c0d66ad5dbd02c82d637f92113a30eb76a3acd\"\u003e\u003ccode\u003e29c0d66\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.105'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/82c6dbe501e56be2fb589a267471d7f76f1d92b1\"\u003e\u003ccode\u003e82c6dbe\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.105' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.43.85...1.43.107\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.43.85 to 1.43.107\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/646bd4ec3f99d60798e95195e2d7153bcd37055d\"\u003e\u003ccode\u003e646bd4e\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.107'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/ed2917897b672d91bf51696bd3bacf140deb86ff\"\u003e\u003ccode\u003eed29178\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.107\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/66727259aabc1d5dc7f5265060d1f3998dd11a8e\"\u003e\u003ccode\u003e6672725\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/f19f55e0197e3c6a584e654ca692a7c858f07e25\"\u003e\u003ccode\u003ef19f55e\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/ca596c760aa129f49da8ff971726e8b85297b50d\"\u003e\u003ccode\u003eca596c7\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.106'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/96abf2d1f44aebf783b9272d518bc2193d4e8eb5\"\u003e\u003ccode\u003e96abf2d\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.106' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/1808528fec99689349da8882b23db343e50c0f43\"\u003e\u003ccode\u003e1808528\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.106\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/3d316f06c903c6aab747913b9834bb77333c1bda\"\u003e\u003ccode\u003e3d316f0\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/053554bf4606d7affaad0d40e9f3367b7a7ff771\"\u003e\u003ccode\u003e053554b\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/e9bb16cfe0583e228886cc8022399a85fbb22fed\"\u003e\u003ccode\u003ee9bb16c\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.105'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.43.85...1.43.107\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.5.1 to 3.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.5.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.5.1...3.5.2\"\u003e3.5.2\u003c/a\u003e (2026-09-29)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised the Cython upper bound to \u003ccode\u003e\u0026lt;3.4\u003c/code\u003e for native builds. The bound remains \u003ccode\u003e\u0026lt;3.3\u003c/code\u003e for\n\u003ccode\u003eabi3\u003c/code\u003e builds to preserve compatibility with the Python 3.7 Limited API.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValid UTF-8 Chinese JSON incorrectly detected as PTCP154 due to excessive noise penalties\nfor uncommon CJK characters. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupported encodings without aliases failing name resolution or being ignored in charset\ndeclarations. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/800\"\u003e#800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.5.1...3.5.2\"\u003e3.5.2\u003c/a\u003e (2026-09-29)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised the Cython upper bound to \u003ccode\u003e\u0026lt;3.4\u003c/code\u003e for native builds. The bound remains \u003ccode\u003e\u0026lt;3.3\u003c/code\u003e for\n\u003ccode\u003eabi3\u003c/code\u003e builds to preserve compatibility with the Python 3.7 Limited API.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValid UTF-8 Chinese JSON incorrectly detected as PTCP154 due to excessive noise penalties\nfor uncommon CJK characters. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupported encodings without aliases failing name resolution or being ignored in charset\ndeclarations. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/800\"\u003e#800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/935c29ad2d0d6e62fcf3a6e0617c55dc6e85db8f\"\u003e\u003ccode\u003e935c29a\u003c/code\u003e\u003c/a\u003e Release 3.5.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/805\"\u003e#805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9d3238a7ae9676e05ee1da5da826297b374f2282\"\u003e\u003ccode\u003e9d3238a\u003c/code\u003e\u003c/a\u003e test: disable traefik in downstream niquests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b4c0368fdc9183b8e77e39d865328a4a40103750\"\u003e\u003ccode\u003eb4c0368\u003c/code\u003e\u003c/a\u003e docs: write changelog entry for 3.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/717da3108bf90d979c1485ae55c0b11f2eab650b\"\u003e\u003ccode\u003e717da31\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/264895d4e9313b088c9698f5394278a3c7ab58a7\"\u003e\u003ccode\u003e264895d\u003c/code\u003e\u003c/a\u003e chore: update pypa/cibuildwheel and pypa/gh-action-pypi-publish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/41e28b6cb19d7ec85560f869cbc2a599c8fc855b\"\u003e\u003ccode\u003e41e28b6\u003c/code\u003e\u003c/a\u003e chore: raise Cython upper bound to 3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b130b7dae36658c7ba67381fe06a62c7c7c03894\"\u003e\u003ccode\u003eb130b7d\u003c/code\u003e\u003c/a\u003e Fix valid UTF-8 Chinese JSON misdetected as PTCP154 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f6afd31c54fe20524f96be00de3bcb0e81727526\"\u003e\u003ccode\u003ef6afd31\u003c/code\u003e\u003c/a\u003e Make the IANA_NO_ALIASES encodings resolvable by name (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/800\"\u003e#800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.5.1...3.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 50.0.1 to 50.0.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e50.0.2 - 2026-09-30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.3.\n* Added ``abi3.abi3t`` wheels for free-threaded CPython 3.15 and later.\n* Updated to PyO3 0.29.2, which fixes building ``cryptography`` on Cygwin and\n  MSYS2.\n\u003cp\u003e.. _v50-0-1:\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/4dda5c7fe4ae71b8925f2551910a0ef959df9c7a\"\u003e\u003ccode\u003e4dda5c7\u003c/code\u003e\u003c/a\u003e [50.0.x] Bump for 50.0.2 release + changelog (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15733\"\u003e#15733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/70c881cd7ea97d38df09f57c1117470cd1a5a2f7\"\u003e\u003ccode\u003e70c881c\u003c/code\u003e\u003c/a\u003e [50.0.x] Bump pyo3 to 0.29.2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15731\"\u003e#15731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/a8c45c449b8d29908a14561afd45fee8bf27d044\"\u003e\u003ccode\u003ea8c45c4\u003c/code\u003e\u003c/a\u003e [50.0.x] Build abi3.abi3t wheels for CPython 3.15+ (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15496\"\u003e#15496\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15732\"\u003e#15732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/50.0.1...50.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.141.1 to 0.142.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.142.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Allow startup when automatic OpenTelemetry configuration fails. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16418\"\u003e#16418\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.142.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix repeated endpoint wrapping in included routers. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16414\"\u003e#16414\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.142.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add native OpenTelemetry support. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16403\"\u003e#16403\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📱 Improve mobile responsiveness of conference rail. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16196\"\u003e#16196\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Remove conf section and add event banner. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16193\"\u003e#16193\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove unused image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16195\"\u003e#16195\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Use buttons for Termynal controls. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16132\"\u003e#16132\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for hi (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16212\"\u003e#16212\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16210\"\u003e#16210\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16211\"\u003e#16211\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16208\"\u003e#16208\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16209\"\u003e#16209\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16207\"\u003e#16207\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16206\"\u003e#16206\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16205\"\u003e#16205\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16204\"\u003e#16204\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16203\"\u003e#16203\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16202\"\u003e#16202\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16201\"\u003e#16201\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16171\"\u003e#16171\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix frontend test timeout with Starlette Git. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16408\"\u003e#16408\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Permit.io. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16406\"\u003e#16406\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump anyio from 4.12.1 to 4.14.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16375\"\u003e#16375\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 15 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16285\"\u003e#16285\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 1.3.1 to 1.6.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16289\"\u003e#16289\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump annotated-doc from 0.0.4 to 0.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16288\"\u003e#16288\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typing-inspection from 0.4.2 to 0.4.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16286\"\u003e#16286\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/78c4324f0c56bc5282a459978779a9e532d19709\"\u003e\u003ccode\u003e78c4324\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16419\"\u003e#16419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2579ed0d9e73205326463025cc756650f642f511\"\u003e\u003ccode\u003e2579ed0\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1d4953d2e528b58cfb09bbc28fb25dcda227c6ea\"\u003e\u003ccode\u003e1d4953d\u003c/code\u003e\u003c/a\u003e 🐛 Allow startup when automatic OpenTelemetry configuration fails (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16418\"\u003e#16418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3e33a03bdaa3a89f27d5e0c390c4ba9032f14b5e\"\u003e\u003ccode\u003e3e33a03\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16415\"\u003e#16415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/12ea7f5a5e76c5ba3495c2803f57ed92ac67731b\"\u003e\u003ccode\u003e12ea7f5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ac88f563db5f4d3300d43355eca728c93ed9ffe2\"\u003e\u003ccode\u003eac88f56\u003c/code\u003e\u003c/a\u003e 🐛 Fix repeated endpoint wrapping in included routers (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16414\"\u003e#16414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/bd41128123fd08d693f5541e27c550eebe20f8b0\"\u003e\u003ccode\u003ebd41128\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.0 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16411\"\u003e#16411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7aa21e53c859ce52b17196b35909efca6f2fa11f\"\u003e\u003ccode\u003e7aa21e5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b3949cd9e5932f76217131fceabc74145c3db24\"\u003e\u003ccode\u003e4b3949c\u003c/code\u003e\u003c/a\u003e ✨ Add native OpenTelemetry support (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16403\"\u003e#16403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c30032a1b68fb36c03fffe1856369d3824607c7c\"\u003e\u003ccode\u003ec30032a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.141.1...0.142.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8` from 7.3.0 to 7.4.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/7eccf20b526fe4f2230bf9afeeef2fc9f97faf8d\"\u003e\u003ccode\u003e7eccf20\u003c/code\u003e\u003c/a\u003e Release 7.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/fe7311d78073c079468b03193c7cbfac5174776c\"\u003e\u003ccode\u003efe7311d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/2057\"\u003e#2057\u003c/a\u003e from PyCQA/fix-pyflakes-4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/819d5e6912003135e93cd466260922b8228a1fa3\"\u003e\u003ccode\u003e819d5e6\u003c/code\u003e\u003c/a\u003e fix pyflakes 4.x --builtins integration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/31405090a83cade9350502e481dcd1f032cb50b9\"\u003e\u003ccode\u003e3140509\u003c/code\u003e\u003c/a\u003e Release 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/e12e23174f10cafd7cf046d0a750c2d59fe2d451\"\u003e\u003ccode\u003ee12e231\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/2055\"\u003e#2055\u003c/a\u003e from PyCQA/add-315-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f0225365d819e55379044ce347077cba3ab9f202\"\u003e\u003ccode\u003ef022536\u003c/code\u003e\u003c/a\u003e add python 3.15 to CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/07eb8ae3f15ee6eeb4d0f748f1c54f7211267fd4\"\u003e\u003ccode\u003e07eb8ae\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/2054\"\u003e#2054\u003c/a\u003e from PyCQA/latest-pyflakes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/a9e6dc227342a5cfcf5df56909370ecbc87725a3\"\u003e\u003ccode\u003ea9e6dc2\u003c/code\u003e\u003c/a\u003e update to latest pyflakes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/2436eabb34f69e8ac29bdbd3f452b4509bf78644\"\u003e\u003ccode\u003e2436eab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/2053\"\u003e#2053\u003c/a\u003e from PyCQA/latest-pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/b44ddd48986c5e2d20e4461084a38d9b233d66c3\"\u003e\u003ccode\u003eb44ddd4\u003c/code\u003e\u003c/a\u003e update to latest pycodestyle\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/7.3.0...7.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fsspec` from 2026.7.0 to 2026.9.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/0f76baaae4a227b085b18e8469e6cc1792a95ade\"\u003e\u003ccode\u003e0f76baa\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2166\"\u003e#2166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/695f831c2a2c55b48b11045ea2f2b34d529eaa43\"\u003e\u003ccode\u003e695f831\u003c/code\u003e\u003c/a\u003e Add age-based cleanup for simplecache (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2118\"\u003e#2118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/42aa46875c50f43d2d258540981772b86da7a6fb\"\u003e\u003ccode\u003e42aa468\u003c/code\u003e\u003c/a\u003e Mirror \u003ccode\u003ereadinto\u003c/code\u003e from the pyarrow stream onto \u003ccode\u003eArrowFile\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/4a4e6ae778d9cbc8f036a0b7af9467d94d0acac6\"\u003e\u003ccode\u003e4a4e6ae\u003c/code\u003e\u003c/a\u003e Make the SFTP host key policy configurable (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2126\"\u003e#2126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/a0ce6dbecad9d42f19a2e1462cb61fec9b77da2e\"\u003e\u003ccode\u003ea0ce6db\u003c/code\u003e\u003c/a\u003e Normalize paths in AsyncFileSystemWrapper like the wrapped filesystem (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2159\"\u003e#2159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/c5fea6d8e8c140a0cacbe94fa573df5becbf192e\"\u003e\u003ccode\u003ec5fea6d\u003c/code\u003e\u003c/a\u003e Fix cat_ranges on whole-file caches after \u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2154\"\u003e#2154\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2163\"\u003e#2163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/9efb18b4939d01ac9b06a481bda8125f48dbc738\"\u003e\u003ccode\u003e9efb18b\u003c/code\u003e\u003c/a\u003e Patch HAS_CPYTHON_API where _fast_slice reads it (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2164\"\u003e#2164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/27bcd35c5487570da9f3a97fd66a3f4268ca0c87\"\u003e\u003ccode\u003e27bcd35\u003c/code\u003e\u003c/a\u003e feat(AdaptiveReadaheadCache): introducing a new cache-type adaptive (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2093\"\u003e#2093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/a681aca115b6687a1ea1fcfd4ac1f5f8c4cc03c5\"\u003e\u003ccode\u003ea681aca\u003c/code\u003e\u003c/a\u003e Ignore a leading slash in TarFileSystem paths (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2148\"\u003e#2148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/57c55f87d780856181653eca4d5cc14e22d8e5f9\"\u003e\u003ccode\u003e57c55f8\u003c/code\u003e\u003c/a\u003e Make names relative in DirFileSystem.walk(detail=True) (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/filesystem_spec/compare/2026.7.0...2026.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-ai-generativelanguage` from 0.6.15 to 0.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-ai-generativelanguage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-vectorsearch: v0.11.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-vectorsearch-v0.11.4...google-cloud-vectorsearch-v0.11.5\"\u003e0.11.5\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeclare Python3.15 support (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8775794508e17150023c8e7152543410014458bf\"\u003e8775794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-video-stitcher: v0.11.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-video-stitcher-v0.11.1...google-cloud-video-stitcher-v0.11.2\"\u003e0.11.2\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeclare Python3.15 support (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8775794508e17150023c8e7152543410014458bf\"\u003e8775794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-maps-routing: v0.11.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-maps-routing-v0.11.1...google-maps-routing-v0.11.2\"\u003e0.11.2\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeclare Python3.15 support (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8775794508e17150023c8e7152543410014458bf\"\u003e8775794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-maps-places: v0.9.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-maps-places-v0.9.0...google-maps-places-v0.9.1\"\u003e0.9.1\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeclare Python3.15 support (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8775794508e17150023c8e7152543410014458bf\"\u003e8775794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-workstations: v0.8.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-workstations-v0.8.1...google-cloud-workstations-v0.8.2\"\u003e0.8.2\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeclare Python3.15 support (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8775794508e17150023c8e7152543410014458bf\"\u003e8775794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-storagebatchoperations: v0.8.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-storagebatchoperations-v0.8.0...google-cloud-storagebatchoperations-v0.8.1\"\u003e0.8.1\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeclare Python3.15 support (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8775794508e17150023c8e7152543410014458bf\"\u003e8775794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-maps-mapsplatformdatasets: v0.8.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-maps-mapsplatformdatasets-v0.8.0...google-maps-mapsplatformdatasets-v0.8.1\"\u003e0.8.1\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/69401247a72c0f0786741ac937c3c5aa2afc8ead\"\u003e\u003ccode\u003e6940124\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18503\"\u003e#18503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/522db0e2a04098d0ed3fd54ec32be12e8183a335\"\u003e\u003ccode\u003e522db0e\u003c/code\u003e\u003c/a\u003e ci(gapic-generator): add showcase canary job, span artifact upload, and isola...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5d57b255271ed43274286cb65a9f6e52ee56875a\"\u003e\u003ccode\u003e5d57b25\u003c/code\u003e\u003c/a\u003e fix(ci): fix docfx and db-dtypes pandas compat (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18512\"\u003e#18512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c38e960ae0349f9856c012c668c07fac24f8f0dc\"\u003e\u003ccode\u003ec38e960\u003c/code\u003e\u003c/a\u003e fix(spanner): stop deleting multiplexed sessions on rotation and close (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18332\"\u003e#18332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/80efd633fde5480d83c6889f8a3bf2e98a73370c\"\u003e\u003ccode\u003e80efd63\u003c/code\u003e\u003c/a\u003e perf(spanner): support PartialResultSet.last with background stream draining ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/28d33f6c81ea3c6cdeea392ed4a3f40333acbb5d\"\u003e\u003ccode\u003e28d33f6\u003c/code\u003e\u003c/a\u003e chore(storage): rename zonal buckets to rapid buckets in system tests (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18492\"\u003e#18492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/04ef51e31698462229c1269ad01d7ae06d9a7bb7\"\u003e\u003ccode\u003e04ef51e\u003c/code\u003e\u003c/a\u003e fix(db-dtypes): support updated pandas datetime reduction error message (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18526\"\u003e#18526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d7d3d20db46fb996b278ec4d3f74e03365d789a0\"\u003e\u003ccode\u003ed7d3d20\u003c/code\u003e\u003c/a\u003e feat: update Compute v1 API to version 2026-09-01 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18523\"\u003e#18523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6ed844782d453f1d1ebd3f70f8f0484254ff15b1\"\u003e\u003ccode\u003e6ed8447\u003c/code\u003e\u003c/a\u003e feat(bigquery): Declare Python 3.15 support (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18525\"\u003e#18525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7d7adcaee688603077ea53abec678130045c20ed\"\u003e\u003ccode\u003e7d7adca\u003c/code\u003e\u003c/a\u003e feat: update API sources and regenerate (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18513\"\u003e#18513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-ai-generativelanguage-v0.6.15...google-ai-generativelanguage-v0.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-core` from 2.33.0 to 2.40.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-api-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-texttospeech: v2.38.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-texttospeech-v2.37.0...google-cloud-texttospeech-v2.38.0\"\u003e2.38.0\u003c/a\u003e (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeclare Python3.15 support (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8775794508e17150023c8e7152543410014458bf\"\u003e8775794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/CHANGELOG.md\"\u003egoogle-api-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePlease refer to each API's \u003ccode\u003eCHANGELOG.md\u003c/code\u003e file under the \u003ccode\u003epackages/\u003c/code\u003e directory\u003c/p\u003e\n\u003ch2\u003eChangelogs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-ads-admanager/CHANGELOG.md\"\u003egoogle-ads-admanager==0.10.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-ads-marketingplatform-admin/CHANGELOG.md\"\u003egoogle-ads-marketingplatform-admin==0.6.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-ai-generativelanguage/CHANGELOG.md\"\u003egoogle-ai-generativelanguage==0.12.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-analytics-admin/CHANGELOG.md\"\u003egoogle-analytics-admin==0.30.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-analytics-data/CHANGELOG.md\"\u003egoogle-analytics-data==0.23.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-apps-card/CHANGELOG.md\"\u003egoogle-apps-card==0.7.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-apps-chat/CHANGELOG.md\"\u003egoogle-apps-chat==0.10.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-apps-events-subscriptions/CHANGELOG.md\"\u003egoogle-apps-events-subscriptions==0.6.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-apps-meet/CHANGELOG.md\"\u003egoogle-apps-meet==0.5.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-apps-script-type/CHANGELOG.md\"\u003egoogle-apps-script-type==0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-area120-tables/CHANGELOG.md\"\u003egoogle-area120-tables==0.15.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-access-approval/CHANGELOG.md\"\u003egoogle-cloud-access-approval==1.20.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-access-context-manager/CHANGELOG.md\"\u003egoogle-cloud-access-context-manager==0.6.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-advisorynotifications/CHANGELOG.md\"\u003egoogle-cloud-advisorynotifications==0.7.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-alloydb-connectors/CHANGELOG.md\"\u003egoogle-cloud-alloydb-connectors==0.5.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-alloydb/CHANGELOG.md\"\u003egoogle-cloud-alloydb==0.11.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-api-gateway/CHANGELOG.md\"\u003egoogle-cloud-api-gateway==1.16.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-api-keys/CHANGELOG.md\"\u003egoogle-cloud-api-keys==0.9.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-apigee-connect/CHANGELOG.md\"\u003egoogle-cloud-apigee-connect==1.16.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-apigee-registry/CHANGELOG.md\"\u003egoogle-cloud-apigee-registry==0.10.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-apihub/CHANGELOG.md\"\u003egoogle-cloud-apihub==0.7.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-appengine-admin/CHANGELOG.md\"\u003egoogle-cloud-appengine-admin==1.18.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-appengine-logging/CHANGELOG.md\"\u003egoogle-cloud-appengine-logging==1.10.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-apphub/CHANGELOG.md\"\u003egoogle-cloud-apphub==0.5.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-artifact-registry/CHANGELOG.md\"\u003egoogle-cloud-artifact-registry==1.22.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-asset/CHANGELOG.md\"\u003egoogle-cloud-asset==4.4.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-assured-workloads/CHANGELOG.md\"\u003egoogle-cloud-assured-workloads==2.4.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-audit-log/CHANGELOG.md\"\u003egoogle-cloud-audit-log==0.6.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-automl/CHANGELOG.md\"\u003egoogle-cloud-automl==2.20.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-backupdr/CHANGELOG.md\"\u003egoogle-cloud-backupdr==0.10.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bare-metal-solution/CHANGELOG.md\"\u003egoogle-cloud-bare-metal-solution==1.14.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-batch/CHANGELOG.md\"\u003egoogle-cloud-batch==0.22.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-beyondcorp-appconnections/CHANGELOG.md\"\u003egoogle-cloud-beyondcorp-appconnections==0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-beyondcorp-appconnectors/CHANGELOG.md\"\u003egoogle-cloud-beyondcorp-appconnectors==0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-beyondcorp-appgateways/CHANGELOG.md\"\u003egoogle-cloud-beyondcorp-appgateways==0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-beyondcorp-clientconnectorservices/CHANGELOG.md\"\u003egoogle-cloud-beyondcorp-clientconnectorservices==0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-beyondcorp-clientgateways/CHANGELOG.md\"\u003egoogle-cloud-beyondcorp-clientgateways==0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-analyticshub/CHANGELOG.md\"\u003egoogle-cloud-bigquery-analyticshub==0.9.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-biglake/CHANGELOG.md\"\u003egoogle-cloud-bigquery-biglake==0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-connection/CHANGELOG.md\"\u003egoogle-cloud-bigquery-connection==1.22.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-data-exchange/CHANGELOG.md\"\u003egoogle-cloud-bigquery-data-exchange==0.9.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-datapolicies/CHANGELOG.md\"\u003egoogle-cloud-bigquery-datapolicies==0.10.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-datatransfer/CHANGELOG.md\"\u003egoogle-cloud-bigquery-datatransfer==3.23.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-logging/CHANGELOG.md\"\u003egoogle-cloud-bigquery-logging==1.10.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-migration/CHANGELOG.md\"\u003egoogle-cloud-bigquery-migration==0.15.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-reservation/CHANGELOG.md\"\u003egoogle-cloud-bigquery-reservation==1.25.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d6bed5a3d4a9348f6aebb75b7ceb8d599a133c0a\"\u003e\u003ccode\u003ed6bed5a\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18464\"\u003e#18464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/78ff458d055a6104a385dc96990773f02a138f7d\"\u003e\u003ccode\u003e78ff458\u003c/code\u003e\u003c/a\u003e feat(gapic-generator): add schema support for resumable uploads (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18480\"\u003e#18480\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/af2100a0131b20488b96891248a46389cf4c420b\"\u003e\u003ccode\u003eaf2100a\u003c/code\u003e\u003c/a\u003e tests: add showcase to golden files (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18479\"\u003e#18479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e1d306a5e0213f99e2c9d740a25622f006e3bb46\"\u003e\u003ccode\u003ee1d306a\u003c/code\u003e\u003c/a\u003e fix: resolve error where google/longrunning/operations.proto is missing (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18477\"\u003e#18477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5013b91ebb431b923cb8454dcda2284fed737cfe\"\u003e\u003ccode\u003e5013b91\u003c/code\u003e\u003c/a\u003e chore: update librarian to v0.46.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18494\"\u003e#18494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7871fa9d142807248e225cb9d24d2ffda88e1b90\"\u003e\u003ccode\u003e7871fa9\u003c/code\u003e\u003c/a\u003e fix(gapic-generator): init mock response in version header test (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18488\"\u003e#18488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0b488a395542e9c76f535e82a7298fabaee8f4af\"\u003e\u003ccode\u003e0b488a3\u003c/code\u003e\u003c/a\u003e feat(bigtable): Reroute Mutations Batcher to use data client (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18200\"\u003e#18200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/30b4f440c24db348b043382178e53727c49c96de\"\u003e\u003ccode\u003e30b4f44\u003c/code\u003e\u003c/a\u003e fix(google-auth-oauthlib): prevent ipv6 address reuse (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18463\"\u003e#18463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1d9f4681be8792da62468bf405d5b2554a646be1\"\u003e\u003ccode\u003e1d9f468\u003c/code\u003e\u003c/a\u003e chore(main): release google-auth 2.59.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/18465\"\u003e#18465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c7c133aac3b761eba6ca9fad7abe1065a94f480b\"\u003e\u003ccode\u003ec7c133a\u003c/code\u003e\u003c/a\u003e chore(bigtable): Added an internal batch completed callback to the data clien...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-api-core-v2.33.0...google-api-core-v2.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.200.0 to 2.201.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.201.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.200.0...v2.201.0\"\u003e2.201.0\u003c/a\u003e (2026-09-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eaccesscontextmanager:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c05bd83c57b411dc76368407908e67e8b4a3663e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c05bd83c57b411dc76368407908e67e8b4a3663e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8e4ffe5ed7a0520fc67374d8c4a0d93571a27fc4\"\u003e8e4ffe5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/277ad485b5c45dbadab8ea32d7b66a23b19e6204\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/277ad485b5c45dbadab8ea32d7b66a23b19e6204\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8e4ffe5ed7a0520fc67374d8c4a0d93571a27fc4\"\u003e8e4ffe5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eagentidentitycredentials:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/3b1642ed3453b8fd881d07bf0869d922d48a4efc\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/3b1642ed3453b8fd881d07bf0869d922d48a4efc\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8616840293fb69025ce8c3fa28583843c88497dc\"\u003e8616840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eagentregistry:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/7319764c93831281ff4465213879c97bb7c973a1\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/7319764c93831281ff4465213879c97bb7c973a1\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/99710afb84674cd21a87a60e386bca82ca6d817c\"\u003e99710af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/277ad485b5c45dbadab8ea32d7b66a23b19e6204\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/277ad485b5c45dbadab8ea32d7b66a23b19e6204\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8e4ffe5ed7a0520fc67374d8c4a0d93571a27fc4\"\u003e8e4ffe5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2efc53079fec2b2589dd7d4298f3db3a962d38ce\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2efc53079fec2b2589dd7d4298f3db3a962d38ce\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/99710afb84674cd21a87a60e386bca82ca6d817c\"\u003e99710af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/73ad8ac1b80dc0e53950ec0bb92765348a854f63\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/73ad8ac1b80dc0e53950ec0bb92765348a854f63\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/496433cb5c5e37c3f3cca582c73387262fc8e745\"\u003e496433c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d5a6a0a09b18c296369b6b6c59e6d9aa02f8ad15\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d5a6a0a09b18c296369b6b6c59e6d9aa02f8ad15\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8616840293fb69025ce8c3fa28583843c88497dc\"\u003e8616840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/603d8daca1a63cce1c0c7cacb69da0a40eab9060\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/603d8daca1a63cce1c0c7cacb69da0a40eab9060\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8e4ffe5ed7a0520fc67374d8c4a0d93571a27fc4\"\u003e8e4ffe5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a535eb115211b2bdee02514cdd789ad9babd0a0b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a535eb115211b2bdee02514cdd789ad9babd0a0b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8616840293fb69025ce8c3fa28583843c88497dc\"\u003e8616840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/f915a539dd64fd8acc33b179353f15a6e2411964\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/f915a539dd64fd8acc33b179353f15a6e2411964\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/496433cb5c5e37c3f3cca582c73387262fc8e745\"\u003e496433c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticsdata:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a856de7ac57f4a5706ae996fd7cedcfa2fe804e8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a856de7ac57f4a5706ae996fd7cedcfa2fe804e8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/99710afb84674cd21a87a60e386bca82ca6d817c\"\u003e99710af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticshub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2c32da3c010eca4ad16d99d96cac0408e6c45a1b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2c32da3c010eca4ad16d99d96cac0408e6c45a1b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/496433cb5c5e37c3f3cca582c73387262fc8e745\"\u003e496433c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticshub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/62babb473b5ba1261d7e362ec14e0e4d6ea594af\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/62babb473b5ba1261d7e362ec14e0e4d6ea594af\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8616840293fb69025ce8c3fa28583843c88497dc\"\u003e8616840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidmanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/fd74e7451e04c5b7533ce8e4942c8f3b763ad4c5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/fd74e7451e04c5b7533ce8e4942c8f3b763ad4c5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8616840293fb69025ce8c3fa28583843c88497dc\"\u003e8616840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidpublisher:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/4cf6af34b6a1c55533f90b7a69a0341a40bdc250\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/4cf6af34b6a1c55533f90b7a69a0341a40bdc250\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8616840293fb69025ce8c3fa28583843c88497dc\"\u003e8616840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidpublisher:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/57208553add39495a53e7fb83342dcc569e6cf98\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/57208553add39495a53e7fb83342dcc569e6cf98\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8e4ffe5ed7a0520fc67374d8c4a0d93571a27fc4\"\u003e8e4ffe5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapigateway:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/goog...\n\n_Description has been truncated_","html_url":"https://github.com/dossnathan-dotcom/perchpointplatform/pull/30","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dossnathan-dotcom%2Fperchpointplatform/issues/30","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/30/packages"}},{"old_version":"2.3.3","new_version":"3.0.6","update_type":"major","path":null,"pr_created_at":"2026-10-04T08:15:14.000Z","version_change":"2.3.3 → 3.0.6","issue":{"uuid":"5697504300","node_id":"PR_kwDOTXO5VM8AAAABGhpkKg","number":80,"state":"closed","title":"chore(deps): bump the backend-dependencies group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-10-04T08:44:02.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-04T08:15:14.000Z","updated_at":"2026-10-04T08:44:11.000Z","time_to_close":1728,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"backend-dependencies","update_count":16,"packages":[{"name":"fastapi","old_version":"0.139.0","new_version":"0.142.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.51.0","new_version":"0.54.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"sqlalchemy","old_version":"2.0.51","new_version":"2.1.1","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.18.5","new_version":"1.20.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"redis","old_version":"5.3.1","new_version":"8.1.0","repository_url":"https://github.com/redis/redis-py"},{"name":"click","old_version":"8.4.2","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"scipy","old_version":"1.18.0","new_version":"1.18.1","repository_url":"https://github.com/scipy/scipy"},{"name":"scikit-learn","old_version":"1.9.0","new_version":"1.9.1","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"lightgbm","old_version":"4.6.0","new_version":"4.7.0","repository_url":"https://github.com/lightgbm-org/LightGBM"},{"name":"statsmodels","old_version":"0.14.6","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"openai","old_version":"2.45.0","new_version":"3.22.1","repository_url":"https://github.com/openai/openai-python"},{"name":"ruff","old_version":"0.15.21","new_version":"0.16.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/python/mypy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the backend-dependencies group with 16 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.139.0` | `0.142.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.51.0` | `0.54.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.51` | `2.1.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.5` | `1.20.0` |\n| [redis](https://github.com/redis/redis-py) | `5.3.1` | `8.1.0` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.6` |\n| [scipy](https://github.com/scipy/scipy) | `1.18.0` | `1.18.1` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.9.0` | `1.9.1` |\n| [lightgbm](https://github.com/lightgbm-org/LightGBM) | `4.6.0` | `4.7.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.6` | `0.15.0` |\n| [openai](https://github.com/openai/openai-python) | `2.45.0` | `3.22.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.21` | `0.16.9` |\n| [mypy](https://github.com/python/mypy) | `2.3.0` | `2.3.1` |\n\n\nUpdates `fastapi` from 0.139.0 to 0.142.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.142.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Allow startup when automatic OpenTelemetry configuration fails. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16418\"\u003e#16418\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.142.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix repeated endpoint wrapping in included routers. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16414\"\u003e#16414\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.142.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add native OpenTelemetry support. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16403\"\u003e#16403\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📱 Improve mobile responsiveness of conference rail. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16196\"\u003e#16196\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Remove conf section and add event banner. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16193\"\u003e#16193\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove unused image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16195\"\u003e#16195\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Use buttons for Termynal controls. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16132\"\u003e#16132\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for hi (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16212\"\u003e#16212\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16210\"\u003e#16210\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16211\"\u003e#16211\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16208\"\u003e#16208\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16209\"\u003e#16209\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16207\"\u003e#16207\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16206\"\u003e#16206\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16205\"\u003e#16205\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16204\"\u003e#16204\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16203\"\u003e#16203\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16202\"\u003e#16202\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16201\"\u003e#16201\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16171\"\u003e#16171\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pr-submit\"\u003e\u003ccode\u003e@​pr-submit[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix frontend test timeout with Starlette Git. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16408\"\u003e#16408\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Permit.io. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16406\"\u003e#16406\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump anyio from 4.12.1 to 4.14.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16375\"\u003e#16375\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 15 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16285\"\u003e#16285\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 1.3.1 to 1.6.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16289\"\u003e#16289\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump annotated-doc from 0.0.4 to 0.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16288\"\u003e#16288\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typing-inspection from 0.4.2 to 0.4.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16286\"\u003e#16286\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/78c4324f0c56bc5282a459978779a9e532d19709\"\u003e\u003ccode\u003e78c4324\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16419\"\u003e#16419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2579ed0d9e73205326463025cc756650f642f511\"\u003e\u003ccode\u003e2579ed0\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1d4953d2e528b58cfb09bbc28fb25dcda227c6ea\"\u003e\u003ccode\u003e1d4953d\u003c/code\u003e\u003c/a\u003e 🐛 Allow startup when automatic OpenTelemetry configuration fails (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16418\"\u003e#16418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3e33a03bdaa3a89f27d5e0c390c4ba9032f14b5e\"\u003e\u003ccode\u003e3e33a03\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16415\"\u003e#16415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/12ea7f5a5e76c5ba3495c2803f57ed92ac67731b\"\u003e\u003ccode\u003e12ea7f5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ac88f563db5f4d3300d43355eca728c93ed9ffe2\"\u003e\u003ccode\u003eac88f56\u003c/code\u003e\u003c/a\u003e 🐛 Fix repeated endpoint wrapping in included routers (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16414\"\u003e#16414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/bd41128123fd08d693f5541e27c550eebe20f8b0\"\u003e\u003ccode\u003ebd41128\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.142.0 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16411\"\u003e#16411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7aa21e53c859ce52b17196b35909efca6f2fa11f\"\u003e\u003ccode\u003e7aa21e5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b3949cd9e5932f76217131fceabc74145c3db24\"\u003e\u003ccode\u003e4b3949c\u003c/code\u003e\u003c/a\u003e ✨ Add native OpenTelemetry support (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16403\"\u003e#16403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c30032a1b68fb36c03fffe1856369d3824607c7c\"\u003e\u003ccode\u003ec30032a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.139.0...0.142.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.51.0 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.54.0\u003c/h2\u003e\n\u003ch2\u003e📨 Send metadata after the response body\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.54.0 adds response trailers and \u003ccode\u003e103 Early Hints\u003c/code\u003e to its experimental HTTP/2 implementation through \u003ccode\u003ezttp\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.54.0 \u0026quot;zttp\u0026gt;=0.0.34\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend HTTP/2 response trailers\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e). The ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension lets applications send metadata, such as checksums, after the response body. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them. Multiple trailer messages are combined before completing the response.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental and opt-in.\u003c/strong\u003e Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Upgrade-based h2c and WebSockets over HTTP/2 remain unsupported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e💡 Hint at resources before the final response\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend \u003ccode\u003e103 Early Hints\u003c/code\u003e over HTTP/2\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e). Applications can use the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension to send resource hints before the final response. Each supplied link becomes a separate \u003ccode\u003eLink\u003c/code\u003e header.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.53.0...0.54.0\"\u003e0.53.0...0.54.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.53.0\u003c/h2\u003e\n\u003ch2\u003e🌐 Opt-in HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.53.0 adds experimental HTTP/2 through \u003ccode\u003ezttp\u003c/code\u003e, alongside a new \u003ccode\u003ezuvloop\u003c/code\u003e integration and connection-handling improvements.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.53.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eServe HTTP/1.1 and HTTP/2 with \u003ccode\u003ezttp\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e). Install \u003ccode\u003ezttp\u003c/code\u003e, then enable HTTP/2 with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Uvicorn negotiates HTTP/2 over TLS with ALPN and supports cleartext prior knowledge.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental.\u003c/strong\u003e Upgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚙️ More event loop choice\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRun Uvicorn with \u003ccode\u003ezuvloop\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e). Install \u003ccode\u003ezuvloop\u003c/code\u003e separately and select it explicitly with \u003ccode\u003e--loop zuvloop\u003c/code\u003e on CPython 3.14 or newer.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛡️ More reliable connections and proxies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHonor \u003ccode\u003eConnection: close\u003c/code\u003e token lists\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e). Uvicorn now parses comma-separated tokens case-insensitively across HTTP implementations.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTrust IPv6 loopback proxies by default\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e). The default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value now includes \u003ccode\u003e::1\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eKeep upgraded WebSockets alive\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e). Uvicorn cancels the HTTP keep-alive timer when the connection becomes a WebSocket.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.4...0.53.0\"\u003e0.52.4...0.53.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0 (September 24, 2026)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support remains experimental. Install \u003ccode\u003ezttp\u0026gt;=0.0.34\u003c/code\u003e and enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd HTTP/2 response trailers through the ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd HTTP/2 \u003ccode\u003e103 Early Hints\u003c/code\u003e through the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.53.0 (September 14, 2026)\u003c/h2\u003e\n\u003cp\u003eThis release adds experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e. Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\nUpgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ezuvloop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle comma-separated, case-insensitive \u003ccode\u003eConnection: close\u003c/code\u003e tokens across HTTP implementations (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTrust IPv6 loopback in the default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancel the HTTP keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.4 (August 18, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.3 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.24 and use its combined receive path, improving HTTP/1.1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3067\"\u003e#3067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.2 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.22, fixing bodyless request receives and improving HTTP/1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.1 (August 1, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete the closing handshake on server-initiated WebSocket closes in the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e and \u003ccode\u003ewsproto\u003c/code\u003e implementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing write flow control to the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, preventing data truncation on server-initiated closes with large in-flight payloads (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3048\"\u003e#3048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle connection loss while a WebSocket write is waiting on backpressure (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3eb9a9ab9af69005c687728097461c1fd2a95db9\"\u003e\u003ccode\u003e3eb9a9a\u003c/code\u003e\u003c/a\u003e Version 0.54.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3161\"\u003e#3161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cd7ef6d31c1a09a3653f326cda7813d35ffd6082\"\u003e\u003ccode\u003ecd7ef6d\u003c/code\u003e\u003c/a\u003e Remove races from supervisor tests (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a56c7cce64aaa37e5864f882a5cbce8aa1dac47a\"\u003e\u003ccode\u003ea56c7cc\u003c/code\u003e\u003c/a\u003e Support HTTP/2 response trailers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9bd4404cca9506e9ba4f46b69ef72d011ceef2bd\"\u003e\u003ccode\u003e9bd4404\u003c/code\u003e\u003c/a\u003e chore(deps): bump anyio from 4.13.0 to 4.14.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/21f39ef7988366f77fb3172569bd235ac5de34cc\"\u003e\u003ccode\u003e21f39ef\u003c/code\u003e\u003c/a\u003e Add HTTP/2 Early Hints support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/421708fbc1a704dac8bd4053a7c4c0bf4d3704ee\"\u003e\u003ccode\u003e421708f\u003c/code\u003e\u003c/a\u003e Version 0.53.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f1a1bff7be819f5724d6fdf86dfd448a97c62e23\"\u003e\u003ccode\u003ef1a1bff\u003c/code\u003e\u003c/a\u003e Unset the keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/63971ed952090438896e6eba7d07178b616d97cc\"\u003e\u003ccode\u003e63971ed\u003c/code\u003e\u003c/a\u003e Document HTTP/2 support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7d1a0055aee5e281accc646b559ddd147486bf8a\"\u003e\u003ccode\u003e7d1a005\u003c/code\u003e\u003c/a\u003e Remove race from multiprocess health check test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3128\"\u003e#3128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5ac6265a01ff6dcadb0e4250152c3deaf8a168a9\"\u003e\u003ccode\u003e5ac6265\u003c/code\u003e\u003c/a\u003e Add ::1 to FORWARDED_ALLOW_IPS (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.51.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.13.4 to 2.13.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.5/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/001dea020e0809844e5b17666432c9135a976f46\"\u003e\u003ccode\u003e001dea0\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epypa/gh-action-pypi-publish\u003c/code\u003e action to v1.14.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/558379fee957fad25858e33596146c72d5674843\"\u003e\u003ccode\u003e558379f\u003c/code\u003e\u003c/a\u003e Bump twine to v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2cfd5d3d2ae721ea882c045f83b7f7a4003aab01\"\u003e\u003ccode\u003e2cfd5d3\u003c/code\u003e\u003c/a\u003e Do not check for docs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a735bee5c64e1fe50785c376adaf1275e752b8ac\"\u003e\u003ccode\u003ea735bee\u003c/code\u003e\u003c/a\u003e Fix more Clippy lints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7eed4a16b87afaced4d0eafae230453de3410d64\"\u003e\u003ccode\u003e7eed4a1\u003c/code\u003e\u003c/a\u003e Fix Clippy 0.1.95 warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b353bbb20a4989b4c033e2be2b4a40d36178b16a\"\u003e\u003ccode\u003eb353bbb\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/63d2cccd6e760da6bbc7fe81a53cb2bde3768f5e\"\u003e\u003ccode\u003e63d2ccc\u003c/code\u003e\u003c/a\u003e Count validated model fields once in smart unions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a53ec2ed342fda4e6aa3684399d04ea57be9a6e4\"\u003e\u003ccode\u003ea53ec2e\u003c/code\u003e\u003c/a\u003e Speed up PyPy CI tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d65e0f96e890ca82f4b66a15d5b3bd65af2c661c\"\u003e\u003ccode\u003ed65e0f9\u003c/code\u003e\u003c/a\u003e Workaround circular import error in Mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/47a6dbf8ad6216211bd0df6ec5c2c6c6ed905b72\"\u003e\u003ccode\u003e47a6dbf\u003c/code\u003e\u003c/a\u003e Fix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.4...v2.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.14.2 to 2.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003eBehavior changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003ecase_sensitive\u003c/code\u003e now applies to init kwargs and config-file sources\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/900\"\u003e#900\u003c/a\u003e). \u003ccode\u003eInitSettingsSource\u003c/code\u003e and the JSON/TOML/YAML config sources previously ignored \u003ccode\u003ecase_sensitive\u003c/code\u003e. Since it defaults to \u003ccode\u003eFalse\u003c/code\u003e, \u003cstrong\u003ecase-insensitive matching is now the default\u003c/strong\u003e for these sources — e.g. \u003ccode\u003eSettings(TeSt=...)\u003c/code\u003e now populates a \u003ccode\u003etest\u003c/code\u003e field where it previously did not. Nested keys are still matched case-sensitively.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFields with unresolved forward references now emit a warning\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/901\"\u003e#901\u003c/a\u003e). Settings sources can silently fail to resolve such fields; they now raise \u003ccode\u003eIncompleteFieldDefinitionWarning\u003c/code\u003e telling you to call \u003ccode\u003emodel_rebuild()\u003c/code\u003e. If you have \u003ccode\u003efilterwarnings = error\u003c/code\u003e configured, this may surface as a new failure.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNon-JSON env values for strict fields now raise \u003ccode\u003eValidationError\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/926\"\u003e#926\u003c/a\u003e) instead of a less specific error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eShow environment variable names in CLI help\u003c/strong\u003e via \u003ccode\u003ecli_show_env_vars=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/860\"\u003e#860\u003c/a\u003e), so generated \u003ccode\u003e--help\u003c/code\u003e output doubles as configuration documentation.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003ePYDANTIC_SETTINGS_DEBUG\u003c/code\u003e for debugging settings resolution\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/906\"\u003e#906\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/913\"\u003e#913\u003c/a\u003e). Set it to a truthy value with \u003ccode\u003eDEBUG\u003c/code\u003e logging enabled to see each source's contribution in priority order, which source won for each value, and which \u003ccode\u003eenv_file\u003c/code\u003e/secret files were probed, loaded, or skipped — the long-standing \u0026quot;why isn't my \u003ccode\u003e.env\u003c/code\u003e being picked up?\u0026quot; question.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003etoml_table_header\u003c/code\u003e for regular TOML files\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/882\"\u003e#882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/886\"\u003e#886\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/887\"\u003e#887\u003c/a\u003e), letting you root settings at a nested table in any TOML file, not just \u003ccode\u003epyproject.toml\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eTraversable\u003c/code\u003e support for JSON/TOML/YAML file sources\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/902\"\u003e#902\u003c/a\u003e), so you can load config packaged inside a distribution — including files inside a zip or wheel — via \u003ccode\u003eimportlib.resources.files(...)\u003c/code\u003e without casting to \u003ccode\u003ePath\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eGCP: \u003ccode\u003eproject_id\u003c/code\u003e can come from an earlier settings source\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/878\"\u003e#878\u003c/a\u003e), rather than only from the constructor or \u003ccode\u003eGOOGLE_CLOUD_PROJECT\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix env vars not loading on Windows with \u003ccode\u003ecase_sensitive=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/894\"\u003e#894\u003c/a\u003e). Windows upper-cases \u003ccode\u003eos.environ\u003c/code\u003e keys, so fields raised \u003ccode\u003eField required\u003c/code\u003e instead of picking up their values.\u003c/li\u003e\n\u003cli\u003eRead secret files as UTF-8 instead of the platform locale encoding (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/917\"\u003e#917\u003c/a\u003e). On Windows code pages such as cp1252 this silently corrupted non-ASCII secrets.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eAliasPath\u003c/code\u003e on nested model fields not JSON-decoding env values (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/898\"\u003e#898\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix case-insensitive matching for \u003cstrong\u003eoptional\u003c/strong\u003e nested models (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/905\"\u003e#905\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix dotenv extras being wrongly claimed by a complex field sharing a name prefix (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/912\"\u003e#912\u003c/a\u003e) — e.g. \u003ccode\u003edbx_token\u003c/code\u003e being swallowed by a \u003ccode\u003edb: dict\u003c/code\u003e field.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003enested_model_default_partial_update=True\u003c/code\u003e corrupting discriminated unions (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/876\"\u003e#876\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSecret\u003c/code\u003e subclasses crashing when loaded from the environment (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/920\"\u003e#920\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix enum names not parsing through nested annotations such as \u003ccode\u003eOptional[Annotated[MyEnum, ...]]\u003c/code\u003e with \u003ccode\u003eenv_parse_enums=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/910\"\u003e#910\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAn empty \u003ccode\u003eyaml_config_section\u003c/code\u003e now falls back to defaults instead of raising \u003ccode\u003eAttributeError: 'NoneType' object has no attribute 'keys'\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/914\"\u003e#914\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNestedSecretsSettingsSource\u003c/code\u003e no longer follows symlinks pointing outside \u003ccode\u003esecrets_dir\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/889\"\u003e#889\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eGCP: skip the \u003ccode\u003elist_secrets\u003c/code\u003e call when \u003ccode\u003ecase_sensitive=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/862\"\u003e#862\u003c/a\u003e), lowering the required IAM permissions to just \u003ccode\u003eroles/secretmanager.secretAccessor\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAWS: \u003ccode\u003etypes-boto3[secretsmanager]\u003c/code\u003e is no longer required at runtime (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/880\"\u003e#880\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument JSON parsing of complex env values, plus a comma-separated-values recipe (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/919\"\u003e#919\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRecommend an async settings loading pattern (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/908\"\u003e#908\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eClarify behavior when an unprefixed value is present in a dotenv file (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/895\"\u003e#895\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eClarify environment variable helper descriptions (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/867\"\u003e#867\u003c/a\u003e) and fix assorted typos (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/904\"\u003e#904\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate documentation link for Pydantic settings by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/863\"\u003epydantic/pydantic-settings#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/865\"\u003epydantic/pydantic-settings#865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify environment variable helper descriptions by \u003ca href=\"https://github.com/vip892766gma\"\u003e\u003ccode\u003e@​vip892766gma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/867\"\u003epydantic/pydantic-settings#867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/870\"\u003epydantic/pydantic-settings#870\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/875\"\u003epydantic/pydantic-settings#875\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip list_secrets call when case_sensitive=True by \u003ca href=\"https://github.com/ecerulm\"\u003e\u003ccode\u003e@​ecerulm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/862\"\u003epydantic/pydantic-settings#862\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGoogleSecretManagerSettingsSource: read project_id from previous sources by \u003ca href=\"https://github.com/ecerulm\"\u003e\u003ccode\u003e@​ecerulm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/878\"\u003epydantic/pydantic-settings#878\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/f725ca187bee4212e9ef799eefa3cb25be788462\"\u003e\u003ccode\u003ef725ca1\u003c/code\u003e\u003c/a\u003e Prepare release 2.15.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/930\"\u003e#930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/28f35c25fac5d61210d532c31a300d49c0b684a4\"\u003e\u003ccode\u003e28f35c2\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/929\"\u003e#929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9056db049560897229f2603493753bae27b6479f\"\u003e\u003ccode\u003e9056db0\u003c/code\u003e\u003c/a\u003e test: move function-local imports to the top of test modules (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/927\"\u003e#927\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/f077e3ab3d9492838c7ef9275a88c95134688095\"\u003e\u003ccode\u003ef077e3a\u003c/code\u003e\u003c/a\u003e fix: raise ValidationError for non-JSON env values on strict fields (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/926\"\u003e#926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ae25d703c458b57f5a9a425f6ec9a28ad868f980\"\u003e\u003ccode\u003eae25d70\u003c/code\u003e\u003c/a\u003e fix: treat Secret subclasses as non-complex fields (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/716\"\u003e#716\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/798dcea2a23b08a3e9b37994014e036224f6dd18\"\u003e\u003ccode\u003e798dcea\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/924\"\u003e#924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/a190041d353bda2d432ea1908de4c499ae89ee0a\"\u003e\u003ccode\u003ea190041\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/925\"\u003e#925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/5d9333282b5c85d65a457c45e4476369b9949726\"\u003e\u003ccode\u003e5d93332\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/921\"\u003e#921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/d2fdeda91157140d2ff0c05404f32a9b1218115a\"\u003e\u003ccode\u003ed2fdeda\u003c/code\u003e\u003c/a\u003e fix: read secret files as UTF-8 instead of the locale encoding (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/917\"\u003e#917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/2256a4e60f83f2da81e7654252562fc4841aa5d4\"\u003e\u003ccode\u003e2256a4e\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 3 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/915\"\u003e#915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.14.2...v2.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.51 to 2.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.1\u003c/h1\u003e\n\u003cp\u003eReleased: September 25, 2026\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Removed the legacy underscore-separated extra names such as\n\u003ccode\u003emssql_pymssql\u003c/code\u003e and \u003ccode\u003epostgresql_psycopg\u003c/code\u003e from \u003ccode\u003epyproject.toml\u003c/code\u003e.\nThey normalize to the same names as the existing dash-separated extras,\nwhich is disallowed by \u003ca href=\"https://peps.python.org/pep-0685\"\u003ePEP 685\u003c/a\u003e, and caused the 2.1.0 source\ndistribution to fail to build with installers that enforce this rule,\nsuch as uv. The underscore spellings continue to work when installing,\nas installers normalize extra names before matching them.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13604\"\u003e#13604\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cp\u003eReleased: September 24, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [feature]\u003c/strong\u003e Added \u003ccode\u003e_orm.composite.column_template\u003c/code\u003e parameter to\n\u003ccode\u003e_orm.composite()\u003c/code\u003e.  When the composite class is a dataclass, this\nparameter accepts a string template such as \u003ccode\u003e\u0026quot;person_%s\u0026quot;\u003c/code\u003e, containing\nexactly one \u003ccode\u003e%s\u003c/code\u003e placeholder, that's used to generate column names for\ndataclass fields that don't otherwise have an explicit name, rather than\nusing the bare field name.  This removes the need to hand-write a\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e for each field when the same composite dataclass\nis mapped multiple times on the same class with different column-name\nprefixes.  Pull request courtesy Leonardo Rosa.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12575\"\u003e#12575\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where pickling an ORM object that had an instance level lazy\nloader established, such as when the \u003ccode\u003e_orm.raiseload()\u003c/code\u003e option is used,\nwould emit a spurious warning regarding the loader containing additional\ncriteria, if the object had itself been unpickled from a previous\nserialization.  This would occur for objects that cross more than one\nserialization boundary, such as when using multiprocessing.\u003c/p\u003e\n\u003cp\u003eThis change is also \u003cstrong\u003ebackported\u003c/strong\u003e to: 2.0.53\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13574\"\u003e#13574\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where calling \u003ccode\u003e_orm.aliased()\u003c/code\u003e against an existing\n\u003ccode\u003e_orm.aliased()\u003c/code\u003e construct, without passing an explicit selectable,\nwould disregard the selectable of the existing construct and produce an\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.18.5 to 1.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.20.0\u003c/h1\u003e\n\u003cp\u003eReleased: September 11, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [batch]\u003c/strong\u003e Added a warning for the case where an unnamed CHECK constraint on a\nreflected table is omitted from a batch \u0026quot;recreate\u0026quot; operation.  An unnamed\nCHECK constraint can't be reliably carried over in a batch recreate\nas it may refer to columns that are being dropped or changed.  This\nomission was previously a silent operation.   The presence of any\n\u003ccode\u003e~sqlalchemy.schema.CheckConstraint\u003c/code\u003e in\n\u003ccode\u003eOperations.batch_alter_table.table_args\u003c/code\u003e is taken to indicate\nthat the case has been accommodated, and no warning is emitted.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1846\"\u003e#1846\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [autogenerate]\u003c/strong\u003e Autogenerate now renders a warning comment above any rendered\n\u003ccode\u003eOperations.drop_constraint()\u003c/code\u003e directive for which the constraint name\nis \u003ccode\u003eNone\u003c/code\u003e, as is the case when a constraint that has no name in the model\nis dropped, most typically within the \u003ccode\u003edowngrade()\u003c/code\u003e function of a\nmigration that adds an unnamed constraint.  A warning is also emitted on\nthe console when the migration script is generated.   The directive\nrequires a non-None name in order to be able to emit a \u0026quot;DROP CONSTRAINT\u0026quot;\ncommand.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/916\"\u003e#916\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [batch]\u003c/strong\u003e Fixed bug in batch mode where adding a column with a type that generates\nits own CHECK constraint, such as \u003ccode\u003e~sqlalchemy.types.Boolean\u003c/code\u003e or\n\u003ccode\u003e~sqlalchemy.types.Enum\u003c/code\u003e with\n\u003ccode\u003e~sqlalchemy.types.Boolean.create_constraint\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e,\nwould emit the constraint twice when the table was recreated, once under\nthe name generated by the naming convention in use and once under the\nname given to the type.  The constraint is now emitted once, using the\nsame name that would be used outside of batch mode.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1768\"\u003e#1768\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [batch]\u003c/strong\u003e Fixed bug in batch mode where a CHECK constraint generated by a type such\nas \u003ccode\u003e~sqlalchemy.types.Boolean\u003c/code\u003e or \u003ccode\u003e~sqlalchemy.types.Enum\u003c/code\u003e\nwould lose the name established for it by the naming convention in use\nwhen the table was recreated, as the constraint was regenerated against\nthe temporary table used for the recreate operation.  The naming\nconvention is now resolved against the name of the table being replaced.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 5.3.1 to 8.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e✨ Highlights\u003c/h2\u003e\n\u003ch3\u003eAsync maintenance notifications\u003c/h3\u003e\n\u003cp\u003eredis-py now supports server-pushed \u003cstrong\u003emaintenance notifications\u003c/strong\u003e in the asyncio stack for both\nstandalone and cluster clients, bringing the async client to parity with the sync implementation.\nWhen a Redis deployment signals maintenance events (such as node migration or failover windows), the\nasync client reacts through the maintenance-notifications handler (\u003ccode\u003eredis/maint_notifications.py\u003c/code\u003e and\nits async integration under \u003ccode\u003eredis/asyncio/\u003c/code\u003e), allowing applications to adapt connection handling\nduring maintenance without downtime. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4177\"\u003e#4177\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eExpanded command coverage\u003c/h3\u003e\n\u003cp\u003eThis release adds a batch of new command surfaces across core data types and modules:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLists\u003c/strong\u003e — \u003ccode\u003eLMOVEM\u003c/code\u003e / \u003ccode\u003eBLMOVEM\u003c/code\u003e for moving multiple elements between lists (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4174\"\u003e#4174\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSets\u003c/strong\u003e — \u003ccode\u003eSDIFFCARD\u003c/code\u003e and \u003ccode\u003eSUNIONCARD\u003c/code\u003e cardinality commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4171\"\u003e#4171\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eStreams\u003c/strong\u003e — \u003ccode\u003eMAXCOUNT\u003c/code\u003e / \u003ccode\u003eMAXSIZE\u003c/code\u003e options for \u003ccode\u003eXREAD\u003c/code\u003e and \u003ccode\u003eXREADGROUP\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4173\"\u003e#4173\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTime Series\u003c/strong\u003e — \u003ccode\u003eTS.READ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4170\"\u003e#4170\u003c/a\u003e), \u003ccode\u003eTS.QUERYLABELS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4197\"\u003e#4197\u003c/a\u003e), \u003ccode\u003eTS.NRANGE\u003c/code\u003e / \u003ccode\u003eTS.NREVRANGE\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4163\"\u003e#4163\u003c/a\u003e),\nand an \u003ccode\u003eexclude_empty\u003c/code\u003e (\u003ccode\u003eEXCLUDEEMPTY\u003c/code\u003e) option for \u003ccode\u003eTS.MRANGE\u003c/code\u003e / \u003ccode\u003eTS.MREVRANGE\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4188\"\u003e#4188\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSearch\u003c/strong\u003e — \u003ccode\u003eFT.ALIASLIST\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4198\"\u003e#4198\u003c/a\u003e) and a \u003ccode\u003eCOLLECT\u003c/code\u003e reducer for aggregations (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4179\"\u003e#4179\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSentinel\u003c/strong\u003e — replica sentinel aliases (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4127\"\u003e#4127\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd replica sentinel aliases (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4127\"\u003e#4127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd TS.NRANGE and TS.NREVRANGE support to the timeseries command surface (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4163\"\u003e#4163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add TS.READ command support to the timeseries module (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4170\"\u003e#4170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add SDIFFCARD and SUNIONCARD command support (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4171\"\u003e#4171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add MAXCOUNT/MAXSIZE support to XREAD and XREADGROUP (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4173\"\u003e#4173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add LMOVEM and BLMOVEM commands for moving multiple list elements (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4174\"\u003e#4174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add async maintenance-notifications support for standalone and cluster clients (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4177\"\u003e#4177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add COLLECT reducer support to search aggregations (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4179\"\u003e#4179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add exclude_empty (EXCLUDEEMPTY) option to TS.MRANGE and TS.MREVRANGE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4188\"\u003e#4188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add TS.QUERYLABELS support to the timeseries command surface (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4197\"\u003e#4197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add FT.ALIASLIST support (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4198\"\u003e#4198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚠️ Experimental\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add client-side HIMPORT fieldset support for standalone and cluster clients (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4205\"\u003e#4205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe feature considered unstable and \u003cstrong\u003epublic API might be changed in the future minor version\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: detect closed pooled connection without consuming pending push data (RESP3 + hiredis) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4156\"\u003e#4156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Sentinel pool capacity loss after failover (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4193\"\u003e#4193\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/e013126df18e476fbb8b8215f040f39bd3242683\"\u003e\u003ccode\u003ee013126\u003c/code\u003e\u003c/a\u003e Testing with 8.10 GA (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4227\"\u003e#4227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/059d1e97d88dd7ed516628e0a9765ab8e0e299f1\"\u003e\u003ccode\u003e059d1e9\u003c/code\u003e\u003c/a\u003e Fixed TS.NRANGE commands to correctly apply aggregators (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4225\"\u003e#4225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d486a0a982dcdf316006474dc286ca65cbec5a9f\"\u003e\u003ccode\u003ed486a0a\u003c/code\u003e\u003c/a\u003e Fix FIELDNAME alias dropping first character of un-prefixed fields (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4224\"\u003e#4224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/fb931042420baaa5fbb9021955e444f7afa66dc2\"\u003e\u003ccode\u003efb93104\u003c/code\u003e\u003c/a\u003e feat: add client-side HIMPORT fieldset support for standalone and cluster cli...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/9197609f48eb9713411a50534ca48210486a4bf9\"\u003e\u003ccode\u003e9197609\u003c/code\u003e\u003c/a\u003e Fix lat/lon swap in search querystring geo() helper (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4223\"\u003e#4223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/14714a0812d3ff03ad34c89ce6f79e287a04e9fb\"\u003e\u003ccode\u003e14714a0\u003c/code\u003e\u003c/a\u003e fix: Fixed double decoding issue with unquote() (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4222\"\u003e#4222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/227280a939718d09ff9d7c41f9785ffdc21bdc2a\"\u003e\u003ccode\u003e227280a\u003c/code\u003e\u003c/a\u003e Update lib version to 8.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/88d16d0db10c852d1d292628b2c832f1ed117056\"\u003e\u003ccode\u003e88d16d0\u003c/code\u003e\u003c/a\u003e Decode ACL LOG string values on the default RESP3 legacy callback (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4201\"\u003e#4201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/599fd75ca7d0745928280ff3a64ccd224dbf2b76\"\u003e\u003ccode\u003e599fd75\u003c/code\u003e\u003c/a\u003e feat: add FT.ALIASLIST support (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4198\"\u003e#4198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/71e275e6eae94d202b49bccce10ef0d2a59050e7\"\u003e\u003ccode\u003e71e275e\u003c/code\u003e\u003c/a\u003e test: add VectorField RERANK serialization tests for sync and async search (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v5.3.1...v8.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.4.2 to 8.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.5.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.5.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.5.0/\"\u003ehttps://pypi.org/project/click/8.5.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-5-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-5-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/33\"\u003ehttps://github.com/pallets/click/milestone/33\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd built-in shell completion support for PowerShell (Windows PowerShell\n5.1+ and pwsh 7+) alongside the existing \u003ccode\u003ebash\u003c/code\u003e, \u003ccode\u003ezsh\u003c/code\u003e, and \u003ccode\u003efish\u003c/code\u003e\ncompleters. Use \u003ccode\u003e_FOO_BAR_COMPLETE=powershell_source foo-bar\u003c/code\u003e to generate\nthe completion script. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2672\"\u003e#2672\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3637\"\u003e#3637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupported versions of Windows enable ANSI terminal styles by default.\nColorama is no longer a dependency and is not used. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2986\"\u003e#2986\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3505\"\u003e#3505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003eArgument\u003c/code\u003e accepts a \u003ccode\u003ehelp\u003c/code\u003e parameter, and help output includes\na \u003ccode\u003ePositional arguments\u003c/code\u003e section when argument help is available. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2983\"\u003e#2983\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3473\"\u003e#3473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfirm()\u003c/code\u003e and \u003ccode\u003eprompt()\u003c/code\u003e strip ANSI color and style codes from the\nprompt when the output stream does not support them, matching \u003ccode\u003eecho()\u003c/code\u003e.\nThis stripping was lost in \u003ccode\u003e8.4.0\u003c/code\u003e when \u003ca href=\"https://redirect.github.com/pallets/click/issues/2969\"\u003e#2969\u003c/a\u003e began writing the\nprompt with \u003ccode\u003einput()\u003c/code\u003e directly. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3572\"\u003e#3572\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3653\"\u003e#3653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003ePath\u003c/code\u003e with \u003ccode\u003eallow_dash=True\u003c/code\u003e no longer triggers a \u003ccode\u003eBytesWarning\u003c/code\u003e,\nan error under \u003ccode\u003epython -bb\u003c/code\u003e, when checking a value against the \u003ccode\u003e-\u003c/code\u003e\nconvention. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2877\"\u003e#2877\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3642\"\u003e#3642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd {func}\u003ccode\u003ecustom_version_option\u003c/code\u003e, a \u003ccode\u003e--version\u003c/code\u003e option whose output is\nproduced by a callback, covering cases {func}\u003ccode\u003eversion_option\u003c/code\u003e intentionally\ndoes not. The feature set of {func}\u003ccode\u003eversion_option\u003c/code\u003e is now frozen; see\n[discussion \u003ca href=\"https://redirect.github.com/pallets/click/issues/3527\"\u003e#3527\u003c/a\u003e](\u003ca href=\"https://github.com/pallets/click/discussions/3527\"\u003ehttps://github.com/pallets/click/discussions/3527\u003c/a\u003e). \u003ca href=\"https://redirect.github.com/pallets/click/issues/3581\"\u003e#3581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estyle()\u003c/code\u003e and \u003ccode\u003esecho()\u003c/code\u003e no longer silently drop the 256-color index \u003ccode\u003e0\u003c/code\u003e\n(black) passed as \u003ccode\u003efg\u003c/code\u003e or \u003ccode\u003ebg\u003c/code\u003e, and now validate color arguments. Invalid\ncolors raise a \u003ccode\u003eValueError\u003c/code\u003e instead of a \u003ccode\u003eTypeError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3677\"\u003e#3677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe automatic help option stores its value under the reserved name\n\u003ccode\u003e_click_default_help\u003c/code\u003e instead of \u003ccode\u003ehelp\u003c/code\u003e, so a parameter named \u003ccode\u003ehelp\u003c/code\u003e no\nlonger breaks parsing. The new name is visible in\n{meth}\u003ccode\u003eCommand.to_info_dict\u003c/code\u003e output. Parameters that overwrite each other's\nvalue trigger a warning: an argument sharing its name with another\nparameter, or any parameter claiming the reserved name. Options may still\nshare a name to compete for the same value (feature switches).\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2819\"\u003e#2819\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3678\"\u003e#3678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunstyle\u003c/code\u003e and the ANSI handling behind help-text wrapping now strip the full\nCSI escape-sequence grammar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3681\"\u003e#3681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStreamline \u003ccode\u003eOption\u003c/code\u003e flag handling: the flag-kind, type, lazy-default and\nvalidation steps in \u003ccode\u003eOption.__init__\u003c/code\u003e move into focused helpers, and\n\u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003edefault\u003c/code\u003e keep their unset sentinel at construction\n(resolved lazily on read) so \u003ccode\u003eis UNSET\u003c/code\u003e reliably tells a user-supplied value\nfrom an auto-derived one. Runtime behavior is unchanged, but\n{meth}\u003ccode\u003eParameter.to_info_dict\u003c/code\u003e now resolves \u003ccode\u003edefault=True\u003c/code\u003e on a feature\nswitch to its \u003ccode\u003eflag_value\u003c/code\u003e, matching what the function receives at call\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.5.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-08-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd built-in shell completion support for PowerShell (Windows PowerShell\n5.1+ and pwsh 7+) alongside the existing \u003ccode\u003ebash\u003c/code\u003e, \u003ccode\u003ezsh\u003c/code\u003e, and \u003ccode\u003efish\u003c/code\u003e\ncompleters. Use \u003ccode\u003e_FOO_BAR_COMPLETE=powershell_source foo-bar\u003c/code\u003e to generate\nthe completion script. {issue}\u003ccode\u003e2672\u003c/code\u003e {pr}\u003ccode\u003e3637\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSupported versions of Windows enable ANSI terminal styles by default.\nColorama is no longer a dependency and is not used. {issue}\u003ccode\u003e2986\u003c/code\u003e {pr}\u003ccode\u003e3505\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003eArgument\u003c/code\u003e accepts a \u003ccode\u003ehelp\u003c/code\u003e parameter, and help output includes\na \u003ccode\u003ePositional arguments\u003c/code\u003e section when argument help is available. {issue}\u003ccode\u003e2983\u003c/code\u003e {pr}\u003ccode\u003e3473\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfirm()\u003c/code\u003e and \u003ccode\u003eprompt()\u003c/code\u003e strip ANSI color and style codes from the\nprompt when the output stream does not support them, matching \u003ccode\u003eecho()\u003c/code\u003e.\nThis stripping was lost in \u003ccode\u003e8.4.0\u003c/code\u003e when {pr}\u003ccode\u003e2969\u003c/code\u003e began writing the\nprompt with \u003ccode\u003einput()\u003c/code\u003e directly. {issue}\u003ccode\u003e3572\u003c/code\u003e {pr}\u003ccode\u003e3653\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix test failures when using pytest \u0026gt;= 9.1. {pr}\u003ccode\u003e3656\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003ePath\u003c/code\u003e with \u003ccode\u003eallow_dash=True\u003c/code\u003e no longer triggers a \u003ccode\u003eBytesWarning\u003c/code\u003e,\nan error under \u003ccode\u003epython -bb\u003c/code\u003e, when checking a value against the \u003ccode\u003e-\u003c/code\u003e\nconvention. {issue}\u003ccode\u003e2877\u003c/code\u003e {pr}\u003ccode\u003e3642\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd {func}\u003ccode\u003ecustom_version_option\u003c/code\u003e, a \u003ccode\u003e--version\u003c/code\u003e option whose output is\nproduced by a callback, covering cases {func}\u003ccode\u003eversion_option\u003c/code\u003e intentionally\ndoes not. The feature set of {func}\u003ccode\u003eversion_option\u003c/code\u003e is now frozen; see\n[discussion \u003ca href=\"https://redirect.github.com/pallets/click/issues/3527\"\u003e#3527\u003c/a\u003e](\u003ca href=\"https://github.com/pallets/click/discussions/3527\"\u003ehttps://github.com/pallets/click/discussions/3527\u003c/a\u003e). {pr}\u003ccode\u003e3581\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estyle()\u003c/code\u003e and \u003ccode\u003esecho()\u003c/code\u003e no longer silently drop the 256-color index \u003ccode\u003e0\u003c/code\u003e\n(black) passed as \u003ccode\u003efg\u003c/code\u003e or \u003ccode\u003ebg\u003c/code\u003e, and now validate color arguments. Invalid\ncolors raise a \u003ccode\u003eValueError\u003c/code\u003e instead of a \u003ccode\u003eTypeError\u003c/code\u003e. {pr}\u003ccode\u003e3677\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe automatic help option stores its value under the reserved name\n\u003ccode\u003e_click_default_help\u003c/code\u003e instead of \u003ccode\u003ehelp\u003c/code\u003e, so a parameter named \u003ccode\u003ehelp\u003c/code\u003e no\nlonger breaks parsing. The new name is visible in\n{meth}\u003ccode\u003eCommand.to_info_dict\u003c/code\u003e output. Parameters that overwrite each other's\nvalue trigger a warning: an argument sharing its name with another\nparameter, or any parameter claiming the reserved name. Options may still\nshare a name to compete for the same value (feature switches).\n{issue}\u003ccode\u003e2819\u003c/code\u003e {pr}\u003ccode\u003e3678\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunstyle\u003c/code\u003e and the ANSI handling behind help-text wrapping now strip the full\nCSI escape-sequence grammar. {pr}\u003ccode\u003e3681\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStreamline \u003ccode\u003eOption\u003c/code\u003e flag handling: the flag-kind, type, lazy-default and\nvalidation steps in \u003ccode\u003eOption.__init__\u003c/code\u003e move into focused helpers, and\n\u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003edefault\u003c/code\u003e keep their unset sentinel at construction\n(resolved lazily on read) so \u003ccode\u003eis UNSET\u003c/code\u003e reliably tells a user-supplied value\nfrom an auto-derived one. Runtime behavior is unchanged, but\n{meth}\u003ccode\u003eParameter.to_info_dict\u003c/code\u003e now resolves \u003ccode\u003edefault=True\u003c/code\u003e on a feature\nswitch to its \u003ccode\u003eflag_value\u003c/code\u003e, matching what the function receives at call\ntime. {pr}\u003ccode\u003e3641\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eget_binary_stream\u003c/code\u003e and {func}\u003ccode\u003eget_text_stream\u003c/code\u003e are deprecated and\nwill be removed in Click 9.0. {issue}\u003ccode\u003e3481\u003c/code\u003e {pr}\u003ccode\u003e3695\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe following \u003ccode\u003eclick.utils\u003c/code\u003e names were never intentionally public and are\nnow private (\u003ccode\u003e_\u003c/code\u003e-prefixed). The old names remain available with a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e until Click 9.0: \u003ccode\u003eLazyFile\u003c/code\u003e, \u003ccode\u003eKeepOpenFile\u003c/code\u003e,\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8b19813f2bfca99f1018a587a8cf54fc959f2e5d\"\u003e\u003ccode\u003e8b19813\u003c/code\u003e\u003c/a\u003e Release version 8.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2c8cd3ac958a7eb316d67f2d316c27086c4c0369\"\u003e\u003ccode\u003e2c8cd3a\u003c/code\u003e\u003c/a\u003e Add FAQ entry about \u003ccode\u003eUnicodeEncodeError\u003c/code\u003e on Windows (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3778\"\u003e#3778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/131c86aadddfa5cb6dca8339c9d6294c4eacb8ac\"\u003e\u003ccode\u003e131c86a\u003c/code\u003e\u003c/a\u003e Add FAQ entry about \u003ccode\u003eUnicodeEncodeError\u003c/code\u003e on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e1fd5946ab26aaf372009eaff1acf947140b40fb\"\u003e\u003ccode\u003ee1fd594\u003c/code\u003e\u003c/a\u003e Add support of \u003ccode\u003epathlib.Path\u003c/code\u003e to \u003ccode\u003eedit\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3781\"\u003e#3781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a1d87858abd77fa8e3ffc204670ccd75b96c4781\"\u003e\u003ccode\u003ea1d8785\u003c/code\u003e\u003c/a\u003e Add support of \u003ccode\u003epathlib.Path\u003c/code\u003e to \u003ccode\u003eedit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2103e157683c5e4cadc8ee1838df526a54bde9a4\"\u003e\u003ccode\u003e2103e15\u003c/code\u003e\u003c/a\u003e Forward all user's parameters set in \u003ccode\u003ePAGER\u003c/code\u003e and improve flag detection (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3777\"\u003e#3777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a6256bfb5971d5e58585fe7b6c656134e1ade5a4\"\u003e\u003ccode\u003ea6256bf\u003c/code\u003e\u003c/a\u003e Forwards all user's parameters set in \u003ccode\u003ePAGER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/61b69e967e525bd502f5bf42def4d551e761fe0e\"\u003e\u003ccode\u003e61b69e9\u003c/code\u003e\u003c/a\u003e Resolve the pager command once, in \u003ccode\u003e_pager_contextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3776\"\u003e#3776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/9835b0f7612d1b1ea180a975fd6d24cf16791ba8\"\u003e\u003ccode\u003e9835b0f\u003c/code\u003e\u003c/a\u003e Resolve the pager command once, in \u003ccode\u003e_pager_contextmanager\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f36d58bbd7f188178de2d4fe1d0292c510375ca7\"\u003e\u003ccode\u003ef36d58b\u003c/code\u003e\u003c/a\u003e Refactor pager stream handling (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3767\"\u003e#3767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.2...8.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.3.3 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport ...\n\n_Description has been truncated_\n\n\u003c!-- This is an auto-generated comment: release notes by coderabbit.ai --\u003e\n\n## Summary by CodeRabbit\n\n* **Chores**\n  * Updated versions of several application and development dependencies.\n\n\u003c!-- end of auto-generated comment: release notes by coderabbit.ai --\u003e","html_url":"https://github.com/desn1k/betpulse/pull/80","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/desn1k%2Fbetpulse/issues/80","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/80/packages"}},{"old_version":"3.0.1","new_version":"3.0.6","update_type":"patch","path":null,"pr_created_at":"2026-10-03T06:36:12.000Z","version_change":"3.0.1 → 3.0.6","issue":{"uuid":"5687275181","node_id":"PR_kwDOPyIw988AAAABGZx5gQ","number":1398,"state":"closed","title":"deps(deps): bump the python-minor-patch group across 1 directory with 42 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-10-03T19:26:03.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-03T06:36:12.000Z","updated_at":"2026-10-03T19:26:13.000Z","time_to_close":46191,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"python-minor-patch","update_count":42,"packages":[{"name":"readchar","old_version":"4.2.1","new_version":"4.2.2","repository_url":"https://github.com/magmax/python-readchar"},{"name":"requests","old_version":"2.33.0","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"python-dotenv","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"litellm","old_version":"1.88.6","new_version":"1.103.1","repository_url":"https://github.com/BerriAI/litellm"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.54.0"},{"name":"chardet","old_version":"7.4.0.post2","new_version":"7.6.0","repository_url":"https://github.com/chardet/chardet"},{"name":"numpy","old_version":"2.4.4","new_version":"2.4.6","repository_url":"https://github.com/numpy/numpy"},{"name":"scikit-learn","old_version":"1.8.0","new_version":"1.9.1","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"pandas","old_version":"3.0.1","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"markdown","old_version":"3.10.2","new_version":"3.11","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pdfplumber","old_version":"0.11.9","new_version":"0.11.10","repository_url":"https://github.com/jsvine/pdfplumber"},{"name":"pytest","old_version":"9.0.3","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-mock","old_version":"3.15.1","new_version":"3.16.0","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"ruff","old_version":"0.14.14","new_version":"0.16.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"black","old_version":"26.3.1","new_version":"26.5.1","repository_url":"https://github.com/psf/black"},{"name":"flake8","old_version":"7.3.0","new_version":"7.4.1","repository_url":"https://github.com/pycqa/flake8"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.2","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pip-audit","old_version":"2.9.0","new_version":"2.10.1","repository_url":"https://github.com/pypa/pip-audit"},{"name":"dopetask","old_version":"0.5.1","new_version":"0.5.7","repository_url":"https://github.com/DDD-Enterprises/dopeTask"},{"name":"tree-sitter","old_version":"0.25.2","new_version":"0.26.0","repository_url":"https://github.com/tree-sitter/py-tree-sitter"},{"name":"tree-sitter-python","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/tree-sitter/tree-sitter-python"},{"name":"tree-sitter-javascript","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/tree-sitter/tree-sitter-javascript"},{"name":"tree-sitter-typescript","old_version":"0.23.0","new_version":"0.23.2","repository_url":"https://github.com/tree-sitter/tree-sitter-typescript"},{"name":"tree-sitter-go","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/tree-sitter/tree-sitter-go"},{"name":"tree-sitter-rust","old_version":"0.23.0","new_version":"0.24.2","repository_url":"https://github.com/tree-sitter/tree-sitter-rust"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"prometheus-client","old_version":"0.24.1","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"pyjwt","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"cryptography","old_version":"50.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"qdrant-client","old_version":"1.17.1","new_version":"1.19.1","repository_url":"https://github.com/qdrant/qdrant-client"},{"name":"pymupdf","old_version":"1.27.2.2","new_version":"1.28.2","repository_url":"https://github.com/pymupdf/pymupdf"},{"name":"beautifulsoup4","old_version":"4.14.3","new_version":"4.15.0"},{"name":"lxml","old_version":"6.1.0","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"python-multipart","old_version":"0.0.31","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.13","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"alembic","old_version":"1.18.4","new_version":"1.20.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pytz","old_version":"2026.1.post1","new_version":"2026.4","repository_url":"https://github.com/stub42/pytz"},{"name":"orjson","old_version":"3.11.7","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"msgpack","old_version":"1.2.1","new_version":"1.2.3","repository_url":"https://github.com/msgpack/msgpack-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 42 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [readchar](https://github.com/magmax/python-readchar) | `4.2.1` | `4.2.2` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.34.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.2` | `1.2.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.5` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [litellm](https://github.com/BerriAI/litellm) | `1.88.6` | `1.103.1` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.54.0` |\n| [chardet](https://github.com/chardet/chardet) | `7.4.0.post2` | `7.6.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.4` | `2.4.6` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.8.0` | `1.9.1` |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.1` | `3.0.6` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.10.2` | `3.11` |\n| [pdfplumber](https://github.com/jsvine/pdfplumber) | `0.11.9` | `0.11.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.15.1` | `3.16.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.14` | `0.16.9` |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.1` |\n| [flake8](https://github.com/pycqa/flake8) | `7.3.0` | `7.4.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.2` |\n| [pip-audit](https://github.com/pypa/pip-audit) | `2.9.0` | `2.10.1` |\n| [dopetask](https://github.com/DDD-Enterprises/dopeTask) | `0.5.1` | `0.5.7` |\n| [tree-sitter](https://github.com/tree-sitter/py-tree-sitter) | `0.25.2` | `0.26.0` |\n| [tree-sitter-python](https://github.com/tree-sitter/tree-sitter-python) | `0.23.0` | `0.25.0` |\n| [tree-sitter-javascript](https://github.com/tree-sitter/tree-sitter-javascript) | `0.23.0` | `0.25.0` |\n| [tree-sitter-typescript](https://github.com/tree-sitter/tree-sitter-typescript) | `0.23.0` | `0.23.2` |\n| [tree-sitter-go](https://github.com/tree-sitter/tree-sitter-go) | `0.23.0` | `0.25.0` |\n| [tree-sitter-rust](https://github.com/tree-sitter/tree-sitter-rust) | `0.23.0` | `0.24.2` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.24.1` | `0.26.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.15.0` | `2.15.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.1` |\n| [qdrant-client](https://github.com/qdrant/qdrant-client) | `1.17.1` | `1.19.1` |\n| [pymupdf](https://github.com/pymupdf/pymupdf) | `1.27.2.2` | `1.28.2` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.3` | `4.15.0` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.0` | `6.1.3` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.31` | `0.0.32` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.13` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.4` | `1.20.0` |\n| [pytz](https://github.com/stub42/pytz) | `2026.1.post1` | `2026.4` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.12.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.2.1` | `1.2.3` |\n\n\nUpdates `readchar` from 4.2.1 to 4.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/magmax/python-readchar/releases\"\u003ereadchar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix pytest 9 compatibility by \u003ca href=\"https://github.com/mweinelt\"\u003e\u003ccode\u003e@​mweinelt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/129\"\u003emagmax/python-readchar#129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd android as supported platform by \u003ca href=\"https://github.com/Mause\"\u003e\u003ccode\u003e@​Mause\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/130\"\u003emagmax/python-readchar#130\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mweinelt\"\u003e\u003ccode\u003e@​mweinelt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/129\"\u003emagmax/python-readchar#129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Mause\"\u003e\u003ccode\u003e@​Mause\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/130\"\u003emagmax/python-readchar#130\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/magmax/python-readchar/compare/v4.2.1...v4.2.2\"\u003ehttps://github.com/magmax/python-readchar/compare/v4.2.1...v4.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/05faadbfd883e80fe8e3ff1f8da97471a3b85262\"\u003e\u003ccode\u003e05faadb\u003c/code\u003e\u003c/a\u003e release v4.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/a9f2384ae26520a9456673b73c05944aae8fd2ca\"\u003e\u003ccode\u003ea9f2384\u003c/code\u003e\u003c/a\u003e Add android as supported platform (\u003ca href=\"https://redirect.github.com/magmax/python-readchar/issues/130\"\u003e#130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/753cb421b5a2cbe3601b1923992ac8b4985839a1\"\u003e\u003ccode\u003e753cb42\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/magmax/python-readchar/issues/129\"\u003e#129\u003c/a\u003e from mweinelt/pytest9-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/5165992002f211fe85175bcbb4f9a60d5e90fdac\"\u003e\u003ccode\u003e5165992\u003c/code\u003e\u003c/a\u003e Fix pytest 9 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/2204f05e47b7e5c6209a49dfde0ad64938e439a5\"\u003e\u003ccode\u003e2204f05\u003c/code\u003e\u003c/a\u003e increment version after release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/magmax/python-readchar/compare/v4.2.1...v4.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.0 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.0...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.2 to 1.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.3] - 2026-08-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/49515afee2d50c33cad9419b3800b3a0dc93fc59\"\u003e\u003ccode\u003e49515af\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.2 → 1.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ac846ff2760b65470e769d7eed33e540f0934e1\"\u003e\u003ccode\u003e8ac846f\u003c/code\u003e\u003c/a\u003e chore: add release runbook (RELEASING.md) and make release target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/bb31c944fb4b40e8dea59587f525840c38326166\"\u003e\u003ccode\u003ebb31c94\u003c/code\u003e\u003c/a\u003e docs: add 1.2.3 release notes (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f7b18d9c72d1abcc2ad4023424b84f5bee30d266\"\u003e\u003ccode\u003ef7b18d9\u003c/code\u003e\u003c/a\u003e fix: round-trip backslashes through set_key (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/751f8c148222e58aa173c83c4e5e6cfccb2cc124\"\u003e\u003ccode\u003e751f8c1\u003c/code\u003e\u003c/a\u003e ci(deps): bump actions/checkout from 6.0.2 to 6.0.3 in the github-actions gro...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f1937b68f338d7ebd7754da377ca08b2f0df8dbb\"\u003e\u003ccode\u003ef1937b6\u003c/code\u003e\u003c/a\u003e chore(deps): update mkdocs-include-markdown-plugin requirement from \u0026gt;=6.0.0 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/45b93720dd5e9e127d0be3971a04855d34e464d8\"\u003e\u003ccode\u003e45b9372\u003c/code\u003e\u003c/a\u003e chore(deps): update pytest requirement from \u0026gt;=3.9 to \u0026gt;=9.0.3 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/72896e9244d2a1ff8d5e1934d3df8a35c813799a\"\u003e\u003ccode\u003e72896e9\u003c/code\u003e\u003c/a\u003e docs: fix broken mkdocs link in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/636\"\u003e#636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/72754a16a4743e4c92edf87ce59ba0e4ff78758d\"\u003e\u003ccode\u003e72754a1\u003c/code\u003e\u003c/a\u003e ci(deps): bump peaceiris/actions-gh-pages from 4.0.0 to 4.1.0 in the github-a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/078325e92558330e9addc661b789c7b6123fa73c\"\u003e\u003ccode\u003e078325e\u003c/code\u003e\u003c/a\u003e ci(security): harden CI/CD supply chain with SHA pinning and least-privilege ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.2...v1.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.5/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/001dea020e0809844e5b17666432c9135a976f46\"\u003e\u003ccode\u003e001dea0\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epypa/gh-action-pypi-publish\u003c/code\u003e action to v1.14.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/558379fee957fad25858e33596146c72d5674843\"\u003e\u003ccode\u003e558379f\u003c/code\u003e\u003c/a\u003e Bump twine to v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2cfd5d3d2ae721ea882c045f83b7f7a4003aab01\"\u003e\u003ccode\u003e2cfd5d3\u003c/code\u003e\u003c/a\u003e Do not check for docs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a735bee5c64e1fe50785c376adaf1275e752b8ac\"\u003e\u003ccode\u003ea735bee\u003c/code\u003e\u003c/a\u003e Fix more Clippy lints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7eed4a16b87afaced4d0eafae230453de3410d64\"\u003e\u003ccode\u003e7eed4a1\u003c/code\u003e\u003c/a\u003e Fix Clippy 0.1.95 warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b353bbb20a4989b4c033e2be2b4a40d36178b16a\"\u003e\u003ccode\u003eb353bbb\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/63d2cccd6e760da6bbc7fe81a53cb2bde3768f5e\"\u003e\u003ccode\u003e63d2ccc\u003c/code\u003e\u003c/a\u003e Count validated model fields once in smart unions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a53ec2ed342fda4e6aa3684399d04ea57be9a6e4\"\u003e\u003ccode\u003ea53ec2e\u003c/code\u003e\u003c/a\u003e Speed up PyPy CI tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d65e0f96e890ca82f4b66a15d5b3bd65af2c661c\"\u003e\u003ccode\u003ed65e0f9\u003c/code\u003e\u003c/a\u003e Workaround circular import error in Mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/47a6dbf8ad6216211bd0df6ec5c2c6c6ed905b72\"\u003e\u003ccode\u003e47a6dbf\u003c/code\u003e\u003c/a\u003e Fix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `docker` from 7.1.0 to 7.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/docker/docker-py/releases\"\u003edocker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.0\u003c/h2\u003e\n\u003ch2\u003eUpgrade Notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edocker.from_env()\u003c/code\u003e now honors the active Docker CLI context when \u003ccode\u003eDOCKER_HOST\u003c/code\u003e is not set.\n\u003cul\u003e\n\u003cli\u003eThis means the client may connect to the daemon selected by \u003ccode\u003eDOCKER_CONTEXT\u003c/code\u003e or the current context in \u003ccode\u003e~/.docker/config.json\u003c/code\u003e, matching Docker CLI behavior more closely.\u003c/li\u003e\n\u003cli\u003eIf your application relied on the previous default connection behavior, set \u003ccode\u003eDOCKER_HOST\u003c/code\u003e explicitly, set \u003ccode\u003eDOCKER_CONTEXT=default\u003c/code\u003e, or pass \u003ccode\u003euse_context=False\u003c/code\u003e to \u003ccode\u003eDockerClient.from_env()\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edocker.from_context()\u003c/code\u003e / \u003ccode\u003eDockerClient.from_context()\u003c/code\u003e for explicitly creating a client from a Docker CLI context.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Docker contexts when creating the default client\u003c/li\u003e\n\u003cli\u003eAdded subpath support for volumes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eexec_run\u003c/code\u003e documentation for the \u003ccode\u003estream\u003c/code\u003e parameter\u003c/li\u003e\n\u003cli\u003eFixed image loading to avoid depending on the deprecated \u003ccode\u003eJSONMessage.error\u003c/code\u003e field\u003c/li\u003e\n\u003cli\u003ePreserved the rotated unlock key in swarm integration tests\u003c/li\u003e\n\u003cli\u003eFixed SSL certificate generation in tests\u003c/li\u003e\n\u003cli\u003eFixed IPv6 integration tests by explicitly enabling IPv6 where required\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated tests for newer Docker Engine behavior\u003c/li\u003e\n\u003cli\u003eCI and build updates\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etests/exec: expect 127 exit code for missing executable by \u003ca href=\"https://github.com/laurazard\"\u003e\u003ccode\u003e@​laurazard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3290\"\u003edocker/docker-py#3290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixing doc for stream param in exec_run by \u003ca href=\"https://github.com/yasonk\"\u003e\u003ccode\u003e@​yasonk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3292\"\u003edocker/docker-py#3292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump default API version to 1.45 (Moby 26.0/26.1) by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3261\"\u003edocker/docker-py#3261\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet a dummy-version if none set, and remove unused APT_MIRROR build-arg by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3267\"\u003edocker/docker-py#3267\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_service_logs: stop testing experimental versions by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/2442\"\u003edocker/docker-py#2442\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile: fix circular reference for integration-dind by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3297\"\u003edocker/docker-py#3297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eimage load: don't depend on deprecated JSONMessage.error field by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3307\"\u003edocker/docker-py#3307\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintegration: test_create_volume_invalid_driver allow either 400 or 404 by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3296\"\u003edocker/docker-py#3296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintegration: adjust tests for omitted \u0026quot;OnBuild\u0026quot; by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3336\"\u003edocker/docker-py#3336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement Subpath Support for Volumes in Docker-Py (\u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3243\"\u003e#3243\u003c/a\u003e) by \u003ca href=\"https://github.com/Khushiyant\"\u003e\u003ccode\u003e@​Khushiyant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3270\"\u003edocker/docker-py#3270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: fix ssl generation by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3365\"\u003edocker/docker-py#3365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest/integration: don't check for deprecated Networks field by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3362\"\u003edocker/docker-py#3362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: Skip from_env_unix tests if DOCKER_HOST is network socket by \u003ca href=\"https://github.com/ricardobranco777\"\u003e\u003ccode\u003e@​ricardobranco777\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3366\"\u003edocker/docker-py#3366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_connect_with_ipv6_address: enable IPv6 by \u003ca href=\"https://github.com/robmry\"\u003e\u003ccode\u003e@​robmry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3372\"\u003edocker/docker-py#3372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_create_with_ipv6_address: enable IPv6 by \u003ca href=\"https://github.com/robmry\"\u003e\u003ccode\u003e@​robmry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3373\"\u003edocker/docker-py#3373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: Migrate off gpg2 and regenerate key ed25519 by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3399\"\u003edocker/docker-py#3399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egha: Pin to digests by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3408\"\u003edocker/docker-py#3408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests on non-amd64 hosts and add ARM64 CI by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3407\"\u003edocker/docker-py#3407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintegration/swarm: Preserve rotated unlock key by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3410\"\u003edocker/docker-py#3410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DKP-2535] Honour context if present for default client, add contexts support by \u003ca href=\"https://github.com/ebriney\"\u003e\u003ccode\u003e@​ebriney\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3401\"\u003edocker/docker-py#3401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: 7.2.0 changelog by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3415\"\u003edocker/docker-py#3415\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/laurazard\"\u003e\u003ccode\u003e@​laurazard\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3290\"\u003edocker/docker-py#3290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yasonk\"\u003e\u003ccode\u003e@​yasonk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3292\"\u003edocker/docker-py#3292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ricardobranco777\"\u003e\u003ccode\u003e@​ricardobranco777\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3366\"\u003edocker/docker-py#3366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/5ad5327fba623897ee9a527d7eee1b01703e0726\"\u003e\u003ccode\u003e5ad5327\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3415\"\u003e#3415\u003c/a\u003e from vvoland/update-changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/d2422303703cf33f604018d0601d8e4b71a2131e\"\u003e\u003ccode\u003ed242230\u003c/code\u003e\u003c/a\u003e docs: 7.2.0 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/ba01cc7291a00a96260792c27046cfaedd9a61dc\"\u003e\u003ccode\u003eba01cc7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3401\"\u003e#3401\u003c/a\u003e from ebriney/client-from-context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/ae5dfe9111b1f4e9fafd4107a8ac4a3fa52644dc\"\u003e\u003ccode\u003eae5dfe9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3410\"\u003e#3410\u003c/a\u003e from vvoland/fix-flaky\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/aa999998eded49919086be7fc4448f5dc9eac689\"\u003e\u003ccode\u003eaa99999\u003c/code\u003e\u003c/a\u003e integration/swarm: Preserve rotated unlock key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/059d371b576b9f324a16753e2a775b1f7731b6d0\"\u003e\u003ccode\u003e059d371\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3407\"\u003e#3407\u003c/a\u003e from vvoland/fix-arm64\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/9b4b9b8461966e5b54638490e66c91e45f25ea19\"\u003e\u003ccode\u003e9b4b9b8\u003c/code\u003e\u003c/a\u003e gha: Add arm64 integration CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/9e9f8ff315fe405d7f7e89b394d6269217c51dfe\"\u003e\u003ccode\u003e9e9f8ff\u003c/code\u003e\u003c/a\u003e Skip tests incompatible with host architecture\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/e0542d9ee4b564822722a3c49d9948484ffb37bc\"\u003e\u003ccode\u003ee0542d9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3408\"\u003e#3408\u003c/a\u003e from vvoland/gha-pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/578a11dd65e167b0421b9f9af143635ce93abe83\"\u003e\u003ccode\u003e578a11d\u003c/code\u003e\u003c/a\u003e gha: Pin to digests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/docker/docker-py/compare/7.1.0...7.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `litellm` from 1.88.6 to 1.103.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/BerriAI/litellm/releases\"\u003elitellm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.103.1\u003c/h2\u003e\n\u003ch2\u003eVerify Docker Image Signature\u003c/h2\u003e\n\u003cp\u003eAll LiteLLM Docker images are signed with \u003ca href=\"https://docs.sigstore.dev/cosign/overview/\"\u003ecosign\u003c/a\u003e. Every release is signed with the same key introduced in \u003ca href=\"https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0\"\u003ecommit \u003ccode\u003e0112e53\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eVerify using the pinned commit hash (recommended):\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eA commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.103.1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eVerify using the release tag (convenience):\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eTags are protected in this repository and resolve to the same key. This option is easier to read but relies on tag protection rules:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/v1.103.1/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.103.1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eExpected output:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eThe following checks were performed on each of these signatures:\n  - The cosign claims were validated\n  - The signatures were verified against the specified public key\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BerriAI/litellm/compare/v1.103.0...v1.103.1\"\u003ehttps://github.com/BerriAI/litellm/compare/v1.103.0...v1.103.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.103.0\u003c/h2\u003e\n\u003ch2\u003eVerify Docker Image Signature\u003c/h2\u003e\n\u003cp\u003eAll LiteLLM Docker images are signed with \u003ca href=\"https://docs.sigstore.dev/cosign/overview/\"\u003ecosign\u003c/a\u003e. Every release is signed with the same key introduced in \u003ca href=\"https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0\"\u003ecommit \u003ccode\u003e0112e53\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eVerify using the pinned commit hash (recommended):\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eA commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.103.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/580bde9a2d148714889ec1c04a9872819e78a778\"\u003e\u003ccode\u003e580bde9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/13\"\u003e#13\u003c/a\u003e from BerriAI/litellm_session_token_1_103_x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/d3bf0066132899ca86fce126a11f4c133d9a74c8\"\u003e\u003ccode\u003ed3bf006\u003c/code\u003e\u003c/a\u003e chore(lint): scope a TRY004 suppression to the bearer-token salt key check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/a80eacacee118fbed54e3d98f239d17a63fac818\"\u003e\u003ccode\u003ea80eaca\u003c/code\u003e\u003c/a\u003e refactor(auth): bind UI/CLI session tokens to their own AES-GCM context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/e7d8bbc5deb36c960162d4ce3922985fe56db835\"\u003e\u003ccode\u003ee7d8bbc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/6\"\u003e#6\u003c/a\u003e from BerriAI/litellm_bump_1_103_1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/bf02f06913c06fe41459f529f3511a32305f16d4\"\u003e\u003ccode\u003ebf02f06\u003c/code\u003e\u003c/a\u003e bump: litellm 1.103.0 -\u0026gt; 1.103.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/c991f4b01f5799eb0b0cab0fb63988e15c3a8a9d\"\u003e\u003ccode\u003ec991f4b\u003c/code\u003e\u003c/a\u003e fix(proxy): unregister logging callbacks removed from the stored config (\u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/43429\"\u003e#43429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/cc111d1ae57fbd4d6c0c2fbd4772fe00460da215\"\u003e\u003ccode\u003ecc111d1\u003c/code\u003e\u003c/a\u003e fix(streaming): backport text-completion usage fix and e2e provider-flake tol...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/4dbbe6eddd1820fdf9f6a2914fb3f03633777988\"\u003e\u003ccode\u003e4dbbe6e\u003c/code\u003e\u003c/a\u003e test(ci): fix the e2e and integration reds left on rc/1.103.0 after \u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/43382\"\u003e#43382\u003c/a\u003e an...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/8aca86a571bd67edcfb34180106a2636b3a4dbfc\"\u003e\u003ccode\u003e8aca86a\u003c/code\u003e\u003c/a\u003e test(e2e): clear the two rc/1.103.0 e2e reds owned by upstream providers (\u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/43\"\u003e#43\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/e640c0eb4155f40a1bcecb3dc6a8ddc81b030080\"\u003e\u003ccode\u003ee640c0e\u003c/code\u003e\u003c/a\u003e test(integration): make rc/1.103.0 integration groups collect and pass again ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/BerriAI/litellm/compare/v1.88.6...v1.103.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.38.0 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.54.0\u003c/h2\u003e\n\u003ch2\u003e📨 Send metadata after the response body\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.54.0 adds response trailers and \u003ccode\u003e103 Early Hints\u003c/code\u003e to its experimental HTTP/2 implementation through \u003ccode\u003ezttp\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.54.0 \u0026quot;zttp\u0026gt;=0.0.34\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend HTTP/2 response trailers\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e). The ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension lets applications send metadata, such as checksums, after the response body. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them. Multiple trailer messages are combined before completing the response.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental and opt-in.\u003c/strong\u003e Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Upgrade-based h2c and WebSockets over HTTP/2 remain unsupported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e💡 Hint at resources before the final response\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend \u003ccode\u003e103 Early Hints\u003c/code\u003e over HTTP/2\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e). Applications can use the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension to send resource hints before the final response. Each supplied link becomes a separate \u003ccode\u003eLink\u003c/code\u003e header.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.53.0...0.54.0\"\u003e0.53.0...0.54.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.53.0\u003c/h2\u003e\n\u003ch2\u003e🌐 Opt-in HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.53.0 adds experimental HTTP/2 through \u003ccode\u003ezttp\u003c/code\u003e, alongside a new \u003ccode\u003ezuvloop\u003c/code\u003e integration and connection-handling improvements.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.53.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eServe HTTP/1.1 and HTTP/2 with \u003ccode\u003ezttp\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e). Install \u003ccode\u003ezttp\u003c/code\u003e, then enable HTTP/2 with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Uvicorn negotiates HTTP/2 over TLS with ALPN and supports cleartext prior knowledge.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental.\u003c/strong\u003e Upgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚙️ More event loop choice\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRun Uvicorn with \u003ccode\u003ezuvloop\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e). Install \u003ccode\u003ezuvloop\u003c/code\u003e separately and select it explicitly with \u003ccode\u003e--loop zuvloop\u003c/code\u003e on CPython 3.14 or newer.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛡️ More reliable connections and proxies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHonor \u003ccode\u003eConnection: close\u003c/code\u003e token lists\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e). Uvicorn now parses comma-separated tokens case-insensitively across HTTP implementations.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTrust IPv6 loopback proxies by default\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e). The default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value now includes \u003ccode\u003e::1\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eKeep upgraded WebSockets alive\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e). Uvicorn cancels the HTTP keep-alive timer when the connection becomes a WebSocket.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.4...0.53.0\"\u003e0.52.4...0.53.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0 (September 24, 2026)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support remains experimental. Install \u003ccode\u003ezttp\u0026gt;=0.0.34\u003c/code\u003e and enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd HTTP/2 response trailers through the ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd HTTP/2 \u003ccode\u003e103 Early Hints\u003c/code\u003e through the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.53.0 (September 14, 2026)\u003c/h2\u003e\n\u003cp\u003eThis release adds experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e. Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\nUpgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ezuvloop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle comma-separated, case-insensitive \u003ccode\u003eConnection: close\u003c/code\u003e tokens across HTTP implementations (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTrust IPv6 loopback in the default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancel the HTTP keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.4 (August 18, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.3 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.24 and use its combined receive path, improving HTTP/1.1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3067\"\u003e#3067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.2 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.22, fixing bodyless request receives and improving HTTP/1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.1 (August 1, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete the closing handshake on server-initiated WebSocket closes in the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e and \u003ccode\u003ewsproto\u003c/code\u003e implementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing write flow control to the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, preventing data truncation on server-initiated closes with large in-flight payloads (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3048\"\u003e#3048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle connection loss while a WebSocket write is waiting on backpressure (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3eb9a9ab9af69005c687728097461c1fd2a95db9\"\u003e\u003ccode\u003e3eb9a9a\u003c/code\u003e\u003c/a\u003e Version 0.54.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3161\"\u003e#3161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cd7ef6d31c1a09a3653f326cda7813d35ffd6082\"\u003e\u003ccode\u003ecd7ef6d\u003c/code\u003e\u003c/a\u003e Remove races from supervisor tests (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a56c7cce64aaa37e5864f882a5cbce8aa1dac47a\"\u003e\u003ccode\u003ea56c7cc\u003c/code\u003e\u003c/a\u003e Support HTTP/2 response trailers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9bd4404cca9506e9ba4f46b69ef72d011ceef2bd\"\u003e\u003ccode\u003e9bd4404\u003c/code\u003e\u003c/a\u003e chore(deps): bump anyio from 4.13.0 to 4.14.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/21f39ef7988366f77fb3172569bd235ac5de34cc\"\u003e\u003ccode\u003e21f39ef\u003c/code\u003e\u003c/a\u003e Add HTTP/2 Early Hints support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/421708fbc1a704dac8bd4053a7c4c0bf4d3704ee\"\u003e\u003ccode\u003e421708f\u003c/code\u003e\u003c/a\u003e Version 0.53.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f1a1bff7be819f5724d6fdf86dfd448a97c62e23\"\u003e\u003ccode\u003ef1a1bff\u003c/code\u003e\u003c/a\u003e Unset the keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/63971ed952090438896e6eba7d07178b616d97cc\"\u003e\u003ccode\u003e63971ed\u003c/code\u003e\u003c/a\u003e Document HTTP/2 support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7d1a0055aee5e281accc646b559ddd147486bf8a\"\u003e\u003ccode\u003e7d1a005\u003c/code\u003e\u003c/a\u003e Remove race from multiprocess health check test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3128\"\u003e#3128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5ac6265a01ff6dcadb0e4250152c3deaf8a168a9\"\u003e\u003ccode\u003e5ac6265\u003c/code\u003e\u003c/a\u003e Add ::1 to FORWARDED_ALLOW_IPS (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `chardet` from 7.4.0.post2 to 7.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chardet/chardet/releases\"\u003echardet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.6.0\u003c/h2\u003e\n\u003cp\u003eBig release: a Cython scoring kernel joins mypyc in compiled wheels, every model retrained on a deduplicated corpus, UTF-7 fixed in both directions, and a guarantee that \u003ccode\u003edetect()\u003c/code\u003e never returns an encoding that can't decode your complete input.\u003c/p\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCompiled wheels now score bigram profiles through a small Cython kernel alongside mypyc, and the pair is 4.7x faster than the pure wheel on CPython 3.14. \u003ccode\u003e_kernel.py\u003c/code\u003e stays plain Python (PyPy and pure wheels run it interpreted, unchanged), and detection output is bit-identical. The kernel declares itself safe without the GIL, so free-threaded CPython scales instead of silently re-enabling the GIL on import: 3.14t runs the whole suite in ~340ms across 8 threads, the fastest configuration measured. Compiled builds now need both hooks: \u003ccode\u003eHATCH_BUILD_HOOK_ENABLE_MYPYC=true HATCH_BUILD_HOOK_ENABLE_CUSTOM=true\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for CPython 3.15, including the free-threaded build. No code changes were needed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edetect()\u003c/code\u003e no longer returns an encoding that cannot decode the input it was given (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/380\"\u003e#380\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e). When the whole input has been examined and the winner's only multi-byte evidence is an incomplete trailing sequence, the best candidate that decodes the input completely wins instead. Genuinely truncated data keeps its answer.\u003c/li\u003e\n\u003cli\u003eFixed delimited ASCII data like \u003ccode\u003e|NAME,+LAY|\u003c/code\u003e misdetecting as UTF-7 (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/371\"\u003e#371\u003c/a\u003e follow-up, thanks \u003ca href=\"https://github.com/agreenburg\"\u003e\u003ccode\u003e@​agreenburg\u003c/code\u003e\u003c/a\u003e). The whole buffer must now actually decode as UTF-7, and a lone shifted character must land in a plausible script range.\u003c/li\u003e\n\u003cli\u003eSigned UTF-7 no longer reads as ASCII: the BOM stage recognizes the four UTF-7 signature prefixes when the rest of the buffer decodes as UTF-7.\u003c/li\u003e\n\u003cli\u003eFixed short apostrophe-heavy English being labeled Scottish Gaelic or Breton: a rare-language label on an input under 128 bytes now needs a 0.03 lead over the best mainstream language (ADR-0005).\u003c/li\u003e\n\u003cli\u003eFixed Hungarian text losing to a Czech reading in confusion rescoring; tied pairs are compared only under language models both encodings have.\u003c/li\u003e\n\u003cli\u003eFixed space-padded text matching a degenerate Serbian model at high confidence; statistical scoring now skips repeated-whitespace bigrams. This also fixes windows-1251 logs misdetecting as windows-1250 (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/379\"\u003e#379\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed EBCDIC text being invisible to the early pipeline stages, and the last two EBCDIC sibling misdetections.\u003c/li\u003e\n\u003cli\u003eFixed training normalization gaps that starved ISO-8859-16 and the 26 pre-euro encodings at exactly their distinguishing bytes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRetrained every bigram model on a refreshed, deduplicated corpus with training provenance now recorded per model.\u003c/li\u003e\n\u003cli\u003eNew ANSI-art model for cp437, trained on 16,621 text-mode art files from \u003ca href=\"https://16colo.rs/\"\u003e16colo.rs\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRare-language arbitration (ADR-0005): low-confidence statistical winners from languages with no documented legacy-encoding population yield to near-tied mainstream candidates.\u003c/li\u003e\n\u003cli\u003eConfusion-group resolution is context-aware: per-occurrence votes, word-shape demotions, art-model exemption.\u003c/li\u003e\n\u003cli\u003eStatistical dead heats no longer resolve by candidate enumeration order.\u003c/li\u003e\n\u003cli\u003eTraining pipeline hardening after a cache-loss post-mortem.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chardet/chardet/compare/7.5.1...7.6.0\"\u003ehttps://github.com/chardet/chardet/compare/7.5.1...7.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.5.1\u003c/h2\u003e\n\u003cp\u003ePatch release: three detection fixes found while benchmarking against charset-normalizer's char-dataset.\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed markup-declared encodings being reported under a name that can't decode the input. A page declaring \u003ccode\u003eShift_JIS\u003c/code\u003e but using CP932 extension characters (like ①) came back as \u003ccode\u003eSHIFT_JIS\u003c/code\u003e, which fails \u003ccode\u003e.decode()\u003c/code\u003e on those same bytes. Superset promotion (\u003ccode\u003eCP932\u003c/code\u003e, \u003ccode\u003eCP949\u003c/code\u003e) now always fires when the reported name can't decode the data but the superset can.\u003c/li\u003e\n\u003cli\u003eFixed a lying charset declaration beating genuine UTF-8 content. A UTF-8 page declaring \u003ccode\u003e\u0026lt;meta charset=\u0026quot;iso-8859-1\u0026quot;\u0026gt;\u003c/code\u003e came back as ISO-8859-1, which decodes to mojibake. Valid multi-byte UTF-8 now wins over a conflicting declaration.\u003c/li\u003e\n\u003cli\u003eFixed BOM-less UTF-16 byte-order detection for pure-CJK text: short Chinese UTF-16 samples came back with reversed endianness at full confidence. Byte order is now chosen by decoding both ways and comparing text quality.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chardet/chardet/compare/7.5.0...7.5.1\"\u003ehttps://github.com/chardet/chardet/compare/7.5.0...7.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.5.0\u003c/h2\u003e\n\u003cp\u003eAccuracy and speed release: truncation-proof byte validity, statistical pruning worth ~2.9x, and half the peak memory.\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed multi-byte encodings being eliminated when the input ends in an incomplete character. Byte-validity filtering used a one-shot strict decode, which cannot tell a truncated tail from corrupt data, so a single dangling lead byte dropped every CJK candidate and the result came down to input-length parity. Also reachable on complete files through chardet's own \u003ccode\u003emax_bytes\u003c/code\u003e and \u003ccode\u003e_SCAN_LIMIT\u003c/code\u003e slicing. Validity checks now decode incrementally with \u003ccode\u003efinal=False\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/376\"\u003e#376\u003c/a\u003e, thanks \u003ca href=\"https://github.com/aadsm\"\u003e\u003ccode\u003e@​aadsm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ecompat_names\u003c/code\u003e (the default) leaking internal Python codec names for seven encodings (\u003ccode\u003eISO-8859-2\u003c/code\u003e, \u003ccode\u003eISO-8859-6\u003c/code\u003e, \u003ccode\u003eISO-8859-13\u003c/code\u003e, \u003ccode\u003eWindows-1250\u003c/code\u003e, \u003ccode\u003eWindows-1256\u003c/code\u003e, \u003ccode\u003eWindows-1257\u003c/code\u003e, \u003ccode\u003eCP874\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/374\"\u003e#374\u003c/a\u003e, thanks \u003ca href=\"https://github.com/aadsm\"\u003e\u003ccode\u003e@​aadsm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ecompat_names\u003c/code\u003e leaking the internal \u003ccode\u003ecp932\u003c/code\u003e codec name; \u003ccode\u003edetect()\u003c/code\u003e now returns \u003ccode\u003eCP932\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/375\"\u003e#375\u003c/a\u003e, thanks \u003ca href=\"https://github.com/uttam12331\"\u003e\u003ccode\u003e@​uttam12331\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chardet/chardet/blob/main/docs/changelog.rst\"\u003echardet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.6.0 (2026-08-14)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ePerformance:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompiled wheels now score bigram profiles through a small Cython\nkernel alongside mypyc, and the pair is 4.7x faster than the pure\nwheel on CPython 3.14.  \u003ccode\u003e_kernel.py\u003c/code\u003e stays plain Python (PyPy and\npure wheels run it interpreted, unchanged), \u003ccode\u003e_kernel.pxd\u003c/code\u003e adds C\ntypes at build time and ships nothing, and detection output is\nbit-identical.  The kernel declares itself safe without the GIL, so\nfree-threaded CPython scales instead of silently re-enabling the GIL\non import: 3.14t runs the whole suite in ~340ms across 8 threads,\nthe fastest configuration measured.  Compiled builds now need both\nhooks::\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eHATCH_BUILD_HOOK_ENABLE_MYPYC=true HATCH_BUILD_HOOK_ENABLE_CUSTOM=true uv build\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for CPython 3.15, including the free-threaded build.\nNo code changes were needed.\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed delimited ASCII data like \u003ccode\u003e|NAME,+LAY|\u003c/code\u003e misdetecting as\nUTF-7, a follow-up to \u003ccode\u003e[#371](https://github.com/chardet/chardet/issues/371) \u0026lt;https://github.com/chardet/chardet/issues/371\u0026gt;\u003c/code\u003e\u003cem\u003e.  Two new checks:\nthe whole buffer must actually decode as UTF-7 (\u003ccode\u003e+|\u003c/code\u003e is an illegal\nshift, so tabular data fails immediately), and a block encoding a\nsingle code unit must land in a script range where a lone shifted\ncharacter plausibly occurs.  \u003ccode\u003e+LAY\u003c/code\u003e decodes to U+2C06, Glagolitic;\nno genuine lone block in the corpus lands anywhere like it, while em\ndashes, ellipses, kanji, and accented letters all pass.\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003c/em\u003e via Claude)\u003c/li\u003e\n\u003cli\u003eSigned UTF-7 no longer reads as ASCII.  The BOM stage recognizes the\nfour UTF-7 signature prefixes (\u003ccode\u003e+/v8-\u003c/code\u003e and friends) when the rest\nof the buffer decodes as UTF-7 --- the prefix alone is ordinary ASCII\n(a diff of V8 source paths starts with \u003ccode\u003e+/v8\u003c/code\u003e).  This is a\ndeliberate divergence from WHATWG's browser-security exclusion of\nUTF-7: chardet already detects the unsigned form, so refusing only\nthe signed one made no sense.\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edetect()\u003c/code\u003e no longer returns an encoding that cannot decode the\ninput it was given\n(\u003ccode\u003e[#380](https://github.com/chardet/chardet/issues/380) \u0026lt;https://github.com/chardet/chardet/issues/380\u0026gt;\u003c/code\u003e_).  When the\nwhole input has been examined and the winner's only multi-byte\nevidence is an incomplete trailing sequence, the best candidate that\ndecodes the input completely wins instead.  Genuinely truncated data\nkeeps its answer: CJK cut mid-character, or input sliced at\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/...\n\n_Description has been truncated_","html_url":"https://github.com/DDD-Enterprises/dopemux-mvp/pull/1398","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DDD-Enterprises%2Fdopemux-mvp/issues/1398","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1398/packages"}},{"old_version":"3.0.1","new_version":"3.0.6","update_type":"patch","path":null,"pr_created_at":"2026-10-03T05:01:42.000Z","version_change":"3.0.1 → 3.0.6","issue":{"uuid":"5686723489","node_id":"PR_kwDOPyIw988AAAABGZWeSA","number":1396,"state":"closed","title":"deps(deps): bump the python-minor-patch group across 1 directory with 43 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-03T06:34:13.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-03T05:01:42.000Z","updated_at":"2026-10-03T06:34:15.000Z","time_to_close":5551,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"python-minor-patch","update_count":43,"packages":[{"name":"readchar","old_version":"4.2.1","new_version":"4.2.2","repository_url":"https://github.com/magmax/python-readchar"},{"name":"requests","old_version":"2.33.0","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"python-dotenv","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"litellm","old_version":"1.85.1","new_version":"1.103.1","repository_url":"https://github.com/BerriAI/litellm"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.54.0"},{"name":"chardet","old_version":"7.4.0.post2","new_version":"7.6.0","repository_url":"https://github.com/chardet/chardet"},{"name":"numpy","old_version":"2.4.4","new_version":"2.4.6","repository_url":"https://github.com/numpy/numpy"},{"name":"scikit-learn","old_version":"1.8.0","new_version":"1.9.1","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"pandas","old_version":"3.0.1","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"markdown","old_version":"3.10.2","new_version":"3.11","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pdfplumber","old_version":"0.11.9","new_version":"0.11.10","repository_url":"https://github.com/jsvine/pdfplumber"},{"name":"pytest","old_version":"9.0.3","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-mock","old_version":"3.15.1","new_version":"3.16.0","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"ruff","old_version":"0.14.14","new_version":"0.16.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"black","old_version":"26.3.1","new_version":"26.5.1","repository_url":"https://github.com/psf/black"},{"name":"flake8","old_version":"7.3.0","new_version":"7.4.1","repository_url":"https://github.com/pycqa/flake8"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.2","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pip-audit","old_version":"2.9.0","new_version":"2.10.1","repository_url":"https://github.com/pypa/pip-audit"},{"name":"semgrep","old_version":"1.166.0","new_version":"1.179.0","repository_url":"https://github.com/semgrep/semgrep"},{"name":"dopetask","old_version":"0.5.1","new_version":"0.5.7","repository_url":"https://github.com/DDD-Enterprises/dopeTask"},{"name":"tree-sitter","old_version":"0.25.2","new_version":"0.26.0","repository_url":"https://github.com/tree-sitter/py-tree-sitter"},{"name":"tree-sitter-python","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/tree-sitter/tree-sitter-python"},{"name":"tree-sitter-javascript","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/tree-sitter/tree-sitter-javascript"},{"name":"tree-sitter-typescript","old_version":"0.23.0","new_version":"0.23.2","repository_url":"https://github.com/tree-sitter/tree-sitter-typescript"},{"name":"tree-sitter-go","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/tree-sitter/tree-sitter-go"},{"name":"tree-sitter-rust","old_version":"0.23.0","new_version":"0.24.2","repository_url":"https://github.com/tree-sitter/tree-sitter-rust"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"prometheus-client","old_version":"0.24.1","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"pyjwt","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"cryptography","old_version":"50.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"qdrant-client","old_version":"1.17.1","new_version":"1.19.1","repository_url":"https://github.com/qdrant/qdrant-client"},{"name":"pymupdf","old_version":"1.27.2.2","new_version":"1.28.2","repository_url":"https://github.com/pymupdf/pymupdf"},{"name":"beautifulsoup4","old_version":"4.14.3","new_version":"4.15.0"},{"name":"lxml","old_version":"6.1.0","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"python-multipart","old_version":"0.0.31","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.13","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"alembic","old_version":"1.18.4","new_version":"1.20.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pytz","old_version":"2026.1.post1","new_version":"2026.4","repository_url":"https://github.com/stub42/pytz"},{"name":"orjson","old_version":"3.11.7","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"msgpack","old_version":"1.2.1","new_version":"1.2.3","repository_url":"https://github.com/msgpack/msgpack-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 43 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [readchar](https://github.com/magmax/python-readchar) | `4.2.1` | `4.2.2` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.34.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.2` | `1.2.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.5` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [litellm](https://github.com/BerriAI/litellm) | `1.85.1` | `1.103.1` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.54.0` |\n| [chardet](https://github.com/chardet/chardet) | `7.4.0.post2` | `7.6.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.4` | `2.4.6` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.8.0` | `1.9.1` |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.1` | `3.0.6` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.10.2` | `3.11` |\n| [pdfplumber](https://github.com/jsvine/pdfplumber) | `0.11.9` | `0.11.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.15.1` | `3.16.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.14` | `0.16.9` |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.1` |\n| [flake8](https://github.com/pycqa/flake8) | `7.3.0` | `7.4.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.2` |\n| [pip-audit](https://github.com/pypa/pip-audit) | `2.9.0` | `2.10.1` |\n| [semgrep](https://github.com/semgrep/semgrep) | `1.166.0` | `1.179.0` |\n| [dopetask](https://github.com/DDD-Enterprises/dopeTask) | `0.5.1` | `0.5.7` |\n| [tree-sitter](https://github.com/tree-sitter/py-tree-sitter) | `0.25.2` | `0.26.0` |\n| [tree-sitter-python](https://github.com/tree-sitter/tree-sitter-python) | `0.23.0` | `0.25.0` |\n| [tree-sitter-javascript](https://github.com/tree-sitter/tree-sitter-javascript) | `0.23.0` | `0.25.0` |\n| [tree-sitter-typescript](https://github.com/tree-sitter/tree-sitter-typescript) | `0.23.0` | `0.23.2` |\n| [tree-sitter-go](https://github.com/tree-sitter/tree-sitter-go) | `0.23.0` | `0.25.0` |\n| [tree-sitter-rust](https://github.com/tree-sitter/tree-sitter-rust) | `0.23.0` | `0.24.2` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.24.1` | `0.26.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.15.0` | `2.15.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.1` |\n| [qdrant-client](https://github.com/qdrant/qdrant-client) | `1.17.1` | `1.19.1` |\n| [pymupdf](https://github.com/pymupdf/pymupdf) | `1.27.2.2` | `1.28.2` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.3` | `4.15.0` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.0` | `6.1.3` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.31` | `0.0.32` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.13` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.4` | `1.20.0` |\n| [pytz](https://github.com/stub42/pytz) | `2026.1.post1` | `2026.4` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.12.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.2.1` | `1.2.3` |\n\n\nUpdates `readchar` from 4.2.1 to 4.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/magmax/python-readchar/releases\"\u003ereadchar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix pytest 9 compatibility by \u003ca href=\"https://github.com/mweinelt\"\u003e\u003ccode\u003e@​mweinelt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/129\"\u003emagmax/python-readchar#129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd android as supported platform by \u003ca href=\"https://github.com/Mause\"\u003e\u003ccode\u003e@​Mause\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/130\"\u003emagmax/python-readchar#130\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mweinelt\"\u003e\u003ccode\u003e@​mweinelt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/129\"\u003emagmax/python-readchar#129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Mause\"\u003e\u003ccode\u003e@​Mause\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/magmax/python-readchar/pull/130\"\u003emagmax/python-readchar#130\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/magmax/python-readchar/compare/v4.2.1...v4.2.2\"\u003ehttps://github.com/magmax/python-readchar/compare/v4.2.1...v4.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/05faadbfd883e80fe8e3ff1f8da97471a3b85262\"\u003e\u003ccode\u003e05faadb\u003c/code\u003e\u003c/a\u003e release v4.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/a9f2384ae26520a9456673b73c05944aae8fd2ca\"\u003e\u003ccode\u003ea9f2384\u003c/code\u003e\u003c/a\u003e Add android as supported platform (\u003ca href=\"https://redirect.github.com/magmax/python-readchar/issues/130\"\u003e#130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/753cb421b5a2cbe3601b1923992ac8b4985839a1\"\u003e\u003ccode\u003e753cb42\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/magmax/python-readchar/issues/129\"\u003e#129\u003c/a\u003e from mweinelt/pytest9-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/5165992002f211fe85175bcbb4f9a60d5e90fdac\"\u003e\u003ccode\u003e5165992\u003c/code\u003e\u003c/a\u003e Fix pytest 9 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magmax/python-readchar/commit/2204f05e47b7e5c6209a49dfde0ad64938e439a5\"\u003e\u003ccode\u003e2204f05\u003c/code\u003e\u003c/a\u003e increment version after release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/magmax/python-readchar/compare/v4.2.1...v4.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.0 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.0...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.2 to 1.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.3] - 2026-08-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/49515afee2d50c33cad9419b3800b3a0dc93fc59\"\u003e\u003ccode\u003e49515af\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.2 → 1.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ac846ff2760b65470e769d7eed33e540f0934e1\"\u003e\u003ccode\u003e8ac846f\u003c/code\u003e\u003c/a\u003e chore: add release runbook (RELEASING.md) and make release target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/bb31c944fb4b40e8dea59587f525840c38326166\"\u003e\u003ccode\u003ebb31c94\u003c/code\u003e\u003c/a\u003e docs: add 1.2.3 release notes (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f7b18d9c72d1abcc2ad4023424b84f5bee30d266\"\u003e\u003ccode\u003ef7b18d9\u003c/code\u003e\u003c/a\u003e fix: round-trip backslashes through set_key (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/751f8c148222e58aa173c83c4e5e6cfccb2cc124\"\u003e\u003ccode\u003e751f8c1\u003c/code\u003e\u003c/a\u003e ci(deps): bump actions/checkout from 6.0.2 to 6.0.3 in the github-actions gro...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f1937b68f338d7ebd7754da377ca08b2f0df8dbb\"\u003e\u003ccode\u003ef1937b6\u003c/code\u003e\u003c/a\u003e chore(deps): update mkdocs-include-markdown-plugin requirement from \u0026gt;=6.0.0 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/45b93720dd5e9e127d0be3971a04855d34e464d8\"\u003e\u003ccode\u003e45b9372\u003c/code\u003e\u003c/a\u003e chore(deps): update pytest requirement from \u0026gt;=3.9 to \u0026gt;=9.0.3 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/72896e9244d2a1ff8d5e1934d3df8a35c813799a\"\u003e\u003ccode\u003e72896e9\u003c/code\u003e\u003c/a\u003e docs: fix broken mkdocs link in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/636\"\u003e#636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/72754a16a4743e4c92edf87ce59ba0e4ff78758d\"\u003e\u003ccode\u003e72754a1\u003c/code\u003e\u003c/a\u003e ci(deps): bump peaceiris/actions-gh-pages from 4.0.0 to 4.1.0 in the github-a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/078325e92558330e9addc661b789c7b6123fa73c\"\u003e\u003ccode\u003e078325e\u003c/code\u003e\u003c/a\u003e ci(security): harden CI/CD supply chain with SHA pinning and least-privilege ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.2...v1.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.5/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/001dea020e0809844e5b17666432c9135a976f46\"\u003e\u003ccode\u003e001dea0\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epypa/gh-action-pypi-publish\u003c/code\u003e action to v1.14.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/558379fee957fad25858e33596146c72d5674843\"\u003e\u003ccode\u003e558379f\u003c/code\u003e\u003c/a\u003e Bump twine to v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2cfd5d3d2ae721ea882c045f83b7f7a4003aab01\"\u003e\u003ccode\u003e2cfd5d3\u003c/code\u003e\u003c/a\u003e Do not check for docs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a735bee5c64e1fe50785c376adaf1275e752b8ac\"\u003e\u003ccode\u003ea735bee\u003c/code\u003e\u003c/a\u003e Fix more Clippy lints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7eed4a16b87afaced4d0eafae230453de3410d64\"\u003e\u003ccode\u003e7eed4a1\u003c/code\u003e\u003c/a\u003e Fix Clippy 0.1.95 warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b353bbb20a4989b4c033e2be2b4a40d36178b16a\"\u003e\u003ccode\u003eb353bbb\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/63d2cccd6e760da6bbc7fe81a53cb2bde3768f5e\"\u003e\u003ccode\u003e63d2ccc\u003c/code\u003e\u003c/a\u003e Count validated model fields once in smart unions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a53ec2ed342fda4e6aa3684399d04ea57be9a6e4\"\u003e\u003ccode\u003ea53ec2e\u003c/code\u003e\u003c/a\u003e Speed up PyPy CI tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d65e0f96e890ca82f4b66a15d5b3bd65af2c661c\"\u003e\u003ccode\u003ed65e0f9\u003c/code\u003e\u003c/a\u003e Workaround circular import error in Mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/47a6dbf8ad6216211bd0df6ec5c2c6c6ed905b72\"\u003e\u003ccode\u003e47a6dbf\u003c/code\u003e\u003c/a\u003e Fix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `docker` from 7.1.0 to 7.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/docker/docker-py/releases\"\u003edocker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.0\u003c/h2\u003e\n\u003ch2\u003eUpgrade Notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edocker.from_env()\u003c/code\u003e now honors the active Docker CLI context when \u003ccode\u003eDOCKER_HOST\u003c/code\u003e is not set.\n\u003cul\u003e\n\u003cli\u003eThis means the client may connect to the daemon selected by \u003ccode\u003eDOCKER_CONTEXT\u003c/code\u003e or the current context in \u003ccode\u003e~/.docker/config.json\u003c/code\u003e, matching Docker CLI behavior more closely.\u003c/li\u003e\n\u003cli\u003eIf your application relied on the previous default connection behavior, set \u003ccode\u003eDOCKER_HOST\u003c/code\u003e explicitly, set \u003ccode\u003eDOCKER_CONTEXT=default\u003c/code\u003e, or pass \u003ccode\u003euse_context=False\u003c/code\u003e to \u003ccode\u003eDockerClient.from_env()\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edocker.from_context()\u003c/code\u003e / \u003ccode\u003eDockerClient.from_context()\u003c/code\u003e for explicitly creating a client from a Docker CLI context.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Docker contexts when creating the default client\u003c/li\u003e\n\u003cli\u003eAdded subpath support for volumes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eexec_run\u003c/code\u003e documentation for the \u003ccode\u003estream\u003c/code\u003e parameter\u003c/li\u003e\n\u003cli\u003eFixed image loading to avoid depending on the deprecated \u003ccode\u003eJSONMessage.error\u003c/code\u003e field\u003c/li\u003e\n\u003cli\u003ePreserved the rotated unlock key in swarm integration tests\u003c/li\u003e\n\u003cli\u003eFixed SSL certificate generation in tests\u003c/li\u003e\n\u003cli\u003eFixed IPv6 integration tests by explicitly enabling IPv6 where required\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated tests for newer Docker Engine behavior\u003c/li\u003e\n\u003cli\u003eCI and build updates\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etests/exec: expect 127 exit code for missing executable by \u003ca href=\"https://github.com/laurazard\"\u003e\u003ccode\u003e@​laurazard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3290\"\u003edocker/docker-py#3290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixing doc for stream param in exec_run by \u003ca href=\"https://github.com/yasonk\"\u003e\u003ccode\u003e@​yasonk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3292\"\u003edocker/docker-py#3292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump default API version to 1.45 (Moby 26.0/26.1) by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3261\"\u003edocker/docker-py#3261\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet a dummy-version if none set, and remove unused APT_MIRROR build-arg by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3267\"\u003edocker/docker-py#3267\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_service_logs: stop testing experimental versions by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/2442\"\u003edocker/docker-py#2442\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile: fix circular reference for integration-dind by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3297\"\u003edocker/docker-py#3297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eimage load: don't depend on deprecated JSONMessage.error field by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3307\"\u003edocker/docker-py#3307\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintegration: test_create_volume_invalid_driver allow either 400 or 404 by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3296\"\u003edocker/docker-py#3296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintegration: adjust tests for omitted \u0026quot;OnBuild\u0026quot; by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3336\"\u003edocker/docker-py#3336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement Subpath Support for Volumes in Docker-Py (\u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3243\"\u003e#3243\u003c/a\u003e) by \u003ca href=\"https://github.com/Khushiyant\"\u003e\u003ccode\u003e@​Khushiyant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3270\"\u003edocker/docker-py#3270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: fix ssl generation by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3365\"\u003edocker/docker-py#3365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest/integration: don't check for deprecated Networks field by \u003ca href=\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3362\"\u003edocker/docker-py#3362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: Skip from_env_unix tests if DOCKER_HOST is network socket by \u003ca href=\"https://github.com/ricardobranco777\"\u003e\u003ccode\u003e@​ricardobranco777\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3366\"\u003edocker/docker-py#3366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_connect_with_ipv6_address: enable IPv6 by \u003ca href=\"https://github.com/robmry\"\u003e\u003ccode\u003e@​robmry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3372\"\u003edocker/docker-py#3372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_create_with_ipv6_address: enable IPv6 by \u003ca href=\"https://github.com/robmry\"\u003e\u003ccode\u003e@​robmry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3373\"\u003edocker/docker-py#3373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: Migrate off gpg2 and regenerate key ed25519 by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3399\"\u003edocker/docker-py#3399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egha: Pin to digests by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3408\"\u003edocker/docker-py#3408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests on non-amd64 hosts and add ARM64 CI by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3407\"\u003edocker/docker-py#3407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintegration/swarm: Preserve rotated unlock key by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3410\"\u003edocker/docker-py#3410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DKP-2535] Honour context if present for default client, add contexts support by \u003ca href=\"https://github.com/ebriney\"\u003e\u003ccode\u003e@​ebriney\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3401\"\u003edocker/docker-py#3401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: 7.2.0 changelog by \u003ca href=\"https://github.com/vvoland\"\u003e\u003ccode\u003e@​vvoland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3415\"\u003edocker/docker-py#3415\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/laurazard\"\u003e\u003ccode\u003e@​laurazard\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3290\"\u003edocker/docker-py#3290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yasonk\"\u003e\u003ccode\u003e@​yasonk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3292\"\u003edocker/docker-py#3292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ricardobranco777\"\u003e\u003ccode\u003e@​ricardobranco777\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/docker/docker-py/pull/3366\"\u003edocker/docker-py#3366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/5ad5327fba623897ee9a527d7eee1b01703e0726\"\u003e\u003ccode\u003e5ad5327\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3415\"\u003e#3415\u003c/a\u003e from vvoland/update-changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/d2422303703cf33f604018d0601d8e4b71a2131e\"\u003e\u003ccode\u003ed242230\u003c/code\u003e\u003c/a\u003e docs: 7.2.0 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/ba01cc7291a00a96260792c27046cfaedd9a61dc\"\u003e\u003ccode\u003eba01cc7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3401\"\u003e#3401\u003c/a\u003e from ebriney/client-from-context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/ae5dfe9111b1f4e9fafd4107a8ac4a3fa52644dc\"\u003e\u003ccode\u003eae5dfe9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3410\"\u003e#3410\u003c/a\u003e from vvoland/fix-flaky\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/aa999998eded49919086be7fc4448f5dc9eac689\"\u003e\u003ccode\u003eaa99999\u003c/code\u003e\u003c/a\u003e integration/swarm: Preserve rotated unlock key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/059d371b576b9f324a16753e2a775b1f7731b6d0\"\u003e\u003ccode\u003e059d371\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3407\"\u003e#3407\u003c/a\u003e from vvoland/fix-arm64\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/9b4b9b8461966e5b54638490e66c91e45f25ea19\"\u003e\u003ccode\u003e9b4b9b8\u003c/code\u003e\u003c/a\u003e gha: Add arm64 integration CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/9e9f8ff315fe405d7f7e89b394d6269217c51dfe\"\u003e\u003ccode\u003e9e9f8ff\u003c/code\u003e\u003c/a\u003e Skip tests incompatible with host architecture\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/e0542d9ee4b564822722a3c49d9948484ffb37bc\"\u003e\u003ccode\u003ee0542d9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/docker/docker-py/issues/3408\"\u003e#3408\u003c/a\u003e from vvoland/gha-pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/docker/docker-py/commit/578a11dd65e167b0421b9f9af143635ce93abe83\"\u003e\u003ccode\u003e578a11d\u003c/code\u003e\u003c/a\u003e gha: Pin to digests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/docker/docker-py/compare/7.1.0...7.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `litellm` from 1.85.1 to 1.103.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/BerriAI/litellm/releases\"\u003elitellm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.103.1\u003c/h2\u003e\n\u003ch2\u003eVerify Docker Image Signature\u003c/h2\u003e\n\u003cp\u003eAll LiteLLM Docker images are signed with \u003ca href=\"https://docs.sigstore.dev/cosign/overview/\"\u003ecosign\u003c/a\u003e. Every release is signed with the same key introduced in \u003ca href=\"https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0\"\u003ecommit \u003ccode\u003e0112e53\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eVerify using the pinned commit hash (recommended):\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eA commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.103.1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eVerify using the release tag (convenience):\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eTags are protected in this repository and resolve to the same key. This option is easier to read but relies on tag protection rules:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/v1.103.1/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.103.1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eExpected output:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eThe following checks were performed on each of these signatures:\n  - The cosign claims were validated\n  - The signatures were verified against the specified public key\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BerriAI/litellm/compare/v1.103.0...v1.103.1\"\u003ehttps://github.com/BerriAI/litellm/compare/v1.103.0...v1.103.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.103.0\u003c/h2\u003e\n\u003ch2\u003eVerify Docker Image Signature\u003c/h2\u003e\n\u003cp\u003eAll LiteLLM Docker images are signed with \u003ca href=\"https://docs.sigstore.dev/cosign/overview/\"\u003ecosign\u003c/a\u003e. Every release is signed with the same key introduced in \u003ca href=\"https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0\"\u003ecommit \u003ccode\u003e0112e53\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eVerify using the pinned commit hash (recommended):\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eA commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.103.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/580bde9a2d148714889ec1c04a9872819e78a778\"\u003e\u003ccode\u003e580bde9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/13\"\u003e#13\u003c/a\u003e from BerriAI/litellm_session_token_1_103_x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/d3bf0066132899ca86fce126a11f4c133d9a74c8\"\u003e\u003ccode\u003ed3bf006\u003c/code\u003e\u003c/a\u003e chore(lint): scope a TRY004 suppression to the bearer-token salt key check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/a80eacacee118fbed54e3d98f239d17a63fac818\"\u003e\u003ccode\u003ea80eaca\u003c/code\u003e\u003c/a\u003e refactor(auth): bind UI/CLI session tokens to their own AES-GCM context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/e7d8bbc5deb36c960162d4ce3922985fe56db835\"\u003e\u003ccode\u003ee7d8bbc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/6\"\u003e#6\u003c/a\u003e from BerriAI/litellm_bump_1_103_1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/bf02f06913c06fe41459f529f3511a32305f16d4\"\u003e\u003ccode\u003ebf02f06\u003c/code\u003e\u003c/a\u003e bump: litellm 1.103.0 -\u0026gt; 1.103.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/c991f4b01f5799eb0b0cab0fb63988e15c3a8a9d\"\u003e\u003ccode\u003ec991f4b\u003c/code\u003e\u003c/a\u003e fix(proxy): unregister logging callbacks removed from the stored config (\u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/43429\"\u003e#43429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/cc111d1ae57fbd4d6c0c2fbd4772fe00460da215\"\u003e\u003ccode\u003ecc111d1\u003c/code\u003e\u003c/a\u003e fix(streaming): backport text-completion usage fix and e2e provider-flake tol...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/4dbbe6eddd1820fdf9f6a2914fb3f03633777988\"\u003e\u003ccode\u003e4dbbe6e\u003c/code\u003e\u003c/a\u003e test(ci): fix the e2e and integration reds left on rc/1.103.0 after \u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/43382\"\u003e#43382\u003c/a\u003e an...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/8aca86a571bd67edcfb34180106a2636b3a4dbfc\"\u003e\u003ccode\u003e8aca86a\u003c/code\u003e\u003c/a\u003e test(e2e): clear the two rc/1.103.0 e2e reds owned by upstream providers (\u003ca href=\"https://redirect.github.com/BerriAI/litellm/issues/43\"\u003e#43\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BerriAI/litellm/commit/e640c0eb4155f40a1bcecb3dc6a8ddc81b030080\"\u003e\u003ccode\u003ee640c0e\u003c/code\u003e\u003c/a\u003e test(integration): make rc/1.103.0 integration groups collect and pass again ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/BerriAI/litellm/compare/v1.85.1...v1.103.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.38.0 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.54.0\u003c/h2\u003e\n\u003ch2\u003e📨 Send metadata after the response body\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.54.0 adds response trailers and \u003ccode\u003e103 Early Hints\u003c/code\u003e to its experimental HTTP/2 implementation through \u003ccode\u003ezttp\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.54.0 \u0026quot;zttp\u0026gt;=0.0.34\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend HTTP/2 response trailers\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e). The ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension lets applications send metadata, such as checksums, after the response body. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them. Multiple trailer messages are combined before completing the response.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental and opt-in.\u003c/strong\u003e Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Upgrade-based h2c and WebSockets over HTTP/2 remain unsupported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e💡 Hint at resources before the final response\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend \u003ccode\u003e103 Early Hints\u003c/code\u003e over HTTP/2\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e). Applications can use the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension to send resource hints before the final response. Each supplied link becomes a separate \u003ccode\u003eLink\u003c/code\u003e header.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.53.0...0.54.0\"\u003e0.53.0...0.54.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.53.0\u003c/h2\u003e\n\u003ch2\u003e🌐 Opt-in HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.53.0 adds experimental HTTP/2 through \u003ccode\u003ezttp\u003c/code\u003e, alongside a new \u003ccode\u003ezuvloop\u003c/code\u003e integration and connection-handling improvements.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.53.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eServe HTTP/1.1 and HTTP/2 with \u003ccode\u003ezttp\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e). Install \u003ccode\u003ezttp\u003c/code\u003e, then enable HTTP/2 with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Uvicorn negotiates HTTP/2 over TLS with ALPN and supports cleartext prior knowledge.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental.\u003c/strong\u003e Upgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚙️ More event loop choice\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRun Uvicorn with \u003ccode\u003ezuvloop\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e). Install \u003ccode\u003ezuvloop\u003c/code\u003e separately and select it explicitly with \u003ccode\u003e--loop zuvloop\u003c/code\u003e on CPython 3.14 or newer.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛡️ More reliable connections and proxies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHonor \u003ccode\u003eConnection: close\u003c/code\u003e token lists\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e). Uvicorn now parses comma-separated tokens case-insensitively across HTTP implementations.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTrust IPv6 loopback proxies by default\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e). The default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value now includes \u003ccode\u003e::1\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eKeep upgraded WebSockets alive\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e). Uvicorn cancels the HTTP keep-alive timer when the connection becomes a WebSocket.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.4...0.53.0\"\u003e0.52.4...0.53.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0 (September 24, 2026)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support remains experimental. Install \u003ccode\u003ezttp\u0026gt;=0.0.34\u003c/code\u003e and enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd HTTP/2 response trailers through the ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd HTTP/2 \u003ccode\u003e103 Early Hints\u003c/code\u003e through the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.53.0 (September 14, 2026)\u003c/h2\u003e\n\u003cp\u003eThis release adds experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e. Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\nUpgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ezuvloop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle comma-separated, case-insensitive \u003ccode\u003eConnection: close\u003c/code\u003e tokens across HTTP implementations (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTrust IPv6 loopback in the default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancel the HTTP keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.4 (August 18, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.3 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.24 and use its combined receive path, improving HTTP/1.1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3067\"\u003e#3067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.2 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.22, fixing bodyless request receives and improving HTTP/1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.1 (August 1, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete the closing handshake on server-initiated WebSocket closes in the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e and \u003ccode\u003ewsproto\u003c/code\u003e implementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing write flow control to the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, preventing data truncation on server-initiated closes with large in-flight payloads (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3048\"\u003e#3048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle connection loss while a WebSocket write is waiting on backpressure (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3eb9a9ab9af69005c687728097461c1fd2a95db9\"\u003e\u003ccode\u003e3eb9a9a\u003c/code\u003e\u003c/a\u003e Version 0.54.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3161\"\u003e#3161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cd7ef6d31c1a09a3653f326cda7813d35ffd6082\"\u003e\u003ccode\u003ecd7ef6d\u003c/code\u003e\u003c/a\u003e Remove races from supervisor tests (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a56c7cce64aaa37e5864f882a5cbce8aa1dac47a\"\u003e\u003ccode\u003ea56c7cc\u003c/code\u003e\u003c/a\u003e Support HTTP/2 response trailers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9bd4404cca9506e9ba4f46b69ef72d011ceef2bd\"\u003e\u003ccode\u003e9bd4404\u003c/code\u003e\u003c/a\u003e chore(deps): bump anyio from 4.13.0 to 4.14.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/21f39ef7988366f77fb3172569bd235ac5de34cc\"\u003e\u003ccode\u003e21f39ef\u003c/code\u003e\u003c/a\u003e Add HTTP/2 Early Hints support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/421708fbc1a704dac8bd4053a7c4c0bf4d3704ee\"\u003e\u003ccode\u003e421708f\u003c/code\u003e\u003c/a\u003e Version 0.53.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f1a1bff7be819f5724d6fdf86dfd448a97c62e23\"\u003e\u003ccode\u003ef1a1bff\u003c/code\u003e\u003c/a\u003e Unset the keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/63971ed952090438896e6eba7d07178b616d97cc\"\u003e\u003ccode\u003e63971ed\u003c/code\u003e\u003c/a\u003e Document HTTP/2 support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7d1a0055aee5e281accc646b559ddd147486bf8a\"\u003e\u003ccode\u003e7d1a005\u003c/code\u003e\u003c/a\u003e Remove race from multiprocess health check test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3128\"\u003e#3128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5ac6265a01ff6dcadb0e4250152c3deaf8a168a9\"\u003e\u003ccode\u003e5ac6265\u003c/code\u003e\u003c/a\u003e Add ::1 to FORWARDED_ALLOW_IPS (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `chardet` from 7.4.0.post2 to 7.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chardet/chardet/releases\"\u003echardet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.6.0\u003c/h2\u003e\n\u003cp\u003eBig release: a Cython scoring kernel joins mypyc in compiled wheels, every model retrained on a deduplicated corpus, UTF-7 fixed in both directions, and a guarantee that \u003ccode\u003edetect()\u003c/code\u003e never returns an encoding that can't decode your complete input.\u003c/p\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCompiled wheels now score bigram profiles through a small Cython kernel alongside mypyc, and the pair is 4.7x faster than the pure wheel on CPython 3.14. \u003ccode\u003e_kernel.py\u003c/code\u003e stays plain Python (PyPy and pure wheels run it interpreted, unchanged), and detection output is bit-identical. The kernel declares itself safe without the GIL, so free-threaded CPython scales instead of silently re-enabling the GIL on import: 3.14t runs the whole suite in ~340ms across 8 threads, the fastest configuration measured. Compiled builds now need both hooks: \u003ccode\u003eHATCH_BUILD_HOOK_ENABLE_MYPYC=true HATCH_BUILD_HOOK_ENABLE_CUSTOM=true\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for CPython 3.15, including the free-threaded build. No code changes were needed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edetect()\u003c/code\u003e no longer returns an encoding that cannot decode the input it was given (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/380\"\u003e#380\u003c/a\u003e, thanks \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e). When the whole input has been examined and the winner's only multi-byte evidence is an incomplete trailing sequence, the best candidate that decodes the input completely wins instead. Genuinely truncated data keeps its answer.\u003c/li\u003e\n\u003cli\u003eFixed delimited ASCII data like \u003ccode\u003e|NAME,+LAY|\u003c/code\u003e misdetecting as UTF-7 (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/371\"\u003e#371\u003c/a\u003e follow-up, thanks \u003ca href=\"https://github.com/agreenburg\"\u003e\u003ccode\u003e@​agreenburg\u003c/code\u003e\u003c/a\u003e). The whole buffer must now actually decode as UTF-7, and a lone shifted character must land in a plausible script range.\u003c/li\u003e\n\u003cli\u003eSigned UTF-7 no longer reads as ASCII: the BOM stage recognizes the four UTF-7 signature prefixes when the rest of the buffer decodes as UTF-7.\u003c/li\u003e\n\u003cli\u003eFixed short apostrophe-heavy English being labeled Scottish Gaelic or Breton: a rare-language label on an input under 128 bytes now needs a 0.03 lead over the best mainstream language (ADR-0005).\u003c/li\u003e\n\u003cli\u003eFixed Hungarian text losing to a Czech reading in confusion rescoring; tied pairs are compared only under language models both encodings have.\u003c/li\u003e\n\u003cli\u003eFixed space-padded text matching a degenerate Serbian model at high confidence; statistical scoring now skips repeated-whitespace bigrams. This also fixes windows-1251 logs misdetecting as windows-1250 (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/379\"\u003e#379\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed EBCDIC text being invisible to the early pipeline stages, and the last two EBCDIC sibling misdetections.\u003c/li\u003e\n\u003cli\u003eFixed training normalization gaps that starved ISO-8859-16 and the 26 pre-euro encodings at exactly their distinguishing bytes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRetrained every bigram model on a refreshed, deduplicated corpus with training provenance now recorded per model.\u003c/li\u003e\n\u003cli\u003eNew ANSI-art model for cp437, trained on 16,621 text-mode art files from \u003ca href=\"https://16colo.rs/\"\u003e16colo.rs\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRare-language arbitration (ADR-0005): low-confidence statistical winners from languages with no documented legacy-encoding population yield to near-tied mainstream candidates.\u003c/li\u003e\n\u003cli\u003eConfusion-group resolution is context-aware: per-occurrence votes, word-shape demotions, art-model exemption.\u003c/li\u003e\n\u003cli\u003eStatistical dead heats no longer resolve by candidate enumeration order.\u003c/li\u003e\n\u003cli\u003eTraining pipeline hardening after a cache-loss post-mortem.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chardet/chardet/compare/7.5.1...7.6.0\"\u003ehttps://github.com/chardet/chardet/compare/7.5.1...7.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.5.1\u003c/h2\u003e\n\u003cp\u003ePatch release: three detection fixes found while benchmarking against charset-normalizer's char-dataset.\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed markup-declared encodings being reported under a name that can't decode the input. A page declaring \u003ccode\u003eShift_JIS\u003c/code\u003e but using CP932 extension characters (like ①) came back as \u003ccode\u003eSHIFT_JIS\u003c/code\u003e, which fails \u003ccode\u003e.decode()\u003c/code\u003e on those same bytes. Superset promotion (\u003ccode\u003eCP932\u003c/code\u003e, \u003ccode\u003eCP949\u003c/code\u003e) now always fires when the reported name can't decode the data but the superset can.\u003c/li\u003e\n\u003cli\u003eFixed a lying charset declaration beating genuine UTF-8 content. A UTF-8 page declaring \u003ccode\u003e\u0026lt;meta charset=\u0026quot;iso-8859-1\u0026quot;\u0026gt;\u003c/code\u003e came back as ISO-8859-1, which decodes to mojibake. Valid multi-byte UTF-8 now wins over a conflicting declaration.\u003c/li\u003e\n\u003cli\u003eFixed BOM-less UTF-16 byte-order detection for pure-CJK text: short Chinese UTF-16 samples came back with reversed endianness at full confidence. Byte order is now chosen by decoding both ways and comparing text quality.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chardet/chardet/compare/7.5.0...7.5.1\"\u003ehttps://github.com/chardet/chardet/compare/7.5.0...7.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.5.0\u003c/h2\u003e\n\u003cp\u003eAccuracy and speed release: truncation-proof byte validity, statistical pruning worth ~2.9x, and half the peak memory.\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed multi-byte encodings being eliminated when the input ends in an incomplete character. Byte-validity filtering used a one-shot strict decode, which cannot tell a truncated tail from corrupt data, so a single dangling lead byte dropped every CJK candidate and the result came down to input-length parity. Also reachable on complete files through chardet's own \u003ccode\u003emax_bytes\u003c/code\u003e and \u003ccode\u003e_SCAN_LIMIT\u003c/code\u003e slicing. Validity checks now decode incrementally with \u003ccode\u003efinal=False\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/376\"\u003e#376\u003c/a\u003e, thanks \u003ca href=\"https://github.com/aadsm\"\u003e\u003ccode\u003e@​aadsm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ecompat_names\u003c/code\u003e (the default) leaking internal Python codec names for seven encodings (\u003ccode\u003eISO-8859-2\u003c/code\u003e, \u003ccode\u003eISO-8859-6\u003c/code\u003e, \u003ccode\u003eISO-8859-13\u003c/code\u003e, \u003ccode\u003eWindows-1250\u003c/code\u003e, \u003ccode\u003eWindows-1256\u003c/code\u003e, \u003ccode\u003eWindows-1257\u003c/code\u003e, \u003ccode\u003eCP874\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/374\"\u003e#374\u003c/a\u003e, thanks \u003ca href=\"https://github.com/aadsm\"\u003e\u003ccode\u003e@​aadsm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ecompat_names\u003c/code\u003e leaking the internal \u003ccode\u003ecp932\u003c/code\u003e codec name; \u003ccode\u003edetect()\u003c/code\u003e now returns \u003ccode\u003eCP932\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/375\"\u003e#375\u003c/a\u003e, thanks \u003ca href=\"https://github.com/uttam12331\"\u003e\u003ccode\u003e@​uttam12331\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chardet/chardet/blob/main/docs/changelog.rst\"\u003echardet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.6.0 (2026-08-14)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ePerformance:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompiled wheels now score bigram profiles through a small Cython\nkernel alongside mypyc, and the pair is 4.7x faster than the pure\nwheel on CPython 3.14.  \u003ccode\u003e_kernel.py\u003c/code\u003e stays plain Python (PyPy and\npure wheels run it interpreted, unchanged), \u003ccode\u003e_kernel.pxd\u003c/code\u003e adds C\ntypes at build time and ships nothing, and detection output is\nbit-identical.  The kernel declares itself safe without the GIL, so\nfree-threaded CPython scales instead of silently re-enabling the GIL\non import: 3.14t runs the whole suite in ~340ms across 8 threads,\nthe fastest configuration measured.  Compiled builds now need both\nhooks::\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eHATCH_BUILD_HOOK_ENABLE_MYPYC=true HATCH_BUILD_HOOK_ENABLE_CUSTOM=true uv build\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for CPython 3.15, including the free-threaded build.\nNo code changes were needed.\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed delimited ASCII data like \u003ccode\u003e|NAME,+LAY|\u003c/code\u003e misdetecting as\nUTF-7, a follow-up to \u003ccode\u003e[#371](https://github.com/chardet/chardet/issues/371) \u0026lt;https://github.com/chardet/chardet/issues/371\u0026gt;\u003c/code\u003e\u003cem\u003e.  Two new checks:\nthe whole buffer must actually decode as UTF-7 (\u003ccode\u003e+|\u003c/code\u003e is an illegal\nshift, so tabular data fails immediately), and a block encoding a\nsingle code unit must land in a script range where a lone shifted\ncharacter plausibly occurs.  \u003ccode\u003e+LAY\u003c/code\u003e decodes to U+2C06, Glagolitic;\nno genuine lone block in the corpus lands anywhere like it, while em\ndashes, ellipses, kanji, and accented letters all pass.\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003c/em\u003e via Claude)\u003c/li\u003e\n\u003cli\u003eSigned UTF-7 no longer reads as ASCII.  The BOM stage recognizes the\nfour UTF-7 signature prefixes (\u003ccode\u003e+/v8-\u003c/code\u003e and friends) when the rest\nof the buffer decodes as UTF-7 --- the prefix alone is ordinary ASCII\n(a diff of V8 source paths starts with \u003ccode\u003e+/v8\u003c/code\u003e).  This is a\ndeliberate divergence from WHATWG's browser-security exclusion of\nUTF-7: chardet already detects the unsigned form, so refusing only\nthe signed one made no sense.\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edetect()\u003c/code\u003e no longer returns an encoding that cannot decode the\ninput it was given\n(\u003ccode\u003e[#380](https://github.com/chardet/chardet/issues/380) \u0026lt;https://github.com/chardet/chardet/issues/380\u0026gt;\u003c/code\u003e_).  When the\nwhole input has been examined and the winner's only multi-byte\nevidence is an incomplete trailing sequence, the best candidate that\ndecodes the input completely wins instead.  Genuinely truncated data\nkeeps its answer: CJK cut mid-character, or input sliced at\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csumma...\n\n_Description has been truncated_","html_url":"https://github.com/DDD-Enterprises/dopemux-mvp/pull/1396","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DDD-Enterprises%2Fdopemux-mvp/issues/1396","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1396/packages"}},{"old_version":"3.0.3","new_version":"3.0.6","update_type":"patch","path":null,"pr_created_at":"2026-10-02T23:24:23.000Z","version_change":"3.0.3 → 3.0.6","issue":{"uuid":"5684646046","node_id":"PR_kwDOU5dh_c8AAAABGXu-iw","number":1,"state":"closed","title":"Bump the python-dependencies group with 2 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-02T23:50:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-02T23:24:23.000Z","updated_at":"2026-10-02T23:50:46.000Z","time_to_close":1582,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":2,"packages":[{"name":"pandas","old_version":"3.0.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"numpy","old_version":"2.4.4","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 2 updates: [pandas](https://github.com/pandas-dev/pandas) and [numpy](https://github.com/numpy/numpy).\n\nUpdates `pandas` from 3.0.3 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.3...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.4 to 2.5.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.3 (Sep 6, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.5.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.5.3 is a patch release that fixes bugs discovered after the 2.5.2\nrelease. Apart from the usual bug and maintenance work, there are a number of\nStringDType related fixes for problems discovered during the ongoing string\nwork in the main branch.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.12-3.15\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCasting a fixed-width byte string array (\u003ccode\u003enp.bytes_\u003c/code\u003e) to \u003ccode\u003eStringDType\u003c/code\u003e\nnow raises \u003ccode\u003eTypeError\u003c/code\u003e when the bytes are not valid UTF-8. Previously the\ninvalid bytes were stored as-is and later caused undefined behavior in\nstring operations.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32296\"\u003egh-32296\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMaskedArray._fill_value\u003c/code\u003e would become stale when ufuncs that change dtype\nleft the result holding a fill_value typed for the old dtype. The mismatch\nwas silent until something later called \u003ccode\u003e_check_fill_value\u003c/code\u003e, such as\n\u003ccode\u003e.view()\u003c/code\u003e, and then a \u003ccode\u003eTypeError\u003c/code\u003e would be raised. Now, when the copied\nfill_value is no longer valid for the new dtype, fall back to the\ndefault fill_value for that dtype instead of propagating the stale value.\nThis may raise a \u003ccode\u003eComplexWarning\u003c/code\u003e if the fill_value is complex and the\nnew dtype is real.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32423\"\u003egh-32423\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIason Krommydas\u003c/li\u003e\n\u003cli\u003eJames Davies +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaanas Arora\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eShikhar Goel +\u003c/li\u003e\n\u003cli\u003eYeonho Kim +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 27 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32235\"\u003e#32235\u003c/a\u003e: MAINT: Prepare 2.5.x for further development\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/dd88c0c19b54ad9ed3533224221285bf0873249a\"\u003e\u003ccode\u003edd88c0c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32511\"\u003e#32511\u003c/a\u003e from charris/prepare-2.5.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/edcac6acc392f4010933ee83e8a4769a7cfe92c5\"\u003e\u003ccode\u003eedcac6a\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.5.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fd4d908aff89773ead13f7c6a0ab31153f14439e\"\u003e\u003ccode\u003efd4d908\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32509\"\u003e#32509\u003c/a\u003e from charris/backport-32496\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/65bb1da13d0ee784be84d173b86784f0d64bdaca\"\u003e\u003ccode\u003e65bb1da\u003c/code\u003e\u003c/a\u003e BUG: fix crash in ufunc.resolve_dtypes with a Python scalar type (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32496\"\u003e#32496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/294956e85dfaea149aada1278c2ed6be0f6f28c8\"\u003e\u003ccode\u003e294956e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32506\"\u003e#32506\u003c/a\u003e from charris/backport-32503\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/26428d9a3f5ab4f604b326347e3a9c6dcc00c1cb\"\u003e\u003ccode\u003e26428d9\u003c/code\u003e\u003c/a\u003e DOC: fix scipy docs links in intersphinx mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32507\"\u003e#32507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/5fab1cbc6aa9e119d9f931243a56c6fbca989476\"\u003e\u003ccode\u003e5fab1cb\u003c/code\u003e\u003c/a\u003e DOC: use static scipy doc site for intershpinx (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32503\"\u003e#32503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7beed2f7e9a24e493a04ff7e2eb1db0d7f9c50e6\"\u003e\u003ccode\u003e7beed2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32481\"\u003e#32481\u003c/a\u003e from ngoldbaum/stringdtype-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8972f70798a2ba1bb4557157982fd6001906f993\"\u003e\u003ccode\u003e8972f70\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32478\"\u003e#32478\u003c/a\u003e from charris/backport-32466\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/ab1b58902a868d4151ef3cf8dbeb91d8a1924fa4\"\u003e\u003ccode\u003eab1b589\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32477\"\u003e#32477\u003c/a\u003e from charris/backport-32423\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.4...v2.5.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/sureshgmst88/blank-app/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sureshgmst88%2Fblank-app/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"}},{"old_version":"2.1.4","new_version":"3.0.6","update_type":"major","path":"/i-oic-text2sql-ai-agent/tools/sql_db_query/source in the all-dependencies group","pr_created_at":"2026-10-02T07:00:48.000Z","version_change":"2.1.4 → 3.0.6","issue":{"uuid":"5674048165","node_id":"PR_kwDOPj-SKM8AAAABGPR5qA","number":762,"state":"closed","title":"chore(deps): bump pandas from 2.1.4 to 3.0.6 in /i-oic-text2sql-ai-agent/tools/sql_db_query/source in the all-dependencies group","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-10-02T07:01:04.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-02T07:00:48.000Z","updated_at":"2026-10-02T07:01:13.000Z","time_to_close":16,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"pandas","old_version":"2.1.4","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"}],"path":"/i-oic-text2sql-ai-agent/tools/sql_db_query/source in the all-dependencies group","ecosystem":"pip"},"body":"Bumps the all-dependencies group in /i-oic-text2sql-ai-agent/tools/sql_db_query/source with 1 update: [pandas](https://github.com/pandas-dev/pandas).\n\nUpdates `pandas` from 2.1.4 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.1.4...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pandas\u0026package-manager=pip\u0026previous-version=2.1.4\u0026new-version=3.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/IBM/oic-i-agentic-ai-tutorials/pull/762","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/IBM%2Foic-i-agentic-ai-tutorials/issues/762","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/762/packages"}},{"old_version":"3.0.5","new_version":"3.0.6","update_type":"patch","path":null,"pr_created_at":"2026-10-02T00:01:01.000Z","version_change":"3.0.5 → 3.0.6","issue":{"uuid":"5670853979","node_id":"PR_kwDOUUqApc8AAAABGMycNA","number":4,"state":"open","title":"Bump pandas from 3.0.5 to 3.0.6","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-02T00:01:01.000Z","updated_at":"2026-10-02T00:01:02.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pandas](https://github.com/pandas-dev/pandas) from 3.0.5 to 3.0.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.5...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pandas\u0026package-manager=pip\u0026previous-version=3.0.5\u0026new-version=3.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/nicobayy/MMP/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicobayy%2FMMP/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"3.0.3","new_version":"3.0.6","update_type":"patch","path":"/egs_aide/看盘神器/v2","pr_created_at":"2026-10-01T23:51:14.000Z","version_change":"3.0.3 → 3.0.6","issue":{"uuid":"5670781645","node_id":"PR_kwDOHemFC88AAAABGMuz-A","number":46,"state":"open","title":"deps: bump the pip-minor group in /egs_aide/看盘神器/v2 with 3 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-01T23:51:14.000Z","updated_at":"2026-10-01T23:51:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"pip-minor","update_count":3,"packages":[{"name":"xlwings","old_version":"0.36.6","new_version":"0.37.5","repository_url":"https://github.com/xlwings/xlwings"},{"name":"pandas","old_version":"3.0.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pytest","old_version":"9.0.3","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"}],"path":"/egs_aide/看盘神器/v2","ecosystem":"pip"},"body":"Bumps the pip-minor group in /egs_aide/看盘神器/v2 with 3 updates: [xlwings](https://github.com/xlwings/xlwings), [pandas](https://github.com/pandas-dev/pandas) and [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `xlwings` from 0.36.6 to 0.37.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/xlwings/xlwings/releases\"\u003exlwings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.37.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelease Notes: \u003ca href=\"https://docs.xlwings.org/en/latest/whatsnew.html\"\u003ehttps://docs.xlwings.org/en/latest/whatsnew.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstallation: To install this release, you must use a package manager like \u003ccode\u003euv\u003c/code\u003e, \u003ccode\u003epip\u003c/code\u003e, or \u003ccode\u003econda\u003c/code\u003e, you can't install from source directly, see \u003ca href=\"https://docs.xlwings.org/en/stable/installation.html\"\u003ehttps://docs.xlwings.org/en/stable/installation.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003exlwings.exe\u003c/code\u003e is a standalone xlwings command-line client with very limited functionality. It currently works for the \u003ccode\u003exlwings vba\u003c/code\u003e and \u003ccode\u003exlwings addin -f\u003c/code\u003e commands and saves you from having to install a full Python installation if these are your only use cases.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadded Sheets.move() by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2755\"\u003exlwings/xlwings#2755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConditional formats by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2756\"\u003exlwings/xlwings#2756\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStrengthen conditional format snapshots by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2757\"\u003exlwings/xlwings#2757\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd data validation API by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2758\"\u003exlwings/xlwings#2758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAutoFilter by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2759\"\u003exlwings/xlwings#2759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd live formatting-aware used range getter by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2764\"\u003exlwings/xlwings#2764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd chart axis \u0026amp; series API by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2763\"\u003exlwings/xlwings#2763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded Range.get_colors() by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2765\"\u003exlwings/xlwings#2765\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd shape-validated bulk fill colors API by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2766\"\u003exlwings/xlwings#2766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdated mac_dict.py and added build script by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2760\"\u003exlwings/xlwings#2760\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: implement PID parsing for macOS 27 compatibility by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2762\"\u003exlwings/xlwings#2762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd public API for cell notes by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2767\"\u003exlwings/xlwings#2767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd  support for threaded comments by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2768\"\u003exlwings/xlwings#2768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for Range.sort() by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2769\"\u003exlwings/xlwings#2769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd range find and replace API by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2770\"\u003exlwings/xlwings#2770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd client cache flag to Office.js function decorator by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2771\"\u003exlwings/xlwings#2771\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd range duplicate removal and special cell selection by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2772\"\u003exlwings/xlwings#2772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd row and column visibility to public range API by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2773\"\u003exlwings/xlwings#2773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for Table column/row operations by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2774\"\u003exlwings/xlwings#2774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd async PivotTable range reads by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2775\"\u003exlwings/xlwings#2775\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/xlwings/xlwings/compare/0.37.4...0.37.5\"\u003ehttps://github.com/xlwings/xlwings/compare/0.37.4...0.37.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.37.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelease Notes: \u003ca href=\"https://docs.xlwings.org/en/latest/whatsnew.html\"\u003ehttps://docs.xlwings.org/en/latest/whatsnew.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstallation: To install this release, you must use a package manager like \u003ccode\u003euv\u003c/code\u003e, \u003ccode\u003epip\u003c/code\u003e, or \u003ccode\u003econda\u003c/code\u003e, you can't install from source directly, see \u003ca href=\"https://docs.xlwings.org/en/stable/installation.html\"\u003ehttps://docs.xlwings.org/en/stable/installation.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003exlwings.exe\u003c/code\u003e is a standalone xlwings command-line client with very limited functionality. It currently works for the \u003ccode\u003exlwings vba\u003c/code\u003e and \u003ccode\u003exlwings addin -f\u003c/code\u003e commands and saves you from having to install a full Python installation if these are your only use cases.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Chart.set_x_axis_values() and fix/set default chart type by \u003ca href=\"https://github.com/fzumstein\"\u003e\u003ccode\u003e@​fzumstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/xlwings/xlwings/pull/2754\"\u003exlwings/xlwings#2754\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/xlwings/xlwings/compare/0.37.3...0.37.4\"\u003ehttps://github.com/xlwings/xlwings/compare/0.37.3...0.37.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.37.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelease Notes: \u003ca href=\"https://docs.xlwings.org/en/latest/whatsnew.html\"\u003ehttps://docs.xlwings.org/en/latest/whatsnew.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstallation: To install this release, you must use a package manager like \u003ccode\u003euv\u003c/code\u003e, \u003ccode\u003epip\u003c/code\u003e, or \u003ccode\u003econda\u003c/code\u003e, you can't install from source directly, see \u003ca href=\"https://docs.xlwings.org/en/stable/installation.html\"\u003ehttps://docs.xlwings.org/en/stable/installation.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003exlwings.exe\u003c/code\u003e is a standalone xlwings command-line client with very limited functionality. It currently works for the \u003ccode\u003exlwings vba\u003c/code\u003e and \u003ccode\u003exlwings addin -f\u003c/code\u003e commands and saves you from having to install a full Python installation if these are your only use cases.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/d5abd284704b60b65abf16bba8b1446db95d1d1a\"\u003e\u003ccode\u003ed5abd28\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/a325cbc590f303f2e6ba29d26fd68d36209ba639\"\u003e\u003ccode\u003ea325cbc\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/3eb34ec9ea94db9452f5d2e7463ef6231ad7ca71\"\u003e\u003ccode\u003e3eb34ec\u003c/code\u003e\u003c/a\u003e docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/e8ffab42066139a3a21109623d610c73474dbdf5\"\u003e\u003ccode\u003ee8ffab4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/xlwings/xlwings/issues/2775\"\u003e#2775\u003c/a\u003e from xlwings/feat/pivot-read-parity-10-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/7ba7b10820c44ee556a47a3f391705226b0a7133\"\u003e\u003ccode\u003e7ba7b10\u003c/code\u003e\u003c/a\u003e Guard PivotTable actions with live identity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/90dfb04d1bee3d0f3e4b7cafa7ee020bd87a7e35\"\u003e\u003ccode\u003e90dfb04\u003c/code\u003e\u003c/a\u003e Add async PivotTable range reads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/32c6453b5a3db8ff18d9a0cc3d207778642ffdce\"\u003e\u003ccode\u003e32c6453\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/xlwings/xlwings/issues/2774\"\u003e#2774\u003c/a\u003e from xlwings/feat/table-rows-9-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/a17f4cec1a41db2972077ecf8311470aeeae4b5c\"\u003e\u003ccode\u003ea17f4ce\u003c/code\u003e\u003c/a\u003e windows fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/ddbd16f1764c9ec624c933bfd2e44d2bdd5f5259\"\u003e\u003ccode\u003eddbd16f\u003c/code\u003e\u003c/a\u003e fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xlwings/xlwings/commit/309a20537bcc74a2484806c61e4005311f964557\"\u003e\u003ccode\u003e309a205\u003c/code\u003e\u003c/a\u003e fix docs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/xlwings/xlwings/compare/0.36.6...0.37.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 3.0.3 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.3...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.3 to 9.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.1.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.1.1 (2026-06-19)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14220\"\u003e#14220\u003c/a\u003e: Fixed a logic bug in \u003ccode\u003epytest.RaisesGroup\u003c/code\u003e which would might cause it to display incorrect \u0026quot;It matches \u003c!-- raw HTML omitted --\u003eFooError()\u003c!-- raw HTML omitted --\u003e which was paired with \u003c!-- raw HTML omitted --\u003eBarError\u003c!-- raw HTML omitted --\u003e\u0026quot; messages.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14591\"\u003e#14591\u003c/a\u003e: Fixed a regression in pytest 9.1.0 which caused overriding a parametrized fixture with an indirect \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/pytest\"\u003e\u003ccode\u003e@​pytest\u003c/code\u003e\u003c/a\u003e.mark.parametrize\u003c!-- raw HTML omitted --\u003e to fail with \u0026quot;duplicate parametrization of '\u0026lt;fixture name\u0026gt;'\u0026quot;.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14606\"\u003e#14606\u003c/a\u003e: Fixed \u003ccode\u003elist-item\u003c/code\u003e typing errors from mypy in \u003ccode\u003e@pytest.mark.parametrize \u0026lt;pytest.mark.parametrize ref\u0026gt;\u003c/code\u003e \u003ccode\u003eargvalues\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14608\"\u003e#14608\u003c/a\u003e: Fixed a regression in pytest 9.1.0 where \u003ccode\u003econftest.py\u003c/code\u003e files located in \u003ccode\u003e\u0026lt;invocation dir\u0026gt;/test*\u003c/code\u003e were no longer loaded as initial conftests when invoked without arguments.\nThis could cause certain hooks (like \u003ccode\u003epytest_addoption\u003c/code\u003e) in these files to not fire.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.1.0\u003c/h2\u003e\n\u003ch1\u003epytest 9.1.0 (2026-06-13)\u003c/h1\u003e\n\u003ch2\u003eRemovals and backward incompatible breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14533\"\u003e#14533\u003c/a\u003e: When using \u003ccode\u003e--doctest-modules\u003c/code\u003e, autouse fixtures with \u003ccode\u003emodule\u003c/code\u003e, \u003ccode\u003epackage\u003c/code\u003e or \u003ccode\u003esession\u003c/code\u003e scope that are defined inline in Python test modules (not plugins or conftests) will now possibly execute twice.\u003c/p\u003e\n\u003cp\u003eIf this is undesirable, move the fixture definition to a \u003ccode\u003econftest.py\u003c/code\u003e file if possible.\u003c/p\u003e\n\u003cp\u003eTechnical explanation for those interested:\nWhen using \u003c!-- raw HTML omitted --\u003e--doctest-modules\u003c!-- raw HTML omitted --\u003e, pytest possibly collects Python modules twice, once as \u003ccode\u003epytest.Module\u003c/code\u003e and once as a \u003ccode\u003eDoctestModule\u003c/code\u003e (depending on the configuration).\nDue to improvements in pytest's fixture implementation, if e.g. the \u003ccode\u003eDoctestModule\u003c/code\u003e collects a fixture, it is now visible to it only, and not to the \u003ccode\u003eModule\u003c/code\u003e.\nThis means that both need to register the fixtures independently.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations (removal in next major release)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/10819\"\u003e#10819\u003c/a\u003e: Added a deprecation warning for class-scoped fixtures defined as instance methods (without \u003ccode\u003e@classmethod\u003c/code\u003e). Such fixtures set attributes on a different instance than the test methods use, leading to unexpected behavior. Use \u003ccode\u003e@classmethod\u003c/code\u003e decorator instead -- by \u003ccode\u003eyastcher\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003e10819\u003c/code\u003e and \u003ccode\u003e14011\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12882\"\u003e#12882\u003c/a\u003e: Calling \u003ccode\u003erequest.getfixturevalue() \u0026lt;pytest.FixtureRequest.getfixturevalue\u0026gt;\u003c/code\u003e during teardown to request a fixture that was not already requested is now deprecated and will become an error in pytest 10.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003edynamic-fixture-request-during-teardown\u003c/code\u003e for details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13409\"\u003e#13409\u003c/a\u003e: Using non-\u003ccode\u003e~collections.abc.Collection\u003c/code\u003e iterables (such as generators, iterators, or custom iterable objects) for the \u003ccode\u003eargvalues\u003c/code\u003e parameter in \u003ccode\u003e@pytest.mark.parametrize \u0026lt;pytest.mark.parametrize ref\u0026gt;\u003c/code\u003e and \u003ccode\u003emetafunc.parametrize \u0026lt;pytest.Metafunc.parametrize\u0026gt;\u003c/code\u003e is now deprecated.\u003c/p\u003e\n\u003cp\u003eThese iterables get exhausted after the first iteration,\nleading to tests getting unexpectedly skipped in cases such as running \u003ccode\u003epytest.main()\u003c/code\u003e multiple times,\nusing class-level parametrize decorators,\nor collecting tests multiple times.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003eparametrize-iterators\u003c/code\u003e for details and suggestions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute is now deprecated.\nUse \u003ccode\u003econfig.getini() \u0026lt;pytest.Config.getini\u0026gt;\u003c/code\u003e to access configuration values instead.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003econfig-inicfg\u003c/code\u003e for more details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14004\"\u003e#14004\u003c/a\u003e: Passing \u003ccode\u003ebaseid\u003c/code\u003e to \u003ccode\u003e~pytest.FixtureDef\u003c/code\u003e or \u003ccode\u003enodeid\u003c/code\u003e strings to fixture registration APIs is now deprecated. These are internal pytest APIs that are used by some plugins.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/cf470ec0bf7eb89cd97dd56df4859eae5db46447\"\u003e\u003ccode\u003ecf470ec\u003c/code\u003e\u003c/a\u003e Prepare release version 9.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/e0c8ce6cc5db1f08363be6f152c32e6838df2690\"\u003e\u003ccode\u003ee0c8ce6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14625\"\u003e#14625\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/a07c31a97...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/1b82d1694fce22385ee7a4287917fbafbaf2e757\"\u003e\u003ccode\u003e1b82d16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14624\"\u003e#14624\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/b375b79ec...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/501c4bc784da3b08bfcaa64858eba5d15dc59e53\"\u003e\u003ccode\u003e501c4bc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14596\"\u003e#14596\u003c/a\u003e from bluetech/doc-classmethod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b61f588e36e9377c3d1d3f06bece1da0fc31d9ca\"\u003e\u003ccode\u003eb61f588\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14622\"\u003e#14622\u003c/a\u003e from chrisburr/fix-14608-initial-conftest-test-subdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/9a567e009f4d2da3ce1721c6db3109cb5744d40a\"\u003e\u003ccode\u003e9a567e0\u003c/code\u003e\u003c/a\u003e [automated] Update plugin list (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14617\"\u003e#14617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14618\"\u003e#14618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ef8b2993e5b48639e4a3d97d0525df9760781384\"\u003e\u003ccode\u003eef8b299\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14620\"\u003e#14620\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/680f9f3ed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/66abd0784d4cb7c1ba44ab9a8896506cd4985acc\"\u003e\u003ccode\u003e66abd07\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14220\"\u003e#14220\u003c/a\u003e from bysiber/fix-stale-iexp-raisesgroup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/79fbf93b666cac5f27c9dad047943d47b766c8d5\"\u003e\u003ccode\u003e79fbf93\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14612\"\u003e#14612\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/974ed48b6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0d312eb876177e9f1c04262b54060a41034ebf5c\"\u003e\u003ccode\u003e0d312eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14611\"\u003e#14611\u003c/a\u003e from bluetech/parametrize-argvalues-typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.3...9.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/charliedream1/ai_quant_trade/pull/46","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/charliedream1%2Fai_quant_trade/issues/46","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/46/packages"}},{"old_version":"3.0.5","new_version":"3.0.6","update_type":"patch","path":null,"pr_created_at":"2026-10-01T23:25:54.000Z","version_change":"3.0.5 → 3.0.6","issue":{"uuid":"5670584182","node_id":"PR_kwDOQqG8is8AAAABGMktRA","number":757,"state":"open","title":"chore(deps): bump the python-dependencies group across 1 directory with 47 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-01T23:25:54.000Z","updated_at":"2026-10-01T23:25:55.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":47,"packages":[{"name":"gwpy","old_version":"4.0.1","new_version":"4.0.2"},{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"matplotlib","old_version":"3.11.1","new_version":"3.11.2","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"setuptools","old_version":"80.10.2","new_version":"84.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"astropy-iers-data","old_version":"0.2026.8.3.0.53.6","new_version":"0.2026.9.28.0.59.37","repository_url":"https://github.com/astropy/astropy-iers-data"},{"name":"build","old_version":"1.4.2","new_version":"1.6.1","repository_url":"https://github.com/pypa/build"},{"name":"charset-normalizer","old_version":"3.4.9","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.4.2","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.15.3","new_version":"7.16.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cryptography","old_version":"50.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"dateparser","old_version":"1.4.1","new_version":"1.4.3","repository_url":"https://github.com/scrapinghub/dateparser"},{"name":"debugpy","old_version":"1.8.21","new_version":"1.8.22","repository_url":"https://github.com/microsoft/debugpy"},{"name":"dqsegdb2","old_version":"1.3.0","new_version":"1.3.1"},{"name":"fastjsonschema","old_version":"2.22.1","new_version":"2.22.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"fonttools","old_version":"4.63.0","new_version":"4.66.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"idna","old_version":"3.18","new_version":"3.20","repository_url":"https://github.com/kjd/idna"},{"name":"ipython","old_version":"9.16.1","new_version":"9.17.1","repository_url":"https://github.com/ipython/ipython"},{"name":"jupyter-client","old_version":"8.9.1","new_version":"8.10.0","repository_url":"https://github.com/jupyter/jupyter_client"},{"name":"kiwisolver","old_version":"1.5.0","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"librt","old_version":"0.13.0","new_version":"0.15.0","repository_url":"https://github.com/mypyc/librt"},{"name":"mypy","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/python/mypy"},{"name":"nbformat","old_version":"5.10.4","new_version":"5.11.1","repository_url":"https://github.com/jupyter/nbformat"},{"name":"packaging","old_version":"26.0","new_version":"26.3","repository_url":"https://github.com/pypa/packaging"},{"name":"platformdirs","old_version":"4.11.0","new_version":"4.12.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pure-eval","old_version":"0.2.3","new_version":"0.2.4","repository_url":"https://github.com/alexmojaki/pure_eval"},{"name":"pygments","old_version":"2.20.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.13.0","new_version":"2.15.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytz","old_version":"2026.3.post1","new_version":"2026.4","repository_url":"https://github.com/stub42/pytz"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"regex","old_version":"2026.7.19","new_version":"2026.9.10","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"ruff","old_version":"0.16.1","new_version":"0.16.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"tornado","old_version":"6.5.7","new_version":"6.5.10","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"tqdm","old_version":"4.70.0","new_version":"4.70.1","repository_url":"https://github.com/tqdm/tqdm"},{"name":"types-pyyaml","old_version":"6.0.12.20260724","new_version":"6.0.12.20260906","repository_url":"https://github.com/python/typeshed"},{"name":"types-requests","old_version":"2.33.0.20260712","new_version":"2.33.0.20260906","repository_url":"https://github.com/python/typeshed"},{"name":"urllib3","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcwidth","old_version":"0.8.2","new_version":"0.9.1","repository_url":"https://github.com/jquast/wcwidth"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"importlib-metadata","old_version":"9.0.0","new_version":"9.0.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"nh3","old_version":"0.3.6","new_version":"0.3.7","repository_url":"https://github.com/messense/nh3"},{"name":"pip","old_version":"26.0.1","new_version":"26.2.1","repository_url":"https://github.com/pypa/pip"},{"name":"pyproject-hooks","old_version":"1.2.0","new_version":"1.3.3","repository_url":"https://github.com/pypa/pyproject-hooks"},{"name":"readme-renderer","old_version":"45.0","new_version":"46.0","repository_url":"https://github.com/pypa/readme_renderer"},{"name":"twine","old_version":"6.2.0","new_version":"7.0.0","repository_url":"https://github.com/pypa/twine"},{"name":"wheel","old_version":"0.46.3","new_version":"0.48.0","repository_url":"https://github.com/pypa/wheel"},{"name":"sphinx","old_version":"8.2.3","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 47 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gwpy](https://gitlab.com/gwpy/gwpy) | `4.0.1` | `4.0.2` |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.5` | `3.0.6` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.11.1` | `3.11.2` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.10.2` | `84.0.0` |\n| [astropy-iers-data](https://github.com/astropy/astropy-iers-data) | `0.2026.8.3.0.53.6` | `0.2026.9.28.0.59.37` |\n| [build](https://github.com/pypa/build) | `1.4.2` | `1.6.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.9` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.15.3` | `7.16.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.1` |\n| [dateparser](https://github.com/scrapinghub/dateparser) | `1.4.1` | `1.4.3` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.21` | `1.8.22` |\n| dqsegdb2 | `1.3.0` | `1.3.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.22.1` | `2.22.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.63.0` | `4.66.0` |\n| [idna](https://github.com/kjd/idna) | `3.18` | `3.20` |\n| [ipython](https://github.com/ipython/ipython) | `9.16.1` | `9.17.1` |\n| [jupyter-client](https://github.com/jupyter/jupyter_client) | `8.9.1` | `8.10.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.5.0` | `1.5.1` |\n| [librt](https://github.com/mypyc/librt) | `0.13.0` | `0.15.0` |\n| [mypy](https://github.com/python/mypy) | `2.3.0` | `2.3.1` |\n| [nbformat](https://github.com/jupyter/nbformat) | `5.10.4` | `5.11.1` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.3` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.11.0` | `4.12.1` |\n| [pure-eval](https://github.com/alexmojaki/pure_eval) | `0.2.3` | `0.2.4` |\n| [pygments](https://github.com/pygments/pygments) | `2.20.0` | `2.21.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.13.0` | `2.15.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.3.2` | `3.3.3` |\n| [pytz](https://github.com/stub42/pytz) | `2026.3.post1` | `2026.4` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.7.19` | `2026.9.10` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.1` | `0.16.9` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.7` | `6.5.10` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.70.0` | `4.70.1` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20260724` | `6.0.12.20260906` |\n| [types-requests](https://github.com/python/typeshed) | `2.33.0.20260712` | `2.33.0.20260906` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.7.0` | `2.8.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.8.2` | `0.9.1` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `9.0.0` | `9.0.1` |\n| [nh3](https://github.com/messense/nh3) | `0.3.6` | `0.3.7` |\n| [pip](https://github.com/pypa/pip) | `26.0.1` | `26.2.1` |\n| [pyproject-hooks](https://github.com/pypa/pyproject-hooks) | `1.2.0` | `1.3.3` |\n| [readme-renderer](https://github.com/pypa/readme_renderer) | `45.0` | `46.0` |\n| [twine](https://github.com/pypa/twine) | `6.2.0` | `7.0.0` |\n| [wheel](https://github.com/pypa/wheel) | `0.46.3` | `0.48.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.2.3` | `9.0.4` |\n\n\nUpdates `gwpy` from 4.0.1 to 4.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://gitlab.com/gwpy/gwpy/tags\"\u003egwpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003cp\u003ePatch release for GWpy 4.0.x.\u003c/p\u003e\n\u003cp\u003eBug Fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with matplotlib 3.11 default colour \u003ccode\u003eprop_cycle\u003c/code\u003e [!2012]\u003c/li\u003e\n\u003cli\u003eEnsure the \u003ccode\u003epelican\u003c/code\u003e extra comes with \u003ccode\u003escitokens\u003c/code\u003e support [!2010]\u003c/li\u003e\n\u003cli\u003eCatch \u003ccode\u003eOSError\u003c/code\u003e inside \u003ccode\u003eon_tape\u003c/code\u003e [!2005]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther Changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate minimum version of \u003ccode\u003elscsoft-glue\u003c/code\u003e [!2003]\u003c/li\u003e\n\u003cli\u003eUpdate minimum version of \u003ccode\u003escitokens\u003c/code\u003e to 1.9.7 [!2008]\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epytest\u003c/code\u003e \u0026gt;=9.0.3 to avoid vulnerability [!2009]\u003c/li\u003e\n\u003cli\u003eImprove minimum acceptable dependencies and testing [!2014]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://gitlab.com/gwpy/gwpy/blob/main/CHANGELOG.rst\"\u003egwpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.0.2 - 2026-08-14\u003c/h1\u003e\n\u003cp\u003ePatch release for GWpy 4.0.x.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eFull details \u0026lt;https://gitlab.com/gwpy/gwpy/-/releases/v4.0.2\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003cp\u003e.. _v4.0.2-bug-fixes:\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix compatibility with matplotlib 3.11 default colour \u003ccode\u003eprop_cycle\u003c/code\u003e\n[:mr:\u003ccode\u003e2012\u003c/code\u003e]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnsure the \u003ccode\u003epelican\u003c/code\u003e extra comes with \u003ccode\u003escitokens\u003c/code\u003e support\n[:mr:\u003ccode\u003e2010\u003c/code\u003e]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCatch \u003ccode\u003eOSError\u003c/code\u003e inside \u003ccode\u003eon_tape\u003c/code\u003e\n[:mr:\u003ccode\u003e2005\u003c/code\u003e]\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v4.0.2-other-changes:\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate minimum version of \u003ccode\u003elscsoft-glue\u003c/code\u003e\n[:mr:\u003ccode\u003e2003\u003c/code\u003e]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate minimum version of \u003ccode\u003escitokens\u003c/code\u003e to 1.9.7\n[:mr:\u003ccode\u003e2008\u003c/code\u003e]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003epytest\u003c/code\u003e \u0026gt;=9.0.3 to avoid vulnerability\n[:mr:\u003ccode\u003e2009\u003c/code\u003e]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove minimum acceptable dependencies and testing\n[:mr:\u003ccode\u003e2014\u003c/code\u003e]\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v4.0.1:\u003c/p\u003e\n\u003cp\u003e==================\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/3bbe4ea130ca2770610b7e4b9ca430fd0b7a15d2\"\u003e\u003ccode\u003e3bbe4ea\u003c/code\u003e\u003c/a\u003e build: configure explicit pypi index for uv publish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/f78983a8f4a6cfb57d4f45b4fdb9d4d0c3cb529b\"\u003e\u003ccode\u003ef78983a\u003c/code\u003e\u003c/a\u003e Merge branch 'debug-tag-cicd' into 'main'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/44785df14ebf48c159868e9933107a7b4bf836c6\"\u003e\u003ccode\u003e44785df\u003c/code\u003e\u003c/a\u003e chore(ci): ensure publish jobs have unique names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/4045f783c7ffdcb307a3e43c838c03b05d6463cd\"\u003e\u003ccode\u003e4045f78\u003c/code\u003e\u003c/a\u003e ci: include rules.yml config once only\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/4e1b4e8ad385d24222c8b0c2d83787e0ff39f5e6\"\u003e\u003ccode\u003e4e1b4e8\u003c/code\u003e\u003c/a\u003e Merge branch 'finalise-4.0.2' into 'main'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/d67463204e1ff5f3aa15a8a792a9b6ab06a2d608\"\u003e\u003ccode\u003ed674632\u003c/code\u003e\u003c/a\u003e chore(docs): update changelog for 4.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/23d4ebbc9be332056502005f990fb8d4dc538b9a\"\u003e\u003ccode\u003e23d4ebb\u003c/code\u003e\u003c/a\u003e Merge branch 'ci-dependency-scanning-no-resolution' into 'main'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/132ebf0ed061cc47f9dff4c425e78a2168952971\"\u003e\u003ccode\u003e132ebf0\u003c/code\u003e\u003c/a\u003e ci: disable gitlab's python dependency-resolution job\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/823b1ea6f624d0853dfa7d358ee8e223a08869a3\"\u003e\u003ccode\u003e823b1ea\u003c/code\u003e\u003c/a\u003e Merge branch 'ci-minimum-dependencies' into 'main'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gitlab.com/gwpy/gwpy/commit/086e54bc39cf653da5066ae77e68a6421c39ba23\"\u003e\u003ccode\u003e086e54b\u003c/code\u003e\u003c/a\u003e build: bump minimum acceptable version of lalsuite\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://gitlab.com/gwpy/gwpy/compare/v4.0.1...v4.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 3.0.5 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.5...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.11.1 to 3.11.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREL: v3.11.2\u003c/h2\u003e\n\u003cp\u003eThis is the second bugfix release of the 3.11.x series.\u003c/p\u003e\n\u003cp\u003eThis release contains several bug-fixes and adjustments:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up RGBA-stage image resampling\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ehexbin\u003c/code\u003e clipping in PDF output\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e\\text\u003c/code\u003e with internal braces\u003c/li\u003e\n\u003cli\u003eFix some crashes and make some checks more robust to unlikely cases\u003c/li\u003e\n\u003cli\u003eFix frame skew when saving GIF animations with \u003ccode\u003ePillowWriter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix HiDPI handling in Qt toolbar and WebAgg embeddings\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eResizeEvent\u003c/code\u003e handling for \u003ccode\u003eTextBox\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix bug with PGF hatch linewidth and color\u003c/li\u003e\n\u003cli\u003eFix a bug with drawing an empty Collection\u003c/li\u003e\n\u003cli\u003eFix incorrect glyphs in Cairo backends\u003c/li\u003e\n\u003cli\u003eImprove build system to prevent conflicts between wheels and system libraries\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d3ca9172e392048ec242b90e8423e88d1a3000b2\"\u003e\u003ccode\u003ed3ca917\u003c/code\u003e\u003c/a\u003e REL: v3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/b76fea990aa10afdba9225ee0f058d942cfcb770\"\u003e\u003ccode\u003eb76fea9\u003c/code\u003e\u003c/a\u003e DOC: Set current version to 3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/39c7f0678af763abe850b41a71cd2724e326157c\"\u003e\u003ccode\u003e39c7f06\u003c/code\u003e\u003c/a\u003e DOC: Prepare GitHub stats for 3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5dd13e39ceadb89af6e17c64cb0c71a2c3ddc94e\"\u003e\u003ccode\u003e5dd13e3\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.11.1-doc' into release-3.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/aa484be97e65ffa1c7e2770864dc44a219625180\"\u003e\u003ccode\u003eaa484be\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.11.0-doc' into v3.11.1-doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/0e10f83000d7993160feb264f84150b5a4cacfff\"\u003e\u003ccode\u003e0e10f83\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32330\"\u003e#32330\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-32324-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/ebe947bd694df95e189fb93b63060051a6b55f3d\"\u003e\u003ccode\u003eebe947b\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32324\"\u003e#32324\u003c/a\u003e: Don't force any diagnostics to be errors in bundled Harfbuzz\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/8f4b7c53b228dceded120488f569ff936d91844c\"\u003e\u003ccode\u003e8f4b7c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32322\"\u003e#32322\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-32321-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/93278ade075ca4b6483afac10f9a2d1e775a5f36\"\u003e\u003ccode\u003e93278ad\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32321\"\u003e#32321\u003c/a\u003e: DOC: correct note about PyOS_InputHook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/b0aee786396e59de7ea5a1cec646cbc889250b57\"\u003e\u003ccode\u003eb0aee78\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/32319\"\u003e#32319\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-32305-on-v...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.11.1...v3.11.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 80.10.2 to 84.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev84.0.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNewline-separated \u003ccode\u003ekeywords\u003c/code\u003e and \u003ccode\u003eplatforms\u003c/code\u003e\u003ccode\u003epypa/setuptools#4887\u003c/code\u003e\u003ccode\u003eold specification \u0026lt;https://peps.python.org/pep-0345/\u0026gt;\u003c/code\u003e_ separated items with spaces and the current one uses commas. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4887\"\u003e#4887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eExtension\u003c/code\u003e\u003ccode\u003epypa/distutils#373\u003c/code\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5022\"\u003e#5022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe C compiler modules now emit log messages through their own \u003ccode\u003ecompilers.C.*\u003c/code\u003e loggers instead of the distutils root logger, part of decoupling the compilers package from distutils. The logger names are normalized to a stable \u003ccode\u003ecompilers.C.*\u003c/code\u003e prefix so they remain constant as the package migrates toward a standalone \u003ccode\u003ecompilers.C\u003c/code\u003e distribution. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5266\"\u003e#5266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe C compilers gained a \u003ccode\u003eCompiler.call\u003c/code\u003e method -- a thin wrapper over \u003ccode\u003esubprocess.check_call\u003c/code\u003e (with macOS deployment-target env injection) that is the modern replacement for \u003ccode\u003eCompiler.spawn\u003c/code\u003e. The compilers no longer depend on \u003ccode\u003edistutils.spawn\u003c/code\u003e, \u003ccode\u003edistutils.dir_util\u003c/code\u003e, \u003ccode\u003edistutils.file_util\u003c/code\u003e, \u003ccode\u003edistutils._modified\u003c/code\u003e, or \u003ccode\u003edistutils.util.execute\u003c/code\u003e/\u003ccode\u003esplit_quoted\u003c/code\u003e: the generic \u003ccode\u003enewer\u003c/code\u003e/\u003ccode\u003enewer_group\u003c/code\u003e and \u003ccode\u003esplit_quoted\u003c/code\u003e helpers are vendored into the \u003ccode\u003ecompilers\u003c/code\u003e package, and \u003ccode\u003eCompiler.mkpath\u003c/code\u003e/\u003ccode\u003emove_file\u003c/code\u003e/\u003ccode\u003eexecute\u003c/code\u003e are implemented directly on the standard library (\u003ccode\u003eos.makedirs\u003c/code\u003e/\u003ccode\u003eshutil.move\u003c/code\u003e). The methods are retained for backward compatibility. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5267\"\u003e#5267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe compilers no longer depend on \u003ccode\u003edistutils.util\u003c/code\u003e, \u003ccode\u003edistutils.version\u003c/code\u003e, \u003ccode\u003edistutils.compat\u003c/code\u003e, or \u003ccode\u003edistutils._macos_compat\u003c/code\u003e. The platform-identification helpers (\u003ccode\u003eget_platform\u003c/code\u003e/\u003ccode\u003eget_host_platform\u003c/code\u003e/\u003ccode\u003eis_mingw\u003c/code\u003e) now live in \u003ccode\u003edistutils.compilers.platform.detect\u003c/code\u003e and the macOS deployment-target logic and \u003ccode\u003ecompiler_fixup\u003c/code\u003e in \u003ccode\u003edistutils.compilers.platform.macos\u003c/code\u003e; \u003ccode\u003eCygwinCCompiler.gcc_version\u003c/code\u003e returns a \u003ccode\u003epackaging.version.Version\u003c/code\u003e. \u003ccode\u003edistutils.util\u003c/code\u003e re-exports the platform/macOS helpers from their new homes for backward compatibility rather than keeping duplicate copies. (sysconfig lookups still route through distutils pending its own decoupling.) (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5268\"\u003e#5268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe compilers now read their build configuration from the standard library's \u003ccode\u003esysconfig\u003c/code\u003e instead of \u003ccode\u003edistutils.sysconfig\u003c/code\u003e. Per-compiler customization -- previously \u003ccode\u003edistutils.sysconfig.customize_compiler\u003c/code\u003e -- has moved into \u003ccode\u003eCompiler.configure_system()\u003c/code\u003e: a no-op on the base class, with \u003ccode\u003eUnixCCompiler\u003c/code\u003e applying the compiler/flag/archiver settings CPython recorded in \u003ccode\u003esysconfig\u003c/code\u003e (and the usual \u003ccode\u003eCC\u003c/code\u003e/\u003ccode\u003eCFLAGS\u003c/code\u003e/\u003ccode\u003eLDSHARED\u003c/code\u003e/… environment overrides). \u003ccode\u003edistutils.sysconfig.customize_compiler\u003c/code\u003e is retained as a thin wrapper that calls \u003ccode\u003ecompiler.configure_system()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe MSVC linker now passes its arguments through a response file when the command line would exceed the Windows maximum length, fixing failures when linking a large number of objects. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4177\"\u003e#4177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe Cygwin and MinGW compilers now pass \u003ccode\u003e-O1\u003c/code\u003e instead of a bare \u003ccode\u003e-O\u003c/code\u003e. The two are equivalent to GCC, but \u003ccode\u003ecc1\u003c/code\u003e rejected the bare form when building 32-bit extensions with \u003ccode\u003e-m32\u003c/code\u003e. -- by :user:\u003ccode\u003edchaudhari7177\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4873\"\u003e#4873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecopy_file\u003c/code\u003e\u003ccode\u003epypa/distutils#379\u003c/code\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5079\"\u003e#5079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSetuptools wheels no longer bundled the project's own test modules. -- by :user:\u003ccode\u003eitscloud0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebuild_ext\u003c/code\u003e no longer fails when cross-compiling with a compiler other than MSVC (such as MinGW). \u003ccode\u003eCompiler\u003c/code\u003e now provides a no-op \u003ccode\u003einitialize()\u003c/code\u003e\u003ccode\u003epypa/distutils#399\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eClarified what \u0026quot;correspond exactly to the directory structure\u0026quot; means in\nthe \u003ccode\u003epackages\u003c/code\u003e section of the Package Discovery user guide. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4109\"\u003e#4109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocumented how \u003ccode\u003ebdist_wheel\u003c/code\u003e's \u003ccode\u003epy_limited_api\u003c/code\u003e option controls\n\u003ccode\u003eabi3\u003c/code\u003e wheel tagging for extension modules -- by :user:\u003ccode\u003eHimanshuagrawal4\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4741\"\u003e#4741\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCompiler.spawn\u003c/code\u003e is deprecated in favor of the new \u003ccode\u003eCompiler.call\u003c/code\u003e. \u003ccode\u003ecall\u003c/code\u003e raises native \u003ccode\u003esubprocess\u003c/code\u003e exceptions; \u003ccode\u003espawn\u003c/code\u003e remains as a shim that emits a \u003ccode\u003eDeprecationWarning\u003c/code\u003e and translates them to \u003ccode\u003eDistutilsExecError\u003c/code\u003e. The MSVC \u003ccode\u003espawn\u003c/code\u003e compatibility shim for third-party monkeypatches predating the \u003ccode\u003eenv\u003c/code\u003e argument (numpy.distutils before 1.19, per \u003ca href=\"https://redirect.github.com/pypa/distutils/issues/15\"\u003epypa/distutils#15\u003c/a\u003e) has been removed. \u003ccode\u003edistutils.spawn.spawn\u003c/code\u003e is likewise reduced to a thin wrapper around \u003ccode\u003esubprocess.check_call\u003c/code\u003e: it no longer resolves \u003ccode\u003ecmd[0]\u003c/code\u003e via \u003ccode\u003eshutil.which\u003c/code\u003e (\u003ccode\u003esubprocess\u003c/code\u003e searches \u003ccode\u003ePATH\u003c/code\u003e itself) nor injects \u003ccode\u003eMACOSX_DEPLOYMENT_TARGET\u003c/code\u003e (that now lives with the compilers, the only callers to which it applied). (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5267\"\u003e#5267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuilding an extension with a \u003ccode\u003eMACOSX_DEPLOYMENT_TARGET\u003c/code\u003e lower than the interpreter's configured value now raises \u003ccode\u003ecompilers.errors.PlatformError\u003c/code\u003e instead of \u003ccode\u003edistutils.errors.DistutilsPlatformError\u003c/code\u003e (the macOS deployment-target check moved into the compilers package). \u003ccode\u003eCygwinCCompiler.gcc_version\u003c/code\u003e returns a \u003ccode\u003epackaging.version.Version\u003c/code\u003e rather than the removed \u003ccode\u003edistutils.version.LooseVersion\u003c/code\u003e. Completing the transition begun in \u003ca href=\"https://redirect.github.com/pypa/distutils/issues/246\"\u003epypa/distutils#246\u003c/a\u003e, \u003ccode\u003eUnixCCompiler.runtime_library_dir_option\u003c/code\u003e now returns the \u003ccode\u003e[\u0026quot;-Wl,--enable-new-dtags\u0026quot;, \u0026quot;-Wl,-rpath,\u0026lt;dir\u0026gt;\u0026quot;]\u003c/code\u003e list directly for GNU ld rather than collapsing it into a single string, and the temporary \u003ccode\u003edistutils.compat.consolidate_linker_args\u003c/code\u003e shim has been removed. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5268\"\u003e#5268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe compilers now define their own exception vocabulary instead of borrowing distutils' framework errors. Language-agnostic exceptions (\u003ccode\u003eError\u003c/code\u003e, \u003ccode\u003eUnknownFileType\u003c/code\u003e, and a new \u003ccode\u003ePlatformError\u003c/code\u003e) live at \u003ccode\u003edistutils.compilers.errors\u003c/code\u003e, leaving room for future \u003ccode\u003ecompilers.\u0026lt;language\u0026gt;\u003c/code\u003e siblings; the C/C++-specific \u003ccode\u003eCompileError\u003c/code\u003e/\u003ccode\u003eLinkError\u003c/code\u003e/\u003ccode\u003eLibError\u003c/code\u003e/\u003ccode\u003ePreprocessError\u003c/code\u003e remain in \u003ccode\u003edistutils.compilers.C.errors\u003c/code\u003e. The compilers now raise \u003ccode\u003ecompilers.errors.PlatformError\u003c/code\u003e where they previously raised \u003ccode\u003edistutils.errors.DistutilsPlatformError\u003c/code\u003e/\u003ccode\u003eDistutilsModuleError\u003c/code\u003e, and \u003ccode\u003ecompilers._modified.newer\u003c/code\u003e raises the stdlib \u003ccode\u003eFileNotFoundError\u003c/code\u003e. \u003ccode\u003edistutils.errors\u003c/code\u003e keeps its own framework exceptions and re-exports the compiler ones (\u003ccode\u003eCCompilerError\u003c/code\u003e, \u003ccode\u003eCompileError\u003c/code\u003e, etc.) for backward compatibility; because \u003ccode\u003eCCompilerError\u003c/code\u003e is \u003ccode\u003ecompilers.errors.Error\u003c/code\u003e, code catching it (as distutils' top-level handlers do) still catches the new \u003ccode\u003ePlatformError\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecustomize_compiler\u003c/code\u003e now asserts that the compiler-related config variables (\u003ccode\u003eCC\u003c/code\u003e, \u003ccode\u003eCXX\u003c/code\u003e, \u003ccode\u003eCFLAGS\u003c/code\u003e, etc.) resolve to strings, raising \u003ccode\u003eAssertionError\u003c/code\u003e if any are unexpectedly \u003ccode\u003eNone\u003c/code\u003e\u003ccode\u003epypa/distutils#363\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev83.0.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python 3.10 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/72e919a8b10aaafc041205d4e3ae0e6a2e1e5f87\"\u003e\u003ccode\u003e72e919a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5293\"\u003e#5293\u003c/a\u003e from pypa/bugfix/integration-pip-flit-backend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/1b2970113fd6cda8d4bcac5a1ef6ff865bff62ee\"\u003e\u003ccode\u003e1b29701\u003c/code\u003e\u003c/a\u003e Select the top-level pyproject.toml when reading build requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/bb1b38189eed960bdb4f4789926472d05e43d335\"\u003e\u003ccode\u003ebb1b381\u003c/code\u003e\u003c/a\u003e Bump version: 83.0.0 → 84.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/ee6fdd710e9f466ea06777b4eca32083fdfc9376\"\u003e\u003ccode\u003eee6fdd7\u003c/code\u003e\u003c/a\u003e Sync with distutils @ e8eb87855 (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5292\"\u003e#5292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/2a4a9e4e377ea11a418aa53b9a3cf567fd69df16\"\u003e\u003ccode\u003e2a4a9e4\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/main' into distutils-e8eb87855\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/cbd1195692917f432ddc2b56babbf2e536f4fd68\"\u003e\u003ccode\u003ecbd1195\u003c/code\u003e\u003c/a\u003e Merge \u003ca href=\"https://github.com/jaraco/skeleton\"\u003ehttps://github.com/jaraco/skeleton\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/bd3594ebfe6c18e161bbc90ef2a91d19881464b1\"\u003e\u003ccode\u003ebd3594e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5287\"\u003e#5287\u003c/a\u003e from Avasam/Configuring-lint.flake8-comprehensions.a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/f02e90a821fee92ff5ee2bf0d681b70cf24ebbb0\"\u003e\u003ccode\u003ef02e90a\u003c/code\u003e\u003c/a\u003e Configure C408 to allow dict(a=1) rather than disabling it\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/c55f52bdb7f952f9ccbd824100c7830dbed5546f\"\u003e\u003ccode\u003ec55f52b\u003c/code\u003e\u003c/a\u003e Configuring lint.flake8-comprehensions.allow-dict-calls-with-keyword-argument...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/e9904b0c7e5e249b535832b88efa847ee097de3a\"\u003e\u003ccode\u003ee9904b0\u003c/code\u003e\u003c/a\u003e Match the distutils sdist base type for the user_options override\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v80.10.2...v84.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `astropy-iers-data` from 0.2026.8.3.0.53.6 to 0.2026.9.28.0.59.37\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astropy/astropy-iers-data/releases\"\u003eastropy-iers-data's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.2026.9.28.0.59.37\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.9.21.0.56.25...v0.2026.9.28.0.59.37\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.9.21.0.56.25...v0.2026.9.28.0.59.37\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.9.21.0.56.25\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.9.14.0.56.43...v0.2026.9.21.0.56.25\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.9.14.0.56.43...v0.2026.9.21.0.56.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.9.14.0.56.43\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.9.7.0.56.14...v0.2026.9.14.0.56.43\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.9.7.0.56.14...v0.2026.9.14.0.56.43\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.9.7.0.56.14\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the actions group in /.github/workflows with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/astropy/astropy-iers-data/pull/78\"\u003eastropy/astropy-iers-data#78\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.8.31.0.57.9...v0.2026.9.7.0.56.14\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.8.31.0.57.9...v0.2026.9.7.0.56.14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.8.31.0.57.9\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.8.24.0.24.29...v0.2026.8.31.0.57.9\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.8.24.0.24.29...v0.2026.8.31.0.57.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.8.24.0.24.29\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.8.18.14.22.31...v0.2026.8.24.0.24.29\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.8.18.14.22.31...v0.2026.8.24.0.24.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.8.18.14.22.31\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade OpenAstronomy to v3.0.3 to fix release workflow by \u003ca href=\"https://github.com/pllim\"\u003e\u003ccode\u003e@​pllim\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/astropy/astropy-iers-data/pull/77\"\u003eastropy/astropy-iers-data#77\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlso include \u003ccode\u003ev0.2026.8.17.0.23.36\u003c/code\u003e that did not make it to PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.8.17.0.23.36...v0.2026.8.18.14.22.31\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.8.17.0.23.36...v0.2026.8.18.14.22.31\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.8.17.0.23.36\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.8.10.0.32.39...v0.2026.8.17.0.23.36\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.8.10.0.32.39...v0.2026.8.17.0.23.36\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.2026.8.10.0.32.39\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.8.3.0.53.6...v0.2026.8.10.0.32.39\"\u003ehttps://github.com/astropy/astropy-iers-data/compare/v0.2026.8.3.0.53.6...v0.2026.8.10.0.32.39\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/bbdcb5834d90fe56acc6c11b31b8637e9f46eb3e\"\u003e\u003ccode\u003ebbdcb58\u003c/code\u003e\u003c/a\u003e Update IERS Earth rotation and leap second tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/c8ea4988d7d2f00601d5e5aae38d8df231f6817c\"\u003e\u003ccode\u003ec8ea498\u003c/code\u003e\u003c/a\u003e Update IERS Earth rotation and leap second tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/958fa5bbcc630c8edcdbbdf721f1a5750b5b806a\"\u003e\u003ccode\u003e958fa5b\u003c/code\u003e\u003c/a\u003e Update IERS Earth rotation and leap second tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/2f779770fc3fa5f6a4bc2d97fabed4539f0619d4\"\u003e\u003ccode\u003e2f77977\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/astropy/astropy-iers-data/issues/78\"\u003e#78\u003c/a\u003e from astropy/dependabot/github_actions/dot-github/work...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/f81abd3b508f6fbb22f1b0513232e76bc598cc8e\"\u003e\u003ccode\u003ef81abd3\u003c/code\u003e\u003c/a\u003e Bump the actions group in /.github/workflows with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/4c65eb329946f60d99c597865c2502f7deecfd7e\"\u003e\u003ccode\u003e4c65eb3\u003c/code\u003e\u003c/a\u003e Update IERS Earth rotation and leap second tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/f9a8973b2bfae83e831008cec1e7898d668bc6f2\"\u003e\u003ccode\u003ef9a8973\u003c/code\u003e\u003c/a\u003e Update IERS Earth rotation and leap second tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/1207499426b84cb28fd2c75de1e395e32bcef1be\"\u003e\u003ccode\u003e1207499\u003c/code\u003e\u003c/a\u003e Update IERS Earth rotation and leap second tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/a942e496b4f19b04f325211916dfac2a1b180f5a\"\u003e\u003ccode\u003ea942e49\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/astropy/astropy-iers-data/issues/77\"\u003e#77\u003c/a\u003e from pllim/pllim-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy-iers-data/commit/12c255d76af4e814ec992fb2f1dfaf4718b0fcbe\"\u003e\u003ccode\u003e12c255d\u003c/code\u003e\u003c/a\u003e Upgrade OpenAstronomy to v3.0.3 to fix release workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astropy/astropy-iers-data/compare/v0.2026.8.3.0.53.6...v0.2026.9.28.0.59.37\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.4.2 to 1.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore[v1]: prepare for v1.6.1 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1181\"\u003epypa/build#1181\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/build/compare/1.6.0...1.6.1\"\u003ehttps://github.com/pypa/build/compare/1.6.0...1.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.6.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace prettier with mdformat and yamlfmt by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1133\"\u003epypa/build#1133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLet yamlfmt format the workflows by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1134\"\u003epypa/build#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(release): semver auto bump, changelog reflow, and roll back 1.5.1 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1132\"\u003epypa/build#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: hash verification in --dependency-constraints-txt could be silently skipped by \u003ca href=\"https://github.com/manfred-kaiser\"\u003e\u003ccode\u003e@​manfred-kaiser\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1140\"\u003epypa/build#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(ci): bump build-and-inspect-python-package to v3.0.1 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1147\"\u003epypa/build#1147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(ci): pin coverage core to ctrace so test contexts record by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1148\"\u003epypa/build#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: run mypy on more parts of the code by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1151\"\u003epypa/build#1151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: turn up strictness on mypy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1153\"\u003epypa/build#1153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: faster mypy, fix merge error by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1156\"\u003epypa/build#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(ci): rerun integration tests on transient network errors by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1150\"\u003epypa/build#1150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: clean up unused casts in tests by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1154\"\u003epypa/build#1154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(typing): apply review feedback from \u003ca href=\"https://redirect.github.com/pypa/build/issues/1093\"\u003e#1093\u003c/a\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1155\"\u003epypa/build#1155\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Generator is more accurate than Iterator by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1152\"\u003epypa/build#1152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: mark test_main_sdist_input_end_to_end with pytest.mark.network by \u003ca href=\"https://github.com/frenzymadness\"\u003e\u003ccode\u003e@​frenzymadness\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1144\"\u003epypa/build#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;⚠️ feat(util): deprecate project_wheel_metadata\u0026quot; by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1158\"\u003epypa/build#1158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: download integration sources once per run by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1157\"\u003epypa/build#1157\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse stdlib \u003ccode\u003eimportlib.metadata\u003c/code\u003e for typing by \u003ca href=\"https://github.com/layday\"\u003e\u003ccode\u003e@​layday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1162\"\u003epypa/build#1162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop redundant \u003ccode\u003eexc_info\u003c/code\u003e parameter from backend exception wrapper by \u003ca href=\"https://github.com/layday\"\u003e\u003ccode\u003e@​layday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1161\"\u003epypa/build#1161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop a few PyPy-specific test skips by \u003ca href=\"https://github.com/layday\"\u003e\u003ccode\u003e@​layday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1164\"\u003epypa/build#1164\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 chore: batch dependency updates weekly on Tuesday by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1165\"\u003epypa/build#1165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👷 ci: use app token for releases by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1169\"\u003epypa/build#1169\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/manfred-kaiser\"\u003e\u003ccode\u003e@​manfred-kaiser\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1140\"\u003epypa/build#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frenzymadness\"\u003e\u003ccode\u003e@​frenzymadness\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1144\"\u003epypa/build#1144\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/build/compare/1.5.1...1.6.0\"\u003ehttps://github.com/pypa/build/compare/1.5.1...1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(cli): accept sdist tarball as srcdir argument by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1057\"\u003epypa/build#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop 3.9 branches for version_info checks by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1059\"\u003epypa/build#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: skip test_uv_install_strips_pythonpath with missing uv by \u003ca href=\"https://github.com/mtelka\"\u003e\u003ccode\u003e@​mtelka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1063\"\u003epypa/build#1063\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove myself from codeowners by \u003ca href=\"https://github.com/FFY00\"\u003e\u003ccode\u003e@​FFY00\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1066\"\u003epypa/build#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: safe_extractall to use pathlib.Path by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/1060\"\u003epypa/build#1060\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e####################\n1.6.1 (2026-09-10)\n####################\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid trying to detect symlinks on Windows, regression in 1.6.0 - by :user:\u003ccode\u003ehenryiii\u003c/code\u003e (:issue:\u003ccode\u003e1175\u003c/code\u003e) (:issue:\u003ccode\u003e1175\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eDocumentation\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eFix doubled backslashes in the Windows pip config path (\u003ccode\u003e%APPDATA%\\pip\\pip.ini\u003c/code\u003e) in the docs - by :user:\u003ccode\u003earoh3006\u003c/code\u003e\n(:issue:\u003ccode\u003e1149\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMiscellaneous\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e:issue:\u003ccode\u003e1168\u003c/code\u003e, :issue:\u003ccode\u003e1170\u003c/code\u003e, :issue:\u003ccode\u003e1178\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e####################\n1.6.0 (2026-08-27)\n####################\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--report=PATH\u003c/code\u003e to write a machine-readable JSON report of built artifacts; \u003ccode\u003e--metadata\u003c/code\u003e now also accepts\n\u003ccode\u003e.whl\u003c/code\u003e files - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e (:issue:\u003ccode\u003e198\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003esrcdir\u003c/code\u003e argument now accepts \u003ccode\u003e.tar.gz\u003c/code\u003e source distributions, extracting and building from them - by\n:user:\u003ccode\u003egaborbernat\u003c/code\u003e (:issue:\u003ccode\u003e311\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eThe \u0026quot;Unmet dependencies\u0026quot; error from \u003ccode\u003e--no-isolation\u003c/code\u003e builds now shows the wanted version, found version, and\ninterpreter - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e (:issue:\u003ccode\u003e504\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--sdist-extract-dir\u003c/code\u003e to extract the intermediate sdist into a persistent directory, enabling compiler cache\nreuse across rebuilds - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e (:issue:\u003ccode\u003e614\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--env-dir\u003c/code\u003e to place the isolated build environment at a fixed path, enabling compiler cache reuse across builds\n\u003cul\u003e\n\u003cli\u003eby :user:\u003ccode\u003egaborbernat\u003c/code\u003e (:issue:\u003ccode\u003e655\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePrint a summary of resolved dependency versions (\u003ccode\u003ename==version\u003c/code\u003e) after installing them in isolated builds - by\n:user:\u003ccode\u003egaborbernat\u003c/code\u003e (:issue:\u003ccode\u003e959\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOn build failure, print a tip pointing to \u003ccode\u003e--env-dir\u003c/code\u003e and \u003ccode\u003e--sdist-extract-dir\u003c/code\u003e for debugging and link to the\n\u0026quot;Debug a failed build\u0026quot; how-to - reported by :user:\u003ccode\u003edimpase\u003c/code\u003e, implemented by :user:\u003ccode\u003egaborbernat\u003c/code\u003e (:issue:\u003ccode\u003e966\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003chr /\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/89cccef40df9011f03bec18cf52c53d1096ed6ee\"\u003e\u003ccode\u003e89cccef\u003c/code\u003e\u003c/a\u003e chore: prepare for 1.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/a6f707a75fc8548d7707645e97c7903197387849\"\u003e\u003ccode\u003ea6f707a\u003c/code\u003e\u003c/a\u003e ci: support releases from v* branches (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1178\"\u003e#1178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/77851610de5d3894fa8a88e06e0232901cf93758\"\u003e\u003ccode\u003e7785161\u003c/code\u003e\u003c/a\u003e docs: fix doubled backslashes in Windows pip config path (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1149\"\u003e#1149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/244b250c3219070eebb29764f7709262d48afd41\"\u003e\u003ccode\u003e244b250\u003c/code\u003e\u003c/a\u003e fix: always use copies for the isolated venv on Windows (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/c93ca6f6d252e4d8df7fda4a61f8f9ed8a55a411\"\u003e\u003ccode\u003ec93ca6f\u003c/code\u003e\u003c/a\u003e build(deps): bump re-actors/alls-green from 1.2.2 to 1.3.0 in the github-acti...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/e02ffd32241aec2e306d90869417c1e900c0adb4\"\u003e\u003ccode\u003ee02ffd3\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1173\"\u003e#1173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/aad39a800e3d81bf907018ebe2fab135717da59b\"\u003e\u003ccode\u003eaad39a8\u003c/code\u003e\u003c/a\u003e docs: fix changelog page heading levels and sidebar (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1171\"\u003e#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/5c3fd46b5c38c7caea5dd95ce365971104a734aa\"\u003e\u003ccode\u003e5c3fd46\u003c/code\u003e\u003c/a\u003e docs: use PyPI ref directly (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1172\"\u003e#1172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/1c5bd6c21cbd33c1816978d45219d48fb4c2b269\"\u003e\u003ccode\u003e1c5bd6c\u003c/code\u003e\u003c/a\u003e 🐛 fix(release): format generated changelog (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1170\"\u003e#1170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/7f0cc7ed19969558c7daeaa3652ce2ffc81599c1\"\u003e\u003ccode\u003e7f0cc7e\u003c/code\u003e\u003c/a\u003e 🔧 build(type): replace mypy with pyrefly (\u003ca href=\"https://redirect.github.com/pypa/build/issues/1168\"\u003e#1168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.4.2...1.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.9 to 3.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.5.0...3.5.1\"\u003e3.5.1\u003c/a\u003e (2026-08-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised upper bound of setuptools to v84 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/794\"\u003e#794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache performance access optimization for our CharInfo struct (prebuilt only).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer decoding large content when the noise detector output give a high entropy.\nOnly impacted large content input \u0026gt;1M bytes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.9...3.5.0\"\u003e3.5.0\u003c/a\u003e (2026-08-12)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExplicit support for Python 3.15\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComparing a CharsetMatch to a non-alias encoding strings (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn 0.0 CharsetMatch.multi_byte_usage for empty payloads instead of crashing (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/774\"\u003e#774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA file with both a charset declaration and BOM/SIG did not verify first the BOM/SIG charset.\u003c/li\u003e\n\u003cli\u003eiso2022* cases misdetected due to a flaw in our multibyte chunking logic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced the optional mypyc build with Cython extensions while retaining the\npure Python fallback. The previous engine (mypyc) started to hit rough limit around\nthe optimization of our noise/coherence detector while Cython allows us to\nsteer the engine toward the right generated optimized sources.\nThis change SHOULD not impact bundler (e.g. Pyinstaller) as the module are\nimmediately discoverable (i.e. not hidden import like mypyc did).\nMoreover, a long wished distribution is the abi3 wheels, this will allow us\nto no longer rush each year when a new Python interpreter is released.\nWe still distribute the interpreter specific wheels for faster performance.\u003c/li\u003e\n\u003cli\u003eApplied micro-optimization on several utils.\u003c/li\u003e\n\u003cli\u003eCharsetMatches no longer sort on each match insertion.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an old performance optimization attempt in apy.py (success_fast_tracked+payload_result_cache).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.5.0...3.5.1\"\u003e3.5.1\u003c/a\u003e (2026-08-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised upper bound of setuptools to v84 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/794\"\u003e#794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache performance access optimization for our CharInfo struct (prebuilt only).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer decoding large content when the noise detector output give a high entropy.\nOnly impacted large content input \u0026gt;1M bytes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.9...3.5.0\"\u003e3.5.0\u003c/a\u003e (2026-08-12)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExplicit support for Python 3.15\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComparing a CharsetMatch to a non-alias encoding strings (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn 0.0 CharsetMatch.multi_byte_usage for empty payloads instead of crashing (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/774\"\u003e#774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA file with both a charset declaration and BOM/SIG did not verify first the BOM/SIG charset.\u003c/li\u003e\n\u003cli\u003eiso2022* cases misdetected due to a flaw in our multibyte chunking logic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced the optional mypyc build with Cython extensions while retaining the\npure Python fallback. The previous engine (mypyc) started to hit rough limit around\nthe optimization of our noise/coherence detector while Cython allows us to\nsteer the engine toward the right generated optimized sources.\nThis change SHOULD not impact bundler (e.g. Pyinstaller) as the module are\nimmediately discoverable (i.e. not hidden import like mypyc did).\nMoreover, a long wished distribution is the abi3 wheels, this will allow us\nto no longer rush each year when a new Python interpreter is released.\nWe still distribute the interpreter specific wheels for faster performance.\u003c/li\u003e\n\u003cli\u003eApplied micro-optimization on several utils.\u003c/li\u003e\n\u003cli\u003eCharsetMatches no longer sort on each match insertion.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an old performance optimization attempt in apy.py (success_fast_tracked+payload_result_cache).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/e239bdc5cc1eb1f0db08d4046ad531f805dbea71\"\u003e\u003ccode\u003ee239bdc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/795\"\u003e#795\u003c/a\u003e from jawah/release-3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/648ad776db64a00aa7efd70a94656ac43784abb3\"\u003e\u003ccode\u003e648ad77\u003c/code\u003e\u003c/a\u003e docs: update faq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fab27492c39baa61aca12826022e266781108570\"\u003e\u003ccode\u003efab2749\u003c/code\u003e\u003c/a\u003e docs: write changelog for 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/7d32774e75d16cccd3d22c758a77fca135952787\"\u003e\u003ccode\u003e7d32774\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9a69f609f254ba4bfe9d0cbf375728e43360cdf2\"\u003e\u003ccode\u003e9a69f60\u003c/code\u003e\u003c/a\u003e docs: update data/info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/5dcc6dd81a8a0a4bd525f8d6f508da8285caf402\"\u003e\u003ccode\u003e5dcc6dd\u003c/code\u003e\u003c/a\u003e perf: charinfo cache access optimization in cython\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ea3b4479270762be1228562c590e5a212727f208\"\u003e\u003ccode\u003eea3b447\u003c/code\u003e\u003c/a\u003e fix: do not validate-decode large payload when md says it's noise\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a05917f87b5f71d6022d8abe2b0af239f65c1111\"\u003e\u003ccode\u003ea05917f\u003c/code\u003e\u003c/a\u003e chore: allow setuptools 84 builds (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/794\"\u003e#794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/3325d87c3c73fa1a8746947151faaf9a41177543\"\u003e\u003ccode\u003e3325d87\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/792\"\u003e#792\u003c/a\u003e from jawah/update-cibuildwheel-action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/77203b104216a6d578a682b5ac0514750aa988f7\"\u003e\u003ccode\u003e77203b1\u003c/code\u003e\u003c/a\u003e chore: reformat noxfile.py\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.9...3.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.4.2 to 8.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.5.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.5.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.5.0/\"\u003ehttps://pypi.org/project/click/8.5.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-5-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-5-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/33\"\u003ehttps://github.com/pallets/click/milestone/33\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd built-in shell completion support for PowerShell (Windows PowerShell\n5.1+ and pwsh 7+) alongside the existing \u003ccode\u003ebash\u003c/code\u003e, \u003ccode\u003ezsh\u003c/code\u003e, and \u003ccode\u003efish\u003c/code\u003e\ncompleters. Use \u003ccode\u003e_FOO_BAR_COMPLETE=powershell_source foo-bar\u003c/code\u003e to generate\nthe completion script. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2672\"\u003e#2672\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3637\"\u003e#3637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupported versions of Windows enable ANSI terminal styles by default.\nColorama is no longer a dependency and is not used. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2986\"\u003e#2986\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3505\"\u003e#3505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003eArgument\u003c/code\u003e accepts a \u003ccode\u003ehelp\u003c/code\u003e parameter, and help output includes\na \u003ccode\u003ePositional arguments\u003c/code\u003e section when argument help is available. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2983\"\u003e#2983\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3473\"\u003e#3473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfirm()\u003c/code\u003e and \u003ccode\u003eprompt()\u003c/code\u003e strip ANSI color and style codes from the\nprompt when the output stream does not support them, matching \u003ccode\u003eecho()\u003c/code\u003e.\nThis stripping was lost in \u003ccode\u003e8.4.0\u003c/code\u003e when \u003ca href=\"https://redirect.github.com/pallets/click/issues/2969\"\u003e#2969\u003c/a\u003e began writing the\nprompt with \u003ccode\u003einput()\u003c/code\u003e directly. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3572\"\u003e#3572\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3653\"\u003e#3653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003ePath\u003c/code\u003e with \u003ccode\u003eallow_dash=True\u003c/code\u003e no longer triggers a \u003ccode\u003eBytesWarning\u003c/code\u003e,\nan error under \u003ccode\u003epython -bb\u003c/code\u003e, when checking a value against the \u003ccode\u003e-\u003c/code\u003e\nconvention. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2877\"\u003e#2877\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3642\"\u003e#3642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd {func}\u003ccode\u003ecustom_version_option\u003c/code\u003e, a \u003ccode\u003e--version\u003c/code\u003e option whose output is\nproduced by a callback, covering cases {func}\u003ccode\u003eversion_option\u003c/code\u003e intentionally\ndoes not. The feature set of {func}\u003ccode\u003eversion_option\u003c/code\u003e is now frozen; see\n[discussion \u003ca href=\"https://redirect.github.com/pallets/click/issues/3527\"\u003e#3527\u003c/a\u003e](\u003ca href=\"https://github.com/pallets/click/discussions/3527\"\u003ehttps://github.com/pallets/click/discussions/3527\u003c/a\u003e). \u003ca href=\"https://redirect.github.com/pallets/click/issues/3581\"\u003e#3581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estyle()\u003c/code\u003e and \u003ccode\u003esecho()\u003c/code\u003e no longer silently drop the 256-color index \u003ccode\u003e0\u003c/code\u003e\n(black) passed as \u003ccode\u003efg\u003c/code\u003e or \u003ccode\u003ebg\u003c/code\u003e, and now validate color arguments. Invalid\ncolors raise a \u003ccode\u003eValueError\u003c/code\u003e instead of a \u003ccode\u003eTypeError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3677\"\u003e#3677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe automatic help option stores its value under the reserved name\n\u003ccode\u003e_click_default_help\u003c/code\u003e instead of \u003ccode\u003ehelp\u003c/code\u003e, so a parameter named \u003ccode\u003ehelp\u003c/code\u003e no\nlonger breaks parsing. The new name is visible in\n{meth}\u003ccode\u003eCommand.to_info_dict\u003c/code\u003e output. Parameters that overwrite each other's\nvalue trigger a warning: an argument sharing its name with another\nparameter, or any parameter claiming the reserved name. Options may still\nshare a name to compete for the same value (feature switches).\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2819\"\u003e#2819\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3678\"\u003e#3678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunstyle\u003c/code\u003e and the ANSI handling behind help-text wrapping now strip the full\nCSI escape-sequence grammar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3681\"\u003e#3681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStreamline \u003ccode\u003eOption\u003c/code\u003e flag handling: the flag-kind, type, lazy-default and\nvalidation steps in \u003ccode\u003eOption.__init__\u003c/code\u003e move into focused helpers, and\n\u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003edefault\u003c/code\u003e keep their unset sentinel at construction\n(resolved lazily on read) so \u003ccode\u003eis UNSET\u003c/code\u003e reliably tells a user-supplied value\nfrom an auto-derived one. Runtime behavior is unchanged, but\n{meth}\u003ccode\u003eParameter.to_info_dict\u003c/code\u003e now resolves \u003ccode\u003edefault=True\u003c/code\u003e on a feature\nswitch to its \u003ccode\u003eflag_value\u003c/code\u003e, matching what the function receives at call\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.5.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-08-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd built-in shell completion support for PowerShell (Windows PowerShell\n5.1+ and pwsh 7+) alongside the existing \u003ccode\u003ebash\u003c/code\u003e, \u003ccode\u003ezsh\u003c/code\u003e, and \u003ccode\u003efish\u003c/code\u003e\ncompleters. Use \u003ccode\u003e_FOO_BAR_COMPLETE=powershell_source foo-bar\u003c/code\u003e to generate\nthe completion script. {issue}\u003ccode\u003e2672\u003c/code\u003e {pr}\u003ccode\u003e3637\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSupported versions of Windows enable ANSI terminal styles by default.\nColorama is no longer a dependency and is not used. {issue}\u003ccode\u003e2986\u003c/code\u003e {pr}\u003ccode\u003e3505\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003eArgument\u003c/code\u003e accepts a \u003ccode\u003ehelp\u003c/code\u003e parameter, and help output includes\na \u003ccode\u003ePositional arguments\u003c/code\u003e section when argument help is available. {issue}\u003ccode\u003e2983\u003c/code\u003e {pr}\u003ccode\u003e3473\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfirm()\u003c/code\u003e and \u003ccode\u003eprompt()\u003c/code\u003e strip ANSI color and style codes from the\nprompt when the output stream does not support them, matching \u003ccode\u003eecho()\u003c/code\u003e.\nThis stripping was lost in \u003ccode\u003e8.4.0\u003c/code\u003e when {pr}\u003ccode\u003e2969\u003c/code\u003e began writing the\nprompt with \u003ccode\u003einput()\u003c/code\u003e directly. {issue}\u003ccode\u003e3572\u003c/code\u003e {pr}\u003ccode\u003e3653\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix test failures when using pytest \u0026gt;= 9.1. {pr}\u003ccode\u003e3656\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003ePath\u003c/code\u003e with \u003ccode\u003eallow_dash=True\u003c/code\u003e no longer triggers a \u003ccode\u003eBytesWarning\u003c/code\u003e,\nan error under \u003ccode\u003epython -bb\u003c/code\u003e, when checking a value against the \u003ccode\u003e-\u003c/code\u003e\nconvention. {issue}\u003ccode\u003e2877\u003c/code\u003e {pr}\u003ccode\u003e3642\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd {func}\u003ccode\u003ecustom_version_option\u003c/code\u003e, a \u003ccode\u003e--version\u003c/code\u003e option whose output is\nproduced by a callback, covering cases {func}\u003ccode\u003eversion_option\u003c/code\u003e intentionally\ndoes not. The feature set of {func}\u003ccode\u003eversion_option\u003c/code\u003e is now frozen; see\n[discussion \u003ca href=\"https://redirect.github.com/pallets/click/issues/3527\"\u003e#3527\u003c/a\u003e](\u003ca href=\"https://github.com/pallets/click/discussions/3527\"\u003ehttps://github.com/pallets/click/discussions/3527\u003c/a\u003e). {pr}\u003ccode\u003e3581\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estyle()\u003c/code\u003e and \u003ccode\u003esecho()\u003c/code\u003e no longer silently drop the 256-color index \u003ccode\u003e0\u003c/code\u003e\n(black) passed as \u003ccode\u003efg\u003c/code\u003e or \u003ccode\u003ebg\u003c/code\u003e, and now validate color arguments. Invalid\ncolors raise a \u003ccode\u003eValueError\u003c/code\u003e instead of a \u003ccode\u003eTypeError\u003c/code\u003e. {pr}\u003ccode\u003e3677\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe automatic help option stores its value under the reserved name\n\u003ccode\u003e_click_default_help\u003c/code\u003e instead of \u003ccode\u003ehelp\u003c/code\u003e, so a parameter named \u003ccode\u003ehelp\u003c/code\u003e no\nlonger breaks parsing. The new name is visible in\n{meth}\u003ccode\u003eCommand.to_info_dict\u003c/code\u003e output. Parameters that overwrite each other's\nvalue trigger a warning: an argument sharing its name with another\nparameter, or any parameter claiming the reserved name. Options may still\nshare a name to compete for the same value (feature switches).\n{issue}\u003ccode\u003e2819\u003c/code\u003e {pr}\u003ccode\u003e3678\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunstyle\u003c/code\u003e and the ANSI handling behind help-text wrapping now strip the full\nCSI escape-sequence grammar. {pr}\u003ccode\u003e3681\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStreamline \u003ccode\u003eOption\u003c/code\u003e flag handling: the flag-kind, type, lazy-default and\nvalidation steps in \u003ccode\u003eOption.__init__\u003c/code\u003e move into focused helpers, and\n\u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003edefault\u003c/code\u003e keep their unset sentinel at construction\n(resolved lazily on read) so \u003ccode\u003eis UNSET\u003c/code\u003e reliably tells a user-supplied value\nfrom an auto-derived one. Runtime behavior is unchanged, but\n{meth}\u003ccode\u003eParameter.to_info_dict\u003c/code\u003e now resolves \u003ccode\u003edefault=True\u003c/code\u003e on a feature\nswitch to its \u003ccode\u003eflag_value\u003c/code\u003e, matching what the function receives at call\ntime. {pr}\u003ccode\u003e3641\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eget_binary_stream\u003c/code\u003e and {func}\u003ccode\u003eget_text_stream\u003c/code\u003e are deprecated and\nwill be removed in Click 9.0. {issue}\u003ccode\u003e3481\u003c/code\u003e {pr}\u003ccode\u003e3695\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe following \u003ccode\u003eclick.utils\u003c/code\u003e names were never intentionally public and are\nnow private (\u003ccode\u003e_\u003c/code\u003e-prefixed). The old names remain available with a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e until Click 9.0: \u003ccode\u003eLazyFile\u003c/code\u003e, \u003ccode\u003eKeepOpenFile\u003c/code\u003e,\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8b19813f2bfca99f1018a587a8cf54fc959f2e5d\"\u003e\u003ccode\u003e8b19813\u003c/code\u003e\u003c/a\u003e Release version 8.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2c8cd3ac958a7eb316d67f2d316c27086c4c0369\"\u003e\u003ccode\u003e2c8cd3a\u003c/code\u003e\u003c/a\u003e Add FAQ entry about \u003ccode\u003eUnicodeEncodeError\u003c/code\u003e on Windows (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3778\"\u003e#3778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/131c86aadddfa5cb6dca8339c9d6294c4eacb8ac\"\u003e\u003ccode\u003e131c86a\u003c/code\u003e\u003c/a\u003e Add FAQ entry about \u003ccode\u003eUnicodeEncodeError\u003c/code\u003e on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e1fd5946ab26aaf372009eaff1acf947140b40fb\"\u003e\u003ccode\u003ee1fd594\u003c/code\u003e\u003c/a\u003e Add support of \u003ccode\u003epathlib.Path\u003c/code\u003e to \u003ccode\u003eedit\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3781\"\u003e#3781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a1d87858abd77fa8e3ffc204670ccd75b96c4781\"\u003e\u003ccode\u003ea1d8785\u003c/code\u003e\u003c/a\u003e Add support of \u003ccode\u003epathlib.Path\u003c/code\u003e to \u003ccode\u003eedit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2103e157683c5e4cadc8ee1838df526a54bde9a4\"\u003e\u003ccode\u003e2103e15\u003c/code\u003e\u003c/a\u003e Forward all user's parameters set in \u003ccode\u003ePAGER\u003c/code\u003e and improve flag detection (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3777\"\u003e#3777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a6256bfb5971d5e58585fe7b6c656134e1ade5a4\"\u003e\u003ccode\u003ea6256bf\u003c/code\u003e\u003c/a\u003e Forwards all user's parameters set in \u003ccode\u003ePAGER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/61b69e967e525bd502f5bf42def4d551e761fe0e\"\u003e\u003ccode\u003e61b69e9\u003c/code\u003e\u003c/a\u003e Resolve the pager command once, in \u003ccode\u003e_pager_contextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3776\"\u003e#3776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/9835b0f7612d1b1ea180a975fd6d24cf16791ba8\"\u003e\u003ccode\u003e9835b0f\u003c/code\u003e\u003c/a\u003e Resolve the pager command once, in \u003ccode\u003e_pager_contextmanager\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f36d58bbd7f188178de2d4fe1d0292c510375ca7\"\u003e\u003ccode\u003ef36d58b\u003c/code\u003e\u003c/a\u003e Refactor pager stream handling (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3767\"\u003e#3767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.2...8.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.15.3 to 7.16.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/releases\"\u003ecoverage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.16.2\u003c/h2\u003e\n\u003ch2\u003eVersion 7.16.2 — 2026-09-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: on Python 3.14 and later, a \u003ccode\u003efor\u003c/code\u003e loop completing immediately before a function return could mistakenly report an uncovered branch. This is now fixed, closing \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2168\"\u003eissue 2168\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix: on Python 3.14 and later, the \u003ccode\u003eelse\u003c/code\u003e clause of a \u003ccode\u003etry\u003c/code\u003e whose body is a \u003ccode\u003ewith\u003c/code\u003e statement could incorrectly be reported as covered when the \u003ccode\u003ewith\u003c/code\u003e raised. This is now fixed, closing \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2289\"\u003eissue 2289\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix: with \u003ccode\u003edynamic_context = test_function\u003c/code\u003e, test methods written as \u003ccode\u003e@staticmethod\u003c/code\u003e or \u003ccode\u003e@classmethod\u003c/code\u003e were not given a context of their own. Now they are, on Python 3.11 and later. Closes \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1923\"\u003eissue 1923\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.16.2\"\u003ecoverage 7.16.2\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.16.2\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.16.1\u003c/h2\u003e\n\u003ch2\u003eVersion 7.16.1 — 2026-09-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: when the body of an irrefutable \u003ccode\u003ecase\u003c/code\u003e (like \u003ccode\u003ecase _:\u003c/code\u003e) is entirely excluded, the \u003ccode\u003ecase\u003c/code\u003e line is now excluded too, just as an excluded \u003ccode\u003eelse:\u003c/code\u003e body removes the \u003ccode\u003eelse:\u003c/code\u003e line. Previously the \u003ccode\u003ecase\u003c/code\u003e line was left behind and reported as missing. Closes \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1563\"\u003eissue 1563\u003c/a\u003e with \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2269\"\u003epull 2269\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix: using \u003ca href=\"https://coverage.readthedocs.io/en/latest/api_coveragedata.html#coverage.Covera...\n\n_Description has been truncated_","html_url":"https://github.com/tatsuki-washimi/gwexpy/pull/757","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tatsuki-washimi%2Fgwexpy/issues/757","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/757/packages"}},{"old_version":"3.0.5","new_version":"3.0.6","update_type":"patch","path":null,"pr_created_at":"2026-10-01T16:06:22.000Z","version_change":"3.0.5 → 3.0.6","issue":{"uuid":"5665264281","node_id":"PR_kwDOG_CEhs8AAAABGIQ-Bw","number":29,"state":"open","title":"Bump the python group with 8 updates","user":"dependabot[bot]","labels":["skip-changelog","minor","dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-01T16:06:22.000Z","updated_at":"2026-10-01T16:06:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":8,"packages":[{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"plotly","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"streamlit","old_version":"1.63.0","new_version":"1.64.0","repository_url":"https://github.com/streamlit/streamlit"},{"name":"jupyterlab","old_version":"4.6.3","new_version":"4.6.4","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"pandas-stubs","old_version":"3.0.5.260730","new_version":"3.0.5.260914","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"ruff","old_version":"0.16.6","new_version":"0.16.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"ty","old_version":"0.0.78","new_version":"0.0.84","repository_url":"https://github.com/astral-sh/ty"},{"name":"uvicorn","old_version":"0.52.4","new_version":"0.54.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 8 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.5` | `3.0.6` |\n| [plotly](https://github.com/plotly/plotly.py) | `7.0.0` | `7.1.0` |\n| [streamlit](https://github.com/streamlit/streamlit) | `1.63.0` | `1.64.0` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.6.3` | `4.6.4` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `3.0.5.260730` | `3.0.5.260914` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.6` | `0.16.9` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.78` | `0.0.84` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.52.4` | `0.54.0` |\n\nUpdates `pandas` from 3.0.5 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.5...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `plotly` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/releases\"\u003eplotly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003emarginal_x\u003c/code\u003e/\u003ccode\u003emarginal_y=\u0026quot;heatmap\u0026quot;\u003c/code\u003e in \u003ccode\u003edensity_heatmap\u003c/code\u003e, drawing a single-row/column heatmap strip in the margin colored by the same \u003ccode\u003ez\u003c/code\u003e/\u003ccode\u003ehistfunc\u003c/code\u003e aggregate as the main plot and sharing its color scale [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5706\"\u003e#5706\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/lucasjamar\"\u003e\u003ccode\u003e@​lucasjamar\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eAdd support for custom tick values in \u003ccode\u003empl_to_plotly\u003c/code\u003e when the matplotlib tick positions don't follow an arithmetic progression, including custom tick labels and tick values on date axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5262\"\u003e#5262\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Plotly Express treating unsigned integer columns (\u003ccode\u003euint8\u003c/code\u003e, \u003ccode\u003euint16\u003c/code\u003e, \u003ccode\u003euint32\u003c/code\u003e, \u003ccode\u003euint64\u003c/code\u003e) in pandas DataFrames as categorical, which caused \u003ccode\u003epx.bar\u003c/code\u003e and other functions to pick the wrong orientation and render unexpected plots [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/4291\"\u003e#4291\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/4344\"\u003e#4344\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Belagum\"\u003e\u003ccode\u003e@​Belagum\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003empl_to_plotly\u003c/code\u003e not setting \u003ccode\u003epaper_bgcolor\u003c/code\u003e and \u003ccode\u003eplot_bgcolor\u003c/code\u003e from the matplotlib figure and axes backgrounds, so converted figures match the source figure's background colors [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5285\"\u003e#5285\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix rendering issue causing a too-large div when calling \u003ccode\u003eFigure.show()\u003c/code\u003e in Google Colab [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5718\"\u003e#5718\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix the sphinx-gallery scraper so that it generates thumbnails for figures shown with \u003ccode\u003efig.show()\u003c/code\u003e or displayed as the last expression of a code block [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5701\"\u003e#5701\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/larsoner\"\u003e\u003ccode\u003e@​larsoner\u003c/code\u003e\u003c/a\u003e for the contribution!\n\u003cul\u003e\n\u003cli\u003eThe scaper now warns once (instead of failing the build) when static image export is unavailable\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eThe sphinx-gallery scraper no longer scrapes files belonging to other examples during parallel builds [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5701\"\u003e#5701\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/larsoner\"\u003e\u003ccode\u003e@​larsoner\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 4.0.0 to version 4.1.1 [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5722\"\u003e#5722\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5730\"\u003e#5730\u003c/a\u003e]. See the plotly.js release notes for \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v4.1.0\"\u003ev4.1.0\u003c/a\u003e and \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v4.1.1\"\u003ev4.1.1\u003c/a\u003e for details. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd an opt-in modebar button for downloading Plotly figures as JSON [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7990\"\u003e#7990\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8022\"\u003e#8022\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elegend.groupdoubleclick\u003c/code\u003e to set the group behavior for a legend double-click [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7997\"\u003e#7997\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eIncrease default double-click delay threshold to 500ms (from 300) [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8014\"\u003e#8014\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix issue with per-point marker color for hover labels in \u003ccode\u003escattergl\u003c/code\u003e, \u003ccode\u003equiver\u003c/code\u003e traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8027\"\u003e#8027\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003emaplibre-gl\u003c/code\u003e to v6 to address \u003ca href=\"https://github.com/advisories/GHSA-jrc7-96c5-q579\"\u003eCVE-2026-85061\u003c/a\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8035\"\u003e#8035\u003c/a\u003e]\n\u003cul\u003e\n\u003cli\u003eNote: Safari 15, Chrome 56, Firefox 51 and later are now required for map traces\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehex_to_rgb\u003c/code\u003e function to raise error for invalid-length hex codes, and emit warning for hex codes containing alpha [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5729\"\u003e#5729\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/dylanpulver\"\u003e\u003ccode\u003e@​dylanpulver\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md\"\u003eplotly's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[7.1.0] - 2026-09-15\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003emarginal_x\u003c/code\u003e/\u003ccode\u003emarginal_y=\u0026quot;heatmap\u0026quot;\u003c/code\u003e in \u003ccode\u003edensity_heatmap\u003c/code\u003e, drawing a single-row/column heatmap strip in the margin colored by the same \u003ccode\u003ez\u003c/code\u003e/\u003ccode\u003ehistfunc\u003c/code\u003e aggregate as the main plot and sharing its color scale [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5706\"\u003e#5706\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/lucasjamar\"\u003e\u003ccode\u003e@​lucasjamar\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eAdd support for custom tick values in \u003ccode\u003empl_to_plotly\u003c/code\u003e when the matplotlib tick positions don't follow an arithmetic progression, including custom tick labels and tick values on date axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5262\"\u003e#5262\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Plotly Express treating unsigned integer columns (\u003ccode\u003euint8\u003c/code\u003e, \u003ccode\u003euint16\u003c/code\u003e, \u003ccode\u003euint32\u003c/code\u003e, \u003ccode\u003euint64\u003c/code\u003e) in pandas DataFrames as categorical, which caused \u003ccode\u003epx.bar\u003c/code\u003e and other functions to pick the wrong orientation and render unexpected plots [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/4291\"\u003e#4291\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/4344\"\u003e#4344\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Belagum\"\u003e\u003ccode\u003e@​Belagum\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003empl_to_plotly\u003c/code\u003e not setting \u003ccode\u003epaper_bgcolor\u003c/code\u003e and \u003ccode\u003eplot_bgcolor\u003c/code\u003e from the matplotlib figure and axes backgrounds, so converted figures match the source figure's background colors [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5285\"\u003e#5285\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix rendering issue causing a too-large div when calling \u003ccode\u003eFigure.show()\u003c/code\u003e in Google Colab [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5718\"\u003e#5718\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix the sphinx-gallery scraper so that it generates thumbnails for figures shown with \u003ccode\u003efig.show()\u003c/code\u003e or displayed as the last expression of a code block [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5701\"\u003e#5701\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/larsoner\"\u003e\u003ccode\u003e@​larsoner\u003c/code\u003e\u003c/a\u003e for the contribution!\n\u003cul\u003e\n\u003cli\u003eThe scaper now warns once (instead of failing the build) when static image export is unavailable\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eThe sphinx-gallery scraper no longer scrapes files belonging to other examples during parallel builds [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5701\"\u003e#5701\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/larsoner\"\u003e\u003ccode\u003e@​larsoner\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 4.0.0 to version 4.1.1 [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5722\"\u003e#5722\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5730\"\u003e#5730\u003c/a\u003e]. See the plotly.js release notes for \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v4.1.0\"\u003ev4.1.0\u003c/a\u003e and \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v4.1.1\"\u003ev4.1.1\u003c/a\u003e for details. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd an opt-in modebar button for downloading Plotly figures as JSON [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7990\"\u003e#7990\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8022\"\u003e#8022\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elegend.groupdoubleclick\u003c/code\u003e to set the group behavior for a legend double-click [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7997\"\u003e#7997\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eIncrease default double-click delay threshold to 500ms (from 300) [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8014\"\u003e#8014\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix issue with per-point marker color for hover labels in \u003ccode\u003escattergl\u003c/code\u003e, \u003ccode\u003equiver\u003c/code\u003e traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8027\"\u003e#8027\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003emaplibre-gl\u003c/code\u003e to v6 to address \u003ca href=\"https://github.com/advisories/GHSA-jrc7-96c5-q579\"\u003eCVE-2026-85061\u003c/a\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/8035\"\u003e#8035\u003c/a\u003e]\n\u003cul\u003e\n\u003cli\u003eNote: Safari 15, Chrome 56, Firefox 51 and later are now required for map traces\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehex_to_rgb\u003c/code\u003e function to raise error for invalid-length hex codes, and emit warning for hex codes containing alpha [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5729\"\u003e#5729\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/dylanpulver\"\u003e\u003ccode\u003e@​dylanpulver\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/243bfd0fa5c0a5c29a185e4034a1ab5b111695a5\"\u003e\u003ccode\u003e243bfd0\u003c/code\u003e\u003c/a\u003e version changes for v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/9b3c4da66c48b016dc443820a3cd9d84af7c9a38\"\u003e\u003ccode\u003e9b3c4da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5729\"\u003e#5729\u003c/a\u003e from dylanpulver/hex-to-rgb-rejects-invalid-length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/3aa898ccd6bbb7ee1388b4a1a7c90105bec9b86a\"\u003e\u003ccode\u003e3aa898c\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into hex-to-rgb-rejects-invalid-length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/a93dcc05ca3262524331da25a5f9a55aae86e4fe\"\u003e\u003ccode\u003ea93dcc0\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/7c85d48e0b3cd4ced88fcd44bc0770388f1c501c\"\u003e\u003ccode\u003e7c85d48\u003c/code\u003e\u003c/a\u003e add test for hex_to_rgb 4- and 8-character hex codes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/80a94ecef7c18e35097883655cddb83b3beb2c9d\"\u003e\u003ccode\u003e80a94ec\u003c/code\u003e\u003c/a\u003e accept 4- and 8- character hex codes with a warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/ac78b8b6feb6671b3b909f609339361ad71c402f\"\u003e\u003ccode\u003eac78b8b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5726\"\u003e#5726\u003c/a\u003e from Belagum/px-unsigned-int-continuous\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/1cf77560b87a133440a135704b316fcac9586019\"\u003e\u003ccode\u003e1cf7756\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into px-unsigned-int-continuous\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/ec79917a26141845404c2f2d3ebb04920e58943c\"\u003e\u003ccode\u003eec79917\u003c/code\u003e\u003c/a\u003e add attribution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/ac7bc283145cc4035b3470b2de0dec4c7f639216\"\u003e\u003ccode\u003eac7bc28\u003c/code\u003e\u003c/a\u003e edit changelog entry\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/plotly/plotly.py/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `streamlit` from 1.63.0 to 1.64.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/streamlit/streamlit/releases\"\u003estreamlit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.64.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eNew Features 🎉\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[feature] Add \u003ccode\u003eon_change=\u0026quot;ignore\u0026quot;\u003c/code\u003e mode to st.number_input by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16649\"\u003estreamlit/streamlit#16649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Support asyncio.get_event_loop() in scripts by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16167\"\u003estreamlit/streamlit#16167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add live parameter to st.text_input by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16662\"\u003estreamlit/streamlit#16662\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add st.echarts_chart for native Apache ECharts support by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16785\"\u003estreamlit/streamlit#16785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Async-aware st.cache_data and st.cache_resource by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16168\"\u003estreamlit/streamlit#16168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add \u003ccode\u003eon_change=\u0026quot;ignore\u0026quot;\u003c/code\u003e mode to st.select_slider by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16776\"\u003estreamlit/streamlit#16776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add \u003ccode\u003eon_change=\u0026quot;ignore\u0026quot;\u003c/code\u003e mode to st.selectbox by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16862\"\u003estreamlit/streamlit#16862\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Keep widget values after body-level st.rerun by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16762\"\u003estreamlit/streamlit#16762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Remove expired mapbox.token config option by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16774\"\u003estreamlit/streamlit#16774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Delay button help tooltips on hover by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16794\"\u003estreamlit/streamlit#16794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Prevent duplicate Altair bind widgets with on_select by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16809\"\u003estreamlit/streamlit#16809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Theme Altair parameter-binding widgets by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16813\"\u003estreamlit/streamlit#16813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Register deck.gl layer extensions in pydeck by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16823\"\u003estreamlit/streamlit#16823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Honor pydeck views in st.pydeck_chart by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16819\"\u003estreamlit/streamlit#16819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Encode download filenames unsafe in a quoted header by \u003ca href=\"https://github.com/sfc-gh-dbyttow\"\u003e\u003ccode\u003e@​sfc-gh-dbyttow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16646\"\u003estreamlit/streamlit#16646\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Skip no-op query-param history entries by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16831\"\u003estreamlit/streamlit#16831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Expose st.radio captions as option descriptions by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16811\"\u003estreamlit/streamlit#16811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Parse unknown AppTest proto subtypes by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16835\"\u003estreamlit/streamlit#16835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Raise AppTestError for unsupported AppTest interactions by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16837\"\u003estreamlit/streamlit#16837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Increase Vega-Lite legend title padding by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16818\"\u003estreamlit/streamlit#16818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Stop dropping in-flight Custom Components v2 triggers by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16833\"\u003estreamlit/streamlit#16833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Stringify list columns PyArrow cannot serialize by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16838\"\u003estreamlit/streamlit#16838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Keep elements stale while a stop is pending by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16839\"\u003estreamlit/streamlit#16839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Install skills where Claude Code will find them by \u003ca href=\"https://github.com/sfc-gh-nbellante\"\u003e\u003ccode\u003e@​sfc-gh-nbellante\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16394\"\u003estreamlit/streamlit#16394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Preserve empty AppTest chat input and ChatInputValue repr by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16857\"\u003estreamlit/streamlit#16857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Reject async cache_resource lifecycle callbacks by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16860\"\u003estreamlit/streamlit#16860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Render Altair mark_geoshape charts by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16886\"\u003estreamlit/streamlit#16886\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Hide Streamlit internals from UI traces by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16718\"\u003estreamlit/streamlit#16718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Swap reversed st.slider min/max bounds by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16716\"\u003estreamlit/streamlit#16716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Reject inverted st.number_input min/max bounds by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16895\"\u003estreamlit/streamlit#16895\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Improve nested url_path error message by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16896\"\u003estreamlit/streamlit#16896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Add dict methods to AppTest.session_state by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16897\"\u003estreamlit/streamlit#16897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Close leftover dialogs on full-app rerun by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16901\"\u003estreamlit/streamlit#16901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Classify invalid icon= values more precisely by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16900\"\u003estreamlit/streamlit#16900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Add AppTest proto-variant parse smoke tests by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16911\"\u003estreamlit/streamlit#16911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Reject unsupported on_change modes by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16889\"\u003estreamlit/streamlit#16889\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Prevent callback rerun coalescing races by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16765\"\u003estreamlit/streamlit#16765\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[chore] Release v1.63.0 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16764\"\u003estreamlit/streamlit#16764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Fix chartCategoricalColors and Graphviz docs by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16815\"\u003estreamlit/streamlit#16815\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[chore] Update emojis/material icons by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16753\"\u003estreamlit/streamlit#16753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump plotly.js from 3.7.0 to 4.0.0 in /frontend in the plotly group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16740\"\u003estreamlit/streamlit#16740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Discourage custom HTML in markdown docs by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16830\"\u003estreamlit/streamlit#16830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[chore] Update emojis/material icons by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16867\"\u003estreamlit/streamlit#16867\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/bab1da98cadfc6d35e0a7c3cd2cc0bb3a01555d5\"\u003e\u003ccode\u003ebab1da9\u003c/code\u003e\u003c/a\u003e Up version to 1.64.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/a1df3bdb2076081025a2901f8aeff47eb1d5212a\"\u003e\u003ccode\u003ea1df3bd\u003c/code\u003e\u003c/a\u003e Exclude Emscripten from development lock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/3d6c65cc17431b32753e6ecb67651d208fc194ea\"\u003e\u003ccode\u003e3d6c65c\u003c/code\u003e\u003c/a\u003e [chore] Enable string and index oxlint rules (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16923\"\u003e#16923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/81d08baf6966cce4b2147e8a89d24569e54883fe\"\u003e\u003ccode\u003e81d08ba\u003c/code\u003e\u003c/a\u003e [chore] Note downstream uv compatibility (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16919\"\u003e#16919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/a828f9b99df9e880a1f41bb02b8d383673f5c0a0\"\u003e\u003ccode\u003ea828f9b\u003c/code\u003e\u003c/a\u003e [chore] Add typing tests for st.chat_message (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16905\"\u003e#16905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/6109f88c6eca60f8ca4bcd85b48e6c3d46be95cf\"\u003e\u003ccode\u003e6109f88\u003c/code\u003e\u003c/a\u003e Bump the frontend-minor-patch group in /frontend with 2 updates (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16918\"\u003e#16918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/e952b34bd8c756d1b7fea2d7b01139bfa6421ae4\"\u003e\u003ccode\u003ee952b34\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​swc/plugin-emotion\u003c/code\u003e from 15.0.0 to 16.0.0 in /frontend in the vite group...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/786c5a6da3f6fdab651c89cc46c98442fc395dca\"\u003e\u003ccode\u003e786c5a6\u003c/code\u003e\u003c/a\u003e Bump vitest-canvas-mock from 1.1.5 to 1.2.0 in /frontend in the vitest group ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/1e3b386c1c79722583c7354150163404f5d4d7f0\"\u003e\u003ccode\u003e1e3b386\u003c/code\u003e\u003c/a\u003e Bump eslint from 10.9.1 to 10.10.0 in /frontend in the eslint group (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16915\"\u003e#16915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/24f75d8d8dc83c8b0af41c363a5faf15cf43240a\"\u003e\u003ccode\u003e24f75d8\u003c/code\u003e\u003c/a\u003e [fix] Prevent callback rerun coalescing races (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16765\"\u003e#16765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/streamlit/streamlit/compare/1.63.0...1.64.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jupyterlab` from 4.6.3 to 4.6.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyterlab/jupyterlab/releases\"\u003ejupyterlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.6.4\u003c/h2\u003e\n\u003ch2\u003e4.6.4\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.6.3...1f9dbe334e7d21e4855c9a32c7cd642544ac20c4\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eSecurity fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGHSA-3325-v43h-43rv - moderate\u003c/li\u003e\n\u003cli\u003eGHSA-6966-vjj6-99xv - high\u003c/li\u003e\n\u003cli\u003eGHSA-jwrc-gm9j-263p - moderate\u003c/li\u003e\n\u003cli\u003eGHSA-3jqq-pw4j-pqcj - moderate\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBackport of security patches on 4.6.x branch \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19793\"\u003e#19793\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/MUFFANUJ\"\u003e\u003ccode\u003e@​MUFFANUJ\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache and throttle path resolution to avoid requests storm \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19726\"\u003e#19726\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix race when starting the search - keep correct filter \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19765\"\u003e#19765\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PyPI extension manager \u003ccode\u003epackage.json\u003c/code\u003e inspection for \u003ccode\u003etar.gz\u003c/code\u003e archives \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19613\"\u003e#19613\u003c/a\u003e (\u003ca href=\"https://github.com/MUFFANUJ\"\u003e\u003ccode\u003e@​MUFFANUJ\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix resizing optimization for larger notebooks \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19620\"\u003e#19620\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve kernelspec metadata when spec is unavailable \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19247\"\u003e#19247\u003c/a\u003e (\u003ca href=\"https://github.com/tomatotomata\"\u003e\u003ccode\u003e@​tomatotomata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix respecting \u003ccode\u003ecommsOverSubshells\u003c/code\u003e option in \u003ccode\u003econnectTo()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19734\"\u003e#19734\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eShow context actions for all images, not only SVGs \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19618\"\u003e#19618\u003c/a\u003e (\u003ca href=\"https://github.com/fly1d\"\u003e\u003ccode\u003e@​fly1d\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSave sidebar section expansion state from the hidden flag \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19415\"\u003e#19415\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix memory leak when Property Inspector is open and other issues exposed by new linter rules \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19318\"\u003e#19318\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate links to \u003ccode\u003ejupyter-ydoc\u003c/code\u003e API after docs pages moved \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19790\"\u003e#19790\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: align Yarn cache configuration \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19737\"\u003e#19737\u003c/a\u003e (\u003ca href=\"https://github.com/zihjiang\"\u003e\u003ccode\u003e@​zihjiang\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse Galata filebrowser helpers in tests \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19645\"\u003e#19645\u003c/a\u003e (\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable subshell usage in comm example \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19725\"\u003e#19725\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pin to old ipykernel v7 pre-release in UI tests \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19672\"\u003e#19672\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Altair snapshot \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19488\"\u003e#19488\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eui-test-report-comment\u003c/code\u003e action from \u003ccode\u003emaintainer-tools\u003c/code\u003e \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19290\"\u003e#19290\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBackport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/19307\"\u003e#19307\u003c/a\u003e: Update \u003ccode\u003e@jupyter/eslint-plugin\u003c/code\u003e to v1.1, adopt ne… \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19315\"\u003e#19315\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate the copyright year to 2026 \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19308\"\u003e#19308\u003c/a\u003e (\u003ca href=\"https://github.com/JussiRoos\"\u003e\u003ccode\u003e@​JussiRoos\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the IPython display link in the json-extension README \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19732\"\u003e#19732\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate announcement banner to point to jupyter-wide announcement banner \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/19189\"\u003e#19189\u003c/a\u003e (\u003ca href=\"https://github.com/jasongrout\"\u003e\u003ccode\u003e@​jasongrout\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2026-08-10\u0026amp;to=2026-09-21\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ADarshan808+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/fly1d\"\u003e\u003ccode\u003e@​fly1d\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Afly1d+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/jasongrout\"\u003e\u003ccode\u003e@​jasongrout\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajasongrout+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/JussiRoos\"\u003e\u003ccode\u003e@​JussiRoos\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AJussiRoos+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/MUFFANUJ\"\u003e\u003ccode\u003e@​MUFFANUJ\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AMUFFANUJ+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/tomatotomata\"\u003e\u003ccode\u003e@​tomatotomata\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Atomatotomata+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/zihjiang\"\u003e\u003ccode\u003e@​zihjiang\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Azihjiang+updated%3A2026-08-10..2026-09-21\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/384bff3af6598b3a6348df58fe34450914b49c41\"\u003e\u003ccode\u003e384bff3\u003c/code\u003e\u003c/a\u003e [ci skip] Publish 4.6.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/1f9dbe334e7d21e4855c9a32c7cd642544ac20c4\"\u003e\u003ccode\u003e1f9dbe3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/19793\"\u003e#19793\u003c/a\u003e from krassowski/security-patches-4.6.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/de324ae91346c713c4f5e5485f97b6e914e0f774\"\u003e\u003ccode\u003ede324ae\u003c/code\u003e\u003c/a\u003e Fix for GHSA-3jqq-pw4j-pqcj\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/f7e5f9803fdf2aaaa0e9bfb9cc73386a8cc5f0b2\"\u003e\u003ccode\u003ef7e5f98\u003c/code\u003e\u003c/a\u003e Fix for GHSA-jwrc-gm9j-263p\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/cf6e89a8d315c4134cefa50c220bca296da466a7\"\u003e\u003ccode\u003ecf6e89a\u003c/code\u003e\u003c/a\u003e Fix for GHSA-6966-vjj6-99xv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/e277bc958e737130ac47b6c5078d08b29298828f\"\u003e\u003ccode\u003ee277bc9\u003c/code\u003e\u003c/a\u003e Fix for GHSA-3325-v43h-43rv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/cd569945bc976caaf0018365fe1947f4f69db9e2\"\u003e\u003ccode\u003ecd56994\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/19790\"\u003e#19790\u003c/a\u003e on branch 4.6.x (Update links to \u003ccode\u003ejupyter-ydoc\u003c/code\u003e API after ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/bbadd0225a351ffcaa01dcbe7a5d9a364d244150\"\u003e\u003ccode\u003ebbadd02\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/19726\"\u003e#19726\u003c/a\u003e on branch 4.6.x (Cache and throttle path resolution to avo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/4ccae660976c055d4e2a3f44b1c5fa86e6416ac4\"\u003e\u003ccode\u003e4ccae66\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/19765\"\u003e#19765\u003c/a\u003e on branch 4.6.x (Fix race when starting the search - keep ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/6c0f66433831a889e29fa87639315be1f2f57b6d\"\u003e\u003ccode\u003e6c0f664\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/19737\"\u003e#19737\u003c/a\u003e on branch 4.6.x (CI: align Yarn cache configuration) (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/19766\"\u003e#19766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/@jupyterlab/lsp@4.6.3...@jupyterlab/lsp@4.6.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas-stubs` from 3.0.5.260730 to 3.0.5.260914\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/6ad02bec34404b639f63af97265a6b2945a26539\"\u003e\u003ccode\u003e6ad02be\u003c/code\u003e\u003c/a\u003e Version 3.0.5.260914\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/553375820a70b95446ef45efb300aec166f3e52d\"\u003e\u003ccode\u003e5533758\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epyrefly\u003c/code\u003e version (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1945\"\u003e#1945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/711cf2f7eedaee369812d293a9cc83a08432096b\"\u003e\u003ccode\u003e711cf2f\u003c/code\u003e\u003c/a\u003e BLD: temporarily pin pyright to 1.1.411 (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1942\"\u003e#1942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/507243e3c1c1f0a6d92b5c409684fd691e2d6980\"\u003e\u003ccode\u003e507243e\u003c/code\u003e\u003c/a\u003e TST: nightly expect \u003ccode\u003ePandas4Warning\u003c/code\u003e for \u003ccode\u003eSeries.drop\u003c/code\u003e/\u003ccode\u003erename\u003c/code\u003e \u003ccode\u003einplace\u003c/code\u003e and...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/a09e2ed4b2f2de525f61c686f842102850422051\"\u003e\u003ccode\u003ea09e2ed\u003c/code\u003e\u003c/a\u003e TYP: align Index subtraction overloads (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1938\"\u003e#1938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/156be75b11f0b8d7be7e9b726d65c1282b1a4148\"\u003e\u003ccode\u003e156be75\u003c/code\u003e\u003c/a\u003e TST: add focused Period scalar subtraction tests (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1936\"\u003e#1936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/6b84c3ac180df555d37d69faa342eb67adb842a4\"\u003e\u003ccode\u003e6b84c3a\u003c/code\u003e\u003c/a\u003e CLN: load tests._typing from pandas-stubs/_typing.pyi without file swap (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1930\"\u003e#1930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/14f8185430ee78528eacb693df151c963cc69d0b\"\u003e\u003ccode\u003e14f8185\u003c/code\u003e\u003c/a\u003e TST: add focused Period scalar addition tests (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1933\"\u003e#1933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/0a77a3a4420399eb21a327de924d8897dda0844b\"\u003e\u003ccode\u003e0a77a3a\u003c/code\u003e\u003c/a\u003e TYP: move stub-only helper types to _stubs_only (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1935\"\u003e#1935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/a3824373b6f3c8ce5a3f2185e64f6eea98fb03ae\"\u003e\u003ccode\u003ea382437\u003c/code\u003e\u003c/a\u003e TYP: update stubs for ty 0.0.76 (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1932\"\u003e#1932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas-stubs/compare/v3.0.5.260730...v3.0.5.260914\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.16.6 to 0.16.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.9\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positives for overloaded division (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28309\"\u003e#28309\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Avoid false positives for calls with keyword arguments (\u003ccode\u003eB009\u003c/code\u003e, \u003ccode\u003eB010\u003c/code\u003e, \u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28776\"\u003e#28776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow lazy imports to be used in deferred annotations (\u003ccode\u003eTID255\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28767\"\u003e#28767\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LibCST-based fixes for Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28616\"\u003e#28616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Mention stubs in the diagnostic message (\u003ccode\u003ePYI002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28542\"\u003e#28542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix horizontal overflow on the rules documentation page (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28699\"\u003e#28699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate rules table with category information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28651\"\u003e#28651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Clarify that \u003ccode\u003eANN401\u003c/code\u003e checks return types in addition to arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28334\"\u003e#28334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Document type-checker interaction (\u003ccode\u003eB010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28509\"\u003e#28509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27794\"\u003e#27794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Mention related isort settings (\u003ccode\u003eRUF022\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28719\"\u003e#28719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qinpei-dev\"\u003e\u003ccode\u003e@​qinpei-dev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanjayrohith\"\u003e\u003ccode\u003e@​sanjayrohith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webdevsamran\"\u003e\u003ccode\u003e@​webdevsamran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaniebot\"\u003e\u003ccode\u003e@​zaniebot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spaceone\"\u003e\u003ccode\u003e@​spaceone\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IbrahimKhan12\"\u003e\u003ccode\u003e@​IbrahimKhan12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devtechedge\"\u003e\u003ccode\u003e@​devtechedge\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GruffElixir\"\u003e\u003ccode\u003e@​GruffElixir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.16.9\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.9/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.9\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positives for overloaded division (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28309\"\u003e#28309\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Avoid false positives for calls with keyword arguments (\u003ccode\u003eB009\u003c/code\u003e, \u003ccode\u003eB010\u003c/code\u003e, \u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28776\"\u003e#28776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow lazy imports to be used in deferred annotations (\u003ccode\u003eTID255\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28767\"\u003e#28767\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LibCST-based fixes for Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28616\"\u003e#28616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Mention stubs in the diagnostic message (\u003ccode\u003ePYI002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28542\"\u003e#28542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix horizontal overflow on the rules documentation page (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28699\"\u003e#28699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate rules table with category information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28651\"\u003e#28651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Clarify that \u003ccode\u003eANN401\u003c/code\u003e checks return types in addition to arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28334\"\u003e#28334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Document type-checker interaction (\u003ccode\u003eB010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28509\"\u003e#28509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27794\"\u003e#27794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Mention related isort settings (\u003ccode\u003eRUF022\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28719\"\u003e#28719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qinpei-dev\"\u003e\u003ccode\u003e@​qinpei-dev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanjayrohith\"\u003e\u003ccode\u003e@​sanjayrohith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webdevsamran\"\u003e\u003ccode\u003e@​webdevsamran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaniebot\"\u003e\u003ccode\u003e@​zaniebot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spaceone\"\u003e\u003ccode\u003e@​spaceone\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IbrahimKhan12\"\u003e\u003ccode\u003e@​IbrahimKhan12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devtechedge\"\u003e\u003ccode\u003e@​devtechedge\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GruffElixir\"\u003e\u003ccode\u003e@​GruffElixir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.16.8\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-16.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVisit functional \u003ccode\u003eTypedDict\u003c/code\u003e keyword arguments correctly (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28584\"\u003e#28584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Detect nested \u003ccode\u003easync with\u003c/code\u003e under sync parent (\u003ccode\u003eSIM117\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27821\"\u003e#27821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve operand order in \u003ccode\u003eSIM109\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27824\"\u003e#27824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0be08a206f9c3180afd3e93bcc792ed5cb1f4db1\"\u003e\u003ccode\u003e0be08a2\u003c/code\u003e\u003c/a\u003e Bump version to 0.16.9 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28882\"\u003e#28882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b4920b72b354e7c715ab861ae23458874683bb02\"\u003e\u003ccode\u003eb4920b7\u003c/code\u003e\u003c/a\u003e Rename \u003ccode\u003eruff_cli\u003c/code\u003e to \u003ccode\u003eruff_command_line\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28881\"\u003e#28881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/47c751b95908a4d1f95f9ef8723036aae9da0b18\"\u003e\u003ccode\u003e47c751b\u003c/code\u003e\u003c/a\u003e Update dependency astral-sh/uv to v0.12.18 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28880\"\u003e#28880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8c244e56a1aeac31c26d2371ef26588e0632235c\"\u003e\u003ccode\u003e8c244e5\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5edf5a1d0a84663079e46983216059f06acea87d\"\u003e\u003ccode\u003e5edf5a1\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003etarget\u003c/code\u003e form in \u003ccode\u003erooster.version_files\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28876\"\u003e#28876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/915bb2b4bf9ae7eee47cf55646bbfebae254a23b\"\u003e\u003ccode\u003e915bb2b\u003c/code\u003e\u003c/a\u003e [ty] Prefer existing @ paths over response files in Ruff and ty (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28877\"\u003e#28877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4710e1aa962b13720cf64aa84eb279c5333896d7\"\u003e\u003ccode\u003e4710e1a\u003c/code\u003e\u003c/a\u003e ci(github): update version number in placeholder of issue template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28871\"\u003e#28871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eedfc62a75bf1ba86d48959b00eea75ae87eadca\"\u003e\u003ccode\u003eeedfc62\u003c/code\u003e\u003c/a\u003e [ty] Propagate outer type context through cast calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28855\"\u003e#28855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ceaa6a00830e1e350b8a23977a1a10ac467920a1\"\u003e\u003ccode\u003eceaa6a0\u003c/code\u003e\u003c/a\u003e [ty] Contain rendered code within Markdown fences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28869\"\u003e#28869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dba0f30615424b94f94a174bba6ce6cce4bf11ff\"\u003e\u003ccode\u003edba0f30\u003c/code\u003e\u003c/a\u003e authorize ruff-pre-commit dispatch via OIDC (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28867\"\u003e#28867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.16.6...0.16.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.78 to 0.0.84\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.84\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003cp\u003eThis release addresses \u003ca href=\"https://github.com/astral-sh/ty/security/advisories/GHSA-vxvm-j4xq-q7m4\"\u003eGHSA-vxvm-j4xq-q7m4\u003c/a\u003e, a use-after-free vulnerability during incremental type checking that can result in arbitrary code execution when analyzing a specially crafted Python project. Users who run ty on untrusted code should upgrade to 0.0.84 or newer.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix stale diagnostics from the LSP server after toggling \u003ccode\u003eshowSyntaxErrors\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28759\"\u003e#28759\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete string keys from dictionary initializers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28820\"\u003e#28820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport LSP requests against closed documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28595\"\u003e#28595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSelect projects for external files using import search paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28594\"\u003e#28594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse workspace editor settings for external files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28639\"\u003e#28639\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid repeated subtyping checks for materialized recursive protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28774\"\u003e#28774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip reading notebooks when discovering scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28781\"\u003e#28781\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid incorrect simplification of \u003ccode\u003eTypeIs\u003c/code\u003e materializations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28817\"\u003e#28817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix disjointness of generic class types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28787\"\u003e#28787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix staticmethod shadowing through generic receivers and unions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28766\"\u003e#28766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer callable signatures from bounded type variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28599\"\u003e#28599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer constant membership in inline list and set literals (e.g. \u003ccode\u003e\u0026quot;foo\u0026quot; in [\u0026quot;foo\u0026quot;]\u003c/code\u003e is now inferred as \u003ccode\u003eLiteral[True]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28676\"\u003e#28676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer through optional generic containers in the legacy solver (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28791\"\u003e#28791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve call narrowing during cyclic inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28708\"\u003e#28708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve intersections of type guard return types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28796\"\u003e#28796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse subtyping for constraint-set implication (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28657\"\u003e#28657\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable \u003ccode\u003einvalid-legacy-positional-parameter\u003c/code\u003e by default (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28834\"\u003e#28834\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOnly consider reachable definitions when determining whether a condition should be exempted from \u003ccode\u003eredundant-condition(-strict)\u003c/code\u003e due to the condition being defined relative to \u003ccode\u003esys.version_info\u003c/code\u003e, \u003ccode\u003esys.platform\u003c/code\u003e, \u003ccode\u003eos.name\u003c/code\u003e or \u003ccode\u003etyping.TYPE_CHECKING\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28788\"\u003e#28788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibraheemdev\"\u003e\u003ccode\u003e@​ibraheemdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.84\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003cp\u003eThis release addresses \u003ca href=\"https://github.com/astral-sh/ty/security/advisories/GHSA-vxvm-j4xq-q7m4\"\u003eGHSA-vxvm-j4xq-q7m4\u003c/a\u003e, a use-after-free vulnerability during incremental type checking that can result in arbitrary code execution when analyzing a specially crafted Python project. Users who run ty on untrusted code should upgrade to 0.0.84 or newer.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix stale diagnostics from the LSP server after toggling \u003ccode\u003eshowSyntaxErrors\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28759\"\u003e#28759\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete string keys from dictionary initializers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28820\"\u003e#28820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport LSP requests against closed documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28595\"\u003e#28595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSelect projects for external files using import search paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28594\"\u003e#28594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse workspace editor settings for external files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28639\"\u003e#28639\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid repeated subtyping checks for materialized recursive protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28774\"\u003e#28774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip reading notebooks when discovering scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28781\"\u003e#28781\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid incorrect simplification of \u003ccode\u003eTypeIs\u003c/code\u003e materializations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28817\"\u003e#28817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix disjointness of generic class types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28787\"\u003e#28787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix staticmethod shadowing through generic receivers and unions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28766\"\u003e#28766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer callable signatures from bounded type variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28599\"\u003e#28599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer constant membership in inline list and set literals (e.g. \u003ccode\u003e\u0026quot;foo\u0026quot; in [\u0026quot;foo\u0026quot;]\u003c/code\u003e is now inferred as \u003ccode\u003eLiteral[True]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28676\"\u003e#28676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer through optional generic containers in the legacy solver (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28791\"\u003e#28791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve call narrowing during cyclic inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28708\"\u003e#28708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve intersections of type guard return types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28796\"\u003e#28796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse subtyping for constraint-set implication (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28657\"\u003e#28657\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable \u003ccode\u003einvalid-legacy-positional-parameter\u003c/code\u003e by default (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28834\"\u003e#28834\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOnly consider reachable definitions when determining whether a condition should be exempted from \u003ccode\u003eredundant-condition(-strict)\u003c/code\u003e due to the condition being defined relative to \u003ccode\u003esys.version_info\u003c/code\u003e, \u003ccode\u003esys.platform\u003c/code\u003e, \u003ccode\u003eos.name\u003c/code\u003e or \u003ccode\u003etyping.TYPE_CHECKING\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28788\"\u003e#28788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibraheemdev\"\u003e\u003ccode\u003e@​ibraheemdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/8dd9a7f7fa35a18275d82117e6593ba45507065f\"\u003e\u003ccode\u003e8dd9a7f\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.84 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4585\"\u003e#4585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/d4e4bf90906c7677049bc3a29d1735de7d22052d\"\u003e\u003ccode\u003ed4e4bf9\u003c/code\u003e\u003c/a\u003e publish to astral-sh/versions via OIDC (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4581\"\u003e#4581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/94ce7333abb356b2068dc98d37a68c993da6d09b\"\u003e\u003ccode\u003e94ce733\u003c/code\u003e\u003c/a\u003e use oidc issued token for docs publication (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4579\"\u003e#4579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/901eeaa9cd9ac06f34e85e4f721f76a0dc36e217\"\u003e\u003ccode\u003e901eeaa\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4576\"\u003e#4576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/09bf0b1b2114a628f3e2296d3d9d28245066c98b\"\u003e\u003ccode\u003e09bf0b1\u003c/code\u003e\u003c/a\u003e Update docker/setup-buildx-action action to v4.3.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4575\"\u003e#4575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/89d6ffe529dd44f64adc0d28f80744b7c7ab217f\"\u003e\u003ccode\u003e89d6ffe\u003c/code\u003e\u003c/a\u003e Update astral-sh/setup-uv action to v10.2.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4574\"\u003e#4574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/9c214798cfcc59069e986876564638fadf32d774\"\u003e\u003ccode\u003e9c21479\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.83 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4569\"\u003e#4569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/04c69110b391e96310e6892cbed9936c4f31d7aa\"\u003e\u003ccode\u003e04c6911\u003c/code\u003e\u003c/a\u003e Sync the ty security mirror (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4549\"\u003e#4549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/3fa57a25767c619dbeba697c2acfbb8eb291519a\"\u003e\u003ccode\u003e3fa57a2\u003c/code\u003e\u003c/a\u003e Grant the versions workflow repository read access (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4550\"\u003e#4550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/a15b35389b44db57f718fd4e19e093481747c53e\"\u003e\u003ccode\u003ea15b353\u003c/code\u003e\u003c/a\u003e use scoped token for release workflow (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4506\"\u003e#4506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.78...0.0.84\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.52.4 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.54.0\u003c/h2\u003e\n\u003ch2\u003e📨 Send metadata after the response body\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.54.0 adds response trailers and \u003ccode\u003e103 Early Hints\u003c/code\u003e to its experimental HTTP/2 implementation through \u003ccode\u003ezttp\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.54.0 \u0026quot;zttp\u0026gt;=0.0.34\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend HTTP/2 response trailers\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e). The ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension lets applications send metadata, such as checksums, after the response body. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them. Multiple trailer messages are combined before completing the response.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental and opt-in.\u003c/strong\u003e Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Upgrade-based h2c and WebSockets over HTTP/2 remain unsupported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e💡 Hint at resources before the final response\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend \u003ccode\u003e103 Early ...\n\n_Description has been truncated_","html_url":"https://github.com/AndreWohnsland/CocktailBerry-Stats/pull/29","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreWohnsland%2FCocktailBerry-Stats/issues/29","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/29/packages"}},{"old_version":"2.0.3","new_version":"3.0.6","update_type":"major","path":null,"pr_created_at":"2026-10-01T14:18:15.000Z","version_change":"2.0.3 → 3.0.6","issue":{"uuid":"5663669743","node_id":"PR_kwDOOJLBp88AAAABGG9pyA","number":2731,"state":"closed","title":"build(deps): Bump pandas from 2.0.3 to 3.0.6","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-10-03T09:03:17.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-01T14:18:15.000Z","updated_at":"2026-10-03T09:03:25.000Z","time_to_close":153902,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","packages":[{"name":"pandas","old_version":"2.0.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pandas](https://github.com/pandas-dev/pandas) from 2.0.3 to 3.0.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.0.3...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pandas\u0026package-manager=pip\u0026previous-version=2.0.3\u0026new-version=3.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Ikey168/Noesis/pull/2731","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ikey168%2FNoesis/issues/2731","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2731/packages"}},{"old_version":"\u003c4,\u003e=2.2","new_version":"\u003e=3.0.6,\u003c4","update_type":null,"path":null,"pr_created_at":"2026-10-01T09:36:10.000Z","version_change":"\u003c4,\u003e=2.2 → \u003e=3.0.6,\u003c4","issue":{"uuid":"5660096249","node_id":"PR_kwDOTZZgEs8AAAABGEGTJg","number":183,"state":"open","title":"chore(deps): update pandas requirement from \u003c4,\u003e=2.2 to \u003e=3.0.6,\u003c4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-01T09:36:10.000Z","updated_at":"2026-10-01T09:37:13.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): update","packages":[{"name":"pandas","old_version":"\u003c4,\u003e=2.2","new_version":"\u003e=3.0.6,\u003c4","repository_url":"https://github.com/pandas-dev/pandas"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pandas](https://github.com/pandas-dev/pandas) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.2.0...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/sharp-signals/Tennis/pull/183","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sharp-signals%2FTennis/issues/183","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/183/packages"}},{"old_version":"3.0.5","new_version":"3.0.6","update_type":"patch","path":null,"pr_created_at":"2026-10-01T06:41:23.000Z","version_change":"3.0.5 → 3.0.6","issue":{"uuid":"5658101236","node_id":"PR_kwDORFdqbc8AAAABGCgtnQ","number":287,"state":"open","title":"build(deps): bump the all-dependencies group with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-01T06:41:23.000Z","updated_at":"2026-10-01T06:42:28.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"all-dependencies","update_count":3,"packages":[{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"ruff","old_version":"0.16.5","new_version":"0.16.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pandas-stubs","old_version":"3.0.5.260730","new_version":"3.0.5.260914","repository_url":"https://github.com/pandas-dev/pandas-stubs"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 3 updates: [pandas](https://github.com/pandas-dev/pandas), [ruff](https://github.com/astral-sh/ruff) and [pandas-stubs](https://github.com/pandas-dev/pandas-stubs).\n\nUpdates `pandas` from 3.0.5 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.5...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.16.5 to 0.16.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.9\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positives for overloaded division (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28309\"\u003e#28309\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Avoid false positives for calls with keyword arguments (\u003ccode\u003eB009\u003c/code\u003e, \u003ccode\u003eB010\u003c/code\u003e, \u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28776\"\u003e#28776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow lazy imports to be used in deferred annotations (\u003ccode\u003eTID255\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28767\"\u003e#28767\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LibCST-based fixes for Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28616\"\u003e#28616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Mention stubs in the diagnostic message (\u003ccode\u003ePYI002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28542\"\u003e#28542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix horizontal overflow on the rules documentation page (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28699\"\u003e#28699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate rules table with category information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28651\"\u003e#28651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Clarify that \u003ccode\u003eANN401\u003c/code\u003e checks return types in addition to arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28334\"\u003e#28334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Document type-checker interaction (\u003ccode\u003eB010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28509\"\u003e#28509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27794\"\u003e#27794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Mention related isort settings (\u003ccode\u003eRUF022\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28719\"\u003e#28719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qinpei-dev\"\u003e\u003ccode\u003e@​qinpei-dev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanjayrohith\"\u003e\u003ccode\u003e@​sanjayrohith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webdevsamran\"\u003e\u003ccode\u003e@​webdevsamran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaniebot\"\u003e\u003ccode\u003e@​zaniebot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spaceone\"\u003e\u003ccode\u003e@​spaceone\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IbrahimKhan12\"\u003e\u003ccode\u003e@​IbrahimKhan12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devtechedge\"\u003e\u003ccode\u003e@​devtechedge\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GruffElixir\"\u003e\u003ccode\u003e@​GruffElixir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.16.9\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.9/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.9\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positives for overloaded division (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28309\"\u003e#28309\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Avoid false positives for calls with keyword arguments (\u003ccode\u003eB009\u003c/code\u003e, \u003ccode\u003eB010\u003c/code\u003e, \u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28776\"\u003e#28776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow lazy imports to be used in deferred annotations (\u003ccode\u003eTID255\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28767\"\u003e#28767\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LibCST-based fixes for Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28616\"\u003e#28616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Mention stubs in the diagnostic message (\u003ccode\u003ePYI002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28542\"\u003e#28542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix horizontal overflow on the rules documentation page (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28699\"\u003e#28699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate rules table with category information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28651\"\u003e#28651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Clarify that \u003ccode\u003eANN401\u003c/code\u003e checks return types in addition to arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28334\"\u003e#28334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Document type-checker interaction (\u003ccode\u003eB010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28509\"\u003e#28509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27794\"\u003e#27794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Mention related isort settings (\u003ccode\u003eRUF022\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28719\"\u003e#28719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qinpei-dev\"\u003e\u003ccode\u003e@​qinpei-dev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanjayrohith\"\u003e\u003ccode\u003e@​sanjayrohith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webdevsamran\"\u003e\u003ccode\u003e@​webdevsamran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaniebot\"\u003e\u003ccode\u003e@​zaniebot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spaceone\"\u003e\u003ccode\u003e@​spaceone\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IbrahimKhan12\"\u003e\u003ccode\u003e@​IbrahimKhan12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devtechedge\"\u003e\u003ccode\u003e@​devtechedge\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GruffElixir\"\u003e\u003ccode\u003e@​GruffElixir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.16.8\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-16.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVisit functional \u003ccode\u003eTypedDict\u003c/code\u003e keyword arguments correctly (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28584\"\u003e#28584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Detect nested \u003ccode\u003easync with\u003c/code\u003e under sync parent (\u003ccode\u003eSIM117\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27821\"\u003e#27821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve operand order in \u003ccode\u003eSIM109\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27824\"\u003e#27824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0be08a206f9c3180afd3e93bcc792ed5cb1f4db1\"\u003e\u003ccode\u003e0be08a2\u003c/code\u003e\u003c/a\u003e Bump version to 0.16.9 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28882\"\u003e#28882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b4920b72b354e7c715ab861ae23458874683bb02\"\u003e\u003ccode\u003eb4920b7\u003c/code\u003e\u003c/a\u003e Rename \u003ccode\u003eruff_cli\u003c/code\u003e to \u003ccode\u003eruff_command_line\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28881\"\u003e#28881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/47c751b95908a4d1f95f9ef8723036aae9da0b18\"\u003e\u003ccode\u003e47c751b\u003c/code\u003e\u003c/a\u003e Update dependency astral-sh/uv to v0.12.18 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28880\"\u003e#28880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8c244e56a1aeac31c26d2371ef26588e0632235c\"\u003e\u003ccode\u003e8c244e5\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5edf5a1d0a84663079e46983216059f06acea87d\"\u003e\u003ccode\u003e5edf5a1\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003etarget\u003c/code\u003e form in \u003ccode\u003erooster.version_files\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28876\"\u003e#28876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/915bb2b4bf9ae7eee47cf55646bbfebae254a23b\"\u003e\u003ccode\u003e915bb2b\u003c/code\u003e\u003c/a\u003e [ty] Prefer existing @ paths over response files in Ruff and ty (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28877\"\u003e#28877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4710e1aa962b13720cf64aa84eb279c5333896d7\"\u003e\u003ccode\u003e4710e1a\u003c/code\u003e\u003c/a\u003e ci(github): update version number in placeholder of issue template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28871\"\u003e#28871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eedfc62a75bf1ba86d48959b00eea75ae87eadca\"\u003e\u003ccode\u003eeedfc62\u003c/code\u003e\u003c/a\u003e [ty] Propagate outer type context through cast calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28855\"\u003e#28855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ceaa6a00830e1e350b8a23977a1a10ac467920a1\"\u003e\u003ccode\u003eceaa6a0\u003c/code\u003e\u003c/a\u003e [ty] Contain rendered code within Markdown fences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28869\"\u003e#28869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dba0f30615424b94f94a174bba6ce6cce4bf11ff\"\u003e\u003ccode\u003edba0f30\u003c/code\u003e\u003c/a\u003e authorize ruff-pre-commit dispatch via OIDC (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28867\"\u003e#28867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.16.5...0.16.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas-stubs` from 3.0.5.260730 to 3.0.5.260914\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/6ad02bec34404b639f63af97265a6b2945a26539\"\u003e\u003ccode\u003e6ad02be\u003c/code\u003e\u003c/a\u003e Version 3.0.5.260914\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/553375820a70b95446ef45efb300aec166f3e52d\"\u003e\u003ccode\u003e5533758\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epyrefly\u003c/code\u003e version (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1945\"\u003e#1945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/711cf2f7eedaee369812d293a9cc83a08432096b\"\u003e\u003ccode\u003e711cf2f\u003c/code\u003e\u003c/a\u003e BLD: temporarily pin pyright to 1.1.411 (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1942\"\u003e#1942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/507243e3c1c1f0a6d92b5c409684fd691e2d6980\"\u003e\u003ccode\u003e507243e\u003c/code\u003e\u003c/a\u003e TST: nightly expect \u003ccode\u003ePandas4Warning\u003c/code\u003e for \u003ccode\u003eSeries.drop\u003c/code\u003e/\u003ccode\u003erename\u003c/code\u003e \u003ccode\u003einplace\u003c/code\u003e and...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/a09e2ed4b2f2de525f61c686f842102850422051\"\u003e\u003ccode\u003ea09e2ed\u003c/code\u003e\u003c/a\u003e TYP: align Index subtraction overloads (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1938\"\u003e#1938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/156be75b11f0b8d7be7e9b726d65c1282b1a4148\"\u003e\u003ccode\u003e156be75\u003c/code\u003e\u003c/a\u003e TST: add focused Period scalar subtraction tests (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1936\"\u003e#1936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/6b84c3ac180df555d37d69faa342eb67adb842a4\"\u003e\u003ccode\u003e6b84c3a\u003c/code\u003e\u003c/a\u003e CLN: load tests._typing from pandas-stubs/_typing.pyi without file swap (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1930\"\u003e#1930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/14f8185430ee78528eacb693df151c963cc69d0b\"\u003e\u003ccode\u003e14f8185\u003c/code\u003e\u003c/a\u003e TST: add focused Period scalar addition tests (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1933\"\u003e#1933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/0a77a3a4420399eb21a327de924d8897dda0844b\"\u003e\u003ccode\u003e0a77a3a\u003c/code\u003e\u003c/a\u003e TYP: move stub-only helper types to _stubs_only (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1935\"\u003e#1935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/a3824373b6f3c8ce5a3f2185e64f6eea98fb03ae\"\u003e\u003ccode\u003ea382437\u003c/code\u003e\u003c/a\u003e TYP: update stubs for ty 0.0.76 (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1932\"\u003e#1932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas-stubs/compare/v3.0.5.260730...v3.0.5.260914\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Hermione-Granger-1176/linkedin-analyzer/pull/287","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hermione-Granger-1176%2Flinkedin-analyzer/issues/287","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/287/packages"}},{"old_version":"3.0.3","new_version":"3.0.6","update_type":"patch","path":null,"pr_created_at":"2026-10-01T02:14:38.000Z","version_change":"3.0.3 → 3.0.6","issue":{"uuid":"5655797400","node_id":"PR_kwDOKdDCc88AAAABGArTvA","number":31788,"state":"closed","title":"chore(deps): bump pandas from 3.0.3 to 3.0.6","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-10-01T02:14:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-01T02:14:38.000Z","updated_at":"2026-10-01T02:14:52.000Z","time_to_close":5,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"pandas","old_version":"3.0.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pandas](https://github.com/pandas-dev/pandas) from 3.0.3 to 3.0.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.3...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pandas\u0026package-manager=uv\u0026previous-version=3.0.3\u0026new-version=3.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/open-webui/open-webui/pull/31788","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-webui%2Fopen-webui/issues/31788","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/31788/packages"}},{"old_version":"3.0.3","new_version":"3.0.6","update_type":"patch","path":"/backend","pr_created_at":"2026-10-01T02:05:20.000Z","version_change":"3.0.3 → 3.0.6","issue":{"uuid":"5655714219","node_id":"PR_kwDOKdDCc88AAAABGAnH7Q","number":31669,"state":"closed","title":"chore(deps): bump pandas from 3.0.3 to 3.0.6 in /backend","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-10-01T02:05:24.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-01T02:05:20.000Z","updated_at":"2026-10-01T02:05:33.000Z","time_to_close":4,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"pandas","old_version":"3.0.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [pandas](https://github.com/pandas-dev/pandas) from 3.0.3 to 3.0.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.3...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pandas\u0026package-manager=pip\u0026previous-version=3.0.3\u0026new-version=3.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/open-webui/open-webui/pull/31669","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-webui%2Fopen-webui/issues/31669","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/31669/packages"}},{"old_version":"2.2.3","new_version":"3.0.6","update_type":"major","path":null,"pr_created_at":"2026-09-30T22:52:47.000Z","version_change":"2.2.3 → 3.0.6","issue":{"uuid":"5654065364","node_id":"PR_kwDOUk_FLc8AAAABF_TkVw","number":4,"state":"closed","title":"Bump the python group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-01T00:09:16.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-30T22:52:47.000Z","updated_at":"2026-10-01T00:09:25.000Z","time_to_close":4589,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":5,"packages":[{"name":"uvicorn","old_version":"0.34.0","new_version":"0.54.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.36","new_version":"2.1.1","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"apscheduler","old_version":"3.11.0","new_version":"3.11.3","repository_url":"https://github.com/agronholm/apscheduler"},{"name":"pandas","old_version":"2.2.3","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"numpy","old_version":"2.2.1","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.0` | `0.54.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.36` | `2.1.1` |\n| [apscheduler](https://github.com/agronholm/apscheduler) | `3.11.0` | `3.11.3` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `3.0.6` |\n| [numpy](https://github.com/numpy/numpy) | `2.2.1` | `2.5.3` |\n\n\nUpdates `uvicorn` from 0.34.0 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.54.0\u003c/h2\u003e\n\u003ch2\u003e📨 Send metadata after the response body\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.54.0 adds response trailers and \u003ccode\u003e103 Early Hints\u003c/code\u003e to its experimental HTTP/2 implementation through \u003ccode\u003ezttp\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.54.0 \u0026quot;zttp\u0026gt;=0.0.34\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend HTTP/2 response trailers\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e). The ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension lets applications send metadata, such as checksums, after the response body. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them. Multiple trailer messages are combined before completing the response.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental and opt-in.\u003c/strong\u003e Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Upgrade-based h2c and WebSockets over HTTP/2 remain unsupported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e💡 Hint at resources before the final response\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSend \u003ccode\u003e103 Early Hints\u003c/code\u003e over HTTP/2\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e). Applications can use the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension to send resource hints before the final response. Each supplied link becomes a separate \u003ccode\u003eLink\u003c/code\u003e header.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.53.0...0.54.0\"\u003e0.53.0...0.54.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.53.0\u003c/h2\u003e\n\u003ch2\u003e🌐 Opt-in HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.53.0 adds experimental HTTP/2 through \u003ccode\u003ezttp\u003c/code\u003e, alongside a new \u003ccode\u003ezuvloop\u003c/code\u003e integration and connection-handling improvements.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.53.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eServe HTTP/1.1 and HTTP/2 with \u003ccode\u003ezttp\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e). Install \u003ccode\u003ezttp\u003c/code\u003e, then enable HTTP/2 with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Uvicorn negotiates HTTP/2 over TLS with ALPN and supports cleartext prior knowledge.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental.\u003c/strong\u003e Upgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚙️ More event loop choice\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRun Uvicorn with \u003ccode\u003ezuvloop\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e). Install \u003ccode\u003ezuvloop\u003c/code\u003e separately and select it explicitly with \u003ccode\u003e--loop zuvloop\u003c/code\u003e on CPython 3.14 or newer.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛡️ More reliable connections and proxies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHonor \u003ccode\u003eConnection: close\u003c/code\u003e token lists\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e). Uvicorn now parses comma-separated tokens case-insensitively across HTTP implementations.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTrust IPv6 loopback proxies by default\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e). The default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value now includes \u003ccode\u003e::1\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eKeep upgraded WebSockets alive\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e). Uvicorn cancels the HTTP keep-alive timer when the connection becomes a WebSocket.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.4...0.53.0\"\u003e0.52.4...0.53.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0 (September 24, 2026)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support remains experimental. Install \u003ccode\u003ezttp\u0026gt;=0.0.34\u003c/code\u003e and enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd HTTP/2 response trailers through the ASGI \u003ccode\u003ehttp.response.trailers\u003c/code\u003e extension. Clients must send \u003ccode\u003eTE: trailers\u003c/code\u003e to receive them (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd HTTP/2 \u003ccode\u003e103 Early Hints\u003c/code\u003e through the ASGI \u003ccode\u003ehttp.response.early_hint\u003c/code\u003e extension (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.53.0 (September 14, 2026)\u003c/h2\u003e\n\u003cp\u003eThis release adds experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e. Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\nUpgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ezuvloop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle comma-separated, case-insensitive \u003ccode\u003eConnection: close\u003c/code\u003e tokens across HTTP implementations (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTrust IPv6 loopback in the default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancel the HTTP keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.4 (August 18, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.3 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.24 and use its combined receive path, improving HTTP/1.1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3067\"\u003e#3067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.2 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.22, fixing bodyless request receives and improving HTTP/1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.1 (August 1, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete the closing handshake on server-initiated WebSocket closes in the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e and \u003ccode\u003ewsproto\u003c/code\u003e implementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing write flow control to the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, preventing data truncation on server-initiated closes with large in-flight payloads (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3048\"\u003e#3048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle connection loss while a WebSocket write is waiting on backpressure (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3eb9a9ab9af69005c687728097461c1fd2a95db9\"\u003e\u003ccode\u003e3eb9a9a\u003c/code\u003e\u003c/a\u003e Version 0.54.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3161\"\u003e#3161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cd7ef6d31c1a09a3653f326cda7813d35ffd6082\"\u003e\u003ccode\u003ecd7ef6d\u003c/code\u003e\u003c/a\u003e Remove races from supervisor tests (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a56c7cce64aaa37e5864f882a5cbce8aa1dac47a\"\u003e\u003ccode\u003ea56c7cc\u003c/code\u003e\u003c/a\u003e Support HTTP/2 response trailers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9bd4404cca9506e9ba4f46b69ef72d011ceef2bd\"\u003e\u003ccode\u003e9bd4404\u003c/code\u003e\u003c/a\u003e chore(deps): bump anyio from 4.13.0 to 4.14.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/21f39ef7988366f77fb3172569bd235ac5de34cc\"\u003e\u003ccode\u003e21f39ef\u003c/code\u003e\u003c/a\u003e Add HTTP/2 Early Hints support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/421708fbc1a704dac8bd4053a7c4c0bf4d3704ee\"\u003e\u003ccode\u003e421708f\u003c/code\u003e\u003c/a\u003e Version 0.53.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f1a1bff7be819f5724d6fdf86dfd448a97c62e23\"\u003e\u003ccode\u003ef1a1bff\u003c/code\u003e\u003c/a\u003e Unset the keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/63971ed952090438896e6eba7d07178b616d97cc\"\u003e\u003ccode\u003e63971ed\u003c/code\u003e\u003c/a\u003e Document HTTP/2 support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7d1a0055aee5e281accc646b559ddd147486bf8a\"\u003e\u003ccode\u003e7d1a005\u003c/code\u003e\u003c/a\u003e Remove race from multiprocess health check test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3128\"\u003e#3128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5ac6265a01ff6dcadb0e4250152c3deaf8a168a9\"\u003e\u003ccode\u003e5ac6265\u003c/code\u003e\u003c/a\u003e Add ::1 to FORWARDED_ALLOW_IPS (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.34.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.36 to 2.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.1\u003c/h1\u003e\n\u003cp\u003eReleased: September 25, 2026\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Removed the legacy underscore-separated extra names such as\n\u003ccode\u003emssql_pymssql\u003c/code\u003e and \u003ccode\u003epostgresql_psycopg\u003c/code\u003e from \u003ccode\u003epyproject.toml\u003c/code\u003e.\nThey normalize to the same names as the existing dash-separated extras,\nwhich is disallowed by \u003ca href=\"https://peps.python.org/pep-0685\"\u003ePEP 685\u003c/a\u003e, and caused the 2.1.0 source\ndistribution to fail to build with installers that enforce this rule,\nsuch as uv. The underscore spellings continue to work when installing,\nas installers normalize extra names before matching them.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13604\"\u003e#13604\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cp\u003eReleased: September 24, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [feature]\u003c/strong\u003e Added \u003ccode\u003e_orm.composite.column_template\u003c/code\u003e parameter to\n\u003ccode\u003e_orm.composite()\u003c/code\u003e.  When the composite class is a dataclass, this\nparameter accepts a string template such as \u003ccode\u003e\u0026quot;person_%s\u0026quot;\u003c/code\u003e, containing\nexactly one \u003ccode\u003e%s\u003c/code\u003e placeholder, that's used to generate column names for\ndataclass fields that don't otherwise have an explicit name, rather than\nusing the bare field name.  This removes the need to hand-write a\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e for each field when the same composite dataclass\nis mapped multiple times on the same class with different column-name\nprefixes.  Pull request courtesy Leonardo Rosa.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12575\"\u003e#12575\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where pickling an ORM object that had an instance level lazy\nloader established, such as when the \u003ccode\u003e_orm.raiseload()\u003c/code\u003e option is used,\nwould emit a spurious warning regarding the loader containing additional\ncriteria, if the object had itself been unpickled from a previous\nserialization.  This would occur for objects that cross more than one\nserialization boundary, such as when using multiprocessing.\u003c/p\u003e\n\u003cp\u003eThis change is also \u003cstrong\u003ebackported\u003c/strong\u003e to: 2.0.53\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13574\"\u003e#13574\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where calling \u003ccode\u003e_orm.aliased()\u003c/code\u003e against an existing\n\u003ccode\u003e_orm.aliased()\u003c/code\u003e construct, without passing an explicit selectable,\nwould disregard the selectable of the existing construct and produce an\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apscheduler` from 3.11.0 to 3.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/apscheduler/releases\"\u003eapscheduler's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed sub-minute interval jobs stalling for the duration of a DST spring-forward gap when the scheduler was configured with a \u003ccode\u003eZoneInfo\u003c/code\u003e time zone, caused by the wakeup delay being computed from the naive wall-clock difference instead of the actual UTC difference (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1103\"\u003e#1103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed imported jobs missing their scheduler and job store links (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1119\"\u003e#1119\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where a job using a \u003ccode\u003eCronTrigger\u003c/code\u003e scheduled in a repeated time interval during DST transitions could cause the scheduler to get stuck in an infinite loop (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1021\"\u003e#1021\u003c/a\u003e; PR by \u003ca href=\"https://github.com/soulofakuma\"\u003e\u003ccode\u003e@​soulofakuma\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003escheduler.shutdown()\u003c/code\u003e not raising \u003ccode\u003eSchedulerNotRunning\u003c/code\u003e (or raising the wrong exception) for asynchronous schedulers when the scheduler is in fact not running\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCronTrigger\u003c/code\u003e sticking on a folded datetime during the fall-back DST transition (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1021\"\u003e#1021\u003c/a\u003e \u0026lt;\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1021\"\u003eagronholm/apscheduler#1021\u003c/a\u003e\u0026gt;_; PR by \u003ca href=\"https://github.com/berianjames\"\u003e\u003ccode\u003e@​berianjames\u003c/code\u003e\u003c/a\u003e)`\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/4308ec95b94069f5dbdddb6c60fb792dfc8c40a4\"\u003e\u003ccode\u003e4308ec9\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/ff68780d7f66fe0f505c3a32764005cd004996b9\"\u003e\u003ccode\u003eff68780\u003c/code\u003e\u003c/a\u003e Added a note about weekday numbers in CronTrigger.from_crontab()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/36936e904052e6bfbd03f83e17b03701b7a589fe\"\u003e\u003ccode\u003e36936e9\u003c/code\u003e\u003c/a\u003e Updated actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/c0ff7e4ccfcc703db44a905b70c1d6568a6f81fa\"\u003e\u003ccode\u003ec0ff7e4\u003c/code\u003e\u003c/a\u003e Fixed Pyside6 tests failing on Python 3.9 and 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/1b782c90edeac787deb3106fb3e5c775b3d6b0cd\"\u003e\u003ccode\u003e1b782c9\u003c/code\u003e\u003c/a\u003e Fixed fixture \u003ccode\u003ecoreapp\u003c/code\u003e not found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/dc3dde4a34c021f215d120d88fe19ddc66bb8a66\"\u003e\u003ccode\u003edc3dde4\u003c/code\u003e\u003c/a\u003e Test against PySide6 on all Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/18a6f6b637e372730f6325786f97936e6eaa9f77\"\u003e\u003ccode\u003e18a6f6b\u003c/code\u003e\u003c/a\u003e Fixed imported jobs missing their scheduler and job store links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/1693db4d8861bf941d299d79a586797ad0ac6467\"\u003e\u003ccode\u003e1693db4\u003c/code\u003e\u003c/a\u003e Fix interval jobs stalling across DST spring-forward with ZoneInfo (\u003ca href=\"https://redirect.github.com/agronholm/apscheduler/issues/1114\"\u003e#1114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/0636bf4931fddb706b948b6781ebbd76058f1443\"\u003e\u003ccode\u003e0636bf4\u003c/code\u003e\u003c/a\u003e Added Python 3.14 to the test matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/apscheduler/commit/3eb3de8115f1631dc5e2ecce7b00175d34ffbdf9\"\u003e\u003ccode\u003e3eb3de8\u003c/code\u003e\u003c/a\u003e Fixed bad use of pytest.raises()\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/apscheduler/compare/3.11.0...3.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.2.3 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.5\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.5.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.5.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003epandas 3.0.4\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.4.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.4.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.2.3...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.2.1 to 2.5.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.3 (Sep 6, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.5.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.5.3 is a patch release that fixes bugs discovered after the 2.5.2\nrelease. Apart from the usual bug and maintenance work, there are a number of\nStringDType related fixes for problems discovered during the ongoing string\nwork in the main branch.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.12-3.15\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCasting a fixed-width byte string array (\u003ccode\u003enp.bytes_\u003c/code\u003e) to \u003ccode\u003eStringDType\u003c/code\u003e\nnow raises \u003ccode\u003eTypeError\u003c/code\u003e when the bytes are not valid UTF-8. Previously the\ninvalid bytes were stored as-is and later caused undefined behavior in\nstring operations.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32296\"\u003egh-32296\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMaskedArray._fill_value\u003c/code\u003e would become stale when ufuncs that change dtype\nleft the result holding a fill_value typed for the old dtype. The mismatch\nwas silent until something later called \u003ccode\u003e_check_fill_value\u003c/code\u003e, such as\n\u003ccode\u003e.view()\u003c/code\u003e, and then a \u003ccode\u003eTypeError\u003c/code\u003e would be raised. Now, when the copied\nfill_value is no longer valid for the new dtype, fall back to the\ndefault fill_value for that dtype instead of propagating the stale value.\nThis may raise a \u003ccode\u003eComplexWarning\u003c/code\u003e if the fill_value is complex and the\nnew dtype is real.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32423\"\u003egh-32423\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIason Krommydas\u003c/li\u003e\n\u003cli\u003eJames Davies +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaanas Arora\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eShikhar Goel +\u003c/li\u003e\n\u003cli\u003eYeonho Kim +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 27 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32235\"\u003e#32235\u003c/a\u003e: MAINT: Prepare 2.5.x for further development\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst\"\u003enumpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis is a walkthrough of the NumPy 2.4.0 release on Linux, which will be the\nfirst feature release using the \u003ccode\u003enumpy/numpy-release \u0026lt;https://github.com/numpy/numpy-release\u0026gt;\u003c/code\u003e__ repository.\u003c/p\u003e\n\u003cp\u003eThe commands can be copied into the command line, but be sure to replace 2.4.0\nwith the correct version. This should be read together with the\n:ref:\u003ccode\u003egeneral release guide \u0026lt;prepare_release\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eFacility preparation\u003c/h1\u003e\n\u003cp\u003eBefore beginning to make a release, use the \u003ccode\u003erequirements/*_requirements.txt\u003c/code\u003e files to\nensure that you have the needed software. Most software can be installed with\npip, but some will require apt-get, dnf, or whatever your system uses for\nsoftware. You will also need a GitHub personal access token (PAT) to push the\ndocumentation. There are a few ways to streamline things:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGit can be set up to use a keyring to store your GitHub personal access token.\nSearch online for the details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePrior to release\u003c/h1\u003e\n\u003ch2\u003eAdd/drop Python versions\u003c/h2\u003e\n\u003cp\u003eWhen adding or dropping Python versions, multiple config and CI files need to\nbe edited in addition to changing the minimum version in \u003ccode\u003epyproject.toml\u003c/code\u003e.\nMake these changes in an ordinary PR against main and backport if necessary.\nWe currently release wheels for new Python versions after the first Python RC\nonce manylinux and cibuildwheel support that new Python version.\u003c/p\u003e\n\u003ch2\u003eBackport pull requests\u003c/h2\u003e\n\u003cp\u003eChanges that have been marked for this release must be backported to the\nmaintenance/2.4.x branch.\u003c/p\u003e\n\u003ch2\u003eUpdate 2.4.0 milestones\u003c/h2\u003e\n\u003cp\u003eLook at the issues/prs with 2.4.0 milestones and either push them off to a\nlater version, or maybe remove the milestone. You may need to add a milestone.\u003c/p\u003e\n\u003ch2\u003eCheck the numpy-release repo\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/dd88c0c19b54ad9ed3533224221285bf0873249a\"\u003e\u003ccode\u003edd88c0c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32511\"\u003e#32511\u003c/a\u003e from charris/prepare-2.5.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/edcac6acc392f4010933ee83e8a4769a7cfe92c5\"\u003e\u003ccode\u003eedcac6a\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.5.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fd4d908aff89773ead13f7c6a0ab31153f14439e\"\u003e\u003ccode\u003efd4d908\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32509\"\u003e#32509\u003c/a\u003e from charris/backport-32496\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/65bb1da13d0ee784be84d173b86784f0d64bdaca\"\u003e\u003ccode\u003e65bb1da\u003c/code\u003e\u003c/a\u003e BUG: fix crash in ufunc.resolve_dtypes with a Python scalar type (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32496\"\u003e#32496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/294956e85dfaea149aada1278c2ed6be0f6f28c8\"\u003e\u003ccode\u003e294956e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32506\"\u003e#32506\u003c/a\u003e from charris/backport-32503\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/26428d9a3f5ab4f604b326347e3a9c6dcc00c1cb\"\u003e\u003ccode\u003e26428d9\u003c/code\u003e\u003c/a\u003e DOC: fix scipy docs links in intersphinx mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32507\"\u003e#32507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/5fab1cbc6aa9e119d9f931243a56c6fbca989476\"\u003e\u003ccode\u003e5fab1cb\u003c/code\u003e\u003c/a\u003e DOC: use static scipy doc site for intershpinx (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32503\"\u003e#32503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7beed2f7e9a24e493a04ff7e2eb1db0d7f9c50e6\"\u003e\u003ccode\u003e7beed2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32481\"\u003e#32481\u003c/a\u003e from ngoldbaum/stringdtype-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8972f70798a2ba1bb4557157982fd6001906f993\"\u003e\u003ccode\u003e8972f70\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32478\"\u003e#32478\u003c/a\u003e from charris/backport-32466\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/ab1b58902a868d4151ef3cf8dbeb91d8a1924fa4\"\u003e\u003ccode\u003eab1b589\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32477\"\u003e#32477\u003c/a\u003e from charris/backport-32423\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.2.1...v2.5.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/theblackmoose/supertrendMoose/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/theblackmoose%2FsupertrendMoose/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"3.0.5","new_version":"3.0.6","update_type":"patch","path":null,"pr_created_at":"2026-09-30T01:59:14.000Z","version_change":"3.0.5 → 3.0.6","issue":{"uuid":"5639678988","node_id":"PR_kwDOT-F1_88AAAABFzvffw","number":94,"state":"closed","title":"chore(deps): bump the backend-minor group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-30T16:24:55.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-30T01:59:14.000Z","updated_at":"2026-09-30T16:24:57.000Z","time_to_close":51941,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"backend-minor","update_count":5,"packages":[{"name":"graphrag","old_version":"3.1.2","new_version":"3.2.0","repository_url":"https://github.com/microsoft/graphrag"},{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pyjwt","old_version":"2.14.0","new_version":"2.15.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"starlette","old_version":"1.6.0","new_version":"1.7.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"ruff","old_version":"0.16.7","new_version":"0.16.9","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the backend-minor group with 5 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [graphrag](https://github.com/microsoft/graphrag) | `3.1.2` | `3.2.0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.5` | `3.0.6` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.14.0` | `2.15.0` |\n| [starlette](https://github.com/Kludex/starlette) | `1.6.0` | `1.7.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.7` | `0.16.9` |\n\n\nUpdates `graphrag` from 3.1.2 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/graphrag/releases\"\u003egraphrag's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange default package feed index. by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2483\"\u003emicrosoft/graphrag#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix/cache event loop lifecycle by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2484\"\u003emicrosoft/graphrag#2484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePr 2481/danfiedler/pin actions by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2485\"\u003emicrosoft/graphrag#2485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd notice. by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2486\"\u003emicrosoft/graphrag#2486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePr 2480/docs/spelling sweep by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2487\"\u003emicrosoft/graphrag#2487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLocal search notebook by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2488\"\u003emicrosoft/graphrag#2488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate contributing doc. by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2500\"\u003emicrosoft/graphrag#2500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAutomate dependency updates. by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2507\"\u003emicrosoft/graphrag#2507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix update-deps skill to work with msft feed. by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2510\"\u003emicrosoft/graphrag#2510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDependency update sweep by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2516\"\u003emicrosoft/graphrag#2516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v3.1.2 by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2519\"\u003emicrosoft/graphrag#2519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies to latest versions (dependency sweep) by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2523\"\u003emicrosoft/graphrag#2523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2528\"\u003emicrosoft/graphrag#2528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies to latest versions (dependency sweep) by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2558\"\u003emicrosoft/graphrag#2558\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies sweep by \u003ca href=\"https://github.com/dworthen\"\u003e\u003ccode\u003e@​dworthen\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2563\"\u003emicrosoft/graphrag#2563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enew cache implementation by \u003ca href=\"https://github.com/gaudyb\"\u003e\u003ccode\u003e@​gaudyb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2570\"\u003emicrosoft/graphrag#2570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v3.2.0 by \u003ca href=\"https://github.com/gaudyb\"\u003e\u003ccode\u003e@​gaudyb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/graphrag/pull/2572\"\u003emicrosoft/graphrag#2572\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microsoft/graphrag/compare/v3.1.1...v3.2.0\"\u003ehttps://github.com/microsoft/graphrag/compare/v3.1.1...v3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/graphrag/blob/main/CHANGELOG.md\"\u003egraphrag's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eminor: Add a concurrency-safe SQLite cache provider.\u003c/li\u003e\n\u003cli\u003epatch: Fix broken doc links and doc string parameter mismatches.\u003c/li\u003e\n\u003cli\u003epatch: Update dependencies to latest versions (dependency sweep).\u003c/li\u003e\n\u003cli\u003epatch: Update dependencies to latest versions (dependency sweep).\u003c/li\u003e\n\u003cli\u003epatch: Update dependencies to latest versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/graphrag/commit/769542fbf1d8e5b4c6a8677fefc34621c87894c5\"\u003e\u003ccode\u003e769542f\u003c/code\u003e\u003c/a\u003e Release v3.2.0 (\u003ca href=\"https://redirect.github.com/microsoft/graphrag/issues/2572\"\u003e#2572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/graphrag/commit/150c697f6d6500280bd80c956565b6fa563bc073\"\u003e\u003ccode\u003e150c697\u003c/code\u003e\u003c/a\u003e new cache implementation (\u003ca href=\"https://redirect.github.com/microsoft/graphrag/issues/2570\"\u003e#2570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/graphrag/commit/82b87bf0434fc69f857663280e2c36a1c48e52fe\"\u003e\u003ccode\u003e82b87bf\u003c/code\u003e\u003c/a\u003e Update dependencies sweep (\u003ca href=\"https://redirect.github.com/microsoft/graphrag/issues/2563\"\u003e#2563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/graphrag/commit/1877d7256b4db4d66f64c491a9b559ef2470d338\"\u003e\u003ccode\u003e1877d72\u003c/code\u003e\u003c/a\u003e Update dependencies to latest versions (dependency sweep) (\u003ca href=\"https://redirect.github.com/microsoft/graphrag/issues/2558\"\u003e#2558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/graphrag/commit/f40e9a26ce62ba0b3fef8837d24aafdcc6e6c704\"\u003e\u003ccode\u003ef40e9a2\u003c/code\u003e\u003c/a\u003e Cleanup (\u003ca href=\"https://redirect.github.com/microsoft/graphrag/issues/2528\"\u003e#2528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/graphrag/commit/a445be73645f47fd5fe601987f89dfd3219a2a86\"\u003e\u003ccode\u003ea445be7\u003c/code\u003e\u003c/a\u003e Update dependencies to latest versions (dependency sweep) (\u003ca href=\"https://redirect.github.com/microsoft/graphrag/issues/2523\"\u003e#2523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/graphrag/commit/6dad6d2b059589624035714d8dcfde94ecc0a5fb\"\u003e\u003ccode\u003e6dad6d2\u003c/code\u003e\u003c/a\u003e Release v3.1.2 (\u003ca href=\"https://redirect.github.com/microsoft/graphrag/issues/2519\"\u003e#2519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/graphrag/compare/v3.1.2...v3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 3.0.5 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.5...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.14.0 to 2.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.15.0\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/2.15.0/CHANGELOG.rst\"\u003e2.15.0 changelog\u003c/a\u003e for complete release details.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.15.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.14.0...2.15.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eSecurity\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Wrap recursion errors from deeply nested JWT payloads in ``DecodeError``\n  instead of exposing a raw ``RecursionError``.\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Support Python 3.15 by @kytta in `[#1202](https://github.com/jpadilla/pyjwt/issues/1202) \u0026amp;lt;https://github.com/jpadilla/pyjwt/pull/1202\u0026amp;gt;`__\n\nChanged\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJWKSetCache\u003c/code\u003e now stores the parsed \u003ccode\u003ePyJWKSet\u003c/code\u003e rather than the raw JWKS\npayload, so a cache hit no longer re-parses every key. \u003ccode\u003eJWKSetCache.put()\u003c/code\u003e\naccepts either form and raises \u003ccode\u003ePyJWKSetError\u003c/code\u003e for anything else. As a\nresult, \u003ccode\u003ePyJWKClient.get_jwk_set()\u003c/code\u003e returns the same \u003ccode\u003ePyJWKSet\u003c/code\u003e instance\nfor as long as it stays cached, rather than a freshly built one per call in\n\u003ccode\u003e[#1208](https://github.com/jpadilla/pyjwt/issues/1208) \u0026amp;lt;https://github.com/jpadilla/pyjwt/pull/1208\u0026amp;gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePyJWKClient.fetch_data()\u003c/code\u003e now raises\n\u003ccode\u003ePyJWKClientError(\u0026amp;quot;The JWKS endpoint did not return a JSON object\u0026amp;quot;)\u003c/code\u003e when\nthe endpoint response is not a JSON object, instead of returning it for\n\u003ccode\u003eget_jwk_set()\u003c/code\u003e to reject. Callers reaching the JWKS through\n\u003ccode\u003eget_jwk_set()\u003c/code\u003e see the same error as before in\n\u003ccode\u003e[#1208](https://github.com/jpadilla/pyjwt/issues/1208) \u0026amp;lt;https://github.com/jpadilla/pyjwt/pull/1208\u0026amp;gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Return cached ``PyJWKSet`` values from ``PyJWKClient.get_jwk_set()`` instead\n  of raising ``PyJWKClientError(\u0026amp;quot;The JWKS endpoint did not return a JSON\n  object\u0026amp;quot;)``. ``JWKSetCache.put()`` documents ``PyJWKSet`` as the cached value,\n  so callers pre-populating the cache to avoid a network round-trip could not\n  read it back in `[#914](https://github.com/jpadilla/pyjwt/issues/914) \u0026amp;lt;https://github.com/jpadilla/pyjwt/issues/914\u0026amp;gt;`__ and\n  `[#1208](https://github.com/jpadilla/pyjwt/issues/1208) \u0026amp;lt;https://github.com/jpadilla/pyjwt/pull/1208\u0026amp;gt;`__\n- ``PyJWKClient.get_jwk_set()`` now caches the key set it returns, so a\n  ``fetch_data()`` override that filters or transforms the JWKS is no longer\n  undone by the next cache hit in\n  `[#1208](https://github.com/jpadilla/pyjwt/issues/1208) \u0026amp;lt;https://github.com/jpadilla/pyjwt/pull/1208\u0026amp;gt;`__\n- Raise the documented ``PyJWTError`` subclass instead of leaking a\n  ``TypeError`` when the ``exp``, ``nbf``, or ``iat`` claim decodes to a\n  non-numeric, non-string value such as a list, dict, or ``null``.\n- Reject OKP JWK private keys when their public ``x`` component does not\n  match the private ``d`` component.\n- Treat malformed JWK Set members as unusable keys rather than letting\n  ``AttributeError`` or ``TypeError`` escape ``PyJWKSet``. A member that is not\n\u0026amp;lt;/tr\u0026amp;gt;\u0026amp;lt;/table\u0026amp;gt; \n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;p\u0026gt;... (truncated)\u0026lt;/p\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/1d41a6478e1562e68ff667fcd703356acf085f68\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1d41a64\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; chore: prepare 2.15.0 release\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/9bc06658f875b9b40091539140bbbdc4639161c3\u0026quot;\u0026gt;\u0026lt;code\u0026gt;9bc0665\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix: make recursive payload tests deterministic\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/5fde08a6cf906aa7698de2d6391d88b73006b17b\u0026quot;\u0026gt;\u0026lt;code\u0026gt;5fde08a\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix: normalize recursive JWT payload errors\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/171062d2d734315272a901100aa4b109f2fc3c19\u0026quot;\u0026gt;\u0026lt;code\u0026gt;171062d\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; utils: mention bytes in force_bytes type error (\u0026lt;a href=\u0026quot;https://redirect.github.com/jpadilla/pyjwt/issues/1173\u0026quot;\u0026gt;#1173\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/c9d4d5375bf464ef363506fed9eb6e7f33217ab6\u0026quot;\u0026gt;\u0026lt;code\u0026gt;c9d4d53\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; docs/conf: drop duplicate 'and' from read() docstring (\u0026lt;a href=\u0026quot;https://redirect.github.com/jpadilla/pyjwt/issues/1174\u0026quot;\u0026gt;#1174\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/2763752196113e1473b0ed7905aa6034aedfbe53\u0026quot;\u0026gt;\u0026lt;code\u0026gt;2763752\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Add support for Python 3.15 (\u0026lt;a href=\u0026quot;https://redirect.github.com/jpadilla/pyjwt/issues/1202\u0026quot;\u0026gt;#1202\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/4adcd02722f5011c60079d3978dfc167b9a8eaa5\u0026quot;\u0026gt;\u0026lt;code\u0026gt;4adcd02\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Catch http.client.HTTPException in PyJWKClient.fetch_data (\u0026lt;a href=\u0026quot;https://redirect.github.com/jpadilla/pyjwt/issues/1201\u0026quot;\u0026gt;#1201\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/9e501d993b4d3e7dba14bdb1722b1d993ac75097\u0026quot;\u0026gt;\u0026lt;code\u0026gt;9e501d9\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix: correct docstring typo in _validate_jti (\u0026lt;a href=\u0026quot;https://redirect.github.com/jpadilla/pyjwt/issues/1179\u0026quot;\u0026gt;#1179\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/4047c44d51950ffda15f40054508d3f17c43b1e2\u0026quot;\u0026gt;\u0026lt;code\u0026gt;4047c44\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; docs: clarify JWK certificate member handling (\u0026lt;a href=\u0026quot;https://redirect.github.com/jpadilla/pyjwt/issues/1212\u0026quot;\u0026gt;#1212\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/commit/f4e2b59f543cc82d46d9d69922bba59e804216b9\u0026quot;\u0026gt;\u0026lt;code\u0026gt;f4e2b59\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; [pre-commit.ci] pre-commit autoupdate (\u0026lt;a href=\u0026quot;https://redirect.github.com/jpadilla/pyjwt/issues/1210\u0026quot;\u0026gt;#1210\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/jpadilla/pyjwt/compare/2.14.0...2.15.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `starlette` from 1.6.0 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.7.0\u003c/h2\u003e\n\u003cp\u003eThis release adds experimental OpenTelemetry tracing, HTTP \u003ccode\u003eQUERY\u003c/code\u003e support, and response trailers in \u003ccode\u003eTestClient\u003c/code\u003e. Starlette now requires AnyIO 4.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\n\u003ccode\u003eOpenTelemetryMiddleware\u003c/code\u003e is experimental. Its API and emitted telemetry may change in minor releases without a deprecation period.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental \u003ccode\u003eOpenTelemetryMiddleware\u003c/code\u003e for HTTP server spans, with URL exclusions and custom tracer providers \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3438\"\u003e#3438\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3463\"\u003e#3463\u003c/a\u003e, and \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3520\"\u003e#3520\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eExpose the matched route through \u003ccode\u003escope[\u0026quot;route\u0026quot;]\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3438\"\u003e#3438\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport the \u003ccode\u003eQUERY\u003c/code\u003e HTTP method in \u003ccode\u003eHTTPEndpoint\u003c/code\u003e, CORS, and OpenAPI 3.2 schema generation \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3489\"\u003e#3489\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCapture HTTP response trailers in \u003ccode\u003eTestClient\u003c/code\u003e and expose them through \u003ccode\u003eresponse.extensions[\u0026quot;http.response.trailers\u0026quot;]\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3563\"\u003e#3563\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport partitioned cookies in \u003ccode\u003eSessionMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3510\"\u003e#3510\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epartitioned\u003c/code\u003e to \u003ccode\u003eResponse.delete_cookie()\u003c/code\u003e on Python 3.14 and later \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3376\"\u003e#3376\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport IPv6 hosts in \u003ccode\u003eTrustedHostMiddleware\u003c/code\u003e and \u003ccode\u003eTestClient\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3471\"\u003e#3471\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport Python 3.15 \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3508\"\u003e#3508\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire \u003ccode\u003eanyio\u0026gt;=4.0.0,\u0026lt;5\u003c/code\u003e, dropping support for AnyIO 3 \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3512\"\u003e#3512\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eWebSocketDisconnected\u003c/code\u003e, a \u003ccode\u003eRuntimeError\u003c/code\u003e subclass, for disconnected WebSocket operations \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2767\"\u003e#2767\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eCollection[str]\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e configuration annotations, including sets and frozensets \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3518\"\u003e#3518\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun background tasks only after the response is sent when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3476\"\u003e#3476\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003e400\u003c/code\u003e for invalid multipart parser input \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3492\"\u003e#3492\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003eVary: Origin\u003c/code\u003e on all normal CORS responses and vary preflight responses by all request headers that affect them \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3516\"\u003e#3516\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3517\"\u003e#3517\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle malformed \u003ccode\u003eHost\u003c/code\u003e headers and IPv6 authorities consistently across URL construction, host routing, and redirect middleware \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3472\"\u003e#3472\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIgnore \u003ccode\u003eRange\u003c/code\u003e headers when \u003ccode\u003eFileResponse\u003c/code\u003e has a status other than \u003ccode\u003e200\u003c/code\u003e, preserving its status and full body \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3568\"\u003e#3568\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle standalone \u003ccode\u003eIf-None-Match: *\u003c/code\u003e in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3201\"\u003e#3201\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReject WebSocket requests to \u003ccode\u003eStaticFiles\u003c/code\u003e without raising an assertion error \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3532\"\u003e#3532\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePersist session mutations made with \u003ccode\u003epopitem()\u003c/code\u003e and \u003ccode\u003e|=\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3436\"\u003e#3436\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle empty and absent payloads in \u003ccode\u003eWebSocketEndpoint.decode()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3372\"\u003e#3372\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eidentity\u003c/code\u003e on \u003ccode\u003eSimpleUser\u003c/code\u003e and \u003ccode\u003eUnauthenticatedUser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3271\"\u003e#3271\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eHTTPException\u003c/code\u003e to use non-standard status codes without an explicit \u003ccode\u003edetail\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3545\"\u003e#3545\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAvoid deprecated AnyIO imports in \u003ccode\u003eTestClient\u003c/code\u003e and add explicit imports in \u003ccode\u003eWSGIMiddleware\u003c/code\u003e for AnyIO 4.15 compatibility \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3498\"\u003e#3498\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3501\"\u003e#3501\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eOffload debug traceback rendering to a worker thread in \u003ccode\u003eServerErrorMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2858\"\u003e#2858\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/Kludex/starlette/compare/1.6.0...1.7.0\"\u003e1.6.0...1.7.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.0 (September 23, 2026)\u003c/h2\u003e\n\u003cp\u003eThis release adds experimental OpenTelemetry tracing and requires AnyIO 4.\u003c/p\u003e\n\u003cp\u003e!!! warning \u0026quot;OpenTelemetryMiddleware is experimental\u0026quot;\nIts API and emitted telemetry may change in minor releases without a deprecation period\n\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3574\"\u003e#3574\u003c/a\u003e.\u003c/p\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental \u003ccode\u003eOpenTelemetryMiddleware\u003c/code\u003e for HTTP server spans, with URL exclusions and custom tracer providers \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3438\"\u003e#3438\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3463\"\u003e#3463\u003c/a\u003e, and \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3520\"\u003e#3520\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eExpose the matched route through \u003ccode\u003escope[\u0026quot;route\u0026quot;]\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3438\"\u003e#3438\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport the \u003ccode\u003eQUERY\u003c/code\u003e HTTP method in \u003ccode\u003eHTTPEndpoint\u003c/code\u003e, CORS, and OpenAPI 3.2 schema generation \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3489\"\u003e#3489\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCapture HTTP response trailers in \u003ccode\u003eTestClient\u003c/code\u003e and expose them through \u003ccode\u003eresponse.extensions[\u0026quot;http.response.trailers\u0026quot;]\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3563\"\u003e#3563\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport partitioned cookies in \u003ccode\u003eSessionMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3510\"\u003e#3510\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epartitioned\u003c/code\u003e to \u003ccode\u003eResponse.delete_cookie()\u003c/code\u003e on Python 3.14 and later \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3376\"\u003e#3376\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport IPv6 hosts in \u003ccode\u003eTrustedHostMiddleware\u003c/code\u003e and \u003ccode\u003eTestClient\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3471\"\u003e#3471\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport Python 3.15 \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3508\"\u003e#3508\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRequire \u003ccode\u003eanyio\u0026gt;=4.0.0,\u0026lt;5\u003c/code\u003e, dropping support for AnyIO 3 \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3512\"\u003e#3512\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eWebSocketDisconnected\u003c/code\u003e, a \u003ccode\u003eRuntimeError\u003c/code\u003e subclass, for disconnected WebSocket operations \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2767\"\u003e#2767\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eCollection[str]\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e configuration annotations, including sets and frozensets \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3518\"\u003e#3518\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRun background tasks only after the response is sent when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3476\"\u003e#3476\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003e400\u003c/code\u003e for invalid multipart parser input \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3492\"\u003e#3492\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003eVary: Origin\u003c/code\u003e on all normal CORS responses and vary preflight responses by all request headers that affect them \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3516\"\u003e#3516\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3517\"\u003e#3517\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle malformed \u003ccode\u003eHost\u003c/code\u003e headers and IPv6 authorities consistently across URL construction, host routing, and redirect middleware \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3472\"\u003e#3472\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIgnore \u003ccode\u003eRange\u003c/code\u003e headers when \u003ccode\u003eFileResponse\u003c/code\u003e has a status other than \u003ccode\u003e200\u003c/code\u003e, preserving its status and full body \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3568\"\u003e#3568\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle standalone \u003ccode\u003eIf-None-Match: *\u003c/code\u003e in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3201\"\u003e#3201\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReject WebSocket requests to \u003ccode\u003eStaticFiles\u003c/code\u003e without raising an assertion error \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3532\"\u003e#3532\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePersist session mutations made with \u003ccode\u003epopitem()\u003c/code\u003e and \u003ccode\u003e|=\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3436\"\u003e#3436\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle empty and absent payloads in \u003ccode\u003eWebSocketEndpoint.decode()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3372\"\u003e#3372\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eidentity\u003c/code\u003e on \u003ccode\u003eSimpleUser\u003c/code\u003e and \u003ccode\u003eUnauthenticatedUser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3271\"\u003e#3271\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eHTTPException\u003c/code\u003e to use non-standard status codes without an explicit \u003ccode\u003edetail\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3545\"\u003e#3545\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAvoid deprecated AnyIO imports in \u003ccode\u003eTestClient\u003c/code\u003e and add explicit imports in \u003ccode\u003eWSGIMiddleware\u003c/code\u003e for AnyIO 4.15 compatibility \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3498\"\u003e#3498\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3501\"\u003e#3501\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eOffload debug traceback rendering to a worker thread in \u003ccode\u003eServerErrorMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2858\"\u003e#2858\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/2269e9a08c1edd3dfdea865710f40f84c857b623\"\u003e\u003ccode\u003e2269e9a\u003c/code\u003e\u003c/a\u003e Version 1.7.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3575\"\u003e#3575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4fe55eb2649e74fb01472bad9a1bc54fc3495904\"\u003e\u003ccode\u003e4fe55eb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eFileResponse\u003c/code\u003e status for range requests (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3568\"\u003e#3568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/1f08daf1627c866a4244418ea6da673d272fc8bb\"\u003e\u003ccode\u003e1f08daf\u003c/code\u003e\u003c/a\u003e Mark OpenTelemetryMiddleware as experimental (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3574\"\u003e#3574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/57de5fa9c2a98089a78d32d560e9b23e62560d5f\"\u003e\u003ccode\u003e57de5fa\u003c/code\u003e\u003c/a\u003e Support HTTP response trailers in TestClient (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3563\"\u003e#3563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/03f12b7fcf0a3e21a8da648ca0900c79472e9efe\"\u003e\u003ccode\u003e03f12b7\u003c/code\u003e\u003c/a\u003e Allow HTTPException to use non-standard status codes (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3545\"\u003e#3545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/76fd00f1e293990ea41555946a6b0f58901eaca1\"\u003e\u003ccode\u003e76fd00f\u003c/code\u003e\u003c/a\u003e Reject \u003ccode\u003eWebSocket\u003c/code\u003e requests to \u003ccode\u003eStaticFiles\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3532\"\u003e#3532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/f03f65c2f98c592773d691b4d309c68b83e568ef\"\u003e\u003ccode\u003ef03f65c\u003c/code\u003e\u003c/a\u003e docs: fix 'its not available' and 'This ensure' wording (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3526\"\u003e#3526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/485aca4e797d41849743cf73d5adcfd699695467\"\u003e\u003ccode\u003e485aca4\u003c/code\u003e\u003c/a\u003e docs: the test client is built on httpx2, not httpx (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3525\"\u003e#3525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/fd662b17b9cc41dca32a03509305619643f2dd61\"\u003e\u003ccode\u003efd662b1\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003eidentity\u003c/code\u003e on \u003ccode\u003eSimpleUser\u003c/code\u003e and \u003ccode\u003eUnauthenticatedUser\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3271\"\u003e#3271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/41db6a707f2636526847dbda0e5610e732e6b4fc\"\u003e\u003ccode\u003e41db6a7\u003c/code\u003e\u003c/a\u003e Stabilize CodSpeed upload buffer allocations (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3524\"\u003e#3524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/1.6.0...1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.16.7 to 0.16.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.9\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positives for overloaded division (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28309\"\u003e#28309\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Avoid false positives for calls with keyword arguments (\u003ccode\u003eB009\u003c/code\u003e, \u003ccode\u003eB010\u003c/code\u003e, \u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28776\"\u003e#28776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow lazy imports to be used in deferred annotations (\u003ccode\u003eTID255\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28767\"\u003e#28767\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LibCST-based fixes for Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28616\"\u003e#28616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Mention stubs in the diagnostic message (\u003ccode\u003ePYI002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28542\"\u003e#28542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix horizontal overflow on the rules documentation page (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28699\"\u003e#28699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate rules table with category information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28651\"\u003e#28651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Clarify that \u003ccode\u003eANN401\u003c/code\u003e checks return types in addition to arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28334\"\u003e#28334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Document type-checker interaction (\u003ccode\u003eB010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28509\"\u003e#28509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27794\"\u003e#27794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Mention related isort settings (\u003ccode\u003eRUF022\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28719\"\u003e#28719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qinpei-dev\"\u003e\u003ccode\u003e@​qinpei-dev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanjayrohith\"\u003e\u003ccode\u003e@​sanjayrohith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webdevsamran\"\u003e\u003ccode\u003e@​webdevsamran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaniebot\"\u003e\u003ccode\u003e@​zaniebot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spaceone\"\u003e\u003ccode\u003e@​spaceone\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IbrahimKhan12\"\u003e\u003ccode\u003e@​IbrahimKhan12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devtechedge\"\u003e\u003ccode\u003e@​devtechedge\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GruffElixir\"\u003e\u003ccode\u003e@​GruffElixir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.16.9\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.9/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.9\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positives for overloaded division (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28309\"\u003e#28309\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Avoid false positives for calls with keyword arguments (\u003ccode\u003eB009\u003c/code\u003e, \u003ccode\u003eB010\u003c/code\u003e, \u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28776\"\u003e#28776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow lazy imports to be used in deferred annotations (\u003ccode\u003eTID255\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28767\"\u003e#28767\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LibCST-based fixes for Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28616\"\u003e#28616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Mention stubs in the diagnostic message (\u003ccode\u003ePYI002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28542\"\u003e#28542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix horizontal overflow on the rules documentation page (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28699\"\u003e#28699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate rules table with category information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28651\"\u003e#28651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Clarify that \u003ccode\u003eANN401\u003c/code\u003e checks return types in addition to arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28334\"\u003e#28334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Document type-checker interaction (\u003ccode\u003eB010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28509\"\u003e#28509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27794\"\u003e#27794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Mention related isort settings (\u003ccode\u003eRUF022\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28719\"\u003e#28719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qinpei-dev\"\u003e\u003ccode\u003e@​qinpei-dev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanjayrohith\"\u003e\u003ccode\u003e@​sanjayrohith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webdevsamran\"\u003e\u003ccode\u003e@​webdevsamran\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaniebot\"\u003e\u003ccode\u003e@​zaniebot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spaceone\"\u003e\u003ccode\u003e@​spaceone\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IbrahimKhan12\"\u003e\u003ccode\u003e@​IbrahimKhan12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devtechedge\"\u003e\u003ccode\u003e@​devtechedge\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GruffElixir\"\u003e\u003ccode\u003e@​GruffElixir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.16.8\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-16.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVisit functional \u003ccode\u003eTypedDict\u003c/code\u003e keyword arguments correctly (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28584\"\u003e#28584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Detect nested \u003ccode\u003easync with\u003c/code\u003e under sync parent (\u003ccode\u003eSIM117\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27821\"\u003e#27821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve operand order in \u003ccode\u003eSIM109\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27824\"\u003e#27824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0be08a206f9c3180afd3e93bcc792ed5cb1f4db1\"\u003e\u003ccode\u003e0be08a2\u003c/code\u003e\u003c/a\u003e Bump version to 0.16.9 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28882\"\u003e#28882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b4920b72b354e7c715ab861ae23458874683bb02\"\u003e\u003ccode\u003eb4920b7\u003c/code\u003e\u003c/a\u003e Rename \u003ccode\u003eruff_cli\u003c/code\u003e to \u003ccode\u003eruff_command_line\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28881\"\u003e#28881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/47c751b95908a4d1f95f9ef8723036aae9da0b18\"\u003e\u003ccode\u003e47c751b\u003c/code\u003e\u003c/a\u003e Update dependency astral-sh/uv to v0.12.18 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28880\"\u003e#28880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8c244e56a1aeac31c26d2371ef26588e0632235c\"\u003e\u003ccode\u003e8c244e5\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Document \u003ccode\u003emap\u003c/code\u003e/generator exception behavior (\u003ccode\u003eC417\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5edf5a1d0a84663079e46983216059f06acea87d\"\u003e\u003ccode\u003e5edf5a1\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003etarget\u003c/code\u003e form in \u003ccode\u003erooster.version_files\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28876\"\u003e#28876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/915bb2b4bf9ae7eee47cf55646bbfebae254a23b\"\u003e\u003ccode\u003e915bb2b\u003c/code\u003e\u003c/a\u003e [ty] Prefer existing @ paths over response files in Ruff and ty (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28877\"\u003e#28877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4710e1aa962b13720cf64aa84eb279c5333896d7\"\u003e\u003ccode\u003e4710e1a\u003c/code\u003e\u003c/a\u003e ci(github): update version number in placeholder of issue template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28871\"\u003e#28871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eedfc62a75bf1ba86d48959b00eea75ae87eadca\"\u003e\u003ccode\u003eeedfc62\u003c/code\u003e\u003c/a\u003e [ty] Propagate outer type context through cast calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28855\"\u003e#28855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ceaa6a00830e1e350b8a23977a1a10ac467920a1\"\u003e\u003ccode\u003eceaa6a0\u003c/code\u003e\u003c/a\u003e [ty] Contain rendered code within Markdown fences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28869\"\u003e#28869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dba0f30615424b94f94a174bba6ce6cce4bf11ff\"\u003e\u003ccode\u003edba0f30\u003c/code\u003e\u003c/a\u003e authorize ruff-pre-commit dispatch via OIDC (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28867\"\u003e#28867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.16.7...0.16.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/kehao-playground/graphrag-web-ui/pull/94","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kehao-playground%2Fgraphrag-web-ui/issues/94","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/94/packages"}}]}