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
  • Face Processing Suite: Detection, embedding extraction, and face swapping capabilities
  • 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
    pydantic >= 2.11.4
    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.face

  • FaceDetection - Face detection
    • Constructor: FaceDetection(model_path: str | None = None, model_bytes: bytes | None = None, device: str = "cuda")
    • Supports CUDA and CPU backends
  • TrtFaceDetection - TensorRT-optimized face detection
    • Constructor: TrtFaceDetection(model_path: str | None = None, model_bytes: bytes | None = None, device_id: int = 0)
    • Supports TensorRT for high-performance inference
  • FaceEmbedding - Extract face embeddings
    • Constructor: FaceEmbedding(model_path: str | None = None, model_bytes: bytes | None = None, device: str = "cuda")
    • Supports CUDA and CPU backends
  • TrtFaceEmbedding - TensorRT-optimized face embedding extraction
    • Constructor: TrtFaceEmbedding(model_path: str | None = None, model_bytes: bytes | None = None, device_id: int = 0)
    • Supports TensorRT for high-performance inference
  • FaceSwap - Swap faces
    • Constructor: FaceSwap(model_path: str | None = None, model_bytes: bytes | None = None, device: str = "cuda")
    • Supports CUDA and CPU backends
  • TrtFaceSwap - TensorRT-optimized face swapping
    • Constructor: TrtFaceSwap(model_path: str | None = None, model_bytes: bytes | None = None, device_id: int = 0)
    • Supports TensorRT for high-performance inference
  • PasteBack - Seamlessly paste back class
    • Constructor: PasteBack()
  • paste_back(target_image: cp.ndarray, paste_image: cp.ndarray, M: cp.ndarray, mask: cp.ndarray = None) -> cp.ndarray - Seamlessly paste back function
  • PxFace(bbox: cp.ndarray, score: float, kps: cp.ndarray | None, matrix: cp.ndarray | None, embedding: cp.ndarray | None, normed_embedding: cp.ndarray | None, image: cp.ndarray | None) - Data class for face information (Pydantic model)

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
  • to_blob(image: cp.ndarray, scalefactor: float = 1.0, size: tuple | None = None, mean: tuple = (0, 0, 0), swapRB: bool = False, fp16: bool = False) -> cp.ndarray - Convert to blob format for neural networks
  • to_blobs(images: list[cp.ndarray], scalefactor: float = 1.0, size: tuple | None = None, mean: tuple = (0, 0, 0), swapRB: bool = False, fp16: bool = False) -> list[cp.ndarray] - Convert multiple images to blob format
  • 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.2.3.tar.gz (18.4 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.2.3-cp313-cp313-win_amd64.whl (6.3 MB view details)

Uploaded CPython 3.13Windows x86-64

pixtreme-0.2.3-cp313-cp313-musllinux_1_2_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pixtreme-0.2.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.0 MB view details)

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

pixtreme-0.2.3-cp312-cp312-win_amd64.whl (6.4 MB view details)

Uploaded CPython 3.12Windows x86-64

pixtreme-0.2.3-cp312-cp312-musllinux_1_2_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pixtreme-0.2.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.0 MB view details)

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

pixtreme-0.2.3-cp311-cp311-win_amd64.whl (6.4 MB view details)

Uploaded CPython 3.11Windows x86-64

pixtreme-0.2.3-cp311-cp311-musllinux_1_2_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pixtreme-0.2.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.0 MB view details)

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

pixtreme-0.2.3-cp310-cp310-win_amd64.whl (6.4 MB view details)

Uploaded CPython 3.10Windows x86-64

pixtreme-0.2.3-cp310-cp310-musllinux_1_2_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pixtreme-0.2.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.0 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.2.3.tar.gz.

File metadata

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

File hashes

