deepfos 1.1.49__tar.gz → 1.1.51__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 (188) hide show
  1. {deepfos-1.1.49 → deepfos-1.1.51}/CHANGELOG.md +12 -0
  2. {deepfos-1.1.49 → deepfos-1.1.51}/PKG-INFO +1 -1
  3. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/_version.py +3 -3
  4. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/base.py +3 -3
  5. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/edb.py +2 -3
  6. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/deepmodel.py +2 -2
  7. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/serutils.py +17 -4
  8. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/utils.py +8 -0
  9. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/options.py +1 -0
  10. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos.egg-info/PKG-INFO +1 -1
  11. {deepfos-1.1.49 → deepfos-1.1.51}/.gitattributes +0 -0
  12. {deepfos-1.1.49 → deepfos-1.1.51}/.gitee/ISSUE_GUIDELINES.md +0 -0
  13. {deepfos-1.1.49 → deepfos-1.1.51}/.gitee/ISSUE_TEMPLATE.md +0 -0
  14. {deepfos-1.1.49 → deepfos-1.1.51}/.gitignore +0 -0
  15. {deepfos-1.1.49 → deepfos-1.1.51}/MANIFEST.in +0 -0
  16. {deepfos-1.1.49 → deepfos-1.1.51}/README.md +0 -0
  17. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/__init__.py +0 -0
  18. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/algo/__init__.py +0 -0
  19. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/algo/graph.py +0 -0
  20. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/V1_1/__init__.py +0 -0
  21. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/V1_1/business_model.py +0 -0
  22. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/V1_1/dimension.py +0 -0
  23. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/V1_1/models/__init__.py +0 -0
  24. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/V1_1/models/business_model.py +0 -0
  25. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/V1_1/models/dimension.py +0 -0
  26. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/V1_2/__init__.py +0 -0
  27. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/V1_2/dimension.py +0 -0
  28. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/V1_2/models/__init__.py +0 -0
  29. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/V1_2/models/dimension.py +0 -0
  30. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/__init__.py +0 -0
  31. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/account.py +0 -0
  32. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/accounting_engines.py +0 -0
  33. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/app.py +0 -0
  34. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/approval_process.py +0 -0
  35. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/business_model.py +0 -0
  36. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/consolidation.py +0 -0
  37. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/consolidation_process.py +0 -0
  38. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/datatable.py +0 -0
  39. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/deepconnector.py +0 -0
  40. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/deepfos_task.py +0 -0
  41. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/deepmodel.py +0 -0
  42. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/dimension.py +0 -0
  43. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/financial_model.py +0 -0
  44. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/journal_model.py +0 -0
  45. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/journal_template.py +0 -0
  46. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/memory_financial_model.py +0 -0
  47. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/__init__.py +0 -0
  48. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/account.py +0 -0
  49. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/accounting_engines.py +0 -0
  50. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/app.py +0 -0
  51. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/approval_process.py +0 -0
  52. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/base.py +0 -0
  53. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/business_model.py +0 -0
  54. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/consolidation.py +0 -0
  55. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/consolidation_process.py +0 -0
  56. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/datatable_mysql.py +0 -0
  57. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/deepconnector.py +0 -0
  58. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/deepfos_task.py +0 -0
  59. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/deepmodel.py +0 -0
  60. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/dimension.py +0 -0
  61. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/financial_model.py +0 -0
  62. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/journal_model.py +0 -0
  63. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/journal_template.py +0 -0
  64. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/memory_financial_model.py +0 -0
  65. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/platform.py +0 -0
  66. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/python.py +0 -0
  67. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/reconciliation_engine.py +0 -0
  68. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/reconciliation_report.py +0 -0
  69. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/role_strategy.py +0 -0
  70. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/smartlist.py +0 -0
  71. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/space.py +0 -0
  72. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/system.py +0 -0
  73. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/variable.py +0 -0
  74. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/models/workflow.py +0 -0
  75. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/platform.py +0 -0
  76. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/python.py +0 -0
  77. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/reconciliation_engine.py +0 -0
  78. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/reconciliation_report.py +0 -0
  79. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/role_strategy.py +0 -0
  80. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/smartlist.py +0 -0
  81. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/space.py +0 -0
  82. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/system.py +0 -0
  83. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/variable.py +0 -0
  84. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/api/workflow.py +0 -0
  85. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/boost/__init__.py +0 -0
  86. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/boost/jstream.c +0 -0
  87. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/boost/jstream.pyx +0 -0
  88. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/boost/pandas.c +0 -0
  89. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/boost/pandas.pyx +0 -0
  90. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/boost/py_jstream.py +0 -0
  91. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/boost/py_pandas.py +0 -0
  92. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/cache.py +0 -0
  93. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/config.py +0 -0
  94. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/__init__.py +0 -0
  95. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/cube/__init__.py +0 -0
  96. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/cube/_base.py +0 -0
  97. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/cube/constants.py +0 -0
  98. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/cube/cube.py +0 -0
  99. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/cube/formula.py +0 -0
  100. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/cube/syscube.py +0 -0
  101. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/cube/typing.py +0 -0
  102. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/cube/utils.py +0 -0
  103. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/dimension/__init__.py +0 -0
  104. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/dimension/_base.py +0 -0
  105. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/dimension/dimcreator.py +0 -0
  106. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/dimension/dimension.py +0 -0
  107. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/dimension/dimexpr.py +0 -0
  108. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/dimension/dimmember.py +0 -0
  109. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/dimension/eledimension.py +0 -0
  110. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/dimension/filters.py +0 -0
  111. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/dimension/sysdimension.py +0 -0
  112. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/logictable/__init__.py +0 -0
  113. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/logictable/_cache.py +0 -0
  114. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/logictable/_operator.py +0 -0
  115. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/logictable/nodemixin.py +0 -0
  116. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/logictable/sqlcondition.py +0 -0
  117. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/core/logictable/tablemodel.py +0 -0
  118. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/__init__.py +0 -0
  119. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/cipher.py +0 -0
  120. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/clickhouse.py +0 -0
  121. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/connector.py +0 -0
  122. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/daclickhouse.py +0 -0
  123. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/dameng.py +0 -0
  124. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/damysql.py +0 -0
  125. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/dbkits.py +0 -0
  126. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/deepengine.py +0 -0
  127. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/deepmodel.py +0 -0
  128. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/deepmodel_kingbase.py +0 -0
  129. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/gauss.py +0 -0
  130. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/kingbase.py +0 -0
  131. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/mysql.py +0 -0
  132. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/oracle.py +0 -0
  133. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/postgresql.py +0 -0
  134. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/sqlserver.py +0 -0
  135. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/db/utils.py +0 -0
  136. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/__init__.py +0 -0
  137. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/accounting.py +0 -0
  138. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/apvlprocess.py +0 -0
  139. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/base.py +0 -0
  140. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/bizmodel.py +0 -0
  141. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/datatable.py +0 -0
  142. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/deepconnector.py +0 -0
  143. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/dimension.py +0 -0
  144. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/fact_table.py +0 -0
  145. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/finmodel.py +0 -0
  146. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/journal.py +0 -0
  147. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/journal_template.py +0 -0
  148. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/pyscript.py +0 -0
  149. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/reconciliation.py +0 -0
  150. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/rolestrategy.py +0 -0
  151. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/smartlist.py +0 -0
  152. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/variable.py +0 -0
  153. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/element/workflow.py +0 -0
  154. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/exceptions/__init__.py +0 -0
  155. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/exceptions/hook.py +0 -0
  156. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lazy.py +0 -0
  157. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/__init__.py +0 -0
  158. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/_javaobj.py +0 -0
  159. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/asynchronous.py +0 -0
  160. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/concurrency.py +0 -0
  161. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/constant.py +0 -0
  162. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/decorator.py +0 -0
  163. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/deepchart.py +0 -0
  164. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/deepux.py +0 -0
  165. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/discovery.py +0 -0
  166. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/edb_lexer.py +0 -0
  167. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/eureka.py +0 -0
  168. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/filterparser.py +0 -0
  169. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/httpcli.py +0 -0
  170. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/jsonstreamer.py +0 -0
  171. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/msg.py +0 -0
  172. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/nacos.py +0 -0
  173. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/patch.py +0 -0
  174. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/redis.py +0 -0
  175. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/stopwatch.py +0 -0
  176. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/subtask.py +0 -0
  177. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/lib/sysutils.py +0 -0
  178. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/local.py +0 -0
  179. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos/translation.py +0 -0
  180. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos.egg-info/SOURCES.txt +0 -0
  181. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos.egg-info/dependency_links.txt +0 -0
  182. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos.egg-info/not-zip-safe +0 -0
  183. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos.egg-info/requires.txt +0 -0
  184. {deepfos-1.1.49 → deepfos-1.1.51}/deepfos.egg-info/top_level.txt +0 -0
  185. {deepfos-1.1.49 → deepfos-1.1.51}/requirements.txt +0 -0
  186. {deepfos-1.1.49 → deepfos-1.1.51}/setup.cfg +0 -0
  187. {deepfos-1.1.49 → deepfos-1.1.51}/setup.py +0 -0
  188. {deepfos-1.1.49 → deepfos-1.1.51}/versioneer.py +0 -0
@@ -1,3 +1,15 @@
1
+ ## [1.1.51] - 2024-12-20
2
+
3
+ ### 变更
4
+
5
+ * DeepModel query_df修正返回空dataframe时frame_desc未处理的问题
6
+
7
+ ## [1.1.50] - 2024-12-19
8
+
9
+ ### 变更
10
+
11
+ * DeepModel query_df修正不提供shape时会返回空dataframe的问题
12
+
1
13
  ## [1.1.49] - 2024-11-21
2
14
 
3
15
  ### 变更
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deepfos
3
- Version: 1.1.49
3
+ Version: 1.1.51
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-11-26T02:28:34+0000",
11
+ "date": "2024-12-20T04:42:08+0000",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "e764c23720721ec089056e2e10f985fdeb9c949c",
15
- "version": "1.1.49"
14
+ "full-revisionid": "2664c348c5ff65b57204c2f8fe508f37ae6d66c3",
15
+ "version": "1.1.51"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -20,7 +20,7 @@ from loguru import logger
20
20
 
21
21
  from deepfos.cache import Manager, AppSeperatedLRUCache
22
22
  from deepfos.lib.httpcli import AioHttpCli
23
- from deepfos.lib.utils import concat_url, retry, to_version_tuple, repr_version
23
+ from deepfos.lib.utils import concat_url, retry, to_version_tuple, repr_version, trim_text
24
24
  from deepfos.lib.asynchronous import evloop
