A simple asynchronous python wrapper for the GitHub Gists API
Project description
gists.py
A simple asynchronous python wrapper for the GitHub Gists API
This API wrapper mainly focuses on the Gists part of the GitHub API, not the entire API
Features
All unchecked features are planned
Gists
-
GET
ing from/gists
, to get authenticated user's Gists -
GET
ing from/users/{username}/gists
to get a user's Gists -
GET
ing from/gists/public
to get public Gists -
GET
ing from/gists/starred
to get authenticated user's starred Gists -
POST
ing to/gists
, to create a Gist -
GET
ing from/gists/{gist_id}
to get a Gist -
PATCH
ing to/gists/{gist_id}
, to edit a Gist -
DELETE
ing from/gists/{gist_id}
to delete a Gist
Gists - Forks
-
POST
ing to/gists/{gist_id}/forks
to fork a Gist to the authenticated user's profile
Gists - Star
-
GET
ing from/gists/{gist_id}/star
to check if a gist is starred by the authenticated user -
PUT
ing/gists/{gist_id}/star
to star a Gist with the authenticated user -
DELETE
ing from/gists/{gist_id}/star
to unstar a Gist with the authenticated user
Gists - Comments
-
GET
ing from/gists/{gist_id}/comments
to get all comments on a Gist -
POST
ing to/gists/{gist_id}/comments
to create a comment on a Gist -
GET
ing from/gists/{gist_id}/comments/{comment_id}
to get a comment on a Gist -
PATCH
ing to/gists/{gist_id}/comments/{comment_id}
to edit a comment of the authenticated user on a Gist -
DELETE
ing from/gists/{gist_id}/comments/{comment_id}
to delete a comment of the authenticated user on a Gist
Installation
Windows
py -m pip install gists.py
or
py -m pip install git+https://github.com/WitherredAway/gists.py
Linux/macOS
python3 -m pip install gists.py
or
python3 -m pip install git+https://github.com/WitherredAway/gists.py
Usage examples
This section is a work in progress
Import gists and instantiate a client
# Import asyncio
import asyncio
# Import the package
import gists
# Create a client instance
client = gists.Client()
Get a gist
async def main_get():
# Getting a gist does not require authorization
# This method fetches the gist associated with the provided gist id, and returns a Gist object
gist = await client.get_gist("GIST ID")
return gist
# Run the main_get() function
gist = asyncio.run(main_get())
# Print the gist's description
print(gist.description)
Create a new gist
async def main_create() -> gists.Gist:
# Creating a gist requires authorization, use client.authorize to authorize the client
await client.authorize("YOUR GITHUB PERSONAL ACCESS TOKEN")
# The description to set
description = "Hi this is a gist"
# The files to create in the new gist
files = [
gists.File(name="example.txt", content="I like turtles"),
gists.File(name="helloworld.py", content="print(\"Hello, world!\")"),
]
# Whether or not the gist should be public
public = True
# This method creates a new gist and returns a Gist object associated with that gist
gist = await client.create_gist(files=files, description=description, public=public)
return gist
# Run the main_create() function
gist_1 = asyncio.run(main_create())
# Print the gist's id
print(gist_1.id)
Edit gist using the edit method of a Gist object
async def main_edit():
# Editing a gist requires authorization, but we already authorized the client when creating the gist
# The description to edit to
description = "Hello this is a gist, but edited"
# The files to edit in gist
files = [
# Use a unique filename for the name parameter to create a new file
gists.File(name="newfile.txt", content="New file"),
# Use an existing filename for the name parameter to edit that file
gists.File(name="example.txt", content="I like all animals"),
# Use an existing filename for the name parameter and
# pass in the new_name parameter to edit the name of that file,
# in which case the content parameter is not mandatory
gists.File(name="helloworld.py", new_name="hellouniverse.py")
]
await gist_1.edit(files=files, description=description)
# Run the main_edit() function
asyncio.run(main_edit())
# Print the gist's edited description
print(gist_1.description)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
gists.py-1.2.6.tar.gz
(20.9 kB
view details)
Built Distribution
gists.py-1.2.6-py3-none-any.whl
(20.9 kB
view details)
File details
Details for the file gists.py-1.2.6.tar.gz
.
File metadata
- Download URL: gists.py-1.2.6.tar.gz
- Upload date:
- Size: 20.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c0fe1698d326c3123924dda7d54765aa91c8a09b58c088ac7fddf30e8fd8d2b |
|
MD5 | a057208510485c726f7993274032fe62 |
|
BLAKE2b-256 | 1dbaafbd654f68a16aa0430c5db91301b3a6024b50bf9b2c8a050a7ef52c1fa7 |
File details
Details for the file gists.py-1.2.6-py3-none-any.whl
.
File metadata
- Download URL: gists.py-1.2.6-py3-none-any.whl
- Upload date:
- Size: 20.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 845105ab14eafdfb8f05395bb6f4025dfe1fd8e3b4fa0d3c8517290f5d35935a |
|
MD5 | 0f10e39c40f7aae0aa298dea39d731b0 |
|
BLAKE2b-256 | 8a8679fc531792837d03db07ebc94b53d6f723b4bc1f4ab92887a4ff15b69ab7 |