Hashes for pixtreme-0.2.3.tar.gz
Algorithm Hash digest
SHA256 b1f1950649b91774706db3a9979c5c8b41a7610319af347fd99fd6cdc941cf50
MD5 b53911d2b0189ed80d13314f923911e0
BLAKE2b-256 4afd746d4294bbb08ade24d590c2cbd1bcb7a4bf21c8fea4dbd70a55c6233ac4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pixtreme-0.2.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 6.3 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.2.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6c0c6a70e6d2ded5464c14d0ca7f21ae75d3cfae28710fa35f4c6fdf25425705
MD5 99a4822182f1116551492fa7c5da090b
BLAKE2b-256 fa1143684511733fd211c9d29bf97a4575cf3eadee34d6fcf2a52c100409aed8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixtreme-0.2.3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 db1e59f481c908733be974aefb8ce2f69b7bcd3f1c6875e871562944929b35c7
MD5 e2c97619e9d99d0a6c6836852d13ca7b
BLAKE2b-256 86f37bf2d88d9f001df80186c14928cebb4cc643173749e530f9b449151f7738

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixtreme-0.2.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8b5c69a10eeda176afd6887cc0e925219dbbeaa45ad295d3a5953fda09617aa9
MD5 a1eb8d816c9210c92e0789d7bd9b6f30
BLAKE2b-256 087b79b8f1f333c8605f6cfd3135d3cda859f0dda196595e43c0a94207843985

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pixtreme-0.2.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 6.4 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.2.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4e36e8bf8608e4ec504eff012c82f10e80d4872b23f86e5aa1a59ba7b1d03289
MD5 ad5ddee658c7f332655f39490d37a66a
BLAKE2b-256 02621809402201f9ff1bb7f78d1d63d9c7fce46522f7001ed576e75842f32867

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixtreme-0.2.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a4bc2c8f6a73c3ded8cad2333db706e6fc3831f0e5fe893a5c2ee41517621cf4
MD5 f4112e1d64501736c31ef0aaafa073c1
BLAKE2b-256 2d135b65360733c343e4aab28ca16e03819a88a863b92f9537e404dabfd64c7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixtreme-0.2.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 efb97a1b83b8c9e61f305c9093f3668aed2e111c410191aa7b5e431cb3c5df46
MD5 c61f6e76a7bf97f86c2ffff5ca490f30
BLAKE2b-256 a442b8cca3f01aa1badd0e4acc9888e91206427b066df10b3553b1fb89676914

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pixtreme-0.2.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 6.4 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.2.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 55c0a7c435fdb47fe01f80943a1b6ab225539767c697889a36b28d1c90e6e1bb
MD5 6d005a149dba3aa0c68a0d1ffc8d308e
BLAKE2b-256 3c21ebb1ed45c21688183c794da5b61169f5bbc3c88b19ed0a553c1db1c39f6e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixtreme-0.2.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e8a6343d56cdeff8b19b3b3dbc8f4ca67b090bc25a1dc770c10d85374ffcf6d7
MD5 9f6c285a551b340fe2d4e2fa407bc17d
BLAKE2b-256 218522835eca58d4d024a0ab0e3bdd06f7bbcb5eec554a6ace4eff97d3a69184

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixtreme-0.2.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 81ca6ee946071564ccc6c54c4a32275354af18d3a331850bb0744f530b8db677
MD5 64580a71f012ec51fe5842a2477411f9
BLAKE2b-256 a62ec286da8a4722e45d0e502047659df086ea92bd7b13fd9d3d3fe06f519f49

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pixtreme-0.2.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 6.4 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.2.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7af0d44a50f538b492427dd700731566aaf73f53db0fbc0f2f0b168998e0ab99
MD5 3c10fef8d0f75e0ee22d3dbec2c53381
BLAKE2b-256 991f8818f208436e97a005ecc7976dc029b283590177c53945820cf10578adb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixtreme-0.2.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0b8281739f87019b22e3366699f94bfc85d99bd0b3eb63f3589f05f973ab153b
MD5 769584077a12b02caa6bd60d62787719
BLAKE2b-256 a45f8d3426d35d210f1f3cb3a246f4d0c08f48d42cadf584d4cc2bc1990268c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixtreme-0.2.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8b71f0bb06e2da5af39408eb261a66a94acb29b8a3995cd49074eec65a274297
MD5 0d9ee3f3a3e026960500da95ffa19705
BLAKE2b-256 8abad121dc52e6c7faf65e018b09b31110309b8fccc0a73577817901fcd302ad

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