deepfos 1.1.37__tar.gz → 1.1.39__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.37 → deepfos-1.1.39}/CHANGELOG.md +20 -0
  2. {deepfos-1.1.37 → deepfos-1.1.39}/PKG-INFO +17 -1
  3. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/_version.py +3 -3
  4. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/account.py +12 -1
  5. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/deepmodel.py +32 -0
  6. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/account.py +45 -2
  7. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/deepmodel.py +39 -1
  8. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/dimension.py +1 -1
  9. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/sysutils.py +38 -2
  10. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos.egg-info/PKG-INFO +17 -1
  11. {deepfos-1.1.37 → deepfos-1.1.39}/.gitattributes +0 -0
  12. {deepfos-1.1.37 → deepfos-1.1.39}/.gitee/ISSUE_GUIDELINES.md +0 -0
  13. {deepfos-1.1.37 → deepfos-1.1.39}/.gitee/ISSUE_TEMPLATE.md +0 -0
  14. {deepfos-1.1.37 → deepfos-1.1.39}/.gitignore +0 -0
  15. {deepfos-1.1.37 → deepfos-1.1.39}/MANIFEST.in +0 -0
  16. {deepfos-1.1.37 → deepfos-1.1.39}/README.md +0 -0
  17. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/__init__.py +0 -0
  18. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/algo/__init__.py +0 -0
  19. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/algo/graph.py +0 -0
  20. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_1/__init__.py +0 -0
  21. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_1/business_model.py +0 -0
  22. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_1/dimension.py +0 -0
  23. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_1/models/__init__.py +0 -0
  24. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_1/models/business_model.py +0 -0
  25. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_1/models/dimension.py +0 -0
  26. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_2/__init__.py +0 -0
  27. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_2/dimension.py +0 -0
  28. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_2/models/__init__.py +0 -0
  29. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_2/models/dimension.py +0 -0
  30. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/__init__.py +0 -0
  31. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/accounting_engines.py +0 -0
  32. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/app.py +0 -0
  33. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/approval_process.py +0 -0
  34. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/base.py +0 -0
  35. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/business_model.py +0 -0
  36. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/consolidation.py +0 -0
  37. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/consolidation_process.py +0 -0
  38. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/datatable.py +0 -0
  39. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/deepconnector.py +0 -0
  40. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/deepfos_task.py +0 -0
  41. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/dimension.py +0 -0
  42. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/financial_model.py +0 -0
  43. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/journal_model.py +0 -0
  44. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/journal_template.py +0 -0
  45. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/memory_financial_model.py +0 -0
  46. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/__init__.py +0 -0
  47. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/accounting_engines.py +0 -0
  48. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/app.py +0 -0
  49. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/approval_process.py +0 -0
  50. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/base.py +0 -0
  51. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/business_model.py +0 -0
  52. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/consolidation.py +0 -0
  53. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/consolidation_process.py +0 -0
  54. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/datatable_mysql.py +0 -0
  55. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/deepconnector.py +0 -0
  56. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/deepfos_task.py +0 -0
  57. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/dimension.py +0 -0
  58. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/financial_model.py +0 -0
  59. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/journal_model.py +0 -0
  60. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/journal_template.py +0 -0
  61. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/memory_financial_model.py +0 -0
  62. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/platform.py +0 -0
  63. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/python.py +0 -0
  64. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/reconciliation_engine.py +0 -0
  65. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/reconciliation_report.py +0 -0
  66. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/role_strategy.py +0 -0
  67. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/smartlist.py +0 -0
  68. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/space.py +0 -0
  69. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/system.py +0 -0
  70. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/variable.py +0 -0
  71. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/workflow.py +0 -0
  72. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/platform.py +0 -0
  73. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/python.py +0 -0
  74. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/reconciliation_engine.py +0 -0
  75. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/reconciliation_report.py +0 -0
  76. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/role_strategy.py +0 -0
  77. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/smartlist.py +0 -0
  78. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/space.py +0 -0
  79. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/system.py +0 -0
  80. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/variable.py +0 -0
  81. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/workflow.py +0 -0
  82. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/boost/__init__.py +0 -0
  83. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/boost/jstream.c +0 -0
  84. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/boost/jstream.pyx +0 -0
  85. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/boost/pandas.c +0 -0
  86. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/boost/pandas.pyx +0 -0
  87. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/boost/py_jstream.py +0 -0
  88. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/boost/py_pandas.py +0 -0
  89. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/cache.py +0 -0
  90. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/config.py +0 -0
  91. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/__init__.py +0 -0
  92. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/__init__.py +0 -0
  93. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/_base.py +0 -0
  94. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/constants.py +0 -0
  95. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/cube.py +0 -0
  96. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/formula.py +0 -0
  97. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/syscube.py +0 -0
  98. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/typing.py +0 -0
  99. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/utils.py +0 -0
  100. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/__init__.py +0 -0
  101. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/_base.py +0 -0
  102. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/dimcreator.py +0 -0
  103. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/dimension.py +0 -0
  104. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/dimexpr.py +0 -0
  105. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/dimmember.py +0 -0
  106. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/eledimension.py +0 -0
  107. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/filters.py +0 -0
  108. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/sysdimension.py +0 -0
  109. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/logictable/__init__.py +0 -0
  110. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/logictable/_cache.py +0 -0
  111. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/logictable/_operator.py +0 -0
  112. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/logictable/nodemixin.py +0 -0
  113. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/logictable/sqlcondition.py +0 -0
  114. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/logictable/tablemodel.py +0 -0
  115. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/__init__.py +0 -0
  116. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/cipher.py +0 -0
  117. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/clickhouse.py +0 -0
  118. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/connector.py +0 -0
  119. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/daclickhouse.py +0 -0
  120. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/dameng.py +0 -0
  121. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/damysql.py +0 -0
  122. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/dbkits.py +0 -0
  123. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/deepengine.py +0 -0
  124. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/deepmodel.py +0 -0
  125. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/deepmodel_kingbase.py +0 -0
  126. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/edb.py +0 -0
  127. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/gauss.py +0 -0
  128. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/kingbase.py +0 -0
  129. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/mysql.py +0 -0
  130. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/oracle.py +0 -0
  131. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/postgresql.py +0 -0
  132. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/sqlserver.py +0 -0
  133. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/utils.py +0 -0
  134. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/__init__.py +0 -0
  135. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/accounting.py +0 -0
  136. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/apvlprocess.py +0 -0
  137. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/base.py +0 -0
  138. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/bizmodel.py +1 -1
  139. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/datatable.py +1 -1
  140. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/deepconnector.py +0 -0
  141. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/deepmodel.py +0 -0
  142. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/fact_table.py +0 -0
  143. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/finmodel.py +1 -1
  144. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/journal.py +1 -1
  145. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/journal_template.py +0 -0
  146. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/pyscript.py +2 -2
  147. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/reconciliation.py +0 -0
  148. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/rolestrategy.py +0 -0
  149. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/smartlist.py +0 -0
  150. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/variable.py +1 -1
  151. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/workflow.py +0 -0
  152. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/exceptions/__init__.py +0 -0
  153. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/exceptions/hook.py +0 -0
  154. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lazy.py +0 -0
  155. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/__init__.py +0 -0
  156. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/_javaobj.py +0 -0
  157. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/asynchronous.py +0 -0
  158. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/concurrency.py +0 -0
  159. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/constant.py +0 -0
  160. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/decorator.py +0 -0
  161. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/deepchart.py +0 -0
  162. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/deepux.py +0 -0
  163. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/discovery.py +0 -0
  164. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/eureka.py +0 -0
  165. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/filterparser.py +0 -0
  166. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/httpcli.py +0 -0
  167. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/jsonstreamer.py +0 -0
  168. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/msg.py +0 -0
  169. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/nacos.py +0 -0
  170. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/patch.py +0 -0
  171. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/redis.py +0 -0
  172. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/serutils.py +0 -0
  173. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/stopwatch.py +0 -0
  174. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/subtask.py +0 -0
  175. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/utils.py +0 -0
  176. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/local.py +0 -0
  177. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/options.py +0 -0
  178. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/translation.py +0 -0
  179. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos.egg-info/SOURCES.txt +0 -0
  180. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos.egg-info/dependency_links.txt +0 -0
  181. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos.egg-info/not-zip-safe +0 -0
  182. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos.egg-info/requires.txt +0 -0
  183. {deepfos-1.1.37 → deepfos-1.1.39}/deepfos.egg-info/top_level.txt +0 -0
  184. {deepfos-1.1.37 → deepfos-1.1.39}/requirements.txt +0 -0
  185. {deepfos-1.1.37 → deepfos-1.1.39}/setup.cfg +0 -0
  186. {deepfos-1.1.37 → deepfos-1.1.39}/setup.py +0 -0
  187. {deepfos-1.1.37 → deepfos-1.1.39}/versioneer.py +0 -0
@@ -1,3 +1,23 @@
1
+ ## [1.1.39] - 2024-07-16
2
+
3
+ ### 新增
4
+
5
+ * 用户中心api封装用户组详情修改接口
6
+
7
+ ## [1.1.38] - 2024-06-21
8
+
9
+ ### 新增
10
+
11
+ * DeepModel增加获取查询语句接口
12
+
13
+ ### 变更
14
+
15
+ * 无
16
+
17
+ ### 文档
18
+
19
+ * 无
20
+
1
21
  ## [1.1.37] - 2024-06-14
2
22
 
3
23
  ### 新增
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deepfos
3
- Version: 1.1.37
3
+ Version: 1.1.39
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
@@ -12,3 +12,19 @@ Classifier: Programming Language :: Python :: 3.8
12
12
  Classifier: Programming Language :: Python :: 3.9
13
13
  Classifier: Programming Language :: Python :: 3.10
14
14
  Requires-Python: >=3.8.3
15
+ Requires-Dist: pandas==1.2.0
16
+ Requires-Dist: requests==2.25.1
17
+ Requires-Dist: pymysql==0.9.3
18
+ Requires-Dist: aiohttp==3.8.4
19
+ Requires-Dist: pydantic==1.8.2
20
+ Requires-Dist: cachetools==4.2.2
21
+ Requires-Dist: loguru==0.5.3
22
+ Requires-Dist: PyPika==0.48.8
23
+ Requires-Dist: aiomysql==0.0.22
24
+ Requires-Dist: clickhouse-driver==0.2.2
25
+ Requires-Dist: aioredis==2.0.1
26
+ Requires-Dist: redis==4.5.3
27
+ Requires-Dist: deepfos-ipc~=1.2.3
28
+ Requires-Dist: typing-extensions==4.5.0
29
+ Requires-Dist: edgedb~=1.4.0
30
+ Requires-Dist: asyncpg~=0.29.0
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2024-06-20T03:28:41+0000",
11
+ "date": "2024-07-18T05:22:46+0000",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "7f98da1b818edb559a68f03f99464a02b1af6899",
15
- "version": "1.1.37"
14
+ "full-revisionid": "34556e8bf4fa85558117403f5410ccd173164c10",
15
+ "version": "1.1.39"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -3,7 +3,7 @@ APIs provided by system-login-api
3
3
 
