DEV Community

Cover image for 9 Open Source Python Projects to Join in 2022!
Code_Jedi
Code_Jedi

Posted on • Updated on

9 Open Source Python Projects to Join in 2022!

Contributing to open source projects is great for your reputation, skill development and knowledge as a developer.
In this article, I will be going through 9 open source Python projects that you can join today!


9. Django

Ah yes, the famous web development framework made for Python. It has more than 60k stars on Github and is used by millions of Python developers around the world.

GitHub logo django / django

The Web framework for perfectionists with deadlines.

Django

Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. Thanks for checking it out.

All documentation is in the "docs" directory and online at https://docs.djangoproject.com/en/stable/. If you're just getting started here's how we recommend you read the docs:

  • First, read docs/intro/install.txt for instructions on installing Django.
  • Next, work through the tutorials in order (docs/intro/tutorial01.txt docs/intro/tutorial02.txt, etc.).
  • If you want to set up an actual deployment server, read docs/howto/deployment/index.txt for instructions.
  • You'll probably want to read through the topical guides (in docs/topics) next; from there you can jump to the HOWTOs (in docs/howto) for specific problems, and check out the reference (docs/ref) for gory details.
  • See docs/README for instructions on building an HTML version of the docs.

Docs are updated rigorously. If you find any problems in the docs, or think they should be…

If you have experience with web development in Python and are looking to join an open source project, Django is the project for you!
Start contributing to Django here.


8. Scrapy

Scrapy is the most popular Python web scraping library with over 40k stars on github.

GitHub logo scrapy / scrapy

Scrapy, a fast high-level web crawling & scraping framework for Python.

https://scrapy.org/img/scrapylogo.png

Scrapy

PyPI Version Supported Python Versions Ubuntu macOS Windows Wheel Status Coverage report Conda Version

Overview

Scrapy is a fast high-level web crawling and web scraping framework, used to crawl websites and extract structured data from their pages. It can be used for a wide range of purposes, from data mining to monitoring and automated testing.

Scrapy is maintained by Zyte (formerly Scrapinghub) and many other contributors.

Check the Scrapy homepage at https://scrapy.org for more information including a list of features.

Requirements

  • Python 3.6+
  • Works on Linux, Windows, macOS, BSD

Install

The quick way:

pip install scrapy

See the install section in the documentation at https://docs.scrapy.org/en/latest/intro/install.html for more details.

Documentation

Documentation is available online at https://docs.scrapy.org/ and in the docs directory.

Releases

You can check https://docs.scrapy.org/en/latest/news.html for the release notes.

Community (blog, twitter, mail list, IRC)

See https://scrapy.org/community/ for details.

Contributing