25
25
  from deepfos.lib.discovery import ServiceDiscovery
26
26
  from deepfos.lib.constant import UNSET, RE_SYS_SERVER_PARSER
@@ -453,7 +453,7 @@ class Route:
453
453
  "Detail: {text}.",
454
454
  url=lambda: req.url,
455
455
  code=lambda: status_code,
456
- text=lambda: text,
456
+ text=lambda: trim_text(text, OPTION.general.response_display_length_on_error),
457
457
  )
458
458
  flag, obj, err = False, None, f"[code: {status_code}] ErrMsg from server: {text}"
459
459
 
@@ -474,7 +474,7 @@ class Route:
474
474
  "Call API: {url} failed. "
475
475
  "Bad response because status is False. Detail: {text}.",
476
476
  url=lambda: req.url,
477
- text=lambda: text,
477
+ text=lambda: trim_text(text, OPTION.general.response_display_length_on_error),
478
478
  )
479
479
  flag, obj, err = False, resp.get('data'), resp.get('message', text)
480
480
  err_code = resp.get('code')
@@ -19,9 +19,8 @@ __all__ = ['create_async_client']
19
19
  def collect_output_frame(ele_desc: describe.AnyType):
20
20
  if isinstance(ele_desc, describe.ObjectType):
21
21
  return {
22
- field: collect_output_frame(element.type)
22
+ (field, element.is_implicit == 0): collect_output_frame(element.type)
23
23
  for field, element in ele_desc.elements.items()
24
- if element.is_implicit == 0
25
24
  }
26
25
  if isinstance(ele_desc, describe.ArrayType):
27
26
  return collect_output_frame(ele_desc.element_type)
@@ -108,7 +107,7 @@ class _AsyncEdgeDBConnection(AsyncIOConnection):
108
107
  )
109
108
  ))
110
109
  else:
111
- frame_desc = {}
110
+ frame_desc = None
112
111
  return frame_desc, result
113
112
  except errors.EdgeDBError as e:
114
113
  if query_context.retry_options is None:
@@ -646,7 +646,7 @@ def collect_query_result_structure(
646
646
  def collect_frame_desc_structure(desc: Dict[str, str]):
647
647
  fields = [
648
648
  PtrInfo(
649
- name=name,
649
+ name=name if isinstance(name, str) else name[0],
650
650
  target=NamedField(
651
651
  name=tname
652
652
  if isinstance(tname, str) else NOT_SCALAR
@@ -985,7 +985,7 @@ class AsyncDeepModel(ElementBase[DeepModelAPI]):
985
985
  frame_desc, data = await self.client.query(ql, **kwargs)
986
986
 
987
987
  data = pd.DataFrame(data=serutils.serialize(
988
- data, ctx=serutils.Context(frame_desc=frame_desc)
988
+ data, ctx=serutils.Context(frame_desc=frame_desc, query_df=True)
989
989
  ))
990
990
  # Not records for dict-like
991
991
  if not isinstance(frame_desc, dict):
@@ -15,6 +15,7 @@ from edgedb.datatypes import datatypes
15
15
  @dataclass(frozen=True)
16
16
  class Context:
17
17
  frame_desc: Any = None
18
+ query_df: bool = False
18
19
 
19
20
 
20
21
  @functools.singledispatch
@@ -124,18 +125,30 @@ def _object(o: edgedb.Object, ctx: Context = Context()):
124
125
  ret = {}
125
126
 
126
127
  if ctx.frame_desc is None:
127
- for attr in ignore_implicited_fields(o):
128
+ if ctx.query_df:
129
+ attrs = dir(o)
130
+ else:
131
+ attrs = ignore_implicited_fields(o)
132
+ for attr in attrs:
128
133
  try:
129
134
  ret[attr] = serialize(o[attr])
130
135
  except (KeyError, TypeError):
131
136
  ret[attr] = serialize(getattr(o, attr))
132
137
  return ret
133
138
 
134
- for attr in (desc := ctx.frame_desc):
139
+ ensure_one_field = ctx.query_df and len(ctx.frame_desc) == 1
140
+ for key, value in dict(ctx.frame_desc).items():
141
+ if isinstance(key, tuple):
142
+ # key: (field_name, not_implicit)
143
+ maybe_drop = ctx.frame_desc.pop(key)
144
+ if ensure_one_field or key[1]:
145
+ ctx.frame_desc[key[0]] = maybe_drop
146
+
147
+ for attr in ctx.frame_desc:
135
148
  try:
136
- ret[attr] = serialize(o[attr], Context(frame_desc=desc[attr]))
149
+ ret[attr] = serialize(o[attr], Context(frame_desc=ctx.frame_desc[attr]))
137
150
  except (KeyError, TypeError):
138
- ret[attr] = serialize(getattr(o, attr), Context(frame_desc=desc[attr]))
151
+ ret[attr] = serialize(getattr(o, attr), Context(frame_desc=ctx.frame_desc[attr]))
139
152
 
140
153
  return ret
141
154
 
@@ -993,3 +993,11 @@ class AliasGenerator(SimpleCounter):
993
993
  def get(self, hint: str = '') -> str:
994
994
  idx = self.nextval(hint)
995
995
  return f'{hint}{idx}'
996
+
997
+
998
+ def trim_text(content: str, limit: Union[int, None], appendor: str = '...') -> str:
999
+ limit = limit or 0
1000
+ if 0 < limit < len(content):
1001
+ return f"{content[:limit]} {appendor}"
1002
+ else:
1003
+ return content
@@ -425,6 +425,7 @@ class _General(_Category):
425
425
  parallel_mode = _Option(False, val_type=bool)
426
426
  socket_name = _Option(None, val_type=str)
427
427
  preserve_concurrency = _Option(1, val_type=int)
428
+ response_display_length_on_error = _Option(20000, val_type=int)
428
429
 
429
430
  def __get__(self, instance, owner) -> '_General':
430
431
  """defined to help ide"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deepfos
3
- Version: 1.1.49
3
+ Version: 1.1.51
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