4
4
  generated by api_code_gen.py
5
5
  - **filename** : ``account.py``
6
- - **json timestamp** : ``2023-03-29 13:28:56``
6
+ - **json timestamp** : ``2024-07-16 14:17:08``
7
7
  """
8
8
  from deepfos.api.base import RootAPI, ChildAPI, get, post
9
9
  from .models.account import *
@@ -68,6 +68,17 @@ class ApiUserGroup(ChildAPI):
68
68
  'header': {"enterprise-id": sysutils.get_enterprise_id_cached()},
69
69
  'param': {'groupId': groupId, 'spaceId': spaceId},
70
70
  }
71
+
72
+ @post('space/modify-group')
73
+ def space_modify_group(self, userGroupModifyDTO: UserGroupModifyDTO) -> Union[bool, Awaitable[bool]]:
74
+ """
75
+ 用户组详情修改
76
+
77
+ """
78
+ return {
79
+ 'body': userGroupModifyDTO,
80
+ 'header': {"enterprise-id": sysutils.get_enterprise_id_cached()},
81
+ }
71
82
 
72
83
 
73
84
  class UserImport(ChildAPI):
@@ -98,6 +98,34 @@ class DeepQLAPI(ChildAPI):
98
98
  return {'body': {'module': module, 'query': query, 'variables': variables}}
99
99
 
100
100
 
101
+ class PresentationAPI(ChildAPI):
102
+ endpoint = '/presentation-layer'
103
+
104
+ @get('ql-selector/ql-record-info')
105
+ def ql_record_info(self, qlType: str, recordCode: str) -> Union[QlRecordVO, Awaitable[QlRecordVO]]:
106
+ """获取单条记录
107
+
108
+ Args:
109
+ qlType: 查询类型 'deepql'|'analysisql'
110
+ recordCode: 查询编码
111
+
112
+ """
113
+ return {'param': {'qlType': qlType, 'recordCode': recordCode}}
114
+
115
+ @get('ql-selector/ql-records')
116
+ def ql_records(self, qlType: str = None, qlRecordType: str = None) -> Union[List[QlRecordVO], Awaitable[List[QlRecordVO]]]:
117
+ """获取所有的ql记录
118
+
119
+ Args:
120
+ qlType: 查询类型 'deepql'|'analysisql'
121
+ qlRecordType: 记录类型:个人PERSONAL /公共:PUBLIC
122
+
123
+ Returns:
124
+
125
+ """
126
+ return {'param': {'qlType': qlType, 'qlRecordType': qlRecordType}}
127
+
128
+
101
129
  class ExtraAPI(ChildAPI):
102
130
  endpoint = '/'
103
131
 
@@ -134,6 +162,10 @@ class DeepModelAPI(DynamicRootAPI, builtin=True):
134
162
  def sharding(self) -> ShardingAPI:
135
163
  return ShardingAPI(self)
136
164
 
165
+ @cached_property
166
+ def presentation(self) -> PresentationAPI:
167
+ return PresentationAPI(self)
168
+
137
169
  @cached_property
138
170
  def extra(self) -> ExtraAPI:
139
171
  return ExtraAPI(self)
@@ -3,7 +3,7 @@ Models used by /
3
3
 
4
4
  generated by model_code_gen.py
5
5
  - **filename** : ``account.py``
6
- - **json timestamp** : ``2023-03-29 13:28:56``
6
+ - **json timestamp** : ``2024-07-16 14:17:08``
7
7
  """
