-
-
Save xianlubird/aefdc6ef4b42cc3c6380 to your computer and use it in GitHub Desktop.
Validating a uuid4 with Python.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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