Skip to main content

Use rust ulid crate to rewrite python ulid library

Project description

ulid-rs-py

Package version Supported Python versions

Python wrapper for Rust ulid crate


Installation

pip install ulid-rs-py

Quickstart

from datetime import datetime, timezone
from ulid import new, from_uuid, from_parts, from_timestamp, from_datetime, from_string, PyUlid

# Generate ulid
py_ulid: PyUlid = new()
print(py_ulid)
print(py_ulid.str())
print(py_ulid.bytes())
print(py_ulid.increment())
print(py_ulid.randomness())
print(py_ulid.timestamp())

# From string
str_value = "01H6D6M1HWY1KNND0FKB8PRR87"
py_ulid = from_string(str_value)
print(py_ulid.str())
assert py_ulid.str() == str_value
assert py_ulid.randomness() + 1 == py_ulid.increment().randomness()

# From uuid
uuid_value = "771a3bce-02e9-4428-a68e-b1e7e82b7f9f"
ulid_value = "3Q38XWW0Q98GMAD3NHWZM2PZWZ"
py_ulid = from_uuid(uuid_value)
print(py_ulid.str())
assert py_ulid.str() == ulid_value

# From timestamp
timestamp_value = datetime(2023, 7, 28).timestamp()
py_ulid = from_timestamp(timestamp_value)
print(py_ulid.str())
print(py_ulid.timestamp())
assert py_ulid.timestamp() == timestamp_value
print(py_ulid.randomness())

# From datetime
datetime_value = datetime(2023, 7, 28, hour=1, minute=20, tzinfo=timezone.utc)
py_ulid = from_datetime(datetime_value)
assert py_ulid.str()
assert py_ulid.datetime() == datetime(2023, 7, 28, hour=1, minute=20)
assert py_ulid.timestamp() == datetime_value.timestamp()

# From parts
datetime_value = datetime(2023, 7, 28)
py_ulid_tt = from_timestamp(datetime_value.timestamp())
py_ulid = from_parts(py_ulid_tt.timestamp(), py_ulid_tt.randomness())
assert py_ulid.str() == py_ulid_tt.str()

Benchmarks

For details, see benchmark.

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

ulid_rs_py-0.2.1.tar.gz (10.1 kB view hashes)

Uploaded Source

Built Distributions

ulid_rs_py-0.2.1-pp310-pypy310_pp73-win_amd64.whl (126.0 kB view hashes)

Uploaded PyPy Windows x86-64

ulid_rs_py-0.2.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl (399.3 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ x86-64

ulid_rs_py-0.2.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl (398.2 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARM64

ulid_rs_py-0.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (226.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

ulid_rs_py-0.2.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (217.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

ulid_rs_py-0.2.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl (189.2 kB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

ulid_rs_py-0.2.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl (196.7 kB view hashes)

Uploaded PyPy macOS 10.12+ x86-64

ulid_rs_py-0.2.1-pp39-pypy39_pp73-win_amd64.whl (125.9 kB view hashes)

Uploaded PyPy Windows x86-64

ulid_rs_py-0.2.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl (399.3 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ x86-64

ulid_rs_py-0.2.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl (398.2 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARM64

ulid_rs_py-0.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (226.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

ulid_rs_py-0.2.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (217.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

ulid_rs_py-0.2.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl (189.1 kB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

ulid_rs_py-0.2.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl (196.7 kB view hashes)

Uploaded PyPy macOS 10.12+ x86-64

ulid_rs_py-0.2.1-pp38-pypy38_pp73-win_amd64.whl (126.0 kB view hashes)

Uploaded PyPy Windows x86-64

ulid_rs_py-0.2.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl (399.4 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ x86-64

ulid_rs_py-0.2.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl (398.2 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARM64

ulid_rs_py-0.2.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (226.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

ulid_rs_py-0.2.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (217.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

ulid_rs_py-0.2.1-cp312-none-win_amd64.whl (125.9 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

ulid_rs_py-0.2.1-cp312-cp312-musllinux_1_1_x86_64.whl (398.6 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

ulid_rs_py-0.2.1-cp312-cp312-musllinux_1_1_aarch64.whl (397.5 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ ARM64

ulid_rs_py-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (226.2 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

ulid_rs_py-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (216.8 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

ulid_rs_py-0.2.1-cp312-cp312-macosx_11_0_arm64.whl (188.3 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

ulid_rs_py-0.2.1-cp312-cp312-macosx_10_12_x86_64.whl (195.8 kB view hashes)

Uploaded CPython 3.12 macOS 10.12+ x86-64

ulid_rs_py-0.2.1-cp311-none-win_amd64.whl (126.8 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

ulid_rs_py-0.2.1-cp311-cp311-musllinux_1_1_x86_64.whl (400.1 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

ulid_rs_py-0.2.1-cp311-cp311-musllinux_1_1_aarch64.whl (398.8 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARM64

ulid_rs_py-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (227.6 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

ulid_rs_py-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (218.0 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

ulid_rs_py-0.2.1-cp311-cp311-macosx_11_0_arm64.whl (189.5 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

ulid_rs_py-0.2.1-cp311-cp311-macosx_10_12_x86_64.whl (197.4 kB view hashes)

Uploaded CPython 3.11 macOS 10.12+ x86-64

ulid_rs_py-0.2.1-cp310-none-win_amd64.whl (126.8 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

ulid_rs_py-0.2.1-cp310-cp310-musllinux_1_1_x86_64.whl (400.1 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

ulid_rs_py-0.2.1-cp310-cp310-musllinux_1_1_aarch64.whl (398.8 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

ulid_rs_py-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (227.6 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

ulid_rs_py-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (218.0 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

ulid_rs_py-0.2.1-cp310-cp310-macosx_11_0_arm64.whl (189.5 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

ulid_rs_py-0.2.1-cp310-cp310-macosx_10_12_x86_64.whl (197.3 kB view hashes)

Uploaded CPython 3.10 macOS 10.12+ x86-64

ulid_rs_py-0.2.1-cp39-none-win_amd64.whl (127.0 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

ulid_rs_py-0.2.1-cp39-cp39-musllinux_1_1_x86_64.whl (400.3 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

ulid_rs_py-0.2.1-cp39-cp39-musllinux_1_1_aarch64.whl (399.0 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ ARM64

ulid_rs_py-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (227.8 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

ulid_rs_py-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (218.2 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

ulid_rs_py-0.2.1-cp39-cp39-macosx_11_0_arm64.whl (189.7 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

ulid_rs_py-0.2.1-cp39-cp39-macosx_10_12_x86_64.whl (197.5 kB view hashes)

Uploaded CPython 3.9 macOS 10.12+ x86-64

ulid_rs_py-0.2.1-cp38-none-win_amd64.whl (126.8 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

ulid_rs_py-0.2.1-cp38-cp38-musllinux_1_1_x86_64.whl (400.2 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

ulid_rs_py-0.2.1-cp38-cp38-musllinux_1_1_aarch64.whl (398.9 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ ARM64

ulid_rs_py-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (227.8 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

ulid_rs_py-0.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (218.1 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

ulid_rs_py-0.2.1-cp38-cp38-macosx_11_0_arm64.whl (189.5 kB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

ulid_rs_py-0.2.1-cp38-cp38-macosx_10_12_x86_64.whl (197.4 kB view hashes)

Uploaded CPython 3.8 macOS 10.12+ x86-64

Supported by

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