sqlalchemy-iris 0.15.6b1__py3-none-any.whl → 0.16.1b1__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.
@@ -2427,7 +2427,6 @@ class EmbdeddedCursor(_BaseCursor):
2427
2427
  sqlcode = 0
2428
2428
  message = None
2429
2429
  try:
2430
- print("!!!! _send_direct_query_request:params", [statement, params])
2431
2430
  self._result_set = self._sql.exec(statement, *params)
2432
2431
  self._rowcount = self._result_set.ResultSet._ROWCOUNT
2433
2432
  self._get_column_info()
sqlalchemy_iris/base.py CHANGED
@@ -1,6 +1,6 @@
1
1
  import re
2
+ from decimal import Decimal
2
3
  import intersystems_iris.dbapi._DBAPI as dbapi
3
- import intersystems_iris._IRISNative as IRISNative
4
4
  from . import information_schema as ischema
5
5
  from sqlalchemy import exc
6
6
  from sqlalchemy.orm import aliased
@@ -888,6 +888,8 @@ class IRISDialect(default.DefaultDialect):
888
888
 
889
889
  supports_vectors = None
890
890
 
891
+ supports_cte = True
892
+
891
893
  colspecs = colspecs
892
894
 
893
895
  ischema_names = ischema_names
@@ -949,8 +951,8 @@ class IRISDialect(default.DefaultDialect):
949
951
  self.supports_vectors = False
950
952
  self._dictionary_access = False
951
953
  with conn.cursor() as cursor:
952
- cursor.execute("%CHECKPRIV SELECT ON %Dictionary.PropertyDefinition")
953
- self._dictionary_access = cursor.sqlcode == 0
954
+ res = cursor.execute("%CHECKPRIV SELECT ON %Dictionary.PropertyDefinition")
955
+ self._dictionary_access = res == 0
954
956
 
955
957
  # if not self.supports_vectors:
956
958
  # util.warn("No native support for VECTOR or not activated by license")
@@ -1061,14 +1063,14 @@ There are no access to %Dictionary, may be required for some advanced features,
1061
1063
  _debug_queries = False
1062
1064
  # _debug_queries = True
1063
1065
 
1064
- def _debug(self, query, params, many=False):
1065
- from decimal import Decimal
1066
-
1066
+ def _debug(self, query, params, many=False, wrap=True):
1067
1067
  if not self._debug_queries:
1068
1068
  return
1069
1069
  if many:
1070
+ print("-" * 120)
1070
1071
  for p in params:
1071
- self._debug(query, p)
1072
+ self._debug(query, p, wrap=False)
1073
+ print("-" * 120)
1072
1074
  return
1073
1075
  for p in params:
1074
1076
  if isinstance(p, Decimal):
@@ -1078,21 +1080,11 @@ There are no access to %Dictionary, may be required for some advanced features,
1078
1080
  else:
1079
1081
  v = "%r" % (p,)
1080
1082
  query = query.replace("?", v, 1)
1081
- print("--")
1083
+ if wrap:
1084
+ print("-" * 120)
1082
1085
  print(query + ";")
1083
- print("--")
1084
-
1085
- def _debug_pre(self, query, params, many=False):
1086
- print("-- do_execute" + "many" if many else "")
1087
- if not self._debug_queries:
1088
- return
1089
- for line in query.split("\n"):
1090
- print("-- ", line)
1091
- if many:
1092
- print(params)
1093
- else:
1094
- for p in params:
1095
- print("-- @param = %r" % (p,))
1086
+ if wrap:
1087
+ print("-" * 120)
1096
1088
 
1097
1089
  def do_execute(self, cursor, query, params, context=None):
1098
1090
  if query.endswith(";"):
@@ -1746,8 +1738,10 @@ There are no access to %Dictionary, may be required for some advanced features,
1746
1738
  coltype = coltype(**kwargs)
1747
1739
 
1748
1740
  default = "" if default == "$c(0)" else default
