deepfos 1.1.69__tar.gz → 1.1.71__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 (191) hide show
  1. {deepfos-1.1.69 → deepfos-1.1.71}/CHANGELOG.md +15 -0
  2. {deepfos-1.1.69 → deepfos-1.1.71}/PKG-INFO +1 -1
  3. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/_version.py +3 -3
  4. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/deep_pipeline.py +1 -1
  5. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/deep_pipeline.py +14 -3
  6. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/system.py +2 -0
  7. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/deep_pipeline.py +29 -16
  8. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/msg.py +15 -3
  9. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos.egg-info/PKG-INFO +1 -1
  10. {deepfos-1.1.69 → deepfos-1.1.71}/.gitattributes +0 -0
  11. {deepfos-1.1.69 → deepfos-1.1.71}/.gitee/ISSUE_GUIDELINES.md +0 -0
  12. {deepfos-1.1.69 → deepfos-1.1.71}/.gitee/ISSUE_TEMPLATE.md +0 -0
  13. {deepfos-1.1.69 → deepfos-1.1.71}/.gitignore +0 -0
  14. {deepfos-1.1.69 → deepfos-1.1.71}/MANIFEST.in +0 -0
  15. {deepfos-1.1.69 → deepfos-1.1.71}/README.md +0 -0
  16. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/__init__.py +0 -0
  17. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/algo/__init__.py +0 -0
  18. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/algo/graph.py +0 -0
  19. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/V1_1/__init__.py +0 -0
  20. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/V1_1/business_model.py +0 -0
  21. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/V1_1/dimension.py +0 -0
  22. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/V1_1/models/__init__.py +0 -0
  23. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/V1_1/models/business_model.py +0 -0
  24. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/V1_1/models/dimension.py +0 -0
  25. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/V1_2/__init__.py +0 -0
  26. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/V1_2/dimension.py +0 -0
  27. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/V1_2/models/__init__.py +0 -0
  28. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/V1_2/models/dimension.py +0 -0
  29. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/__init__.py +0 -0
  30. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/account.py +0 -0
  31. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/accounting_engines.py +0 -0
  32. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/app.py +0 -0
  33. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/approval_process.py +0 -0
  34. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/base.py +0 -0
  35. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/business_model.py +0 -0
  36. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/consolidation.py +0 -0
  37. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/consolidation_process.py +0 -0
  38. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/datatable.py +0 -0
  39. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/deepconnector.py +0 -0
  40. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/deepfos_task.py +0 -0
  41. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/deepmodel.py +0 -0
  42. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/dimension.py +0 -0
  43. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/financial_model.py +0 -0
  44. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/journal_model.py +0 -0
  45. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/journal_template.py +0 -0
  46. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/memory_financial_model.py +0 -0
  47. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/__init__.py +0 -0
  48. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/account.py +0 -0
  49. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/accounting_engines.py +0 -0
  50. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/app.py +0 -0
  51. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/approval_process.py +0 -0
  52. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/base.py +0 -0
  53. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/business_model.py +0 -0
  54. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/consolidation.py +0 -0
  55. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/consolidation_process.py +0 -0
  56. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/datatable_mysql.py +0 -0
  57. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/deepconnector.py +0 -0
  58. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/deepfos_task.py +0 -0
  59. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/deepmodel.py +0 -0
  60. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/dimension.py +0 -0
  61. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/financial_model.py +0 -0
  62. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/journal_model.py +0 -0
  63. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/journal_template.py +0 -0
  64. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/memory_financial_model.py +0 -0
  65. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/platform.py +0 -0
  66. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/python.py +0 -0
  67. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/reconciliation_engine.py +0 -0
  68. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/reconciliation_report.py +0 -0
  69. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/role_strategy.py +0 -0
  70. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/smartlist.py +0 -0
  71. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/space.py +0 -0
  72. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/variable.py +0 -0
  73. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/models/workflow.py +0 -0
  74. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/platform.py +0 -0
  75. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/python.py +0 -0
  76. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/reconciliation_engine.py +0 -0
  77. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/reconciliation_report.py +0 -0
  78. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/role_strategy.py +0 -0
  79. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/smartlist.py +0 -0
  80. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/space.py +0 -0
  81. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/system.py +0 -0
  82. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/variable.py +0 -0
  83. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/api/workflow.py +0 -0
  84. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/boost/__init__.py +0 -0
  85. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/boost/jstream.c +0 -0
  86. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/boost/jstream.pyx +0 -0
  87. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/boost/pandas.c +0 -0
  88. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/boost/pandas.pyx +0 -0
  89. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/boost/py_jstream.py +0 -0
  90. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/boost/py_pandas.py +0 -0
  91. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/cache.py +0 -0
  92. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/config.py +0 -0
  93. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/__init__.py +0 -0
  94. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/cube/__init__.py +0 -0
  95. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/cube/_base.py +0 -0
  96. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/cube/constants.py +0 -0
  97. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/cube/cube.py +0 -0
  98. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/cube/formula.py +0 -0
  99. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/cube/syscube.py +0 -0
  100. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/cube/typing.py +0 -0
  101. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/cube/utils.py +0 -0
  102. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/dimension/__init__.py +0 -0
  103. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/dimension/_base.py +0 -0
  104. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/dimension/dimcreator.py +0 -0
  105. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/dimension/dimension.py +0 -0
  106. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/dimension/dimexpr.py +0 -0
  107. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/dimension/dimmember.py +0 -0
  108. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/dimension/eledimension.py +0 -0
  109. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/dimension/filters.py +0 -0
  110. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/dimension/sysdimension.py +0 -0
  111. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/logictable/__init__.py +0 -0
  112. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/logictable/_cache.py +0 -0
  113. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/logictable/_operator.py +0 -0
  114. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/logictable/nodemixin.py +0 -0
  115. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/logictable/sqlcondition.py +0 -0
  116. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/core/logictable/tablemodel.py +0 -0
  117. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/__init__.py +0 -0
  118. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/cipher.py +0 -0
  119. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/clickhouse.py +0 -0
  120. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/connector.py +0 -0
  121. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/daclickhouse.py +0 -0
  122. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/dameng.py +0 -0
  123. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/damysql.py +0 -0
  124. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/dbkits.py +0 -0
  125. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/deepengine.py +0 -0
  126. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/deepmodel.py +0 -0
  127. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/deepmodel_kingbase.py +0 -0
  128. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/edb.py +0 -0
  129. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/gauss.py +0 -0
  130. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/kingbase.py +0 -0
  131. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/mysql.py +0 -0
  132. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/oracle.py +0 -0
  133. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/postgresql.py +0 -0
  134. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/sqlserver.py +0 -0
  135. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/db/utils.py +0 -0
  136. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/__init__.py +0 -0
  137. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/accounting.py +0 -0
  138. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/apvlprocess.py +0 -0
  139. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/base.py +0 -0
  140. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/bizmodel.py +0 -0
  141. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/datatable.py +0 -0
  142. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/deepconnector.py +0 -0
  143. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/deepmodel.py +0 -0
  144. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/dimension.py +0 -0
  145. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/fact_table.py +0 -0
  146. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/finmodel.py +0 -0
  147. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/journal.py +0 -0
  148. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/journal_template.py +0 -0
  149. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/pyscript.py +0 -0
  150. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/reconciliation.py +0 -0
  151. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/rolestrategy.py +0 -0
  152. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/smartlist.py +0 -0
  153. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/variable.py +0 -0
  154. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/element/workflow.py +0 -0
  155. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/exceptions/__init__.py +0 -0
  156. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/exceptions/hook.py +0 -0
  157. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lazy.py +0 -0
  158. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/__init__.py +0 -0
  159. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/_javaobj.py +0 -0
  160. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/asynchronous.py +0 -0
  161. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/concurrency.py +0 -0
  162. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/constant.py +0 -0
  163. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/decorator.py +0 -0
  164. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/deepchart.py +0 -0
  165. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/deepux.py +0 -0
  166. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/discovery.py +0 -0
  167. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/edb_lexer.py +0 -0
  168. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/eureka.py +0 -0
  169. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/filterparser.py +0 -0
  170. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/httpcli.py +0 -0
  171. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/jsonstreamer.py +0 -0
  172. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/nacos.py +0 -0
  173. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/patch.py +0 -0
  174. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/redis.py +0 -0
  175. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/serutils.py +0 -0
  176. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/stopwatch.py +0 -0
  177. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/subtask.py +0 -0
  178. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/sysutils.py +0 -0
  179. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/lib/utils.py +0 -0
  180. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/local.py +0 -0
  181. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/options.py +0 -0
  182. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos/translation.py +0 -0
  183. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos.egg-info/SOURCES.txt +0 -0
  184. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos.egg-info/dependency_links.txt +0 -0
  185. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos.egg-info/not-zip-safe +0 -0
  186. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos.egg-info/requires.txt +0 -0
  187. {deepfos-1.1.69 → deepfos-1.1.71}/deepfos.egg-info/top_level.txt +0 -0
  188. {deepfos-1.1.69 → deepfos-1.1.71}/requirements.txt +0 -0
  189. {deepfos-1.1.69 → deepfos-1.1.71}/setup.cfg +0 -0
  190. {deepfos-1.1.69 → deepfos-1.1.71}/setup.py +0 -0
  191. {deepfos-1.1.69 → deepfos-1.1.71}/versioneer.py +0 -0
@@ -1,3 +1,18 @@
1
+ ## [1.1.71] - 2025-08-21
2
+
3
+ ### 更新
4
+
5
+ * 根据数据流3.0组件API调整更新模型定义
6
+ * 数据流3.0异步启动默认为带启停启动,同步固定为不带启停启动
7
+
8
+
9
+ ## [1.1.70] - 2025-08-19
10
+
11
+ ### 新增
12
+
13
+ * 消息中心推送增加抄送用户、用户组参数
14
+
15
+
1
16
  ## [1.1.69] - 2025-08-12
2
17
 
3
18
  ### 新增
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deepfos
3
- Version: 1.1.69
3
+ Version: 1.1.71
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": "2025-08-13T05:47:18+0000",
11
+ "date": "2025-08-20T06:19:57+0000",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "8ee03bc48deaa7e1f492dac1690e50b4097da6ea",
15
- "version": "1.1.69"
14
+ "full-revisionid": "e2b7caff4237e4df0c64899b4d6d948f41512291",
15
+ "version": "1.1.71"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -12,7 +12,7 @@ class RunAPI(ChildAPI):
12
12
  endpoint = '/'
13
13
 
14
14
  @post('run')
15
- def run_async(self, run_info: RunInfo) -> Union[str, Awaitable[str]]:
15
+ def run_async(self, run_info: Union[RunInfo, RunInfoWithParam]) -> Union[str, Awaitable[str]]:
16
16
  """
17
17
  异步执行数据流
18
18
  异步执行数据流,返回任务id
@@ -3,11 +3,24 @@ from typing import Any, Optional
3
3
  from .base import BaseModel
4
4
 
5
5
  __all__ = [
6
- "RunInfo", "FlowInfo",
6
+ "RunInfo", "FlowInfo", "RunInfoWithParam",
7
7
  ]
8
8
 
9
9
 
10
10
  class RunInfo(BaseModel):
11
+ #: 元素名/编码
12
+ elementName: str
13
+ #: 元素类型
14
+ elementType: str = "DPL"
15
+ #: 文件路径
16
+ path: Optional[str] = None
17
+ #: 文件夹id
18
+ folderId: Optional[str] = None
19
+ # 是否在同一个进程执行
20
+ inProcess: bool = False
21
+
22
+
23
+ class RunInfoWithParam(BaseModel):
11
24
  #: 元素名/编码
12
25
  elementName: str
13
26
  #: 元素类型
@@ -30,8 +43,6 @@ class Revision(BaseModel):
30
43
 
31
44
 
32
45
  class Configure(BaseModel):
33
- #: 超时时间(秒)
34
- timeout: int
35
46
  #: 公共脚本
36
47
  prelude: Optional[str] = None
37
48
  #: 实例名称
@@ -954,6 +954,8 @@ class MsgPushHasAttachmentRequestVO(BaseModel):
954
954
  params: Optional[List[MessageTemplateParamVO]] = None
955
955
  #: 接收对象(用户/用户组)
956
956
  receiver: List[MessageReceiverVO]
957
+ #: 抄送对象(用户/用户组)
958
+ ccEmail: Optional[List[MessageReceiverVO]] = None
957
959
  #: 发送人
958
960
  sender: Optional[str] = None
959
961
  #: 模板编码
@@ -1,17 +1,19 @@
1
1
  import asyncio
2
2
  import time
3
+ import warnings
3
4
  from math import ceil
4
5
  from typing import Any, TYPE_CHECKING, List
5
6
 
6
7
  from deepfos import OPTION
7
8
  from deepfos.api.deep_pipeline import DeepPipelineAPI
8
- from deepfos.api.models.deep_pipeline import RunInfo, FlowInfo
9
+ from deepfos.api.models.deep_pipeline import RunInfo, FlowInfo, RunInfoWithParam
9
10
  from deepfos.element.base import ElementBase, SyncMeta
10
11
  from deepfos.exceptions import (
11
12
  APIResponseError, RunIdInvalid, RunTerminated,
12
13
  ReleaseFlowTimeout, RunFailedError, ReleaseFlowNotExists,
13
14
  )
14
15
  from deepfos.lib.asynchronous import future_property
16
+ from deepfos.lib.constant import UNSET
15
17
  from deepfos.lib.decorator import cached_property
16
18
 
17
19
  errcode_map = {
@@ -47,7 +49,7 @@ class AsyncDeepPipeline(ElementBase[DeepPipelineAPI]):
47
49
 
48
50
  async def run(
49
51
  self,
50
- parameter: Any = None,
52
+ parameter: Any = UNSET,
51
53
  timeout: int = None,
52
54
  in_process: bool = True,
53
55
  ) -> Any:
@@ -57,25 +59,29 @@ class AsyncDeepPipeline(ElementBase[DeepPipelineAPI]):
57
59
  Args:
58
60
  parameter: 执行参数
59
61
  timeout: 超时时间(秒)
60
- in_process: 是否在同一个进程执行
62
+ in_process: 是否在同一个进程执行(仅作新旧兼容,实际只会在同一个进程执行,即不带启停启动)
61
63
 
62
64
  Returns:
63
65
  执行结果
64
66
  """
