Github python library

Github python library DEFAULT

Most suitable python library for Github API v3 [closed]

I am looking for a python library for the Github APIv3 suitable for me.

I found one library (python-github3) mentioned in the GH API docs. After playing around with it in ipython for an hour or two, I found it really unintuitive to explore/work with. I looked some more, and found there's quite a number of people at least attempting to write such a library. The more promising-looking (at a glance) are PyGithub and another python-github3, which apparently is different from the first one.

Before I spend the next days consecutively trying out library after library, I wanted to ask the SO community if there is an accepted, definitive, obvious choice for that library?

What I didn't like about the first library was the (to me) unintuitive way to get at data - some things you get as attributes, some you get as return value of a method, that return value is some complicated object which has to be paged and iterated through, etc.

In that regard, PyGithub looks more attractive at first glance - clearly drill down through an object hierarchy, and then arrive at the attribute containing what you want:

So, any pearls of wisdom to share? I know I don't have skills enough to quickly judge library quality, which is why I'm turning to the SO community.

edit: fwiw, I ended up using PyGithub. It works well, and the author is really receptive for feedback and bug reports. :-)


Python GitLab

is a Python package providing access to the GitLab server API.

It supports the v4 API of GitLab, and provides a CLI tool ().



python-gitlab depends on:

Install with pip

pip install python-gitlab

Using the python-gitlab docker image

How to build

How to use

or run it directly from the upstream image:

To change the GitLab URL, use -e GITLAB_URL=<your url>

Bring your own config file:

Bug reports

Please report bugs and feature requests at

Gitter Community Chat

There is a gitter community chat available at


The full documentation for CLI and API is available on readthedocs.

Build the docs

You can build the documentation using :

pip install sphinx python build_sphinx


For guidelines for contributing to , refer to CONTRIBUTING.rst.

  1. Plastic craft caddy
  2. Meshuggah plugin
  3. Kitty tiktok song


Requests is a simple, yet elegant, HTTP library.

>>>importrequests>>>r=requests.get('', auth=('user', 'pass')) >>>r.status_code200>>>r.headers['content-type'] 'application/json; charset=utf8'>>>r.encoding'utf-8'>>>r.text'{"type":"User"...'>>>r.json() {'disk_usage': 368627, 'private_gists': 484, ...}

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 & data — but nowadays, just use the method!

Requests is one of the most downloaded Python package today, pulling in around — according to GitHub, Requests is currently depended upon by repositories. You may certainly put your trust in this code.

DownloadsSupported VersionsContributors

Installing Requests and Supported Versions

Requests is available on PyPI:

$ python -m pip install requests

Requests officially supports Python 2.7 & 3.6+.

Supported Features & Best–Practices

Requests is ready for the demands of building robust and reliable HTTP–speaking applications, for the needs of today.

  • Keep-Alive & Connection Pooling
  • International Domains and URLs
  • Sessions with Cookie Persistence
  • Browser-style TLS/SSL Verification
  • Basic & Digest Authentication
  • Familiar –like Cookies
  • Automatic Content Decompression and Decoding
  • Multi-part File Uploads
  • SOCKS Proxy Support
  • Connection Timeouts
  • Streaming Downloads
  • Automatic honoring of
  • Chunked HTTP Requests

API Reference and User Guide available on Read the Docs

Read the Docs

Cloning the repository

When cloning the Requests repository, you may need to add the flag to avoid an error about a bad commit (see this issue for more background):

git clone -c fetch.fsck.badTimezone=ignore

You can also apply this setting to your global Git config:

git config --global fetch.fsck.badTimezone ignore

Kenneth ReitzPython Software Foundation

2020 April 18 Make Your Own Python Package on GitHub Installable by PIP

This is Python version 3.11.0 alpha 1

CPython build status on Travis CICPython build status on GitHub ActionsCPython build status on Azure DevOpsPython Discourse chat

Copyright (c) 2001-2021 Python Software Foundation. All rights reserved.

