Skip to main content

Pincer

Scrutinizer Code Quality Build Status GitHub repo size GitHub last commit GitHub commit activity GitHub Code Style Discord

An asynchronous Python API wrapper meant to replace discord.py

The package is currently within the planning phase

📌 Links

Join the Discord server: https://discord.gg/8WkYz3fNFm
The PyPI package: https://pypi.org/project/Pincer
Our website: https://pincer.dev
ReadTheDocs: https://pincer.readthedocs.io

☄️ Installation

Use the following command to install Pincer into your Python environment:

pip install pincer
⚙️ Didn't work?

Depending on your Python installation, you might need to use one of the following:

  • Python is not in PATH

    path/to/python.exe -m pip install pincer
    
  • Python is in PATH but pip is not

    python -m pip install pincer
    
  • Unix systems can use pip3/python3 commands

    pip3 install pincer
    
    python3 -m pip install pincer
    
  • Using multiple Python versions

    py -m pip install pincer
    

Current Features

  • Discord Gateway communication
  • logging
  • Http Client
  • Events
  • Event middleware
  • Basic commands with basic argument parsing

Client base class example:

from pincer.client import Bot

# Note that both `Bot` and `Client` are valid!
bot = Bot("...")
bot.run()

An example on the on_ready event

from time import perf_counter
from pincer.client import Client

client = Client("...")


@client.event
async def on_ready():
    print(f"Logged in as {client.bot} after {perf_counter()} seconds")


client.run()

Inherited client

You have the possibility to use your own class to inherit from the Pincer bot base.

from pincer import Client, command


class Bot(Client):
    def __init__(self) -> None:
        super(Bot, self).__init__(token="...")

    @Client.event
    async def on_ready(self) -> None:
        ...

    @command(description="Say something as the bot!")
    async def say(self, message: str):
        return message

    @command(description="Add two numbers!")
    async def add(self, first: int, second: int):
        return f"The addition of `{first}` and `{second}` is `{first + second}`"

See an advanced bot implementation:

https://github.com/Pincer-org/Pincer-bot

Advanced Usage

Enable the debug mode

If you want to see everything that is happening under the hood, either out of curiosity or to get a deeper insight into the implementation of some features, we provide debug logging!

import logging

logging.basicConfig(level=logging.DEBUG)

Note: A lot of printing can happen, including sensitive information, so make sure to be aware of what you're doing if you're enabling it!

Middleware

From version 0.4.0-dev, the middleware system has been introduced. This system gives you the full freedom to remove the already existing middleware which has been created by the developers and create custom events. Your custom middleware directly receives the payload from Discord. You can't really do anything wrong without accessing the override attribute, but if you access this attribute the Pincer team will not provide any support for weird behavior. So in short, only use this if you know what you're doing. An example of using this with a custom on_ready event can be found in our docs .

🏷️ License

© 2021 copyright Pincer

This repository is licensed under the MIT License.

See LICENSE for details.

Metadata

Release files for pincer 0.6.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pincer 0.6.9
File Size Uploaded
pincer-0.6.9.tar.gz 61.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pincer 0.6.9
File Interpreter ABI Platform
pincer-0.6.9-py3-none-any.whl Python 3 none any Details

Total release size: 175.4 kB

Release files / pincer-0.6.9.tar.gz

Download URL pincer-0.6.9.tar.gz
Size 61.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c281f75c77a7501fded1b0da035bc480b0b5b7625cbc42e1f020f982bf74607d
BLAKE2b-256 checksum
How to use checksums
91901eb5467772ab7caf2f2f559aa21d31a347400d8922ae423ee7a534ac0d9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6

Release files / pincer-0.6.9-py3-none-any.whl

Download URL pincer-0.6.9-py3-none-any.whl
Size 113.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5c842f30eedbcb0a73abb80ce32679f6f0e927c42e96b2d59f194a92fa9b8471
BLAKE2b-256 checksum
How to use checksums
0c6bd1b0df76b058784ac1a82558c049060a69c5f98c5b24f71798d5a557655c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6

Release history Release notifications | RSS feed

0.15.3

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.1

2 release files

0.12.0

2 release files

0.11.5

2 release files

0.11.4

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.11

2 release files

0.6.10

2 release files

This release

0.6.9 This release

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page