deepfos 1.1.35__tar.gz → 1.1.36__tar.gz

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.
Files changed (187) hide show
  1. {deepfos-1.1.35 → deepfos-1.1.36}/CHANGELOG.md +15 -0
  2. {deepfos-1.1.35 → deepfos-1.1.36}/PKG-INFO +1 -1
  3. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/_version.py +3 -3
  4. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/deepmodel_kingbase.py +0 -2
  5. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/kingbase.py +0 -2
  6. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/postgresql.py +10 -3
  7. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/datatable.py +1 -5
  8. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos.egg-info/PKG-INFO +1 -1
  9. {deepfos-1.1.35 → deepfos-1.1.36}/.gitattributes +0 -0
  10. {deepfos-1.1.35 → deepfos-1.1.36}/.gitee/ISSUE_GUIDELINES.md +0 -0
  11. {deepfos-1.1.35 → deepfos-1.1.36}/.gitee/ISSUE_TEMPLATE.md +0 -0
  12. {deepfos-1.1.35 → deepfos-1.1.36}/.gitignore +0 -0
  13. {deepfos-1.1.35 → deepfos-1.1.36}/MANIFEST.in +0 -0
  14. {deepfos-1.1.35 → deepfos-1.1.36}/README.md +0 -0
  15. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/__init__.py +0 -0
  16. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/algo/__init__.py +0 -0
  17. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/algo/graph.py +0 -0
  18. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/V1_1/__init__.py +0 -0
  19. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/V1_1/business_model.py +0 -0
  20. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/V1_1/dimension.py +0 -0
  21. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/V1_1/models/__init__.py +0 -0
  22. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/V1_1/models/business_model.py +0 -0
  23. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/V1_1/models/dimension.py +0 -0
  24. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/V1_2/__init__.py +0 -0
  25. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/V1_2/dimension.py +0 -0
  26. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/V1_2/models/__init__.py +0 -0
  27. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/V1_2/models/dimension.py +0 -0
  28. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/__init__.py +0 -0
  29. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/account.py +0 -0
  30. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/accounting_engines.py +0 -0
  31. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/app.py +0 -0
  32. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/approval_process.py +0 -0
  33. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/base.py +0 -0
  34. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/business_model.py +0 -0
  35. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/consolidation.py +0 -0
  36. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/consolidation_process.py +0 -0
  37. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/datatable.py +0 -0
  38. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/deepconnector.py +0 -0
  39. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/deepfos_task.py +0 -0
  40. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/deepmodel.py +0 -0
  41. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/dimension.py +0 -0
  42. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/financial_model.py +0 -0
  43. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/journal_model.py +0 -0
  44. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/journal_template.py +0 -0
  45. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/memory_financial_model.py +0 -0
  46. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/__init__.py +0 -0
  47. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/account.py +0 -0
  48. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/accounting_engines.py +0 -0
  49. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/app.py +0 -0
  50. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/approval_process.py +0 -0
  51. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/base.py +0 -0
  52. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/business_model.py +0 -0
  53. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/consolidation.py +0 -0
  54. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/consolidation_process.py +0 -0
  55. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/datatable_mysql.py +0 -0
  56. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/deepconnector.py +0 -0
  57. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/deepfos_task.py +0 -0
  58. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/deepmodel.py +0 -0
  59. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/dimension.py +0 -0
  60. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/financial_model.py +0 -0
  61. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/journal_model.py +0 -0
  62. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/journal_template.py +0 -0
  63. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/memory_financial_model.py +0 -0
  64. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/platform.py +0 -0
  65. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/python.py +0 -0
  66. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/reconciliation_engine.py +0 -0
  67. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/reconciliation_report.py +0 -0
  68. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/role_strategy.py +0 -0
  69. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/smartlist.py +0 -0
  70. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/space.py +0 -0
  71. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/system.py +0 -0
  72. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/variable.py +0 -0
  73. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/models/workflow.py +0 -0
  74. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/platform.py +0 -0
  75. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/python.py +0 -0
  76. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/reconciliation_engine.py +0 -0
  77. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/reconciliation_report.py +0 -0
  78. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/role_strategy.py +0 -0
  79. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/smartlist.py +0 -0
  80. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/space.py +0 -0
  81. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/system.py +0 -0
  82. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/variable.py +0 -0
  83. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/api/workflow.py +0 -0
  84. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/boost/__init__.py +0 -0
  85. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/boost/jstream.c +0 -0
  86. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/boost/jstream.pyx +0 -0
  87. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/boost/pandas.c +0 -0
  88. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/boost/pandas.pyx +0 -0
  89. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/boost/py_jstream.py +0 -0
  90. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/boost/py_pandas.py +0 -0
  91. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/cache.py +0 -0
  92. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/config.py +0 -0
  93. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/__init__.py +0 -0
  94. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/cube/__init__.py +0 -0
  95. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/cube/_base.py +0 -0
  96. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/cube/constants.py +0 -0
  97. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/cube/cube.py +0 -0
  98. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/cube/formula.py +0 -0
  99. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/cube/syscube.py +0 -0
  100. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/cube/typing.py +0 -0
  101. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/cube/utils.py +0 -0
  102. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/dimension/__init__.py +0 -0
  103. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/dimension/_base.py +0 -0
  104. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/dimension/dimcreator.py +0 -0
  105. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/dimension/dimension.py +0 -0
  106. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/dimension/dimexpr.py +0 -0
  107. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/dimension/dimmember.py +0 -0
  108. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/dimension/eledimension.py +0 -0
  109. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/dimension/filters.py +0 -0
  110. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/dimension/sysdimension.py +0 -0
  111. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/logictable/__init__.py +0 -0
  112. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/logictable/_cache.py +0 -0
  113. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/logictable/_operator.py +0 -0
  114. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/logictable/nodemixin.py +0 -0
  115. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/logictable/sqlcondition.py +0 -0
  116. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/core/logictable/tablemodel.py +0 -0
  117. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/__init__.py +0 -0
  118. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/cipher.py +0 -0
  119. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/clickhouse.py +0 -0
  120. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/connector.py +0 -0
  121. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/daclickhouse.py +0 -0
  122. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/dameng.py +0 -0
  123. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/damysql.py +0 -0
  124. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/dbkits.py +0 -0
  125. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/deepengine.py +0 -0
  126. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/deepmodel.py +0 -0
  127. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/edb.py +0 -0
  128. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/gauss.py +0 -0
  129. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/mysql.py +0 -0
  130. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/oracle.py +0 -0
  131. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/sqlserver.py +0 -0
  132. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/db/utils.py +0 -0
  133. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/__init__.py +0 -0
  134. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/accounting.py +0 -0
  135. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/apvlprocess.py +0 -0
  136. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/base.py +0 -0
  137. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/bizmodel.py +0 -0
  138. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/deepconnector.py +0 -0
  139. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/deepmodel.py +0 -0
  140. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/dimension.py +0 -0
  141. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/fact_table.py +0 -0
  142. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/finmodel.py +0 -0
  143. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/journal.py +0 -0
  144. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/journal_template.py +0 -0
  145. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/pyscript.py +0 -0
  146. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/reconciliation.py +0 -0
  147. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/rolestrategy.py +0 -0
  148. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/smartlist.py +0 -0
  149. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/variable.py +0 -0
  150. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/element/workflow.py +0 -0
  151. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/exceptions/__init__.py +0 -0
  152. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/exceptions/hook.py +0 -0
  153. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lazy.py +0 -0
  154. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/__init__.py +0 -0
  155. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/_javaobj.py +0 -0
  156. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/asynchronous.py +0 -0
  157. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/concurrency.py +0 -0
  158. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/constant.py +0 -0
  159. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/decorator.py +0 -0
  160. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/deepchart.py +0 -0
  161. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/deepux.py +0 -0
  162. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/discovery.py +0 -0
  163. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/eureka.py +0 -0
  164. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/filterparser.py +0 -0
  165. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/httpcli.py +0 -0
  166. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/jsonstreamer.py +0 -0
  167. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/msg.py +0 -0
  168. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/nacos.py +0 -0
  169. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/patch.py +0 -0
  170. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/redis.py +0 -0
  171. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/serutils.py +0 -0
  172. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/stopwatch.py +0 -0
  173. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/subtask.py +0 -0
  174. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/sysutils.py +0 -0
  175. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/lib/utils.py +0 -0
  176. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/local.py +0 -0
  177. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/options.py +0 -0
  178. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos/translation.py +0 -0
  179. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos.egg-info/SOURCES.txt +0 -0
  180. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos.egg-info/dependency_links.txt +0 -0
  181. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos.egg-info/not-zip-safe +0 -0
  182. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos.egg-info/requires.txt +0 -0
  183. {deepfos-1.1.35 → deepfos-1.1.36}/deepfos.egg-info/top_level.txt +0 -0
  184. {deepfos-1.1.35 → deepfos-1.1.36}/requirements.txt +0 -0
  185. {deepfos-1.1.35 → deepfos-1.1.36}/setup.cfg +0 -0
  186. {deepfos-1.1.35 → deepfos-1.1.36}/setup.py +0 -0
  187. {deepfos-1.1.35 → deepfos-1.1.36}/versioneer.py +0 -0