65
- run_id = await self.run_async(parameter, in_process)
67
+ if not in_process:
68
+ warnings.warn(
69
+ '同步启动固定为同一个进程执行(不带启停启动),in_process参数为False不会影响该行为'
70
+ )
71
+ run_id = await self.run_async(parameter, True)
66
72
  return await self.result(run_id, timeout)
67
73
 
68
74
  async def run_async(
69
75
  self,
70
- parameter: Any = None,
71
- in_process: bool = True,
76
+ parameter: Any = UNSET,
77
+ in_process: bool = False,
72
78
  ) -> str:
73
79
  """
74
80
  异步启动数据流
75
81
 
76
82
  Args:
77
83
  parameter: 执行参数
78
- in_process: 是否在同一个进程执行
84
+ in_process: 是否在同一个进程执行,默认False,即带启停启动
79
85
 
80
86
  Returns:
81
87
  执行ID
@@ -83,14 +89,21 @@ class AsyncDeepPipeline(ElementBase[DeepPipelineAPI]):
83
89
  if not self.has_approved_release:
84
90
  raise ReleaseFlowNotExists('暂无启用中状态的数据流版本')
85
91
 
86
- return await self.async_api.run.run_async(
87
- RunInfo(
92
+ if parameter is UNSET:
93
+ payload = RunInfo(
94
+ elementName=self.element_name,
95
+ folderId=self.element_info.folderId,
96
+ inProcess=in_process
97
+ )
98
+ else:
99
+ payload = RunInfoWithParam(
88
100
  elementName=self.element_name,
89
101
  parameter=parameter,
90
102
  folderId=self.element_info.folderId,
91
103
  inProcess=in_process
92
104
  )
93
- )
105
+
106
+ return await self.async_api.run.run_async(payload)
94
107
 
95
108
  async def result(self, run_id: str, timeout: int = None) -> Any:
96
109
  """
@@ -134,14 +147,14 @@ class AsyncDeepPipeline(ElementBase[DeepPipelineAPI]):
134
147
  async def run_batch(
135
148
  self,
136
149
  parameters: List[Any],
137
- in_process: bool = True,
150
+ in_process: bool = False,
138
151
  ) -> List[str]:
139
152
  """
140
153
  批量异步启动数据流
141
154
 
142
155
  Args:
143
156
  parameters: 执行参数列表
144
- in_process: 是否在同一个进程执行
157
+ in_process: 是否在同一个进程执行,默认False,即带启停启动
145
158
 
146
159
  Returns:
147
160
  执行ID列表
@@ -162,7 +175,7 @@ class DeepPipeline(AsyncDeepPipeline, metaclass=SyncMeta):
162
175
  if TYPE_CHECKING: # pragma: no cover
163
176
  def run(
164
177
  self,
165
- parameter: Any = None,
178
+ parameter: Any = UNSET,
166
179
  timeout: int = None,
167
180
  in_process: bool = True,
168
181
  ) -> Any:
@@ -170,8 +183,8 @@ class DeepPipeline(AsyncDeepPipeline, metaclass=SyncMeta):
170
183
 
171
184
  def run_async(
172
185
  self,
173
- parameter: Any = None,
174
- in_process: bool = True,
186
+ parameter: Any = UNSET,
187
+ in_process: bool = False,
175
188
  ) -> str:
176
189
  ...
177
190
 
@@ -181,6 +194,6 @@ class DeepPipeline(AsyncDeepPipeline, metaclass=SyncMeta):
181
194
  def run_batch(
182
195
  self,
183
196
  parameters: List[Any],
184
- in_process: bool = True,
197
+ in_process: bool = False,
185
198
  ):
186
199
  ...
@@ -110,7 +110,7 @@ class AsyncMsgCenter:
110
110
  title_param: Dict[str, str] = None,
111
111
  content_param: Dict[str, str] = None,
112
112
  attachments: Dict[str, Union[str, bytes]] = None,
113
- cc_email: List[str] = None,
113
+ cc_email: List = None,
114
114
  api_idx: Literal[0, 1] = 0,
115
115
  success_rule: Literal['partial', 'all'] = 'all'
116
116
  ) -> List:
@@ -158,7 +158,9 @@ class AsyncMsgCenter:
158
158
  title_param: Dict[str, str] = None,
159
159
  content_param: Dict[str, str] = None,
160
160
  attachments: Dict[str, Union[str, bytes]] = None,
161
- success_rule: Literal['partial', 'all'] = 'all'
161
+ success_rule: Literal['partial', 'all'] = 'all',
162
+ cc_users: List[str] = None,
163
+ cc_groups: List[str] = None,
162
164
  ) -> List:
163
165
  """推送指定消息模版的消息
