{"id":13343275,"url":"https://github.com/arnavdas88/ConfigureIt","last_synced_at":"2025-03-12T04:33:06.935Z","repository":{"id":175930971,"uuid":"650772632","full_name":"arnavdas88/ConfigureIt","owner":"arnavdas88","description":"A python package for configuration","archived":false,"fork":false,"pushed_at":"2023-06-16T20:11:52.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-24T15:39:02.813Z","etag":null,"topics":["config","configuration","configuration-management","yaml"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arnavdas88.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-07T19:21:22.000Z","updated_at":"2023-06-16T15:33:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"26d10022-df36-4643-a161-af545b86cad9","html_url":"https://github.com/arnavdas88/ConfigureIt","commit_stats":null,"previous_names":["arnavdas88/configureit"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arnavdas88%2FConfigureIt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arnavdas88%2FConfigureIt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arnavdas88%2FConfigureIt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arnavdas88%2FConfigureIt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arnavdas88","download_url":"https://codeload.github.com/arnavdas88/ConfigureIt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243158974,"owners_count":20245668,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["config","configuration","configuration-management","yaml"],"created_at":"2024-07-29T19:31:07.784Z","updated_at":"2025-03-12T04:33:06.929Z","avatar_url":"https://github.com/arnavdas88.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ConfigureIt: Automatic Configuration Management for Python\n![GitHub repo size](https://img.shields.io/github/repo-size/arnavdas88/ConfigureIt)\n[![License](https://img.shields.io/github/license/arnavdas88/ConfigureIt)](https://github.com/arnavdas88/ConfigureIt/blob/main/LICENSE)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n\nConfigureIt is a powerful Python package designed to simplify configuration management for industry-grade software applications. It allows you to easily load and parse configuration files in YAML, TOML, or JSON format, and automatically create the corresponding objects in memory. With ConfigureIt, you can effortlessly manage and customize the configuration of your software, making it highly adaptable to different environments and deployment scenarios.\n\n## Key Features\n\n- Supports YAML, TOML, and JSON configuration file formats.\n- Automatically creates objects in memory based on the configuration file.\n- Simplifies the process of configuring complex software systems.\n- Provides a flexible and intuitive API for easy integration.\n- Promotes code maintainability and separation of configuration from implementation.\n\n## Installation\n\nYou can install ConfigureIt using pip:\n\n```shell\n$ pip install git+https://github.com/arnavdas88/ConfigureIt\n```\n\n## Usage\n\nUsing ConfigureIt is straightforward. Here's an example demonstrating how to load a configuration file and create objects based on the configuration:\n\n```python\nimport database\nfrom ConfigureIt.parser import Parser\n\nconfig_file = \"database.yml\"\n\n# Create a Parser instance with the configuration file\nsyslog = Parser(filename=config_file)\n\n# Load the 'database' module and create objects based on the configuration\nsyslog(module=database) # Mapping the configuration file to the database module\n\n# Access and use the created objects\nsyslog.Database.serve()\n```\n\nIn the above example, we import the necessary modules and define the path to the configuration file (`database.yml`). We then create an instance of the `Parser` class, passing the filename of the configuration file as a parameter.\n\nNext, we use the `syslog` instance to load the `database` module and create objects based on the configuration defined in the file. The objects are created and stored in memory, ready for use.\n\nFinally, we can access and utilize the created objects, such as calling the `serve()` method on the Database object.\n\n## Configuration File\n\nThe configuration file (e.g., `database.yml`) follows the syntax of the chosen format (YAML, TOML, or JSON) and defines the necessary settings for your software. Here's an example of a YAML configuration file for the `database` module:\n\n```yaml\nDatabase:\n  admin:\n    username: AdminUser\n    password: MyRandomDummyPassword\n  shards: 128\n  page_size: 1024\n  read_heads: 6\n  write_heads: 24\n  sequential_write: true\n```\n\nIn this example, we define the configuration settings for the `Database` object. The admin parameter is further nested to include the `username` and `password` properties.\n\n## Contributing\n\nContributions are welcome! If you encounter any issues, have suggestions, or would like to contribute to the project, please feel free to open an issue or submit a pull request on the GitHub repository.\n\n## License\n\nConfigureIt is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.\n\n## Acknowledgements\n\nThis package was inspired by the need for efficient and flexible configuration management in modern software development. We would like to thank the open-source community for their invaluable contributions and support.\n\n## Contact\n\nIf you have any questions, suggestions, or feedback, please don't hesitate to reach out to our team at arnav.das88@gmail.com .","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farnavdas88%2FConfigureIt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farnavdas88%2FConfigureIt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farnavdas88%2FConfigureIt/lists"}