@@ -1,3 +1,18 @@
1
+ ## [1.1.36] - 2024-06-05
2
+
3
+ ### 新增
4
+
5
+ * 无
6
+
7
+ ### 变更
8
+
9
+ * pg类数据表quote_char更新
10
+
11
+ ### 文档
12
+
13
+ * 无
14
+
15
+
1
16
  ## [1.1.35] - 2024-05-28
2
17
 
3
18
  ### 变更
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deepfos
3
- Version: 1.1.35
3
+ Version: 1.1.36
4
4
  Summary: Collecions of useful and handy tools for deepfos platform
5
5
  Home-page: http://py.deepfos.com
6
6
  Author: deepfos-python-team
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2024-05-30T02:50:45+0000",
11
+ "date": "2024-06-13T03:28:47+0000",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "15a16105c782ac73048953617059577fed00d93b",
15
- "version": "1.1.35"
14
+ "full-revisionid": "c5a5bf3e7fd0a5d6c8596d27d66fa32752792983",
15
+ "version": "1.1.36"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -33,8 +33,6 @@ class SqlParser(BaseSqlParser):
33
33
  # -----------------------------------------------------------------------------
34
34
  # core
35
35
  class _AsyncDeepModelKingBaseClient(_AsyncKingBaseClient):
36
- convertor = PostgreSQLConvertor(quote_char='')
37
-
38
36
  def __init__(self, version: Union[float, str] = None): # noqa
