⬆️(dependencies) update python dependencies #1548
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==1.40.59->==1.40.69==7.6.1->==8.0.0==0.0.16->==0.0.17==0.28.0->==0.29.0==9.6.0->==9.7.0==3.9->==3.10==2.6.1->==2.7.1==0.12.42->==0.12.43==5.10.0->==5.10.2==8.4.2->==9.0.0==0.14.2->==0.14.4==2.42.1->==2.43.0Release Notes
boto/boto3 (boto3)
v1.40.69Compare Source
=======
controltower: [botocore] Added Parent Identifier support to ListEnabledControls and GetEnabledControl API. Implemented RemediationType support for Landing Zone operations: CreateLandingZone, UpdateLandingZone and GetLandingZone APIsec2: [botocore] Adds PrivateDnsPreference and PrivateDnsSpecifiedDomains to control private DNS resolution for resource and service network VPC endpoints and IpamScopeExternalAuthorityConfiguration to integrate Amazon VPC IPAM with a third-party IPAM servicekms: [botocore] Added support for new ECC_NIST_EDWARDS25519 AWS KMS key specopensearch: [botocore] This release introduces the Default Application feature, allowing users to set, change, or unset a preferred OpenSearch UI application on a per-region basis for a streamlined and consistent user experience.vpc-lattice: [botocore] Amazon VPC Lattice now supports custom domain name for resource configurationsv1.40.68Compare Source
=======
accessanalyzer: [botocore] New field totalActiveErrors added to getFindingsStatistics response.backup: [botocore] AWS Backup now supports customer-managed keys (CMK) for logically air-gapped vaults, enabling customers to maintain full control over their encryption key lifecycle. This feature helps organizations meet specific internal governance requirements or external regulatory compliance standards.connect: [botocore] Added support for Conditional Questions in Evaluation Forms. Introduced Auto Evaluation capability for Evaluation Forms and Contact Evaluations. Added new API operations: SearchEvaluationForms and SearchContactEvaluations.ec2: [botocore] Add Amazon EC2 R8a instance typesgamelift: [botocore] Amazon GameLift Servers now supports game builds that use the Windows 2022 operating system.identitystore: [botocore] IdentityStore API: added new KMSExceptionReason fields to the Exception object; added multiple new fields to the User APIs - UserStatus, Birthdate, Website and Photos; added multiple new metadata fields for User, Groups and Membership APIs - CreatedAt, CreatedBy, UpdatedAt and UpdatedBy.quicksight: [botocore] Support for New Data Prep Experiences3tables: [botocore] Adds support for tagging APIs for S3 Tabless3vectors: [botocore] Amazon S3 Vectors provides cost-effective, elastic, and durable vector storage for queries based on semantic meaning and similarity.sagemaker: [botocore] Added NodeProvisioningMode parameter to UpdateCluster API to determine how instance provisioning is handled during cluster operations; in Continuous mode. Added VpcId field in UpdateDomain request for SageMaker Unified Studio domains with no VPC to add a customer VPC.ssm: [botocore] Provides NoLongerSupportedException error messagev1.40.67Compare Source
=======
cloudfront: [botocore] This release adds new and updated API operations. You can now use the IpAddressType field to specify either ipv4 or dualstack for your Anycast static IP list. You can also enable cross-account resource sharing to share your VPC origins with other AWS accountsdatazone: [botocore] Added support for Project Resource Tagsec2: [botocore] This release adds AvailabilityZoneId support for DescribeFastSnapshotRestores, DisableFastSnapshotRestores, and EnableFastSnapshotRestores APIs.endpoint-rules: [botocore] Update endpoint-rules client to latest versionfsx: [botocore] Amazon FSx now enables secure management of Active Directory credentials through AWS Secrets Manager integration. Customers can use Secret ARNs instead of direct credentials when joining resources to Active Directory domains.groundstation: [botocore] Introduce CreateDataflowEndpointGroupV2 actions3: [botocore] Launch IPv6 dual-stack support for S3 Expresssagemaker: [botocore] Add new fields in SageMaker Hyperpod DescribeCluster API response: TargetStateCount, SoftwareUpdateStatus and ActiveSoftwareDeploymentConfig to provide AMI update progress visibility .v1.40.66Compare Source
=======
pinpoint-sms-voice-v2: [botocore] This release adds support for the CarrierLookup API, which returns information about a destination phone number including if the number is valid, the carrier, and more.v1.40.65Compare Source
=======
bedrock-agentcore-control: [botocore] Adds support for direct code deploy with CreateAgentRuntime and UpdateAgentRuntimebudgets: [botocore] Fix the AWS Budgets endpoint for the aws-eusc partition.ec2: [botocore] Add Amazon EC2 trn2.3xlarge instance type.ecs: [botocore] Documentation-only update for LINEAR and CANARY deployment strategies.endpoint-rules: [botocore] Update endpoint-rules client to latest versionkinesis: [botocore] Adds support for MinimumThroughputBillingCommitment with new UpdateAccountSettings API. Adds support to configure warm throughput for on-demand streams in new UpdateStreamWarmThroughput API and existing CreateStream API and UpdateStreamMode API.v1.40.64Compare Source
=======
connectcases: [botocore] Added two new case rule types: Parent Child Field Options (restricts child field options based on parent field value) and Hidden (controls child field visibility based on parent field value). Both enable dynamic field behavior within templates.ec2: [botocore] Amazon VPC IP Address Manager (IPAM) now supports automated prefix list management, allowing you to create rules that automatically populate customer-managed prefix lists with CIDRs from your IPAM pools or AWS resources based on tags, Regions, or other criteria.emr: [botocore] Update endpoint ruleset parameters casingendpoint-rules: [botocore] Update endpoint-rules client to latest versionfms: [botocore] Update endpoint ruleset parameters casingfsx: [botocore] Update endpoint ruleset parameters casinghealth: [botocore] Update endpoint ruleset parameters casingkinesis: [botocore] Update endpoint ruleset parameters casinglambda: [botocore] Add Python3.14 (python3.14) and Java 25 (java25) support to AWS Lambdalogs: [botocore] Update endpoint ruleset parameters casingmarketplace-catalog: [botocore] Update endpoint ruleset parameters casingmediaconvert: [botocore] Adds SlowPalPitchCorrection to audio pitch correction settings. Enables opacity for VideoOverlays. Adds REMUX_ALL option to enable multi-rendition passthrough to VideoSelector for allow listed accounts.omics: [botocore] Added WDL_LENIENT engine type that enables implicit typecasting of variable values to its compatible declared typespayment-cryptography: [botocore] Allow additional characters in the CertificateSubject for GetCertificateSigningRequest API.redshift: [botocore] Update endpoint ruleset parameters casingresourcegroupstaggingapi: [botocore] Update endpoint ruleset parameters casingsagemaker: [botocore] Allow update of platform identifier via UpdateNotebookInstance operation.savingsplans: [botocore] Add dual-stack endpoint support for Savings Planssnowball: [botocore] Update endpoint ruleset parameters casingssm-quicksetup: [botocore] Update endpoint ruleset parameters casingtextract: [botocore] Update endpoint ruleset parameters casingwaf: [botocore] Update endpoint ruleset parameters casingv1.40.63Compare Source
=======
amp: [botocore] Add Anomaly Detection APIs for Amazon Managed Prometheusapigateway: [botocore] Update endpoint ruleset parameters casingappconfig: [botocore] Update endpoint ruleset parameters casingappflow: [botocore] Update endpoint ruleset parameters casingapplicationcostprofiler: [botocore] Update endpoint ruleset parameters casingappmesh: [botocore] Update endpoint ruleset parameters casingappsync: [botocore] Update endpoint ruleset parameters casingartifact: [botocore] Update endpoint ruleset parameters casingauditmanager: [botocore] Update endpoint ruleset parameters casingbedrock-agent: [botocore] Update endpoint ruleset parameters casingbedrock-agentcore-control: [botocore] Web-Bot-Auth support for AgentCore Browser tool to help reduce captcha challenges.chime: [botocore] Update endpoint ruleset parameters casingcleanrooms: [botocore] Added support for advanced Spark configurations to optimize SQL performancecloudcontrol: [botocore] Update endpoint ruleset parameters casingclouddirectory: [botocore] Update endpoint ruleset parameters casingcloudsearch: [botocore] Update endpoint ruleset parameters casingcloudwatch: [botocore] Update endpoint ruleset parameters casingcodecatalyst: [botocore] Update endpoint ruleset parameters casingcodecommit: [botocore] Update endpoint ruleset parameters casingcodedeploy: [botocore] Update endpoint ruleset parameters casingcognito-sync: [botocore] Update endpoint ruleset parameters casingcompute-optimizer: [botocore] Update endpoint ruleset parameters casingconnectcases: [botocore] Update endpoint ruleset parameters casingdeadline: [botocore] Update endpoint ruleset parameters casingdevops-guru: [botocore] Update endpoint ruleset parameters casingdocdb: [botocore] Adding FailoverState and TagList to GlobalCluster and SynchronizationStatus to GlobalClusterMember.ecs: [botocore] Amazon ECS Service Connect now supports Envoy access logs, providing deeper observability into request-level traffic patterns and service interactions.eks-auth: [botocore] Update endpoint ruleset parameters casingelasticache: [botocore] Update endpoint ruleset parameters casingemr-serverless: [botocore] This release adds the capability to enable User Background Sessions for customers running Trusted Identity Propagation enabled Interactive Sessions on EMR Serverless Applications.endpoint-rules: [botocore] Update endpoint-rules client to latest versionfirehose: [botocore] Update endpoint ruleset parameters casingfrauddetector: [botocore] Update endpoint ruleset parameters casinggeo-places: [botocore] Update endpoint ruleset parameters casingglue: [botocore] This release adds the capability to enable User Background Sessions for customers running Trusted Identity Propagation enabled Interactive Sessions on AWS Glue.greengrassv2: [botocore] Update endpoint ruleset parameters casingiotevents-data: [botocore] Update endpoint ruleset parameters casingiot-managed-integrations: [botocore] Add a new GetManagedThingCertificate API to expose Iot ManagedIntegrations (MI) device certificate, and add "-" support for name, properties, actions and events in the CapabilityReportCapability object.keyspacesstreams: [botocore] Update endpoint ruleset parameters casingkms: [botocore] Add cross account VPC endpoint service connectivity support to CustomKeyStore.license-manager-linux-subscriptions: [botocore] Update endpoint ruleset parameters casingmarketplace-reporting: [botocore] Update endpoint ruleset parameters casingneptune: [botocore] Update endpoint ruleset parameters casingrtbfabric: [botocore] RTB Fabric documentation update.s3outposts: [botocore] Update endpoint ruleset parameters casingsagemaker-runtime: [botocore] Update endpoint ruleset parameters casingschemas: [botocore] Update endpoint ruleset parameters casingserverlessrepo: [botocore] Update endpoint ruleset parameters casingservicecatalog: [botocore] Update endpoint ruleset parameters casingsso: [botocore] Update endpoint ruleset parameters casingsts: [botocore] Update endpoint ruleset parameters casingv1.40.62Compare Source
=======
bedrock-runtime: [botocore] Add support for system tool and web citation response.v1.40.61Compare Source
=======
apigatewayv2: [botocore] Update endpoint ruleset parameters casingapplication-signals: [botocore] Added support for CloudWatch Synthetics Canary resources in ListAuditFindings API. This enhancement allows customers to retrieve audit findings specifically for CloudWatch Synthetics canaries and enables service-canary correlation analysis.backupsearch: [botocore] Update endpoint ruleset parameters casingbcm-pricing-calculator: [botocore] Update endpoint ruleset parameters casingbedrock-agent-runtime: [botocore] Update endpoint ruleset parameters casingbedrock-runtime: [botocore] Update endpoint ruleset parameters casingcleanroomsml: [botocore] Update endpoint ruleset parameters casingbotocore] The following clients have been removed per deprecation of the services - qldb, qldb-session, robomaker, lookoutmetrics, lookoutvision, iotfleethub, apptestcloud9: [botocore] Update endpoint ruleset parameters casingcloudsearchdomain: [botocore] Update endpoint ruleset parameters casingcodeconnections: [botocore] Update endpoint ruleset parameters casingcodeguru-security: [botocore] Update endpoint ruleset parameters casingdetective: [botocore] Update endpoint ruleset parameters casingec2: [botocore] This released the DescribeCapacityReservationTopology API.ecs: [botocore] Amazon ECS supports native linear and canary service deployments, allowing you to shift traffic in increments for more control.efs: [botocore] Update endpoint ruleset parameters casingelastictranscoder: [botocore] Update endpoint ruleset parameters casingemr-containers: [botocore] Update endpoint ruleset parameters casingendpoint-rules: [botocore] Update endpoint-rules client to latest versiongameliftstreams: [botocore] Add stream group expiration date and expired statusglacier: [botocore] Update endpoint ruleset parameters casinggroundstation: [botocore] Enable use of AzEl ephemeridesinspector-scan: [botocore] Update endpoint ruleset parameters casingkafkaconnect: [botocore] Update endpoint ruleset parameters casingkendra: [botocore] Update endpoint ruleset parameters casingkinesisvideo: [botocore] Update endpoint ruleset parameters casinglambda: [botocore] Added SerializedRequestEntityTooLargeException to Lambda Invoke APImarketplace-deployment: [botocore] Update endpoint ruleset parameters casingmediapackage-vod: [botocore] Update endpoint ruleset parameters casingmigrationhuborchestrator: [botocore] Update endpoint ruleset parameters casingnotifications: [botocore] Update endpoint ruleset parameters casingopensearch: [botocore] Update endpoint ruleset parameters casingorganizations: [botocore] Added Account State field to the ListDelegatedAdministrators API response.partnercentral-selling: [botocore] Update endpoint ruleset parameters casingpipes: [botocore] Update endpoint ruleset parameters casingram: [botocore] Update endpoint ruleset parameters casingresource-groups: [botocore] Update endpoint ruleset parameters casings3: [botocore] Amazon Simple Storage Service / Features: Add conditional writes in CopyObject on destination key to prevent unintended object modifications.s3control: [botocore] Update endpoint ruleset parameters casingsagemaker: [botocore] Amazon SageMaker now supports deleting training and processing jobs in a terminal status.sagemaker-featurestore-runtime: [botocore] Update endpoint ruleset parameters casingsecurity-ir: [botocore] Update endpoint ruleset parameters casingservicecatalog-appregistry: [botocore] Update endpoint ruleset parameters casingsqs: [botocore] Update endpoint ruleset parameters casingsupport-app: [botocore] Update endpoint ruleset parameters casingtaxsettings: [botocore] Update endpoint ruleset parameters casingtrustedadvisor: [botocore] Update endpoint ruleset parameters casingworkspaces: [botocore] Added IPv6 address support for WorkSpaces using Dual-Stack subnetsworkspaces-instances: [botocore] Update endpoint ruleset parameters casingxray: [botocore] Update endpoint ruleset parameters casingv1.40.60Compare Source
=======
accessanalyzer: [botocore] Update endpoint ruleset parameters casingaiops: [botocore] Update endpoint ruleset parameters casingathena: [botocore] Update endpoint ruleset parameters casingbackup-gateway: [botocore] Update endpoint ruleset parameters casingbedrock-data-automation: [botocore] Update endpoint ruleset parameters casingbraket: [botocore] Update endpoint ruleset parameters casingce: [botocore] Updated endpoint for eusc-de-east-1 region.chime-sdk-identity: [botocore] Update endpoint ruleset parameters casingchime-sdk-media-pipelines: [botocore] Update endpoint ruleset parameters casingcodeartifact: [botocore] Update endpoint ruleset parameters casingcodeguruprofiler: [botocore] Update endpoint ruleset parameters casingcognito-idp: [botocore] Update endpoint ruleset parameters casingcomprehend: [botocore] Update endpoint ruleset parameters casingconnectcampaigns: [botocore] Update endpoint ruleset parameters casingcontroltower: [botocore] Update endpoint ruleset parameters casingcost-optimization-hub: [botocore] Update endpoint ruleset parameters casingdax: [botocore] Update endpoint ruleset parameters casingelasticbeanstalk: [botocore] Update endpoint ruleset parameters casingendpoint-rules: [botocore] Update endpoint-rules client to latest versionentityresolution: [botocore] Update endpoint ruleset parameters casingforecast: [botocore] Update endpoint ruleset parameters casinggreengrass: [botocore] Update endpoint ruleset parameters casingiam: [botocore] Fixed missing SummaryMap keys in GetAccountSummary response that were being filtered out during deserialization in AWS Java SDK v2invoicing: [botocore] Update endpoint ruleset parameters casingkinesis: [botocore] Adds support for record sizes up to 10MiB and introduces new UpdateMaxRecordSize API to modify stream record size limits. Adds record size parameters to existing CreateStream and DescribeStreamSummary APIs for request and response payloads respectively.launch-wizard: [botocore] Update endpoint ruleset parameters casinglex-runtime: [botocore] Update endpoint ruleset parameters casingmanagedblockchain: [botocore] Update endpoint ruleset parameters casingmturk: [botocore] Update endpoint ruleset parameters casingneptune-graph: [botocore] Update endpoint ruleset parameters casingoutposts: [botocore] Update endpoint ruleset parameters casingpinpoint: [botocore] Update endpoint ruleset parameters casingrbin: [botocore] Update endpoint ruleset parameters casingrds-data: [botocore] Update endpoint ruleset parameters casingredshift-serverless: [botocore] Update endpoint ruleset parameters casingrekognition: [botocore] Update endpoint ruleset parameters casingrepostspace: [botocore] Update endpoint ruleset parameters casingroute53profiles: [botocore] Update endpoint ruleset parameters casingroute53resolver: [botocore] Update endpoint ruleset parameters casings3vectors: [botocore] Update endpoint ruleset parameters casingscheduler: [botocore] Update endpoint ruleset parameters casingsecretsmanager: [botocore] Update endpoint ruleset parameters casingses: [botocore] Update endpoint ruleset parameters casingshield: [botocore] Update endpoint ruleset parameters casingsimspaceweaver: [botocore] Update endpoint ruleset parameters casingsocialmessaging: [botocore] Update endpoint ruleset parameters casingssm-sap: [botocore] Update endpoint ruleset parameters casingsso-admin: [botocore] Update endpoint ruleset parameters casingstepfunctions: [botocore] Update endpoint ruleset parameters casingwaf-regional: [botocore] Update endpoint ruleset parameters casingworkmailmessageflow: [botocore] Update endpoint ruleset parameters casingSmileyChris/django-countries (django-countries)
v8.0.0Compare Source
Note: This release includes all changes from the yanked versions 7.8, 7.9, and 7.9.1, which were yanked because they inadvertently dropped Python 3.7 support without a major version bump.
Features
COUNTRIES_COMMON_NAMESis enabled (default).Bugfixes
COUNTRIES_OVERRIDEto support custom country codes that are 3 characters long. Previously, 3-character codes were incorrectly treated as alpha3 codes and resolved to existing countries. (#474)Improved Documentation
autocomplete_fieldsin admin or third-party admin filter packages likemore_admin_filters. (#473)Deprecations and Removals
Misc
just deploycommand and towncrier for changelog management.v7.9.1Compare Source
Bugfixes
COUNTRIES_OVERRIDEto support custom country codes that are 3 characters long. Previously, 3-character codes were incorrectly treated as alpha3 codes and resolved to existing countries. (#474)Note: This release was yanked because it inadvertently dropped Python 3.7 support without a major version bump. Use 8.0.0 or later instead.
v7.9Compare Source
Bugfixes
COUNTRIES_OVERRIDEto support custom country codes that are 3 characters long. Previously, 3-character codes were incorrectly treated as alpha3 codes and resolved to existing countries. (#474)Note: This release was yanked because it inadvertently dropped Python 3.7 support without a major version bump. Use 8.0.0 or later instead.
v7.8Compare Source
Where'd 7.7 go? Well 7.6 was accidentally bumped to 7.8 because of the new release process!
Note: This release was yanked because it inadvertently dropped Python 3.7 support without a major version bump. Use 8.0.0 or later instead.
Improved Documentation
Misc
just deploycommand and towncrier for changelog management.suitenumerique/django-lasuite (django-lasuite)
v0.0.17Compare Source
Added
Fixed
tfranzel/drf-spectacular (drf_spectacular)
v0.29.0Compare Source
#​1466 <https://github.com/tfranzel/drf-spectacular/issues/1466>_#​1392 <https://github.com/tfranzel/drf-spectacular/issues/1392>_#​1450 <https://github.com/tfranzel/drf-spectacular/issues/1450>_) [Enric Pou]#​1432 <https://github.com/tfranzel/drf-spectacular/issues/1432>_) [Chris Wesseling]#​1432 <https://github.com/tfranzel/drf-spectacular/issues/1432>_#​1463 <https://github.com/tfranzel/drf-spectacular/issues/1463>_OpenApiViewExtensionnot providing view instance underself.target(#​1405 <https://github.com/tfranzel/drf-spectacular/issues/1405>_) [astro-stan]#​1436 <https://github.com/tfranzel/drf-spectacular/issues/1436>_#​1461 <https://github.com/tfranzel/drf-spectacular/issues/1461>_#​1459 <https://github.com/tfranzel/drf-spectacular/issues/1459>_#​1435 <https://github.com/tfranzel/drf-spectacular/issues/1435>_)#​1444 <https://github.com/tfranzel/drf-spectacular/issues/1444>_)#​1401 <https://github.com/tfranzel/drf-spectacular/issues/1401>_#​1389 <https://github.com/tfranzel/drf-spectacular/issues/1389>_) [Mike Manger]#​1354 <https://github.com/tfranzel/drf-spectacular/issues/1354>_Breaking changes / important additions:
ipython/ipython (ipython)
v9.7.0Compare Source
Python-Markdown/markdown (markdown)
v3.10Compare Source
openai/openai-python (openai)
v2.7.1Compare Source
Full Changelog: v2.7.0...v2.7.1
Bug Fixes
v2.7.0Compare Source
Full Changelog: v2.7.0...v2.7.1
Bug Fixes
y-crdt/pycrdt (pycrdt)
v0.12.43Compare Source
pycrdta namespace package.pytest-dev/pyfakefs (pyfakefs)
v5.10.2Compare Source
Fixes a problem with
pathlib.globin Python 3.14.Fixes
pathlib.glob()for Python 3.14 (see #1239)v5.10.1Compare Source
Fixes a regression introduced in version 5.9.0.
Fixes
shutil.copytreeif copying using anshutilfunction ascopy_functionargument (see #1235)pytest-dev/pytest (pytest)
v9.0.0Compare Source
pytest 9.0.0 (2025-11-05)
New features
#1367: Support for subtests has been added.
subtests <subtests>are an alternative to parametrization, useful in situations where the parametrization values are not all known at collection time.Example:
Each assert failure or error is caught by the context manager and reported individually, giving a clear picture of all files that are missing a docstring.
In addition,
unittest.TestCase.subTestis now also supported.This feature was originally implemented as a separate plugin in pytest-subtests, but since then has been merged into the core.
#13743: Added support for native TOML configuration files.
While pytest, since version 6, supports configuration in
pyproject.tomlfiles under[tool.pytest.ini_options],it does so in an "INI compatibility mode", where all configuration values are treated as strings or list of strings.
Now, pytest supports the native TOML data model.
In
pyproject.toml, the native TOML configuration is under the[tool.pytest]table.The
[tool.pytest.ini_options]table remains supported, but both tables cannot be used at the same time.If you prefer to use a separate configuration file, or don't use
pyproject.toml, you can usepytest.tomlor.pytest.toml:The documentation now (sometimes) shows configuration snippets in both TOML and INI formats, in a tabbed interface.
See
config file formatsfor full details.#13823: Added a "strict mode" enabled by the
strictconfiguration option.When set to
true, thestrictoption currently enablesstrict_configstrict_markersstrict_parametrization_idsstrict_xfailThe individual strictness options can be explicitly set to override the global
strictsetting.The previously-deprecated
--strictcommand-line flag now enables strict mode.If pytest adds new strictness options in the future, they will also be enabled in strict mode.
Therefore, you should only enable strict mode if you use a pinned/locked version of pytest,
or if you want to proactively adopt new strictness options as they are added.
See
strict modefor more details.#13737: Added the
strict_parametrization_idsconfiguration option.When set, pytest emits an error if it detects non-unique parameter set IDs,
rather than automatically making the IDs unique by adding 0, 1, ... to them.
This can be particularly useful for catching unintended duplicates.
#13072: Added support for displaying test session progress in the terminal tab using the OSC 9;4; ANSI sequence.
When pytest runs in a supported terminal emulator like ConEmu, Gnome Terminal, Ptyxis, Windows Terminal, Kitty or Ghostty,
you'll see the progress in the terminal tab or window,
allowing you to monitor pytest's progress at a glance.
This feature is automatically enabled when running in a TTY. It is implemented as an internal plugin. If needed, it can be disabled as follows:
-p no:terminalprogresson the command line or via an environment variablePYTEST_ADDOPTS='-p no:terminalprogress'.addopts = "-p no:terminalprogress".#478: Support PEP420 (implicit namespace packages) as --pyargs target when
consider_namespace_packagesis true in the config.Previously, this option only impacted package imports, now it also impacts tests discovery.
#13678: Added a new
faulthandler_exit_on_timeoutconfiguration option set to "false" by default to let faulthandler interrupt the pytest process after a timeout in case of deadlock.Previously, a faulthandler timeout would only dump the traceback of all threads to stderr, but would not interrupt the pytest process.
-- by
ogrisel.#13829: Added support for configuration option aliases via the
aliasesparameter inParser.addini() <pytest.Parser.addini>.Plugins can now register alternative names for configuration options,
allowing for more flexibility in configuration naming and supporting backward compatibility when renaming options.
The canonical name always takes precedence if both the canonical name and an alias are specified in the configuration file.
Improvements in existing functionality
#13330: Having pytest configuration spread over more than one file (for example having both a
pytest.inifile andpyproject.tomlwith a[tool.pytest.ini_options]table) will now print a warning to make it clearer to the user that only one of them is actually used.-- by
sgaist#13574: The single argument
--versionno longer loads the entire plugin infrastructure, making it faster and more reliable when displaying only the pytest version.Passing
--versiontwice (e.g.,pytest --version --version) retains the original behavior, showing both the pytest version and plugin information.#13823: Added
strict_xfailas an alias to thexfail_strictoption,strict_configas an alias to the--strict-configflag,and
strict_markersas an alias to the--strict-markersflag.This makes all strictness options consistently have configuration options with the prefix
strict_.#13700: --junitxml no longer prints the generated xml file summary at the end of the pytest session when --quiet is given.
#13732: Previously, when filtering warnings, pytest would fail if the filter referenced a class that could not be imported. Now, this only outputs a message indicating the problem.
#13859: Clarify the error message for pytest.raises() when a regex match fails.
#13861: Better sentence structure in a test's expected error message. Previously, the error message would be "expected exception must be <expected>, but got <actual>". Now, it is "Expected <expected>, but got <actual>".
Removals and backward incompatible breaking changes
#12083: Fixed a bug where an invocation such as pytest a/ a/b would cause only tests from a/b to run, and not other tests under a/.
The fix entails a few breaking changes to how such overlapping arguments and duplicates are handled:
If you rely on these behaviors, consider using
--keep-duplicates <duplicate-paths>, which retains its existing behavior (including the bug).#13719: Support for Python 3.9 is dropped following its end of life.
#13766: Previously, pytest would assume it was running in a CI/CD environment if either of the environment variables $CI or $BUILD_NUMBER was defined;
now, CI mode is only activated if at least one of those variables is defined and set to a non-empty value.
#13779: PytestRemovedIn9Warning deprecation warnings are now errors by default.
Following our plan to remove deprecated features with as little disruption as
possible, all warnings of type
PytestRemovedIn9Warningnow generate errorsinstead of warning messages by default.
The affected features will be effectively removed in pytest 9.1, so please consult the
deprecationssection in the docs for directions on how to update existing code.In the pytest
9.0.Xseries, it is possible to change the errors back into warnings as astopgap measure by adding this to your
pytest.inifile:But this will stop working when pytest
9.1is released.If you have concerns about the removal of a specific feature, please add a
comment to
13779.Deprecations (removal in next major release)
monkeypatch.syspath_prepend() <pytest.MonkeyPatch.syspath_prepend>now issues a deprecation warning when the prepended path contains legacy namespace packages (those usingpkg_resources.declare_namespace()).Users should migrate to native namespace packages (
420).See
monkeypatch-fixup-namespace-packagesfor details.Bug fixes
#13445: Made the type annotations of
pytest.skipand friends more spec-complaint to have them work across more type checkers.#13537: Fixed a bug in which
ExceptionGroupwith onlySkippedexceptions in teardown was not handled correctly and showed as error.#13598: Fixed possible collection confusion on Windows when short paths and symlinks are involved.
#13716: Fixed a bug where a nonsensical invocation like
pytest x.py[a](a file cannot be parametrized) was silently treated aspytest x.py. This is now a usage error.#13722: Fixed a misleading assertion failure message when using
pytest.approxon mappings with differing lengths.#13773: Fixed the static fixture closure calculation to properly consider transitive dependencies requested by overridden fixtures.
#13816: Fixed
pytest.approxwhich now returns a clearer error message when comparing mappings with different keys.#13849: Hidden
.pytest.inifiles are now picked up as the config file even if empty.This was an inconsistency with non-hidden
pytest.ini.#13865: Fixed --show-capture with --tb=line.
#13522: Fixed
pytesterin subprocess mode ignored all :attr`pytester.plugins <pytest.Pytester.plugins>` except the first.Fixed
pytesterin subprocess mode silently ignored non-strpytester.plugins <pytest.Pytester.plugins>.Now it errors instead.
If you are affected by this, specify the plugin by name, or switch the affected tests to use
pytester.runpytest_inprocess <pytest.Pytester.runpytest_inprocess>explicitly instead.Packaging updates and notes for downstreams
iniconfigandpackagingwere bumped to1.0.1and22.0.0, respectively.Contributor-facing changes
Configuration
📅 Schedule: Branch creation - "before 7am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.