Generate configuration files for classes.
Project description
pyfigure
Generate configuration files for classes.
Installation
pip install pyfigure
Usage
To generate a configuration file for a class, you must extend the class with Configurable, from the pyfigure module.
Then, to add options to the configuration, create a new Config class, and add variables of the Option class.
class YourClass(Configurable):
class Config:
option_name: type = Option(
default,
parse,
description,
)
class sub_config:
cub_option: type = Option()
Where the arguments are as follows:
| argument | description |
|---|---|
default |
The default value of the option |
description |
A comment to explain what the option is for |
parse |
A function that parses the given value, returns a new value or throws an exception |
file.py
from pyfigure import Configurable, Option
from typing import Literal, List
class ExampleClass(Configurable):
#config_file = 'other_file.toml'
class Config:
string_option: str = Option('default', "Any string works here.")
integer_option: int = Option(24, "Any integer here.")
float_option: float = Option(15.55, "Any float.")
bool_option: bool = Option(True, "Any boolean.")
list_option: list = Option(['e', 'a', 'o'], "A list of things.")
int_list_option: List[int] = Option([1, 2, 3], 'A list of integers.')
choice_option: Literal['spam', 'eggs'] = Option('spam', "Either 'spam' or 'eggs'")
class sub_config:
sub_option: str = Option('this value in a sub value')
class sub_sub_config:
sub_sub_option: str = Option('this value is a sub value of a sub value')
#def __init__(self):
# Configurable.__init__(self)
ec = ExampleClass()
print(ec.config)
This class, when initialized, will print:
{
'string_option': 'default',
'integer_option': 24,
'float_option': 15.55,
'bool_option': True,
'list_option': ['e', 'a', 'o'],
'int_list_option': [1, 2, 3],
'choice_option': 'spam',
'sub_config': {
'sub_option': 'this value in a sub value',
'sub_sub_config': {
'sub_sub_option': 'this value is a sub value of a sub value'
}
}
}
And create a new file:
file.toml
string_option = "default" # Any string works here.
integer_option = 24 # Any integer here.
float_option = 15.55 # Any float.
bool_option = true
list_option = ["e", "a", "o"] # A list of things.
int_list_option = [1, 2, 3] # A list of integers.
choice_option = "spam" # Either 'spam' or 'eggs'
[sub_config]
sub_option = "this value in a sub value"
[sub_config.sub_sub_config]
sub_sub_option = "this value is a sub value of a sub value"
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyfigure-2.6.1.tar.gz.
File metadata
- Download URL: pyfigure-2.6.1.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fefbbf6980ac14649a34d03b1ee0b3fc4069110d052122678e2dacee545837a
|
|
| MD5 |
20ac75a0983671e571b99feed841fbef
|
|
| BLAKE2b-256 |
65cc05f088f7a28c2d1ccba26d4056f160272b83cedd2afef46a7f4ac8e28a73
|
File details
Details for the file pyfigure-2.6.1-py3-none-any.whl.
File metadata
- Download URL: pyfigure-2.6.1-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89b4c65f6a0a88e3c68491eac523ffcc9bd055570d8c8ef875f4bed3a09cdc64
|
|
| MD5 |
87afbee784f406c3a3b81fb1d2614295
|
|
| BLAKE2b-256 |
88ffcbefc15ef149ed6145adba4c5a44ccd1f34d16f733ed15ccb23d9749e070
|