See the end of this file for further copyright and license information.

General Information

Contributing to CPython

For more complete instructions on contributing to CPython development, see the Developer Guide.

Using Python

Installable Python kits, and information about using Python, are available at

Build Instructions

On Unix, Linux, BSD, macOS, and Cygwin:

./configure make make test sudo make install

This will install Python as .

You can pass many options to the configure script; run to find out more. On macOS case-insensitive file systems and on Cygwin, the executable is called ; elsewhere it's just .

Building a complete Python installation requires the use of various additional third-party libraries, depending on your build platform and configure options. Not all standard library modules are buildable or useable on all platforms. Refer to the Install dependencies section of the Developer Guide for current detailed information on dependencies for various Linux distributions and macOS.

On macOS, there are additional configure and build options related to macOS framework and universal builds. Refer to Mac/README.rst.

On Windows, see PCbuild/readme.txt.

If you wish, you can create a subdirectory and invoke configure from there. For example:

mkdir debug cd debug ../configure --with-pydebug make make test

(This will fail if you also built at the top-level directory. You should do a at the top-level first.)

To get an optimized build of Python, before you run . This sets the default make targets up to enable Profile Guided Optimization (PGO) and may be used to auto-enable Link Time Optimization (LTO) on some platforms. For more details, see the sections below.

Profile Guided Optimization

PGO takes advantage of recent versions of the GCC or Clang compilers. If used, either via or by manually running regardless of configure flags, the optimized build process will perform the following steps:

The entire Python directory is cleaned of temporary files that may have resulted from a previous compilation.

An instrumented version of the interpreter is built, using suitable compiler flags for each flavor. Note that this is just an intermediary step. The binary resulting from this step is not good for real-life workloads as it has profiling instructions embedded inside.

After the instrumented interpreter is built, the Makefile will run a training workload. This is necessary in order to profile the interpreter's execution. Note also that any output, both stdout and stderr, that may appear at this step is suppressed.

The final step is to build the actual interpreter, using the information collected from the instrumented one. The end result will be a Python binary that is optimized; suitable for distribution or production installation.

Link Time Optimization

Enabled via configure's flag. LTO takes advantage of the ability of recent compiler toolchains to optimize across the otherwise arbitrary file boundary when building final executables or shared libraries for additional performance gains.

What's New

We have a comprehensive overview of the changes in the What's New in Python 3.10 document. For a more detailed change log, read Misc/NEWS, but a full accounting of changes can only be gleaned from the commit history.

If you want to install multiple versions of Python, see the section below entitled "Installing multiple versions".


Documentation for Python 3.10 is online, updated daily.

It can also be downloaded in many formats for faster access. The documentation is downloadable in HTML, PDF, and reStructuredText formats; the latter version is primarily for documentation authors, translators, and people with special formatting requirements.

For information about building Python's documentation, refer to Doc/README.rst.

Converting From Python 2.x to 3.x

Significant backward incompatible changes were made for the release of Python 3.0, which may cause programs written for Python 2 to fail when run with Python 3. For more information about porting your code from Python 2 to Python 3, see the Porting HOWTO.


To test the interpreter, type in the top-level directory. The test set produces some output. You can generally ignore the messages about skipped tests due to optional features which can't be imported. If a message is printed about a failed test or a traceback or core dump is produced, something is wrong.

By default, tests are prevented from overusing resources like disk space and memory. To enable these tests, run .

If any tests fail, you can re-run the failing test(s) in verbose mode. For example, if and failed, you can run:

make test TESTOPTS="-v test_os test_gdb"

If the failure persists and appears to be a problem with Python rather than your environment, you can file a bug report and include relevant output from that command to show the issue.

See Running & Writing Tests for more on running tests.

Installing multiple versions

