{"id":33900933,"url":"https://github.com/semohr/eyconf","last_synced_at":"2026-02-05T18:02:29.255Z","repository":{"id":274849735,"uuid":"924277867","full_name":"semohr/eyconf","owner":"semohr","description":"Easy Configuration with yaml and dataclasses ","archived":false,"fork":false,"pushed_at":"2026-01-26T18:08:53.000Z","size":440,"stargazers_count":2,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-27T01:19:55.898Z","etag":null,"topics":["config","validation","yaml"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/semohr.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-29T18:12:47.000Z","updated_at":"2026-01-26T18:08:57.000Z","dependencies_parsed_at":"2025-08-07T16:21:12.561Z","dependency_job_id":"930d3ba0-af28-4636-9f8b-d87defac3ac8","html_url":"https://github.com/semohr/eyconf","commit_stats":null,"previous_names":["semohr/eyconf"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/semohr/eyconf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semohr%2Feyconf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semohr%2Feyconf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semohr%2Feyconf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semohr%2Feyconf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/semohr","download_url":"https://codeload.github.com/semohr/eyconf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semohr%2Feyconf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29128621,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T17:12:17.649Z","status":"ssl_error","status_checked_at":"2026-02-05T17:11:23.670Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","validation","yaml"],"created_at":"2025-12-11T23:30:13.491Z","updated_at":"2026-02-05T18:02:29.249Z","avatar_url":"https://github.com/semohr.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ch1 align=\"center\"\u003eEYConf\u003c/h1\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003cem\u003e\u003cb\u003eE\u003c/b\u003easy \u003cb\u003eY\u003c/B\u003eaml based \u003cb\u003eConf\u003c/b\u003eiguration for Python\u003c/em\u003e\n\u003c/p\u003e\n\n\n\u003cp align=\"center\"\u003e\n     \u003ca href=\"https://pypi.org/project/eyconf/\"\u003e\n        \u003cimg alt=\"PyPI - Version\" src=\"https://img.shields.io/pypi/v/eyconf?style=flat-square\"\u003e\n     \u003c/a\u003e\n    \u003ca href=\"https://github.com/semohr/eyconf/actions\"\u003e\n        \u003cimg alt=\"build status\" src=\"https://img.shields.io/github/actions/workflow/status/semohr/eyconf/workflow.yml?style=flat-square\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://eyconf.readthedocs.io/en/latest/\"\u003e\n        \u003cimg alt=\"docs\" src=\"https://img.shields.io/readthedocs/eyconf?style=flat-square\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/semohr/eyconf/blob/main/LICENSE\"\u003e\n        \u003cimg alt=\"License: GPL v3\" src=\"https://img.shields.io/badge/License-GPL%20v3-blue.svg?style=flat-square\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://codecov.io/github/semohr/eyconf\" \u003e \n        \u003cimg src=\"https://codecov.io/github/semohr/eyconf/graph/badge.svg?token=JJVCY9H6QR\"/\u003e \n    \u003c/a\u003e\n\u003c/p\u003e\n\n\n## Why EYConf?\n\n\u003c!-- start features --\u003e\n- **Schema-First Configuration**: Define your config structure with Python dataclasses, get automatic YAML generation with comments\n- **Type-Safe Access**: Access nested configuration values with full IDE support and runtime type checking\n- **Validation First**: Catch configuration errors early with detailed, human-readable validation messages\n- **Zero Boilerplate**: No manual YAML parsing, no dictionary access - just clean attribute access to your configuration\n\u003c!-- end features --\u003e\n\n## Installation\n\n\u003c!-- start installation --\u003e\nYou can install EYConf from [PyPI](https://pypi.org/project/eyconf/) using pip.\n\n```bash\npip install eyconf\n```\n\u003c!-- end installation --\u003e\n\n## Example Usage\n\n\u003c!-- start usage --\u003e\n\n```python\nfrom dataclasses import dataclass\nfrom eyconf import EYConf\n\n@dataclass\nclass AppConfig:\n    \"\"\"Application configuration\"\"\"\n    database_url: str = \"sqlite:///app.db\"\n    debug: bool = False\n\n# Creates/loads config.yaml automatically\nconfig = EYConf(AppConfig)\n\n# Use your config\nprint(config.data.debug)  # False\n```\n\nThis will create a `config.yaml` file in your current working directory with the following content:\n\n```yaml\n# Application configuration\n\ndatabase_url: sqlite:///app.db\ndebug: false\n```\n\u003c!-- end usage --\u003e\n\nPlease refer to the [documentation](https://eyconf.readthedocs.io/en/latest/) for more examples and detailed usage instructions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemohr%2Feyconf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsemohr%2Feyconf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemohr%2Feyconf/lists"}