8
8
 
9
9
 
@@ -17,6 +17,7 @@ __all__ = [
17
17
  'ImportSendEmailDTO',
18
18
  'ImportUserErrorDTO',
19
19
  'PlatFormSecretVO',
20
+ 'RoleInfoDetailSaveDTO',
20
21
  'SpaceVO',
21
22
  'UserGroupChildrenVO',
22
23
  'UserGroupImportDTO',
@@ -26,11 +27,13 @@ __all__ = [
26
27
  'UserImportDTO',
27
28
  'UserInfoVO',
28
29
  'UserRoleImportDTO',
30
+ 'UserRoleInfoSaveDTO',
29
31
  'ImportUserListParamsUserGroupImportDTO',
30
32
  'ImportUserListParamsUserGroupRelationshipDTO',
31
33
  'ImportUserListParamsUserImportDTO',
32
34
  'ImportUserListParamsUserRoleImportDTO',
33
- 'UserGroupDetailVO'
35
+ 'UserGroupDetailVO',
36
+ 'UserGroupModifyDTO'
34
37
  ]
35
38
 
36
39
 
@@ -115,6 +118,15 @@ class PlatFormSecretVO(BaseModel):
115
118
  platformSecret: Optional[str]
116
119
 
117
120
 
121
+ class RoleInfoDetailSaveDTO(BaseModel):
122
+ #: 父级角色编码
123
+ code: str
124
+ #: 选中的角色code
125
+ roleList: List[str]
126
+ #: 父级标识
127
+ tag: str
128
+
129
+
118
130
  class SpaceVO(BaseModel):
119
131
  """Space VO
120
132
 
@@ -322,6 +334,13 @@ class UserRoleImportDTO(BaseModel):
322
334
  username: Optional[str]
323
335
 
324
336
 
337
+ class UserRoleInfoSaveDTO(BaseModel):
338
+ #: 角色列表
339
+ children: Optional[List[RoleInfoDetailSaveDTO]]
340
+ #: 平台code
341
+ platformCode: str
342
+
343
+
325
344
  class ImportUserListParamsUserGroupImportDTO(BaseModel):
326
345
  """Import User List Params DTO«User Group Import DTO»
327
346
 
@@ -437,4 +456,28 @@ class UserGroupDetailVO(BaseModel):
437
456
  userList: Optional[List[UserInfoVO]]
438
457
 
439
458
 
459
+ class UserGroupModifyDTO(BaseModel):
460
+ """User Group Modify DTO
461
+
462
+ .. admonition:: 引用接口
463
+
464
+ - **POST** ``/api/user/group/space/modify-group``
465
+ - **POST** ``/s/user/group/space/modify-group-batch``
466
+ """
467
+ #: 子组列表
468
+ childrenGroupIdList: Optional[List[str]]
469
+ #: 描述
470
+ description: Optional[Any]
471
+ #: 用户组id
472
+ groupId: str
473
+ #: 用户组名
474
+ groupName: str
475
+ #: 空间
476
+ spaceId: Optional[str]
477
+ #: 用户id
478
+ userList: Optional[List[str]]
479
+ #: 角色列表
480
+ userRoleInfoSaveDTOList: Optional[List[UserRoleInfoSaveDTO]]
481
+
482
+
440
483
 
@@ -20,7 +20,9 @@ __all__ = [
20
20
  "RuleParam",
21
21
  "SequenceInstance",
22
22
  "_IndexParam",
23
- "SimpleSpaceConnectionConfig"
23
+ "SimpleSpaceConnectionConfig",
24
+ "QlGlobalVariableVO",
25
+ "QlRecordVO"
24
26
  ]
25
27
 
26
28
 
@@ -266,5 +268,41 @@ class SimpleSpaceConnectionConfig(BaseModel):
266
268
  updateTime: Optional[str]
267
269
 
268
270
 
271
+ class QlGlobalVariableVO(BaseModel):
272
+ #: 编码
273
+ code: Optional[str]
274
+ #: 类型
275
+ type: Optional[str]
276
+ #: 值
277
+ value: Optional[str]
278
+
279
+
280
+ class QlRecordVO(BaseModel):
281
+ #: 应用标识
282
+ app: Optional[str]
283
+ #: 空间标识
284
+ space: Optional[str]
285
+ #: 用户id
286
+ userId: Optional[str]
287
+ #: 创建时间
288
+ createTime: Optional[str]
289
+ #: 应用标识
290
+ globalVariables: Optional[List[QlGlobalVariableVO]]
291
+ #: 主键标识
292
+ qlRecordId: Optional[str]
293
+ #: QL类型:deepql|graphql|analysisql
294
+ qlType: Optional[str]
295
+ #: ql编码
296
+ recordCode: Optional[str]
297
+ #: 记录内容
298
+ recordContent: Optional[str]
299
+ #: 记录名称
300
+ recordName: Optional[str]
301
+ #: 记录类型:个人PERSONAL /公共:PUBLIC
302
+ recordType: Optional[str]
303
+ #: 变量
304
+ variables: Any
305
+
306
+
269
307
  ObjectParam.update_forward_refs()
270
308
  ObjectLinkParam.update_forward_refs()
@@ -166,12 +166,12 @@ class AsyncDimension(ElementBase[DimensionAPI]):
166
166
  strict: bool = False,
167
167
  server_name: str = None,
168
168
  ):