On Unix and Mac systems if you intend to install multiple versions of Python using the same installation prefix ( argument to the configure script) you must take care that your primary python executable is not overwritten by the installation of a different version. All files and directories installed using contain the major and minor version and can thus live side-by-side. also creates which refers to . If you intend to install multiple versions using the same prefix you must decide which version (if any) is your "primary" version. Install that version using . Install all other versions using .

For example, if you want to install Python 2.7, 3.6, and 3.10 with 3.10 being the primary version, you would execute in your 3.10 build directory and in the others.

Issue Tracker and Mailing List

Bug reports are welcome! You can use the issue tracker to report bugs, and/or submit pull requests on GitHub.

You can also follow development discussion on the python-dev mailing list.

Proposals for enhancement

If you have a proposal to change Python, you may want to send an email to the comp.lang.python or python-ideas mailing lists for initial feedback. A Python Enhancement Proposal (PEP) may be submitted if your idea gains ground. All current PEPs, as well as guidelines for submitting a new PEP, are listed at

Release Schedule

See PEP 619 for Python 3.10 release details.

Copyright and License Information

Copyright (c) 2001-2021 Python Software Foundation. All rights reserved.

Copyright (c) 2000 All rights reserved.

Copyright (c) 1995-2001 Corporation for National Research Initiatives. All rights reserved.

Copyright (c) 1991-1995 Stichting Mathematisch Centrum. All rights reserved.

See the LICENSE for information on the history of this software, terms & conditions for usage, and a DISCLAIMER OF ALL WARRANTIES.

This Python distribution contains no GNU General Public License (GPL) code, so it may be used in proprietary projects. There are interfaces to some GNU code but these are entirely optional.

All trademarks referenced herein are property of their respective holders.


Library github python

Awesome Python Awesome

A curated list of awesome Python frameworks, libraries, software and resources.

Inspired by awesome-php.

Admin Panels

Libraries for administrative interfaces.

  • ajenti - The admin panel your servers deserve.
  • django-grappelli - A jazzy skin for the Django Admin-Interface.
  • django-jet - Modern responsive template for the Django admin interface with improved functionality.
  • django-suit - Alternative Django Admin-Interface (free only for Non-commercial use).
  • django-xadmin - Drop-in replacement of Django admin comes with lots of goodies.
  • flask-admin - Simple and extensible administrative interface framework for Flask.
  • flower - Real-time monitor and web admin for Celery.
  • jet-bridge - Admin panel framework for any application with nice UI (ex Jet Django).
  • wooey - A Django app which creates automatic web UIs for Python scripts.

Algorithms and Design Patterns

Python implementation of data structures, algorithms and design patterns. Also see awesome-algorithms.

  • Algorithms
    • algorithms - Minimal examples of data structures and algorithms.
    • python-ds - A collection of data structure and algorithms for coding interviews.
    • sortedcontainers - Fast and pure-Python implementation of sorted collections.
    • TheAlgorithms - All Algorithms implemented in Python.
  • Design Patterns
    • PyPattyrn - A simple yet effective library for implementing common design patterns.
    • python-patterns - A collection of design patterns in Python.
    • transitions - A lightweight, object-oriented finite state machine implementation.

ASGI Servers

ASGI-compatible web servers.

  • daphne - A HTTP, HTTP2 and WebSocket protocol server for ASGI and ASGI-HTTP.
  • uvicorn - A lightning-fast ASGI server implementation, using uvloop and httptools.

Asynchronous Programming

  • asyncio - (Python standard library) Asynchronous I/O, event loop, coroutines and tasks.
  • trio - A friendly library for async concurrency and I/O.
  • Twisted - An event-driven networking engine.
  • uvloop - Ultra fast asyncio event loop.


