LiEnv is a tool to easily get typed values out of strings stored in environment variables.
- Simplifies the sometimes tedious task of parsing strings to typed variables
- Provides a way to do it uniformly througout the project
- Aims to prevent unwanted behaviour caused by typos, errors or malicious content in environment variables
- Integers and Floats
- Dicts
- Lists
- Tuples
- Booleans
>>> import lienv
>>> integer = lienv.get(int, "SOME_INTEGER") # SOME_INTEGER="42"
>>> decimal = lienv.get(float, "SOME_FLOAT") # SOME_FLOAT="2.4"
>>> dictionary = lienv.get(dict, "SOME_DICT") # SOME_DICT="{'lienv': 42}"
>>> print(f"{integer} => {type(integer)}")
42 => <class 'int'>
>>> print(f"{decimal} => {type(decimal)}")
2.4 => <class 'float'>
>>> print(f"{dictionary} => {type(dictionary)}")
{'lienv': 42} => <class 'dict'>
Install the latest version with:
pip install lienv
- Parse types without directly using python's eval
- Implement unit tests in Rust
- Figure out how to test the Python module
- Change default integers and floats to 32 bit based on architecture
- Add wrappers for unsigned integer parsing
- Add wrappers for 8 and 16 bit numbers
I'll gladly accept feedback and contributions.
Although this project's purpose was to solve problems that at first seemed too simple, the practicality it provided to me was motivation enough to turn it into a library so maybe more people could benefit from it.
I am yet to be proficient in Rust, so pardon my silly mistakes.