Skip to main content

UUID Extension for Python

Project description

UUID Extension for Python

A Python library implementing UUID version 7 as specified in the RFC, providing time-ordered UUIDs for modern applications.

Features

  • Full implementation of UUID version 7
  • Time-ordered UUIDs for better database performance
  • Compatible with standard Python UUID objects
  • Timestamp extraction capabilities
  • Optional counter for monotonicity within milliseconds

Installation

pip install uuid-extension

Usage

Basic Usage

from uuid_extension import uuid7

# Generate a new UUID7
uuid = uuid7()
print(id)  # e.g., 018c1585-5e7c-7601-b322-5bf9f7478708

# Access the underlying UUID object
uuid_obj = uuid.uuid7

With Timestamp

from datetime import datetime
from uuid_extension import uuid7

# Generate UUID7 with a specific timestamp
custom_time = datetime.now()
id = uuid7(timestamp=custom_time)

# Or with Unix timestamp
id = uuid7(timestamp=1690000000.123)

With Counter

from uuid_extension import UUID7

# Use a counter for guaranteeing monotonicity within the same millisecond
counter = 1
id1 = uuid7(counter=counter)
counter += 1
id2 = uuid7(counter=counter)

Time Extraction

from uuid_extension import UUID7

uuid = uuid7()

# Extract timestamp as float (Unix timestamp in seconds)
ts = uuid.to_timestamp()

# Extract as datetime object (UTC timezone by default)
dt = uuid.to_datetime()

# Extract as datetime with a specific timezone
import pytz
dt_est = uuid.to_datetime(tz=pytz.timezone('US/Eastern'))

Comparison Operations

UUID7 objects support standard comparison operations:

id1 = uuid7()
id2 = uuid7()

print(id1 == id2)  # False
print(id1 < id2)   # True (usually, as they're time-ordered)
print(id1 <= id2)  # True

Technical Details

UUID version 7 structure:

  • 48 bits of Unix timestamp in milliseconds
  • 4 bits for version (set to 7)
  • 2 bits for variant (set to 0b10)
  • 74 bits of random data for uniqueness

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

uuid_extension-0.0.2.tar.gz (46.1 kB view details)

Uploaded Source

Built Distribution

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

uuid_extension-0.0.2-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file uuid_extension-0.0.2.tar.gz.

File metadata

  • Download URL: uuid_extension-0.0.2.tar.gz
  • Upload date:
  • Size: 46.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.2

File hashes

Hashes for uuid_extension-0.0.2.tar.gz
Algorithm Hash digest
SHA256 b1aae6c6cb62bb7b9ea0561a225bc229a70dea93993b7fb2dcc8c1e67da7c7dc
MD5 8c301388ecca2d586bc084dc7ce154d4
BLAKE2b-256 1a15b509231aedd370aa674018728475fc2d80c2ba1f00fac394f44cf1ea557a

See more details on using hashes here.

File details

Details for the file uuid_extension-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for uuid_extension-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 41d96e4a08cfd588881c0d8817b88aa7db79a8786d65be05152c75a75d1d2c8d
MD5 a5147e98f1a7288ae19f9e121363e474
BLAKE2b-256 e515f9b3fc8fc2a6ddece82e91f29dc356dfc951dd57b0698deed4f26be08e5c

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