Config2Code simplifies configuration management by automatically generating Python dataclasses from YAML or JSON files. This tool enhances code readability, maintainability, and type safety, saving you time and effort.
Project description
Config2Code: A Tool to Generate Python Dataclasses from Configuration Files
Introduction
Config2Code is a Python tool designed to streamline the process of converting configuration files (YAML or JSON or TOML) into Python dataclasses. By automating the generation of dataclasses, you can improve code readability, maintainability, and type safety.
Installation
You can install Config2Code using pip:
pip install config2code
Usage
-
Prepare your configuration file: Create a YAML or JSON file containing your configuration data. Here's an example YAML file:
database: host: localhost port: 5432 user: myuser password: mypassword
-
Run the tool: Use the
config2code
command-line interface to convert the configuration file:config2code to-code --input input.yaml --output output.py
This will generate a Python file
output.py
containing a dataclass representing the configuration:from dataclasses import dataclass @dataclass class DatabaseConfig: host: str port: int user: str password: str
Key Features
- Supports YAML, JSON and TOML: Easily convert both formats.
- Automatic dataclass generation: Generates well-structured dataclasses.
- Nested configuration support: Handles nested structures in your configuration files.
- Type inference: Infers types for fields based on their values.
- Customizable output: Control the output file name and code formatting.
Additional Considerations
- Complex data structures: For more complex data structures, consider using custom type hints or additional configuration options.
- Error handling: The tool includes basic error handling for file loading and parsing.
- Future enhancements: We plan to add support for additional file formats, advanced type inference, and more customization options.
Contributing
We welcome contributions to improve Config2Code. Feel free to fork the repository, make changes, and submit a pull request.
License
This project is licensed under the MIT License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file config2class-0.1.1.tar.gz
.
File metadata
- Download URL: config2class-0.1.1.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.8.0-47-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33f0cc957467c1dcf67a08bd3f04892111400889b604b5c2b85b312bd22faba5 |
|
MD5 | 2544ced7bdf854bb4459a6eeb8fc28e0 |
|
BLAKE2b-256 | 31e92f50cf9b60320ddf13b3c108fa058531bce116168ad0e160764889752964 |
File details
Details for the file config2class-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: config2class-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.8.0-47-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b33a25731d1c7525abf822b27372b38c67163cf4829d2780e826c52bb500873 |
|
MD5 | cc94a5e46d64ec2b886682dd17071847 |
|
BLAKE2b-256 | 21d4d1d5584fb53ffbd9525658283f2a84f7f1e5f22a8d5d108a71d56d6e96a2 |