pgfx
Lightweight 2D game library for Python, inspired by Haaf's Game Engine.
Installation
pip install pgfx
Prebuilt wheels are available for Linux, macOS and Windows — no extra dependencies needed.
Building from source
Building (or installing from sdist) requires a Rust toolchain, pkg-config
and system audio/input headers on Linux:
# Debian/Ubuntu
sudo apt-get install libasound2-dev libudev-dev pkg-config
# Fedora/RHEL
sudo dnf install alsa-lib-devel systemd-devel pkgconf-pkg-config
Then pip install . (or uv sync + maturin develop for development).
Quick Start
import pgfx
pgfx.init(800, 600, "My Game")
x, y = 400, 300
def update(dt):
global x, y
speed = 200 * dt
if pgfx.key_down(pgfx.KEY_LEFT): x -= speed
if pgfx.key_down(pgfx.KEY_RIGHT): x += speed
if pgfx.key_down(pgfx.KEY_UP): y -= speed
if pgfx.key_down(pgfx.KEY_DOWN): y += speed
return not pgfx.key_pressed(pgfx.KEY_ESCAPE)
def render():
pgfx.clear(pgfx.Color(20, 20, 40))
pgfx.circle_fill(x, y, 20, pgfx.WHITE)
pgfx.run(update, render)
Features
- Sprites — load, draw, rotate, scale, flip
- Text — TrueType fonts
- Audio — sounds and music
- Input — keyboard, mouse, gamepads
- Particles — configurable particle systems
- Lighting — ambient and point lights
- Collision — rects, circles, raycasts
Examples
Sprites
ship = pgfx.sprite_load("ship.png")
pgfx.draw(ship, 100, 200)
pgfx.draw_ex(ship, 300, 200, rot=0.5, scale=2, alpha=0.8)
Text
font = pgfx.font_load("font.ttf", 24)
pgfx.text(font, f"FPS: {pgfx.fps()}", 10, 10, pgfx.WHITE)
Audio
laser = pgfx.sound_load("laser.wav")
pgfx.sound_play(laser)
music = pgfx.music_load("theme.ogg")
pgfx.music_play(music, loop=True)
Input
# Keyboard
if pgfx.key_pressed(pgfx.KEY_SPACE):
shoot()
# Mouse
mx, my = pgfx.mouse_pos()
if pgfx.mouse_pressed(pgfx.MOUSE_LEFT):
click(mx, my)
# Gamepad
if pgfx.gamepad_connected():
move_x = pgfx.gamepad_axis(0, pgfx.GAMEPAD_AXIS_LX)
Particles
fire = pgfx.particles_create(
primitive="circle_soft",
emission_rate=100,
lifetime_min=0.3, lifetime_max=0.8,
speed_min=50, speed_max=100,
start_color=(255, 200, 50, 255),
end_color=(255, 50, 0, 0),
start_size=10, end_size=2
)
# In update:
pgfx.particles_fire(fire, x, y)
pgfx.particles_update(fire, dt)
# In render:
pgfx.particles_render(fire)
Lighting
pgfx.set_ambient(pgfx.Color(30, 30, 50))
torch = pgfx.light_create(150, pgfx.Color(255, 200, 100))
pgfx.light_set_flicker(torch, 0.2, 3.0)
# In render:
pgfx.light_draw(torch, player_x, player_y)
Notes
Coordinates. The whole API works in logical pixels — the units you pass
to init(). On HiDPI displays (Retina, 2x scale) the content is scaled up
automatically; screen_size() and mouse_pos() stay in logical pixels.
Draw order. Everything is drawn back-to-front by z (default 0, higher =
on top). Within the same z, all commands — sprites, primitives, text,
lights and particles — keep their call order.
clear(color) sets the frame's background color (the last call wins) —
it does not erase what was already drawn this frame.
Camera. set_view(x, y, zoom, rot) applies to every draw call issued
after it — sprites, primitives, text, particles and lights alike;
reset_view() switches back to screen space (HUD). The view resets at the
start of every frame, so call it in render() before drawing the world.
Which view a draw uses is decided by call order, not by z. Input stays in
screen space: converting mouse_pos() to world coordinates is up to you.
See examples/camera.py.
Threading. Call the pgfx API from the main thread only (init/run is an
OS requirement). Background threading.Threads keep running during the game
loop — use them for pure Python work (networking, file I/O) and hand results
to update via queue.Queue. multiprocessing cannot be used with pgfx
objects: resource IDs are process-local.
Audio latency. The default audio buffer follows the output device. If you
get crackling audio (VMs, CI), set PGFX_AUDIO_BUFFER=14400 (frames; 14400 ≈
300 ms at 48 kHz) before starting.
Lighting. set_ambient darkens the whole frame to the given color and
light_draw adds light on top: lights are accumulated additively into a
lightmap which then multiplies the rendered frame. Lighting applies to
everything drawn that frame (including text/HUD) regardless of z; when the
ambient color is white and no lights are drawn, the lighting passes are
skipped entirely.
API Reference
System (7)
| Function | Description |
|---|---|
init(width, height, title, **opts) |
Initialize window. Options: fullscreen, resizable, fps_limit (frames per second cap, 0 = uncapped; VSync is always on), msaa (1 = off, default; 4 = 4x antialiasing of polygon edges — rotated rects, thick lines, sprites; render targets stay non-multisampled) |
run(update_fn, render_fn, on_ready=None) |
Start game loop. update_fn(dt) returns False to quit; on_ready() is called once when the GPU is initialized. Exceptions raised in callbacks propagate out of run(). When run() returns, the window is closed, all resources are freed and pgfx is deinitialized — call init() to start again |
quit() |
Exit game loop (from a callback) or deinitialize pgfx (outside of run()) |
dt() |
Delta time in seconds |
fps() |
Current FPS (averaged over ~0.5s) |
time() |
Time since init |
screen_size() |
Current window size in logical pixels (tracks resize and fullscreen) |
Input (11)
| Function | Description |
|---|---|
key_down(key) |
Key is held |
key_pressed(key) |
Key just pressed |
key_released(key) |
Key just released |
mouse_pos() |
Returns (x, y) |
mouse_down(btn) |
Button is held |
mouse_pressed(btn) |
Button just pressed |
mouse_wheel() |
Wheel delta this frame (float; fractional for touchpads) |
gamepad_connected(idx=0) |
Gamepad connected |
gamepad_button(idx, btn) |
Button pressed |
gamepad_axis(idx, axis) |
Axis value (-1 to 1) |
gamepad_trigger(idx, trigger) |
Trigger value (0 to 1) |
Texture (3)
| Function | Description |
|---|---|
texture_load(path) |
Load texture, returns ID |
texture_free(tex) |
Free texture |
texture_size(tex) |
Returns (width, height) |
Sprite (6)
| Function | Description |
|---|---|
sprite_load(path) |
Load sprite from image |
sprite_create(tex, x, y, w, h) |
Create sprite from texture region |
sprite_sheet(path, cols, rows) |
Load sprite sheet, returns list of IDs |
sprite_set_origin(spr, ox, oy) |
Set origin point |
sprite_set_color(spr, color) |
Set tint color |
sprite_free(spr) |
Free sprite |
Drawing (9)
| Function | Description |
|---|---|
clear(color) |
Clear screen |
draw(spr, x, y) |
Draw sprite |
draw_ex(spr, x, y, rot=0, scale=1, alpha=1, flip_x=False, flip_y=False, scale_y=None, blend="alpha") |
Draw with transform; scale_y (default: same as scale) enables non-uniform scaling, blend="add" draws additively (glow, fire) |
rect_fill(x, y, w, h, color) |
Draw rectangle |
rect_fill_ex(x, y, w, h, color, rot=0) |
Draw a rotated rectangle centered on (x, y) — the anchor is the middle (like circle_fill), rotation is around it |
line(x1, y1, x2, y2, color, width=2) |
Draw line (centered on the segment) |
circle_fill(x, y, r, color) |
Draw circle |
set_view(x, y, zoom=1, rot=0) |
Camera: place world point (x, y) at the screen center for subsequent draws, zoomed and rotated around it |
reset_view() |
Back to screen space — for HUD/UI |
Render targets (5)
| Function | Description |
|---|---|
target_create(w, h) |
Create an offscreen render target, returns ID |
target_sprite(target) |
The sprite showing the target's content — draw it like any sprite |
target_size(target) |
Returns (width, height) |
target_free(target) |
Free the target (and its texture/sprite) |
render_to(target) |
Redirect subsequent draw calls into the target; render_to(None) returns to the screen. Resets the view; clear() inside the block sets the target's clear color (default transparent). Target passes run before the screen pass, so a target drawn this frame can be shown the same frame. Drawing a target into itself is an error; lighting ignores render_to |
Text (4)
| Function | Description |
|---|---|
font_load(path, size, smooth=True) |
Load TTF font. smooth=False gives pixel-perfect rendering |
font_free(font) |
Free font |
text(font, string, x, y, color, z=0, align="left") |
Draw text. Any Unicode the font provides (glyphs are rasterized on demand), \n starts a new line, missing glyphs render as □. align ("left"/"center"/"right") sets what x anchors — each line aligns separately |
text_size(font, string) |
Measure without drawing: (width, height) of the block — widest line and line count × line height, matching text() exactly |
Audio (12)
| Function | Description |
|---|---|
sound_load(path) |
Load sound (WAV, OGG) |
sound_free(snd) |
Free sound |
sound_play(snd, volume=1, pan=0, loop=False) |
Play sound. pan is -1 (left) to 1 (right); non-zero pan mixes the source to mono |
sound_stop(snd) |
Stop sound |
music_load(path) |
Load music |
music_free(mus) |
Free music |
music_play(mus, loop=True) |
Play music |
music_stop(mus) |
Stop music |
music_pause(mus) |
Pause music |
music_resume(mus) |
Resume music |
set_master_volume(vol) |
Set master volume (0-1), applies to already-playing audio |
set_music_volume(vol) |
Set music volume (0-1), applies to the current track |
Collision (9)
| Function | Description |
|---|---|
collide_rects(x1, y1, w1, h1, x2, y2, w2, h2) |
Rectangle overlap |
collide_circles(x1, y1, r1, x2, y2, r2) |
Circle overlap |
collide_circle_rect(cx, cy, r, rx, ry, rw, rh) |
Circle-rect overlap |
point_in_rect(px, py, rx, ry, rw, rh) |
Point in rectangle |
point_in_circle(px, py, cx, cy, r) |
Point in circle |
raycast_rect(ox, oy, dx, dy, rx, ry, rw, rh) |
Ray-rect intersection, returns distance or None |
sprite_rect(spr, x, y) |
Get sprite bounds (x, y, w, h) |
collide_sprites(spr1, x1, y1, spr2, x2, y2) |
Sprite overlap |
point_in_sprite(px, py, spr, sx, sy) |
Point in sprite |
Particles (12)
| Function | Description |
|---|---|
particles_create(**params) |
Create particle system |
particles_load(path) |
Create particle system from a JSON file (as saved by utils/particle_editor): the same keys as particles_create, plus optional primitive or sprite — an image path resolved relative to the file |
particles_free(ps) |
Free particle system |
particles_set(ps, **params) |
Update parameters; the ones not passed keep their current values |
particles_fire(ps, x, y) |
Start emitting |
particles_emit(ps, x, y, count) |
Emit burst |
particles_stop(ps) |
Stop emitting |
particles_move_to(ps, x, y) |
Move emitter |
particles_update(ps, dt) |
Update (call in update) |
particles_render(ps) |
Render (call in render) |
particles_is_alive(ps) |
Any particles alive |
particles_count(ps) |
Active particle count |
Particle parameters: primitive, emission_rate, lifetime_min, lifetime_max, speed_min, speed_max, direction, spread, gravity, start_color, end_color, start_size, end_size, max_particles, blend ("alpha" or "add" — additive glow)
Lighting (7)
| Function | Description |
|---|---|
set_ambient(color) |
Set ambient light (darkens the whole frame; white = lighting off) |
light_create(radius, color) |
Create light |
light_set_color(light, color) |
Change color |
light_set_intensity(light, intensity) |
Set intensity (0-1) |
light_set_flicker(light, amount, speed) |
Add flicker effect |
light_draw(light, x, y) |
Draw light |
light_free(light) |
Free light |
Constants
Colors: WHITE, BLACK, RED, GREEN, BLUE, YELLOW, CYAN, MAGENTA, TRANSPARENT
Keys: KEY_A-KEY_Z, KEY_0-KEY_9, KEY_F1-KEY_F12, KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN, KEY_SPACE, KEY_ESCAPE, KEY_ENTER, KEY_TAB, KEY_BACKSPACE, KEY_LSHIFT, KEY_RSHIFT, KEY_LCTRL, KEY_RCTRL, KEY_LALT, KEY_RALT
Mouse: MOUSE_LEFT, MOUSE_RIGHT, MOUSE_MIDDLE
Gamepad buttons: GAMEPAD_A, GAMEPAD_B, GAMEPAD_X, GAMEPAD_Y, GAMEPAD_LB, GAMEPAD_RB, GAMEPAD_LT, GAMEPAD_RT, GAMEPAD_BACK, GAMEPAD_START, GAMEPAD_GUIDE, GAMEPAD_LSTICK, GAMEPAD_RSTICK, GAMEPAD_DPAD_UP, GAMEPAD_DPAD_DOWN, GAMEPAD_DPAD_LEFT, GAMEPAD_DPAD_RIGHT
Gamepad axes: GAMEPAD_AXIS_LX, GAMEPAD_AXIS_LY, GAMEPAD_AXIS_RX, GAMEPAD_AXIS_RY
Gamepad triggers: GAMEPAD_TRIGGER_L, GAMEPAD_TRIGGER_R
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pgfx-0.2.0.tar.gz.
File metadata
- Download URL: pgfx-0.2.0.tar.gz
- Upload date:
- Size: 16.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12445cf3d61bd4553c6dec61482f874703ed3d4af4a2008597ff837272e73a65
|
|
| MD5 |
9377bef0499aae1247f183511af766d9
|
|
| BLAKE2b-256 |
e03c4779c4127391b56272289cc9d4184a6ab84cdb18f7bdf6855077b07e0c0e
|
File details
Details for the file pgfx-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pgfx-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.6 MB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf3b738604dbfcd9aa66f30535a79f8853ef88a510c2e0a775766d8c70b0eb4d
|
|
| MD5 |
56bacb58b632d582bca430271846d83c
|
|
| BLAKE2b-256 |
43256c67d9e3fe51e0cf2cb30da36a9628c5f75be4f49ee22cebf732b201f18e
|
File details
Details for the file pgfx-0.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.6 MB
- Tags: CPython 3.14t, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e54624f92301e7e69051d3d93201559ed35549f2462557c5309c33bc11140a2e
|
|
| MD5 |
5f3bd097a0eacc16f18b580e32124587
|
|
| BLAKE2b-256 |
fe48140e81c3d160169d61e8817a1820fb462049b24d07f2ccd56a3db877ceba
|
File details
Details for the file pgfx-0.2.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
566c04a51dabca7c28fb041e40f848baf36c22b0fdad03881fdff15dd5db6a8e
|
|
| MD5 |
a157dc5a85af2dc8e970f8a217dec45e
|
|
| BLAKE2b-256 |
a296f33db15b85a474c2eb97a9e2353d286dbfa3c179f1aa376e12bf2a7de276
|
File details
Details for the file pgfx-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.6 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73520a75c69eb063d50f5c6716581e6b0faa32150a8fc42b2b50d361d0964cf8
|
|
| MD5 |
7991749d3a4527e24699d51b60da0d21
|
|
| BLAKE2b-256 |
e7b5d752e40023a99081bb38b6aa206181e84568d8b717d298083bb013681caa
|
File details
Details for the file pgfx-0.2.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.9 MB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7557a4f8a2e628890c489d000de38e62e4eb44f308a44008a2c42facc9d4c64e
|
|
| MD5 |
5d28ea1fd9dd26c52828a4d5a55a7f68
|
|
| BLAKE2b-256 |
06e9dddd55566d3062b5956ac9e3147870c8214cac8191183ef7d26c3d99b528
|
File details
Details for the file pgfx-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.14, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e9852bf7a8c0ce9944408715492e71cbcbec88cd6c59ce563a03df82b1d4b42
|
|
| MD5 |
b712dece897bf3756ab22f501a3869c6
|
|
| BLAKE2b-256 |
01228e44384d0e8ccfea784927424f93ae683e0a53f0492f16516259210f54dd
|
File details
Details for the file pgfx-0.2.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c2acd2f58d0bb873fcea2aef44cf042b92ebff55e3e898342b3f2a44286751b
|
|
| MD5 |
b6b9d467511170777dd79ec589197834
|
|
| BLAKE2b-256 |
2e2c4e1919dbda15dc13df4b5a9767636ee689e050079c79bbbdb2046799db5e
|
File details
Details for the file pgfx-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.6 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f2f588c7021fcf4a1bac0092a04ad855c50d296cf145acadd320ef17be1d27a
|
|
| MD5 |
f417412c98f1f8c375c12a726e27f3fc
|
|
| BLAKE2b-256 |
3b9af84f958af8b3dd265a0f47d49c60df93c2f6a6caa4733ead54bc1fc36c99
|
File details
Details for the file pgfx-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.9 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d843d09b02fb4795d17b4fb91d2e720fcc632825c5c94e5039041b533192f850
|
|
| MD5 |
1e7702e6186bad59b30b282bb63d4bd7
|
|
| BLAKE2b-256 |
ca7617ff90acf4f763605ad430c977a4b659ce6599a601903a67b9ae0ae8166d
|
File details
Details for the file pgfx-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
332787e8f49ea7c20f37f604daa99dcc978d049142a412602399243159d208d2
|
|
| MD5 |
8a0adcacdd9230b80abbd95b10c46313
|
|
| BLAKE2b-256 |
dba31464e3a520dea34a97c53936aa2023c2c95d276234b1a7fede785af210b6
|
File details
Details for the file pgfx-0.2.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f7ed7d7324f74776deba9b454c270a575479f606089f712617a3825fc13a67e
|
|
| MD5 |
86c3f0c58596d85f298ea223dbafe894
|
|
| BLAKE2b-256 |
dae2c0d6140e50f34f1d3c95f0eca6b9be37c384fadb39409fb05e93fc853f0f
|
File details
Details for the file pgfx-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67a825e52ad9ec506df00c3c970e39620b3ba6b6d93861f93df72528acd0a024
|
|
| MD5 |
4b9e8adf53e92c5345c81a43eb0e414c
|
|
| BLAKE2b-256 |
61a427edfeef9d7864c28c39c8fedee26295758e44f4f7388d7eac046f00e99f
|
File details
Details for the file pgfx-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.9 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d043b7aaca8e57b9e510982d8774fcc7ab95be9462fa2d73e7fff9716f27f90
|
|
| MD5 |
f602b1999ec7add2849648cb8e5ec49a
|
|
| BLAKE2b-256 |
f7f5457f639b602565be6805844ad7a6c4be6e9019b713d239d38302aee01eb6
|
File details
Details for the file pgfx-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8378a25486667aecf38f006737867bd455500c903c1e9f652b40d93443a7d2d3
|
|
| MD5 |
bb0438a0b49094a755a733051ca71e89
|
|
| BLAKE2b-256 |
72f5cf30c84c5d1d3ad8f68644eb168d705221d82c540e9a4cf2b36531410efa
|
File details
Details for the file pgfx-0.2.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7642175c50d7c03dd9611cfe74a9de2448cf4c5eab83f50dc16b14bc57aa057
|
|
| MD5 |
58651872741fbe8953e3682eae819dd8
|
|
| BLAKE2b-256 |
e06f39f0aafc9f844a0179da818d4bd2579a380e28d7a71d3f16da7d58b11fe0
|
File details
Details for the file pgfx-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5306ceeb5c2f501d5a7c1eac2ab951d89d0eaf4c6ef02b51b8b665d0023fdb22
|
|
| MD5 |
b456b5ac54f157088aaf665debeef500
|
|
| BLAKE2b-256 |
c00373151cb39c32ec3b6386c1c4650f445919d1a00f2b74a71594d8c4dd346b
|
File details
Details for the file pgfx-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.9 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a40b8973b45ae3c9aebaa75473a7ddd9d6f929d3115080e4daac8066b5f861b6
|
|
| MD5 |
998faa2dd435542dd4e68ab91b126558
|
|
| BLAKE2b-256 |
f632b3df69d5cc5a693dd227890163ceebc25cacb8e47c4858685bcfed0e0ed3
|
File details
Details for the file pgfx-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2134606392ce54a2ae1b3302b35d2752799da68624a73cf9ee237072384ee30
|
|
| MD5 |
cda0757ec89f8c7117f7849d6bf00008
|
|
| BLAKE2b-256 |
30b88fc64113b1d8771cc58be71b26584ba2c4445efc85deadd63509a51371b0
|
File details
Details for the file pgfx-0.2.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
784a2b45fdc50e07a62e4702d1347a3e16915d2db8e6ca3fc38ec5e237d00bae
|
|
| MD5 |
a636cae84e7a05c2b9f73501f2d53237
|
|
| BLAKE2b-256 |
a4c4093f9a671a9077fdd6529b6d235df7c41bfae074802d40b813783bd9ea8e
|
File details
Details for the file pgfx-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.6 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa3029bb040a9677bcaec656cb31a0b6dbf4c38cbdf00885f4201326ac71eb42
|
|
| MD5 |
ae788034c1496e71b4b55d9a853d8d86
|
|
| BLAKE2b-256 |
d21fcf467212b105bac986a01e4a12c62f7bf93d99974416e822276dfe12023d
|
File details
Details for the file pgfx-0.2.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.9 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d28755725269b3b07224c28af986f6fcc8060c04dc0b4f0e4fbfe1cd0b7ff826
|
|
| MD5 |
51672239a585d390685ec4950632b07e
|
|
| BLAKE2b-256 |
53c8543439ce5a970b724fccbf80de66d6fa7fc489d1179038eb2396927c6b8b
|
File details
Details for the file pgfx-0.2.0-cp310-cp310-macosx_10_12_x86_64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp310-cp310-macosx_10_12_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.10, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49639be6a274cd04dd39ab722bf66797712678c108377de928454b2341d2eacb
|
|
| MD5 |
6d1feaf688adcf96bcaef259241c6b36
|
|
| BLAKE2b-256 |
f724c5ddc37758bf14a753910b77ea0d5c4935d36492ca692d8c9b492768ae85
|
File details
Details for the file pgfx-0.2.0-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bc076f0bd141a12af11c1cf85d02492a099c112aab9adfa57f6c3f676020f1a
|
|
| MD5 |
10dcead3f77f180da62806b7f64e8462
|
|
| BLAKE2b-256 |
3a7b936184d64b634b61569eab95ef175124e060b1c441ab0593e31edc566298
|
File details
Details for the file pgfx-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.6 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f62f46ead342227b2fb4edd5bdf3b254f0ddd3c32c8206b88ca83f02cb3d294
|
|
| MD5 |
f34ba32719c00e36a325f48f5f3b1541
|
|
| BLAKE2b-256 |
67ddc09b3618f2af7ecd6581a4f2485e9a6c2b4b0b2d9e93f50ea9bdb8df896e
|
File details
Details for the file pgfx-0.2.0-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.9 MB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96f02416ae9cb46c5d9a22666fa4f70cff2d3c854dced9aff4e52f8e76f4b468
|
|
| MD5 |
949516842b6b627913e000eef58a995d
|
|
| BLAKE2b-256 |
7dcbeb9f08571992ebc9412c35394c7572643ec5afbd6d5148e1001de83797c0
|
File details
Details for the file pgfx-0.2.0-cp39-cp39-macosx_10_12_x86_64.whl.
File metadata
- Download URL: pgfx-0.2.0-cp39-cp39-macosx_10_12_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.9, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7b36847942c62a01b6417213afcd417a046eaf41bde00fb60782a02832661e5
|
|
| MD5 |
fda42f20e3b92fb46541c3c37c5936d1
|
|
| BLAKE2b-256 |
7b411c6e9132b6abf28b633d289dcc84c47ff8f905ab6d1067ea978fa2243357
|