equiframe 0.12.4__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 (170) hide show
  1. equiframe/__init__.py +832 -0
  2. equiframe/__main__.py +3 -0
  3. equiframe/_base.py +84 -0
  4. equiframe/_cli_support.py +125 -0
  5. equiframe/_comparison_io.py +161 -0
  6. equiframe/_dataset_provenance.py +146 -0
  7. equiframe/_decimal.py +22 -0
  8. equiframe/_diff_capture.py +433 -0
  9. equiframe/_doctor.py +123 -0
  10. equiframe/_document_io.py +61 -0
  11. equiframe/_documents.py +79 -0
  12. equiframe/_duckdb_transport.py +149 -0
  13. equiframe/_error_reporting.py +52 -0
  14. equiframe/_first_use.py +102 -0
  15. equiframe/_path_compat.py +26 -0
  16. equiframe/_physical.py +133 -0
  17. equiframe/_r_review.R +308 -0
  18. equiframe/_regular_io.py +167 -0
  19. equiframe/_report_format_v1.py +298 -0
  20. equiframe/_report_io.py +591 -0
  21. equiframe/_stability_inventory.py +1421 -0
  22. equiframe/_timezones.py +257 -0
  23. equiframe/_vendor/cyclonedx/LICENSE +201 -0
  24. equiframe/_vendor/cyclonedx/PROVENANCE.md +18 -0
  25. equiframe/_vendor/cyclonedx/bom-1.6.schema.json +5673 -0
  26. equiframe/_vendor/cyclonedx/jsf-0.82.schema.json +240 -0
  27. equiframe/_vendor/cyclonedx/spdx.schema.json +712 -0
  28. equiframe/adapters.py +454 -0
  29. equiframe/assertion_types.py +122 -0
  30. equiframe/assertions.py +271 -0
  31. equiframe/benchmark.py +101 -0
  32. equiframe/bundle.py +240 -0
  33. equiframe/cli.py +693 -0
  34. equiframe/comparison.py +937 -0
  35. equiframe/comparison_report.py +660 -0
  36. equiframe/comparison_types.py +257 -0
  37. equiframe/compatibility.py +546 -0
  38. equiframe/contracts.py +879 -0
  39. equiframe/datasets.py +1301 -0
  40. equiframe/decision.py +34 -0
  41. equiframe/destinations.py +295 -0
  42. equiframe/detector_types.py +431 -0
  43. equiframe/detectors.py +389 -0
  44. equiframe/diff.py +192 -0
  45. equiframe/diff_contracts.py +523 -0
  46. equiframe/docs/adoption.md +329 -0
  47. equiframe/docs/api.md +534 -0
  48. equiframe/docs/arquitecto.md +143 -0
  49. equiframe/docs/choosing-api.md +84 -0
  50. equiframe/docs/cientifico.md +180 -0
  51. equiframe/docs/compatibility.md +254 -0
  52. equiframe/docs/contributing.md +171 -0
  53. equiframe/docs/dependencies.md +237 -0
  54. equiframe/docs/eda.md +166 -0
  55. equiframe/docs/extending.md +158 -0
  56. equiframe/docs/fast-ci.md +52 -0
  57. equiframe/docs/first-use.md +78 -0
  58. equiframe/docs/index.md +142 -0
  59. equiframe/docs/ingestion.md +145 -0
  60. equiframe/docs/inicio.md +129 -0
  61. equiframe/docs/installed-private.md +97 -0
  62. equiframe/docs/journeys.md +362 -0
  63. equiframe/docs/lectura-conversion.md +211 -0
  64. equiframe/docs/licensing.md +17 -0
  65. equiframe/docs/maintenance.md +233 -0
  66. equiframe/docs/migration-ir.md +333 -0
  67. equiframe/docs/option-audit.md +45 -0
  68. equiframe/docs/outcome-gates.md +134 -0
  69. equiframe/docs/performance.md +263 -0
  70. equiframe/docs/piloto-simulado.md +56 -0
  71. equiframe/docs/quickstart.md +156 -0
  72. equiframe/docs/r_review.md +212 -0
  73. equiframe/docs/recipes.md +248 -0
  74. equiframe/docs/releasing.md +183 -0
  75. equiframe/docs/security.md +218 -0
  76. equiframe/docs/semantics.md +274 -0
  77. equiframe/docs/sqlite-snapshots.md +262 -0
  78. equiframe/docs/universal-sources.md +49 -0
  79. equiframe/docs/universalidad-cinco-pasos.md +107 -0
  80. equiframe/docs/upgrading.md +538 -0
  81. equiframe/duckdb_capture.py +410 -0
  82. equiframe/eda/__init__.py +36 -0
  83. equiframe/eda/__main__.py +3 -0
  84. equiframe/eda/_backend.py +612 -0
  85. equiframe/eda/_inventory.py +49 -0
  86. equiframe/eda/_paths.py +49 -0
  87. equiframe/eda/_report.py +291 -0
  88. equiframe/eda/api.py +535 -0
  89. equiframe/eda/cli.py +102 -0
  90. equiframe/eda/models.py +239 -0
  91. equiframe/errors.py +83 -0
  92. equiframe/evidence.py +375 -0
  93. equiframe/examples/integrations/eda_generic.py +60 -0
  94. equiframe/examples/integrations/outcome_gates.py +94 -0
  95. equiframe/examples/integrations/sqlite_snapshot.py +246 -0
  96. equiframe/examples/integrations/sqlite_snapshot_demo.py +226 -0
  97. equiframe/examples/integrations/universal_first_use.py +296 -0
  98. equiframe/examples/journeys/README.md +31 -0
  99. equiframe/examples/journeys/__init__.py +1 -0
  100. equiframe/examples/journeys/a_pandas_refactor.py +88 -0
  101. equiframe/examples/journeys/b_native_migration.py +181 -0
  102. equiframe/examples/journeys/c_retail_etl.py +460 -0
  103. equiframe/examples/journeys/common.py +136 -0
  104. equiframe/examples/journeys/d_financial_reconciliation.py +96 -0
  105. equiframe/examples/journeys/e_telemetry.py +135 -0
  106. equiframe/examples/journeys/f_data_science_preparation.py +84 -0
  107. equiframe/examples/journeys/g_external_snapshots.py +197 -0
  108. equiframe/examples/journeys/h_portable_ci.py +129 -0
  109. equiframe/examples/journeys/requirements.lock +249 -0
  110. equiframe/examples/journeys/verify_journeys.py +117 -0
  111. equiframe/examples/load_convert_compare.py +85 -0
  112. equiframe/execution.py +355 -0
  113. equiframe/execution_types.py +177 -0
  114. equiframe/ingestion.py +744 -0
  115. equiframe/local.py +126 -0
  116. equiframe/migration/__init__.py +94 -0
  117. equiframe/migration/_physical.py +8 -0
  118. equiframe/migration/backends/_timestamp_transport.py +109 -0
  119. equiframe/migration/backends/duckdb.py +651 -0
  120. equiframe/migration/backends/duckdb_decimal.py +125 -0
  121. equiframe/migration/backends/duckdb_time.py +87 -0
  122. equiframe/migration/backends/pandas.py +544 -0
  123. equiframe/migration/backends/polars.py +915 -0
  124. equiframe/migration/backends/polars_decimal.py +231 -0
  125. equiframe/migration/io.py +198 -0
  126. equiframe/migration/ports.py +96 -0
  127. equiframe/migration/runner.py +545 -0
  128. equiframe/migration/runner_types.py +405 -0
  129. equiframe/migration/types.py +354 -0
  130. equiframe/migration/validation.py +619 -0
  131. equiframe/normalization.py +358 -0
  132. equiframe/pipeline.py +274 -0
  133. equiframe/pipeline_types.py +247 -0
  134. equiframe/ports.py +39 -0
  135. equiframe/preprocessing.py +110 -0
  136. equiframe/profile_types.py +343 -0
  137. equiframe/profiles.py +447 -0
  138. equiframe/py.typed +0 -0
  139. equiframe/r_review.py +706 -0
  140. equiframe/reduction.py +518 -0
  141. equiframe/registry.py +121 -0
  142. equiframe/report_rendering.py +366 -0
  143. equiframe/report_types.py +294 -0
  144. equiframe/reporting.py +26 -0
  145. equiframe/rule_types.py +178 -0
  146. equiframe/rules.py +819 -0
  147. equiframe/schemas/r-execution-binding-1.0.schema.json +46 -0
  148. equiframe/schemas/r-review-binding-1.0.schema.json +28 -0
  149. equiframe/schemas/r-review-options-1.0.schema.json +38 -0
  150. equiframe/schemas/r-review-result-1.0.schema.json +207 -0
  151. equiframe/schemas/reviewed-decision-1.0.schema.json +3394 -0
  152. equiframe/serialization.py +152 -0
  153. equiframe/snapshot.py +296 -0
  154. equiframe/sources.py +283 -0
  155. equiframe/tables.py +459 -0
  156. equiframe/types.py +71 -0
  157. equiframe/values.py +252 -0
  158. equiframe/verification_request.py +35 -0
  159. equiframe/verify.py +799 -0
  160. equiframe/verify_types.py +255 -0
  161. equiframe/workflow.py +510 -0
  162. equiframe/workflow_request.py +38 -0
  163. equiframe-0.12.4.dist-info/METADATA +268 -0
  164. equiframe-0.12.4.dist-info/RECORD +170 -0
  165. equiframe-0.12.4.dist-info/WHEEL +4 -0
  166. equiframe-0.12.4.dist-info/entry_points.txt +3 -0
  167. equiframe-0.12.4.dist-info/licenses/LICENSE +21 -0
  168. equiframe-0.12.4.dist-info/licenses/THIRD_PARTY_NOTICES.md +42 -0
  169. equiframe-0.12.4.dist-info/licenses/tools/cyclonedx/LICENSE +201 -0
  170. equiframe-0.12.4.dist-info/licenses/tools/cyclonedx/PROVENANCE.md +18 -0
@@ -0,0 +1,46 @@
1
+ {
2
+ "additionalProperties": false,
3
+ "description": "Actual execution/profile/IF result associated by the bound finalizer.",
4
+ "properties": {
5
+ "detection_sha256": {
6
+ "pattern": "^[0-9a-f]{64}$",
7
+ "title": "Detection Sha256",
8
+ "type": "string"
9
+ },
10
+ "execution_id": {
11
+ "minLength": 1,
12
+ "title": "Execution Id",
13
+ "type": "string"
14
+ },
15
+ "execution_sha256": {
16
+ "pattern": "^[0-9a-f]{64}$",
17
+ "title": "Execution Sha256",
18
+ "type": "string"
19
+ },
20
+ "output_sha256": {
21
+ "pattern": "^[0-9a-f]{64}$",
22
+ "title": "Output Sha256",
23
+ "type": "string"
24
+ },
25
+ "profile_id": {
26
+ "minLength": 1,
27
+ "title": "Profile Id",
28
+ "type": "string"
29
+ },
30
+ "profile_sha256": {
31
+ "pattern": "^[0-9a-f]{64}$",
32
+ "title": "Profile Sha256",
33
+ "type": "string"
34
+ }
35
+ },
36
+ "required": [
37
+ "execution_id",
38
+ "execution_sha256",
39
+ "profile_id",
40
+ "profile_sha256",
41
+ "detection_sha256",
42
+ "output_sha256"
43
+ ],
44
+ "title": "RExecutionBinding",
45
+ "type": "object"
46
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "additionalProperties": false,
3
+ "description": "Verified local artifacts whose full observations were sent to R.",
4
+ "properties": {
5
+ "comparison_id": {
6
+ "minLength": 1,
7
+ "title": "Comparison Id",
8
+ "type": "string"
9
+ },
10
+ "left_artifact_sha256": {
11
+ "pattern": "^[0-9a-f]{64}$",
12
+ "title": "Left Artifact Sha256",
13
+ "type": "string"
14
+ },
15
+ "right_artifact_sha256": {
16
+ "pattern": "^[0-9a-f]{64}$",
17
+ "title": "Right Artifact Sha256",
18
+ "type": "string"
19
+ }
20
+ },
21
+ "required": [
22
+ "comparison_id",
23
+ "left_artifact_sha256",
24
+ "right_artifact_sha256"
25
+ ],
26
+ "title": "RReviewBinding",
27
+ "type": "object"
28
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "additionalProperties": false,
3
+ "description": "Explicit local executable and cooperative capture/process budgets.\n\nR must already be installed. This API never installs R or any R package.\nByte limits cover captures and the generated transport, not hard process RSS.",
4
+ "properties": {
5
+ "max_bytes": {
6
+ "default": 67108864,
7
+ "exclusiveMinimum": 0,
8
+ "title": "Max Bytes",
9
+ "type": "integer"
10
+ },
11
+ "max_columns": {
12
+ "default": 256,
13
+ "exclusiveMinimum": 0,
14
+ "title": "Max Columns",
15
+ "type": "integer"
16
+ },
17
+ "max_rows": {
18
+ "default": 100000,
19
+ "exclusiveMinimum": 0,
20
+ "title": "Max Rows",
21
+ "type": "integer"
22
+ },
23
+ "rscript": {
24
+ "default": "Rscript",
25
+ "minLength": 1,
26
+ "title": "Rscript",
27
+ "type": "string"
28
+ },
29
+ "timeout_seconds": {
30
+ "default": 30.0,
31
+ "exclusiveMinimum": 0,
32
+ "title": "Timeout Seconds",
33
+ "type": "number"
34
+ }
35
+ },
36
+ "title": "RReviewOptions",
37
+ "type": "object"
38
+ }
@@ -0,0 +1,207 @@
1
+ {
2
+ "$defs": {
3
+ "RReviewBinding": {
4
+ "additionalProperties": false,
5
+ "description": "Verified local artifacts whose full observations were sent to R.",
6
+ "properties": {
7
+ "comparison_id": {
8
+ "minLength": 1,
9
+ "title": "Comparison Id",
10
+ "type": "string"
11
+ },
12
+ "left_artifact_sha256": {
13
+ "pattern": "^[0-9a-f]{64}$",
14
+ "title": "Left Artifact Sha256",
15
+ "type": "string"
16
+ },
17
+ "right_artifact_sha256": {
18
+ "pattern": "^[0-9a-f]{64}$",
19
+ "title": "Right Artifact Sha256",
20
+ "type": "string"
21
+ }
22
+ },
23
+ "required": [
24
+ "comparison_id",
25
+ "left_artifact_sha256",
26
+ "right_artifact_sha256"
27
+ ],
28
+ "title": "RReviewBinding",
29
+ "type": "object"
30
+ }
31
+ },
32
+ "additionalProperties": false,
33
+ "description": "Independent exact comparison, with unsupported/unavailable states explicit.",
34
+ "properties": {
35
+ "binding": {
36
+ "anyOf": [
37
+ {
38
+ "$ref": "#/$defs/RReviewBinding"
39
+ },
40
+ {
41
+ "type": "null"
42
+ }
43
+ ],
44
+ "default": null
45
+ },
46
+ "columns": {
47
+ "default": [],
48
+ "items": {
49
+ "type": "string"
50
+ },
51
+ "title": "Columns",
52
+ "type": "array"
53
+ },
54
+ "complete": {
55
+ "title": "Complete",
56
+ "type": "boolean"
57
+ },
58
+ "contract_violations": {
59
+ "default": 0,
60
+ "minimum": 0,
61
+ "title": "Contract Violations",
62
+ "type": "integer"
63
+ },
64
+ "diagnostics": {
65
+ "default": [],
66
+ "items": {
67
+ "minLength": 1,
68
+ "type": "string"
69
+ },
70
+ "title": "Diagnostics",
71
+ "type": "array"
72
+ },
73
+ "elapsed_seconds": {
74
+ "minimum": 0,
75
+ "title": "Elapsed Seconds",
76
+ "type": "number"
77
+ },
78
+ "left_rows": {
79
+ "default": 0,
80
+ "minimum": 0,
81
+ "title": "Left Rows",
82
+ "type": "integer"
83
+ },
84
+ "left_transport_sha256": {
85
+ "anyOf": [
86
+ {
87
+ "pattern": "^[0-9a-f]{64}$",
88
+ "type": "string"
89
+ },
90
+ {
91
+ "type": "null"
92
+ }
93
+ ],
94
+ "default": null,
95
+ "title": "Left Transport Sha256"
96
+ },
97
+ "matched_rows": {
98
+ "default": 0,
99
+ "minimum": 0,
100
+ "title": "Matched Rows",
101
+ "type": "integer"
102
+ },
103
+ "r_version": {
104
+ "anyOf": [
105
+ {
106
+ "minLength": 1,
107
+ "type": "string"
108
+ },
109
+ {
110
+ "type": "null"
111
+ }
112
+ ],
113
+ "default": null,
114
+ "title": "R Version"
115
+ },
116
+ "reason": {
117
+ "anyOf": [
118
+ {
119
+ "minLength": 1,
120
+ "type": "string"
121
+ },
122
+ {
123
+ "type": "null"
124
+ }
125
+ ],
126
+ "default": null,
127
+ "title": "Reason"
128
+ },
129
+ "returncode": {
130
+ "anyOf": [
131
+ {
132
+ "type": "integer"
133
+ },
134
+ {
135
+ "type": "null"
136
+ }
137
+ ],
138
+ "default": null,
139
+ "title": "Returncode"
140
+ },
141
+ "reviewer": {
142
+ "const": "equiframe-base-r-exact-1.0",
143
+ "default": "equiframe-base-r-exact-1.0",
144
+ "title": "Reviewer",
145
+ "type": "string"
146
+ },
147
+ "reviewer_sha256": {
148
+ "pattern": "^[0-9a-f]{64}$",
149
+ "title": "Reviewer Sha256",
150
+ "type": "string"
151
+ },
152
+ "right_rows": {
153
+ "default": 0,
154
+ "minimum": 0,
155
+ "title": "Right Rows",
156
+ "type": "integer"
157
+ },
158
+ "right_transport_sha256": {
159
+ "anyOf": [
160
+ {
161
+ "pattern": "^[0-9a-f]{64}$",
162
+ "type": "string"
163
+ },
164
+ {
165
+ "type": "null"
166
+ }
167
+ ],
168
+ "default": null,
169
+ "title": "Right Transport Sha256"
170
+ },
171
+ "schema_version": {
172
+ "const": "1.0",
173
+ "default": "1.0",
174
+ "title": "Schema Version",
175
+ "type": "string"
176
+ },
177
+ "spec_sha256": {
178
+ "pattern": "^[0-9a-f]{64}$",
179
+ "title": "Spec Sha256",
180
+ "type": "string"
181
+ },
182
+ "state": {
183
+ "enum": [
184
+ "equivalent",
185
+ "different",
186
+ "not_evaluable"
187
+ ],
188
+ "title": "State",
189
+ "type": "string"
190
+ },
191
+ "unmatched_rows": {
192
+ "default": 0,
193
+ "minimum": 0,
194
+ "title": "Unmatched Rows",
195
+ "type": "integer"
196
+ }
197
+ },
198
+ "required": [
199
+ "state",
200
+ "complete",
201
+ "spec_sha256",
202
+ "reviewer_sha256",
203
+ "elapsed_seconds"
204
+ ],
205
+ "title": "RReviewResult",
206
+ "type": "object"
207
+ }