fabricks 3.0.19__py3-none-any.whl → 4.0.0__py3-none-any.whl

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 (95) hide show
  1. fabricks/api/context.py +15 -3
  2. fabricks/api/notebooks/schedule.py +2 -3
  3. fabricks/api/parsers.py +2 -1
  4. fabricks/api/utils.py +3 -1
  5. fabricks/cdc/__init__.py +1 -2
  6. fabricks/cdc/base/__init__.py +1 -2
  7. fabricks/cdc/base/_types.py +5 -3
  8. fabricks/cdc/base/configurator.py +5 -0
  9. fabricks/cdc/base/generator.py +7 -3
  10. fabricks/cdc/base/merger.py +2 -0
  11. fabricks/cdc/base/processor.py +15 -0
  12. fabricks/cdc/templates/README.md +490 -0
  13. fabricks/cdc/templates/ctes/base.sql.jinja +1 -0
  14. fabricks/cdc/templates/ctes/current.sql.jinja +4 -0
  15. fabricks/cdc/templates/merges/scd1.sql.jinja +6 -0
  16. fabricks/cdc/templates/merges/scd2.sql.jinja +6 -0
  17. fabricks/cdc/templates/queries/context.sql.jinja +104 -96
  18. fabricks/cdc/templates/query.sql.jinja +1 -1
  19. fabricks/context/__init__.py +13 -1
  20. fabricks/context/config.py +13 -122
  21. fabricks/context/log.py +92 -1
  22. fabricks/context/runtime.py +35 -69
  23. fabricks/context/spark_session.py +8 -7
  24. fabricks/context/utils.py +26 -39
  25. fabricks/core/__init__.py +2 -2
  26. fabricks/core/dags/base.py +5 -5
  27. fabricks/core/dags/processor.py +2 -3
  28. fabricks/core/extenders.py +1 -1
  29. fabricks/core/job_schema.py +26 -16
  30. fabricks/core/jobs/__init__.py +1 -7
  31. fabricks/core/jobs/base/README.md +1545 -0
  32. fabricks/core/jobs/base/__init__.py +1 -8
  33. fabricks/core/jobs/base/checker.py +7 -7
  34. fabricks/core/jobs/base/configurator.py +142 -63
  35. fabricks/core/jobs/base/generator.py +38 -34
  36. fabricks/core/jobs/base/invoker.py +48 -63
  37. fabricks/core/jobs/base/processor.py +13 -28
  38. fabricks/core/jobs/bronze.py +88 -38
  39. fabricks/core/jobs/get_job.py +3 -6
  40. fabricks/core/jobs/get_job_conf.py +19 -68
  41. fabricks/core/jobs/get_jobs.py +10 -11
  42. fabricks/core/jobs/get_schedules.py +3 -17
  43. fabricks/core/jobs/gold.py +89 -47
  44. fabricks/core/jobs/silver.py +42 -22
  45. fabricks/core/masks.py +11 -8
  46. fabricks/core/parsers/__init__.py +0 -2
  47. fabricks/core/parsers/base.py +10 -10
  48. fabricks/core/parsers/decorator.py +1 -1
  49. fabricks/core/parsers/get_parser.py +4 -5
  50. fabricks/core/schedules/process.py +1 -4
  51. fabricks/core/steps/base.py +27 -17
  52. fabricks/core/steps/get_step.py +2 -4
  53. fabricks/core/steps/get_step_conf.py +3 -7
  54. fabricks/core/udfs.py +7 -7
  55. fabricks/core/views.py +2 -2
  56. fabricks/deploy/__init__.py +27 -16
  57. fabricks/deploy/masks.py +1 -1
  58. fabricks/deploy/notebooks.py +19 -16
  59. fabricks/deploy/schedules.py +1 -1
  60. fabricks/deploy/tables.py +66 -49
  61. fabricks/deploy/udfs.py +2 -2
  62. fabricks/deploy/views.py +15 -16
  63. fabricks/metastore/database.py +3 -3
  64. fabricks/metastore/table.py +103 -68
  65. fabricks/models/__init__.py +125 -0
  66. fabricks/models/common.py +79 -0
  67. fabricks/models/config.py +225 -0
  68. fabricks/models/dependency.py +50 -0
  69. fabricks/models/job.py +157 -0
  70. fabricks/models/path.py +17 -0
  71. fabricks/models/runtime.py +182 -0
  72. fabricks/models/schedule.py +21 -0
  73. fabricks/models/step.py +103 -0
  74. fabricks/models/table.py +77 -0
  75. fabricks/{core/jobs/get_job_id.py → models/utils.py} +2 -0
  76. fabricks/utils/helpers.py +6 -5
  77. fabricks/utils/log.py +25 -6
  78. fabricks/utils/path.py +265 -108
  79. fabricks/utils/pip.py +7 -7
  80. fabricks/utils/read/read.py +23 -22
  81. fabricks/utils/read/read_yaml.py +2 -2
  82. fabricks/utils/write/delta.py +4 -4
  83. fabricks/utils/write/stream.py +2 -2
  84. {fabricks-3.0.19.dist-info → fabricks-4.0.0.dist-info}/METADATA +9 -4
  85. {fabricks-3.0.19.dist-info → fabricks-4.0.0.dist-info}/RECORD +86 -83
  86. fabricks/context/_types.py +0 -139
  87. fabricks/context/helpers.py +0 -63
  88. fabricks/core/jobs/base/_types.py +0 -284
  89. fabricks/core/parsers/_types.py +0 -6
  90. fabricks/utils/fdict.py +0 -240
  91. fabricks/utils/pydantic.py +0 -94
  92. fabricks/utils/schema/__init__.py +0 -7
  93. fabricks/utils/schema/get_json_schema_for_type.py +0 -161
  94. fabricks/utils/schema/get_schema_for_type.py +0 -99
  95. {fabricks-3.0.19.dist-info → fabricks-4.0.0.dist-info}/WHEEL +0 -0
@@ -2,11 +2,11 @@ from typing import Iterable, Optional, cast
2
2
 
3
3
  import yaml
4
4
 
5
- from fabricks.utils.path import Path
5
+ from fabricks.utils.path import BasePath
6
6
 
7
7
 
8
8
  def read_yaml(
9
- path: Path,
9
+ path: BasePath,
10
10
  root: Optional[str] = None,
11
11
  preferred_file_name: Optional[str] = None,
12
12
  ) -> Iterable[dict]:
@@ -2,13 +2,13 @@ from typing import List, Optional, Union, get_args
2
2
 
3
3
  from pyspark.sql import DataFrame
4
4
 
5
- from fabricks.utils.path import Path
5
+ from fabricks.utils.path import FileSharePath
6
6
  from fabricks.utils.read._types import AllowedIOModes
7
7
 
8
8
 
