class Config(Constants): # exists A = const('a') # default B = const('b', default=b) # nothing C = const('c') # different error D = const('d', default='x') def provide_const(self, name, arg): if arg == 'd': raise Exception() return dict(a=a)[arg]
class Conf(Constants): TEST = const('1') def provide_const(self, key, arg, service: Provide[MyService] = None): assert isinstance(service, MyService) return key
class Config(Constants): # with str/int/float, the type hint is enforced. Can be removed or extend to # support Enums. IMDB_HOST = const[str]('imdb.host') IMDB_PORT = const[int]('imdb.port') IMDB_API_KEY = const('imdb.api_key') def __init__(self): self._raw_conf = { 'imdb': { 'host': 'dummy_host', 'api_key': 'dummy_api_key', 'port': '80' } } def provide_const(self, name: str, arg: str): root, key = arg.split('.') return self._raw_conf[root][key]
class Conf(Constants): TEST = const('1') def provide_const(self, key, arg): return key
class Config(Constants): A = const('a') B = const('b') def provide_const(self, name, arg): return arg * 2
class Config(Constants): A = const('a')
class Config(Constants): NOTHING = const() B = const("B")
class Config(Constants): A = const() B = const() def provide_const(self, name, arg): return name
class Config(Constants): DB_HOST = const('localhost:5432')