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.2.tar.gz
(7.9 kB
view details)
File details
Details for the file defaultcontext-1.0.2.tar.gz.
File metadata
- Download URL: defaultcontext-1.0.2.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3bcc808f30af9b30e89d81c10f70512cddab48036183ca0492c20f50a7327e7
|
|
| MD5 |
91e0e751fd340dcce380e44d2434ebd1
|
|
| BLAKE2b-256 |
1cdd7cc27145f283e3b43c488d4c957556f71f55550f9371c23b2514649f884a
|