Skip to main content

A wrapper for the Discord Python Pixels API.

Project description

DPYPX

A simple wrapper around Python Discord Pixels.

Requires Python 3.7+ (3.x where x >= 7).

Requires pillow and aiohttp from pip.

Example

import dpypx

# Create a client with your token.
client = dpypx.Client('my-auth-token')

# Download and save the canvas.
canvas = await client.get_canvas()
canvas.save('canvas.png')

# And access pixels from it.
print(canvas[4, 10])

# Or just fetch specific pixels.
print(await client.get_pixel(4, 10))

# Draw a pixel.
await client.put_pixel(50, 10, 'cyan')
await client.put_pixel(1, 5, dpypx.Colour.BLURPLE)
await client.put_pixel(100, 4, '93FF00')
await client.put_pixel(44, 0, 0xFF0000)

# Swap two pixels.
await client.swap_pixels((55, 1), (50, 3))

# Close the connection.
await client.close()

Auto-draw

Load an image:

from PIL import Image

im = Image.open('pretty.png')
ad = dpypx.AutoDrawer.load_image(client, (5, 40), im, scale=0.1)
await ad.draw()

To prefer fixing existing pixels to placing new ones:

await ad.draw_and_fix()

By default, this will also loop forever. To exit once the whole image is correct:

await ad.draw_and_fix(forever=False)

You can also manually specify each pixel:

ad = dpypx.AutoDrawer.load(client, '''0
0
3
2
ff0000
00ff00
0000ff
ff0000
00ff00
0000ff''')
await ad.draw()

Format of the drawing plan:

  • Leftmost X coordinate
  • Topmost Y coordinate
  • Width
  • Height
  • Each pixel, left-to-right, top-to-bottom.

Auto-draw will avoid colouring already correct pixels, for efficiency.

Logging

To see logs:

import logging

logging.basicConfig(level=logging.INFO)

Too see more logs:

logging.basicConfig(level=logging.DEBUG)

To see fewer logs:

logging.basicConfig(level=logging.WARNING)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dpypx-0.7.6.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

dpypx-0.7.6-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file dpypx-0.7.6.tar.gz.

File metadata

  • Download URL: dpypx-0.7.6.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

File hashes

Hashes for dpypx-0.7.6.tar.gz
Algorithm Hash digest
SHA256 53f19217cd2f066b28d47023541daef2f10a504ad13020fde180b46e20f86b5c
MD5 5e006f3349a61c5116066a5a86939343
BLAKE2b-256 c4e7ec64b2ca28b82d14418d0ea69272440ae0fd4fa4a9b97b22ed872f33421f

See more details on using hashes here.

File details

Details for the file dpypx-0.7.6-py3-none-any.whl.

File metadata

  • Download URL: dpypx-0.7.6-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

File hashes

Hashes for dpypx-0.7.6-py3-none-any.whl
Algorithm Hash digest
SHA256 fe030ab89b0fbb8c725f318cf2fb6734adaf416d34c27ef0464131e447440327
MD5 4e6df1ffbf8f0864cc94e4ae23f08536
BLAKE2b-256 064f9003846c242586d2bb01ed37e42dd4b7ef71c9bec26b250cc9147d4d54ac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page