Skip to main content

Tiny util for creating tensorflow-like context managers for default instances of classes

Project description

Tiny util for creating tensorflow-like context managers for default instances of classes.

Installation

You can install defaultcontext using pip:

pip install defaultcontext

Usage

Basic:

from defaultcontext import with_default_context


@with_default_context
class Environment:
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return 'Environment %s' % self.name


with Environment(name='A').as_default():
    print(Environment.get_default())      # A

with Environment(name='B').as_default():
    print(Environment.get_default())      # B

print(Environment.get_default())          # None

If with_default_context was called without parameters the global default value of a class will be None. The global default can be added using global_default_factory:

def make_default_env():
    return Environment(name='default')

@with_default_context(global_default_factory=make_default_env)
class Environment:
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return self.name

Environment.get_default()                      # default

with Environment(name='custom').as_default():
    print(Environment.get_default())           # custom

Environment.get_default()                      # default

Alternatively, if the class can be constructed without arguments, global default can be set to Class() by setting use_empty_init to True:

@with_default_context(use_empty_init=True)
class Environment:
    def __init__(self, name='default'):
        self.name = name

    def __str__(self):
        return self.name

Environment.get_default()                      # default

with Environment(name='custom').as_default():
    print(Environment.get_default())           # custom

Environment.get_default()                      # default

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

defaultcontext-1.0.1.tar.gz (7.6 kB view details)

Uploaded Source

File details

Details for the file defaultcontext-1.0.1.tar.gz.

File metadata

File hashes

Hashes for defaultcontext-1.0.1.tar.gz
Algorithm Hash digest
SHA256 60d1ff19291cb6f93b86faf4d54ffabbe4604abb62231640fcb8c32f968dfa36
MD5 d51961b71a6373d265e1d3ebb12dfc69
BLAKE2b-256 d2294cb802488525eda392c59fc4931286147ecdd94bdb0997f2edafdb7bfb33

See more details on using hashes here.

Supported by

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