1749
- if default and default.startswith('"'):
1750
- default = "'%s'" % (default[1:-1].replace("'", "''"),)
1741
+ if default:
1742
+ default = str(default)
1743
+ if default.startswith('"'):
1744
+ default = "'%s'" % (default[1:-1].replace("'", "''"),)
1751
1745
 
1752
1746
  cdict = {
1753
1747
  "name": name,
@@ -15,6 +15,7 @@ from sqlalchemy.testing import exclusions
15
15
 
16
16
 
17
17
  class Requirements(SuiteRequirements, AlembicRequirements):
18
+
18
19
  @property
19
20
  def array_type(self):
20
21
  return exclusions.closed()
@@ -68,11 +69,10 @@ class Requirements(SuiteRequirements, AlembicRequirements):
68
69
 
69
70
  @property
70
71
  def insert_returning(self):
71
- return exclusions.open()
72
-
73
- @property
74
- def unusual_column_name_characters(self):
75
- return exclusions.open()
72
+ return exclusions.skip_if(
73
+ lambda config: not config.db.dialect.insert_returning,
74
+ "driver doesn't support insert returning",
75
+ )
76
76
 
77
77
  @property
78
78
  def computed_columns(self):
@@ -211,8 +211,10 @@ class Requirements(SuiteRequirements, AlembicRequirements):
211
211
  @property
212
212
  def ctes(self):
213
213
  """Target database supports CTEs"""
214
-
215
- return exclusions.open()
214
+ return exclusions.skip_if(
215
+ lambda config: not config.db.dialect.supports_cte,
216
+ "driver doesn't support CTEs",
217
+ )
216
218
 
217
219
  @property
218
220
  def ctes_with_update_delete(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sqlalchemy-iris
3
- Version: 0.15.6b1
3
+ Version: 0.16.1b1
4
4
  Summary: InterSystems IRIS for SQLAlchemy
5
5
  Home-page: https://github.com/caretdev/sqlalchemy-iris
6
6
  Maintainer: CaretDev
@@ -33,7 +33,7 @@ intersystems_iris/_SharedMemorySocket.py,sha256=2iUaS1FdJNSCUEaE-VT0O_dxF6NRwqZS
33
33
  intersystems_iris/__init__.py,sha256=Tk1tD28LwvF6X3yXQsJFLE1Bc-PR3gUJWcX5UnNYOdY,1773
34
34
  intersystems_iris/__main__.py,sha256=rCtINTfJcADMAsw1ja-MEO7Q-XekrWthYowzWV8xGIQ,218
35
35
  intersystems_iris/dbapi/_Column.py,sha256=WgrqlZru9KxHveErKv6qzs8RSTeYlidK9DvuVkjpvIk,2632
36
- intersystems_iris/dbapi/_DBAPI.py,sha256=UEZmr5pHF6TUqtqZiM91750SNrBP-qQdWtVF2Tcd8f4,104356
36
+ intersystems_iris/dbapi/_DBAPI.py,sha256=8ZIDSxnqt1lvmK9lVjTwfraP4m7M9EfqIj8dAss1Ans,104275
37
37
  intersystems_iris/dbapi/_Descriptor.py,sha256=IjyITxvjygDrhpk-0lGhdqQPh91SG6nTb1vi-AqyJNI,1391
38
38
  intersystems_iris/dbapi/_IRISStream.py,sha256=M3d0SUfE7vyqCxbquSNaRc43J4Xc9i0XGWJnIJzUVVA,2173
39
39
  intersystems_iris/dbapi/_Message.py,sha256=jpLG3HZElqp981iNPFW8UNRO3NbHf6poEv6yywX0Ssw,4076
@@ -65,17 +65,17 @@ irisnative/_IRISNative.py,sha256=HQ4nBhc8t8_5OtxdMG-kx1aa-T1znf2I8obZOPLOPzg,665
65
65
  irisnative/__init__.py,sha256=6YmvBLQSURsCPKaNg7LK-xpo4ipDjrlhKuwdfdNb3Kg,341
66
66
  sqlalchemy_iris/__init__.py,sha256=2bckDQ0AJJ9DfuAc20VVQNiK-YBhpYJMdo_C0qJwPHQ,1183
67
67
  sqlalchemy_iris/alembic.py,sha256=L58qBIj6HwLmtU6FS5RXKW0gHr1mNTrBSChEllSh1n0,6607
68
- sqlalchemy_iris/base.py,sha256=xkAYNo6TFIF7f6cvP2h_7TSiEJBbprmYrmpXM0FkWAM,54679
68
+ sqlalchemy_iris/base.py,sha256=9fnJBkWVCn1INNkbQeOLqgVyyQW95E3_siHOY2tJFJY,54463
69
69
  sqlalchemy_iris/embedded.py,sha256=5WZ78PIYB_pPyaLrK4E7kHUsGBRiwzYHjsTDiNYHUGg,819
70
70
  sqlalchemy_iris/information_schema.py,sha256=FUL3z_viGjjOvDA71Mbk5k94dUGcLV4dW1xHxBgM1rk,6188
71
71
  sqlalchemy_iris/iris.py,sha256=Of0Ruc9W2c5ll5sjAy1xRo4tf1m0l_ab0vAdacTv3Yw,276
72
72
  sqlalchemy_iris/irisasync.py,sha256=7Kmso-RGjxQi9Y4x-zQaUk1ylDQ7TDvpvlZh_syJtGw,312
73
73
  sqlalchemy_iris/provision.py,sha256=drorbIgNO770Ws0XiCRXY_sDbQGIy2_zzNK3KYrDetY,198
74
- sqlalchemy_iris/requirements.py,sha256=X0e_aeO83ucg3iwnX5n_CPUcwmav_SqLbaxj82_-MiU,7901
74
+ sqlalchemy_iris/requirements.py,sha256=Y3Znq-t7buJ_qDN3yUNcmKJl-upncUz7JJiLX1tWE7Y,8059
75
75
  sqlalchemy_iris/types.py,sha256=mtm5wQQuA4pE6WB4EUHzAcpdBCLfZKHrY9qOcdllc7E,11077
76
- sqlalchemy_iris-0.15.6b1.dist-info/LICENSE,sha256=RQmigqltsLq8lfOBc_KwtL0gkODyUCNpU-0ZiZwGlho,1075
77
- sqlalchemy_iris-0.15.6b1.dist-info/METADATA,sha256=kSvVGiMAB7_YFkA9RedFo5IxT0RS0bqHl2YglBqiKS0,2379
78
- sqlalchemy_iris-0.15.6b1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
79
- sqlalchemy_iris-0.15.6b1.dist-info/entry_points.txt,sha256=zjOwyJPXHsNAeQP0n6l2_pav2U__rTAiS_Bk_IEmSlU,184
80
- sqlalchemy_iris-0.15.6b1.dist-info/top_level.txt,sha256=QRY18YUXUJrRde4aayj_brj0lr2LBRVZS1ZoVoDFVS0,45
81
- sqlalchemy_iris-0.15.6b1.dist-info/RECORD,,
76
+ sqlalchemy_iris-0.16.1b1.dist-info/LICENSE,sha256=RQmigqltsLq8lfOBc_KwtL0gkODyUCNpU-0ZiZwGlho,1075
77
+ sqlalchemy_iris-0.16.1b1.dist-info/METADATA,sha256=Y6uVMAjtCDrwK3O5-RFlb6m7fff00mlk4lEFL0WknEI,2379
78
+ sqlalchemy_iris-0.16.1b1.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
79
+ sqlalchemy_iris-0.16.1b1.dist-info/entry_points.txt,sha256=zjOwyJPXHsNAeQP0n6l2_pav2U__rTAiS_Bk_IEmSlU,184
80
+ sqlalchemy_iris-0.16.1b1.dist-info/top_level.txt,sha256=QRY18YUXUJrRde4aayj_brj0lr2LBRVZS1ZoVoDFVS0,45
81
+ sqlalchemy_iris-0.16.1b1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (75.8.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5