Skip to main content

A @decorator for caching properties in classes in the thread-local storage.

Project description

@tls_property is a super-tiny library that will help you write thread-safe classes.

It’s acting like a @cached_property, but value will be cached only for current thread.

Garbage collecting is respected, @tls_property won’t mess up with it.

from some_library import NonThreadsafeSuperClient
from tls_property import tls_property

class SuperClientWrapper:
    @tls_property
    def nonthreadsafe_client(self) -> NonThreadsafeSuperClient:
        return NonThreadsafeSuperClient()

Also, value reset supported via @tls_property del ete:

client = SuperClientWrapper()
client.something()
del client.nonthreadsafe_client
client.something()

Module works on Python == 2.7 and Python ~= 3.4.

Installation

pip install tls-property

License

Public Domain: CC0 1.0 Universal.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for tls-property, version 1.1.0
Filename, size File type Python version Upload date Hashes
Filename, size tls-property-1.1.0.tar.gz (2.3 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page