See https://docs.scrapy.org/en/master/contributing.html for details.

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct (see https://github.com/scrapy/scrapy/blob/master/CODE_OF_CONDUCT.md

If you're into web scraping with Python and want to work on improving the web scraping library used by thousands of Python developers, start contributing to Scrapy through this page.


7. Scikit-Learn

If you've been involved in machine learning with Python for some time, you've probably come across this library.

GitHub logo scikit-learn / scikit-learn

scikit-learn: machine learning in Python

Azure Travis Codecov CircleCI Nightly wheels Black PythonVersion PyPi DOI Benchmark

https://raw.githubusercontent.com/scikit-learn/scikit-learn/main/doc/logos/scikit-learn-logo.png

scikit-learn is a Python module for machine learning built on top of SciPy and is distributed under the 3-Clause BSD license.

The project was started in 2007 by David Cournapeau as a Google Summer of Code project, and since then many volunteers have contributed. See the About us page for a list of core contributors.

It is currently maintained by a team of volunteers.

Website: https://scikit-learn.org

Installation

Dependencies

scikit-learn requires:

  • Python (>= 3.7)
  • NumPy (>= 1.14.6)
  • SciPy (>= 1.1.0)
  • joblib (>= 1.0.0)
  • threadpoolctl (>= 2.0.0)

Scikit-learn 0.20 was the last version to support Python 2.7 and Python 3.4. scikit-learn 0.23 and later require Python 3.6 or newer scikit-learn 1.0 and later require Python 3.7 or newer.

Scikit-learn plotting capabilities (i.e., functions start with plot_ and classes end with "Display") require Matplotlib (>= 2.2.3) For running the examples Matplotlib >= 2.2.3 is required. A few examples require scikit-image >= 0.14.5, a…

If you have experience with machine learning and data visualization with Python and want to contribute to one of the most popular Python machine learning libraries, start contributing to scikit-learn here.


6. Pandas

Pandas is the most popular data analysis/manipulation library for Python.

GitHub logo pandas-dev / pandas

Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more



pandas: powerful Python data analysis toolkit

PyPI Latest Release Conda Latest Release DOI Package Status License Azure Build Status Coverage Downloads Gitter Powered by NumFOCUS Code style: black Imports: isort

What is it?

pandas is a Python package that provides fast, flexible, and expressive data structures designed to make working with "relational" or "labeled" data both easy and intuitive. It aims to be the fundamental high-level building block for doing practical, real world data analysis in Python. Additionally, it has the broader goal of becoming the most powerful and flexible open source data analysis / manipulation tool available in any language. It is already well on its way towards this goal.

Main Features

Here are just a few of the things that pandas does well:

  • Easy handling of missing data (represented as NaN, NA, or NaT) in floating point as well as non-floating point data
  • Size mutability: columns can be inserted and deleted from DataFrame and higher dimensional objects
  • Automatic and explicit data alignment: objects can be explicitly aligned…

If you know how to work with data in Python and want to help build the future of data analysis/manipulation in Python, start contributing to pandas here.


5. Flask

Flask is another popular Python web development library with over 50k stars on Github.

GitHub logo pallets / flask

The Python micro framework for building web applications.

Flask

Flask is a lightweight WSGI web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications. It began as a simple wrapper around Werkzeug and Jinja and has become one of the most popular Python web application frameworks.

Flask offers suggestions, but doesn't enforce any dependencies or project layout. It is up to the developer to choose the tools and libraries they want to use. There are many extensions provided by the community that make adding new functionality easy.

Installing

Install and update using pip:

$ pip install -U Flask

A Simple Example

# save this as app.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, World!"
Enter fullscreen mode Exit fullscreen mode
$ flask run
  * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Contributing

For guidance on setting…

If you're looking to help build the future of web development with Python, start contributing to flask here.


4. Requests

Requests, the OG library used by millions that is used for making HTTP requests with Python. This might be pretty underwhelming, but you see, the requests library is used to connect to API endpoints, authenticate web connections, scrape data from the web, test web endpoints and more!
Without the requests library, Python wouldn't be where it is today.

GitHub logo psf / requests

A simple, yet elegant, HTTP library.

Requests

Requests is a simple, yet elegant, HTTP library.

>>> import requests
>>> r = requests.get('https://httpbin.org/basic-auth/user/pass', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
'{"authenticated": true, ...'
>>> r.json()
{'authenticated': True, ...}
Enter fullscreen mode Exit fullscreen mode

Requests allows you to send HTTP/1.1 requests extremely easily. There’s no need to manually add query strings to your URLs, or to form-encode your PUT & POST data — but nowadays, just use the json method!

Requests is one of the most downloaded Python packages today, pulling in around 30M downloads / week— according to GitHub, Requests is currently depended upon by 1,000,000+ repositories. You may certainly put your trust in this code.

Downloads Supported Versions Contributors

Installing Requests and Supported

Start contributing to requests here.


3. Matplotlib

Matplotlib is the most popular data visualization library for Python.

GitHub logo matplotlib / matplotlib

matplotlib: plotting with Python

PyPi Downloads NUMFocus

DiscourseBadge Gitter GitHubIssues GitTutorial

GitHubActions AzurePipelines AppVeyor Codecov LGTM

Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python.

Check out our home page for more information.

https://matplotlib.org/_static/readme_preview.png

Matplotlib produces publication-quality figures in a variety of hardcopy formats and interactive environments across platforms. Matplotlib can be used in Python scripts, Python/IPython shells, web application servers, and various graphical user interface toolkits.

Install

For installation instructions and requirements, see the install documentation or installing.rst in the source.

Contribute

You've discovered a bug or something else you want to change - excellent!

You've worked out a way to fix it – even better!

You want to tell us about it – best of all!

Start at the contributing guide!

Contact

Discourse is the discussion forum for general questions and discussions and our recommended starting point.

Our active mailing lists (which are mirrored on Discourse) are:

If you're involved with data visualization with Python and want to contribute to the most used and versatile data visualization library in Python, start contributing to Matplotlib here.


2. Keras

With over 50k stars on Github, Keras is a simple, versatile and robust library for building neural networks with Python.

GitHub logo keras-team / keras

Deep Learning for humans

Keras: Deep Learning for humans

Keras logo

This repository hosts the development of the Keras library Read the documentation at keras.io.

About Keras

Keras is a deep learning API written in Python running on top of the machine learning platform TensorFlow It was developed with a focus on enabling fast experimentation. Being able to go from idea to result as fast as possible is key to doing good research.

Keras is:

  • Simple -- but not simplistic. Keras reduces developer cognitive load to free you to focus on the parts of the problem that really matter.
  • Flexible -- Keras adopts the principle of progressive disclosure of complexity simple workflows should be quick and easy, while arbitrarily advanced workflows should be possible via a clear path that builds upon what you've already learned.
  • Powerful -- Keras provides industry-strength performance and scalability it is used by organizations and companies including NASA, YouTube,…

Start contributing to Keras here.


1. TensorFlow

TensorFlow is a sophisticated Python neural network, deep learning and machine learning library used by millions with over 160k stars on Github.

GitHub logo tensorflow / tensorflow

An Open Source Machine Learning Framework for Everyone

Python PyPI DOI

Documentation
Documentation

TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools libraries, and community resources that lets researchers push the state-of-the-art in ML and developers easily build and deploy ML-powered applications.

TensorFlow was originally developed by researchers and engineers working on the Google Brain team within Google's Machine Intelligence Research organization to conduct machine learning and deep neural networks research. The system is general enough to be applicable in a wide variety of other domains, as well.

TensorFlow provides stable Python and C++ APIs, as well as non-guaranteed backward compatible API for other languages.

Keep up-to-date with release announcements and security updates by subscribing to announce@tensorflow.org See all the mailing lists.

Install

See the TensorFlow install guide for the pip package, to enable GPU support, use a Docker container, and build from source.

Start contributing to TensorFlow here.


Conclusion

I hope that in this article, you've found the open source project that you would like to contribute to, and help build the future of Python.

Educative

Before I end this article, I'd like to recommend Educative for developers looking to learn.
Why Educative?
It is home to hundreds of development courses, hands on tutorials, guides and demonstrations to help you stay ahead of the curve in your development journey.

You can get started with Educative here.

Byeeee👋

Discussion (1)

Collapse
pramodk73 profile image
Pramod

Hey, I was just exploring a place where I can talk about a small project I started few months back. This post came first in the Google search so posting here. It is a python package to to construct python objects from and to dict (json). Happy to listen, get feedback/counter arguments on it :)

Here is the project: github.com/pskd73/pydictable