deepfos 1.1.3__tar.gz → 1.1.5__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 (168) hide show
  1. {deepfos-1.1.3 → deepfos-1.1.5}/PKG-INFO +1 -1
  2. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/V1_2/dimension.py +20 -3
  3. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/V1_2/models/dimension.py +2 -1
  4. deepfos-1.1.5/deepfos/core/__init__.py +27 -0
  5. deepfos-1.1.5/deepfos/db/__init__.py +32 -0
  6. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/connector.py +0 -9
  7. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/dbkits.py +3 -3
  8. deepfos-1.1.5/deepfos/element/__init__.py +77 -0
  9. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/datatable.py +2 -3
  10. deepfos-1.1.3/deepfos/lazy_import.py → deepfos-1.1.5/deepfos/lazy.py +20 -3
  11. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos.egg-info/PKG-INFO +1 -1
  12. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos.egg-info/SOURCES.txt +1 -1
  13. {deepfos-1.1.3 → deepfos-1.1.5}/setup.py +1 -1
  14. deepfos-1.1.5/tests/__init__.py +4 -0
  15. deepfos-1.1.3/deepfos/core/__init__.py +0 -27
  16. deepfos-1.1.3/deepfos/db/__init__.py +0 -50
  17. deepfos-1.1.3/deepfos/element/__init__.py +0 -96
  18. deepfos-1.1.3/tests/__init__.py +0 -0
  19. {deepfos-1.1.3 → deepfos-1.1.5}/MANIFEST.in +0 -0
  20. {deepfos-1.1.3 → deepfos-1.1.5}/README.md +0 -0
  21. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/__init__.py +0 -0
  22. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/_version.py +0 -0
  23. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/algo/__init__.py +0 -0
  24. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/algo/graph.py +0 -0
  25. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/V1_1/__init__.py +0 -0
  26. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/V1_1/business_model.py +0 -0
  27. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/V1_1/dimension.py +0 -0
  28. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/V1_1/models/__init__.py +0 -0
  29. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/V1_1/models/business_model.py +0 -0
  30. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/V1_1/models/dimension.py +0 -0
  31. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/V1_2/__init__.py +0 -0
  32. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/V1_2/models/__init__.py +0 -0
  33. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/__init__.py +0 -0
  34. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/account.py +0 -0
  35. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/accounting_engines.py +0 -0
  36. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/app.py +0 -0
  37. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/approval_process.py +0 -0
  38. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/base.py +0 -0
  39. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/business_model.py +0 -0
  40. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/consolidation.py +0 -0
  41. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/datatable.py +0 -0
  42. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/deepfos_task.py +0 -0
  43. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/dimension.py +0 -0
  44. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/financial_model.py +0 -0
  45. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/journal_template.py +0 -0
  46. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/memory_financial_model.py +0 -0
  47. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/__init__.py +0 -0
  48. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/account.py +0 -0
  49. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/accounting_engines.py +0 -0
  50. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/app.py +0 -0
  51. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/approval_process.py +0 -0
  52. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/base.py +0 -0
  53. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/business_model.py +0 -0
  54. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/consolidation.py +0 -0
  55. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/datatable_mysql.py +0 -0
  56. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/deepfos_task.py +0 -0
  57. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/dimension.py +0 -0
  58. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/financial_model.py +0 -0
  59. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/journal_template.py +0 -0
  60. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/memory_financial_model.py +0 -0
  61. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/platform.py +0 -0
  62. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/python.py +0 -0
  63. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/reconciliation_engine.py +0 -0
  64. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/reconciliation_report.py +0 -0
  65. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/role_strategy.py +0 -0
  66. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/smartlist.py +0 -0
  67. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/space.py +0 -0
  68. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/system.py +0 -0
  69. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/variable.py +0 -0
  70. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/models/workflow.py +0 -0
  71. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/platform.py +0 -0
  72. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/python.py +0 -0
  73. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/reconciliation_engine.py +0 -0
  74. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/reconciliation_report.py +0 -0
  75. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/role_strategy.py +0 -0
  76. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/smartlist.py +0 -0
  77. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/space.py +0 -0
  78. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/system.py +0 -0
  79. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/variable.py +0 -0
  80. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/api/workflow.py +0 -0
  81. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/boost/__init__.py +0 -0
  82. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/boost/jstream.c +0 -0
  83. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/boost/jstream.pyx +0 -0
  84. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/boost/pandas.c +0 -0
  85. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/boost/pandas.pyx +0 -0
  86. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/boost/py_jstream.py +0 -0
  87. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/boost/py_pandas.py +0 -0
  88. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/cache.py +0 -0
  89. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/config.py +0 -0
  90. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/cube/__init__.py +0 -0
  91. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/cube/_base.py +0 -0
  92. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/cube/constants.py +0 -0
  93. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/cube/cube.py +0 -0
  94. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/cube/formula.py +0 -0
  95. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/cube/syscube.py +0 -0
  96. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/cube/typing.py +0 -0
  97. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/cube/utils.py +0 -0
  98. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/dimension/__init__.py +0 -0
  99. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/dimension/_base.py +0 -0
  100. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/dimension/dimcreator.py +0 -0
  101. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/dimension/dimension.py +0 -0
  102. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/dimension/dimexpr.py +0 -0
  103. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/dimension/dimmember.py +0 -0
  104. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/dimension/eledimension.py +0 -0
  105. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/dimension/filters.py +0 -0
  106. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/dimension/sysdimension.py +0 -0
  107. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/logictable/__init__.py +0 -0
  108. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/logictable/_cache.py +0 -0
  109. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/logictable/_operator.py +0 -0
  110. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/logictable/nodemixin.py +0 -0
  111. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/logictable/sqlcondition.py +0 -0
  112. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/core/logictable/tablemodel.py +0 -0
  113. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/cipher.py +0 -0
  114. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/clickhouse.py +0 -0
  115. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/daclickhouse.py +0 -0
  116. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/dameng.py +0 -0
  117. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/damysql.py +0 -0
  118. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/deepengine.py +0 -0
  119. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/gauss.py +0 -0
  120. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/kingbase.py +0 -0
  121. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/mysql.py +0 -0
  122. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/oracle.py +0 -0
  123. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/postgresql.py +0 -0
  124. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/sqlserver.py +0 -0
  125. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/db/utils.py +0 -0
  126. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/accounting.py +0 -0
  127. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/apvlprocess.py +0 -0
  128. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/base.py +0 -0
  129. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/bizmodel.py +0 -0
  130. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/dimension.py +0 -0
  131. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/fact_table.py +0 -0
  132. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/finmodel.py +0 -0
  133. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/journal_template.py +0 -0
  134. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/pyscript.py +0 -0
  135. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/reconciliation.py +0 -0
  136. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/rolestrategy.py +0 -0
  137. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/smartlist.py +0 -0
  138. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/variable.py +0 -0
  139. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/element/workflow.py +0 -0
  140. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/exceptions/__init__.py +0 -0
  141. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/exceptions/hook.py +0 -0
  142. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/__init__.py +0 -0
  143. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/_javaobj.py +0 -0
  144. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/asynchronous.py +0 -0
  145. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/concurrency.py +0 -0
  146. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/constant.py +0 -0
  147. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/decorator.py +0 -0
  148. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/deepchart.py +0 -0
  149. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/deepux.py +0 -0
  150. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/eureka.py +0 -0
  151. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/filterparser.py +0 -0
  152. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/httpcli.py +0 -0
  153. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/jsonstreamer.py +0 -0
  154. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/patch.py +0 -0
  155. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/redis.py +0 -0
  156. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/stopwatch.py +0 -0
  157. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/subtask.py +0 -0
  158. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/sysutils.py +0 -0
  159. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/lib/utils.py +0 -0
  160. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/local.py +0 -0
  161. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/options.py +0 -0
  162. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos/translation.py +0 -0
  163. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos.egg-info/dependency_links.txt +0 -0
  164. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos.egg-info/not-zip-safe +0 -0
  165. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos.egg-info/requires.txt +0 -0
  166. {deepfos-1.1.3 → deepfos-1.1.5}/deepfos.egg-info/top_level.txt +0 -0
  167. {deepfos-1.1.3 → deepfos-1.1.5}/setup.cfg +0 -0
  168. {deepfos-1.1.3 → deepfos-1.1.5}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deepfos
