Skip to content

Add PyUnstable_Unicode_GET_CACHED_HASH #134891

Closed
@encukou

Description

@encukou

Feature or enhancement

Proposal:

I'd like to add a quick way to maybe get a str hash, so that advanced users don't need to reach into the undocumented-but-public PyASCIIObject->hash.

Py_hash_t PyUnstable_Unicode_GET_CACHED_HASH(PyObject *str)

If the hash of str, as returned by PyObject_Hash, has been cached and is immediately available, return it.
Otherwise, return -1 without setting an exception.

If str is not a string (that is, if PyUnicode_Check(obj) is false), the behavior is undefined.

This function never fails with an exception.

Note that there are no guarantees on when a object's hash is cached, and the (non-)existence of a cached hash does not imply that the string has any other properties.

Has this already been discussed elsewhere?

I have already discussed this feature proposal on Discourse

Links to previous discussion of this feature:

https://discuss.python.org/t/82543

Linked PRs

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Add `PyUnstable_Unicode_GET_CACHED_HASH` · Issue #134891 · python/cpython

    Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

    Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant