{"id":27453656,"url":"https://github.com/r8vnhill/echo-app-py-uv","last_synced_at":"2025-08-01T04:16:56.533Z","repository":{"id":287984892,"uuid":"966450101","full_name":"r8vnhill/echo-app-py-uv","owner":"r8vnhill","description":"Modular Python project using uv workspaces to separate business logic and application code. Built for a step-by-step educational guide on maintainable project structure.","archived":false,"fork":false,"pushed_at":"2025-04-15T03:02:24.000Z","size":12,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T13:56:24.974Z","etag":null,"topics":["build-system","build-systems","cli-app","dependency-management","dibs-course","educational","example-project","modular-architecture","monorepo","pyproject","pyproject-toml","python","starter-template","uv","virtual-environment","workspace"],"latest_commit_sha":null,"homepage":"https://dibs.pages.dev","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/r8vnhill.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2025-04-15T00:10:06.000Z","updated_at":"2025-04-15T03:04:48.000Z","dependencies_parsed_at":"2025-04-15T01:36:07.512Z","dependency_job_id":null,"html_url":"https://github.com/r8vnhill/echo-app-py-uv","commit_stats":null,"previous_names":["r8vnhill/echo-app-py-uv"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r8vnhill%2Fecho-app-py-uv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r8vnhill%2Fecho-app-py-uv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r8vnhill%2Fecho-app-py-uv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r8vnhill%2Fecho-app-py-uv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/r8vnhill","download_url":"https://codeload.github.com/r8vnhill/echo-app-py-uv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249085486,"owners_count":21210267,"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":["build-system","build-systems","cli-app","dependency-management","dibs-course","educational","example-project","modular-architecture","monorepo","pyproject","pyproject-toml","python","starter-template","uv","virtual-environment","workspace"],"created_at":"2025-04-15T13:56:29.309Z","updated_at":"2025-04-15T13:56:29.786Z","avatar_url":"https://github.com/r8vnhill.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# echo-app-py-uv\n\n![Python Version](https://img.shields.io/badge/python-3.10%2B-blue?logo=python)\n![uv](https://img.shields.io/badge/built%20with-uv-6c6cff?logo=python)\n![License: BSD-2](https://img.shields.io/badge/license-BSD--2--Clause-green.svg)\n![Platform](https://img.shields.io/badge/platform-linux%20%7C%20macOS%20%7C%20windows-lightgrey)\n[![View lesson (ES)](https://img.shields.io/badge/ver%20lecci%C3%B3n-inicial-blueviolet)](https://dibs.pages.dev/docs/build-systems/init/uv)\n[![View lesson (ES)](https://img.shields.io/badge/ver%20lecci%C3%B3n-modular-blueviolet)](https://dibs.pages.dev/docs/build-systems/modular-design/uv)\n\nThis repository accompanies two lessons on building modern Python projects using [`uv`](https://docs.astral.sh/uv/), a fast and user-friendly tool for managing virtual environments and dependencies via `pyproject.toml`.\n\n\u003e 📘 The lessons are written in Spanish and can be found at:\n\u003e\n\u003e - [Lesson 1 – Basic setup](https://dibs.pages.dev/docs/build-systems/init/uv)\n\u003e - [Lesson 2 – Modular structure](https://dibs.pages.dev/docs/build-systems/modular-design/uv)\n\u003e\n\u003e However, the code and repository are written in English to ensure broader accessibility.\n\n## 🧱 Project structure\n\nThis project follows a modular design using `uv workspaces`, separating business logic (`core`) from the application layer (`app`).\n\n```\n.\n├── core\n│   ├── echo_core\n│   │   ├── __init__.py\n│   │   └── echo.py\n│   └── pyproject.toml\n├── app\n│   ├── echo_app\n│   │   ├── __init__.py\n│   │   └── main.py\n│   └── pyproject.toml\n├── pyproject.toml\n├── uv.lock\n└── README.md\n```\n\n## ▶️ How to run it\n\nFrom the root directory, you can execute the application like this:\n\n```bash\nuv run app/echo_app/main.py Butcher Hughie Kimiko Frenchie M.M.\n```\n\nExpected output:\n\n```text\nButcher\nHughie\nKimiko\nFrenchie\nM.M.\n```\n\n## 💡 What's inside?\n\nThe `core` module contains a reusable function:\n\n```python\n# core/echo_core/echo.py\ndef echo(message: str) -\u003e str:\n    return message\n```\n\nThe `app` module consumes it:\n\n```python\n# app/echo_app/main.py\nfrom echo_core import echo\n\ndef main(args: list[str]):\n    for arg in args:\n        print(echo(arg))\n\nif __name__ == \"__main__\":\n    import sys\n    main(sys.argv[1:])\n```\n\n## 📖 Learn more\n\nThese lessons guide you from a simple script to a **modular and scalable project structure**, preparing you for more advanced topics like testing, packaging, and CI.\n\n- [Lesson 1 – Basic setup](https://dibs.pages.dev/docs/build-systems/init/uv)\n- [Lesson 2 – Modular structure](https://dibs.pages.dev/docs/build-systems/modular-design/uv)\n\n## 🔗 Resources\n\n- [Official uv documentation – \"Using workspaces\"](https://docs.astral.sh/uv/concepts/projects/workspaces/)\n- [Official uv documentation – \"Working on projects\"](https://docs.astral.sh/uv/guides/projects/)\n- [pyproject.toml specification](https://packaging.python.org/en/latest/specifications/pyproject-toml/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr8vnhill%2Fecho-app-py-uv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fr8vnhill%2Fecho-app-py-uv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr8vnhill%2Fecho-app-py-uv/lists"}