Skip to main content

Python bindings for GLDF (General Lighting Data Format) parsing library

Project description

CI PyPI

gldf-rs-python

Python bindings for the gldf-rs GLDF parsing library.

Overview

gldf-rs-python provides Python access to GLDF (General Lighting Data Format) file parsing and manipulation. It wraps the high-performance Rust gldf-rs library using PyO3/maturin.

GLDF files are ZIP containers containing product.xml definitions along with embedded images, photometry files (Eulumdat/IES), and L3D 3D models.

Learn more at: https://gldf.io

Installation

pip install gldf-rs-python

GLDF Viewer

Quick Start

import gldf_rs_python

# Load GLDF and convert to XML
xml = gldf_rs_python.gldf_to_xml('path/to/file.gldf')

# Load GLDF and convert to JSON
json = gldf_rs_python.gldf_to_json('path/to/file.gldf')

# Round-trip: JSON back to XML
xml2 = gldf_rs_python.xml_from_json(json)

assert xml == xml2  # True

Converting LDT/IES to GLDF

import gldf_rs_python

# Convert LDT to GLDF JSON
with open("luminaire.ldt", "rb") as f:
    gldf_json = gldf_rs_python.ldt_to_gldf_json(f.read(), "luminaire.ldt")

# Convert LDT to GLDF file
with open("luminaire.ldt", "rb") as f:
    gldf_bytes = gldf_rs_python.ldt_to_gldf_bytes(f.read(), "luminaire.ldt")
    with open("luminaire.gldf", "wb") as out:
        out.write(gldf_bytes)

# Works with IES files too
with open("luminaire.ies", "rb") as f:
    gldf_json = gldf_rs_python.ldt_to_gldf_json(f.read(), "luminaire.ies")

Working with GLDF Bytes

import gldf_rs_python

# Load GLDF from bytes (useful for web apps, streaming)
with open("product.gldf", "rb") as f:
    json_data = gldf_rs_python.gldf_from_bytes(f.read())

# Export GLDF JSON back to bytes
gldf_bytes = gldf_rs_python.gldf_json_to_bytes(json_data)

API Reference

Function Description
gldf_to_xml(path) Load GLDF file and convert to XML string
gldf_to_json(path) Load GLDF file and convert to JSON string
json_from_xml_str(xml_str) Parse XML string to JSON
xml_from_json(json_str) Parse JSON string to XML
gldf_from_bytes(data) Load GLDF from bytes and return JSON
ldt_to_gldf_json(data, filename) Convert LDT/IES to GLDF JSON
ldt_to_gldf_bytes(data, filename) Convert LDT/IES to GLDF bytes (ZIP)
gldf_json_to_bytes(json_str) Export GLDF JSON to bytes (ZIP)

Development

# Create virtual environment
python -m venv .venv
source .venv/bin/activate

# Install maturin
pip install maturin

# Build and install in development mode
maturin develop

# Build release wheel
maturin build --release

Live Demo

Try the WASM-based GLDF viewer at: https://gldf.icu

Related Crates

Crate Description
gldf-rs Core Rust library
gldf-rs-wasm WebAssembly viewer application
l3d-rs L3D 3D model format parsing
eulumdat Eulumdat/LDT photometry parsing

Release Notes

0.3.3

  • New: ldt_to_gldf_json() - Convert LDT/IES photometry to GLDF JSON
  • New: ldt_to_gldf_bytes() - Convert LDT/IES photometry to GLDF bytes (ZIP)
  • New: gldf_from_bytes() - Load GLDF from bytes and return JSON
  • New: gldf_json_to_bytes() - Export GLDF JSON to bytes (ZIP)
  • Improved error handling with proper PyValueError exceptions
  • Added eulumdat feature for LDT/IES conversion support

0.3.1

  • Updated to gldf-rs 0.3.1 with quick-xml parser
  • Part of gldf-rs monorepo restructure

0.2.0

  • Support for URL file types
  • Support for BOM-encoded UTF8 product.xml

License

MIT License

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

gldf_rs_python-0.4.0.tar.gz (191.1 kB view details)

Uploaded Source

Built Distributions

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

gldf_rs_python-0.4.0-cp38-abi3-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.8+Windows x86-64

gldf_rs_python-0.4.0-cp38-abi3-musllinux_1_2_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ x86-64

