Skip to main content

Repo to follow the Claudio Jolowicz's tutorial about Hypermodern Python (https://cjolowicz.github.io/posts/hypermodern-python-01-setup/)

Project description

hypermodern-python-tuto

Repo to follow the Claudio Jolowicz's tutorial about Hypermodern Python.

Tests Codecov PyPI Read the Docs

Table of contents

Description of the application

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

Install

TODO

Use

TODO

Tools used

Generic tools

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

Generic Python tools

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

Multi-purpose

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

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
  • xdoctest, to execute the doctests (tests in documentation strings)

Linting

Security

Formatting

  • black, to format the code

Type checking

Documentation

  • Sphinx, the documentation tool used by the official Python documentation.
  • 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
  • dessert, to generate marshmallow serialization schemas → not used because too limited (can't work with data where fields names are different from the ones of the target dataclass)

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hypermodern_python_tuto-1.0.1.tar.gz (7.6 kB view hashes)

Uploaded Source

Built Distribution

hypermodern_python_tuto-1.0.1-py3-none-any.whl (8.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page