164
166
 
@@ -171,6 +173,8 @@ class AsyncMsgCenter:
171
173
  content_param: 可选,内容变量
172
174
  attachments: 可选,站内消息或邮箱的消息附件,以 文件名: 文件(字符串/bytes) 的字典形式提供
173
175
  success_rule: 可选,发送成功规则,'partial' 表示部分成功即可,'all' 表示所有收件人都必须成功
176
+ cc_users: 可选,抄送人userid列表
177
+ cc_groups: 可选,抄送人groupid列表
174
178
 
175
179
  .. admonition:: 示例
176
180
 
@@ -217,6 +221,11 @@ class AsyncMsgCenter:
217
221
  receivers.extend([{'id': r, 'type': 'USER'} for r in receiver_users])
218
222
  if receiver_groups:
219
223
  receivers.extend([{'id': r, 'type': 'GROUP'} for r in receiver_groups])
224
+ cc_email = []
225
+ if cc_users:
226
+ cc_email.extend([{'id': r, 'type': 'USER'} for r in cc_users])
227
+ if cc_groups:
228
+ cc_email.extend([{'id': r, 'type': 'GROUP'} for r in cc_groups])
220
229
 
221
230
  if not receivers:
222
231
  raise ValueError('需提供receiver_users和receiver_groups中的至少一项')
@@ -225,6 +234,7 @@ class AsyncMsgCenter:
225
234
  template, sender=sender, receivers=receivers,
226
235
  title_param=title_param, content_param=content_param,
227
236
  attachments=attachments, success_rule=success_rule,
237
+ cc_email=cc_email
228
238
  )
229
239
 
230
240
  async def send_mail(
@@ -379,7 +389,9 @@ class MsgCenter(AsyncMsgCenter, metaclass=SyncMeta):
379
389
  title_param: Dict[str, str] = None,
380
390
  content_param: Dict[str, str] = None,
381
391
  attachments: Dict[str, Union[str, bytes]] = None,
382
- success_rule: Literal['partial', 'all'] = 'all'
392
+ success_rule: Literal['partial', 'all'] = 'all',
393
+ cc_users: List[str] = None,
394
+ cc_groups: List[str] = None,
383
395
  ) -> List:
384
396
  ...
385
397
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deepfos
3
- Version: 1.1.69
3
+ Version: 1.1.71
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