Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Uuid25: 25-digit case-insensitive UUID encoding

PyPILicense

Uuid25 is an alternative UUID representation that shortens a UUID string to just 25 digits using the case-insensitive Base36 encoding. This library provides functionality to convert from the conventional UUID formats to Uuid25 and vice versa.

fromuuid25importUuid25# convert from/to stringa=Uuid25.parse("8da942a4-1fbe-4ca6-852c-95c473229c7d")
asserta.value=="8dx554y5rzerz1syhqsvsdw8t"asserta.to_hyphenated() =="8da942a4-1fbe-4ca6-852c-95c473229c7d"# convert from/to 128-bit byte arrayb=Uuid25.from_bytes(bytes([0xFF] *16))
assertb.value=="f5lxx1zz5pnorynqglhzmsp33"assertall([x==0xFFforxinb.to_bytes()])
# convert from/to other popular textual representationsc= [
Uuid25.parse("e7a1d63b711744238988afcf12161878"),
Uuid25.parse("e7a1d63b-7117-4423-8988-afcf12161878"),
Uuid25.parse("{e7a1d63b-7117-4423-8988-afcf12161878}"),
Uuid25.parse("urn:uuid:e7a1d63b-7117-4423-8988-afcf12161878"),
]
assertall([x.value=="dpoadk8izg9y4tte7vy1xt94o"forxinc])
d=Uuid25.parse("dpoadk8izg9y4tte7vy1xt94o")
assertd.to_hex() =="e7a1d63b711744238988afcf12161878"assertd.to_hyphenated() =="e7a1d63b-7117-4423-8988-afcf12161878"assertd.to_braced() =="{e7a1d63b-7117-4423-8988-afcf12161878}"assertd.to_urn() =="urn:uuid:e7a1d63b-7117-4423-8988-afcf12161878"# convert from/to standard uuid module's UUID valueimportuuiduuid_module=uuid.UUID("f38a6b1f-576f-4c22-8d4a-5f72613483f6")
e=Uuid25.from_uuid(uuid_module)
asserte.value=="ef1zh7jc64vprqez41vbwe9km"asserte.to_uuid() ==uuid_module# generate UUIDv4 in Uuid25 format (backed by uuid module)importuuid25print(uuid25.gen_v4()) # e.g., "99wfqtl0z0yevxzpl4hv2dm5p"

License

Licensed under the Apache License, Version 2.0.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages