|
|
|
|
|
by sarahdellysse
1102 days ago
|
|
So basically you want something like how typescript does, where you can do this: const config = {
rootDirectory: "/tmp",
shouldFrobnicate: false,
}
I'm far from a python expert, more like a TS dev who occasionally tries to write Python, but when I'm in that situation I find that writing one-off classes seems to be python's way of doing things. I'm not a super big fan of it myself, but it works: from dataclasses import dataclass
def _create_config():
@dataclass(kw_only=True)
class Config:
root_directory: str = "/tmp"
should_frobnicate: bool = False
return Config()
config = _create_config()
I experimented with making a decorator that could do something like this, but never got it working with `mypy` so I gave up: @iife
def config():
@dataclass(kw_only=True)
class Config:
root_directory: str = "/tmp"
should_frobnicate: bool = False
return Config()
the `@iife` would make it so that `config` was a variable, not a `def`, but yeah the whole thing stank so I gave up |
|