Libraries for manipulating audio and its metadata.

  • Audio
    • audioread - Cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding.
    • dejavu - Audio fingerprinting and recognition.
    • kapre - Keras Audio Preprocessors.
    • librosa - Python library for audio and music analysis.
    • matchering - A library for automated reference audio mastering.
    • mingus - An advanced music theory and notation package with MIDI file and playback support.
    • pyAudioAnalysis - Audio feature extraction, classification, segmentation and applications.
    • pydub - Manipulate audio with a simple and easy high level interface.
    • TimeSide - Open web audio processing framework.
  • Metadata
    • beets - A music library manager and MusicBrainz tagger.
    • eyeD3 - A tool for working with audio files, specifically MP3 files containing ID3 metadata.
    • mutagen - A Python module to handle audio metadata.
    • tinytag - A library for reading music meta data of MP3, OGG, FLAC and Wave files.


Libraries for implementing authentications schemes.

  • OAuth
    • authlib - JavaScript Object Signing and Encryption draft implementation.
    • django-allauth - Authentication app for Django that "just works."
    • django-oauth-toolkit - OAuth 2 goodies for Django.
    • oauthlib - A generic and thorough implementation of the OAuth request-signing logic.
    • python-oauth2 - A fully tested, abstract interface to creating OAuth clients and servers.
    • python-social-auth - An easy-to-setup social authentication mechanism.
  • JWT
    • pyjwt - JSON Web Token implementation in Python.
    • python-jose - A JOSE implementation in Python.
    • python-jwt - A module for generating and verifying JSON Web Tokens.

Build Tools

Compile software from source code.

  • BitBake - A make-like build tool for embedded Linux.
  • buildout - A build system for creating, assembling and deploying applications from multiple parts.
  • PlatformIO - A console tool to build code with different development platforms.
  • pybuilder - A continuous build tool written in pure Python.
  • SCons - A software construction tool.

Built-in Classes Enhancement

Libraries for enhancing Python built-in classes.

  • attrs - Replacement for , , , etc. boilerplate in class definitions.
  • bidict - Efficient, Pythonic bidirectional map data structures and related functionality..
  • Box - Python dictionaries with advanced dot notation access.
  • dataclasses - (Python standard library) Data classes.
  • DottedDict - A library that provides a method of accessing lists and dicts with a dotted path notation.


Content Management Systems.

  • django-cms - An Open source enterprise CMS based on the Django.
  • feincms - One of the most advanced Content Management Systems built on Django.
  • indico - A feature-rich event management system, made @ CERN.
  • Kotti - A high-level, Pythonic web application framework built on Pyramid.
  • mezzanine - A powerful, consistent, and flexible content management platform.
  • plone - A CMS built on top of the open source application server Zope.
  • quokka - Flexible, extensible, small CMS powered by Flask and MongoDB.
  • wagtail - A Django content management system.


Libraries for caching data.

  • beaker - A WSGI middleware for sessions and caching.
  • django-cache-machine - Automatic caching and invalidation for Django models.
  • django-cacheops - A slick ORM cache with automatic granular event-driven invalidation.
  • dogpile.cache - dogpile.cache is next generation replacement for Beaker made by same authors.
  • HermesCache - Python caching library with tag-based invalidation and dogpile effect prevention.
  • pylibmc - A Python wrapper around the libmemcached interface.
  • python-diskcache - SQLite and file backed cache backend with faster lookups than memcached and redis.

ChatOps Tools

Libraries for chatbot development.

  • errbot - The easiest and most popular chatbot to implement ChatOps.

Code Analysis

Tools of static analysis, linters and code quality checkers. Also see awesome-static-analysis.

  • Code Analysis
    • coala - Language independent and easily extendable code analysis application.
    • code2flow - Turn your Python and JavaScript code into DOT flowcharts.
    • prospector - A tool to analyse Python code.
    • pycallgraph - A library that visualises the flow (call graph) of your Python application.
    • vulture - A tool for finding and analysing dead Python code.
  • Code Linters
  • Code Formatters
    • black - The uncompromising Python code formatter.
    • isort - A Python utility / library to sort imports.
    • yapf - Yet another Python code formatter from Google.
  • Static Type Checkers, also see awesome-python-typing
    • mypy - Check variable types during compile time.
    • pyre-check - Performant type checking.
    • typeshed - Collection of library stubs for Python, with static types.
  • Static Type Annotations Generators
    • MonkeyType - A system for Python that generates static type annotations by collecting runtime types.
    • pyannotate - Auto-generate PEP-484 annotations.
    • pytype - Pytype checks and infers types for Python code - without requiring type annotations.