gldf_rs_python-0.4.0-cp38-abi3-musllinux_1_2_aarch64.whl (2.3 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

gldf_rs_python-0.4.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

gldf_rs_python-0.4.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

gldf_rs_python-0.4.0-cp38-abi3-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

gldf_rs_python-0.4.0-cp38-abi3-macosx_10_12_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file gldf_rs_python-0.4.0.tar.gz.

File metadata

  • Download URL: gldf_rs_python-0.4.0.tar.gz
  • Upload date:
  • Size: 191.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gldf_rs_python-0.4.0.tar.gz
Algorithm Hash digest
SHA256 93bcf2fd9fec466cc0c9a069de207e40be9826235f31f2168d08613a0edf48e2
MD5 11e019ae973010348ca9b1c16f8234e6
BLAKE2b-256 01acdf9f770fc8119dcf3d60f2677fef5743e3c24b3bb65901eafeade8a65d5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for gldf_rs_python-0.4.0.tar.gz:

Publisher: python-publish.yml on holg/gldf-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gldf_rs_python-0.4.0-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for gldf_rs_python-0.4.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 59199f3066c0251a563d887f3b377376676b370178544aad3db7b20353bb3d80
MD5 a7516fe5b73115e0c1f78e5fd7e2c900
BLAKE2b-256 068e7460c48a71029c3756b7d93538c26b2c21d5e00ac835d9b511b0b21a0b48

See more details on using hashes here.

Provenance

The following attestation bundles were made for gldf_rs_python-0.4.0-cp38-abi3-win_amd64.whl:

Publisher: python-publish.yml on holg/gldf-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gldf_rs_python-0.4.0-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for gldf_rs_python-0.4.0-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 34dc310eb8ffc3a08e8e84bf1958754b61ecc1662806f093f678e1a422fef9b4
MD5 66185209232b98257faa2102145154e2
BLAKE2b-256 226201035ed10e92baa4cc2fc0e29518494f6295c89d513c74f1194917dbf451

See more details on using hashes here.

Provenance

The following attestation bundles were made for gldf_rs_python-0.4.0-cp38-abi3-musllinux_1_2_x86_64.whl:

Publisher: python-publish.yml on holg/gldf-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gldf_rs_python-0.4.0-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for gldf_rs_python-0.4.0-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fc99a7e19fac31321e2d6ad9745b7a94e6a07766cc259ac130f1e6037941932e
MD5 a77029725c3c4d0466cf4474251c62a4
BLAKE2b-256 231dc5115a33e41e7d7f3fbcdadce14b35a38821ca06f3eab003486889116a0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for gldf_rs_python-0.4.0-cp38-abi3-musllinux_1_2_aarch64.whl:

Publisher: python-publish.yml on holg/gldf-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gldf_rs_python-0.4.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gldf_rs_python-0.4.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 502f6690b0ceffba79b057ce278ded5cd2b5ec69271c6c2db9fc46ae7389a1c4
MD5 feede7e320771c916109a378fdb53db8
BLAKE2b-256 baabdec49f0489155d4521477727eaf06315167c198dffa08661cde319491a76

See more details on using hashes here.

Provenance

The following attestation bundles were made for gldf_rs_python-0.4.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: python-publish.yml on holg/gldf-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gldf_rs_python-0.4.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for gldf_rs_python-0.4.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 02502b75214700e7e7a38b80f8b77038e31ae529f838f83c63fc1c09f7eae894
MD5 d8b48b78fa759aaed7a9e5054de1b118
BLAKE2b-256 19a9ea1999a2001717c2213e49ab7acdb16e5bf28a07d3d5c1745d2bcde984c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for gldf_rs_python-0.4.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: python-publish.yml on holg/gldf-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gldf_rs_python-0.4.0-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gldf_rs_python-0.4.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dbd4a6583e4f102306fec57dce9d2cd3e7c5291a434d133e65bc2ef5712f1246
MD5 a2d6341a689b08d826484f1b0755625e
BLAKE2b-256 0fb072ac4be86e2c3d5180282fff791298b084732df81bae412ec24e7423c0b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for gldf_rs_python-0.4.0-cp38-abi3-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on holg/gldf-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gldf_rs_python-0.4.0-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for gldf_rs_python-0.4.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cf6404f703a7fd4f8e1a7d3cc92b5dfc69d67a01bdb6755c15519ddd92a2e886
MD5 f1aaf22effafdc0d94400fd8e7e0a6e0
BLAKE2b-256 5881f026cec2376f00e69a21c4ebac4c972f524415914dfe16d4abb276890534

See more details on using hashes here.

Provenance

The following attestation bundles were made for gldf_rs_python-0.4.0-cp38-abi3-macosx_10_12_x86_64.whl:

Publisher: python-publish.yml on holg/gldf-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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