3
- Version: 1.1.3
3
+ Version: 1.1.5
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
@@ -3,7 +3,7 @@ APIs provided by dimension-server1-2
3
3
 
4
4
  generated by api_code_gen.py
5
5
  - **filename** : ``dimension.py``
6
- - **json timestamp** : ``2022-09-02 19:26:55``
6
+ - **json timestamp** : ``2023-05-26 15:05:44``
7
7
  """
8
8
  from deepfos.api.base import get, post, DynamicRootAPI, ChildAPI
9
9
  from .models.dimension import *
@@ -170,7 +170,7 @@ class DimCheckAPI(last_ver.DimCheckAPI):
170
170
 
171
171
  class Extra(last_ver.Extra):
172
172
  endpoint = '/'
173
-
173
+
174
174
  @post('refactor/dimension/info/query')
175
175
  def refactor_dimension_info_query(self, param: ElementBaseInfoParam) -> Union[NewDimension, Awaitable[NewDimension]]:
176
176
  """
@@ -191,6 +191,18 @@ class Extra(last_ver.Extra):
191
191
  return {'body': dimension}
192
192
 
193
193
 
194
+ class DimObjectAPI(ChildAPI):
195
+ endpoint = '/refactor/dimension/object'
196
+
197
+ @get('sync-data')
198
+ def sync_data(self, folderId: str = None, name: str = None, path: str = None) -> Union[Any, Awaitable[Any]]:
199
+ """
200
+ 导出多维实体维度配置表
201
+
202
+ """
203
+ return {'param': {'folderId': folderId, 'name': name, 'path': path}}
204
+
205
+
194
206
  class DimensionAPI(DynamicRootAPI, builtin=True):