39
37
  self.parser = SqlParser()
40
38
  self.connector = DeepModelKingBaseAPIConnector(version)
@@ -33,8 +33,6 @@ class SqlParser(BaseSqlParser):
33
33
  # -----------------------------------------------------------------------------
34
34
  # core
35
35
  class _AsyncKingBaseClient(_AsyncPostgreSQLClient):
36
- convertor = PostgreSQLConvertor(quote_char='"')
37
-
38
36
  def __init__(self, version: Union[float, str] = None): # noqa
39
37
  self.parser = SqlParser()
40
38
  self.connector = KingBaseAPIConnector(version)
@@ -77,7 +77,11 @@ class PostgreSQLConvertor(DataframeSQLConvertor):
77
77
  if updatecol is None:
78
78
  return f'INSERT INTO {self.quote_char}{tablename}{self.quote_char} ({columns}) VALUES {values}'
79
79
 
80
- update_str = ','.join([f"{x}=EXCLUDED.{x}" for x in updatecol])
80
+ update_str = ','.join([
81
+ f"{self.quote_char}{x}{self.quote_char}="
82
+ f"EXCLUDED.{self.quote_char}{x}{self.quote_char}"
83
+ for x in updatecol
84
+ ])
81
85
  if not update_str:
82
86
  return f'INSERT INTO {self.quote_char}{tablename}{self.quote_char} ({columns}) VALUES {values}'
83
87
 
@@ -85,7 +89,10 @@ class PostgreSQLConvertor(DataframeSQLConvertor):
85
89
  raise ValueError('如需使用ON CONFLICT DO UPDATE语法,'
86
90
  '需提供有唯一约束的列作为conflict_target列信息')
87
91
 
88
- conflict_target_clause = ",".join(conflict_target)
92
+ conflict_target_clause = ",".join([
93
+ f"{self.quote_char}{x}{self.quote_char}"
94
+ for x in conflict_target
95
+ ])
89
96
 
90
97
  if conflict_target_clause:
91
98
  conflict_target_clause = f"({conflict_target_clause})"
@@ -99,7 +106,7 @@ class PostgreSQLConvertor(DataframeSQLConvertor):
99
106
  # -----------------------------------------------------------------------------
100
107
  # core
101
108
  class _AsyncPostgreSQLClient(_AbsAsyncMySQLClient):
102
- convertor = PostgreSQLConvertor(quote_char='')
109
+ convertor = PostgreSQLConvertor(quote_char='"')
103
110
 
104
111
  def __init__(self, version: Union[float, str] = None): # noqa
105
112
  self.parser = SqlParser()
@@ -2155,7 +2155,7 @@ class AsyncDataTablePostgreSQL(AsyncDataTableMySQL):
2155
2155
  __doc__ = DOC_TEMPLATE.format(DB='PostgreSQL')
2156
2156
  api: PostgreSQLAPI
2157
2157
  api_class = PostgreSQLAPI
2158
- quote_char = ''
2158
+ quote_char = '"'
2159
2159
  convertor = _PostgreSQLDFConvertor(quote_char=quote_char)
2160
2160
  query = PostgreSQLQuery
2161
2161
 
@@ -2237,8 +2237,6 @@ class AsyncDataTableKingBase(AsyncDataTablePostgreSQL):
2237
2237
  __doc__ = DOC_TEMPLATE.format(DB='KingBase')
2238
2238
  api: KingBaseAPI
2239
2239
  api_class = KingBaseAPI
2240
- quote_char = '"'
2241
- convertor = _PostgreSQLDFConvertor(quote_char=quote_char)
2242
2240
 
2243
2241
 
2244
2242
  class DataTableKingBase(
@@ -2328,8 +2326,6 @@ class AsyncDataTableDeepModelKingBase(AsyncDataTableKingBase):
2328
2326
  __doc__ = DOC_TEMPLATE.format(DB='DeepModelKingBase')
2329
2327
  api: DeepModelKingBaseAPI
2330
2328
  api_class = DeepModelKingBaseAPI
2331
- quote_char = ''
2332
- convertor = _PostgreSQLDFConvertor(quote_char=quote_char)
2333
2329
 
2334
2330
 
2335
2331
  class DataTableDeepModelKingBase(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deepfos
3
- Version: 1.1.35
3
+ Version: 1.1.36
4
4
  Summary: Collecions of useful and handy tools for deepfos platform
5
5
  Home-page: http://py.deepfos.com
6
6
  Author: deepfos-python-team
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes