This is a minimal project for the hands-on tutorials.
- Installation
- Running the main script
- Adding dependencies
- Running test
- Formatting and checking
- Documentation
- Versions
- Publishing your package
- License
-
Install uv:
-
Install the dependencies, including the dev dependencies
uv sync
or install only the runtime dependencies
uv sync --no-dev
-
Install the pre-commit hook. This will set up pre-commit to run the checks automatically on your files before you commit them.
uv run pre-commit install
Remember that if the pre-commit checks fail, you can always commit by skipping the checks with git commit --no-verify
Execute the main script with
uv run main_scriptAdd dependencies by running
uv add numpyif you want to install torch with CUDA support, you can do it via:
uv add torch==2.4.1+cu121 torchaudio==2.4.1+cu121 torchvision==0.19.1+cu121 --extra-index-url https://download.pytorch.org/whl/cu121Run your tests with
uv run pytest --cov=src ./testsThe tools for formatting and linting your code for errors are all bundled with pre-commit. Included are:
- ruff - linting and formatting
- yamlfix - linting and formatting for .yaml files
- various other small fixes and checks (see the
.pre-commit-config.yamlfile for more information)
It's possible that pre-commit will make changes to your files when it runs the checks, so you should add those changes to your commit before you commit your code. A typical workflow would look like this:
git add -u
git commit -m "My commit message"
# pre-commit will run the checks here; if it makes changes, you'll need to add them to your commit
git add -u
git commit -m "My commit message"
# changes should have all been made by now and the commit should pass if there are no other issues
# if your commit fails again here, you have to fix the issues manually (not everything can be fixed automatically).One thing that is worth knowing is how to lint your files outside of the context of a commit. You can run the checks manually by running the following command:
uv run pre-commit run --all-filesThis will run the checks on all files in your git project, regardless of whether they're staged for commit or not.
Generate the documentation locally with
uv run mkdocs serve --watch ./Versions are managed automatically via hatch-vcs, which follows the versioning scheme from setuptools-scm.
To create a new version, tag the code with git tag <version>, e.g. git tag v0.1.0, and push the tag with git push --tags.
You can check the version by running
uv run hatch versionIn python you can see the version with
from reit_py_course25 import __version__
print(f"reit_py_course25 version is { __version__ }")If you're ready to publish your package to PyPI (i.e. you want to be able to run pip install my-package-name from anywhere), follow the uv instructions.
In short, they boil down to running:
-
Build the wheel
uv build
-
Upload the wheel to PyPI
uv publish
Distributed under the terms of the MIT license.