quillsql 2.2.9__py3-none-any.whl → 2.2.10__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- quillsql/core.py +16 -16
- {quillsql-2.2.9.dist-info → quillsql-2.2.10.dist-info}/METADATA +1 -1
- {quillsql-2.2.9.dist-info → quillsql-2.2.10.dist-info}/RECORD +5 -5
- {quillsql-2.2.9.dist-info → quillsql-2.2.10.dist-info}/WHEEL +0 -0
- {quillsql-2.2.9.dist-info → quillsql-2.2.10.dist-info}/top_level.txt +0 -0
quillsql/core.py
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import codecs
|
|
3
|
+
import uuid
|
|
4
|
+
from datetime import date, datetime
|
|
5
|
+
from decimal import Decimal
|
|
3
6
|
from dotenv import load_dotenv
|
|
4
7
|
|
|
5
8
|
import requests
|
|
@@ -600,6 +603,17 @@ class Quill:
|
|
|
600
603
|
|
|
601
604
|
return {"error": f"Unknown tool: {tool_name}"}
|
|
602
605
|
|
|
606
|
+
def _json_default(self, obj):
|
|
607
|
+
if isinstance(obj, Enum):
|
|
608
|
+
return obj.value
|
|
609
|
+
if isinstance(obj, uuid.UUID):
|
|
610
|
+
return str(obj)
|
|
611
|
+
if isinstance(obj, (datetime, date)):
|
|
612
|
+
return obj.isoformat()
|
|
613
|
+
if isinstance(obj, Decimal):
|
|
614
|
+
return float(obj)
|
|
615
|
+
raise TypeError(f"Object of type {type(obj).__name__} is not JSON serializable")
|
|
616
|
+
|
|
603
617
|
def _stream_sse(self, endpoint, tenants, payload, flags, filters, admin_enabled):
|
|
604
618
|
tenant_flags = self._normalize_tenant_flags(tenants, flags)
|
|
605
619
|
request_payload = {
|
|
@@ -612,20 +626,13 @@ class Quill:
|
|
|
612
626
|
if admin_enabled is not None:
|
|
613
627
|
request_payload["adminEnabled"] = admin_enabled
|
|
614
628
|
|
|
615
|
-
# Custom JSON Encoder to handle Enums
|
|
616
|
-
class EnumEncoder(json.JSONEncoder):
|
|
617
|
-
def default(self, obj):
|
|
618
|
-
if isinstance(obj, Enum):
|
|
619
|
-
return obj.value # Convert enum to its value (string in this case)
|
|
620
|
-
return super().default(obj)
|
|
621
|
-
|
|
622
629
|
url = f"{self.baseUrl}/sdk/{endpoint}"
|
|
623
630
|
headers = {
|
|
624
631
|
"Authorization": f"Bearer {self.private_key}",
|
|
625
632
|
"Content-Type": "application/json",
|
|
626
633
|
"Accept": "text/event-stream",
|
|
627
634
|
}
|
|
628
|
-
encoded = json.dumps(request_payload,
|
|
635
|
+
encoded = json.dumps(request_payload, default=self._json_default)
|
|
629
636
|
|
|
630
637
|
resp = requests.post(url, data=encoded, headers=headers, stream=True)
|
|
631
638
|
decoder = codecs.getincrementaldecoder("utf-8")()
|
|
@@ -828,16 +835,9 @@ class Quill:
|
|
|
828
835
|
return results
|
|
829
836
|
|
|
830
837
|
def post_quill(self, path, payload):
|
|
831
|
-
# Custom JSON Encoder to handle Enums
|
|
832
|
-
class EnumEncoder(json.JSONEncoder):
|
|
833
|
-
def default(self, obj):
|
|
834
|
-
if isinstance(obj, Enum):
|
|
835
|
-
return obj.value # Convert enum to its value (string in this case)
|
|
836
|
-
return super().default(obj)
|
|
837
|
-
|
|
838
838
|
url = f"{self.baseUrl}/sdk/{path}"
|
|
839
839
|
# Set content type to application/json
|
|
840
840
|
headers = {"Authorization": f"Bearer {self.private_key}", "Content-Type": "application/json"}
|
|
841
|
-
encoded = json.dumps(payload,
|
|
841
|
+
encoded = json.dumps(payload, default=self._json_default)
|
|
842
842
|
response = requests.post(url, data=encoded, headers=headers)
|
|
843
843
|
return response.json()
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
quillsql/__init__.py,sha256=wjJfszle5vheUbgUfJMHQqtqhx2W3UaDN4ndcRIfmkQ,236
|
|
2
|
-
quillsql/core.py,sha256=
|
|
2
|
+
quillsql/core.py,sha256=cxuAfOgQ3AMt26hQgNTFejGv7L_fEAVXtV7dsNdiT7k,33592
|
|
3
3
|
quillsql/error.py,sha256=n9VKHw4FAgg7ZEAz2YQ8L_8FdRG_1shwGngf2iWhUSM,175
|
|
4
4
|
quillsql/assets/__init__.py,sha256=oXQ2ZS5XDXkXTYjADxNfGt55cIn_rqfgWL2EDqjTyoI,45
|
|
5
5
|
quillsql/assets/pgtypes.py,sha256=-B_2wUaoAsdX7_HnJhUlx4ptZQ6x-cXwuST9ACgGFdE,33820
|
|
@@ -15,7 +15,7 @@ quillsql/utils/post_quill_executor.py,sha256=DB1RHNfqHPYarMM10vSv--UjpCZqe4qYTjq
|
|
|
15
15
|
quillsql/utils/run_query_processes.py,sha256=QwnMr5UwXdtO_W88lv5nBaf6pJ_h5oWQnYd8K9oHQ5s,1030
|
|
16
16
|
quillsql/utils/schema_conversion.py,sha256=TFfMibN9nOsxNRhHw5YIFl3jGTvipG81bxX4LFDulUY,314
|
|
17
17
|
quillsql/utils/tenants.py,sha256=ZD2FuKz0gjBVSsThHDv1P8PU6EL8E009NWihE5hAH-Q,2022
|
|
18
|
-
quillsql-2.2.
|
|
19
|
-
quillsql-2.2.
|
|
20
|
-
quillsql-2.2.
|
|
21
|
-
quillsql-2.2.
|
|
18
|
+
quillsql-2.2.10.dist-info/METADATA,sha256=LiIaD8DgC3gUuUTkW5Opgk2Sh5alIdVh-2UzhIJxAHQ,3053
|
|
19
|
+
quillsql-2.2.10.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
20
|
+
quillsql-2.2.10.dist-info/top_level.txt,sha256=eU2vHnVqwpYQJ3ADl1Q-DIBzbYejZRUhcMdN_4zMCz8,9
|
|
21
|
+
quillsql-2.2.10.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|