169
- super().__init__(element_name, folder_id, path, server_name)
170
169
  self._add_memo = CIMultiDict()
171
170
  self._del_memo = CIMultiDict()
172
171
  self._upd_memo = CIMultiDict()
173
172
  self.__member_memo = None if strict else CIMultiDict()
174
173
  self._strict = strict
174
+ super().__init__(element_name, folder_id, path, server_name)
175
175
 
176
176
  @cached_property
177
177
  def _datatable_class(self) -> T_AsyncDatatableClass:
@@ -1,5 +1,5 @@
1
1
  """系统相关工具类/函数"""
2
-
2
+ import asyncio
3
3
  import base64
4
4
  import gzip
5
5
  import itertools
@@ -8,7 +8,7 @@ import time
8
8
  from datetime import datetime
9
9
  from enum import Enum
10
10
  from io import TextIOWrapper
11
- from typing import Dict, Any, Union, List, IO, TypeVar
11
+ from typing import Dict, Any, Union, List, IO, TypeVar, Optional
12
12
  import pandas as pd
13
13
  import math
14
14
  import hashlib
@@ -23,6 +23,7 @@ from deepfos.api.models.deepfos_task import (
23
23
  PeriodicTaskCreateInfo, ScheduledTaskCreateInfo
24
24
  )
25
25
  from deepfos.element.base import ElementBase
26
+ from .asynchronous import evloop
26
27
  from .utils import split_dataframe
27
28
  from deepfos.options import OPTION
28
29
  from deepfos.api.models import BaseModel
@@ -33,6 +34,7 @@ from deepfos.api.system import SystemAPI
33
34
  from deepfos.api import account as acc_api
34
35
  from deepfos.api.models import account as account_model
35
36
  from deepfos.cache import SpaceSeperatedLRUCache
37
+ from deepfos.api.models.account import UserGroupModifyDTO
36
38
 
37
39
  _VALUE_KEY = 'value'
38
40
  _DTNAME_KEY = 'dataTableName'
@@ -665,3 +667,37 @@ def resolve_account_api_extra_header():
665
667
  'timestamp': timestamp,
666
668
  'sign': calc_account_api_signature(timestamp, platform_secret, platform_code)
667
669
  }
670
+
671
+
672
+ def batch_modify_user_group(payloads: List[UserGroupModifyDTO], max_worker: int = None):
673
+ """批量调用用户中心用户组详情修改接口
674
+
675
+ Args:
676
+ payloads: 符合UserGroupModifyDTO定义的列表,将直接用作接口请求体
677
+ max_worker: 最大并发数
678
+
679
+ Returns: 与请求体顺序一致的返回结果列表
680
+
681
+ """
682
+ if max_worker is not None:
683
+ if max_worker <= 0:
684
+ raise ValueError('max_worker must be > 0 ')
685
+ else:
686
+ max_worker = len(payloads)
687
+
688
+ result: List[Optional[bool]] = [None] * len(payloads)
689
+ api = acc_api.AccountAPI(sync=False).user_group.space_modify_group
690
+
691
+ async def call_api(idx: int, p: UserGroupModifyDTO, sem: asyncio.Semaphore):
692
+ async with sem:
693
+ result[idx] = await api(p)
694
+
695
+ async def inner():
696
+ semaphore = asyncio.Semaphore(max_worker)
697
+ await asyncio.gather(*(
698
+ call_api(idx, payload, semaphore)
699
+ for idx, payload in enumerate(payloads)
700
+ ))
701
+
702
+ evloop.run(inner())
703
+ return result
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deepfos
3
- Version: 1.1.37
3
+ Version: 1.1.39
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
@@ -12,3 +12,19 @@ Classifier: Programming Language :: Python :: 3.8
12
12
  Classifier: Programming Language :: Python :: 3.9
13
13
  Classifier: Programming Language :: Python :: 3.10
14
14
  Requires-Python: >=3.8.3