195
207
  """维度组件接口"""
196
208
  module_type = 'DIM'
@@ -228,4 +240,9 @@ class DimensionAPI(DynamicRootAPI, builtin=True):
228
240
  """
229
241
  return Extra(self)
230
242
 
231
-
243
+ @cached_property
244
+ def object(self) -> DimObjectAPI:
245
+ """
246
+ 维度与模型对象相关接口
247
+ """
248
+ return DimObjectAPI(self)
@@ -3,7 +3,7 @@ Models used by /dimension-server1-2
3
3
 
4
4
  generated by model_code_gen.py
5
5
  - **filename** : ``dimension.py``
6
- - **json timestamp** : ``2022-09-02 19:26:55``
6
+ - **json timestamp** : ``2023-05-26 15:05:44``
7
7
  """
8
8
 
9
9
 
@@ -1767,6 +1767,7 @@ class ResponseResult(BaseModel):
1767
1767
  - **POST** ``/dimension/query/get-all-year-period-of-sceanrio`` (Response: 200)
1768
1768
  - **POST** ``/dimension/query/select-dimension-member-by-name-function`` (Response: 200)
1769
1769
  - **POST** ``/dimension/query/select-dimension-member-by-name-function-batch`` (Response: 200)
1770
+ - **GET** ``/refactor/dimension/object/sync-data`` (Response: 200)
1770
1771
  """
1771
1772
  #: code
1772
1773
  code: Optional[int]
@@ -0,0 +1,27 @@
1
+ from typing import TYPE_CHECKING
2
+
3
+ from deepfos.lazy import lazify
4
+
5
+ if TYPE_CHECKING: # pragma: no cover
6
+ from .cube import SysCube, Cube, as_function_node
7
+ from .dimension import (
8
+ DimMember, SysDimension, read_expr,
9
+ Dimension, DimExprAnalysor, ElementDimension
10
+ )
11
+ from .logictable import SQLCondition, BaseTable, MetaTable, TreeRenderer
12
+
13
+ lazify(
14
+ {
15
+ 'deepfos.core.cube': (
16
+ 'SysCube', 'Cube', 'as_function_node'
17
+ ),
18
+ 'deepfos.core.dimension': (
19
+ 'DimMember', 'SysDimension', 'read_expr',
20
+ 'Dimension', 'DimExprAnalysor', 'ElementDimension'
21
+ ),
22
+ 'deepfos.core.logictable': (
23
+ 'SQLCondition', 'BaseTable', 'MetaTable', 'TreeRenderer'
24
+ ),
25
+ },
26
+ globals()
27
+ )
@@ -0,0 +1,32 @@
1
+ from typing import TYPE_CHECKING
2
+
3
+ from deepfos.lazy import lazify
4
+
5
+ if TYPE_CHECKING: # pragma: no cover
6
+ from .mysql import MySQLClient, AsyncMySQLClient
7
+ from .clickhouse import ClickHouseClient, AsyncClickHouseClient
8
+ from .oracle import OracleClient, AsyncOracleClient, OracleDFSQLConvertor
9
+ from .sqlserver import SQLServerClient, AsyncSQLServerClient
10
+ from .kingbase import KingBaseClient, AsyncKingBaseClient
11
+ from .gauss import GaussClient, AsyncGaussClient
12
+ from .dameng import DaMengClient, AsyncDaMengClient
13
+ from .postgresql import PostgreSQLClient, AsyncPostgreSQLClient
14
+ from .deepengine import DeepEngineClient, AsyncDeepEngineClient
15
+
16
+
17
+ lazify(
18
+ {
19
+ 'deepfos.db.mysql': ('MySQLClient', 'AsyncMySQLClient'),
20
+ 'deepfos.db.clickhouse': ('ClickHouseClient', 'AsyncClickHouseClient'),
21
+ 'deepfos.db.oracle': (
22
+ 'OracleClient', 'AsyncOracleClient', 'OracleDFSQLConvertor'
23
+ ),
24
+ 'deepfos.db.sqlserver': ('SQLServerClient', 'AsyncSQLServerClient'),
25
+ 'deepfos.db.kingbase': ('KingBaseClient', 'AsyncKingBaseClient'),
26
+ 'deepfos.db.gauss': ('GaussClient', 'AsyncGaussClient'),
27
+ 'deepfos.db.dameng': ('DaMengClient', 'AsyncDaMengClient'),
28
+ 'deepfos.db.postgresql': ('PostgreSQLClient', 'AsyncPostgreSQLClient'),
29
+ 'deepfos.db.deepengine': ('DeepEngineClient', 'AsyncDeepEngineClient'),
30
+ },
31
+ globals()
32
+ )
@@ -59,7 +59,6 @@ class MySQLAPIConnector(AbstractConnector):
59
59
  ):
60
60
  self._v = version
61
61
 
62
- @cache_async
63
62
  async def build_api(self) -> MySQLAPI:
64
63
  return await APIFinder().find_api(MySQLAPI, version=self._v)
65
64
 
@@ -90,7 +89,6 @@ class ClickHouseAPIConnector(MySQLAPIConnector):
90
89
  async def trxn_execute(self, sqls: List[str]):
91
90
  raise NotImplementedError('ClickHouse does not support transaction')
92
91
 
93
- @cache_async
94
92
  async def build_api(self) -> ClickHouseAPI:
95
93
  return await APIFinder().find_api(ClickHouseAPI, version=self._v)
96
94
 
@@ -137,43 +135,36 @@ class ClickHouseDirectAccess(AbstractConnector):
137
135
 
138
136
 
139
137
  class SQLServerAPIConnector(MySQLAPIConnector):
140
- @cache_async
141
138
  async def build_api(self) -> SQLServerAPI:
142
139
  return await APIFinder().find_api(SQLServerAPI, version=self._v)
143
140
 
144
141
 
145
142
  class OracleAPIConnector(MySQLAPIConnector):
146
- @cache_async
147
143
  async def build_api(self) -> OracleAPI:
148
144
  return await APIFinder().find_api(OracleAPI, version=self._v)
149
145
 
150
146
 
151
147
  class KingBaseAPIConnector(MySQLAPIConnector):
152
- @cache_async
153
148
  async def build_api(self) -> KingBaseAPI:
154
149
  return await APIFinder().find_api(KingBaseAPI, version=self._v)
155
150
 
156
151
 
157
152
  class GaussAPIConnector(MySQLAPIConnector):
158
- @cache_async
159
153
  async def build_api(self) -> GaussAPI:
160
154
  return await APIFinder().find_api(GaussAPI, version=self._v)
161
155
 
162
156
 
163
157
  class DaMengAPIConnector(MySQLAPIConnector):
164
- @cache_async
165
158
  async def build_api(self) -> DaMengAPI:
166
159
  return await APIFinder().find_api(DaMengAPI, version=self._v)
167
160
 
168
161
 
169
162
  class PostgreSQLAPIConnector(MySQLAPIConnector):
170
- @cache_async
171
163
  async def build_api(self) -> PostgreSQLAPI:
172
164
  return await APIFinder().find_api(PostgreSQLAPI, version=self._v)
173
165
 
174
166
 
175
167
  class DeepEngineAPIConnector(ClickHouseAPIConnector):
176
- @cache_async
177
168
  async def build_api(self) -> DeepEngineAPI:
178
169
  return await APIFinder().find_api(DeepEngineAPI, version=self._v)
179
170
 
@@ -1,6 +1,8 @@
1
1
  import re
2
2
  from typing import Dict, Union, List, Iterable, Tuple
3
3
  from typing_extensions import Protocol
4
+
5
+ from deepfos.cache import Manager
4
6
  from deepfos.lib.decorator import cached_property
5
7
 
6
8
  from cachetools import TTLCache
@@ -26,7 +28,6 @@ T_DataInfo = Dict[str, Union[Dict, DataTable, BaseElementInfo]]
26
28
 
27
29
  @singleton
28
30
  class APIFinder:
29
- @cache_async
30
31
  async def modules(self):
31
32
  mdl = await SpaceAPI(sync=False).module.get_usable_module()
32
33
  return mdl or []
@@ -56,9 +57,8 @@ class BaseSqlParser:
56
57
  api_cls = None
57
58
 
58
59
  def __init__(self):
59
- self.table_cache = TTLCache(maxsize=100, ttl=3600)
60
+ self.table_cache = Manager.create_cache(TTLCache, maxsize=100, ttl=3600)
60
61
 
61
- @cache_async
62
62
  async def build_api(self):
63
63
  return await APIFinder().find_api(self.api_cls, version=1.0)
64
64
 
@@ -0,0 +1,77 @@
1
+ from typing import TYPE_CHECKING
2
+
3
+ from deepfos.lazy import lazify
4
+
5
+ if TYPE_CHECKING: # pragma: no cover
6
+ from .accounting import (
7
+ AccountingEngines, AsyncAccountingEngines,
8
+ BillEngines, AsyncBillEngines, CallbackInfo
9
+ )
10
+ from .apvlprocess import AsyncApprovalProcess, ApprovalProcess
11
+ from .bizmodel import BusinessModel, AsyncBusinessModel, CopyConfig
12
+ from .datatable import (
13
+ Datatable, AsyncDataTableMySQL, DataTableMySQL,
14
+ AsyncDataTableClickHouse, DataTableClickHouse,
15
+ AsyncDataTableOracle, DataTableOracle,
16
+ AsyncDataTableSQLServer, DataTableSQLServer,
17
+ AsyncDataTableKingBase, DataTableKingBase,
18
+ AsyncDataTableGauss, DataTableGauss,
19
+ AsyncDataTableDaMeng, DataTableDaMeng,
20
+ AsyncDataTablePostgreSQL, DataTablePostgreSQL,
21
+ AsyncDataTableDeepEngine, DataTableDeepEngine,
22
+ )
23
+ from .dimension import AsyncDimension, Dimension
24
+ from .fact_table import AsyncFactTable, FactTable
25
+ from .finmodel import AsyncFinancialCube, FinancialCube
26
+ from .journal_template import (
27
+ AsyncJournalTemplate, JournalTemplate, FullPostingParameter
28
+ )
29
+ from .rolestrategy import AsyncRoleStrategy, RoleStrategy
30
+ from .smartlist import AsyncSmartList, SmartList
31
+ from .variable import AsyncVariable, Variable
32
+ from .workflow import AsyncWorkFlow, WorkFlow
33
+
34
+
35
+ lazify(
36
+ {
37
+ 'deepfos.element.finmodel': (
38
+ 'AsyncFinancialCube', 'FinancialCube'
39
+ ),
40
+ 'deepfos.element.accounting': (
41
+ 'AccountingEngines', 'AsyncAccountingEngines',
42
+ 'BillEngines', 'AsyncBillEngines', 'CallbackInfo'
43
+ ),
44
+ 'deepfos.element.apvlprocess': (
45
+ 'AsyncApprovalProcess', 'ApprovalProcess'
46
+ ),
47
+ 'deepfos.element.bizmodel': (
48
+ 'BusinessModel', 'AsyncBusinessModel', 'CopyConfig'
49
+ ),
50
+ 'deepfos.element.datatable': (
51
+ 'Datatable',
52
+ 'AsyncDataTableMySQL', 'DataTableMySQL',
53
+ 'AsyncDataTableClickHouse', 'DataTableClickHouse',
54
+ 'AsyncDataTableOracle', 'DataTableOracle',
55
+ 'AsyncDataTableSQLServer', 'DataTableSQLServer',
56
+ 'AsyncDataTableKingBase', 'DataTableKingBase',
57
+ 'AsyncDataTableGauss', 'DataTableGauss',
58
+ 'AsyncDataTableDaMeng', 'DataTableDaMeng',
59
+ 'AsyncDataTablePostgreSQL', 'DataTablePostgreSQL',
60
+ 'AsyncDataTableDeepEngine', 'DataTableDeepEngine',
61
+ ),
62
+ 'deepfos.element.dimension': ('AsyncDimension', 'Dimension'),
63
+ 'deepfos.element.fact_table': ('AsyncFactTable', 'FactTable'),
64
+ 'deepfos.element.journal_template': (
65
+ 'AsyncJournalTemplate', 'JournalTemplate', 'FullPostingParameter'
66
+ ),
67
+ 'deepfos.element.rolestrategy': ('AsyncRoleStrategy', 'RoleStrategy'),
68
+ 'deepfos.element.smartlist': ('AsyncSmartList', 'SmartList'),
69
+ 'deepfos.element.variable': ('AsyncVariable', 'Variable'),
70
+ 'deepfos.element.workflow': ('AsyncWorkFlow', 'WorkFlow'),
71
+ 'deepfos.element.reconciliation': (
72
+ 'AsyncReconciliationEngine', 'AsyncReconciliationMsEngine',
73
+ 'ReconciliationEngine', 'ReconciliationMsEngine',
74
+ ),
75
+ },
76
+ globals()
77
+ )
@@ -2007,9 +2007,8 @@ class AsyncDataTableOracle(AsyncDataTableMySQL):
2007
2007
 
2008
2008
  for col in self.meta.datatableColumn:
2009
2009
  if col.whetherIncrement:
2010
- incr_cols[col.name.upper()] = null
2011
- else:
2012
- base_tmpl[col.name.upper()] = None
2010
+ continue
2011
+ base_tmpl[col.name.upper()] = None
2013
2012
 
2014
2013
  return base_tmpl, incr_cols
2015
2014
 
@@ -1,6 +1,7 @@
1
1
  import sys
2
2
  from importlib import import_module
3
3
  from types import ModuleType
4
+ from typing import Dict, Sequence, Any
4
5
 
5
6
  from deepfos.lib.constant import UNSET
6
7
  from deepfos.local import Proxy
@@ -68,9 +69,7 @@ def lazy_module(modname):
68
69
 
69
70
 
70
71
  """
