def getenv(self, name): # C module wrapper class return cenviron.getenv(name) # delegate to C module
def __getitem__(self, key): value = getenv(key) # on reads: Env[key] os.environ[key] = value # integrity check return value
def __getattr__(self, name): value = getenv(name) # on reads: Env.name os.environ[name] = value # integrity check return value
def getenv(name): value = cenviron.getenv(name) # call C method if value != os.environ[name]: # integrity check: os.environ[name] = value # export to os.environ if return value # other libs called putenv