For years I've been using a noddy script which clones many types of repos into a fixed location which is generated based on the repo itself. Similar to how go packages are cloned into go/src I typically clone my stuff into ~/src.
e.g. clone-repo git@github.com:micktwomey/clone-repo.git will clone using git to ~/src/github.com/micktwomey/clone-repo.
This allows me to clone many different repos without worrying about stepping on each other. It also makes it easy to see where stuff comes from (e.g. rm -rf ~/src/old.git.example.com will wipe out clones from git server I don't use any more).
Install via pip install clone-repo.
Install with pipx using pipx install clone-repo to make it available as a CLI tool everywhere.
Supports:
/path/to/repogit cloneto~/src/localhost/file/{repo}
file:///path/to/repogit cloneto~/src/localhost/file/{repo}
git@example.com:org/repo.gitgit cloneto~/src/{host}/{org}/{repo}
https://github.com/org/repo.gitgit cloneto~/src/github.com/{org}/{repo}
https://github.com/org/repogit cloneto~/src/github.com/{org}/{repo}
https://gitlab.example.com/org/repo.gitgit cloneto~/src/{host}/{org}/{repo}
https://hg.mozilla.org/mozilla-central/hg cloneto~/src/hg.mozilla.org/{org}/{repo}
https://hg.sr.ht/~org/repohg cloneto~/src/hg.sr.ht/{org}/{repo}
keybase://team/org/repogit cloneto~/src/keybase/{org}/{repo}
man@man.sr.ht:~org/repogit cloneto~/src/man.sr.ht/{org}/{repo}
ssh://git@example.com:7999/somegroup/myrepo.gitgit cloneto~/src/{host}/{org}/{repo}
ssh://hg@bitbucket.org/org/repohg cloneto~/src/{host}/{org}/{repo}
For https:// URLs the default is git but some will behave differently based on the domain.
If you want to quickly develop you can use poetry and pytest:
poetry installpytest -vv
If you want to test across all supported Python versions you can install them via asdf and then use nox:
asdf installpoetry installnox
If you want to run pre-commit hooks before committing:
poetry installpre-commit install
Finally, there is a just justfile to run some commands.