9
9
  def write_delta(
10
10
  df: DataFrame,
11
- path: Path,
11
+ path: FileSharePath,
12
12
  mode: AllowedIOModes,
13
13
  options: Optional[dict[str, str]] = None,
14
14
  partition_by: Union[Optional[List[str]], str] = None,
@@ -30,7 +30,7 @@ def write_delta(
30
30
 
31
31
  def append_delta(
32
32
  df: DataFrame,
33
- path: Path,
33
+ path: FileSharePath,
34
34
  options: Optional[dict[str, str]] = None,
35
35
  partition_by: Union[Optional[List[str]], str] = None,
36
36
  ):
@@ -39,7 +39,7 @@ def append_delta(
39
39
 
40
40
  def overwrite_delta(
41
41
  df: DataFrame,
42
- path: Path,
42
+ path: FileSharePath,
43
43
  options: Optional[dict[str, str]] = None,
44
44
  partition_by: Union[Optional[List[str]], str] = None,
45
45
  ):
@@ -3,12 +3,12 @@ from typing import Callable, Optional
3
3
  from pyspark.sql import DataFrame
4
4
  from pyspark.sql.streaming.query import StreamingQuery
5
5
 
6
- from fabricks.utils.path import Path
6
+ from fabricks.utils.path import FileSharePath
7
7
 
8
8
 
9
9
  def write_stream(
10
10
  df: DataFrame,
11
- checkpoints_path: Path,
11
+ checkpoints_path: FileSharePath,
12
12
  func: Callable,
13
13
  timeout: Optional[int] = 18000,
14
14
  ) -> StreamingQuery:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fabricks
3
- Version: 3.0.19
3
+ Version: 4.0.0
4
4
  Author-email: BMS DWH Team <bi_support@bmsuisse.ch>
5
5
  Requires-Python: <4,>=3.9
6
6
  Requires-Dist: azure-data-tables<13,>=12.5.0
@@ -8,15 +8,20 @@ Requires-Dist: azure-identity>=1.10.0
8
8
  Requires-Dist: azure-storage-blob>=12.14.1
9
9
  Requires-Dist: azure-storage-queue<13,>=12.10.0
10
10
  Requires-Dist: databricks-cli>=0.18.0
11
+ Requires-Dist: databricks-connect>=11.0.0
11
12
  Requires-Dist: databricks-sdk>=0.20.0
12
- Requires-Dist: importlib-metadata>=8.6.1
13
+ Requires-Dist: deptry>=0.23.1
14
+ Requires-Dist: ipython>=8.18.1
13
15
  Requires-Dist: jinja2>=2.11.3
14
16
  Requires-Dist: mermaid-magic>=0.1.4
15
- Requires-Dist: pydantic-settings
16
- Requires-Dist: pydantic-yaml>=1.4.0
17
+ Requires-Dist: pandas>=2.2.3
18
+ Requires-Dist: py4j>=0.10.9.7
19
+ Requires-Dist: pydantic-settings>=2.11.0
17
20
  Requires-Dist: pydantic>=1.10.21
21
+ Requires-Dist: pyspark>=3.5.7
18
22
  Requires-Dist: python-dotenv>=1.0.1
19
23
  Requires-Dist: pyyaml>=6.0.0
24
+ Requires-Dist: sparkdantic>=1.5.0
20
25
  Requires-Dist: sqlglot>=22.1.1
21
26
  Requires-Dist: tenacity>=9.1.2
22
27
  Requires-Dist: tomli>=2.2.1; python_version < '3.11'
@@ -1,6 +1,6 @@
1
1
  fabricks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  fabricks/api/__init__.py,sha256=4dnYubkrmdep64e7_X8Wsk4Kc2N487oOct8H4qPlbjs,251
3
- fabricks/api/context.py,sha256=tfGkdJNTJTc0meReV7y-9eL0_imF3nM2OIJOJRPBWso,513
3
+ fabricks/api/context.py,sha256=xLWgwUaGhZRsjkgZLiHfIrXOXs4-CJ7hzcwHpWHD0t0,524
4
4
  fabricks/api/core.py,sha256=5ctTW5N3tPnuh69OrDb7eS32Ol19dIICAWQ5VMDYY7A,157
5
5
  fabricks/api/deploy.py,sha256=4sZiYogkS3kZ2RZNxWtrB-vnI0SVoocxwwZrH4x1CZc,57
6
6
  fabricks/api/exceptions.py,sha256=F_V1hy0rnICdR_nFacRldoI3KbgA3oG02KffHWm3yjA,409
@@ -8,10 +8,10 @@ fabricks/api/extenders.py,sha256=Qk4ZDgEkXe-dtPINmePkbtWlhkC209X6YKkqG-8lHAo,69
8
8
  fabricks/api/job_schema.py,sha256=Gtovg2RXFMpbfjD-wCc2H0GvRT1nTuMJHcuy7G42qU4,120
9
9
  fabricks/api/log.py,sha256=WKthYM8n_E1ng9x_XCVm7cJkfRvtd6Y470tgwz3vd2Y,130
10
10
  fabricks/api/masks.py,sha256=M1w5WsoNhM1Z0vIu3FSfM_VcNNPR269UuqKXvA5MbwM,117
11
- fabricks/api/parsers.py,sha256=nPUDzQ_Hz0fVmnBfGCqqHo7X7R6M-oGsXWDYSikjB54,121
11
+ fabricks/api/parsers.py,sha256=LHmEQjGaE5AfbGDnm_bzmBySlepHQmiFKOtjUDUzdsY,148
12
12
  fabricks/api/schedules.py,sha256=gdYrujsUiCrVMMJaKMDkt7McncO-uZPl_QNgp10gZZk,215
13
13
  fabricks/api/udfs.py,sha256=3JTX4OWkoW7_AP9pUKHVS0C6zIBVdOJoAn8MpmB6R48,124
14
- fabricks/api/utils.py,sha256=a-YrCXkDFzMmcNN8QOSDs_-YQtSePaDP4C4WYMX2AEg,196
14
+ fabricks/api/utils.py,sha256=sauHVBo2f-E1hu1hp646BALwLqw2KXeCBqD-rRxm-No,256
15
15
  fabricks/api/version.py,sha256=FukX94EbtmJMeajxyOwka8fMfFeaVc0cuM3I5CVIuK8,85
16
16
  fabricks/api/views.py,sha256=dPqsGgDs9QOYc-5_QG_i4F_VoaFO5hGZQnIPZ31h5Ps,156
17
17
  fabricks/api/cdc/__init__.py,sha256=Cl3LhLbQrA42IvNLqoV7CCbjQEYQMJfO6cAZv1l1aas,196
@@ -27,27 +27,28 @@ fabricks/api/notebooks/cluster.py,sha256=86AX2pS98XJ9RPxPS5hHJBoQw-rlQ3i4hpRoWeg
27
27
  fabricks/api/notebooks/initialize.py,sha256=5M8VWECIdJgpB2Xf_RYOp90Cuil4KTCYLMUEd3gZQV8,803
28
28
  fabricks/api/notebooks/process.py,sha256=9qwIVyBgufBdVFW1yZCxxeRpwBJQsIxVBXFd2HRubIo,1157
29
29
  fabricks/api/notebooks/run.py,sha256=L7kZtti8D20jTQmAe6_a-8f92qHYFh3Td3x0qFKoFzo,1271
30
- fabricks/api/notebooks/schedule.py,sha256=N15KaRQWW1KEjvi_NEw4Aa_t0Vr_C5tclTDgliVopXo,1571
30
+ fabricks/api/notebooks/schedule.py,sha256=Qa08mKo08yFOnM0Z3gNoaU5tDTl_Wtr8BKXbQjlV_9Y,1503
31
31
  fabricks/api/notebooks/terminate.py,sha256=ef6I0Pj3rlE_BlMiEXR6AkLxOuYS9tyWoj9ZJ-B0Y60,741
32
- fabricks/cdc/__init__.py,sha256=bkrlLlhXThIvtABuOkNYJaQudICGw2Q8TbyZUVYORaw,316
32
+ fabricks/cdc/__init__.py,sha256=ZHCCo97QLuTvsiTsOLUnCtl_ztF7elEn-XqZ54P_5Gw,256
33
33
  fabricks/cdc/cdc.py,sha256=2CjPUtogWjnvyLjwiyVllcyDV1gpJ0QoRP0yUsiHXuc,69
34
34
  fabricks/cdc/nocdc.py,sha256=ObWojMINqwzNSipIKMj57wvQy3on_EIh65X-7MAspIs,490
35
35
  fabricks/cdc/scd.py,sha256=HzC9ifEu45B4P2aOSgi97AGB-C56l6sKTLqdVinnHKo,670
36
36
  fabricks/cdc/scd1.py,sha256=WsOVRsp55WEw4-7nEtb3dfv310icExrj-zEJSEehyz8,334
37
37
  fabricks/cdc/scd2.py,sha256=4vZkhc8pJAUlgiBmIw9j_2RsWuAFMcgCkU3WMVt0A-A,334
38
- fabricks/cdc/base/__init__.py,sha256=kU4LmQ7x1rekCt8T3r83MmAQac6n2ov-Gh8mBbxIC48,157
39
- fabricks/cdc/base/_types.py,sha256=WloCDC3ATrn0aZJ6E8BRYKZx19N3EE56r6qlBYhcuvQ,257
38
+ fabricks/cdc/base/__init__.py,sha256=DGluey_e7nbmlpc05YyojY_hGStXFoTBQB5Ataw9T4I,65
39
+ fabricks/cdc/base/_types.py,sha256=VlT0197d_JAx5iyBk8PKEYtJEmPpbM54QHc7qF4Mlxg,278
40
40
  fabricks/cdc/base/cdc.py,sha256=9w5BqQxSVbFVEozJWmZQThqdppkE_SYi4fHSzJ7WMvA,78
41
- fabricks/cdc/base/configurator.py,sha256=DzODL0wO0FqfmIMQKEofqQKYeOCR6vaO0Am92ctcAk4,6158
42
- fabricks/cdc/base/generator.py,sha256=pa_GJn7Pdi5vMnXN8zExmOPMpCqdZ3QoxHEB0wv0lsk,5933
43
- fabricks/cdc/base/merger.py,sha256=3qUUs0uqmwOMdXc50kV3Zo9omuQuUUFgtMLBrg4E-wk,4159
44
- fabricks/cdc/base/processor.py,sha256=hExUGGVOX1Px0IWw65MOaDeeUbSMtjRekLdqEQ0U6Mw,17921
41
+ fabricks/cdc/base/configurator.py,sha256=01vjEyIK0XGZYe85gYMOvgM4fM72M8VfcleCex_R_gA,6361
42
+ fabricks/cdc/base/generator.py,sha256=WkbBP-hSTKbcVKCZixxb1AzFRk5rdZVSI8Mou1BDQXE,6071
43
+ fabricks/cdc/base/merger.py,sha256=sc9KioJWvqTSkXGuyQSeMOhvym07fLxd9YgLTUfVt4c,4247
44
+ fabricks/cdc/base/processor.py,sha256=udd3E7DjuTHZDFyUnd0uHnW5LIBS_LBI-Xbjo0DJwZg,18649
45
+ fabricks/cdc/templates/README.md,sha256=2biL-DNXysI9jImAnDwjM_UOGSE2jF8-NR1L0o_MPjw,16920
45
46
  fabricks/cdc/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
47
  fabricks/cdc/templates/filter.sql.jinja,sha256=AQcOj4KRwKscVG3zepnEAN9Yxb03AM7068hqW7dtVI8,236
47
48
  fabricks/cdc/templates/merge.sql.jinja,sha256=YS9wWckCVsUI1pUYiRSFBIuQ16WU3EPWSkhZVy2niBA,221
48
- fabricks/cdc/templates/query.sql.jinja,sha256=Z0kSm9sRKJTLQ2Lb3NS7yu93GBxNls9HL7uAjTdirjk,868
49
- fabricks/cdc/templates/ctes/base.sql.jinja,sha256=rtp5hRMxcoD3NupzlAFvH8BREKHUnLEirHvJCoOmQk8,1871
50
- fabricks/cdc/templates/ctes/current.sql.jinja,sha256=bb72XdaJVce5k57dx_N6T4OfyQDUrFLulr3VM6irdn0,1278
49
+ fabricks/cdc/templates/query.sql.jinja,sha256=T58WorTXEjYbRLZa5irYlP9Z1YkHSbCqQpTJ0lzhst4,899
50
+ fabricks/cdc/templates/ctes/base.sql.jinja,sha256=kaENr9QDFJkJB4dkbfb-Hm5qEyoYKYgTL76gtPPGNrA,1979
51
+ fabricks/cdc/templates/ctes/current.sql.jinja,sha256=eQyJdMiVIJEvouazowU3fAKRWtuzXzBv0HaCcL7B3Sc,1494
51
52
  fabricks/cdc/templates/ctes/deduplicate_hash.sql.jinja,sha256=DHcSNhAvoFZY0gSv3Zylat9ysGXKR22OGXs49KTNCjA,1095
52
53
  fabricks/cdc/templates/ctes/deduplicate_key.sql.jinja,sha256=4-K4nk2Bfr_8c_x3YDYBP7JUx4c-b3Ef-7HFx0s2jrc,1122
53
54
  fabricks/cdc/templates/ctes/rectify.sql.jinja,sha256=OfZmEmlI-0gvkD7Fa1sncWU9SJkcrR4mnlTIvX1Ysp0,4727
@@ -58,119 +59,121 @@ fabricks/cdc/templates/filters/update.sql.jinja,sha256=O_pqUljzUuyPGMtXR7Ia9dRj4
58
59
  fabricks/cdc/templates/macros/bactick.sql.jinja,sha256=VYRlBRRvfRID83naDuAAWp5JmR9f9-46xTW2-8lr8DY,59
59
60
  fabricks/cdc/templates/macros/hash.sql.jinja,sha256=0auoKcV9idL4Y6b4JP6ODaTFHK7L5nmY3MEL9YeKd5o,594
60
61
  fabricks/cdc/templates/merges/nocdc.sql.jinja,sha256=lA4-PXogC_u6RqummOQX_WBFCNq_GMEXdO4aL3_Eg0o,825
61
- fabricks/cdc/templates/merges/scd1.sql.jinja,sha256=GimfwgEobGgCzPce_FJdvQY9jmRJXFUZ4_CVhRgTTqY,1600
62
- fabricks/cdc/templates/merges/scd2.sql.jinja,sha256=5qBO_1lr7xa-Ep8RqvJGCRISOv4uo_tiAtVOybp4tUU,1210
62
+ fabricks/cdc/templates/merges/scd1.sql.jinja,sha256=N876kUas_zcdHO5_GJ6eQSG_etRDV6M7mmwILt5j4SY,1762
63
+ fabricks/cdc/templates/merges/scd2.sql.jinja,sha256=1MiTbJ-F2P8v33_sqkkZ3MJjoA7lAcA5Ttk7ix_x2-I,1364
63
64
  fabricks/cdc/templates/queries/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
- fabricks/cdc/templates/queries/context.sql.jinja,sha256=x-t3CzdRaSXi8Xi7aYaNdIVyRwVOxmxw8xBZyfnFE40,3977
65
+ fabricks/cdc/templates/queries/context.sql.jinja,sha256=C4oB7h4kdT08QvLN825z6QM6IaCKouRLtM5mVEckdvU,5254
65
66
  fabricks/cdc/templates/queries/final.sql.jinja,sha256=vxH434CO5k8Ia7tugaH8LC1co7Epaj7Z1M7Y9BdqzaI,111
66
67
  fabricks/cdc/templates/queries/scd1.sql.jinja,sha256=siHULgKE3uRBGQYZFUR_eHNqFuGgO9xUCRVV2jnAXAI,3019
67
68
  fabricks/cdc/templates/queries/scd2.sql.jinja,sha256=Nn0wUs9N-_QviZqUKRWAFdD17RR3EFBTMs9BpBu6z7E,3877
68
69
  fabricks/cdc/templates/queries/nocdc/complete.sql.jinja,sha256=cVKKCSbiuuw1K7BOzfusX6KvzQNHU3YNUgoXgsu-c6k,267
69
70
  fabricks/cdc/templates/queries/nocdc/update.sql.jinja,sha256=mjNUwGVhZ08yUkdv9sCTkqyW60p0YavtWTqvSUVrwjA,1283
70
- fabricks/context/__init__.py,sha256=qfntJ9O6omzY_t6AhDP6Ndu9C5LMiVdWbo6ikhtoe7o,1446
71
- fabricks/context/_types.py,sha256=B3CvR_RR0wXCbBADh7Z9S8_7AXRRtvPCnFh7OyQJboI,2802
72
- fabricks/context/config.py,sha256=EmLUnswuWfrncaNJMDjvdMg-1lD8aneKAY8IDna7VPE,4814
73
- fabricks/context/helpers.py,sha256=igY8LwLIxzfOWKCg23XMsJoY7Bw0welpdNry2mKHjF0,1600
74
- fabricks/context/log.py,sha256=CadrRf8iL6iXlGIGIhEIswa7wGqC-E-oLwWcGTyJ10s,2074
75
- fabricks/context/runtime.py,sha256=87PtX6SqLoFd0PGxgisF6dLlxtCHaHxkMMIt34UyB2w,3479
71
+ fabricks/context/__init__.py,sha256=ATDN62vF9ZMk7WiIwn07vXAOTxppg536oUBIh0ZKgRY,1610
72
+ fabricks/context/config.py,sha256=wOCkERkRL26Driux37GyN_BJL8XL30Ums3kGXePsr3g,611
73
+ fabricks/context/log.py,sha256=Vrh7ZHH9XlCQ92EZvQss_veDOoqWilDJ_22Lo9aBTh4,6127
74
+ fabricks/context/runtime.py,sha256=Din5vsY5sPPyzHsmm_VFdS_oqVbRGCffzdJw6FnhSRE,2188
76
75
  fabricks/context/secret.py,sha256=iRM-KU-JcJAEOLoGJ8S4Oh65-yt674W6CDTSkOE7SXw,3192
77
- fabricks/context/spark_session.py,sha256=BPaxKJXHZDI5oQiOPhmua_xjXnrVgluh--AVpvUgbck,2553
78
- fabricks/context/utils.py,sha256=EQRscdUhdjwk2htZu8gCgNZ9PfRzzrR6e1kRrIbVlBM,2786
79
- fabricks/core/__init__.py,sha256=LaqDi4xuyHAoLOvS44PQdZdRfq9SmVr7mB6BDHyxYpc,209
80
- fabricks/core/extenders.py,sha256=oJzfv0hWxusnGmrjMwbrGyKfot8xzA4XtNquPWfFgPo,727
81
- fabricks/core/job_schema.py,sha256=6-70oy0ZJd3V9AiXfc0Q8b8NVEynxQza_h7mB13uB-s,853
82
- fabricks/core/masks.py,sha256=0ARgXE6stazRlfjE2v2sOdQWjAH2TbCOgtuD33BeZqE,1531
83
- fabricks/core/udfs.py,sha256=nYG5MrTziDB3skZOCgpuxIOvLzs8I5vY8DC0Zdmkysk,3308
84
- fabricks/core/views.py,sha256=52tekqeP0Xk5EPYO220YdfFbzItX6NnObROb-ye9COQ,1181
76
+ fabricks/context/spark_session.py,sha256=f_ah-_vJ13y2J0nV41a5SU2_6GZF_iwH3_0G_zdunnc,2561
77
+ fabricks/context/utils.py,sha256=Wxwx_BJqOMG3MKNHf53sA5gKd8P9yAIBjgZ4r4LMDqA,2420
78
+ fabricks/core/__init__.py,sha256=b6bMtPjpw81opqpg02cPeeKjUYKvbqspzLM8OXTIOAE,137
79
+ fabricks/core/extenders.py,sha256=35TvZt3HzKRl9XTGYbdrs8RY3adpUKuJehYgvdBp2gk,756
80
+ fabricks/core/job_schema.py,sha256=Hbo5VDi5KgF9zcoiUSXYrzTYEJdT8iO7E35Jqf7NW7w,1117
81
+ fabricks/core/masks.py,sha256=tzJdumnqG_neX01pODydq-dRNmyySYSQTMQb8W7WwhU,1902
82
+ fabricks/core/udfs.py,sha256=ltreiepy6jeoxfrhARDp7EWlL4YcTgVVeJMYM6Y-_ik,3422
83
+ fabricks/core/views.py,sha256=fbE75A7JCAUSWUbymolwrVvg7Mt90wcZwG8scCiNTMs,1187
85
84
  fabricks/core/dags/__init__.py,sha256=0DUKzVcXcROvxkN19P_kaOJ7da5BAM7Vt8EGQbp2KSY,240
86
- fabricks/core/dags/base.py,sha256=tFj27SqeZUZ7pB_LOWkpdowZz5gj30JUANI4gWK3Pl8,3139
85
+ fabricks/core/dags/base.py,sha256=F4tK2rSvT7Q54u-fk0h0p7JJPvbqqA1eJQcT1we6tRs,3122
87
86
  fabricks/core/dags/generator.py,sha256=4fp_CRsWnl_UauM9Jx-E4UCaxnm2_Q5103J58fRws2U,4832
88
87
  fabricks/core/dags/log.py,sha256=v1xfpQGfddHDz9lflvXOWTXMde3CdERo9jzeSmNDRhY,402
89
- fabricks/core/dags/processor.py,sha256=IzjqrpNu6lTYp-Rl2T_8Sb5N0pSk9BhdP9vuL4sBRMg,7930
88
+ fabricks/core/dags/processor.py,sha256=1jVjdzsbeT2Lq3nfvUNj167WabfE8lshhq5XFNdhymM,7860
90
89
  fabricks/core/dags/run.py,sha256=RIDULb9WakObSyYzmkglh8RwFRwC8-NFC-1yPDMkBC0,1074
91
90
  fabricks/core/dags/terminator.py,sha256=Y6pV2UnSyrCIx2AQWJXoHk5Roq12gZqpennHx_Lbnzs,793
92
91
  fabricks/core/dags/utils.py,sha256=4kyobLGl4tO0Flo6LxNzYjCU_G42vns1LrkxTO5_KLY,1585
93
- fabricks/core/jobs/__init__.py,sha256=W_1m6LoGiXBml_8cucedju_hllSSnZGKsZjyFh-2oJw,531
94
- fabricks/core/jobs/bronze.py,sha256=mz3YDm4ft9sP51k4lUR6gmT1rkQBLvdaePAD3uo3m1c,14040
95
- fabricks/core/jobs/get_job.py,sha256=35zay3Z_WoJIylzEQlGle6UvrE1EClfRbFEVGvszof0,3675
96
- fabricks/core/jobs/get_job_conf.py,sha256=3vAj_usCbNqejMUKOF85LPaHBYAwxgrDG7LYgY-vBUw,4812
97
- fabricks/core/jobs/get_job_id.py,sha256=6dLyzxGHlRvJZVJSwZkCk3iXzWkIhePC_6FhoP0gEN4,607
98
- fabricks/core/jobs/get_jobs.py,sha256=nJ-8DPFq1GyzWo9Mxlwq2dEeAqwg1jeQg-CHietAb1Q,3341
92
+ fabricks/core/jobs/__init__.py,sha256=ysNDrKlaKyFlR0UH3FMpBLUHdOAzhZa9nSHS4k-h1-w,372
93
+ fabricks/core/jobs/bronze.py,sha256=u5OlSUQc_5_rCPLymVspwDtiQtmFENZa0nh02kRiHQ0,15929
94
+ fabricks/core/jobs/get_job.py,sha256=OEy-Aa6xeWMOygGhDZ5b2DtJIXxvTBBpsy4R9iJr-UM,3513
95
+ fabricks/core/jobs/get_job_conf.py,sha256=LS5FkyWJha8vwdAAXtbAIXFdn5Czyu7ooJ6He-3sPHc,3033
96
+ fabricks/core/jobs/get_jobs.py,sha256=m16AqDdeGkqPt0NWqpvsIyH48lLc9Oct5rj58Joto_0,3299
99
97
  fabricks/core/jobs/get_schedule.py,sha256=46pJR5LWZfuxUtLBmtB-RP6ng_W-K-ahJmD29KNmcGw,259
100
- fabricks/core/jobs/get_schedules.py,sha256=kryDUBrBrtAaMp8Ou5YqMOCOMKvg1GmbbOQBtiiRleM,794
101
- fabricks/core/jobs/gold.py,sha256=6YOhuMpCAuqfRtottikIemLQ-L62Av0ZXFcOb9uh4yE,14896
102
- fabricks/core/jobs/silver.py,sha256=kdrCBfh1jkhWJUFubGUV4kxan5eRUZl-LI-iSJxyJE4,13093
103
- fabricks/core/jobs/base/__init__.py,sha256=_AdWtyL7yZG2TOZ9e8WyNPrOjmm6EDkI_TNym5cLDws,208
104
- fabricks/core/jobs/base/_types.py,sha256=y66BtJlJskq7wGzn7te5XYjO-NEqeQGUC11kkbew8AU,8405
105
- fabricks/core/jobs/base/checker.py,sha256=Cdfh8rQYy4MvMFl0HyC3alGUWm8zrFXk08m2t2JMu6Y,5477
106
- fabricks/core/jobs/base/configurator.py,sha256=9G5F7Qg5FWHPbHgdh8Qxc85OoSX0rnjD4c9itwU5KKc,10415
98
+ fabricks/core/jobs/get_schedules.py,sha256=FlxDhe-0Jk37AXIM8zc8XajSCZkaB42gWeXenw-fRiM,523
99
+ fabricks/core/jobs/gold.py,sha256=ZQB-dAzL68ibs7YaiuKu9TIYLe2vN8ot8S5UJy2O65U,16100
100
+ fabricks/core/jobs/silver.py,sha256=_pKKI0rCYmV_pfqgiYByHwIpeCELU_yzy7QPcytq8Hg,13684
101
+ fabricks/core/jobs/base/README.md,sha256=e7WPyqfqfikIVEIStApiHcVH0-GGe2NfV0u5olC_bGA,38614
102
+ fabricks/core/jobs/base/__init__.py,sha256=v9gBBAB7imOVnM9sfF0U2peISBdkMcuIw6prknOLE-w,71
103
+ fabricks/core/jobs/base/checker.py,sha256=gbeVOi87g_UuM0or9LCE6wXtVczY4SjNz6hgMbm1NpY,5602
104
+ fabricks/core/jobs/base/configurator.py,sha256=UFO8ygHS_Q9VULVpyILcQ1FoY8jXHzMmktqXxaoyaUc,12924
107
105
  fabricks/core/jobs/base/exception.py,sha256=HrdxEuOfK5rY-ItZvEL3iywLgdpYUpmWFkjjjks7oYc,2318
108
- fabricks/core/jobs/base/generator.py,sha256=TWiJtQvEH0uH8YMFlOxxi6CpWnrDNua61PCbdamOtHA,17487
109
- fabricks/core/jobs/base/invoker.py,sha256=FvjfpNqi542slxC2yLu1BIu5EklNUWySxDF8cD_SqKQ,7602
106
+ fabricks/core/jobs/base/generator.py,sha256=QRBRzeoUxxZcj57CWyIQDEBUdT4-WVo66X-kUZjedRg,17950
107
+ fabricks/core/jobs/base/invoker.py,sha256=Rxt2fB8yEYpRsXYM4uG4NLJN5ij3uZInhHwpXMkZVg8,7225
110
108
  fabricks/core/jobs/base/job.py,sha256=dWmk2PpQH2NETaaDS6KoiefRnDHfDMdCyhmogkdcSFI,93
111
- fabricks/core/jobs/base/processor.py,sha256=qkNiJSSLaEnivKGBcd9UZyIVFexnv-n1p_5mCZIy1rA,9076
112
- fabricks/core/parsers/__init__.py,sha256=TGjyUeiiTkJrAxIpu2D_c2rQcbe5YRpmBW9oh0F9AqU,322
113
- fabricks/core/parsers/_types.py,sha256=JC2Oh-wUvaX8SBzeuf5owPgRaj-Q3-7MXxyIYPQ7QwA,147
114
- fabricks/core/parsers/base.py,sha256=P8IrLQKGakwaAQ-4gf4vElVwWoSpkixYd9kNthu1VDM,3292
115
- fabricks/core/parsers/decorator.py,sha256=kn_Mj-JLWTFaRiciZ3KavmSUcWFPY3ve-buMruHrX_Q,307
116
- fabricks/core/parsers/get_parser.py,sha256=mauofS626h9wpPZtlZFqIb1jcKM3Jz4D_36uvd-Lv4k,717
109
+ fabricks/core/jobs/base/processor.py,sha256=nLlJ_rMckhcmCBpZMNlV9dJ903JW8UsQsrUxg8RR6AA,8660
110
+ fabricks/core/parsers/__init__.py,sha256=w9z3CqcP9wpDc0f0fSnApzThOPSUlG0Uxv6iLYb4AGk,246
111
+ fabricks/core/parsers/base.py,sha256=ycaaRJzghpMOUQiwSchmbDIliqqe6z5fD08q0Q8g0HY,3353
112
+ fabricks/core/parsers/decorator.py,sha256=QB8DADDUXHzkri6n6tJwTP5apS729UjYNfsd7x9ZmIY,294
113
+ fabricks/core/parsers/get_parser.py,sha256=v6ElTqlyskAhlAXontRE378u1u61O5VcL_Vo2uOSx4k,703
117
114
  fabricks/core/parsers/utils.py,sha256=qdn2ElpqBgDsW55-tACWZaFOT0ebrBYg2fenqSgd6YI,2456
118
115
  fabricks/core/schedules/__init__.py,sha256=bDjNMcm7itimAo4gun0W4W9bZKwZmWUjkMqAQIcqI2Y,431
119
116
  fabricks/core/schedules/diagrams.py,sha256=YA4T7Etl_UPfW-3IGFq5Xj9OlXZGQ27Aot6RVa3ZUgg,578
120
117
  fabricks/core/schedules/generate.py,sha256=aKnAe7ZCafAczLa4ka9Er_oltOxgXyNoS63_OZEktcE,623
121
118
  fabricks/core/schedules/get_schedule.py,sha256=PJcEq4enlsRJunS-MjXi-VFIczbeuBStP2giZ_-EaRc,116
122
119
  fabricks/core/schedules/get_schedules.py,sha256=b6KSl-QmiNgih2l6dESB0va9yDVxaGOJ_ZB96Wc3NC8,174
123
- fabricks/core/schedules/process.py,sha256=6124f7AbCSFjseXQsLIX_4kl_-tesi_CtwzYZKOMNRE,305
120
+ fabricks/core/schedules/process.py,sha256=Fn3S3jV89o_cmwd1iYi7ohoMjDnnZ-krPB4wzp2cB_M,216
124
121
  fabricks/core/schedules/run.py,sha256=AcRiyUmepAUzlGO_DxO-JhRUtieXfxE6sR8xfRWYlWI,58
125
122
  fabricks/core/schedules/terminate.py,sha256=-RvtOrxTOZl2sZQ6KfNHJL6H2LCAEMSVRyylA-wVl_w,167
126
123
  fabricks/core/schedules/views.py,sha256=8hYwPLCvvN-nem2lNAKvUY5hC71v88z4-y8j0poUApM,1949
127
124
  fabricks/core/steps/__init__.py,sha256=JP-kaDa890-9XqBSPp6YdssAexdxv-MqQ__WfVYdgeg,132
128
125
  fabricks/core/steps/_types.py,sha256=VxIrH3nFwmPlwG-UI8sDDP0AwK_9jlsy6yQp6YfgtqE,90
129
- fabricks/core/steps/base.py,sha256=MJe2q9s1siM89YkpHDqldtbtKQgkhDB_cFa2-e_irvs,14642
130
- fabricks/core/steps/get_step.py,sha256=8q4rEDdTTZNJsXB2l5XY-Ktoow8ZHsON_tx5yKMUIzg,284
131
- fabricks/core/steps/get_step_conf.py,sha256=UPT3gB1Sh5yzawZ9qiVQlvVAKaxPX82gaWBDzxx75EM,633
132
- fabricks/deploy/__init__.py,sha256=G4U3gLVFBkedqH28dVsIee5D_hzhKZOP3FFJ9ygaNvU,2451
133
- fabricks/deploy/masks.py,sha256=exf6UMutruHozw6oZY98DNAn464npbQlwN5-G22vDn8,236
134
- fabricks/deploy/notebooks.py,sha256=pfmD1K-TCOuuxttEK45Ti1RDc-_nIOmWlb2EWr1Vp28,1545
135
- fabricks/deploy/schedules.py,sha256=0a5dU1rW6fg8aAp7TTt-l0DgR-4kmzsX2xxV2C30yaw,347
136
- fabricks/deploy/tables.py,sha256=F_A3_BIf0x5GcWaBVMqrLG-GUOa7W3RSF2m-1ppxUgo,2636
137
- fabricks/deploy/udfs.py,sha256=rBEzFKG_a9TKERceTLRC3b-2BjNe1YEIwU2r0I4EecE,637
126
+ fabricks/core/steps/base.py,sha256=HwiJ7hsNDi023TygDPLi2RKm8V268hDk_c-RCYb5ttI,14689
127
+ fabricks/core/steps/get_step.py,sha256=HxEdBM9L7xV4047EVKAi-jhxM8V40UvYoN07vMrqZ-w,223
128
+ fabricks/core/steps/get_step_conf.py,sha256=7EdnTbLrqr2LmwkfeU89yet1okFx72m5exu0DA6LtZE,529
129
+ fabricks/deploy/__init__.py,sha256=RY-t19PJfLmkOQkftRPozsXaeDfnuoxp348sFa6tmxs,2639
130
+ fabricks/deploy/masks.py,sha256=_FZpuPxLcPG7h7RfoRWcHGwJRqXc5b1IRzoq3iLw_3o,265
131
+ fabricks/deploy/notebooks.py,sha256=pvh-EqDWAnXa0mk7AommPC82ANxoDwqGM4fj7ovwowk,1808
132
+ fabricks/deploy/schedules.py,sha256=VSz_PxPQSR9CwwMp489qh_TpYZ2b06eSh7SCjuwUKUw,376
133
+ fabricks/deploy/tables.py,sha256=K6X886qT5c8oBHjjETsivIfibyhwwNruc2puGO9REqs,2977
134
+ fabricks/deploy/udfs.py,sha256=5DtcZje44b9KLBc1ivE2BQTsJ9dnsUl7UjkkSWQMlqQ,687
138
135
  fabricks/deploy/utils.py,sha256=V41r1zVT9KcsICqTLAzpb4ixRk2q2ybJMrGhkPOtG6k,5099
139
- fabricks/deploy/views.py,sha256=8cSt6IzZy-JHHkyqd91NT2hi3LTNTOolimlfSBXMCvU,14434
136
+ fabricks/deploy/views.py,sha256=ybWCy1pYgQAsabglNRxzigRhs0KXTNc-ISebkZ6fv8w,14726
140
137
  fabricks/metastore/README.md,sha256=utPUGAxmjyNMGe43GfL0Gup4MjeTKKwyiUoNVSfMquI,51
141
138
  fabricks/metastore/__init__.py,sha256=RhjY2CuqtZBg8fEizzzvW8qszqCM-vSCL1tQGuzoato,174
142
139
  fabricks/metastore/_types.py,sha256=NXYxwQHP0sCllM0N6QBbaK4CdtM_m_rHFDxRNRfBcLU,1919
143
- fabricks/metastore/database.py,sha256=23VAKKzjrwlEaj28DNNmiOhcfdKRzYk8eEfq-PzINbg,1924
140
+ fabricks/metastore/database.py,sha256=eBfhNsDnSIqE92DaG7nrTD_OMRw_NKbi-7aKUl2ICn0,1951
144
141
  fabricks/metastore/dbobject.py,sha256=ve8p48OqEpJYsqWNhgesGSE0emM--uY8QrvBRoR3j3g,1881
145
142
  fabricks/metastore/pyproject.toml,sha256=6RZM9RMKMDF_EAequhORZ7TD0BQNk7aBCTWAv-sRcp0,519
146
- fabricks/metastore/table.py,sha256=lAxOky3BgpPudcIEZl2UbNgFiTHYfdtvcIHy9D5D78s,29368
143
+ fabricks/metastore/table.py,sha256=L-GDa6xkPnSBVxnxpIxsf7TNtGbNBGr8TQpppE4tmuA,30430
147
144
  fabricks/metastore/utils.py,sha256=8SxhjDkz_aSH4IGUusel7hqOQxP9U8PNBCY0M7GH00Y,1355
148
145
  fabricks/metastore/view.py,sha256=f7hKJWtnH1KmZym8dkoucKOTndntzai_f2YqferxHLs,1431
146
+ fabricks/models/__init__.py,sha256=XyW_vm5LyHOlAX_pD5LIi8V1G9u6KUUUKNYoTx4vh4I,3402
147
+ fabricks/models/common.py,sha256=s5wvOxeheHjrmgp-nTbBKBEZCOeeH8mFEv3iY3aMG-U,2430
148
+ fabricks/models/config.py,sha256=5ja4U_ap5pyOeApXEFU1GDCrd-7r8Le9CrUAGLYST4o,6759
149
+ fabricks/models/dependency.py,sha256=kPywcXgWoVZl8QYv49fspdnKLj5jim6t6_lyYoEzK10,1489
150
+ fabricks/models/job.py,sha256=kDJ-7r6vzzUWeQv93rd0KEWW6jWJmUjuPwPLw40SWA8,4095
151
+ fabricks/models/path.py,sha256=hJpOaiD6HSqsSKyF57j0ppyAXVYtAfWuHJXdT2rrj8I,384
152
+ fabricks/models/runtime.py,sha256=wr-BSBeoNAm9QskbdFADsj1CA7fn5zviePF4HEqpDKc,5627
153
+ fabricks/models/schedule.py,sha256=Y1vLc-d9AZVmQu6I7nb-ojyvewTnWiJGEnZVafjglQs,528
154
+ fabricks/models/step.py,sha256=3koPjxh1TSznusoBat2iBWV-EW9EhV6PHu-eMCHGKMk,2334
155
+ fabricks/models/table.py,sha256=BR-X44JdlzYr_PVOttK8aL6nFH9cSH1LgsFwIC5Nt6A,2365
156
+ fabricks/models/utils.py,sha256=z41K4KLN_5RNVR4fYjRyyDcJGDrPImsV8zP9QuRXrJ0,670
149
157
  fabricks/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
150
158
  fabricks/utils/_types.py,sha256=AuOhknlozqx5QdAdvZSA6xAWhU8k4nxG1vxIkOVgHeY,184
151
159
  fabricks/utils/azure_queue.py,sha256=wtKAq_MD5QLxelerDO475dzL-SySIrxt9d5KGi-8vvw,3102
152
160
  fabricks/utils/azure_table.py,sha256=J_UAPiCN89rL5FNmwIGg43Z6FSH8evVIWijDEgYJxk4,5294
153
161
  fabricks/utils/console.py,sha256=X4lLgL_UxCjoFRx-ZRCwzdBveRGPKlFYZDi6vl7uevQ,1017
154
- fabricks/utils/fdict.py,sha256=cdnvNBSXKJIDKSdhQGJA4CGv0qLn5IVYKQ111l7nM9I,7978
155
- fabricks/utils/helpers.py,sha256=fKv6mpT-428xTSjdLfm7TnN1Xo9FadrSIY1qzYgWCzs,7909
156
- fabricks/utils/log.py,sha256=LCQEM81PhdojiyLrtEzv1QM__bWbaEhGddyd0IqyGXM,7985
162
+ fabricks/utils/helpers.py,sha256=2If-5cTO0ZCTgEVHS00Eh7Qv0YBdnZoSM7Rm1BdhhF8,7964
163
+ fabricks/utils/log.py,sha256=KGljzsjLdu-HpAV1hsazSi78cnwyRaqnst54apH_foo,8835
157
164
  fabricks/utils/mermaid.py,sha256=XoiVxPaUJS4TC_ybA-e78qFzQkQ46uPf055JiiNDdSg,986
158
- fabricks/utils/path.py,sha256=H2jU2ixJ57eAd7Aq3Upln1wT9rJzy7od7AwdEnNvCgo,7082
159
- fabricks/utils/pip.py,sha256=UHo7NTjFGJNghWBuuDow28xUkZYg2YrlbAP49IxZyXY,1522
160
- fabricks/utils/pydantic.py,sha256=W0fiDLVMFrrInfQw2s5YPeSEvkN-4k864u3UyPoHaz4,2516
165
+ fabricks/utils/path.py,sha256=_u_jFUWvlPj5KdT99tWffachVyokFUY8PCeVB1IzClY,11998
166
+ fabricks/utils/pip.py,sha256=4rNmjy4h2352Lf6EX1qb7PB1qOP6Wm29P8Np6ISqt5w,1594
161
167
  fabricks/utils/spark.py,sha256=QWVpbGwOvURIVBlR7ygt6NQ9MHUsIDvlquJ65iI8UBI,2007
162
168
  fabricks/utils/sqlglot.py,sha256=3HbFCWuD71G43nQ5TuffQD8_bnTuonlQyoCzldSpYI8,1499
163
169
  fabricks/utils/read/__init__.py,sha256=a_5l60m1AyzQUII170bfRRuXR_ynC3EwfysidRy44GE,272
164
170
  fabricks/utils/read/_types.py,sha256=_YY0Yp8IPNYvcRFNa9WMcIl20cN93Cdcgh3jddypnuk,76
165
- fabricks/utils/read/read.py,sha256=el6GvynJrCl2Ap_bM7xY750fSXjrr9xmp14P92h-40g,8401
171
+ fabricks/utils/read/read.py,sha256=wflsYIKIFZwNWaQ5o9GfqEpTp0cvdPfHx9pqgKUVfNg,8600
166
172
  fabricks/utils/read/read_excel.py,sha256=TnirdvaVk3gFtEpTD20_U2v3KRnTAc_T85JzwqOHUwI,108
167
- fabricks/utils/read/read_yaml.py,sha256=PEMpMaVCfqfQ792rg1mt33WDpy2lOFR3DBLt4q7unPg,869
168
- fabricks/utils/schema/__init__.py,sha256=jWGhKohpxbeKE260n3GktiCnk11MnlVcbkkzjN-6ZJw,232
169
- fabricks/utils/schema/get_json_schema_for_type.py,sha256=ePIxRkYvsxhQiN59Dln4ONtSVd1cK_KsEoAxdCHbb5k,5846
170
- fabricks/utils/schema/get_schema_for_type.py,sha256=5k-R6zCgUAtapQgxT4turcx1IQ-b7DN9fjrwYqmCw0Q,3716
173
+ fabricks/utils/read/read_yaml.py,sha256=LlStrs1A1hCcgW5gHLEUx5ayC880JTO7EfhjxmtS5OE,877
171
174
  fabricks/utils/write/__init__.py,sha256=i0UnZenXj9Aq0b0_aU3s6882vg-Vu_AyKfQhl_dTp-g,200
172
- fabricks/utils/write/delta.py,sha256=lTQ0CfUhcvn3xTCcT_Ns6PMDBsO5UEfa2S9XpJiLJ9c,1250
173
- fabricks/utils/write/stream.py,sha256=wQBpAnQtYA6nl79sPKhVM6u5m-66suX7B6VQ6tW4TOs,622
174
- fabricks-3.0.19.dist-info/METADATA,sha256=LVAn4EIa8k57SNEaZvYu7kFJ5LsQ6M64MpfYap63VYY,798
175
- fabricks-3.0.19.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
176
- fabricks-3.0.19.dist-info/RECORD,,
175
+ fabricks/utils/write/delta.py,sha256=H0fXrrSCgHkZvq88gqtl4xy5Toy31p5fcXQP0VqqSWI,1286
176
+ fabricks/utils/write/stream.py,sha256=HJxMpWf7Y2Q8dCS1LJzVOO_Tax_Q_YYsvDW69CSpMnw,640
177
+ fabricks-4.0.0.dist-info/METADATA,sha256=jTcdWTzT5ZX6cpT69iJ6Oo-A5ZnOOwV9LNALf0BMyDg,954
178
+ fabricks-4.0.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
179
+ fabricks-4.0.0.dist-info/RECORD,,
@@ -1,139 +0,0 @@
1
- from typing import List, Optional, TypedDict
2
-
3
-
4
- class RuntimePathOptions(TypedDict):
5
- storage: str
6
- udfs: str
7
- parsers: str
8
- schedules: str
9
- views: str
10
- requirements: str
11
-
12
-
13
- class RuntimeTimeoutOptions(TypedDict):
14
- step: int
15
- job: int
16
- pre_run: int
17
- post_run: int
18
-
19
-
20
- class UDFOptions(TypedDict):
21
- prefix: Optional[str]
22
- schema: Optional[str]
23
-
24
-
25
- class StepTimeoutOptions(TypedDict):
26
- step: Optional[int]
27
- job: Optional[int]
28
- pre_run: Optional[int]
29
- post_run: Optional[int]
30
-
31
-
32
- class RuntimeOptions(TypedDict):
33
- secret_scope: str
34
- unity_catalog: Optional[bool]
35
- type_widening: Optional[bool]
36
- catalog: Optional[str]
37
- workers: int
38
- timeouts: RuntimeTimeoutOptions
39
- retention_days: int
40
- timezone: Optional[str]
41
-
42
-
43
- class SparkOptions(TypedDict):
44
- sql: dict
45
- conf: dict
46
-
47
-
48
- class StepPathOptions(TypedDict):
49
- runtime: str
50
- storage: str
51
-
52
-
53
- class InvokeOptions(TypedDict):
54
- notebook: str
55
- arguments: Optional[dict[str, str]]
56
-
57
-
58
- class ExtenderOptions(TypedDict):
59
- extender: str
60
- arguments: Optional[dict[str, str]]
61
-
62
-
63
- class StepOptions(TypedDict):
64
- order: int
65
- workers: Optional[int]
66
- timeouts: StepTimeoutOptions
67
- extenders: Optional[List[str]]
68
- pre_run: Optional[InvokeOptions]
69
- post_run: Optional[InvokeOptions]
70
-
71
-
72
- class SilverOptions(StepOptions):
73
- parent: str
74
- stream: Optional[bool]
75
- local_checkpoint: Optional[bool]
76
-
77
-
78
- class GoldOptions(StepOptions):
79
- schema_drift: Optional[bool]
80
- metadata: Optional[bool]
81
-
82
-
83
- class Step(TypedDict):
84
- name: str
85
-
86
-
87
- class TableOptions(TypedDict):
88
- powerbi: Optional[bool]
89
- liquid_clustering: Optional[bool]
90
- properties: Optional[dict[str, str]]
91
- retention_days: Optional[int]
92
- masks: Optional[dict[str, str]]
93
-
94
-
95
- class Bronze(Step):
96
- options: StepOptions
97
- path_options: StepPathOptions
98
- table_options: Optional[TableOptions]
99
-
100
-
101
- class Silver(Step):
102
- options: SilverOptions
103
- path_options: StepPathOptions
104
- table_options: Optional[TableOptions]
105
-
106
-
107
- class Gold(Step):
108
- options: GoldOptions
109
- path_options: StepPathOptions
110
- table_options: Optional[TableOptions]
111
-
112
-
113
- class PowerBI(Step):
114
- pass
115
-
116
-
117
- class DatabasePathOptions(TypedDict):
118
- storage: str
119
-
120
-
121
- class Database(TypedDict):
122
- name: str
123
- path_options: DatabasePathOptions
124
-
125
-
126
- class Conf(TypedDict):
127
- name: str
128
- options: RuntimeOptions
129
- path_options: RuntimePathOptions
130
- extender_options: Optional[ExtenderOptions]
131
- udf_options: Optional[UDFOptions]
132
- spark_options: SparkOptions
133
- bronze: Optional[List[Bronze]]
134
- silver: Optional[List[Silver]]
135
- gold: Optional[List[Gold]]
136
- powerbi: Optional[List[PowerBI]]
137
- databases: Optional[List[Database]]
138
- variables: Optional[List[dict[str, str]]]
139
- credentials: Optional[List[dict[str, str]]]
@@ -1,63 +0,0 @@
1
- import os
2
- import pathlib
3
- from typing import List
4
-
5
- from fabricks.utils.path import Path
6
-
7
-
8
- def get_config_from_file():
9
- path = pathlib.Path(os.getcwd())
10
-
11
- while path is not None:
12
- if (path / "fabricksconfig.json").exists():
13
- break
14
- if (path / "pyproject.toml").exists():
15
- break
16
- if path == path.parent:
17
- break
18
-
19
- path = path.parent
20
-
21
- if (path / "fabricksconfig.json").exists():
22
- import json
23
-
24
- with open((path / "fabricksconfig.json"), "r") as f:
25
- config = json.load(f)
26
- return path, config, "json"
27
-
28
- if (path / "pyproject.toml").exists():
29
- import sys
30
-
31
- if sys.version_info >= (3, 11):
32
- import tomllib
33
- else:
34
- import tomli as tomllib # type: ignore
35
-
36
- with open((path / "pyproject.toml"), "rb") as f:
37
- config = tomllib.load(f)
38
- return path, config.get("tool", {}).get("fabricks", {}), "pyproject"
39
-
40
- return None, {}, None
41
-
42
-
43
- def get_storage_paths(objects: List[dict], variables: dict) -> dict:
44
- d = {}
45
- for o in objects:
46
- if o:
47
- name = o.get("name")
48
- assert name
49
- uri = o.get("path_options", {}).get("storage")
50
- assert uri
51
- d[name] = Path.from_uri(uri, regex=variables)
52
- return d
53
-
54
-
55
- def get_runtime_path(objects: List[dict], root: Path) -> dict:
56
- d = {}
57
- for o in objects:
58
- name = o.get("name")
59
- assert name
60
- uri = o.get("path_options", {}).get("runtime")
61
- assert uri
62
- d[name] = root.joinpath(uri)
63
- return d