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.

Source Distribution

tls-property-1.1.0.tar.gz (2.3 kB view details)

Uploaded Source

File details

Details for the file tls-property-1.1.0.tar.gz.

File metadata

  • Download URL: tls-property-1.1.0.tar.gz
  • Upload date:
  • Size: 2.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for tls-property-1.1.0.tar.gz
Algorithm Hash digest
SHA256 cddf1152620e7c09307de5348a10d945070f0521183738a1fabaff17ad56343d
MD5 f738dbc8e5bfa92315bbf4b102440182
BLAKE2b-256 d983441bac852a9fb9d6d6c7af42a1571052668d6c6a9945fe21ce7e0060d6ee

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page