Command-line Interface Development

Libraries for building command-line applications.

  • Command-line Application Development
    • cement - CLI Application Framework for Python.
    • click - A package for creating beautiful command line interfaces in a composable way.
    • cliff - A framework for creating command-line programs with multi-level commands.
    • docopt - Pythonic command line arguments parser.
    • python-fire - A library for creating command line interfaces from absolutely any Python object.
    • python-prompt-toolkit - A library for building powerful interactive command lines.
  • Terminal Rendering
    • alive-progress - A new kind of Progress Bar, with real-time throughput, eta and very cool animations.
    • asciimatics - A package to create full-screen text UIs (from interactive forms to ASCII animations).
    • bashplotlib - Making basic plots in the terminal.
    • colorama - Cross-platform colored terminal text.
    • rich - Python library for rich text and beautiful formatting in the terminal. Also provides a great log handler.
    • tqdm - Fast, extensible progress bar for loops and CLI.

Command-line Tools

Useful CLI-based tools for productivity.

  • Productivity Tools
    • copier - A library and command-line utility for rendering projects templates.
    • cookiecutter - A command-line utility that creates projects from cookiecutters (project templates).
    • doitlive - A tool for live presentations in the terminal.
    • howdoi - Instant coding answers via the command line.
    • Invoke - A tool for managing shell-oriented subprocesses and organizing executable Python code into CLI-invokable tasks.
    • PathPicker - Select files out of bash output.
    • percol - Adds flavor of interactive selection to the traditional pipe concept on UNIX.
    • thefuck - Correcting your previous console command.
    • tmuxp - A tmux session manager.
    • try - A dead simple CLI to try out python packages - it's never been easier.
  • CLI Enhancements
    • httpie - A command line HTTP client, a user-friendly cURL replacement.
    • iredis - Redis CLI with autocompletion and syntax highlighting.
    • kube-shell - An integrated shell for working with the Kubernetes CLI.
    • litecli - SQLite CLI with autocompletion and syntax highlighting.
    • mycli - MySQL CLI with autocompletion and syntax highlighting.
    • pgcli - PostgreSQL CLI with autocompletion and syntax highlighting.
    • saws - A Supercharged aws-cli.


Libraries for migrating from Python 2 to 3.

  • python-future - The missing compatibility layer between Python 2 and Python 3.
  • modernize - Modernizes Python code for eventual Python 3 migration.
  • six - Python 2 and 3 compatibility utilities.

Computer Vision

Libraries for Computer Vision.

  • EasyOCR - Ready-to-use OCR with 40+ languages supported.
  • Face Recognition - Simple facial recognition library.
  • Kornia - Open Source Differentiable Computer Vision Library for PyTorch.
  • OpenCV - Open Source Computer Vision Library.
  • pytesseract - A wrapper for Google Tesseract OCR.
  • SimpleCV - An open source framework for building computer vision applications.
  • tesserocr - Another simple, Pillow-friendly, wrapper around the API for OCR.

Concurrency and Parallelism

Libraries for concurrent and parallel execution. Also see awesome-asyncio.

  • concurrent.futures - (Python standard library) A high-level interface for asynchronously executing callables.
  • eventlet - Asynchronous framework with WSGI support.
  • gevent - A coroutine-based Python networking library that uses greenlet.
  • multiprocessing - (Python standard library) Process-based parallelism.
  • scoop - Scalable Concurrent Operations in Python.
  • uvloop - Ultra fast implementation of event loop on top of .


