
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
setconfig
Advanced tools
[!TIP] Don't forget to star this repo if you like it! ⭐
Some developers prefer to use @dataclass while others prefer BaseModel.
This holy war is not going to end soon.
So now they can use the same loader and config file in different parts/microservices of one project.
Currently supported:
@dataclassBaseModelSimpleNamespace (dotted dict)Features:
pip install setconfig
from dataclasses import dataclass
from setconfig import load_config
@dataclass
class Node:
host: str
port: int
@dataclass
class Config:
nodes: list[Node]
config = load_config('config.yaml', into=Config)
print(config)
# >>> Config(nodes=[Node(host='1.1.1.1', port=1000)])
print(config.nodes[0].host)
# >>> '1.1.1.1'
from pydantic import BaseModel
from setconfig import load_config
class Node(BaseModel):
host: str
port: int
class Config(BaseModel):
nodes: list[Node]
config = load_config('config.yaml', into=Config)
print(config)
# >>> Config(nodes=[Node(host='1.1.1.1', port=1000)])
print(config.nodes[0].host)
# >>> '1.1.1.1'
from setconfig import load_config
config = load_config('config.yaml')
print(config)
# >>> Config(nodes=[Node(host='1.1.1.1', port=1000)])
print(config.nodes[0].host)
# >>> '1.1.1.1'
from setconfig import load_config_stream
config = load_config_stream('done: true')
config = load_config('config.base.yaml', 'config.dev.yaml', 'config.feature-x.yaml', into=Config)
Configs are processed in the order they are passed to load_config (from left to right), where
last overrides the previous ones
config = load_config('config.yaml', into=Config, override={'timeout': 10})
config = load_config('config.yaml', into=Config, check_types=False)
Where check_types is a dacite flag, see https://github.com/konradhalas/dacite#type-checking
There is known issue in dacite that raises type error
when loading list into tuple. Pull request with fix is ready
since May 2023, but not merged yet... That's why setconfig has its own fix
There should be one-- and preferably only one --obvious way to do it
X packageCreate an issue or PR :)
PyPI: https://pypi.org/project/setconfig
Repository: https://github.com/abionics/setconfig
Developer: Alex Ermolaev (Abionics)
Email: abionics.dev@gmail.com
License: MIT (see LICENSE.txt)
FAQs
Multi-structure YAML config loader 🐍🔌
We found that setconfig demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.