Git Product home page Git Product logo

html-to-pdf-converter's Introduction

Python project template

This is a template repository for any Python project that comes with the following dev tools:

  • ruff: identifies many errors and style issues (flake8, isort, pyupgrade)
  • black: auto-formats code

Those checks are run as pre-commit hooks using the pre-commit library.

It includes pytest for testing plus the pytest-cov plugin to measure coverage.

The checks and tests are all run using Github actions on every pull request and merge to main.

This repository is setup for Python 3.10. To customize that, change the VARIANT argument in .devcontainer/devcontainer.json, change the config options in .precommit-config.yaml and change the version number in .github/workflows/python.yaml.

Development instructions

With devcontainer

This repository comes with a devcontainer (a Dockerized Python environment). If you open it in Codespaces, it should automatically initialize the devcontainer.

Locally, you can open it in VS Code with the Dev Containers extension installed.

Without devcontainer

If you can't or don't want to use the devcontainer, then you should first create a virtual environment:

python3 -m venv .venv
source .venv/bin/activate

Then install the dev tools and pre-commit hooks:

python3 -m pip install --user -r requirements-dev.txt
pre-commit install

Adding code and tests

This repository starts with a very simple main.py and a test for it at tests/main_test.py. You'll want to replace that with your own code, and you'll probably want to add additional files as your code grows in complexity.

When you're ready to run tests, run:

python3 -m pytest

File breakdown

Here's a short explanation of each file/folder in this template:

  • .devcontainer: Folder containing files used for setting up a devcontainer
    • devcontainer.json: File configuring the devcontainer, includes VS Code settings
    • Dockerfile: File with commands to build the devcontainer's Docker image
  • .github: Folder for Github-specific files and folders
    • workflows: Folder containing Github actions config files
      • python.yaml: File configuring Github action that runs tools and tests
  • tests: Folder containing Python tests
    • main_test.py: File with pytest-style tests of main.py
  • .gitignore: File describing what file patterns Git should never track
  • .pre-commit-config.yaml: File listing all the pre-commit hooks and args
  • main.py: The main (and currently only) Python file for the program
  • pyproject.toml: File configuring most of the Python dev tools
  • README.md: You're reading it!
  • requirements-dev.txt: File listing all PyPi packages required for development
  • requirements.txt: File listing all PyPi packages required for production

For a longer explanation, read this blog post.

๐Ÿ”Ž Found an issue or have an idea for improvement?

Help me make this template repository better by letting us know and opening an issue!

html-to-pdf-converter's People

Contributors

pamelafox avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.