sgqlc.types.uuid module¶
GraphQL Types for uuid
¶
Maps:
You may either explicitly use this module class: UUID or uuid
,
as they will be automatically recognized by the framework.
Examples¶
With both module and class :
>>> from sgqlc.types import Type
>>> from sgqlc.types.uuid import UUID
>>> import uuid
>>> class UUIDTestType(Type):
... uuid1=UUID
... uuid2=uuid.UUID
...
>>> UUIDTestType
type UUIDTestType {
uuid1: UUID
uuid2: UUID
}
>>> nested_json_data = {}
>>> nested_json_data['uuid1'] = '94fda4fb-d574-470b-82e2-0f4ec2a2db20'
>>> nested_json_data['uuid2'] = '94fda4fb-d574-470b-82e2-0f4ec2a2db21'
>>> obj = UUIDTestType(nested_json_data)
>>> for field in obj:
... print(field, repr(obj[field]))
...
uuid1 UUID('94fda4fb-d574-470b-82e2-0f4ec2a2db20')
uuid2 UUID('94fda4fb-d574-470b-82e2-0f4ec2a2db21')
With valid uuid value:
>>> class MyUuidType(Type):
... uuid = UUID
...
>>> MyUuidType # or repr() to print out GraphQL
type MyUuidType {
uuid: UUID
}
>>> json_data = {'uuid': '94fda4fb-d574-470b-82e2-0f4ec2a2db20'}
>>> obj = MyUuidType(json_data)
>>> obj.uuid
UUID('94fda4fb-d574-470b-82e2-0f4ec2a2db20')
Pre-converted type is allowed:
>>> json_data = {'uuid': UUID('94fda4fb-d574-470b-82e2-0f4ec2a2db20')}
>>> obj = MyUuidType(json_data)
>>> obj.uuid
UUID('94fda4fb-d574-470b-82e2-0f4ec2a2db20')
>>> UUID('94fda4fb-d574-470b-82e2-0f4ec2a2db20')
UUID('94fda4fb-d574-470b-82e2-0f4ec2a2db20')
With input serialize to JSON: >>> UUID.__to_json_value__(‘94fda4fb-d574-470b-82e2-0f4ec2a2db20’) ‘94fda4fb-d574-470b-82e2-0f4ec2a2db20’ >>> UUID.__to_json_value__(UUID(‘94fda4fb-d574-470b-82e2-0f4ec2a2db20’)) ‘94fda4fb-d574-470b-82e2-0f4ec2a2db20’ >>> UUID.__to_json_value__(None) # doctest: +ELLIPSIS
Invalid encoded strings are not:
>>> json_data = {'uuid': 'test 123'}
>>> obj = MyUuidType(json_data)
Traceback (most recent call last):
...
ValueError: MyUuidType selection 'uuid': ...
>>> json_data = {'uuid': 123}
>>> obj = MyUuidType(json_data)
Traceback (most recent call last):
...
ValueError: MyUuidType selection 'uuid': ...
With null input value:
>>> json_data = {'uuid': None}
>>> obj = MyUuidType(json_data)
>>> obj.uuid
All types of UUID supported:
>>> UUID('5e0d844c-b5bf-11ed-afa1-0242ac120002') # with UUID1
UUID('5e0d844c-b5bf-11ed-afa1-0242ac120002')
>>> UUID('000003e8-b5bf-21ed-9300-325096b39f47') # with UUID2
UUID('000003e8-b5bf-21ed-9300-325096b39f47')
>>> UUID('d5946b2b-447f-3fdf-8366-6c747863484a') # with UUID3
UUID('d5946b2b-447f-3fdf-8366-6c747863484a')
>>> UUID('54f4530b-3052-47b3-9231-b00f8d423448') # with UUID4
UUID('54f4530b-3052-47b3-9231-b00f8d423448')
>>> UUID('5a54a66f-bd21-559f-92fe-7ede767ed4b3') # with UUID5
UUID('5a54a66f-bd21-559f-92fe-7ede767ed4b3')