Skip to content

Instantly share code, notes, and snippets.

@xianlubird
Forked from ShawnMilo/validate_uuid4.py
Created February 21, 2016 15:12
Show Gist options
  • Save xianlubird/aefdc6ef4b42cc3c6380 to your computer and use it in GitHub Desktop.
Save xianlubird/aefdc6ef4b42cc3c6380 to your computer and use it in GitHub Desktop.
Validating a uuid4 with Python.
from uuid import UUID
def validate_uuid4(uuid_string):
"""
Validate that a UUID string is in
fact a valid uuid4.
Happily, the uuid module does the actual
checking for us.
It is vital that the 'version' kwarg be passed
to the UUID() call, otherwise any 32-character
hex string is considered valid.
"""
try:
val = UUID(uuid_string, version=4)
except ValueError:
# If it's a value error, then the string
# is not a valid hex code for a UUID.
return False
# If the uuid_string is a valid hex code,
# but an invalid uuid4,
# the UUID.__init__ will convert it to a
# valid uuid4. This is bad for validation purposes.
return val.hex == uuid_string
if __name__ == '__main__':
# Valid uuid, generated by uuid4():
x = '89eb35868a8247a4a911758a62601cf7'
print validate_uuid4(x)
# Same as above, except for the 17th charecter
# which is a valid hex string, but not a valid uuid4.
x = '89eb35868a8247a4c911758a62601cf7'
print validate_uuid4(x)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment