Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Template repository for Python Discord Code Jam projects.

License

NotificationsYou must be signed in to change notification settings

python-discord/code-jam-template

Repository files navigation

A primer

Hello code jam participants! We've put together this repository template for you to use inour code jams or even other Python events!

This document contains the following information:

  1. What does this template contain?
  2. How do I use this template?
  3. How do I adapt this template to my project?

Tip

You can also look atour style guide to get more information about what we consider a maintainable code style.

What does this template contain?

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.

Ruff: general style rules

Our first tool is Ruff. It will check your codebase and warn you about any non-conforming lines.It is run with the commandruff check in the project root.

Here is a sample output:

$ ruff checkapp.py:1:5: N802 Function name`helloWorld` should be lowercaseapp.py:1:5: ANN201 Missingreturntype annotationfor publicfunction`helloWorld`app.py:2:5: D400 First line should end with a periodapp.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 fileFound 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:

defhelloWorld():# 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: formatting

Ruff also comes with a formatter, which can be run with the commandruff format.It follows the same code style enforced byBlack, so there's no need to pick between them.

Pre-commit: run linting before committing

The second tool doesn't check your code, but rather makes sure that you actuallydo check it.

It makes use of a feature calledGit hooks which allow you to run a piece of code before runninggit 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 isinstalled by runningpre-commit install and can be run manually by calling onlypre-commit.

Lint before you push!

List of hooks

  • check-toml: Lints and corrects your TOML files.
  • check-yaml: Lints and corrects your YAML files.
  • end-of-file-fixer: Makes sure you always have an empty line at the end of your file.
  • trailing-whitespace: Removes whitespaces at the end of each line.
  • ruff-check: Runs the Ruff linter.
  • ruff-format: Runs the Ruff formatter.

How do I use this template?

Creating your team repository

One person in the team, preferably the leader, will have to create the repository and add other members as collaborators.

  1. In the top right corner of your screen, whereClone usually is, you have aUse this template button to click.use-this-template-button
  2. Give the repository a name and a description.create-repository-name
  3. ClickCreate repository from template.
  4. ClickSettings in your newly created repository.repo-actions-settings
  5. In the "Access" section of the sidebar, clickCollaborators.collaborators-settings
  6. ClickAdd people.
  7. Insert the names of each of your teammates, and invite them. Once they have accepted the invitation in their email, they will have write access to the repository.

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 thepyproject.toml file, and swap "Python Discord" in theLICENSE.txt file for the name of each of your team members or the name of your teamafter the start of the code jam.

Using the default pip setup

Our default setup includes a dependency group to be used with avirtual 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 thatbelow.

Dependency groups are a relatively new feature, specified inPEP 735.You can read more about them in thePython Packaging User Guide.

Creating the environment

Create a virtual environment in the folder.venv.

python -m venv .venv

Entering the environment

It 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.ps1

Installing the dependencies

Once the environment is created and activated, use this command to install the development dependencies.

pip install --group dev

Exiting the environment

Interestingly enough, it is the same for every platform.

deactivate

Once the environment is activated, all the commands listed previously should work.

Important

We highly recommend that you runpre-commit install as soon as possible.

How do I adapt this template to my project?

If you wish to use Pipenv or Poetry, you will have to move the dependencies inpyproject.toml to the development dependencies of your tool.

We've included a porting to bothPoetry andPipenv in thesamples folder.Note that the Poetrypyproject.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 topin them by adding a version tag at the end.For example, if I wish to installClick, a quick look atPyPI tells me that8.1.7 is the latest version.I will then addclick~=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.

Final words

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!

About

Template repository for Python Discord Code Jam projects.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Contributors11


[8]ページ先頭

©2009-2025 Movatter.jp