Skip to main content

pixtreme: A High-Performance Graphics Library with CUDA Support

Project description

pixtreme

pixtreme is a high-performance image processing library for Python, leveraging CuPy and CUDA for GPU-accelerated computations, enabling real-time video processing with advanced features.

Features

  • GPU-Accelerated Processing: Optimized with CuPy's CUDA RawKernel for extremely fast video analysis
  • Comprehensive Color Space Support: BGR, RGB, HSV, YCbCr, YUV (4:2:0, 4:2:2), ACES color spaces
  • Advanced Image Transforms: Affine transformation, resize with 11 interpolation methods
  • Super Resolution: Multiple backend support (ONNX, PyTorch, TensorRT)
  • 3D LUT Processing: Trilinear and tetrahedral interpolation with both CuPy and NumPy implementations
  • Professional Color Management: ACES color space transformations for film/VFX workflows
  • Flexible Data Type Support: Seamless conversion between uint8, uint16, float16, and float32
  • DLPack Integration: Zero-copy tensor sharing between frameworks

Requirements

  • Python >= 3.10

  • CUDA Toolkit 12.x

  • System dependencies:

    basicsr-fixed >= 1.4.2
    cupy-cuda12x >= 13.4.1
    numpy >= 2.2.6
    nvidia-nvimgcodec-cu12-stubs >= 0.5.0.13
    nvidia-nvimgcodec-cu12[all] >= 0.5.0.13
    onnx >= 1.18.0
    onnxconverter-common >= 1.13.0
    onnxruntime-gpu >= 1.22.0
    openexr >= 3.3.3
    spandrel >= 0.4.1
    spandrel_extra_arches >= 0.2.0
    tensorrt >= 10.11.0.33
    tensorrt_stubs >= 10.11.0.33
    torch >= 2.4
    torchvision >= 0.19
    
  • Optional dependencies for OpenCV:

    opencv-python >= 4.11.0.86
    
  • Optional dependencies for OpenCV Contrib:

    opencv-contrib-python >= 4.11.0.86
    

Installation

Standard Installation

pip install pixtreme[opencv]

OpenCV Contrib Installation

pip install pixtreme[opencv-contrib]

Development Installation

git clone https://github.com/minamikik/pixtreme.git
cd pixtreme

curl -LsSf https://astral.sh/uv/install.sh | sh
uv python pin 3.12  # supports 3.10 - 3.13
uv sync --extra dev --extra opencv

API Reference

pixtreme

  • get_device_id() -> int - Get current CUDA device ID
  • get_device_count() -> int - Get number of available CUDA devices
  • Device - CUDA device context manager

pixtreme.color

  • bgr_to_rgb(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray - Convert BGR to RGB
  • rgb_to_bgr(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray - Convert RGB to BGR
  • bgr_to_grayscale(image: cp.ndarray) -> cp.ndarray - Convert BGR to grayscale
  • rgb_to_grayscale(image: cp.ndarray) -> cp.ndarray - Convert RGB to grayscale using Rec.709 coefficients
  • bgr_to_hsv(image: cp.ndarray) -> cp.ndarray - Convert BGR to HSV
  • hsv_to_bgr(image: cp.ndarray) -> cp.ndarray - Convert HSV to BGR
  • rgb_to_hsv(image: cp.ndarray) -> cp.ndarray - Convert RGB to HSV
  • hsv_to_rgb(image: cp.ndarray) -> cp.ndarray - Convert HSV to RGB
  • bgr_to_ycbcr(image: cp.ndarray) -> cp.ndarray - Convert BGR to YCbCr (10-bit precision, Full Range)
  • rgb_to_ycbcr(image: cp.ndarray) -> cp.ndarray - Convert RGB to YCbCr (10-bit precision, Full Range)
  • ycbcr_to_bgr(image: cp.ndarray) -> cp.ndarray - Convert YCbCr to BGR (10-bit precision, Full Range)
  • ycbcr_to_rgb(image: cp.ndarray) -> cp.ndarray - Convert YCbCr to RGB (10-bit precision, Full Range)
  • ycbcr_full_to_legal(image: cp.ndarray) -> cp.ndarray - Convert Full Range YCbCr to Legal Range YCbCr
  • ycbcr_legal_to_full(image: cp.ndarray) -> cp.ndarray - Convert Legal Range YCbCr to Full Range YCbCr
  • ycbcr_to_grayscale(image: cp.ndarray) -> cp.ndarray - Extract Y channel as grayscale
  • yuv420p_to_ycbcr444(yuv420_data: cp.ndarray, width: int, height: int, interpolation: int = 1) -> cp.ndarray - Convert YUV 4:2:0 planar to YCbCr 4:4:4
  • yuv422p10le_to_ycbcr444(ycbcr422_data: cp.ndarray, width: int, height: int) -> cp.ndarray - Convert 10-bit YUV 4:2:2 to YCbCr 4:4:4
  • uyvy422_to_ycbcr444(uyvy_data: cp.ndarray, height: int, width: int) -> cp.ndarray - Convert UYVY 4:2:2 packed format
  • ndi_uyvy422_to_ycbcr444(uyvy_data: cp.ndarray) -> cp.ndarray - NDI-specific UYVY conversion
  • aces2065_1_to_acescct(image: cp.ndarray) -> cp.ndarray - ACES2065-1 to ACEScct (log encoding)
  • aces2065_1_to_acescg(image: cp.ndarray) -> cp.ndarray - ACES2065-1 to ACEScg (linear)
  • aces2065_1_to_rec709(image: cp.ndarray) -> cp.ndarray - ACES2065-1 to Rec.709
  • acescct_to_aces2065_1(image: cp.ndarray) -> cp.ndarray - ACEScct to ACES2065-1
  • acescg_to_aces2065_1(image: cp.ndarray) -> cp.ndarray - ACEScg to ACES2065-1
  • rec709_to_aces2065_1(image: cp.ndarray) -> cp.ndarray - Rec.709 to ACES2065-1
  • read_lut(file_path: str, use_cache: bool = True, cache_dir: str = "cache") -> cp.ndarray - Read .cube format 3D LUT files
  • apply_lut(frame_rgb: cp.ndarray, lut: cp.ndarray, interpolation: int = 0) -> cp.ndarray - Apply 3D LUT with interpolation
    • interpolation=0: Trilinear interpolation
    • interpolation=1: Tetrahedral interpolation

pixtreme.draw

  • circle(image: cp.ndarray, center: tuple[int, int], radius: int, color: tuple[int, int, int], thickness: int = 1) -> cp.ndarray - Draw a circle on the image
  • rectangle(image: cp.ndarray, top_left: tuple[int, int], bottom_right: tuple[int, int], color: tuple[int, int, int], thickness: int = 1) -> cp.ndarray - Draw a rectangle on the image
  • add_label(image: cp.ndarray, text: str, position: tuple[int, int], color: tuple[int, int, int] = (255, 255, 255), font_scale: float = 1.0, thickness: int = 2) -> cp.ndarray - Add a label to the image
  • put_text(image: cp.ndarray, text: str, position: tuple[int, int], color: tuple[int, int, int] = (255, 255, 255), font_scale: float = 1.0, thickness: int = 2) -> cp.ndarray - Put text on the image

pixtreme.filter

  • GaussianBlur - Gaussian blur filter class
  • gaussian_blur(image: cp.ndarray, kernel_size: int, sigma: float, kernel: cp.ndarray | None = None) -> cp.ndarray - Apply Gaussian blur

pixtreme.io

  • imread(input_path: str, is_rgb: bool = False, is_nvimgcodec: bool = False) -> cp.ndarray - Read image file to GPU memory
  • imwrite(output_path: str, image: cp.ndarray | np.ndarray, param: int = -1, is_rgb: bool = False) -> None - Write GPU image to file
  • imshow(title: str, image: np.ndarray | cp.ndarray | nvimgcodec.Image, scale: float = 1.0, is_rgb: bool = False) -> None - Display GPU image
  • waitkey(delay: int) -> int - Wait for keyboard input
  • destroy_all_windows() -> None - Close all OpenCV windows

pixtreme.transform

  • resize(src: cp.ndarray | list[cp.ndarray], dsize: tuple[int, int] | None = None, fx: float | None = None, fy: float | None = None, interpolation: int = INTER_AUTO) -> cp.ndarray | list[cp.ndarray]
    • Interpolation constants:
      • INTER_NEAREST (0) - Nearest neighbor
      • INTER_LINEAR (1) - Bilinear interpolation
      • INTER_CUBIC (2) - Bicubic interpolation
      • INTER_AREA (3) - Area-based resampling
      • INTER_LANCZOS4 (4) - Lanczos interpolation over 8x8 neighborhood
      • INTER_AUTO (5) - Auto-select based on image size
      • INTER_MITCHELL (6) - Mitchell-Netravali cubic filter
      • INTER_B_SPLINE (7) - B-spline interpolation
      • INTER_CATMULL_ROM (8) - Catmull-Rom spline
      • INTER_LANCZOS2 (9) - Lanczos over 4x4 neighborhood
      • INTER_LANCZOS3 (10) - Lanczos over 6x6 neighborhood
  • affine_transform(src: cp.ndarray, M: cp.ndarray, dsize: tuple, flags: int = INTER_AUTO) -> cp.ndarray - Apply affine transformation
  • get_inverse_matrix(M: cp.ndarray) -> cp.ndarray - Calculate inverse transformation matrix
  • crop_from_kps(image: cp.ndarray, kps: cp.ndarray, size: int = 512) -> tuple[cp.ndarray, cp.ndarray] - Crop image based on keypoints
  • erode(image: cp.ndarray, kernel_size: int, kernel: cp.ndarray | None = None, border_value: float = 0.0) -> cp.ndarray - Morphological erosion

pixtreme.upscale

  • OnnxUpscaler - ONNX Runtime-based upscaling
    • Constructor: OnnxUpscaler(model_path: str | None = None, model_bytes: bytes | None = None, device_id: int = 0, provider_options: list | None = None)
  • TorchUpscaler - PyTorch-based upscaling
    • Constructor: TorchUpscaler(model_path: str | None = None, model_bytes: bytes | None = None, device: str = "cuda")
  • TrtUpscaler - TensorRT-optimized upscaling
    • Constructor: TrtUpscaler(model_path: str | None = None, model_bytes: bytes | None = None, device_id: int = 0)
  • check_torch_model(model_path: str) -> bool - Check if a model is a valid PyTorch model
  • check_onnx_model(model_path: str) -> bool - Check if a model is a valid ONNX model
  • torch_to_onnx(model_path: str, onnx_path: str, input_shape: tuple = (1, 3, 1080, 1920), opset_version: int = 20, precision: str = "fp32", dynamic_axes: dict | None = None, device: str = "cuda") - Convert PyTorch models to ONNX
  • onnx_to_trt_dynamic_shape(onnx_path: str, engine_path: str, precision: str = "fp16", workspace: int = 1024 << 20) - Convert ONNX models to TensorRT with dynamic shape support
  • onnx_to_trt_fixed_shape(onnx_path: str, engine_path: str, precision: str = "fp16", workspace: int = 1024 << 20, input_shape: tuple = (1, 3, 1080, 1920)) - Convert ONNX models to TensorRT with fixed shape support
  • onnx_to_trt(onnx_path: str, engine_path: str, precision: str = "fp16", workspace: int = 1024 << 20) - Convert ONNX models to TensorRT

pixtreme.utils

  • to_uint8(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray - Convert to 8-bit unsigned integer
  • to_uint16(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray - Convert to 16-bit unsigned integer
  • to_float16(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray - Convert to 16-bit float
  • to_float32(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray - Convert to 32-bit float
  • to_float64(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray - Convert to 64-bit float
  • to_dtype(image: np.ndarray | cp.ndarray, dtype: str) -> np.ndarray | cp.ndarray - Convert to specified dtype
  • guess_image_layout(image: np.ndarray | cp.ndarray) -> str - Infer image layout (e.g., "HW", "HWC", "CHW", "NHWC", "NCHW", "ambiguous", "unsupported")
  • images_to_batch(images: cp.ndarray | list[cp.ndarray], size: int | tuple[int, int] | None = None, scalefactor: float | None = None, mean: float | tuple[float, float, float] | None = None, swap_rb: bool = True, layout: Layout = "HWC") -> cp.ndarray - Convert to batch format for neural networks
  • image_to_batch(image: cp.ndarray, size: int | tuple[int, int] | None = None, scalefactor: float | None = None, mean: float | tuple[float, float, float] | None = None, swap_rb: bool = True, layout: Layout = "HWC") -> cp.ndarray - Convert single image to batch format
  • image_to_batch_pixelshift(image: cp.ndarray, dim: int = 4, scalefactor: float | None = None, size: int | tuple[int, int] | None = None, swap_rb: bool = True, layout: Layout = "HWC") -> cp.ndarray - Convert image to batch format with pixel shift
  • batch_to_images(batch: cp.ndarray, swap_rb: bool = True, layout: Layout = "NCHW") -> list[cp.ndarray] - Convert batch format back to images
  • to_cupy(image: np.ndarray | torch.Tensor | nvimgcodec.Image) -> cp.ndarray - Convert various formats to CuPy array
  • to_numpy(image: cp.ndarray | torch.Tensor | nvimgcodec.Image) -> np.ndarray - Convert to NumPy array
  • to_tensor(image: np.ndarray | cp.ndarray | nvimgcodec.Image, device: str | torch.device | None = None) -> torch.Tensor - Convert to PyTorch tensor (requires PyTorch)

Usage Examples

Basic Image Processing

import cupy as cp
import pixtreme as px

# Read and convert image
frame_bgr = px.imread("image.jpg")
frame_bgr = px.to_float32(frame_bgr)
frame_rgb = px.bgr_to_rgb(frame_bgr)

# Color space conversions
frame_ycbcr = px.rgb_to_ycbcr(frame_rgb)
frame_hsv = px.rgb_to_hsv(frame_rgb)

# Advanced resize with Mitchell filter
frame_resized = px.resize(frame_rgb, (1920, 1080), interpolation=px.INTER_MITCHELL)

# Apply Gaussian blur
frame_blurred = px.gaussian_blur(frame_resized, 15, 5.0)

# Convert back and save
frame_bgr_out = px.rgb_to_bgr(frame_blurred)
frame_bgr_out = px.to_uint8(frame_bgr_out)
px.imwrite("output.jpg", frame_bgr_out)

Face Processing

import pixtreme as px

# Initialize face processing
detector = px.FaceDetection(model_path="models/detection.onnx")
embedder = px.FaceEmbedding(model_path="models/embedding.onnx")
swapper = px.FaceSwap(model_path="models/swap.onnx")

# Process faces
image = px.imread("portrait.jpg")
faces = detector.get(image)

for face in faces:
    embeddings = embedder.get(face)


    swapped = swapper.get(target_face, source_face)

Super Resolution

import pixtreme as px

# ONNX upscaling
upscaler = px.OnnxUpscaler(model_path="models/esrgan.onnx")
image_hr = upscaler.upscale(image_lr)

# TensorRT optimized upscaling
trt_upscaler = px.TrtUpscaler(model_path="models/esrgan.trt")
image_hr_fast = trt_upscaler.upscale(image_lr)

Professional Color Grading with ACES

import pixtreme as px

# Load image in Rec.709
image = px.imread("footage.png")
image = px.to_float32(image)

# Convert to ACES color space
image_aces = px.rec709_to_aces2065_1(image)

# Work in ACEScg (linear)
image_acescg = px.aces2065_1_to_acescg(image_aces)

# Apply color grading...

# Convert back to Rec.709
image_graded = px.acescg_to_aces2065_1(image_acescg)
image_final = px.aces2065_1_to_rec709(image_graded)

3D LUT Application

import pixtreme as px

# Load LUT
lut = px.read_lut("color_grade.cube")

# Apply with tetrahedral interpolation
image_graded = px.apply_lut(image_rgb, lut, interpolation=1)

Multi-GPU Processing

import pixtreme as px

# Process on specific GPU
with px.Device(1):
    image = px.imread("large_image.jpg")
    processed = px.resize(image, (4096, 2160))
    
# Get device info
device_count = px.get_device_count()
current_device = px.get_device_id()

Performance Notes

  • All color conversion operations use optimized CUDA kernels
  • Supports both legal range (16-235) and full range (0-255) for video processing
  • 10-bit precision support for professional video workflows
  • Zero-copy tensor sharing via DLPack for framework interoperability
  • Batch processing support for multiple images

License

pixtreme is distributed under the MIT License (see LICENSE).

Included Components

Authors

minamik (@minamikik)

Acknowledgments

sync.dev

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

pixtreme-0.3.0.tar.gz (10.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pixtreme-0.3.0-cp313-cp313-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.13Windows x86-64

pixtreme-0.3.0-cp313-cp313-musllinux_1_2_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pixtreme-0.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pixtreme-0.3.0-cp312-cp312-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.12Windows x86-64

pixtreme-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pixtreme-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pixtreme-0.3.0-cp311-cp311-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.11Windows x86-64

pixtreme-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pixtreme-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pixtreme-0.3.0-cp310-cp310-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.10Windows x86-64

pixtreme-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pixtreme-0.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file pixtreme-0.3.0.tar.gz.

File metadata

  • Download URL: pixtreme-0.3.0.tar.gz
  • Upload date:
  • Size: 10.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pixtreme-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c8cd48673e3dd0e037e2914f53621a25a79d8845f7d0b13d7d55b1e6f775d169
MD5 536e7458bf0315394f75f152a850f8dc
BLAKE2b-256 3eddcaecdca8e3e3aacb21e68c3db702a9337350e1792bc92b6d0d943106b23b

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pixtreme-0.3.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pixtreme-0.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 bc6fba2fd7057839c9646c4bde27e88a44d81837d19cb755f428bdbc5d60ebf2
MD5 5de0d549c8ff7374715c13735ccd6830
BLAKE2b-256 d135d28a97c9d262fe4c8714c54400c360b176bd307dc5e5b34d27bc16f93064

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c738d4dd28dc0758e782f414658444d7c039c0e51c9ac4c2dab090e5f3da5ce4
MD5 c02361c93f892947d1ffc7d774f3b597
BLAKE2b-256 f9f2ffc78fd49a511df77f85e50b4fb655a1d15508661383d2eff1f6f95ae5d2

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 659cc341a68d71a9c4b9634730dfb59e8e866ad89f24371a91159632ab71dfaa
MD5 d1b04f04f871546bca8ad2bf820b7003
BLAKE2b-256 884467543d6185bd2b5eeb8e84f852b6eefcf15b7262714f6166ba8f67390df6

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pixtreme-0.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pixtreme-0.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 66dc67c32a02eb62676a9d210048869fa0f5d17ba7c318a7d6b6074af7d5b850
MD5 d0121e0c546a5c4a6623880547bc6a05
BLAKE2b-256 2c67bc165bf3eff483aa54c1fa5b845adbbfea6c62fe4e76bdc0279397d0d0fe

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 959437b413381329c8d764f1f9fdb251546d88b51e9a92e697ad072be9da2617
MD5 c33f2ba4c28a5a8625404801cd43fd6b
BLAKE2b-256 9df9eecb39ddffdff5b745b1127a5fa9d664480767303060fe203a5445c4ad4e

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 09f246775dff9a088ead6745dc5ec6224361108ea0058cfa46a01a2366a9a2d7
MD5 8d4bb57fe63274900b523f28bb1ffbd2
BLAKE2b-256 9073264f058053cd93a3f0f56579d62473a6ff2d0589f76f9da035423ac5ee60

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pixtreme-0.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pixtreme-0.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 34e388790d86eaf8405338512ea6efef66508282be82ff8bee257ee488967efe
MD5 2f43ae45383d7134b7c40e836fddf57e
BLAKE2b-256 e759d882402bd0139c8e0731cd24f2e29e93c07bda37da479435cd662b97434d

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d97b85f11ee25cda9effdcdbd28360a267b7c6dd9c23b20809798a63bc86da0f
MD5 99fa079326f91b587c1aadf343430869
BLAKE2b-256 19fbfac7dec77267409f0b67ff197e81a79661f1409588c3f9409526e0cb5e2f

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 588510e928b2490950860b12f61c88c7abe6bb9aaa0b0d76176962fb8a952ff8
MD5 d5102881cd9769c05b5cf28aeda3b6b3
BLAKE2b-256 157a454b2037c7b97448ce0ba3eaa5e1dc99fab1380c4fa52662902095bc1309

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pixtreme-0.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pixtreme-0.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e1c0271fc156ae4e2288ab8704ab4dd86859103728babddb5e510705f6bdb7a5
MD5 87e01ae4060c71a68abeb152d6091c41
BLAKE2b-256 03fceae4dccc6d5f2648c10ab72385ca53a28a4a25800ab6887a31129dbdbb7c

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e0c41df5c37b01885dc3ee8a21b49c9c1d50ea9d476460318d1474dcd5c96d67
MD5 f0f8505485b1c53dc62819188399c1e0
BLAKE2b-256 6621d5b9d6a4ee6772e62ff86d3789c4e3ff61f184f6290d5f7b0a58114631e5

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 998b9f2653db5e4584c9db8caf89fbf14c45ae88cc43bf804a47b2a51e7995a7
MD5 2763048ab3043f4330104c8e9435db47
BLAKE2b-256 b02ff2757fa5d5fd012ff80ff35c5f92f9acce9f63eba0ff0d7513abc31640c2

See more details on using hashes here.

Supported by

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