Skip to main content

hypermodern-python-tuto

Repo to follow the Claudio Jolowicz's tutorial about Hypermodern Python. It follows it until this release. After this one, I started adding further tools, deleting some that I consider useless and replacing some others.


Package Supported Python Versions PyPI version PyPI downloads
CI Tests status Documentation status Coverage status
Code Code quality pre-commit

Table of contents

Overview

The app created is a CLI application that queries a random Wikipedia page and displays its title and summary.

Install

pip install hypermodern-python-tuto

Use

Basic usage

Just run the following command:

hypermodern-python-tuto

Other options

Look at the documentation.

Tools used

Generic tools

Tools that can be used in every development project, no matter if it's a Python project or not.

  • Codecov, to mesure code coverage on repos. I let it in this project since it is already setup, but I don't think I will use it in other projects.
  • git, to manage versions of the source code.
  • GitHub, to host the git repository and automate tasks with GitHub Actions:
  • pre-commit, to manage pre-commit hooks.

Generic Python tools

Tools that can be used in every Python project, no matter its content.

Multi-purpose

  • nox, to run tasks in multiple Python environments (like tests, linting, reformatting, etc.).
  • PyPI, to install and publish Python packages.
  • poetry, to make development and distribution easy (packaging, virtualization, dependencies, launching and publishing).
  • TestPyPI, PyPI but for testing purposes.

Setup

  • pyenv, to manage Python versions.

Test

  • pytest, a framework to write unit tests. Also used to run doctests.
  • pytest-cov, to mesure the code coverage (degree to which the source code of a program is executed while running its test suite).
  • pytest-mock, to use the unittest mocking in the pytest way.

Linting

  • Ruff, an extremely fast linter that support of all main linter rules.

Security

Formatting

  • black, to format the code.
  • isort, to sort imports.

Type checking

  • mypy, the classic type checker.

Documentation

  • Read the Docs, to host the documentation.
  • Sphinx, the documentation tool used by the official Python documentation, with:
    • autodoc, Sphinx official plugin to generate API documentation from the docstrings.
    • napoleon, Sphinx official plugin to allow compatibility with Google-style docstrings.
    • sphinx-autodoc-typehints, Sphinx plugin to detect type hints in generated documentation.

Specific Python tools

Tools to match specific needs of the projet.

UI

  • click, to create CLI applications.

Communication

Data validation

  • marshmallow, to serialize, deserialize and validate data.

I used marshmallow to follow the tutorial, but pydantic is more known, and I find it easier to use.

Metadata

Release files for hypermodern-python-tuto 1.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hypermodern-python-tuto 1.0.4
File Size Uploaded
hypermodern_python_tuto-1.0.4.tar.gz 11.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hypermodern-python-tuto 1.0.4
File Interpreter ABI Platform
hypermodern_python_tuto-1.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 20.2 kB

Release files / hypermodern_python_tuto-1.0.4.tar.gz

Download URL hypermodern_python_tuto-1.0.4.tar.gz
Size 11.2 kB
Tags Source
SHA-256 checksum
How to use checksums
262e151bd9f74279edb15e35965d586d08870cb8e10f187734f69e2c449a2b06
BLAKE2b-256 checksum
How to use checksums
c2b564f2d2f0acbec507503d56e4ed4bff82bf131148dbab13b438dc470012c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.11.2 Linux/5.15.0-1035-azure

Release files / hypermodern_python_tuto-1.0.4-py3-none-any.whl

Download URL hypermodern_python_tuto-1.0.4-py3-none-any.whl
Size 9.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
289d7cd937e6cfdced220225b98db15ea82362ad0107548f186b32f345609127
BLAKE2b-256 checksum
How to use checksums
5d9777bb9a66dceafa948341704e97575f9fd71b53f2ab53294fbc70f1d9aa9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.11.2 Linux/5.15.0-1035-azure

Release history Release notifications | RSS feed

This release

1.0.4 This release

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

0.6.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page