{"id":17679310,"url":"https://github.com/bbkane/example-python-cli","last_synced_at":"2025-08-13T17:09:36.812Z","repository":{"id":87170786,"uuid":"581834586","full_name":"bbkane/example-python-cli","owner":"bbkane","description":"A small example Python package to demo file structure/tools","archived":false,"fork":false,"pushed_at":"2023-03-10T19:59:50.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T19:49:32.646Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bbkane.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-12-24T14:14:24.000Z","updated_at":"2023-02-11T04:18:06.000Z","dependencies_parsed_at":"2023-03-13T19:44:50.573Z","dependency_job_id":null,"html_url":"https://github.com/bbkane/example-python-cli","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbkane%2Fexample-python-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbkane%2Fexample-python-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbkane%2Fexample-python-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbkane%2Fexample-python-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bbkane","download_url":"https://codeload.github.com/bbkane/example-python-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246361238,"owners_count":20764893,"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":[],"created_at":"2024-10-24T08:22:03.456Z","updated_at":"2025-03-30T18:28:04.173Z","avatar_url":"https://github.com/bbkane.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Fairly recently, it's become possible to write Python packages without a `setup.py`! This is an example of how to do that.\n\nFrom: https://setuptools.pypa.io/en/latest/userguide/quickstart.html\n\nCreate venv and run tests\n\n```bash\ncd example-python-cli  # this README's directory\n./run.sh test  # setup venv and run tests\n```\n\nActivate the venv and run the CLI\n\n```bash\nsource venv/bin/activate\n # run entrypoint script to confirm it all works\nexample-python-cli\n```\n\nThis package can also be installed globally without polluting the global python package installation with [`pipx`](https://pypa.github.io/pipx/)\n\n```bash\npipx install -e .\n```\n\n# Notes\n\n## Re-installing Python\n\nThis can be necessary when I screw up `scripts/run.sh`.\n\n1. Find location of a package: `python3 -m pip show black`\n2. rm the parent folder: `rm -rf /usr/local/lib/python3.10/site-packages`\n3. Reinstall Python: `brew reinstall python3`\n\n# TODO\n\n- Try out ruff - blocked on https://github.com/charliermarsh/ruff/issues/282\n- Figure out how to get requirements files working and update dependencies?\n- CI/CD?\n- Get https://github.com/octodns/octodns-ns1/tree/main/script functionality\n- test coverage\n- I'd like to read TOML using the new stdlib tomlreader lib, but that's only in Python 3.11 and brew hasn't made that default yet - see https://github.com/Homebrew/homebrew-core/pull/114154\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbkane%2Fexample-python-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbbkane%2Fexample-python-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbkane%2Fexample-python-cli/lists"}