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 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, cls=EnumEncoder)
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, cls=EnumEncoder)
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quillsql
3
- Version: 2.2.9
3
+ Version: 2.2.10
4
4
  Summary: Quill SDK for Python.
5
5
  Home-page: https://github.com/quill-sql/quill-python
6
6
  Author: Quill
@@ -1,5 +1,5 @@
1
1
  quillsql/__init__.py,sha256=wjJfszle5vheUbgUfJMHQqtqhx2W3UaDN4ndcRIfmkQ,236
2
- quillsql/core.py,sha256=VzWtu0up8tcSxijHt_x3bSbZnPjbZFIyGKXCwerpPrg,33704
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.9.dist-info/METADATA,sha256=zVlzKEUZAAIQR30Re6w6tdebu6hFjtTQnOeIXlOwZz4,3052
19
- quillsql-2.2.9.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
20
- quillsql-2.2.9.dist-info/top_level.txt,sha256=eU2vHnVqwpYQJ3ADl1Q-DIBzbYejZRUhcMdN_4zMCz8,9
21
- quillsql-2.2.9.dist-info/RECORD,,
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,,