| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Hello code jam participants! We've put together this repository template for you to use in our code jams or even other Python events!
This document contains the following information:
Tip
You can also look at our style guide to get more information about what we consider a maintainable code style.
Here is a quick rundown of what each file in this repository contains:
Each of these files have comments for you to understand easily, and modify to fit your needs.
Our first tool is Ruff. It will check your codebase and warn you about any non-conforming lines. It is run with the command ruff check in the project root.
Here is a sample output:
$ ruff check
app.py:1:5: N802 Function name `helloWorld` should be lowercase
app.py:1:5: ANN201 Missing return type annotation for public function `helloWorld`
app.py:2:5: D400 First line should end with a period
app.py:2:5: D403 First word of the first line should be capitalized: `docstring` -> `Docstring`
app.py:3:15: W292 No newline at end of file
Found 5 errors.Each line corresponds to an error. The first part is the file path, then the line number, and the column index. Then comes the error code, a unique identifier of the error, and then a human-readable message.
If, for any reason, you do not wish to comply with this specific error on a specific line, you can add # noqa: CODE at the end of the line. For example:
def helloWorld(): # noqa: N802
...This will ignore the function naming issue and pass linting.
Warning
We do not recommend ignoring errors unless you have a good reason to do so.
Ruff also comes with a formatter, which can be run with the command ruff format. It follows the same code style enforced by Black, so there's no need to pick between them.
The second tool doesn't check your code, but rather makes sure that you actually do check it.
It makes use of a feature called Git hooks which allow you to run a piece of code before running git commit. The good thing about it is that it will cancel your commit if the lint doesn't pass. You won't have to wait for GitHub Actions to report issues and have a second fix commit.
It is installed by running pre-commit install and can be run manually by calling only pre-commit.
One person in the team, preferably the leader, will have to create the repository and add other members as collaborators.

You are now ready to go! Sit down, relax, and wait for the kickstart!
Important
Don't forget to change the project name, description, and authors at the top of the pyproject.toml file, and swap "Python Discord" in the LICENSE.txt file for the name of each of your team members or the name of your team after the start of the code jam.
Our default setup includes a dependency group to be used with a virtual environment. It works with pip and uv, and we recommend this if you have never used any other dependency manager, although if you have, feel free to switch to it. More on that below.
Dependency groups are a relatively new feature, specified in PEP 735. You can read more about them in the Python Packaging User Guide.
Create a virtual environment in the folder .venv.
python -m venv .venvIt will change based on your operating system and shell.
# Linux, Bash
$ source .venv/bin/activate
# Linux, Fish
$ source .venv/bin/activate.fish
# Linux, Csh
$ source .venv/bin/activate.csh
# Linux, PowerShell Core
$ .venv/bin/Activate.ps1
# Windows, cmd.exe
> .venv\Scripts\activate.bat
# Windows, PowerShell
> .venv\Scripts\Activate.ps1Once the environment is created and activated, use this command to install the development dependencies.
pip install --group devInterestingly enough, it is the same for every platform.
deactivateOnce the environment is activated, all the commands listed previously should work.
Important
We highly recommend that you run pre-commit install as soon as possible.
If you wish to use Pipenv or Poetry, you will have to move the dependencies in pyproject.toml to the development dependencies of your tool.
We've included a porting to both Poetry and Pipenv in the samples folder. Note that the Poetry pyproject.toml file does not include the Ruff configuration, so if you simply replace the file then the Ruff configuration will be lost.
When installing new dependencies, don't forget to pin them by adding a version tag at the end. For example, if I wish to install Click, a quick look at PyPI tells me that 8.1.7 is the latest version. I will then add click~=8.1, without the last number, to my requirements file or dependency manager.
Important
A code jam project is left unmaintained after the end of the event. If the dependencies aren't pinned, the project will break after any major change in an API.
Important
Don't forget to replace this README with an actual description of your project! Images are also welcome!
We hope this template will be helpful. Good luck in the jam!
| Back | FazBrowse Home | New Git URL |