fal 0.9.2__py3-none-any.whl → 0.9.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.
Potentially problematic release.
This version of fal might be problematic. Click here for more details.
- _fal_testing/utils.py +2 -2
- dbt/adapters/fal/__init__.py +21 -0
- dbt/adapters/fal/__version__.py +1 -0
- dbt/adapters/fal/connections.py +18 -0
- dbt/adapters/fal/impl.py +93 -0
- dbt/adapters/fal/load_db_profile.py +80 -0
- dbt/adapters/fal/wrappers.py +113 -0
- dbt/adapters/fal_experimental/__init__.py +11 -0
- dbt/adapters/fal_experimental/__version__.py +1 -0
- dbt/adapters/fal_experimental/adapter.py +149 -0
- dbt/adapters/fal_experimental/adapter_support.py +234 -0
- dbt/adapters/fal_experimental/connections.py +72 -0
- dbt/adapters/fal_experimental/impl.py +240 -0
- dbt/adapters/fal_experimental/support/athena.py +92 -0
- dbt/adapters/fal_experimental/support/bigquery.py +74 -0
- dbt/adapters/fal_experimental/support/duckdb.py +28 -0
- dbt/adapters/fal_experimental/support/postgres.py +88 -0
- dbt/adapters/fal_experimental/support/redshift.py +56 -0
- dbt/adapters/fal_experimental/support/snowflake.py +76 -0
- dbt/adapters/fal_experimental/support/trino.py +26 -0
- dbt/adapters/fal_experimental/telemetry/__init__.py +1 -0
- dbt/adapters/fal_experimental/telemetry/telemetry.py +411 -0
- dbt/adapters/fal_experimental/teleport.py +192 -0
- dbt/adapters/fal_experimental/teleport_adapter_support.py +23 -0
- dbt/adapters/fal_experimental/teleport_support/duckdb.py +122 -0
- dbt/adapters/fal_experimental/teleport_support/snowflake.py +72 -0
- dbt/adapters/fal_experimental/utils/__init__.py +50 -0
- dbt/adapters/fal_experimental/utils/environments.py +302 -0
- dbt/fal/adapters/python/__init__.py +3 -0
- dbt/fal/adapters/python/connections.py +319 -0
- dbt/fal/adapters/python/impl.py +291 -0
- dbt/fal/adapters/teleport/__init__.py +3 -0
- dbt/fal/adapters/teleport/impl.py +103 -0
- dbt/fal/adapters/teleport/info.py +73 -0
- dbt/include/fal/__init__.py +3 -0
- dbt/include/fal/dbt_project.yml +5 -0
- dbt/include/fal/macros/materializations/table.sql +46 -0
- dbt/include/fal/macros/teleport_duckdb.sql +8 -0
- dbt/include/fal/macros/teleport_snowflake.sql +31 -0
- dbt/include/fal_experimental/__init__.py +3 -0
- dbt/include/fal_experimental/dbt_project.yml +5 -0
- dbt/include/fal_experimental/macros/materializations/table.sql +36 -0
- fal/__init__.py +61 -11
- fal/dbt/__init__.py +11 -0
- fal/dbt/cli/__init__.py +1 -0
- fal/{cli → dbt/cli}/args.py +7 -2
- fal/{cli → dbt/cli}/cli.py +18 -3
- fal/{cli → dbt/cli}/dbt_runner.py +1 -1
- fal/{cli → dbt/cli}/fal_runner.py +6 -6
- fal/{cli → dbt/cli}/flow_runner.py +9 -9
- fal/{cli → dbt/cli}/model_generator/model_generator.py +5 -5
- fal/{cli → dbt/cli}/selectors.py +2 -2
- fal/{fal_script.py → dbt/fal_script.py} +4 -4
- {faldbt → fal/dbt/integration}/lib.py +2 -2
- {faldbt → fal/dbt/integration}/magics.py +2 -2
- {faldbt → fal/dbt/integration}/parse.py +7 -7
- {faldbt → fal/dbt/integration}/project.py +7 -7
- fal/dbt/integration/utils/yaml_helper.py +80 -0
- fal/dbt/new/project.py +43 -0
- fal/{node_graph.py → dbt/node_graph.py} +2 -2
- fal/{packages → dbt/packages}/dependency_analysis.py +32 -38
- fal/{packages → dbt/packages}/environments/__init__.py +3 -3
- fal/{packages → dbt/packages}/environments/base.py +2 -2
- fal/{packages → dbt/packages}/environments/conda.py +3 -3
- fal/{packages → dbt/packages}/environments/virtual_env.py +3 -3
- fal/{packages → dbt/packages}/isolated_runner.py +5 -5
- fal/{planner → dbt/planner}/executor.py +4 -4
- fal/{planner → dbt/planner}/plan.py +3 -3
- fal/{planner → dbt/planner}/schedule.py +5 -5
- fal/{planner → dbt/planner}/tasks.py +5 -5
- fal/{telemetry → dbt/telemetry}/telemetry.py +4 -4
- fal/{typing.py → dbt/typing.py} +2 -2
- fal/{utils.py → dbt/utils.py} +2 -2
- {fal-0.9.2.dist-info → fal-0.9.4.dist-info}/METADATA +98 -117
- fal-0.9.4.dist-info/RECORD +91 -0
- fal-0.9.4.dist-info/entry_points.txt +4 -0
- fal/cli/__init__.py +0 -1
- fal-0.9.2.dist-info/RECORD +0 -47
- fal-0.9.2.dist-info/entry_points.txt +0 -3
- {faldbt → dbt/adapters/fal_experimental}/utils/yaml_helper.py +0 -0
- /fal/{cli → dbt/cli}/model_generator/__init__.py +0 -0
- /fal/{cli → dbt/cli}/model_generator/module_check.py +0 -0
- /fal/{feature_store → dbt/feature_store}/__init__.py +0 -0
- /fal/{feature_store → dbt/feature_store}/feature.py +0 -0
- /fal/{packages → dbt/integration}/__init__.py +0 -0
- {faldbt → fal/dbt/integration}/logger.py +0 -0
- /fal/{planner → dbt/integration/utils}/__init__.py +0 -0
- {faldbt → fal/dbt/integration}/version.py +0 -0
- /fal/{telemetry → dbt/packages}/__init__.py +0 -0
- /fal/{packages → dbt/packages}/bridge.py +0 -0
- {faldbt → fal/dbt/planner}/__init__.py +0 -0
- {faldbt/utils → fal/dbt/telemetry}/__init__.py +0 -0
- {fal-0.9.2.dist-info → fal-0.9.4.dist-info}/WHEEL +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: fal
|
|
3
|
-
Version: 0.9.
|
|
4
|
-
Summary:
|
|
5
|
-
Home-page: https://github.com/fal-ai/fal
|
|
6
|
-
Keywords: dbt,pandas
|
|
3
|
+
Version: 0.9.4
|
|
4
|
+
Summary: Run python scripts from any dbt project.
|
|
5
|
+
Home-page: https://github.com/fal-ai/fal
|
|
6
|
+
Keywords: dbt,pandas,fal,runtime
|
|
7
7
|
Author: Features & Labels
|
|
8
8
|
Author-email: hello@fal.ai
|
|
9
9
|
Requires-Python: >=3.7.2,<3.12
|
|
@@ -15,50 +15,116 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
16
16
|
Provides-Extra: athena
|
|
17
17
|
Provides-Extra: bigquery
|
|
18
|
-
Provides-Extra: cloud
|
|
19
|
-
Provides-Extra: dev
|
|
20
18
|
Provides-Extra: duckdb
|
|
21
19
|
Provides-Extra: postgres
|
|
22
20
|
Provides-Extra: redshift
|
|
23
21
|
Provides-Extra: snowflake
|
|
24
|
-
Provides-Extra:
|
|
22
|
+
Provides-Extra: teleport
|
|
23
|
+
Provides-Extra: trino
|
|
25
24
|
Requires-Dist: PyYAML (>=6.0,<7.0)
|
|
26
25
|
Requires-Dist: agate-sql (>=0.5.8,<0.6.0)
|
|
27
26
|
Requires-Dist: astor (>=0.8.1,<0.9.0)
|
|
27
|
+
Requires-Dist: awswrangler[redshift] (>=3.0.0) ; (python_version >= "3.8") and (extra == "redshift")
|
|
28
28
|
Requires-Dist: backports.functools_lru_cache (>=1.6.4,<2.0.0)
|
|
29
|
-
Requires-Dist: behave (>=1.2.6,<2.0.0) ; extra == "test"
|
|
30
|
-
Requires-Dist: black (>=22.3,<23.0) ; extra == "test"
|
|
31
29
|
Requires-Dist: dbt-core (>=1.5,<=1.5.1)
|
|
32
30
|
Requires-Dist: deprecation (>=2.1.0,<3.0.0)
|
|
33
31
|
Requires-Dist: dill (>=0.3.6,<0.3.7)
|
|
34
32
|
Requires-Dist: duckdb-engine (>=0.1.8,<0.2.0) ; extra == "duckdb"
|
|
33
|
+
Requires-Dist: fal-serverless (>=0.6.35,<0.7.0)
|
|
35
34
|
Requires-Dist: google-cloud-bigquery[pandas] (>=3.5.0,<3.6.0) ; extra == "bigquery"
|
|
36
|
-
Requires-Dist: importlib-metadata (>=
|
|
37
|
-
Requires-Dist:
|
|
38
|
-
Requires-Dist: mock (>=4.0.3,<5.0.0) ; extra == "test"
|
|
39
|
-
Requires-Dist: packaging (>20.9)
|
|
35
|
+
Requires-Dist: importlib-metadata (>=6.0.0,<7.0.0)
|
|
36
|
+
Requires-Dist: packaging (>=23)
|
|
40
37
|
Requires-Dist: pandas (>=1.3.4,<2.0.0)
|
|
41
38
|
Requires-Dist: platformdirs (>=2.5.2,<3.0.0)
|
|
42
39
|
Requires-Dist: posthog (>=1.4.5,<2.0.0)
|
|
43
|
-
Requires-Dist:
|
|
44
|
-
Requires-Dist: pytest-mock (>=3.7.0,<4.0.0) ; extra == "test"
|
|
45
|
-
Requires-Dist: requests (>=2.27.1,<3.0.0)
|
|
40
|
+
Requires-Dist: s3fs (>=2022.8.2) ; extra == "teleport"
|
|
46
41
|
Requires-Dist: snowflake-connector-python[pandas] (>=3.0,<4.0) ; extra == "snowflake"
|
|
42
|
+
Requires-Dist: sqlalchemy (>=1.4.41,<2.0.0)
|
|
47
43
|
Requires-Dist: sqlalchemy-redshift (>=0.8.9,<0.9.0) ; extra == "redshift"
|
|
44
|
+
Requires-Dist: trino[sqlalchemy] (>=0.321.0,<0.322.0) ; extra == "trino"
|
|
48
45
|
Requires-Dist: virtualenv (>=20.16.2,<21.0.0)
|
|
49
|
-
Project-URL: Documentation, https://docs.fal.ai
|
|
50
46
|
Project-URL: Repository, https://github.com/fal-ai/fal
|
|
51
47
|
Description-Content-Type: text/markdown
|
|
52
48
|
|
|
53
|
-
<!-- <base href="https://github.com/fal-ai/fal/blob/-/projects/
|
|
49
|
+
<!-- <base href="https://github.com/fal-ai/fal/blob/-/projects/adapter/" target="_blank" /> -->
|
|
54
50
|
|
|
55
|
-
# fal
|
|
51
|
+
# Welcome to dbt-fal 👋 do more with dbt
|
|
56
52
|
|
|
57
|
-
fal is the easiest way to run
|
|
53
|
+
dbt-fal adapter is the ✨easiest✨ way to run your [dbt Python models](https://docs.getdbt.com/docs/building-a-dbt-project/building-models/python-models).
|
|
58
54
|
|
|
59
|
-
|
|
55
|
+
Starting with dbt v1.3, you can now build your dbt models in Python. This leads to some cool use cases that was once difficult to build with SQL alone. Some examples are:
|
|
60
56
|
|
|
61
|
-
|
|
57
|
+
- Using Python stats libraries to calculate stats
|
|
58
|
+
- Building forecasts
|
|
59
|
+
- Building other predictive models such as classification and clustering
|
|
60
|
+
|
|
61
|
+
This is fantastic! BUT, there is still one issue though! The developer experience with Snowflake and Bigquery is not great, and there is no Python support for Redshift and Postgres.
|
|
62
|
+
|
|
63
|
+
dbt-fal provides the best environment to run your Python models that works with all other data warehouses! With dbt-fal, you can:
|
|
64
|
+
|
|
65
|
+
- Build and test your models locally
|
|
66
|
+
- Isolate each model to run in its own environment with its own dependencies
|
|
67
|
+
- [Coming Soon] Run your Python models in the ☁️ cloud ☁️ with elasticly scaling Python environments.
|
|
68
|
+
- [Coming Soon] Even add GPUs to your models for some heavier workloads such as training ML models.
|
|
69
|
+
|
|
70
|
+
## Getting Started
|
|
71
|
+
|
|
72
|
+
### 1. Install dbt-fal
|
|
73
|
+
`pip install dbt-fal[bigquery,snowflake]` *Add your current warehouse here*
|
|
74
|
+
|
|
75
|
+
### 2. Update your `profiles.yml` and add the fal adapter
|
|
76
|
+
|
|
77
|
+
```yaml
|
|
78
|
+
jaffle_shop:
|
|
79
|
+
target: dev_with_fal
|
|
80
|
+
outputs:
|
|
81
|
+
dev_with_fal:
|
|
82
|
+
type: fal
|
|
83
|
+
db_profile: dev_bigquery # This points to your main adapter
|
|
84
|
+
dev_bigquery:
|
|
85
|
+
type: bigquery
|
|
86
|
+
...
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Don't forget to point to your main adapter with the `db_profile` attribute. This is how the fal adapter knows how to connect to your data warehouse.
|
|
90
|
+
|
|
91
|
+
### 3. `dbt run`!
|
|
92
|
+
That is it! It is really that simple 😊
|
|
93
|
+
|
|
94
|
+
### 4. [🚨 Cool Feature Alert 🚨] Environment management with dbt-fal
|
|
95
|
+
If you want some help with environment management (vs sticking to the default env that the dbt process runs in), you can create a fal_project.yml in the same folder as your dbt project and have “named environments”:
|
|
96
|
+
|
|
97
|
+
In your dbt project folder:
|
|
98
|
+
```bash
|
|
99
|
+
$ touch fal_project.yml
|
|
100
|
+
|
|
101
|
+
# Paste the config below
|
|
102
|
+
environments:
|
|
103
|
+
- name: ml
|
|
104
|
+
type: venv
|
|
105
|
+
requirements:
|
|
106
|
+
- prophet
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
and then in your dbt model:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
$ vi models/orders_forecast.py
|
|
113
|
+
|
|
114
|
+
def model(dbt, fal):
|
|
115
|
+
dbt.config(fal_environment="ml") # Add this line
|
|
116
|
+
|
|
117
|
+
df: pd.DataFrame = dbt.ref("orders_daily")
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
The `dbt.config(fal_environment=“ml”)` will give you an isolated clean env to run things in, so you dont pollute your package space.
|
|
121
|
+
|
|
122
|
+
### 5. [Coming Soon™️] Move your compute to the Cloud!
|
|
123
|
+
Let us know if you are interested in this. We are looking for beta users.
|
|
124
|
+
|
|
125
|
+
# `dbt-fal` command line tool
|
|
126
|
+
|
|
127
|
+
With the `dbt-fal` CLI, you can:
|
|
62
128
|
|
|
63
129
|
- [Send Slack notifications](https://github.com/fal-ai/fal/blob/-/examples/slack-example) upon dbt model success or failure.
|
|
64
130
|
- [Load data from external data sources](https://blog.fal.ai/populate-dbt-models-with-csv-data/) before a model starts running.
|
|
@@ -67,14 +133,11 @@ With the `fal` CLI, you can:
|
|
|
67
133
|
|
|
68
134
|
Head to our [documentation site](https://docs.fal.ai/) for a deeper dive or play with [in-depth examples](https://github.com/fal-ai/fal/blob/-/examples/README.md) to see how fal can help you get more done with dbt.
|
|
69
135
|
|
|
70
|
-
> ❗️ If you would like to write data back to your data-warehouse, we recommend using the [`dbt-fal`](https://pypi.org/project/dbt-fal/) adapter.
|
|
71
|
-
|
|
72
|
-
# Getting Started
|
|
73
136
|
|
|
74
|
-
## 1. Install `fal`
|
|
137
|
+
## 1. Install `dbt-fal`
|
|
75
138
|
|
|
76
139
|
```bash
|
|
77
|
-
$ pip install fal
|
|
140
|
+
$ pip install dbt-fal[postgres]
|
|
78
141
|
```
|
|
79
142
|
|
|
80
143
|
## 2. Go to your dbt project directory
|
|
@@ -124,11 +187,11 @@ models:
|
|
|
124
187
|
- send_slack_message.py
|
|
125
188
|
```
|
|
126
189
|
|
|
127
|
-
## 5. Run `fal flow run`
|
|
190
|
+
## 5. Run `dbt-fal flow run`
|
|
128
191
|
|
|
129
192
|
```bash
|
|
130
|
-
$ fal flow run
|
|
131
|
-
# both your dbt models and
|
|
193
|
+
$ dbt-fal flow run
|
|
194
|
+
# both your dbt models and python scripts are run
|
|
132
195
|
```
|
|
133
196
|
|
|
134
197
|
## 6. Alternatively run `dbt` and `fal` consecutively
|
|
@@ -137,44 +200,10 @@ $ fal flow run
|
|
|
137
200
|
$ dbt run
|
|
138
201
|
# Your dbt models are run
|
|
139
202
|
|
|
140
|
-
$ fal run
|
|
203
|
+
$ dbt-fal run
|
|
141
204
|
# Your python scripts are run
|
|
142
205
|
```
|
|
143
206
|
|
|
144
|
-
# Examples
|
|
145
|
-
|
|
146
|
-
To explore what is possible with fal, take a look at the in-depth examples below. We will be adding more examples here over time:
|
|
147
|
-
|
|
148
|
-
- [Example 1: Send Slack notifications](https://github.com/fal-ai/fal/blob/-/examples/slack-example/README.md)
|
|
149
|
-
- [Example 2: Use dbt from a Jupyter Notebook](https://github.com/fal-ai/fal/blob/-/examples/write_jupyter_notebook/README.md)
|
|
150
|
-
- [Example 3: Read and parse dbt metadata](https://github.com/fal-ai/fal/blob/-/examples/read_dbt_metadata/README.md)
|
|
151
|
-
- [Example 4: Metric forecasting](https://github.com/fal-ai/fal/blob/-/examples/metric-forecast/README.md)
|
|
152
|
-
- [Example 5: Sentiment analysis on support tickets](https://github.com/fal-ai/fal/blob/-/examples/sentiment-analysis/README.md)
|
|
153
|
-
- [Example 6: Anomaly Detection](https://github.com/fal-ai/fal/blob/-/examples/anomaly-detection/README.md)
|
|
154
|
-
- [Example 7: Incorporate fal in CI/CD workflow](https://github.com/fal-ai/fal/blob/-/examples/ci_example/README.md)
|
|
155
|
-
- [Example 8: Send events to Datadog](https://github.com/fal-ai/fal/blob/-/examples/datadog_event/README.md)
|
|
156
|
-
- [Example 9: Write dbt artifacts to GCS](https://github.com/fal-ai/fal/blob/-/examples/write_to_gcs/README.md)
|
|
157
|
-
- [Example 10: Write dbt artifacts to AWS S3](https://github.com/fal-ai/fal/blob/-/examples/write_to_aws/README.md)
|
|
158
|
-
|
|
159
|
-
[Check out the examples directory for more](https://github.com/fal-ai/fal/blob/-/examples/README.md)
|
|
160
|
-
|
|
161
|
-
# How it works?
|
|
162
|
-
|
|
163
|
-
`fal` is a command line tool that can read the state of your `dbt` project and help you run Python scripts after your `dbt run`s by leveraging the [`meta` config](https://docs.getdbt.com/reference/resource-configs/meta).
|
|
164
|
-
|
|
165
|
-
```yaml
|
|
166
|
-
models:
|
|
167
|
-
- name: historical_ozone_levels
|
|
168
|
-
...
|
|
169
|
-
meta:
|
|
170
|
-
fal:
|
|
171
|
-
post-hook:
|
|
172
|
-
# scripts will run concurrently
|
|
173
|
-
- send_slack_message.py
|
|
174
|
-
- another_python_script.py
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
`fal` also provides useful helpers within the Python context to seamlessly interact with dbt models: `ref("my_dbt_model_name")` will pull a dbt model into your Python script as a [`pandas.DataFrame`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html).
|
|
178
207
|
|
|
179
208
|
## Running scripts before dbt runs
|
|
180
209
|
|
|
@@ -197,11 +226,11 @@ models:
|
|
|
197
226
|
- fal_scripts/slack.py
|
|
198
227
|
```
|
|
199
228
|
|
|
200
|
-
`fal flow run` will run `fal_scripts/trigger_fivetran.py`, then the `boston` dbt model, and finally `fal_scripts/slack.py`.
|
|
229
|
+
`dbt-fal flow run` will run `fal_scripts/trigger_fivetran.py`, then the `boston` dbt model, and finally `fal_scripts/slack.py`.
|
|
201
230
|
If a model is selected with a selection flag (e.g. `--select boston`), the hooks associated to the model will always run with it.
|
|
202
231
|
|
|
203
232
|
```bash
|
|
204
|
-
$ fal flow run --select boston
|
|
233
|
+
$ dbt-fal flow run --select boston
|
|
205
234
|
```
|
|
206
235
|
|
|
207
236
|
# Concepts
|
|
@@ -312,13 +341,14 @@ from sqlalchemy.types import Integer
|
|
|
312
341
|
write_to_model(df, dtype={'value': Integer()})
|
|
313
342
|
```
|
|
314
343
|
|
|
344
|
+
|
|
315
345
|
## Importing `fal` as a Python package
|
|
316
346
|
|
|
317
347
|
You may be interested in accessing dbt models and sources easily from a Jupyter Notebook or another Python script.
|
|
318
348
|
For that, just import the `fal` package and intantiate a FalDbt project:
|
|
319
349
|
|
|
320
350
|
```py
|
|
321
|
-
from fal import FalDbt
|
|
351
|
+
from fal.dbt import FalDbt
|
|
322
352
|
faldbt = FalDbt(profiles_dir="~/.dbt", project_dir="../my_project")
|
|
323
353
|
|
|
324
354
|
faldbt.list_sources()
|
|
@@ -342,59 +372,10 @@ tickets = faldbt.ref('stg_zendesk_ticket_data')
|
|
|
342
372
|
# pandas.DataFrame
|
|
343
373
|
```
|
|
344
374
|
|
|
345
|
-
# Supported `dbt` versions
|
|
346
|
-
|
|
347
|
-
The latest `fal` version currently supports dbt `1.4.*`.
|
|
348
|
-
|
|
349
|
-
If you need another version, [open an issue](https://github.com/fal-ai/fal/issues/new) and we will take a look!
|
|
350
|
-
|
|
351
|
-
# Contributing / Development
|
|
352
|
-
|
|
353
|
-
We use Poetry for dependency management and easy development testing.
|
|
354
|
-
|
|
355
|
-
Use Poetry shell to trying your changes right away:
|
|
356
|
-
|
|
357
|
-
```sh
|
|
358
|
-
~ $ cd fal
|
|
359
|
-
|
|
360
|
-
~/fal $ poetry install
|
|
361
|
-
|
|
362
|
-
~/fal $ poetry shell
|
|
363
|
-
Spawning shell within [...]/fal-eFX98vrn-py3.8
|
|
364
|
-
|
|
365
|
-
~/fal fal-eFX98vrn-py3.8 $ cd ../dbt_project
|
|
366
|
-
|
|
367
|
-
~/dbt_project fal-eFX98vrn-py3.8 $ fal flow run
|
|
368
|
-
19:27:30 Found 5 models, 0 tests, 0 snapshots, 0 analyses, 165 macros, 0 operations, 0 seed files, 1 source, 0 exposures, 0 metrics
|
|
369
|
-
19:27:30 | Starting fal run for following models and scripts:
|
|
370
|
-
[...]
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
## Running tests
|
|
374
|
-
|
|
375
|
-
Tests rely on a Postgres database to be present, this can be achieved with docker-compose:
|
|
376
|
-
|
|
377
|
-
```sh
|
|
378
|
-
~/fal $ docker-compose -f tests/docker-compose.yml up -d
|
|
379
|
-
Creating network "tests_default" with the default driver
|
|
380
|
-
Creating fal_db ... done
|
|
381
|
-
|
|
382
|
-
# Necessary for the import test
|
|
383
|
-
~/fal $ dbt run --profiles-dir tests/mock/mockProfile --project-dir tests/mock
|
|
384
|
-
Running with dbt=1.0.1
|
|
385
|
-
[...]
|
|
386
|
-
Completed successfully
|
|
387
|
-
Done. PASS=5 WARN=0 ERROR=0 SKIP=0 TOTAL=5
|
|
388
|
-
|
|
389
|
-
~/fal $ pytest -s
|
|
390
|
-
```
|
|
391
|
-
|
|
392
375
|
# Why are we building this?
|
|
393
376
|
|
|
394
377
|
We think `dbt` is great because it empowers data people to get more done with the tools that they are already familiar with.
|
|
395
378
|
|
|
396
|
-
`dbt`'s SQL only design is powerful, but if you ever want to get out of SQL-land and connect to external services or get into Python-land for any reason, you will have a hard time. We built `fal` to enable Python workloads (sending alerts to Slack, building predictive models, pushing data to non-data-warehouse destinations and more) **right within `dbt`**.
|
|
397
|
-
|
|
398
379
|
This library will form the basis of our attempt to more comprehensively enable **data science workloads** downstream of `dbt`. And because having reliable data pipelines is the most important ingredient in building predictive analytics, we are building a library that integrates well with dbt.
|
|
399
380
|
|
|
400
381
|
# Have feedback or need help?
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
dbt/adapters/fal/__init__.py,sha256=VwZ08vx2PW89y2oTY0tbB-dIQy3xKc84GmvqbunNPIY,639
|
|
2
|
+
dbt/adapters/fal/__version__.py,sha256=fFFr4WLVlhuwQUM305_QUjACDVG0eb7I7tgznnvNQtU,18
|
|
3
|
+
dbt/adapters/fal/connections.py,sha256=lcgcGlRBfqZq6wR2JKO95iu0oCc_ioyn2COWEjqsMEU,392
|
|
4
|
+
dbt/adapters/fal/impl.py,sha256=lTow7rJMehpk4Fkcz-Qnd-ZomL2IAy8ECNKR9RharOw,3369
|
|
5
|
+
dbt/adapters/fal/load_db_profile.py,sha256=mshPYal9yH6iYh_Ep1Y1GcIapxu1Nw3mINybyCyD3TU,2768
|
|
6
|
+
dbt/adapters/fal/wrappers.py,sha256=q2u36PMExI4TitBkNrbworJkOD_alcgX3RJ57ZiaWxQ,4091
|
|
7
|
+
dbt/adapters/fal_experimental/__init__.py,sha256=dNHVZjPoSJArCgNXagh5SQyRenK6Pi9Q21VwyMhJcVM,344
|
|
8
|
+
dbt/adapters/fal_experimental/__version__.py,sha256=fFFr4WLVlhuwQUM305_QUjACDVG0eb7I7tgznnvNQtU,18
|
|
9
|
+
dbt/adapters/fal_experimental/adapter.py,sha256=Nu1O07l1Vtr9u1IywibIrcdJy-5Nh18o2nBh6aVTbzA,4861
|
|
10
|
+
dbt/adapters/fal_experimental/adapter_support.py,sha256=qfSxls9HvsAmodpgAuEnwodX0JgvL9A0PWkV5NWUjFs,8381
|
|
11
|
+
dbt/adapters/fal_experimental/connections.py,sha256=DF9sQhq-jYSuO97sxrbPOXdEDev2PuVShiG2W8P1QG8,1627
|
|
12
|
+
dbt/adapters/fal_experimental/impl.py,sha256=2G3FfFYFUXCUsuWx72MVZOjob7hwEusm9eAf8cPxwFY,8714
|
|
13
|
+
dbt/adapters/fal_experimental/support/athena.py,sha256=iZrMapDPBtrZeEmzF1S4wx4dMo4gO-rexl-9csBouAo,3192
|
|
14
|
+
dbt/adapters/fal_experimental/support/bigquery.py,sha256=F8jgqerhrL4s-_kThW2RpXdMyykRMgrVGBAS-srmyfU,2686
|
|
15
|
+
dbt/adapters/fal_experimental/support/duckdb.py,sha256=uHvkcH6cLO4Hw-U8U44go0ZfSn9y5ZxOY6aMda6bwak,980
|
|
16
|
+
dbt/adapters/fal_experimental/support/postgres.py,sha256=aHNnKGXmKA6njAKkauvL3-lHoGUPLsHER3iNxx-J_10,2977
|
|
17
|
+
dbt/adapters/fal_experimental/support/redshift.py,sha256=MryR-wmBdZZGB41ZtgtDF7CeqPaqiTe5IOtgF0UfhTM,1633
|
|
18
|
+
dbt/adapters/fal_experimental/support/snowflake.py,sha256=ZC2kthLO08VoVy7xtUPczOpxTpaVXUWAuY2pNDHrYHo,2781
|
|
19
|
+
dbt/adapters/fal_experimental/support/trino.py,sha256=3pDGGsPk0OpXhMd9FFGY16MMEPZTcihWE5uHYlgx8qQ,821
|
|
20
|
+
dbt/adapters/fal_experimental/telemetry/__init__.py,sha256=qYIWiHLzqpDMPAixoGuKXETfub8cNm1TIjP0XE55AmE,25
|
|
21
|
+
dbt/adapters/fal_experimental/telemetry/telemetry.py,sha256=Ov66uo-U6xM58hOJpW6d7feOrG4RC8jIjnlmXqDjFZA,10767
|
|
22
|
+
dbt/adapters/fal_experimental/teleport.py,sha256=kvWDQB_e_RsA6AnwaNU1nk-Bu55bhdc6FtJ2Kv8kA04,6572
|
|
23
|
+
dbt/adapters/fal_experimental/teleport_adapter_support.py,sha256=2iXrpQ9D3jKQqJzph6jfiWt1DSvZedogauzcdWeZUzI,1153
|
|
24
|
+
dbt/adapters/fal_experimental/teleport_support/duckdb.py,sha256=cAdGzcesGQFT3AIHb-c6Td01igr4T7nMox-U7q3sUn8,4719
|
|
25
|
+
dbt/adapters/fal_experimental/teleport_support/snowflake.py,sha256=ag9J6HyHl21TuSRtR6mQhwpr7gdtErRlZR0sk-dR23A,2972
|
|
26
|
+
dbt/adapters/fal_experimental/utils/__init__.py,sha256=o5Nz9NNCM__bhRl3_tb07HRR7ogFuZgi_waCE-BKa9Q,1256
|
|
27
|
+
dbt/adapters/fal_experimental/utils/environments.py,sha256=Xj1mWQb_j6blLImewRI0t03h82QcxSKJK6iASWWKprY,9804
|
|
28
|
+
dbt/adapters/fal_experimental/utils/yaml_helper.py,sha256=k2MtoOHVAHMXSEh6FFYxoSZZx1wmvdf1me7IFVmw19E,1970
|
|
29
|
+
dbt/fal/adapters/python/__init__.py,sha256=1xWOnNgJNaBHowLCAWeIAjpZ3gF1dq9l8nxks5zuqGw,208
|
|
30
|
+
dbt/fal/adapters/python/connections.py,sha256=lE7WGyKBWrU9UEy9rHYhLa8KWzlS4JgJPZYJeEcrmvU,11898
|
|
31
|
+
dbt/fal/adapters/python/impl.py,sha256=VMQCSkMkoolOo9EU1Ny_-8aJlC-bZaiSFf1wCBAfgbU,10015
|
|
32
|
+
dbt/fal/adapters/teleport/__init__.py,sha256=mGP9z0YHVggVxrY7nk1FKINdVhUzyY9RG6mFhOf4sys,181
|
|
33
|
+
dbt/fal/adapters/teleport/impl.py,sha256=1ycpmRHaBskJ6bAZybA2l6bWycpkDSMvS4WGWC6oLT4,3498
|
|
34
|
+
dbt/fal/adapters/teleport/info.py,sha256=gDfqyO4060-UE5OJIxIZ9iAWk8s9bcZLBNpl0zgS-mg,2310
|
|
35
|
+
dbt/include/fal/__init__.py,sha256=vBGWeG-dHHkimfnX8axBJ4IgAowFw8xADmo6Auzn2xc,52
|
|
36
|
+
dbt/include/fal/dbt_project.yml,sha256=ODYEcHaq_MWtZK4XkCLiv1u3ChdQuzYxpxEMn5IiEIo,70
|
|
37
|
+
dbt/include/fal/macros/materializations/table.sql,sha256=skMA8pdSdzceUEtXOA5e0TCIe_zuqwAr4KTDsVMcNEw,1213
|
|
38
|
+
dbt/include/fal/macros/teleport_duckdb.sql,sha256=8N7lZy5H-O8MbWENwq95oGeK6sQqgPf1BOqjX9ujOEY,265
|
|
39
|
+
dbt/include/fal/macros/teleport_snowflake.sql,sha256=mXo2iV4Ocj1ixOPMv4VjD4ha0KrmhkjzbBPtG8xFoeE,921
|
|
40
|
+
dbt/include/fal_experimental/__init__.py,sha256=vBGWeG-dHHkimfnX8axBJ4IgAowFw8xADmo6Auzn2xc,52
|
|
41
|
+
dbt/include/fal_experimental/dbt_project.yml,sha256=r2itIfdWtNTvE9SmRJ0R7FOjCalKWPLjntHr-liYMSc,83
|
|
42
|
+
dbt/include/fal_experimental/macros/materializations/table.sql,sha256=_R7jR1MRMoSO3Pv_UAUBbpEu-tXKOQS7Lr86Udhh38U,989
|
|
43
|
+
fal/__init__.py,sha256=G_s4cL-P9ooLaJk3CEfg_Pu42uQAyYkrcVi9GWPkJFY,1905
|
|
44
|
+
fal/dbt/__init__.py,sha256=IYo6vCmfe9A4eUS5ehCrBXQ7wzF5NsaclsGYDKTBiIw,238
|
|
45
|
+
fal/dbt/cli/__init__.py,sha256=ChDWHUA042He1e4H58zUvTi5Cm4RICNmsABH9Hlzc1I,30
|
|
46
|
+
fal/dbt/cli/args.py,sha256=A6C-FctdpmFI4oipngK1fbTWtyK3lFpP0QmjdhiBX2o,7650
|
|
47
|
+
fal/dbt/cli/cli.py,sha256=fueFoatTjBzZl41KmD7bigtumnDyaaDOokpsWof4EyE,1550
|
|
48
|
+
fal/dbt/cli/dbt_runner.py,sha256=hn1ks7TKJx8Vy-QKdMqNTlgAejb_m4MosM_6VwBDLNA,5482
|
|
49
|
+
fal/dbt/cli/fal_runner.py,sha256=YG_loQxd_SHa72WyjaOPteBlzSzrR3rlKbACzICeCto,5857
|
|
50
|
+
fal/dbt/cli/flow_runner.py,sha256=BkjEXRiNgDUPeQgpwSSiZSvFDxrgKqTy1jlE1-sEbXA,4475
|
|
51
|
+
fal/dbt/cli/model_generator/__init__.py,sha256=OGu8cz3PjjrWqpC4EH7NSBAj57Niyep0Nc_CX4YECYc,56
|
|
52
|
+
fal/dbt/cli/model_generator/model_generator.py,sha256=eyPpxQZXzHvLGXWhF61OcaeSQIS8UO5vqu9inHdfmqw,5543
|
|
53
|
+
fal/dbt/cli/model_generator/module_check.py,sha256=p4PiHsWG5MEebmhOFZaL6KiXd4SrOtKNfEys7twIrAI,3180
|
|
54
|
+
fal/dbt/cli/selectors.py,sha256=aWokwA0BNu8X_LeaMemlK0EaBf-qeR7wSetOw51OuKo,9759
|
|
55
|
+
fal/dbt/fal_script.py,sha256=8O37TWsyDWE-h5nRIV_k_wtyEdjlafIfU41cAcNfGnY,12349
|
|
56
|
+
fal/dbt/feature_store/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
+
fal/dbt/feature_store/feature.py,sha256=spvdKH5_I1Wm-Su6g7B6IMWkCiuGqNKukjRFS_Wf19E,401
|
|
58
|
+
fal/dbt/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
59
|
+
fal/dbt/integration/lib.py,sha256=MWpK4t5DOHprKdJU0zUogqc8bmsmdY5CYZNTmwsSFW4,24589
|
|
60
|
+
fal/dbt/integration/logger.py,sha256=k1dNcifiFLLtI4PnvGoVJ1lGcST4cPNXt2f3tEWIq0c,3273
|
|
61
|
+
fal/dbt/integration/magics.py,sha256=1s-GOz5toPRiUuJfwJ2XLJB_iSrSa22Nl-0rw2Y10bs,1867
|
|
62
|
+
fal/dbt/integration/parse.py,sha256=lHAu0ud95-xArxkoqKbktTjrw2QR0GnRbIRRlXZ7byo,9103
|
|
63
|
+
fal/dbt/integration/project.py,sha256=4PfcjCdvbJsy4jkQl3WAdTkE_GYrrlr0azV3YyVMqN0,27168
|
|
64
|
+
fal/dbt/integration/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
+
fal/dbt/integration/utils/yaml_helper.py,sha256=k2MtoOHVAHMXSEh6FFYxoSZZx1wmvdf1me7IFVmw19E,1970
|
|
66
|
+
fal/dbt/integration/version.py,sha256=hxqo8cVvFN3kzYI4X4ugzAum6XSYUPZWL-AUf-5Rg8Y,317
|
|
67
|
+
fal/dbt/new/project.py,sha256=xZ-tl9n_g_t-M6VeGLwpNjnuyzwJz03uchnKPDWM2ig,1530
|
|
68
|
+
fal/dbt/node_graph.py,sha256=YuhpYR0JRg89XK2pRZs8V7cg32o7y0iDI-WCu8OvnhU,8411
|
|
69
|
+
fal/dbt/packages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
70
|
+
fal/dbt/packages/bridge.py,sha256=sMpRp1R3ai3pKPocVJ7B4Mmyec5eYY9Ulm1_cawDx5s,1603
|
|
71
|
+
fal/dbt/packages/dependency_analysis.py,sha256=ugny-4N8UojbhsX7lhvhBm64fvaN4VHx0XgWMMvb1sk,5562
|
|
72
|
+
fal/dbt/packages/environments/__init__.py,sha256=LX8XYJmrWJyAGQSswD9e2lOu1X90V4mPhb2hKapLtmM,805
|
|
73
|
+
fal/dbt/packages/environments/base.py,sha256=Nqjl7h_lndWZpjQ8hJapruPwpWgl4fPZXeJU2vP8_3s,9499
|
|
74
|
+
fal/dbt/packages/environments/conda.py,sha256=RNbjKt2jOTpx229vvBEN4-yqVKuWvc8gJN1nQnUzy6w,4407
|
|
75
|
+
fal/dbt/packages/environments/virtual_env.py,sha256=gqAPil0OfW0jk6FfzoXNKeHMAR3-wSINpxhxYKnkke0,3381
|
|
76
|
+
fal/dbt/packages/isolated_runner.py,sha256=uAbl0dajA3XfeKTzd-XtqivEInCYC7zPnHy3dCalrcY,4823
|
|
77
|
+
fal/dbt/planner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
|
+
fal/dbt/planner/executor.py,sha256=xnKDM5nA6z7mcf7bR6cvt1FNs5v4NvS6ZS29rEUfdgY,5669
|
|
79
|
+
fal/dbt/planner/plan.py,sha256=pkpkE8Cp_WLyyIQA7aS-47jElPNLfc3LwHxF8JgRC8k,6496
|
|
80
|
+
fal/dbt/planner/schedule.py,sha256=pK7kC-dtu2_5GTnAuyI0vMImIOXHJjAHONJWl2DA_Ls,6790
|
|
81
|
+
fal/dbt/planner/tasks.py,sha256=T1-rAUJz45ea1yhe7BejokeOAhu1wtRxkQ6uwzzq4VY,9079
|
|
82
|
+
fal/dbt/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
|
+
fal/dbt/telemetry/telemetry.py,sha256=PRVXczIItEZ3W81kizLBE-P0qhV40taRyDfDZFMEwro,11441
|
|
84
|
+
fal/dbt/typing.py,sha256=W7_cI1t6lpRDTwn-b70kRvdaL8D43e6BfTP7g5taqaQ,3060
|
|
85
|
+
fal/dbt/utils.py,sha256=ylry1Tfz88tDXJrkzhZa-N5qPQ1_k6ERRlsFPbM9X6Y,1728
|
|
86
|
+
_fal_testing/__init__.py,sha256=Fxcl2GmqKOhvgGmVoReTVUUnyvYw8tue1Dan3mY--rs,33
|
|
87
|
+
_fal_testing/utils.py,sha256=wuKpLogVzQTVoxzVhgOe42VgnRemJcr8HRiYJ2WauRg,1794
|
|
88
|
+
fal-0.9.4.dist-info/METADATA,sha256=vw9dPhHSM1k-wVkKizyUHVQdWPFKfJ1K0LD-PxJxeLE,12552
|
|
89
|
+
fal-0.9.4.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
|
90
|
+
fal-0.9.4.dist-info/entry_points.txt,sha256=je5m-eBDYmMt5iXT5HxuyB3uy4boqglvdAnWhRAxUFw,67
|
|
91
|
+
fal-0.9.4.dist-info/RECORD,,
|
fal/cli/__init__.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from .cli import cli
|
fal-0.9.2.dist-info/RECORD
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
fal/__init__.py,sha256=h10jzWqB8kRFSo7rL8m58bO_DxveG-NqXxrFsba8b_U,221
|
|
2
|
-
fal/cli/__init__.py,sha256=QPWtj5wDRTINDxVUL7XPqG3HoxHNvYOg08EnuSZB2Hc,21
|
|
3
|
-
fal/cli/args.py,sha256=BCHbJ2sxaAuvoyixZkcWHf35GwUe36OTg8OLhuM2zUc,7450
|
|
4
|
-
fal/cli/cli.py,sha256=39Kk8NjlsAmjgsKo7XHLvFe4mb_m-VWizEhqm0Vzxss,1019
|
|
5
|
-
fal/cli/dbt_runner.py,sha256=5gAIkjqunpfUNejsP2J8pVGJoPgVOQOV7Z8jqFqZHGM,5469
|
|
6
|
-
fal/cli/fal_runner.py,sha256=fyoD853IICz2W-eKqz-E3dDCJUS9GCRf4-XpnQpDIsM,5815
|
|
7
|
-
fal/cli/flow_runner.py,sha256=xARmNNxtunvBMV0KejSAVOWDrYrDRHPdQHt-iHPEerU,4430
|
|
8
|
-
fal/cli/model_generator/__init__.py,sha256=OGu8cz3PjjrWqpC4EH7NSBAj57Niyep0Nc_CX4YECYc,56
|
|
9
|
-
fal/cli/model_generator/model_generator.py,sha256=TbhmXWq90C0DudaXZxOnAjZLKz1Oj3dKPdCtz_Pkumk,5505
|
|
10
|
-
fal/cli/model_generator/module_check.py,sha256=p4PiHsWG5MEebmhOFZaL6KiXd4SrOtKNfEys7twIrAI,3180
|
|
11
|
-
fal/cli/selectors.py,sha256=DuMlyP8nVUDo1J8w5YgjZb62rH_9k6ZlMjoqwZAZIq0,9742
|
|
12
|
-
fal/fal_script.py,sha256=Xf1apLJDDcSh_o3cZy0VGYea9Mjyl5TtjY9W44ayUBM,12306
|
|
13
|
-
fal/feature_store/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
-
fal/feature_store/feature.py,sha256=spvdKH5_I1Wm-Su6g7B6IMWkCiuGqNKukjRFS_Wf19E,401
|
|
15
|
-
fal/node_graph.py,sha256=2grcZ7CE1cp6YTYJtTLVGokJze0HIFIadhWT-FV3maM,8394
|
|
16
|
-
fal/packages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
-
fal/packages/bridge.py,sha256=sMpRp1R3ai3pKPocVJ7B4Mmyec5eYY9Ulm1_cawDx5s,1603
|
|
18
|
-
fal/packages/dependency_analysis.py,sha256=hdutmFD6vlphajNgROL86CuZRfuNK-KpnG5RO92jaSE,5332
|
|
19
|
-
fal/packages/environments/__init__.py,sha256=tx4twQe7IYtw2GWc9SA9Whpuvt8UIzf_bYt16ZAZExk,793
|
|
20
|
-
fal/packages/environments/base.py,sha256=nKnIVWPx6zEClA5Onp2zh1NUeyJ6Kev-Ly5hmup_2PU,9482
|
|
21
|
-
fal/packages/environments/conda.py,sha256=oxeGonFr1sX6lZR6hdwtjgOEgYMBrHQ_-l_RscMN43Y,4395
|
|
22
|
-
fal/packages/environments/virtual_env.py,sha256=CD2Wkut_tIQP6K0_mhxriSrkPcQ1nvo6hKJkfMmGaOw,3369
|
|
23
|
-
fal/packages/isolated_runner.py,sha256=wbLvsMNy__4r1n1cC8xHcxpTeSs2Hbr8RZEL-wOIASQ,4776
|
|
24
|
-
fal/planner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
-
fal/planner/executor.py,sha256=u5Q5Mt-H2T1fAfPxZ4tgJU66pn0zSz3wk8W9j7n8CQA,5635
|
|
26
|
-
fal/planner/plan.py,sha256=_bDaIf4u9482UEthzStzs7vzIZYa4Ii-wNZr5ylgl10,6475
|
|
27
|
-
fal/planner/schedule.py,sha256=QAm9yyRFXAqcQlGoGS7UQASCQAdgttrc1qBriRPT0AI,6761
|
|
28
|
-
fal/planner/tasks.py,sha256=SLOzOpuJgwuyu_-3cxIoQyMwszwmTv-l4zeQGvToiWs,9041
|
|
29
|
-
fal/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
|
-
fal/telemetry/telemetry.py,sha256=CiIP1eCX1e0OpsoTBww-ZJrPol7olyCVqO8M_WW-ULI,11416
|
|
31
|
-
fal/typing.py,sha256=GmqvSwneozdo3KpEs0i8AswfIkV4Mryt8hQ-RN8LLwE,3043
|
|
32
|
-
fal/utils.py,sha256=KbxUa3DfFdSYFzaV11xkaJgBzWwBmhNGidiEk9PvLZ4,1711
|
|
33
|
-
faldbt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
34
|
-
faldbt/lib.py,sha256=7MvY_UAbv2R3tA92Ngwroe5sO1eHIrBXUksQJeo_fUs,24563
|
|
35
|
-
faldbt/logger.py,sha256=k1dNcifiFLLtI4PnvGoVJ1lGcST4cPNXt2f3tEWIq0c,3273
|
|
36
|
-
faldbt/magics.py,sha256=1tpap6rDx7urkXcsIrt29_AyslUEOxhJA7nfgAnpacg,1850
|
|
37
|
-
faldbt/parse.py,sha256=7VaoVq7aWIg0zC6Ehf2ECAnfmDQdFUoIbuSTyDDgvi8,9057
|
|
38
|
-
faldbt/project.py,sha256=2kVad-n-_E8RFt42-NxJ8TLSJjH98xjsXyCiYw0mvgo,27131
|
|
39
|
-
faldbt/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
|
-
faldbt/utils/yaml_helper.py,sha256=k2MtoOHVAHMXSEh6FFYxoSZZx1wmvdf1me7IFVmw19E,1970
|
|
41
|
-
faldbt/version.py,sha256=hxqo8cVvFN3kzYI4X4ugzAum6XSYUPZWL-AUf-5Rg8Y,317
|
|
42
|
-
_fal_testing/__init__.py,sha256=Fxcl2GmqKOhvgGmVoReTVUUnyvYw8tue1Dan3mY--rs,33
|
|
43
|
-
_fal_testing/utils.py,sha256=cW4458HXJ95IGzz0h95K0gA45AXgsTCgi-cIGigLSrQ,1786
|
|
44
|
-
fal-0.9.2.dist-info/METADATA,sha256=EBvBN4Z8GT7wNoM3Y2dHwQ7kcjVKzHNbPbMS3bwR2AQ,13982
|
|
45
|
-
fal-0.9.2.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
|
46
|
-
fal-0.9.2.dist-info/entry_points.txt,sha256=G6LKzRkodkASbMn1KxCYtGyILAW0dcAcf9ifGYgE3iA,35
|
|
47
|
-
fal-0.9.2.dist-info/RECORD,,
|
|
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
|