15
+ Requires-Dist: pandas==1.2.0
16
+ Requires-Dist: requests==2.25.1
17
+ Requires-Dist: pymysql==0.9.3
18
+ Requires-Dist: aiohttp==3.8.4
19
+ Requires-Dist: pydantic==1.8.2
20
+ Requires-Dist: cachetools==4.2.2
21
+ Requires-Dist: loguru==0.5.3
22
+ Requires-Dist: PyPika==0.48.8
23
+ Requires-Dist: aiomysql==0.0.22
24
+ Requires-Dist: clickhouse-driver==0.2.2
25
+ Requires-Dist: aioredis==2.0.1
26
+ Requires-Dist: redis==4.5.3
27
+ Requires-Dist: deepfos-ipc~=1.2.3
28
+ Requires-Dist: typing-extensions==4.5.0
29
+ Requires-Dist: edgedb~=1.4.0
30
+ Requires-Dist: asyncpg~=0.29.0
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
@@ -171,10 +171,10 @@ class AsyncBusinessModel(ElementBase[BusinessModelAPI]):
171
171
  path: str = None,
172
172
  server_name: str = None,
173
173
  ):
174
- super().__init__(element_name, folder_id, path, server_name)
175
174
  self.__tables: Dict[str, TableNode] = {}
176
175
  self.__logic_tables = LogicTable()
177
176
  self.__dflt_ptn_id = UNSET
177
+ super().__init__(element_name, folder_id, path, server_name)
178
178
 
179
179
  @cached_property
180
180
  def default_partition_id(self) -> Optional[str]:
@@ -593,8 +593,8 @@ class AsyncDataTableMySQL(ElementBase):
593
593
  table_name: str = None,
594
594
  server_name: str = None,
595
595
  ):
596
- super().__init__(element_name, folder_id, path, server_name)
597
596
  self.__tbl_name = table_name
597
+ super().__init__(element_name, folder_id, path, server_name)
598
598
 
599
599
  def _safe_get_txn_conf(self) -> _TxnConfig:
600
600
  try:
@@ -174,10 +174,10 @@ class AsyncFinancialCube(ElementBase[FinancialModelAPI]):
174
174
  entry_object='python',
175
175
  server_name: Optional[str] = None,
176
176
  ):
177
- super().__init__(element_name, folder_id, path, server_name)
178
177
  full_name = OPTION.general.task_info.get('script_name', 'python')
179
178
  self.entry_object = entry_object.format(script_name=full_name.split('.')[-1],
180
179
  full_name=full_name)
180
+ super().__init__(element_name, folder_id, path, server_name)
181
181
 
182
182
  @future_property(on_demand=True)
183
183
  async def meta(self) -> CubeModel:
@@ -66,8 +66,8 @@ class AsyncJournalModel(ElementBase[JournalModelAPI]):
66
66
  path: str = None,
67
67
  server_name: str = None,
68
68
  ):
69
- super().__init__(element_name, folder_id, path, server_name)
70
69
  self.__tbl_name = None
70
+ super().__init__(element_name, folder_id, path, server_name)
71
71
 
72
72
  @future_property
73
73
  async def config(self) -> JournalModelConfig:
@@ -275,11 +275,11 @@ class PythonScript(ElementBase[PythonAPI]):
275
275
  task_name: str = None,
276
276
  should_log: bool = False
277
277
  ):
278
+ self.should_log = should_log
279
+ self.task_name = task_name
278
280
  super().__init__(
279
281
  element_name=element_name, folder_id=folder_id, path=path
280
282
  )
281
- self.should_log = should_log
282
- self.task_name = task_name
283
283
 
284
284
  @future_property
285
285
  async def env(self) -> Tuple[str, str, Dict]:
@@ -182,11 +182,11 @@ class AsyncVariable(ElementBase[VariableAPI]):
182
182
  path: str = None,
183
183
  server_name: str = None,
184
184
  ):
185
- super().__init__(element_name=element_name, folder_id=folder_id, path=path, server_name=server_name)
186
185
  self.__group = Group()
187
186
  self.__description = None
188
187
  self.__gv_memo = None
189
188
  self.__uv_memo = None
189
+ super().__init__(element_name=element_name, folder_id=folder_id, path=path, server_name=server_name)
190
190
 
191
191
  @property
192
192
  def _group(self) -> Group:
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