Skip to content

add caching for issuer and subject#14442

Merged
alex merged 3 commits intopyca:mainfrom
abbra:perf/issuer-subject
Mar 8, 2026
Merged

add caching for issuer and subject#14442
alex merged 3 commits intopyca:mainfrom
abbra:perf/issuer-subject

Conversation

@abbra
Copy link
Contributor

@abbra abbra commented Mar 8, 2026

1st part of optimisations from #14441

abbra and others added 3 commits March 8, 2026 15:10
Store the Python Name object in a PyOnceLock so that repeated accesses
avoid re-running parse_name, which allocates a full Python Name object
tree from ASN.1 on every call.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Alexander Bokovoy <abokovoy@redhat.com>
Store the Python Name object in a PyOnceLock so that repeated accesses
avoid re-running parse_name, which allocates a full Python Name object
tree from ASN.1 on every call.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Alexander Bokovoy <abokovoy@redhat.com>
…ect caching

The test assumed cert.subject re-parses the Name on every call, so it
checked each too-long-country warning in its own pytest.warns block.
After subject caching, parse_name runs only once (on the first access)
and emits both COUNTRY_NAME and JURISDICTION_COUNTRY_NAME warnings in a
single call. Subsequent accesses return the cached Name object without
re-parsing, so the second block saw no warnings.

Merge both assertions into a single pytest.warns block, which correctly
captures all warnings emitted during the first (and only) parse.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Alexander Bokovoy <abokovoy@redhat.com>
@alex alex enabled auto-merge (squash) March 8, 2026 13:17
@alex alex merged commit e69b1e0 into pyca:main Mar 8, 2026
67 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants