Skip to main content

A module that provides lazy strings for translations. Basically you get an object that appears to be a string but changes the value every time the value is evaluated based on a callable you provide.

For example you can have a global lazy_gettext function that returns a lazy string with the value of the current set language.

Example:

>>> from speaklater import make_lazy_string, text_type
>>> sval = u'Hello World'
>>> string = make_lazy_string(lambda: sval)

This lazy string will evaluate to the value of the sval variable.

>>> string
l'Hello World'
>>> text_type(string) == u'Hello World'
True
>>> string.upper() == u'HELLO WORLD'
True

If you change the value, the lazy string will change as well:

>>> sval = u'Hallo Welt'
>>> string.upper() == u'HALLO WELT'
True

This is especially handy when combined with a thread local and gettext translations or dicts of translatable strings:

>>> from speaklater import make_lazy_gettext
>>> from threading import local
>>> l = local()
>>> l.translations = {u'Yes': 'Ja'}
>>> lazy_gettext = make_lazy_gettext(lambda: l.translations.get)
>>> yes = lazy_gettext(u'Yes')
>>> print(yes)
Ja
>>> l.translations[u'Yes'] = u'Si'
>>> print(yes)
Si

Lazy strings are no real strings so if you pass this sort of string to a function that performs an instance check, it will fail. In that case you have to explicitly convert it with unicode and/or string depending on what string type the lazy string encapsulates.

To check if a string is lazy, you can use the is_lazy_string function:

>>> from speaklater import is_lazy_string
>>> is_lazy_string(u'yes')
False
>>> is_lazy_string(yes)
True
New in version 1.4: python >= 3.3 (and also 2.6 and 2.7) support,

repr(lazystring) is l”foo” on py2 and py3 - no “u” on py2!

New in version 1.2: It’s now also possible to pass keyword arguments to the callback used with make_lazy_string.

Metadata

Release files for speaklater3 1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for speaklater3 1.4
File Size Uploaded Provenance Actions
speaklater3-1.4.tar.gz 4.3 kB Without provenance Details for speaklater3-1.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for speaklater3 1.4
File Interpreter ABI Platform Actions
speaklater3-1.4-py3-none-any.whl Python 3 none any Details for speaklater3-1.4-py3-none-any.whl

Total release size: 10.2 kB

Release files / speaklater3-1.4.tar.gz

Download URL speaklater3-1.4.tar.gz
Size 4.3 kB
Tags Source
SHA-256 checksum
How to use checksums
c9261d4b6b5a304672312d1eb0899be028fac91760190a80feccd31d3a3b5042
BLAKE2b-256 checksum
How to use checksums
0347eaa6a52849915456aa144fea9e41332ae9b1a246a899095a231c995aab7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / speaklater3-1.4-py3-none-any.whl

Download URL speaklater3-1.4-py3-none-any.whl
Size 5.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5a48a40ad5bf0835af6aa9d3c52120fe19dc92857b78caacfcb49110002f8863
BLAKE2b-256 checksum
How to use checksums
4e9b855943d6227ed912fa14c0def339cdffe67c8221f1c97d658f7bfd1d0066
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for speaklater3 1.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.4 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page