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)
File details
Details for the file defaultcontext-1.0.1.tar.gz.
File metadata
- Download URL: defaultcontext-1.0.1.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60d1ff19291cb6f93b86faf4d54ffabbe4604abb62231640fcb8c32f968dfa36
|
|
| MD5 |
d51961b71a6373d265e1d3ebb12dfc69
|
|
| BLAKE2b-256 |
d2294cb802488525eda392c59fc4931286147ecdd94bdb0997f2edafdb7bfb33
|