From 989e046c1202b81f6f5eded149384d766a7fb957 Mon Sep 17 00:00:00 2001 From: Joshua Kifer Date: Fri, 29 Oct 2021 13:42:46 -0700 Subject: [PATCH] UUID type hint (#32) --- aurora_data_api/__init__.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/aurora_data_api/__init__.py b/aurora_data_api/__init__.py index 38f7061..abf60ec 100644 --- a/aurora_data_api/__init__.py +++ b/aurora_data_api/__init__.py @@ -1,7 +1,8 @@ """ aurora-data-api - A Python DB-API 2.0 client for the AWS Aurora Serverless Data API """ -import os, datetime, ipaddress, uuid, time, random, string, logging, itertools, reprlib +import os, datetime, ipaddress, time, random, string, logging, itertools, reprlib +from uuid import UUID from decimal import Decimal from collections import namedtuple from .exceptions import (Warning, Error, InterfaceError, DatabaseError, DataError, OperationalError, IntegrityError, @@ -116,7 +117,7 @@ class AuroraDataAPICursor: "text": str, "time": datetime.time, "timestamp": datetime.datetime, - "uuid": uuid.uuid4, + "uuid": UUID, "numeric": Decimal, "decimal": Decimal } @@ -133,7 +134,8 @@ class AuroraDataAPICursor: datetime.date: "DATE", datetime.time: "TIME", datetime.datetime: "TIMESTAMP", - Decimal: "DECIMAL" + Decimal: "DECIMAL", + UUID: "UUID" } def __init__(self, client=None, dbname=None, aurora_cluster_arn=None, secret_arn=None, transaction_id=None): @@ -281,6 +283,8 @@ def _render_value(self, value, col_desc=None): if col_desc and col_desc.type_code in self._data_api_type_hint_map: if col_desc.type_code == Decimal: scalar_value = Decimal(scalar_value) + elif col_desc.type_code == UUID: + scalar_value = UUID(scalar_value) else: try: scalar_value = col_desc.type_code.fromisoformat(scalar_value)