Libraries for storing and parsing configuration options.

  • configobj - INI file parser with validation.
  • configparser - (Python standard library) INI file parser.
  • hydra - Hydra is a framework for elegantly configuring complex applications.
  • profig - Config from multiple formats with value conversion.
  • python-decouple - Strict separation of settings from code.


  • cryptography - A package designed to expose cryptographic primitives and recipes to Python developers.
  • paramiko - The leading native Python SSHv2 protocol library.
  • passlib - Secure password storage/hashing library, very high level.
  • pynacl - Python binding to the Networking and Cryptography (NaCl) library.

Data Analysis

Libraries for data analyzing.

  • AWS Data Wrangler - Pandas on AWS.
  • Blaze - NumPy and Pandas interface to Big Data.
  • Open Mining - Business Intelligence (BI) in Pandas interface.
  • Optimus - Agile Data Science Workflows made easy with PySpark.
  • Orange - Data mining, data visualization, analysis and machine learning through visual programming or scripts.
  • Pandas - A library providing high-performance, easy-to-use data structures and data analysis tools.

Data Validation

Libraries for validating data. Used for forms in many cases.

  • Cerberus - A lightweight and extensible data validation library.
  • colander - Validating and deserializing data obtained via XML, JSON, an HTML form post.
  • jsonschema - An implementation of JSON Schema for Python.
  • schema - A library for validating Python data structures.
  • Schematics - Data Structure Validation.
  • valideer - Lightweight extensible data validation and adaptation library.
  • voluptuous - A Python data validation library.

2020 April 18 Make Your Own Python Package on GitHub Installable by PIP

SciPy logo SciPy

SciPy (pronounced "Sigh Pie") is an open-source software for mathematics, science, and engineering. It includes modules for statistics, optimization, integration, linear algebra, Fourier transforms, signal and image processing, ODE solvers, and more.

SciPy is built to work with NumPy arrays, and provides many user-friendly and efficient numerical routines, such as routines for numerical integration and optimization. Together, they run on all popular operating systems, are quick to install, and are free of charge. NumPy and SciPy are easy to use, but powerful enough to be depended upon by some of the world's leading scientists and engineers. If you need to manipulate numbers on a computer and display or publish the results, give SciPy a try!

For the installation instructions, see our install guide.

Call for Contributions

We appreciate and welcome contributions. Small improvements or fixes are always appreciated; issues labeled as "good first issue" may be a good starting point. Have a look at our contributing guide.

Writing code isn’t the only way to contribute to SciPy. You can also:

  • review pull requests
  • triage issues
  • develop tutorials, presentations, and other educational materials
  • maintain and improve our website
  • develop graphic design for our brand assets and promotional materials
  • help with outreach and onboard new contributors
  • write grant proposals and help with other fundraising efforts

If you’re unsure where to start or how your skills fit in, reach out! You can ask on the mailing list or here, on GitHub, by leaving a comment on a relevant issue that is already open.

If you are new to contributing to open source, this guide helps explain why, what, and how to get involved.

You will also be interested:


PyPICIreadthedocsLicenseSlackOpen Source HelperscodecovCode style: black

PyGitHub is a Python library to access the GitHub REST API. This library enables you to manage GitHub resources such as repositories, user profiles, and organizations in your Python applications.


Simple Demo

fromgithubimportGithub# First create a Github instance:# using an access tokeng=Github("access_token") # Github Enterprise with custom hostnameg=Github(base_url="https://{hostname}/api/v3", login_or_token="access_token") # Then play with your Github objects:forrepoing.get_user().get_repos(): print(


More information can be found on the PyGitHub documentation site.



Long-term discussion and bug reports are maintained via GitHub Issues. Code review is done via GitHub Pull Requests.

For more information read


We're actively seeking maintainers that will triage issues and pull requests and cut releases. If you work on a project that leverages PyGitHub and have a vested interest in keeping the code alive and well, send an email to someone in the MAINTAINERS file.


1228 1229 1230 1231 1232