Events

This material is being used during the online events organized in the Code-Mavens Meetup group.

Chat

How to select a Python project to contribute to?

  • Pick a Python-based project you use.
  • Pick a Python module that your code directly depends on. They are listed in requirements.txt or pyproject.toml.
  • Pick a Python module that your code indirectly depends on. They are listed in constraints.txt, uv.lock.
  • Search on GitHub: A semi-popular, recently updated Python project stars:100..1000 pushed:>2025-10-01 language:Python
  • For now I’ll pick some of the scientific libraries. e.g. Biology-related libraries.
  • Ask ChatGPT to suggest other science-related libraries.
  • Pick a popular project and work on stale PRs. That is PRs where there is already good work, but the original author (of the PR) has vanished.
  • PyDigger - once it is fixed.

What and how to contribute to a Python project?

  • Link to VCS: Does the project listing in Pypi link to its public VCS? If not, try to find the VCS and the first PR could be adding this link. If you can’t find the VCS then the rest will be rather irrelevant. Maybe send an email to the author asking if there is a public VCS?
  • Testing: Try to run the tests locally or better yet in a Docker conatiner.
  • CI
    • If there are tests, check if there is a CI?
    • Setting up CI: GitHub Actions or GitLab pipelines.
    • Updating the GitHub actions if necessary.
  • Dependencies
    • Add dependabot for GitHub Actions and for the dependencies.
  • Code formatting
    • Using black check if the code is well formatted. If not open an issue suggestion to do it. black --check .
    • See also autopep8.
  • Linting
  • Add type annotation
  • Fuzz testing
  • Mutation testing
  • Code complexity analyzis
  • Refactoring
  • Code reading
  • Convert setup.py to pyproject.toml.

Project reports

Some python projects

(Not fully categorized yet)

Generic

  • requests
  • jupyter
  • flask
  • pandas
  • pytest
  • numpy

  • allensdk
  • box2d
  • cv2
  • deeplabcut
  • functools
  • glob
  • gseapy
  • h5py
  • itertools
  • joblib
  • keras
  • matplot
  • matplotlib
  • mayavi
  • openpyxl
  • PIL
  • pygame
  • pyppt
  • ray
  • redirect
  • scipy
  • seaborn
  • skimage
  • statsmodels
  • tifffile
  • voila

ML

Generic visualization

Specialized

These 3 try to solve the same problem: