Package: dotsetup
DotSetupDotSetupis a Python package designed for flexible configuration management, supporting.ini,.json,.env, and custom file types. Simplify the storage and retrieval of settings in your projects effortlessly.Table of ContentsDotSetupFeaturesInstallationGetting StartedSimple ExampleBreaking down ExampleCustom Path for File TypesNested ConfigurationsCustom File SyntaxContributingCode of ConductLicenseSupport the ProjectFeaturesMulti-format Support:Seamlessly handle configurations from files like.ini,.json,.env, and custom file types.Intuitive API:Easy-to-use methods for 🔄 loading, accessing, and saving configurations.File Type Extension:Customize DotSetup to support additional file types beyond the included formats.Nested Configurations:Load nested configurations from files like.iniand.jsonfiles.Custom File Syntax:Define your own syntax for custom file types.Custom File Path:Load configurations from a custom path for different file types.Error Handling:Handle errors that may occur when loading configurations.Lightweight:DotSetup is a lightweight package with no external dependencies.Cross-Platform:DotSetup is compatible with Windows, macOS, and Linux.Open-Source:DotSetup is an open-source project licensed under the MIT License.InstallationpipinstalldotsetupGetting StartedTo get started with DotSetup, follow these steps:Import the DotSetup class in your Python script or project to get started.Simple Example:fromdotsetupimportDotSetup# Initialize DotSetupds=DotSetup()# Load from env filevalue_env=ds.load('version',file_type='env')print(f"Value from JSON File:{value_env}")the above example loads the value of the variableversionfrom the.envfile in the root folder of the project.Breaking down Example:fromdotsetupimportDotSetup,DotSetupException,FileNotFoundError,VariableNotFoundError,JSONDecodeErrordefmain():# Initialize DotSetupds=DotSetup()try:# Load from JSON filevalue_json=ds.load('database',file_type='json')print(f"Value from JSON File:{value_json}")except(FileNotFoundError,VariableNotFoundError,JSONDecodeError)ase:print(f"Error:{e}")try:# Load from ENV file with default pathvalue_env=ds.load('DATABASE_URL',file_type='env')print(f"Value from ENV (default path):{value_env}")except(FileNotFoundError,VariableNotFoundError)ase:print(f"Error:{e}")try:# Load from custom filevalue_custom=ds.load('num2',file_type='custom',file_path='config.con')print(f"Value from Custom File:{value_custom}")except(FileNotFoundError,VariableNotFoundError,JSONDecodeError)ase:print(f"Error:{e}")try:# Load from INI filevalue_ini=ds.load('section1.option1',file_type='ini')print(f"Value from INI File:{value_ini}")except(FileNotFoundError,VariableNotFoundError)ase:print(f"Error:{e}")if__name__=="__main__":main()here you can also see how to handle errors that may occur when loading configurations.Custom Path for File TypesTo load configurations from a custom path for different file types:fromdotsetupimportDotSetupds=DotSetup()# Load configuration from the specified custom pathvalue=ds.load('key_name',file_type='type',file_path='path/to/config.con')The default path for the env file is.envin the root folder. The default path for the ini file isconfig.iniin the root folder, and the default path for the json file isconfig.jsonin the root folder. For the custom file, the default path isconfig.conin the root folder. Alternatively, you can specify your own path using the file_path parameterNested Configurationsyou can also load the nested configuration from the json and ini files by using the dot notation for examplejson Example:{"database":{"host":"localhost","port":5432,"username":"user","password":"password"},"api_key":"your_api_key"}fromdotsetupimportDotSetupds=DotSetup()# Load value from nested JSON filevalue_json=ds.load('database.host',file_type='json',file_path='config.json')print(f"Value from JSON File:{value_json}")Custom File SyntaxDotSetup supports custom file types. To use a custom file type, you must define a custom file syntax. The custom file syntax is a dictionary that maps variable names to their values.USERNAME="johndoe"
PASSWORD="mysecretpassword"
API_KEY="abc123"
NUMBER=1
Numbers={1,2,3,4,5}
num2=(1,2)
num3=[1,2,3]
num4=1.2
str="Hello World"
str2=("Hello World","Hello World")
str3=["Hello World","Hello World"]
LINKS=["https://www.google.com","https://www.facebook.com","https://www.twitter.com"]
LINKS2={"KEY":"https://www.google.com","KEY2":"https://www.facebook.com"}In this example, variables and values are defined using the format key=value. You can define your own syntax for custom files with custom file extension(filename.custom_extension) based on your project's requirements. Make sure to follow this syntax when defining your custom file syntax.ContributingContributions are welcome! Before contributing, please read our Contributing Guidelines to ensure a smooth and collaborative development process.Code of ConductPlease review our Code of Conduct to understand the standards of behavior we expect from contributors and users of this project.LicenseThis project is licensed under theMIT License. SeeLICENSEfor more details.Support the Project💰 You can help me improve more by a little supportHappy Coding ❤️