71
- class _LazyModule(LazyModule):
72
- pass
73
- return _LazyModule(modname, globals())
72
+ return LazyModule(modname, globals())
74
73
 
75
74
 
76
75
  def lazy_callable(modname, *names):
@@ -82,3 +81,21 @@ def lazy_callable(modname, *names):
82
81
 
83
82
  """
84
83
  return tuple(LazyCallable(modname, cname) for cname in names)
84
+
85
+
86
+ def lazify(
87
+ target: Dict[str, Sequence[str]],
88
+ _globals: Dict[str, Any]
89
+ ):
90
+ """懒加载模块成员
91
+
92
+ Args:
93
+ target: module to module members
94
+ _globals: globals in caller scope
95
+ """
96
+
97
+ for modname, mbrs in target.items():
98
+ _globals.update(zip(
99
+ mbrs,
100
+ lazy_callable(modname, *mbrs)
101
+ ))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deepfos
3
- Version: 1.1.3
3
+ Version: 1.1.5
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
@@ -7,7 +7,7 @@ versioneer.py
7
7
  ./deepfos/_version.py
8
8
  ./deepfos/cache.py
9
9
  ./deepfos/config.py
10
- ./deepfos/lazy_import.py
10
+ ./deepfos/lazy.py
11
11
  ./deepfos/local.py
12
12
  ./deepfos/options.py
13
13
  ./deepfos/translation.py
@@ -52,7 +52,7 @@ def resolve_extensions():
52
52
 
53
53
 
54
54
  setup(
55
- version="1.1.3",
55
+ version="1.1.5",
56
56
  # cmdclass=versioneer.get_cmdclass(),
57
57
  ext_modules=resolve_extensions()
58
58
  )
@@ -0,0 +1,4 @@
1
+ from loguru import logger
2
+
3
+
4
+ logger.disable('deepfos')
@@ -1,27 +0,0 @@
1
- from deepfos.lazy_import import lazy_callable
2
- from typing import TYPE_CHECKING
3
-
4
- if TYPE_CHECKING: # pragma: no cover
5
- from .cube import SysCube, Cube, as_function_node
6
- from .dimension import DimMember, SysDimension, read_expr, Dimension, DimExprAnalysor, ElementDimension
7
- from .logictable import SQLCondition, BaseTable, MetaTable, TreeRenderer
8
-
9
- SysCube, Cube, as_function_node = lazy_callable('deepfos.core.cube', # noqa
10
- 'SysCube',
11
- 'Cube',
12
- 'as_function_node')
13
-
14
- (DimMember, SysDimension, read_expr, # noqa
15
- Dimension, DimExprAnalysor, ElementDimension) = lazy_callable('deepfos.core.dimension', # noqa
16
- 'DimMember',
17
- 'SysDimension',
18
- 'read_expr',
19
- 'Dimension',
20
- 'DimExprAnalysor',
21
- 'ElementDimension')
22
-
23
- SQLCondition, BaseTable, MetaTable, TreeRenderer = lazy_callable('deepfos.core.logictable', # noqa
24
- 'SQLCondition',
25
- 'BaseTable',
26
- 'MetaTable',
27
- 'TreeRenderer')
@@ -1,50 +0,0 @@
1
- from deepfos.lazy_import import lazy_callable
2
- from typing import TYPE_CHECKING
3
-
4
- if TYPE_CHECKING: # pragma: no cover
5
- from .mysql import MySQLClient, AsyncMySQLClient
6
- from .clickhouse import ClickHouseClient, AsyncClickHouseClient
7
- from .oracle import OracleClient, AsyncOracleClient, OracleDFSQLConvertor
8
- from .sqlserver import SQLServerClient, AsyncSQLServerClient
9
- from .kingbase import KingBaseClient, AsyncKingBaseClient
10
- from .gauss import GaussClient, AsyncGaussClient
11
- from .dameng import DaMengClient, AsyncDaMengClient
12
- from .postgresql import PostgreSQLClient, AsyncPostgreSQLClient
13
- from .deepengine import DeepEngineClient, AsyncDeepEngineClient
14
-
15
- MySQLClient, AsyncMySQLClient = lazy_callable('deepfos.db.mysql', # noqa
16
- 'MySQLClient',
17
- 'AsyncMySQLClient')
18
-
19
- ClickHouseClient, AsyncClickHouseClient = lazy_callable('deepfos.db.clickhouse', # noqa
20
- 'ClickHouseClient',
21
- 'AsyncClickHouseClient')
22
-
23
- OracleClient, AsyncOracleClient, OracleDFSQLConvertor = lazy_callable('deepfos.db.oracle', # noqa
24
- 'OracleClient',
25
- 'AsyncOracleClient',
26
- 'OracleDFSQLConvertor')
27
-
28
- SQLServerClient, AsyncSQLServerClient = lazy_callable('deepfos.db.sqlserver', # noqa
29
- 'SQLServerClient',
30
- 'AsyncSQLServerClient')
31
-
32
- KingBaseClient, AsyncKingBaseClient = lazy_callable('deepfos.db.kingbase', # noqa
33
- 'KingBaseClient',
34
- 'AsyncKingBaseClient')
35
-
36
- GaussClient, AsyncGaussClient = lazy_callable('deepfos.db.gauss', # noqa
37
- 'GaussClient',
38
- 'AsyncGaussClient')
39
-
40
- DaMengClient, AsyncDaMengClient = lazy_callable('deepfos.db.dameng', # noqa
41
- 'DaMengClient',
42
- 'AsyncDaMengClient')
43
-
44
- PostgreSQLClient, AsyncPostgreSQLClient = lazy_callable('deepfos.db.postgresql', # noqa
45
- 'PostgreSQLClient',
46
- 'AsyncPostgreSQLClient')
47
-
48
- DeepEngineClient, AsyncDeepEngineClient = lazy_callable('deepfos.db.deepengine', # noqa
49
- 'DeepEngineClient',
50
- 'AsyncDeepEngineClient')
@@ -1,96 +0,0 @@
1
- from deepfos.lazy_import import lazy_callable
2
- from typing import TYPE_CHECKING
3
-
4
- if TYPE_CHECKING: # pragma: no cover
5
- from .accounting import (
6
- AccountingEngines, AsyncAccountingEngines, BillEngines, AsyncBillEngines, CallbackInfo
7
- )
8
- from .apvlprocess import AsyncApprovalProcess, ApprovalProcess
9
- from .bizmodel import BusinessModel, AsyncBusinessModel, CopyConfig
10
- from .datatable import (Datatable,
11
- AsyncDataTableMySQL, DataTableMySQL,
12
- AsyncDataTableClickHouse, DataTableClickHouse,
13
- AsyncDataTableOracle, DataTableOracle,
14
- AsyncDataTableSQLServer, DataTableSQLServer,
15
- AsyncDataTableKingBase, DataTableKingBase,
16
- AsyncDataTableGauss, DataTableGauss,
17
- AsyncDataTableDaMeng, DataTableDaMeng,
18
- AsyncDataTablePostgreSQL, DataTablePostgreSQL,
19
- AsyncDataTableDeepEngine, DataTableDeepEngine,
20
- )
21
- from .dimension import AsyncDimension, Dimension
22
- from .fact_table import AsyncFactTable, FactTable
23
- from .finmodel import AsyncFinancialCube, FinancialCube
24
- from .journal_template import AsyncJournalTemplate, JournalTemplate, FullPostingParameter
25
- from .rolestrategy import AsyncRoleStrategy, RoleStrategy
26
- from .smartlist import AsyncSmartList, SmartList
27
- from .variable import AsyncVariable, Variable
28
- from .workflow import AsyncWorkFlow, WorkFlow
29
-
30
- (
31
- AccountingEngines, AsyncAccountingEngines, BillEngines, AsyncBillEngines, CallbackInfo # noqa
32
- ) = lazy_callable(
33
- 'deepfos.element.accounting',
34
- 'AccountingEngines', 'AsyncAccountingEngines', 'BillEngines', 'AsyncBillEngines', 'CallbackInfo'
35
- )
36
-
37
- AsyncApprovalProcess, ApprovalProcess = lazy_callable('deepfos.element.apvlprocess', # noqa
38
- 'AsyncApprovalProcess', 'ApprovalProcess')
39
-
40
- BusinessModel, AsyncBusinessModel, CopyConfig = lazy_callable('deepfos.element.bizmodel', # noqa
41
- 'BusinessModel', 'AsyncBusinessModel', 'CopyConfig')
42
-
43
- (
44
- Datatable, # noqa
45
- AsyncDataTableMySQL, DataTableMySQL, # noqa
46
- AsyncDataTableClickHouse, DataTableClickHouse, # noqa
47
- AsyncDataTableOracle, DataTableOracle, # noqa
48
- AsyncDataTableSQLServer, DataTableSQLServer, # noqa
49
- AsyncDataTableKingBase, DataTableKingBase, # noqa
50
- AsyncDataTableGauss, DataTableGauss, # noqa
51
- AsyncDataTableDaMeng, DataTableDaMeng, # noqa
52
- AsyncDataTablePostgreSQL, DataTablePostgreSQL, # noqa
53
- AsyncDataTableDeepEngine, DataTableDeepEngine, # noqa
54
- ) = lazy_callable( # noqa
55
- 'deepfos.element.datatable',
56
- 'Datatable',
57
- 'AsyncDataTableMySQL', 'DataTableMySQL',
58
- 'AsyncDataTableClickHouse', 'DataTableClickHouse',
59
- 'AsyncDataTableOracle', 'DataTableOracle',
60
- 'AsyncDataTableSQLServer', 'DataTableSQLServer',
61
- 'AsyncDataTableKingBase', 'DataTableKingBase',
62
- 'AsyncDataTableGauss', 'DataTableGauss',
63
- 'AsyncDataTableDaMeng', 'DataTableDaMeng',
64
- 'AsyncDataTablePostgreSQL', 'DataTablePostgreSQL',
65
- 'AsyncDataTableDeepEngine', 'DataTableDeepEngine',
66
- )
67
-
68
- AsyncDimension, Dimension = lazy_callable('deepfos.element.dimension', # noqa
69
- 'AsyncDimension', 'Dimension')
70
-
71
- AsyncFactTable, FactTable = lazy_callable('deepfos.element.fact_table', # noqa
72
- 'AsyncFactTable', 'FactTable')
73
-
74
- AsyncFinancialCube, FinancialCube = lazy_callable('deepfos.element.finmodel', # noqa
75
- 'AsyncFinancialCube', 'FinancialCube')
76
-
77
- AsyncJournalTemplate, JournalTemplate, FullPostingParameter = lazy_callable( # noqa
78
- 'deepfos.element.journal_template',
79
- 'AsyncJournalTemplate', 'JournalTemplate', 'FullPostingParameter')
80
-
81
- AsyncRoleStrategy, RoleStrategy = lazy_callable('deepfos.element.rolestrategy', # noqa
82
- 'AsyncRoleStrategy', 'RoleStrategy')
83
-
84
- AsyncSmartList, SmartList = lazy_callable('deepfos.element.smartlist', # noqa
85
- 'AsyncSmartList', 'SmartList')
86
-
87
- AsyncVariable, Variable = lazy_callable('deepfos.element.variable', # noqa
88
- 'AsyncVariable', 'Variable')
89
-
90
- AsyncWorkFlow, WorkFlow = lazy_callable('deepfos.element.workflow', 'AsyncWorkFlow', 'WorkFlow') # noqa
91
-
92
- AsyncReconciliationEngine, AsyncReconciliationMsEngine, ReconciliationEngine, ReconciliationMsEngine = lazy_callable( # noqa
93
- 'deepfos.element.reconciliation',
94
- 'AsyncReconciliationEngine', 'AsyncReconciliationMsEngine',
95
- 'ReconciliationEngine', 'ReconciliationMsEngine',
96
- )
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
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