Skip to main content

Runtime context

Project description

***************
runtime-context
***************

.. code-block:: shell

pip install runtime-context


--------------------------
``RuntimeContextWrapper`` Example
--------------------------

.. code-block:: python

from runtime_context import RuntimeContextWrapper

runtime_context = RuntimeContextWrapper()


def do_something(i):
if runtime_context.dry_run:
print('{} - dry run'.format(i))
else:
print('{} - for real'.format(i))


with runtime_context(dry_run=False):
do_something(1) # for real

with runtime_context(dry_run=True):
do_something(2) # dry run

runtime_context.dry_run = False
do_something(3) # for real

with runtime_context():
do_something(4) # for real

runtime_context.dry_run = True
do_something(5) # dry run

do_something(6) # for real


-------------------------------
``runtime_context_env`` Example
-------------------------------

.. code-block:: python

import json
from typing import Union # noqa

from runtime_context import EnvBase, runtime_context_env # noqa


@runtime_context_env
class YourApp:
dry_run = False
db_name = None
config_file = None


env = YourApp() # type: Union[YourApp, EnvBase]


@env.context_var_set.listener(predicate=lambda name: name == 'config_file')
def reload_config():
if not env.config_file:
return

print('Reloading config from {}'.format(env.config_file))
with open(env.config_file) as f:
config = json.load(f)
for k, v in config.items():
env.set(k, v)


with env():
assert env.dry_run is False
assert env.db_name is None

env.config_file = 'config.json' # prints 'Reloading config from config.json'

assert env.db_name == 'products' # read from config.json file

with env(dry_run=True):
assert env.dry_run is True

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 runtime-context, version 3.0.0
Filename, size File type Python version Upload date Hashes
Filename, size runtime-context-3.0.0.tar.gz (7.9 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