chore(deps): bump the python-minor-patch group across 1 directory with 12 updates
Bumps the python-minor-patch group with 12 updates in the / directory:
| Package | From | To |
|---|---|---|
| pydantic | 2.12.5 | 2.14.2 |
| langchain-core | 1.6.3 | 1.7.3 |
| langchain | 1.4.1 | 1.4.7 |
| langchain-openai | 1.1.14 | 1.7.3 |
| openai | 2.32.0 | 3.42.1 |
| python-dotenv | 1.2.1 | 1.2.4 |
| hypothesis | 6.148.8 | 6.170.14 |
| pytest | 9.1.1 | 9.2.0 |
| pytest-asyncio | 1.3.0 | 1.4.1 |
| pytest-cov | 7.0.0 | 7.1.0 |
| ruff | 0.14.10 | 0.17.3 |
| ty | 0.0.7 | 0.0.95 |
Updates pydantic from 2.12.5 to 2.14.2
Release notes
Sourced from pydantic's releases.
v2.14.2 2026-10-29
v2.14.2 (2026-10-29)
This release addresses 2 security issues, https://github.com/pydantic/pydantic/security/advisories/GHSA-qpmf-fgh3-ff25 and https://github.com/pydantic/pydantic/security/advisories/GHSA-3r8g-cqwr-jr29.
Packaging
- Bump PyO3 to 0.30.1, jiter to 0.18.0, use
PyFrozenDictby@Viicosin #14003- Bump speedate to v0.18.0 by
@Viicosin #14007- Publish
pydantic-corewheels for PyPy 8.0 (pp80ABI) by@Viicosin #14083Performance
- Avoid Python tuple allocation during model fields validation by
@Viicosin #13955- Lazily call repr of values during nested union serialization by
@Viicosin #14082- Skip decorator field checks when no field decorators exist by
@alexmojakiin #14111- Avoid heap allocation for small JSON model field buffers by
@alexmojakiin #14113Fixes
Make JSON validation by iteration consistent with Python approach by
@davidhewittin #13275.JSON validation now handles field lookup and extra data the same way as Python validation. In particular, keys that only match an unused alias or field name are now treated as extra data, instead of being silently dropped:
from pydantic import BaseModel, ConfigDict from pydantic.alias_generators import to_camelclass Page(BaseModel):
model_config = ConfigDict(extra='forbid', alias_generator=to_camel)page_size: int = 10Page.model_validate_json('{"page_size": 50}')
Before: Page(page_size=10)
After: ValidationError (extra_forbidden)
See the pull request for the full list of behavior changes. This change addresses https://github.com/pydantic/pydantic/security/advisories/GHSA-qpmf-fgh3-ff25.
Ignore extra data matching a field name in
TypedDictand dataclasses withextra=allowby@Viicosin #14090. Addresses https://github.com/pydantic/pydantic/security/advisories/GHSA-3r8g-cqwr-jr29.Fix unpickling of generic classes defined in separate module by
@Viicosin #13994Support explicit
by_aliasoverridingvalidate_by_aliasin validation JSON schemas by@Viicosin #13997Fix mypy plugin crash on deferred empty model by
@ilevkivskyiin #14027Fix infinite recursion when validating an invalid default with
PydanticUseDefaultby@Viicosin #14028Implement recursion guard for
validate_strings()by@Viicosin #14029
... (truncated)
Changelog
Sourced from pydantic's changelog.
v2.14.2 (2026-10-29)
What's Changed
Packaging
- Bump PyO3 to 0.30.1, jiter to 0.18.0, use
PyFrozenDictby@Viicosin #14003- Bump speedate to v0.18.0 by
@Viicosin #14007- Publish
pydantic-corewheels for PyPy 8.0 (pp80ABI) by@Viicosin #14083Performance
- Avoid Python tuple allocation during model fields validation by
@Viicosin #13955- Lazily call repr of values during nested union serialization by
@Viicosin #14082- Skip decorator field checks when no field decorators exist by
@alexmojakiin #14111- Avoid heap allocation for small JSON model field buffers by
@alexmojakiin #14113Fixes
Make JSON validation by iteration consistent with Python approach by
@davidhewittin #13275.JSON validation now handles field lookup and extra data the same way as Python validation. In particular, keys that only match an unused alias or field name are now treated as extra data, instead of being silently dropped:
from pydantic import BaseModel, ConfigDict from pydantic.alias_generators import to_camelclass Page(BaseModel):
model_config = ConfigDict(extra='forbid', alias_generator=to_camel)page_size: int = 10Page.model_validate_json('{"page_size": 50}')
Before: Page(page_size=10)
After: ValidationError (extra_forbidden)
See the pull request for the full list of behavior changes.
Fix unpickling of generic classes defined in separate module by
@Viicosin #13994Support explicit
by_aliasoverridingvalidate_by_aliasin validation JSON schemas by@Viicosin #13997Fix mypy plugin crash on deferred empty model by
@ilevkivskyiin #14027Fix infinite recursion when validating an invalid default with
PydanticUseDefaultby@Viicosin #14028Implement recursion guard for
validate_strings()by@Viicosin #14029Support named tuples in
Sequenceserialization by@Viicosin #14033
... (truncated)
Commits
aa540acUpdate changelog for v2.14.26cde12fUpdate changelog for v2.14.22db7c25Fix deep copy of self-referential modelsd783154Update changelog for v2.14.2df49b6cAvoid heap allocation for small JSON model field bufferscd93e69Skip decorator field checks when no field decorators exist2771e57Make JSON validation by iteration consistent with Python approach8102e3fAvoid Python tuple allocation during model fields validationdd139b5Bumppydantic.v1namespace to v1.10.2766155f9Prepare release v2.14.2- Additional commits viewable in compare view
Updates langchain-core from 1.6.3 to 1.7.3
Release notes
Sourced from langchain-core's releases.
langchain-core==1.7.3
Changes since langchain-core==1.7.2
release(core): 1.7.3 (#41564)
langchain-core==1.7.2
Changes since langchain-core==1.7.1
release(core): 1.7.2 (#41562) feat(core): add
add_notification_metadataandget_notification_metadata(#41540) fix(core): stopmerge_contentfrom changing the first message's content (#41502)langchain-core==1.7.1
Changes since langchain-core==1.7.0
release(core): version 1.7.1 (#41548) fix(core): preserve gateway tracing metadata in v3 streams (#41504) fix(core): escape node metadata in Mermaid labels (#41512) chore(deps): bump the minor-and-patch group across 3 directories with 32 updates (#41465) chore(deps-dev): bump setuptools from 83.0.0 to 84.1.0 in /libs/core (#41442) chore(deps): bump nbconvert from 7.17.1 to 7.17.2 in /libs/core (#41425) chore(infra): relax third-party dependency upper bounds (#41407)
langchain-core==1.7.0
Changes since langchain-core==1.6.13
release(core): 1.7.0 (#41418) feat(core): emit
tool-call-deltafor streamed tool-call args (#41257)Notes
- Tool-call args now stream as
tool-call-deltaslices instead ofblock-deltasnapshots of the args so far. If you read raw stream events and theirblock-deltaargs mid-stream, readtool-call-deltainstead..tool_calls.get()and.outputare unchanged. To keep snapshots, pinlangchain-core<1.7.- Since 1.6.13, iterating
ChatModelStream.tool_callsyields each call's new args slice, not a snapshot of the args so far.langchain-core==1.6.13
Changes since langchain-core==1.6.12
release(core): 1.6.13 (#41397) chore(deps): bump certifi from 2025.11.12 to 2026.10.19 in /libs/core (#41373) feat(core,langchain,standard-tests): read
tool-call-deltain stream consumers (#41246)langchain-core==1.6.12
Changes since langchain-core==1.6.11
release(core): 1.6.12 (#41277) fix(core): propagate extras on content-block-start events (#41272)
langchain-core==1.6.11
Changes since langchain-core==1.6.10
... (truncated)
Commits
864754crelease(core): 1.7.3 (#41564)51a3a6achore(infra): ask how bug reports were discovered (#41563)0027e67release(core): 1.7.2 (#41562)7f46a2edocs: update OpenWiki (#41524)7ce3593feat(core): addadd_notification_metadataandget_notification_metadata(...5029a0fchore(model-profiles): refresh model profile data (#41556)3505689fix(anthropic): handle null cache-creation token counts (#41553)8875dc8fix(fireworks): promote reranking out of beta (#41551)399fd2efix(core): stopmerge_contentfrom changing the first message's content (#4...e633868chore(deps): bump authlib from 1.7.2 to 1.9.1 in /libs/langchain_v1 (#41539)- Additional commits viewable in compare view
Updates langchain from 1.4.1 to 1.4.7
Release notes
Sourced from langchain's releases.
langchain==1.4.7
Changes since langchain==1.4.6
chore(langchain): update lockfile (#41402) release(langchain): 1.4.7 (#41401) chore(deps): bump certifi from 2025.11.12 to 2026.10.19 in /libs/langchain_v1 (#41370) feat(core,langchain,standard-tests): read
tool-call-deltain stream consumers (#41246) chore(deps): bump aiohttp from 3.14.4 to 3.14.5 in /libs/langchain_v1 (#41360) chore(deps): bump aiohttp from 3.14.3 to 3.14.4 in /libs/langchain_v1 (#41330) chore(deps): bump mcp from 2.1.1 to 2.2.0 in /libs/langchain_v1 (#41270) feat(core): accept address inside LangChainTracer (#41006)langchain==1.4.6
Changes since langchain==1.4.5
release(langchain): 1.4.6 (#41247) feat(langchain): add opt-in per-call interrupts to HITL middleware (#41062)
langchain==1.4.5
Changes since langchain==1.4.4
release(langchain): 1.4.5 (#41226) feat(langchain): accept
summarizerinSummarizationMiddleware(#41225)langchain==1.4.4
Changes since langchain==1.4.3
release(langchain): 1.4.4 (#41163) fix(langchain): (SummarizationMiddleware) retry summary step on context overflow (#41159) chore(deps): bump fsspec from 2026.6.0 to 2026.9.0 in /libs/langchain_v1 (#41097) chore(deps): bump multidict from 6.7.0 to 6.9.1 in /libs/langchain_v1 (#41075) chore(deps): bump langgraph-sdk from 0.4.2 to 0.4.4 in /libs/langchain_v1 (#41074) chore(deps): bump fsspec from 2025.10.0 to 2026.6.0 in /libs/langchain_v1 (#41071) chore(langchain): bump minimum FastMCP to 4.0.11 (#41054) chore(deps): bump pyjwt from 2.13.0 to 2.15.0 in /libs/langchain_v1 (#40939) chore(deps): bump urllib3 from 2.7.0 to 2.8.0 in /libs/langchain_v1 (#40943)
langchain-openai==1.4.3
Changes since langchain-openai==1.4.2
release(openai): 1.4.3 (#39485) fix(openai): filter invalid tool calls from content (#39366) chore(openai): update guidance for responses API for OpenAI-compatible providers (#39327) chore(openai): update docstring for
include_response_headers(#39326)langchain==1.4.3
Changes since langchain==1.4.2
release(langchain): 1.4.3 (#40888) fix(langchain): sanitize cache settings for fallback models (#40886)
... (truncated)
Commits
fbb8a35chore(langchain): update lockfile (#41402)ad92e36release(langchain): 1.4.7 (#41401)bdf0f53release(core): 1.6.13 (#41397)59be9eechore(text-splitters): bump certifi to 2026.10.19 (#41393)82ef933release(perplexity): 1.4.2 (#41392)fc23e66chore(model-profiles): refresh model profile data (#41354)331e6bechore(deps): bump certifi from 2025.11.12 to 2026.10.19 in /libs/partners/ant...144b0b4chore(deps): bump certifi from 2025.8.3 to 2026.10.19 in /libs/partners/chrom...9b5ae66chore(deps): bump certifi from 2025.8.3 to 2026.10.19 in /libs/partners/deeps...c773a1bchore(deps): bump certifi from 2025.8.3 to 2026.10.19 in /libs/partners/exa (...- Additional commits viewable in compare view
Updates langchain-openai from 1.1.14 to 1.7.3
Release notes
Sourced from langchain-openai's releases.
langchain-openai==1.7.3
Changes since langchain-openai==1.7.2
test(openai): use current lightweight model in integration tests (#41509) release(openai): 1.7.3 (#41506) chore(model-profiles): refresh openai model profile data (#41505) build(infra): patch test-only Pillow without dropping Python 3.10 (#41484) revert: patch vulnerable integration dependencies (#41481) build(deps): patch vulnerable integration dependencies (#41473) chore(infra): relax third-party dependency upper bounds (#41407) chore(deps): bump aiohttp from 3.14.4 to 3.14.5 in /libs/partners/openai (#41379) chore(deps): bump certifi from 2025.10.5 to 2026.10.19 in /libs/partners/openai (#41380) chore(deps): bump aiohttp from 3.14.3 to 3.14.4 in /libs/partners/openai (#41362) chore(model-profiles): refresh model profile data (#41325) chore(deps): bump pytest from 9.0.3 to 9.1.1 in /libs/partners/openai (#41328) chore(deps): bump pygments from 2.20.0 to 2.21.0 in /libs/partners/openai (#41333) chore(deps): bump requests from 2.33.0 to 2.34.2 in /libs/partners/openai (#41331) chore(deps): bump orjson from 3.11.6 to 3.13.0 in /libs/partners/openai (#41329) fix: fix dependencies in some partner packages (#41266)
langchain-openai==1.7.2
Changes since langchain-openai==1.7.1
release(openai): 1.7.2 (#41245) fix(openai): keep Responses stream items on one block when output_index drifts (#41121)
langchain-openai==1.7.1
Changes since langchain-openai==1.7.0
release(openai): 1.7.1 (#41222) feat(core,anthropic,openai): declare mid-conversation support in model profiles (#41180)
langchain-openai==1.7.0
Changes since langchain-openai==1.6.7
release(openai): 1.7.0 (#41154) feat(openai): support decisions api (#41125) chore(deps): bump langgraph-sdk from 0.4.4 to 0.4.6 in /libs/partners/openai (#41096) chore(deps): bump langgraph-sdk from 0.4.2 to 0.4.4 in /libs/partners/openai (#41072) chore(deps): bump pyjwt from 2.15.0 to 2.15.1 in /libs/partners/openai (#40951) chore(deps): bump urllib3 from 2.7.0 to 2.8.0 in /libs/partners/openai (#40952)
langchain-openai==1.6.7
Changes since langchain-openai==1.6.6
release(openai): 1.6.7 (#40933) chore(model-profiles): refresh model profile data (#40924) test(openai): drop retired completions live tests (#40910) chore(model-profiles): refresh model profile data (#40869) feat(openai): discover Azure workload identity (#40532)
... (truncated)
Commits
575db57test(openai): use current lightweight model in integration tests (#41509)0d29456release(openai): 1.7.3 (#41506)8635846chore(model-profiles): refresh openai model profile data (#41505)0c09d02chore(deps): bump the minor-and-patch group across 3 directories with 32 upda...621a915ci(infra): harden release workflow against supply-chain tampering (#41489)b2f6837docs: update OpenWiki (#41497)7b8bc18chore(model-profiles): refresh model profile data (#41494)d57f1eabuild(infra): avoid vulnerable filelock releases without dropping compatibili...2cc234cci(infra): run matrix regression tests before generating jobs (#41487)28ec094build(infra): patch test-only Pillow without dropping Python 3.10 (#41484)- Additional commits viewable in compare view
Updates openai from 2.32.0 to 3.42.1
Release notes
Sourced from openai's releases.
v3.42.1
3.42.1 (2026-11-01)
Bug Fixes
- api: preserve Responses WebSocket connection behavior (#4221) (38075d8)
- realtime: validate beta WebSocket authentication profiles (#4218) (3622a97)
Refactors
v3.42.0
3.42.0 (2026-10-31)
Features
- api: add agent context compaction settings (#4209) (f552fcf)
- api: add agent session review and tool settings (#4217) (a63c4cd)
- api: add experimental agent time awareness (#4211) (10f9dd0)
- api: add image edit markup overlays (#4210) (72c656d)
- api: add organization external key management (#4205) (3ee373e)
- api: add SIP DTMF commands and delivery events (#4208) (f9f3f76)
- api: improve WebSocket recovery and delivery reporting (#4213) (68b962c)
- api: keep callable API keys scoped to each request (#4216) (85bb536)
- api: support response format updates and local output types (#4212) (bd61e84)
- api: support WebSocket warmup and preserve cleanup cancellation (#4215) (9abd656)
Bug Fixes
v3.41.0
3.41.0 (2026-10-28)
Features
- api: accept typed references in Realtime response inputs (#4189) (8ecb487)
- api: add response tool usage models (#4201) (55fc500)
- api: filter agent sessions by metadata (#4200) (77fd116)
- websocket: recover queued binary frames after reconnect (#4191) (f079868)
Bug Fixes
... (truncated)
Changelog
Sourced from openai's changelog.
3.42.1 (2026-11-01)
Bug Fixes
- api: preserve Responses WebSocket connection behavior (#4221) (38075d8)
- realtime: validate beta WebSocket authentication profiles (#4218) (3622a97)
Refactors
3.42.0 (2026-10-31)
Features
- api: add agent context compaction settings (#4209) (f552fcf)
- api: add agent session review and tool settings (#4217) (a63c4cd)
- api: add experimental agent time awareness (#4211) (10f9dd0)
- api: add image edit markup overlays (#4210) (72c656d)
- api: add organization external key management (#4205) (3ee373e)
- api: add SIP DTMF commands and delivery events (#4208) (f9f3f76)
- api: improve WebSocket recovery and delivery reporting (#4213) (68b962c)
- api: keep callable API keys scoped to each request (#4216) (85bb536)
- api: support response format updates and local output types (#4212) (bd61e84)
- api: support WebSocket warmup and preserve cleanup cancellation (#4215) (9abd656)
Bug Fixes
3.41.0 (2026-10-28)
Features
- api: accept typed references in Realtime response inputs (#4189) (8ecb487)
- api: add response tool usage models (#4201) (55fc500)
- api: filter agent sessions by metadata (#4200) (77fd116)
- websocket: recover queued binary frames after reconnect (#4191) (f079868)
Bug Fixes
... (truncated)
Commits
190dd5arelease: 3.42.1 (#4220)38075d8fix(api): preserve Responses WebSocket connection behavior (#4221)3622a97fix(realtime): validate beta WebSocket authentication profiles (#4218)83ed269refactor(websocket): add SDK-owned Responses policy helpers (#4219)0dcd904release: 3.42.0 (#4206)a63c4cdfeat(api): add agent session review and tool settings (#4217)9abd656feat(api): support WebSocket warmup and preserve cleanup cancellation (#4215)85bb536feat(api): keep callable API keys scoped to each request (#4216)bd61e84feat(api): support response format updates and local output types (#4212)68b962cfeat(api): improve WebSocket recovery and delivery reporting (#4213)- Additional commits viewable in compare view
Updates python-dotenv from 1.2.1 to 1.2.4
Release notes
Sourced from python-dotenv's releases.
v1.2.4
Fixed
dotenv getno longer exits with code 1 for empty string values (KEY=) by [@ShamikOfficial] in #700- An unquoted empty value followed by an inline comment (e.g.
KEY= # comment) is now parsed as an empty string instead of the comment text by [@Noethix55555] in #663dotenv run --no-overridenow expands variable references with the same precedence asload_dotenv(override=False), so a value like${BASE}/suffixuses the existingBASEfrom the environment instead of the one from the.envfile by [@ROTl24] in #698v1.2.3
Fixed
- Strip a leading UTF-8 BOM from
.envfile 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 [@h1whelan] in #640set_keynow 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 [@dchaudhari7177] in #680dotenv runnow prints a friendly error instead of a traceback when no command is given by [@bbc2] in #606- Cache the parsed result for empty
.envfiles so repeateddotenv_values/load_dotenvcalls no longer re-read the file by [@ReinerBRO] in #638v1.2.2
Added
- Support for Python 3.14, including the free-threaded (3.14t) build. (#)
Changed
- The
dotenv runcommand now forwards flags directly to the specified command by@bbc2in theskumar/python-dotenv#607- Improved documentation clarity regarding override behavior and the reference page.
- Updated PyPy support to version 3.11.
- Documentation for FIFO file support.
- Support for Python 3.9.
Fixed
- Improved
set_keyandunset_keybehavior when interacting with symlinks by@bbc2in #790c5- Corrected the license specifier and added missing Python 3.14 classifiers in package metadata by
@JYOuyangin theskumar/python-dotenv#590Breaking Changes
dotenv.set_keyanddotenv.unset_keyused to follow symlinks in some situations. This is no longer the case. For that behavior to be restored in all cases,follow_symlinks=Trueshould be used.In the CLI,
setandunsetused to follow symlinks in some situations. This is no longer the case.
dotenv.set_key,dotenv.unset_keyand the CLI commandssetandunsetused to reset the file mode of the modified .env file to0o600in some situations. This is no longer the case: The original mode of the file is now preserved. Is the file needed to be created or wasn't a regular file, mode0o600is used.
... (truncated)
Changelog
Sourced from python-dotenv's changelog.
[1.2.4] - 2026-10-01
Fixed
dotenv getno longer exits with code 1 for empty string values (KEY=) by [@ShamikOfficial] in #700- An unquoted empty value followed by an inline comment (e.g.
KEY= # comment) is now parsed as an empty string instead of the comment text by [@Noethix55555] in #663dotenv run --no-overridenow expands variable references with the same precedence asload_dotenv(override=False), so a value like${BASE}/suffixuses the existingBASEfrom the environment instead of the one from the.envfile by [@ROTl24] in #698[1.2.3] - 2026-08-16
Fixed
- Strip a leading UTF-8 BOM from
.envfile 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 [@h1whelan] in #640set_keynow 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 [@dchaudhari7177] in #680dotenv runnow prints a friendly error instead of a traceback when no command is given by [@bbc2] in #606- Cache the parsed result for empty
.envfiles so repeateddotenv_values/load_dotenvcalls no longer re-read the file by [@ReinerBRO] in #638[1.2.2] - 2026-03-01
Added
- Support for Python 3.14, including the free-threaded (3.14t) build. (#588)
Changed
- The
dotenv runcommand now forwards flags directly to the specified command by [@bbc2] in #607- Improved documentation clarity regarding override behavior and the reference page.
- Updated PyPy support to version 3.11.
- Documentation for FIFO file support.
- Dropped Support for Python 3.9.
Fixed
- Improved
set_keyandunset_keybehavior when interacting with symlinks by [@bbc2] in [790c5c0]- Corrected the license specifier and added missing Python 3.14 classifiers in package metadata by [
@JYOuyang] in #590Breaking Changes
dotenv.set_keyanddotenv.unset_keyused to follow symlinks in some situations. This is no longer the case. For that behavior to be restored in all cases,follow_symlinks=Trueshould be used.In the CLI,
setandunsetused to follow symlinks in some situations. This is no longer the case.
dotenv.set_key,dotenv.unset_keyand the CLI commandssetandunsetused to reset the file mode of the modified .env file to0o600in some situations. This is no longer the case: The original mode of the file is now preserved. Is the file needed to be created or wasn't a regular file, mode0o600is used.
Commits
a565c2cBump version: 1.2.3 → 1.2.44a7abd0docs: add 1.2.4 release notes (#663, #698, #700)f215c02fix: dotenv get exits 0 for empty string values (#700)58f2d7ctest: make test_run_with_command_flags portable and meaningful (#709)e0310e5fix: honor --no-override when expanding variables in dotenv run (#698)a00cb2edocs: add CHANGELOG entry for #663 (fix #600)f5485a6fix: parse empty unquoted value with inline comment as empty string49515afBump version: 1.2.2 → 1.2.38ac846fchore: add release runbook (RELEASING.md) and make release targetbb31c94docs: add 1.2.3 release notes (#606, #638, #680)- Additional commits viewable in compare view
Updates hypothesis from 6.148.8 to 6.170.14
Release notes
Sourced from hypothesis's releases.
Hypothesis for Python - version 6.152.9
This release substantially improves our internal distribution for generating integers. This release has the most visible effect on "integers()", but may incidentally improve other strategies which draw integers internally.
Our integers distribution had two problems. First, it had jagged discontinuities at certain values where we switched sampling approaches. Second, it used a different distribution for bounded and unbounded ranges, which resulted in "st.integers()" and "st.integers(-264, 264)" producing very different distributions despite being semantically similar.
We now use a smooth distribution for both "st.integers()" and "st.integers(a, b)", which fixes both of these issues. This should substantially improve our testing power in certain cases.
The only way this release should be user-visible is that it finds more bugs! If this release is user-visible in other ways - for example, because it is slower, or produces a worse distribution in some cases - please open an issue.
The canonical version of these notes (with links) is on readthedocs.
Hypothesis for Python - version 6.152.8
This release drops support for end-of-life Django 4.2.
The canonical version of these notes (with links) is on readthedocs.
Hypothesis for Python - version 6.152.7
This patch improves our type hints for ".filter()" to work with "typing.TypeGuard". For example:
from typing import TypeGuard
from hypothesis import strategies as st
def is_str(x: object) -> TypeGuard[str]: return isinstance(x, str)
s = st.from_type(object).filter(is_str)
previously: SearchStrategy[object]
now: SearchStrategy[str]
reveal_type(s)
The canonical version of these notes (with links) is on readthedocs.
Hypothesis for Python - version 6.152.6
This patch adds a shrinking pass that tries natural text
... (truncated)