From cea50032c40e7c1442eefdc579bdf5a0dabc9b54 Mon Sep 17 00:00:00 2001 From: John Rampono Date: Sat, 27 Jul 2024 15:24:45 +0800 Subject: [PATCH 1/5] Adding docs --- dbt_wrapper/fabric_api.py | 4 +- docs/assets/images/dbt_wrapper_run_all.png | Bin 0 -> 168661 bytes docs/documentation_guide/index.md | 19 +++- docs/user_guide/dbt_build_process.md | 115 +++++++-------------- docs/user_guide/dbt_project_setup.md | 14 --- docs/user_guide/development_workflow.md | 14 +-- docs/user_guide/fabric_ci_cd_process.md | 2 +- docs/user_guide/notebooks.md | 62 +++++++++++ 8 files changed, 124 insertions(+), 106 deletions(-) create mode 100644 docs/assets/images/dbt_wrapper_run_all.png create mode 100644 docs/user_guide/notebooks.md diff --git a/dbt_wrapper/fabric_api.py b/dbt_wrapper/fabric_api.py index 60aaf55..00bf617 100644 --- a/dbt_wrapper/fabric_api.py +++ b/dbt_wrapper/fabric_api.py @@ -40,10 +40,10 @@ def remove_last_line(self, py_fabric_file: str): # Generate py files for api update def IPYNBtoFabricPYFile(self, dbt_project_dir, progress, task_id): - progress.update(task_id=task_id, description=f"Converting notebooks to Fabric PY format") + progress.update(task_id=task_id, description=f"Converting notebooks to Fabric PY format") target_dir = str(Path(dbt_project_dir) / Path("target")) notebooks_dir = str(Path(target_dir) / Path("notebooks")) - notebooks_fabric_py_dir = str(Path(target_dir) / Path("notebooks_fabric_py")) + notebooks_fabric_py_dir = str(Path(target_dir) / Path("notebooks_fabric_py")) os.makedirs(notebooks_fabric_py_dir, exist_ok=True) list_of_notebooks = os.listdir(notebooks_dir) for filename in list_of_notebooks: diff --git a/docs/assets/images/dbt_wrapper_run_all.png b/docs/assets/images/dbt_wrapper_run_all.png new file mode 100644 index 0000000000000000000000000000000000000000..c332357f79a728e803155ad7724bdc846b181fed GIT binary patch literal 168661 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
s;+fwv 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

X7t_NUcW!d+Dk?V{SJ1n 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. -- [x] Now re-run the dbt build script. +!!! note + Be sure to replace ==my_project== with the name of your dbt project folder + +!!! important + Before running the dbt_wrapper make sure you're logged into your tenant in the PowerShell terminal using both `az login` and `azcopy login`. See the examples below and replace the tenant id with your own. ```powershell - python post_install.py my_project + az login --tenant 73738727-cfc1-4875-90c2-2a7a1149ed3d + azcopy login --tenant-id 73738727-cfc1-4875-90c2-2a7a1149ed3d ``` -!!! Important - In the script above be sure to replace ==my_project== with the name of your dbt project folder. - -When you run this build script successfully, you will see a series of notebooks generated in your ==my_project==/target/notebooks directory. This is the `"special sauce"` of this dbt-adapter that allows your to run your dbt project natively as notebooks in a Fabric workspace. The image below shows a sample listing of generated notebooks. Your specific notebooks will be contain the name of your dbt project and may be different depending on the models and tests that you have defined in your dbt project. - -#### Sample listing of Generated Notebooks -![notebooks](/assets/images/notebooks.png) -If you study the files shown above you will notice that there is a naming convention and that the notebooks are prefixed with a specific string. The following table explains at a high level the naming convention and the purpose of each type of notebook. +```powershell +dbt_wrapper run-all my_project +``` -| Notebook Prefix | Description | -| --------------- | --------------------------| -| model. | These are dbt **model** notebooks. A notebook will be generated for each dbt **model** that you define. You will be able to run, debug and monitor execution of these notebooks directly in the Fabric portal independently of dbt.| -| test. | These are dbt **test** notebooks. A notebook will be generated for each dbt **test** that you define. You will be able to run, debug and monitor execution of these notebooks directly in the Fabric portal independently of dbt. | -| seed. | These are dbt **seed** notebooks. A notebook will be generated for each dbt **seed** that you define. You will be able to run, debug and monitor execution of these notebooks directly in the Fabric portal independently of dbt.| -| master_ | These are **execution orchestration** notebooks. They allow the running of your models, tests and seeds in parallel and in the correct order. They are what allow you to run your transformation pipelines independently of dbt as an orchestrator. In order to run your project simply schedule master.{project_name}.notebook.iypnb using Fabric's native scheduling functionality | -| import_ | This is a helper notebook that facilitate import of generated notebooks into workspace. | -| metadata_ | This is a helper notebook to facilitate generation of workspace metadata json files. | +The command above will carry out all of the necessary "stages" required to fully build your dbt project and generate the notebooks that can be run in a Fabric workspace. When run successfully your should see output similar to the image below. +![alt text](./../assets/images/dbt_wrapper_run_all.png) -!!! important - The green panels below provide a more detailed discussion of each type of notebook. Take a moment to expand each panel by clicking on it and read the detailed explanation of each type of notebook. -??? Question "Notebooks with the Prefix `"model."`" - These are dbt **model** notebooks. A notebook will be generated for each dbt **model** that you define. You will be able to run, debug and monitor execution of these notebooks directly in the Fabric portal independently of dbt. +## Toggling Build Stages Off and On - ![alt text](./assets/images/model_notebook0.png) +There are times when you may not wish to run ALL of the build steps. In such circumstances you can toggle off specific stages by using the options built in to the `dbt_wrapper` application. To view all of the options available to you run the command below: - ![alt text](./assets/images/model_notebook1.png) - -??? Question "Notebooks with the Prefix `"test."`" - These are dbt **test** notebooks. A notebook will be generated for each dbt **test** that you define. You will be able to run, debug and monitor execution of these notebooks directly in the Fabric portal independently of dbt. +```powershell +dbt_wrapper build --help +``` -??? Question "Notebooks with the Prefix `"seed."`" - These are dbt **seed** notebooks. A notebook will be generated for each dbt **seed** that you define. You will be able to run, debug and monitor execution of these notebooks directly in the Fabric portal independently of dbt. +For example, should you wish to run all stages except for the upload of the generated notebooks to your Fabric workspace you can run the command below: -??? Question "Notebooks with the Prefix `"master_"`" - These are **execution orchestration** notebooks. They allow the running of your models, tests and seeds in parallel and in the correct order. They are what allow you to run your transformation pipelines independently of dbt as an orchestrator. In order to run your project simply schedule master.{project_name}.notebook.iypnb using Fabric's native scheduling functionality. +```powershell +dbt_wrapper build my_project --no-upload-notebooks-via-api +``` +Alternatively, you might want to make use of some additional "helper" commands that we have included in the application. For example, you can run the run-all-local command to run all stages except for those that require a live Fabric connection. This is useful when you are testing the build process locally. To run this command you can use the command below: -??? Question "Notebooks with the Prefix `"import_"`" - This is a helper notebook that facilitates import of generated notebooks into workspace. -??? Question "Notebooks with the Prefix `"metadata_"`" - This is a helper notebook to facilitates the generation of workspace metadata json files. +```powershell +dbt_wrapper run-all-local my_project +``` - +Review all of the commands available to you by running using the help option as shown below: -### Post Build Steps & Checks +```powershell +dbt_wrapper --help +``` -After a successful execution you can now upload your notebooks to your Fabric Workspace and run your dbt transformations against your lakehouse/s. To do this follow the steps below: -- [x] In a pwsh terminal run the script below. This will set an environment variable that will be used by steps later on. Be sure to replace ==my_project== with the name of your dbt project folder. - ```powershell - $env:DBT_PROJECT_DIR = "my_project" - ``` -- [x] In the same terminal now run the script below. This will upload a the generated notebooks to a folder in your Fabric workspace - ```powershell - Invoke-Expression -Command $env:DBT_PROJECT_DIR/target/pwsh/upload.ps1 - ``` -- [x] In your Fabric workspace open the import_==my_project==_notebook and run all cells. This will upload the generated notebooks to your workspace. If they already exist they will be updated. In order to organise your workspace efficiently I suggest that you move them all into a folder called the matches the name of your dbt project. Don't worry, even if you upload a new version of the notebooks the folder structure will be mantained. \ No newline at end of file +!!! info + You are now ready to move to the next step in which you gain an understanding of the various kinds of notebooks generated by the adapter. Follow the [Understanding the Generated Notebooks](./notebooks.md) guide. diff --git a/docs/user_guide/dbt_project_setup.md b/docs/user_guide/dbt_project_setup.md index 9a3e4a6..2d5bf0a 100644 --- a/docs/user_guide/dbt_project_setup.md +++ b/docs/user_guide/dbt_project_setup.md @@ -136,20 +136,6 @@ my_project: retry_all: true ``` -Now we are ready to run our dbt project for the first time. But first we need to review the build script. - -### Review the build script that will wrap our dbt process - -To ensure a successful dbt build process, please verify that the Python script *test_post_install.py* exists in the root directory of your repository - -```python title="Python Build script template" -from dbt.adapters.fabricsparknb import utils as utils -import os -import sys - -utils.RunDbtProjectArg(PreInstall=False,argv = sys.argv) -``` - !!! info You are now ready to move to the next step in which you will build your dbt project. Follow the [Dbt Build Process](./dbt_build_process.md) guide. diff --git a/docs/user_guide/development_workflow.md b/docs/user_guide/development_workflow.md index cc8b62c..560b785 100644 --- a/docs/user_guide/development_workflow.md +++ b/docs/user_guide/development_workflow.md @@ -1,5 +1,5 @@ --- - weight: 3 + weight: 5 --- # Development Workflow @@ -13,12 +13,12 @@ - [x] Native Fabric Notebooks Generated and Deployed 1. Non dbt users able to view notebooks and business logic 2. Monitoring and debugging of loads directly in Fabric without the need for a separate tool - - [x] Re-occurring loads achieved using native Fabric scheduling + - [x] Re-occurring loads achieved using native Fabric scheduling - [x] Simplified code promotion process using native Fabric Git integration - - [X] No need for dbt hosted in a virtual machine + - [X] No need for dbt hosted in a virtual machine 1. No need for service account 2. **No need for Azure Landing Zone** - 3. No need for secure network connectivity between Azure VM and Fabric + 3. No need for secure network connectivity between Azure VM and Fabric - [x] Allows for disconnected development environment providing 1. Faster DBT build times 2. Greater developer flexibility @@ -26,11 +26,7 @@ 1. Single, native promotion process for all Fabric artifacts including non-dbt ones !!! failure "Disadvantages" - - Requires Additional Steps - 1. Meta Data Extract - 2. Notebook Upload - 3. Notebook Import - + - Requires additional steps to extract metadata and generate notebooks but this is mitigated by our wrapper script that automates these. diff --git a/docs/user_guide/fabric_ci_cd_process.md b/docs/user_guide/fabric_ci_cd_process.md index d080e0a..ff47da7 100644 --- a/docs/user_guide/fabric_ci_cd_process.md +++ b/docs/user_guide/fabric_ci_cd_process.md @@ -1,5 +1,5 @@ --- - weight: 4 + weight: 5 --- # Fabric CI/CD with Git Deployment diff --git a/docs/user_guide/notebooks.md b/docs/user_guide/notebooks.md new file mode 100644 index 0000000..1ef1f8e --- /dev/null +++ b/docs/user_guide/notebooks.md @@ -0,0 +1,62 @@ +--- + + title: "Understanding the Generated Notebooks" + excerpt: "This provided you with an understanding of the notebooks that are generated by the dbt-fabricsparknb package." + sidebar_label: "Generated Notebooks" + slug: /user_guide/generated_notebooks + weight: 4 + +--- + + +## Understanding the Notebooks Generated + + +When you run this build script successfully, you will see a series of notebooks generated in your ==my_project==/target/notebooks directory. This is the `"special sauce"` of this dbt-adapter that allows your to run your dbt project natively as notebooks in a Fabric workspace. The image below shows a sample listing of generated notebooks. Your specific notebooks will be contain the name of your dbt project and may be different depending on the models and tests that you have defined in your dbt project. + +#### Sample listing of Generated Notebooks +![notebooks](/assets/images/notebooks.png) + +If you study the files shown above you will notice that there is a naming convention and that the notebooks are prefixed with a specific string. The following table explains at a high level the naming convention and the purpose of each type of notebook. + +| Notebook Prefix | Description | +| --------------- | --------------------------| +| model. | These are dbt **model** notebooks. A notebook will be generated for each dbt **model** that you define. You will be able to run, debug and monitor execution of these notebooks directly in the Fabric portal independently of dbt.| +| test. | These are dbt **test** notebooks. A notebook will be generated for each dbt **test** that you define. You will be able to run, debug and monitor execution of these notebooks directly in the Fabric portal independently of dbt. | +| seed. | These are dbt **seed** notebooks. A notebook will be generated for each dbt **seed** that you define. You will be able to run, debug and monitor execution of these notebooks directly in the Fabric portal independently of dbt.| +| master_ | These are **execution orchestration** notebooks. They allow the running of your models, tests and seeds in parallel and in the correct order. They are what allow you to run your transformation pipelines independently of dbt as an orchestrator. In order to run your project simply schedule master.{project_name}.notebook.iypnb using Fabric's native scheduling functionality | +| import_ | This is a helper notebook that facilitate import of generated notebooks into workspace. | +| metadata_ | This is a helper notebook to facilitate generation of workspace metadata json files. | + + +!!! important + The green panels below provide a more detailed discussion of each type of notebook. Take a moment to expand each panel by clicking on it and read the detailed explanation of each type of notebook. + +??? Question "Notebooks with the Prefix `"model."`" + These are dbt **model** notebooks. A notebook will be generated for each dbt **model** that you define. You will be able to run, debug and monitor execution of these notebooks directly in the Fabric portal independently of dbt. + + ![alt text](./assets/images/model_notebook0.png) + + ![alt text](./assets/images/model_notebook1.png) + +??? Question "Notebooks with the Prefix `"test."`" + These are dbt **test** notebooks. A notebook will be generated for each dbt **test** that you define. You will be able to run, debug and monitor execution of these notebooks directly in the Fabric portal independently of dbt. + +??? Question "Notebooks with the Prefix `"seed."`" + These are dbt **seed** notebooks. A notebook will be generated for each dbt **seed** that you define. You will be able to run, debug and monitor execution of these notebooks directly in the Fabric portal independently of dbt. + +??? Question "Notebooks with the Prefix `"master_"`" + These are **execution orchestration** notebooks. They allow the running of your models, tests and seeds in parallel and in the correct order. They are what allow you to run your transformation pipelines independently of dbt as an orchestrator. In order to run your project simply schedule master.{project_name}.notebook.iypnb using Fabric's native scheduling functionality. + +??? Question "Notebooks with the Prefix `"import_"`" + This is a helper notebook that facilitates import of generated notebooks into workspace. + +??? Question "Notebooks with the Prefix `"metadata_"`" + This is a helper notebook to facilitates the generation of workspace metadata json files. + + +## Notebooks in your Fabric Workspace +If you login to your fabric workspace and navigate to the notebooks section you will see that the generated notebooks have been uploaded to your workspace. + +!!! tip + I suggest that you move your notebooks into a folder that matches the name of your dbt project. From 825cb9ed790aa090fc003e070bbf202bc5bea1dc Mon Sep 17 00:00:00 2001 From: John Rampono Date: Mon, 29 Jul 2024 18:21:25 +0800 Subject: [PATCH 2/5] Adding docs --- docs/developer_guide/index.md | 7 ++-- docs/developer_guide/initial_setup.md | 36 ------------------- docs/index.md | 11 ------ docs/user_guide/dbt_build_process.md | 4 +-- docs/zzz_archive/{1-Why.md => 1-Why.bak} | 0 ...er-guide.md => dbt-adapter-user-guide.bak} | 0 docs/zzz_archive/index.md | 5 --- 7 files changed, 7 insertions(+), 56 deletions(-) delete mode 100644 docs/developer_guide/initial_setup.md rename docs/zzz_archive/{1-Why.md => 1-Why.bak} (100%) rename docs/zzz_archive/{dbt-adapter-user-guide.md => dbt-adapter-user-guide.bak} (100%) delete mode 100644 docs/zzz_archive/index.md diff --git a/docs/developer_guide/index.md b/docs/developer_guide/index.md index 8f14ca0..7cd227b 100644 --- a/docs/developer_guide/index.md +++ b/docs/developer_guide/index.md @@ -1,7 +1,10 @@ --- - weight: 2 + weight: 1 --- -# Developer Guide \ No newline at end of file +# Developer Guide + +!!! danger + The developer guide is a work in progress. More details to follow soon. Please check back later. \ No newline at end of file diff --git a/docs/developer_guide/initial_setup.md b/docs/developer_guide/initial_setup.md deleted file mode 100644 index 0ee6a31..0000000 --- a/docs/developer_guide/initial_setup.md +++ /dev/null @@ -1,36 +0,0 @@ -📦dbt - ┣ 📂adapters - ┃ ┣ 📂fabricsparknb - ┃ ┃ ┣ 📜__init__.py - ┃ ┃ ┣ 📜__version__.py - ┃ ┃ ┣ 📜catalog.py - ┃ ┃ ┣ 📜connections.py - ┃ ┃ ┣ 📜fabric_spark_credentials.py - ┃ ┃ ┣ 📜impl.py - ┃ ┃ ┣ 📜livysession.py - ┃ ┃ ┣ 📜manifest.py - ┃ ┃ ┣ 📜mock.py - ┃ ┃ ┣ 📜notebook.py - ┃ ┃ ┗ 📜utils.py - ┃ ┗ 📜__init__.py - ┣ 📂include - ┃ ┣ 📂fabricsparknb - ┃ ┃ ┣ 📂macros - ┃ ┃ ┃ ┗ 📂adapters - ┃ ┃ ┃ ┃ ┗ 📜schema.sql - ┃ ┃ ┣ 📂notebooks - ┃ ┃ ┃ ┣ 📜import_notebook.ipynb - ┃ ┃ ┃ ┣ 📜master_notebook.ipynb - ┃ ┃ ┃ ┣ 📜master_notebook_x.ipynb - ┃ ┃ ┃ ┣ 📜metadata_extract.ipynb - ┃ ┃ ┃ ┣ 📜model_notebook.ipynb - ┃ ┃ ┃ ┗ 📜test_notebook.ipynb - ┃ ┃ ┣ 📂pwsh - ┃ ┃ ┃ ┣ 📜download.ps1 - ┃ ┃ ┃ ┗ 📜upload.ps1 - ┃ ┃ ┣ 📜__init__.py - ┃ ┃ ┣ 📜dbt_project.yml - ┃ ┃ ┣ 📜metadata_extract.ipynb - ┃ ┃ ┗ 📜profile_template.yml - ┃ ┗ 📜__init__.py - ┗ 📜__init__.py \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index e7651f7..fa4f2c2 100644 --- a/docs/index.md +++ b/docs/index.md @@ -75,14 +75,3 @@ Consequently, to use this adapter, you will need to install the [dbt-fabrickspar ### Branching When creating a branch to work on from please use the branch name of `feature/YourBranchName`. The case on `feature/` matters so please make sure to keep it lower case. Pull requests are to be made into the "dev" branch only. Any pull requests made into "Main" will be removed and not merged. -## Community - -### Logging to Delta - -Logging was previously done to a log file saved in the lakehouse and in json format. This has been changed to now log to a delta table in the lakehouse. - -It works using 2 tables *"batch"* and *"execution_log"*. At the start of the ETL the Prepare step will check if the tables exist and if they don't they will be created. This is followed by a check for an *"open"* batch and where the batch is still open it will fail. - -If you need to close the batch manually, this code is available at the end of the master notebook. - -If this check passes, a batch will be opened. There are steps in each master numbered notebook to check for failures in previousn notebook runs and this is done using the open batch so previous ETL executions with failures are not picked up and return false stops on the current execution. diff --git a/docs/user_guide/dbt_build_process.md b/docs/user_guide/dbt_build_process.md index 4390337..de8c623 100644 --- a/docs/user_guide/dbt_build_process.md +++ b/docs/user_guide/dbt_build_process.md @@ -53,13 +53,13 @@ The command above will carry out all of the necessary "stages" required to fully There are times when you may not wish to run ALL of the build steps. In such circumstances you can toggle off specific stages by using the options built in to the `dbt_wrapper` application. To view all of the options available to you run the command below: ```powershell -dbt_wrapper build --help +dbt_wrapper run-all --help ``` For example, should you wish to run all stages except for the upload of the generated notebooks to your Fabric workspace you can run the command below: ```powershell -dbt_wrapper build my_project --no-upload-notebooks-via-api +dbt_wrapper run-all my_project --no-upload-notebooks-via-api ``` Alternatively, you might want to make use of some additional "helper" commands that we have included in the application. For example, you can run the run-all-local command to run all stages except for those that require a live Fabric connection. This is useful when you are testing the build process locally. To run this command you can use the command below: diff --git a/docs/zzz_archive/1-Why.md b/docs/zzz_archive/1-Why.bak similarity index 100% rename from docs/zzz_archive/1-Why.md rename to docs/zzz_archive/1-Why.bak diff --git a/docs/zzz_archive/dbt-adapter-user-guide.md b/docs/zzz_archive/dbt-adapter-user-guide.bak similarity index 100% rename from docs/zzz_archive/dbt-adapter-user-guide.md rename to docs/zzz_archive/dbt-adapter-user-guide.bak diff --git a/docs/zzz_archive/index.md b/docs/zzz_archive/index.md deleted file mode 100644 index 6d5763b..0000000 --- a/docs/zzz_archive/index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- - weight: 10 ---- - -# Archive \ No newline at end of file From d5918385d2ed74d23a6b69d35c4c2c645dc4f9b1 Mon Sep 17 00:00:00 2001 From: John Rampono Date: Tue, 30 Jul 2024 05:30:21 +0800 Subject: [PATCH 3/5] tweaking styles --- docs/assets/stylesheets/extra.css | 6 ++++-- mkdocs.yml | 28 +++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/docs/assets/stylesheets/extra.css b/docs/assets/stylesheets/extra.css index 2a4cfcc..26a16d2 100644 --- a/docs/assets/stylesheets/extra.css +++ b/docs/assets/stylesheets/extra.css @@ -10,10 +10,12 @@ --md-accent-fg-color: #B01C87; --md-accent-fg-color--transparent: #57B5E6; --md-accent-bg-color: #fff; - --md-accent-bg-color--light: #ffffffb3 + --md-accent-bg-color--light: #ffffffb3; .md-button { - color: var(--md-typeset-a-color) + background-color: var(--md-typeset-a-color); + border-color: var(--md-typeset-a-color); + color: hsla(var(--md-hue),0%,100%,1) } .md-button--primary { diff --git a/mkdocs.yml b/mkdocs.yml index 49123d4..f391008 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -80,4 +80,30 @@ extra: site_url: https://legendary-adventure-22vkokv.pages.github.io client_organisation: "AdventureWorks" project_start: "2024-07-01" - \ No newline at end of file + analytics: + provider: google + property: G-K2F0EYYZSP + feedback: + title: Was this page helpful? + ratings: + - icon: material/emoticon-happy-outline + name: This page was helpful + data: 1 + note: >- + Thanks for your feedback! + - icon: material/emoticon-sad-outline + name: This page could be improved + data: 0 + note: >- + Thanks for your feedback! Help us improve this page by + using our feedback form. + consent: + title: Cookie consent + description: >- + We use cookies to recognize your repeated visits and preferences, as well + as to measure the effectiveness of our documentation and whether users + find what they're searching for. With your consent, you're helping us to + make our documentation better. +copyright: > + By Insight Enterprises – + Change cookie settings \ No newline at end of file From 55f25c40e868700c4406404cf8c7a2b25cf4bb0e Mon Sep 17 00:00:00 2001 From: Grant Krieger Date: Tue, 30 Jul 2024 08:16:03 +1000 Subject: [PATCH 4/5] #115 --- requirements.txt | 3 ++- setup.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index cddc3e0..f54c6b3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,4 +9,5 @@ azure-identity>=1.13.0 azure-core>=1.26.4 requests==2.31.0 typer>=0.12 -azure-storage-file-datalake \ No newline at end of file +azure-storage-file-datalake +setuptools>=72.1.0 \ No newline at end of file diff --git a/setup.py b/setup.py index 919ec15..c132ecd 100644 --- a/setup.py +++ b/setup.py @@ -80,7 +80,7 @@ def _get_dbt_core_version(): "azure-core>=1.26.4", "requests==2.31.0", "typer>=0.12.3", - "setuptools>=71.0.4", + "setuptools>=72.1.0", "azure-storage-file-datalake" ], From 03a7fe256adc49325faf78644fbe27c12f60b4ef Mon Sep 17 00:00:00 2001 From: Grant Krieger Date: Tue, 30 Jul 2024 08:36:32 +1000 Subject: [PATCH 5/5] #115 pip-system-certs --- requirements.txt | 3 ++- setup.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index f54c6b3..39887a4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,4 +10,5 @@ azure-core>=1.26.4 requests==2.31.0 typer>=0.12 azure-storage-file-datalake -setuptools>=72.1.0 \ No newline at end of file +setuptools>=72.1.0 +pip-system-certs \ No newline at end of file diff --git a/setup.py b/setup.py index c132ecd..c749b10 100644 --- a/setup.py +++ b/setup.py @@ -81,7 +81,8 @@ def _get_dbt_core_version(): "requests==2.31.0", "typer>=0.12.3", "setuptools>=72.1.0", - "azure-storage-file-datalake" + "azure-storage-file-datalake", + "pip-system-certs" ], zip_safe=False,

l8f zQhp5S&bab2S5m*&=Vpu~+*2lU8L~Hf(vDgoc0|CbgykY2r)!~`_xG2N%T>hN-Eh1c%t6DYij^GmeSW9SX8XpsL})_j=vjDO7y0l z`v#)Ko~`I%W((M`YH4s{BXT+GBIG|qFm+9AV!D4uohzy%hhrNA#JKL&Tg`1FA^VNh zY*aw+Q=P10;+#jHHSAzb;+`QU{Yc}}rlpBus$39HU)C1$twv%Ep3Y~+jr0~wmXTJe zMq$Nlz2s4b$sZIBjBT@R+yHd63t6cF%I+@cik)2i2v_+g)N()>6d}y(vL@(y4q?!w zlrhcgguvfuX{l5@(lA5dWoHb;tCo|EM&bIAi1FnU$`kVDbHpq-H?`|-PNsgHui?TI z977ZPNZVDXsaMRPqq@9hlR^1`7=@UXJnj*#sbedCpQ==#P|~N%JiQlF0R|J1n zOO6mpSyVm1HH?$Jd|;olf8~yTLv_$Kv@{y86sA!thd|E6MAgR>!exSnmu^rkFA+x; zInD1;xoWB7WXuXCL>kJLBG%F69BquHkXb3B-%g!pbISt4<=SK7MICrWA=A=Uy+ZLLN7UP^5;v3{v_HBsT#Wn6`Z^^sORsyaY8Cpr2s zKuHE{7O^p|Cg-U6TnedSzM{M0q@l;0z_zoOMe5kMw6X(I4mruwUGgHWS6?;RBtAnr zJDz1Kv0sQ8?Vnxz;M7dJs6Cr$>G1Ex0oboo6ndPBHuij(Jaxq>H>*u1&UFK0M}vAW zrIaV9fnta5E?pH(0m};)RWS0rDQ?ioZah&fwE&ziTmZJfb+D0;!@{ZEoSfTm#vNpk z8I@6f%$^-vtt6=mPv9GD-RXf5tCo7}2I(IyHt0g^&T85aSOq-1M6ymcFYZWcO!J%}6O_r9Dz?M7;y zIi5JROr_I~^By=jcT?ZFm72^G5f7F=MeXH$FA{WeT#L86+YBmC=s(Pu_t0v+J3`}h zhj^t8iFI5gC$O^?$K;!T#q^eUtQDu$A9m8)AB@P$pSlJHV7*~n&sDNI>hK*DJ&D*1x zmwWZZ|UjT@7AQYnu$&p3e0#^enass6PQ)J&+EpWQfuZu?|=pB%p3KX*caN0y|- zW#pq|XnrEU(Z>KaTw!vOEEgc$)Rv!^wE0*6eCs+^zS+eesMLQ{{l3jF{7L$y@6}&p zx;FgOA7am$MeGoJKAER<@5W#mF**sdDSbP8jpzpPn@QB*^|N$#Ec*;gQFlLF)oeIw z(wUH&{|EEz#RoZiIr}UXV+n)j2D5x#yj}!Y4f*Y!92g`$k4d=jO|bA@;Cj*3Yx+|q zkx-s;jYaKfX*&c#fjSD!Rw1HjCM^~cjF0^u!PjoOALHdr=cxavs)NsV%678J$<1W< z&ZMH)X;UgW&8LNnHjo=})-_{a?}@oikQEdA5x|oJ72kY9i_yKA%SB1dZPwbi1inmEH?cVCoF|A!gsHiR%;2x@ zOJIfEOB|@v6=^5WC6WcpMyM04zH5)PQN(F@kHyBDA-JBQF=E=eFQGk|OFc(y^^$m~ zbd`M_`+iQ{w!XDxV{+FdafO>80m<8U<%&kK@?(n$LDag-_dT;$--?gQZ)9>A1UZtx5X<7?aFmf06&5Lb ztiA*Z^z2!M-JA7_TPLzD8@F-35x9nZ)`+iKu=XdoY@dx;HXm-^wb~{po-Y39vKo4} zO>XMnX%BqUr%3Jy!F>nGCCOOcY@>{)Fwn%@9O67DSF#(VtS*%B-YZS82)_wzku|m% zVZ>o#(rw5{mE4{+5%Hv6ngxi5RmDu*nQ=u@65GUX5Wv?%?^Nu`NW0(W)jj)OU>fQ1 zavx_lE4)9vr>#WX^Wg~_A;0mfFc*Nb13q_%_0TeOx`dl%h5tyLjAcDIx0d508m}{Y zF`dByk8G%(XkaCje1aaunXYaWe{>VAinxWAQ4Fn%Tt#$jU6b(v)h3px(tizYzTejq?J<9zd|!H2=A*PNwVQ>Y(mK#bOy!d?I`jfO(bv)f(R zW-lKNTJ=Z1dV?1_6K+F#cTpE%+ODKJQwQ^-zNNNidFO7_+A%?oI~x)6eB1S~nVTv2 zp4}XE`hFT@*b1x9>sEYvP-ql5!YDtS4V@US+hY}n-|XMJp7PPfS?(SlOs}MRAa9r| z1h0?)0~2_9yck5#S^<)fSiMv*tNb3WhQXaz4(Ihl$=3v#YqwRaOkY2{{Y1m%y4}VL zI7#_?&G~)zqPMC=Od}ufcvjm{etz}+V41A0agi*L{X`snE7%*eLyj=Wm9kE{3C(D4 za_`WiA&n)Ln|JGdK1qFGKq7>&=g|vIt-ZWneS%FAoUg)icN}-)y@cv=+f~J%+NE9} z+rraL+Ic6F=#?kBsW|0HoC^CaY3w?2PGnj`puyN#cUt!2*6B2eo0Jk*`#Ky} zZR+Z#0h;XAXBfSYQv|uYbW=cC=ztuDJ#jlA=HlKn?EQKnxPkZ&d=psF&&TqJz!*96 z`ok zZO?UH?7$AsjxIj#mmh%UwsqTD^^S6f5TC)6YpE^L3E|Vtn}?*SYN83+Kc9)$7{Nn! zb{W?}28vrBXXX^Z<>A2*^+xLoIPb3)6uGMn&7s{Ry6-nK&!^7oC7c#d+FfQDF2%WX z@?DP$@8^mGyu{;t(T~Tt#T$Pk5Yv!-J66LSExO5eOPoFN{zsatXYXahV*q=KO|yl) zFd&+wW^Y|`rfhI{8C) zJ6P-lm!GuU%*eCa`FTL}&XdRZ?HrYzuI_la(xv+H&K8_V_I#RA*9ON|m&@ui0p{9; zXmE6mIk?6dHs)~+N8f7UFP*ryL&H!?hMxE10W^mm19Cg*U9Aku3OMUaL)$(3zC11a zllXqR%g0g9N6p?RnEWC6(NHZ=%EV&r>JO;g&sGia7nBOcf`rzPFWdLvyUTx_`4UTX zZ@Vuo&3&=V)Nf2yAly%hB;04uW765%FXtD3zgtVa1*?%JMH3)`) z8E9nk9`TNvM^96Ogi_Rf4oxDSm)vo*wwBy>|ewpmi5KEB!48%Q#llY=j&9FCiag~RIn zt)~3-F#hdmU{yUy!qW=B2Sb%VKJPQH2Bzj#Tv^2p(``SK1A>zah=x*JF5kel9qTsd z-qK!bf0W?QvADEEO%&7yfg$6=jnmVJ&~{8d^J{R1?fcm;TFtkM@oQ^_RUf|$$)32! z<@e=cWi*;S5u&QVGTeJIf|)|Te0W`Izk7X%cm@Q{lkc@B`fP6UrK7OtC1*Qnk*Ls<~vP;L1~qvO!R7w}9v z3twvwvXS>e2jh?eIpSgPS$032t?j68i}O|;?;5kz5%fj(RgfNkjDOT|?j(7*rL=3VpzyvP_l8=f&lXcfnn;#V*!C52o9e|PI+bB8 z@{MHnvB-jlU3x6RL9=luSUG|eq#oCA2L##$@D1&g3;Q;v_>;^F3PU%0|C$w(4HGV+t7YZE zNQD0BOX4c+`B4X#cdhJIMviH9L>h2O!}G41lc_+uJ4y%{9=&&#XVz_C)>byxQ(I-o z&DM+U-j8r|l!D=Tqz2-iW2bp%HUzI#T0I}OJHkX5TL>Sx7Hc=2ga|k6@x`2^V_vWt z9T=j0-sLNYo_)<7JfcELbX}M*^IHooMZ?r^^2>`ha%(JkLO(s8;(Vw6!fM-2@3bD1 zA^;2o2<~oB#R4O~QLwJ4$5D7ifhx(+>SyC7&lj3L&Lg!vou{Xw$ zkDn_Y^k!E{QTfPGnWKcP9djP4Y@`^%w?#pX516}AmRd*OLd~n)dR%UYw(d}3#PA-t zl!E2IDQyIBQ%5dGFDU587Eu4}pcgj}w{}r3>hxS#B~!|jb6sYzyai+X^g;VCP!D*8R`i&@?PL7krXwR5#hqY&SG{4QM zz4i9K?2D>MRRm#bwu|;W-wIcU92L0<%=+!EEh>Lb?t;8Ch%u;629Z`_7Y($_q32L!%{dw%35svafwrn+GN*?;P^tA5z zPfH-Jstg`HnLi5PIPi0rEnFnd(Q=0$`H2Lo=#N$@Y&Osu>^4m=F-Z{WxqG&t5fLbU zawvGn?0;U&W57;ClCN4}tzPrl)KgEw^fSJp(RMVAq~Im%>||-=HGSsLe4*e7d~A~r~V-5GAE^1rnodRO;p z^6PSBYpI%OectS?sX>pVx(K=l#Yn3i3PMbrN9Gz!AA52?Twr~;%N8;5_1p%QETn}tT1GxU|CAGlyv87fJKc>LgRkLpqA=q8= zz6B4Qx@6+wZi!E#5b-h&a3essE|F_`uBwpE+_n% zNhr}t-M^PU_m-l(+hR*;q?sBXazag!!|OhuB&nj#8-pm8)a`SpOX+ED#IcuLtFoo# z#hs$he{iPhEIG3IxkNFEIxk+F_WhcRWh?t;xzA!3qW@`?hE{>)aI{6c7z4=+umwweHcmUSspWtEg{8}9t@RZ)<@)PNy9<&n{`#Q8<&|WBF zM3bNOfsaLssOhO?;)=GKj(_0qR^2eYnU$T7Z1e8-EnUQf!-_P3iaV}0*!V|l4VTfi zusb!egDayuejSUw2#b?KZS5i_1@37mU3~FaM^RyHRJ@31F?0K`sX#D0&HMVo&4Kq6 zlZuTll_5XoeAwed{)UOpHsz@D6QZ0Z0F3NzXSe-YguMs`Lf#5((7&Z$6|!Ivz`u`k zg_f~tC<1Dz@cux=Or&?AKbNqpmyYYxyf^=Ky5lP5 z%Cwq|e-f9m)!F8!KoxFUCf7AZ6R=Hc#c44;gyneRLk2M0Yf=(G^8Hpjj{ObrrCas$ z@G26ZalThpb!?tFVJ&jw0ybKuAISPP--3~eO|;cfGLdoZ-2hAYG|4me2Wm&)N)y%h z;F2V1>8%+Sh@vb@9U@;*-Ylp>;U>*^e#LAPn6bF+AbJ+(XJgtw`F|s)E(14uyX;Ax4&xqKAVy(S`d(ji2SNBwWn|aTq ztKpO6=BN&f6n01Jq{>ItsCb>jJc9_C;}`tfUN%;zE{s3FoND``v#aai+_K)3@O~!Y zxGV(^5u*jPeBK}HY(?QOfD+`RH6mghZ@-CaUH27KkN*RC2p?bDQUc%N{<8a55x#1L zuqkIVS7kTPSOqE1D3?du?0hTr6#AoGJYnQkFm0T52Uuo+*r6;nnzTc9>_u-bOC5LV z);>BymC`%{Wcna9R-c!Im>ioBn#&p?u8?|8!p3oJ%Z;G{QkCCZjK2dZWYHoL|73VD z0ZMJfJ#vLO4=rUbrq-9h1`1wRXuf!ab$eg2Ftc3|f9(|ZY|>k3u5^V#CH5fvyBEhc zF9IFjSxAaA$G3u5=h`V2%K~HZ9*hU&pNseFH({buhN??3$2;5Y*!(Z1OCgOUIK^7W zb7GEjd3%TVRSH-cgK9M5*xHWOZ)b@_TZRUh?2tWj`*1Krc0jW6FP&M0d%ZBpVyl3ph$#h;@g+jfRK z&*;dO1Ee^VN-JKq9-D^BcE;*joWP2+i1*K;i%14sjz5TZHyXHwZ8JcVJMo+KFPQXc z+@L7mB8M{r{qFmUN%O=Gnz9j6WB_n;11G=^M-7EzmQY|NdSm-G9iPEAeSVz6ld?9Q zu5THKTO%xZQoSC%O7!7^N;@F35d3(%cvs~V|Ls9~8Sn>|=T6*R{W{IX_R}*N{?_Z( z(`&Dl>ewHV$Dyw#|0tAP@|N*i7Ead?J2neF@Zo#I$25D?yHZN^Ii|4hHcNAaAR-M> zuA}{9E5kG5yCK))rosrP{@&e@^2x&>DJ5QQcNZYypy8^HsBZs}XbLOB(>la&B}91Y z*RLVSzthgJ&|PrHo;>-nL6-(;e3l5BNT)tfRXhRKKQA641N7GFUw}Gs9-yYY7VFFp z0P5b8N2a_7Y$~oMu%Xaw~&|I#aZn+C)y!m!4=<>F49MK*+*6wI@-eoUoQRN(_>XQ8#gbZaw)cWEk~9 zn}|OWWWPCTygA^j(RCDQSiQ5&(uz8Ugr`A1k7$&n!_&IYM-4Ywu$Y<5T{!{wfgLa3 zFcNPhgb7a{rT@usITgFrF8mO_afE}DUi#P4v;IBKsCKZ--*^jI_msk?n>)oSz z6Kx%9Un#-cw$2&4yq=if`t0EFI1(1`h(A8nr8V5m|svGVa@uoYXSIe#doqKH#G7;*h)0z~a zGL7zX)(Z~@Z*6}V$>;QNCOci%>{^iDF{*gmki1f4p3Ep*TfdlL_$kUb#upD|ZCh|= zOU}l98XCmDs@Ml0&@T3Xv;$)Wf@;6pws%;VMbu|i3yu_{3AhV1uUq)Jw|{PVK=kxU zeX49=1zpemA)QtU;@oRE#5-v0EGC!TQnR$4_$$tv_&WD|Op`0o^SuE|b1MH@oBQ!% z-^mjz*2Brr{B3*oigTvTg56^Um~}Hu{dSee%!Q4))DOtlBVc{tvsN+?;C;TFq@u}2jNx16zPFMxiyKmww<>BDpFYC><&l~f6IX>rG z)gcqX*zJMiN6cc7|9JnStUSq)p>dx&i-Tsr?Mk&1q4A9fj7J7Gm=lGGC6KRyl!M*p zr&@xEINytoWZs%wr1#l5UZm%=Ju9e*oXiqYBdxQTqst}6{;TQPwForqsBF#aXuR7&G3dBkc(>2ZTC1f^FgCC;R?l3`HA9a!8+3LP@NI1S&^Ke7iw*;-WgHa9-h zX#{b!p*>;%IJz3~f{VY~qH+ncH5-0|?6`jivfX}yY>IyuJg28<20-==*8c`%^ZmCV z8zYLiR)IN%IX1{R2+M3+jnQf(nDOj5O6;s*4e$K|eU-7{vtH}cJ<@s^7uDaS_Svo1zmF*4(BwP6WBG`7Jj$OKzq3?k@&0}5i7Drq0mu=Z z&lnsQ&-qT@6q3nxkKh`)*_+598O)$jCmKr189Hq4|1^BgBJu#j)wre&Mc4wU*lls< z?0zf4Y!W2eN=qfsRt?2o@(ob5=si{kBIMWV_{}ddw`3peF*4oj68|kr#cqI4E-|-W z?u1aHEz2RCoh>`eu=fdd;KcKt)blK?v-RbYR zc&m2{^eQgy^(!vE(EK|tzWcAZ_??5_Q2X0Ipthzi0JW8FUj@c-(l4QQ2I)o7mmS-elB^6pe>!P3@E-2z6NY zzgc%*_`3zW30eN}2o!a_k3bCmBE=N!bM|!?-=o*27J03QVP|l)bQ!THC*cVib?l5m zg3#rvND6ZDSZ9LM5&&^u&GFz~pB=Nz z+nxqQ;%Nmv{Ee31Ke!7OxOvy)Pqgjz;211?g(iQl9C12th3NkEp8kf-B>kUnzbPiD z@j&9bqq)ai#Q_i-7k5|TcDVYAD*N}QUJK~e>hr8pAg53$_DOZ#lyg&cvBmNE7b&X~ zLi3JNVe#&ZXJ=g+$OUBhf**TrFu7TIgR8gzAvzXraJ-;>+9=`5-4xO^{~Q}>IrkImg>LYM@!C^sZ|+jW}j zs&C@%W0VS2860Du%Xuw1<@LVX6VGT$h$8%2${dL&Cs79!4>e82~(IV z0rlZhk#r;N`h;;_c!74?n=-TM?h4zDkq$x`A(||OJl>s2^r6MVE;cTROx%-qw<(3j z9^vqp3^*P3i!TG|prr+a<@P`iO)0J}a*@{}t^bAF6(Fe~qLj02CYj{sI$AnPugS6^I z6nq6Ud~gQpHKLr*u*?p{3Pub{A=8bg1m zRi<)Ls?_>ljGvJy^dc73cjXR4U^+EJTQd*D`Eo7t((+$xKi7YR)2R0@2>E`>zWjBV zP`PYiHn^w8NQV0z+h=!e`WbUCQfoIy#iBi7!yj3kJNHsqx2=CPU)&B?bWB`a_u`L; zmQm@^zckXprL@7zR>_R79VzD>IDUD- zvAI!t13s7-SvLTY>E0)cxM%BGc>_dJgp88GP1)uDyu!#vzVr zaa3W8;;H~D7JAUiOG|l$VFaOIpqwCKm*^n@MZa`0aU=Fbop#%8Yy9GqxSjQ+o$7;? z(n+(8p#%M$nVPiPo!X1suV25mhbyQXvWRf?+i8I{)t>?k=qwjM6BAgC!TIfyfBl`L`;%Yyz;Je44$nLYwhD^ zx2m{#Z7K`TaYF{?xu)#B2TeD}#Xgw+5dPTdF(;?$81psYe-(BXKyf`=8pj!YAh-^Y z5Zv7%SOO$SfC<6fHMlzo?hqhIfIzSzxI4k!-2%abJM4x0-`m})SG!aVRn!z*=62ui zbAIRhPN)6KlT)6zjDD-oDAg;I&VUz2wo+8E5$$oB%wKppE;OYm`gO=b^)LCtLilL9 z5QqA!97inL$U4Ha$|mE+xJRRFyQt!QS$~?4+(z1tr@7-Dic=3tL6YFsgow>zNN2Wm zSokljB3xKjH_H6dJy>DEPuhyvU`9(H>dHs## z{H%g^7X(pn%LZkm%|@KHYl0HFFH)xi?nW<<*W=!NHtm_v&`qzKM)RYOx>~gVNg=}@ zkW19T0s5}fu;-tjJ81^17_|g$ccehI^<347Kq)~g6@?QH%|YBtenc>-UZqK71XI6d z4!sTYC&AeDl}7D0O?vxY&@p-$ju&bl6I4&a%s&DDaXvCJx!EO=UtSms9F6!Sp9iVb z8%K--=Wa6~8mkq*XY8R}B3_Y~NC7)>@aflva&qYII2XC7w&0ayltmW;9q`vx8&^tY zz`+EhfqakCvP2S6J@CzkTiGQ1H?;>2cV91-^k{juLU6?Hv#-z3Vpdm^Up|SD$@#vY zf3l-$vB>6a0pz~q65YS5&<;0ZWGOkqUNFxe*)KRvkxWU}TpQJK7F8u}D$ICy7#G*^DWei#4g zapoU$w#^I7FnDHlJqG`q_iI%jJ*hnZNVsj~CZRifSwzgy1=3b*O}@7ss8g!mdy)PE z?iO`NI{aI;Vv1L&o5RH){U=K--B5b7bFsTMvEI)-mf;}0K#13dMuycfiMkx%g|Wi0 zZ)2l!dLF2Tk7Ri=QSj}H#iH2V#Tp%3vp2Tm;9TZ@#G)ts?5dM?|M|R<(s>N6>}Osk zGog-R$leicxeer)B)M3-Mq_z2(%IE~;1(4q1|a|H&k$RJA|jp)JkRiqWgRoQGt+J~ zI!j+V7U+hqlZ|Dz2I${fY3F%8!lsKqS5=yK91U*~{SYrD@%`ZP z2qkLy|4beX6ejLTm%=w<_dSJnOVAfA)J?AAe4k|H$R?A+B!B+w+iT7?v{4?<@=o(1 z*`KxWG($Fq8-%;Fp*2>p-lH>|-e9Nrx^J^N%10C5fF9=0=Cl~`LB=q4dCFO1B=$^4 z`u8)hs>_bUdFESP?!?Z+k85MfpV{}y3EZ?cQ}LZW?l0*H{=ArQ6S6xw*}Ku*5#UuuNLO zasYQiLIS6&orP)$B(tb9jHv#gBfiXjt;_i%Njz4EMnE!rk~Z@PYCE^Gy%(9A?2E~W z(42M(wVvH}S795%Ngb;$NeOL^QYCdII>paMIwMV<)03#jZfCnQd3zRFCjnG9EsYjQ zID=m^?3W;C%U?u1`WyYu7aO9nWvd?MK?rhh8@!Tw)h0?&$=m3|Ne$#I$T18I(UchP zNt3U6ZYRD>%4rnpRuUAkBm#PS(iVl6{AAYTgyag_?0!8}ES1;#)p^R9G4GK`hV{=j zTLmG+k?eSB7gg;Dx60i7?5K|GDBeVIyQF{`HBPI#S`;RlPnHQ z0hy=Dtg?KKrhyzaN!bb@XYgw{11E`f_->50cQ^4dDuTNg!`LIP1(#OLF`vvy@ja^w zN@hW#;3TDtysNJpq*qAO|4aY^UV21hr&RVOkPBFd0GiO+Nqqd|@DF5igE@`_k5}?UA~gm@oe4Gw>WzISZ*;WYLq`Qd zhemtsj4rm2BDcXAchV%z6 zCo{dOZI?ukEsp2;_bTH1@QOwnPSwt3Q=PN4KwP!h2MvQVRTrOt;a?UFBAy_;SO|by zLypFFM6m9f*6-J=MQ^xW$JW4&ydCdQsQO!vr{L;Vqa;z+&w8HoRHfUtVZFQuRc`$XhUdw z*SY0m*(;e=+4VVbh%&TH5zEQMYUkXFb3Yk;5lxw)#%|00O+PpIFxU>T>%u%9S<7;ph>85ib5oVXX(op}|F@4`w=Ymf_LA{^(8kXa}U%T1Qle&rGoY-NyEcmfDq@h7Qj8~6!xvAI5 zH7MQ6=t=u&IjrvLYNs?}xj0crf7J!2Z57k&ce-KndF^aGaAtH?<~=!#n_hvEgL_Wu|g6I4SrYl zaxJ!6G`+Ye+Sd-9NSoZQ6QG2Ks$#zM;0boVh?Y+mo~bI?8JgrYBBC1QTV8QEt7Xz@ zydQ$G*dNinzY@%K61OD*^<-yisKNOe_+C~TiJVlIgB#R`9i zChNgi14B0m`fkL@sOeth_`y&(zzF(ExYbI-)nI)6vIGpMEA<)CeneIFum?MppwDb7 zK!mJXL{y|PZm>95KAWZ5f%ee+2WUkIK*i5g5yn*r0yD5Yx z2SqvA(%NCyIa;OECk)`51~W{tzag6xGiB6$|LxqT6k3m0+4Q-!6Om1tG(BJOiiIE| zC{)eAE)umvj1R|{jLz?Xy|oOkjRvz#kq(TP_a=i?_1kNnLnjEM9*5_Innq8@$0v$f zsiIz2$vbjo<+-$+22&ct;ZxdO0t!nPylrkS;VeewiJ{%83x* z@5$D5VX$_E^t zH>QJW=Cj2f$*@W)f{pb!ub=aXX|Qj z-x_TP@N2n?{U%=D*#y${O1byH)2g4npW|vh^&G;2OA?JQJ{5108yg;moG&aeHN>mA`fbAjj4}eWl)X5GfD=d zNRIpStAHc&hCS)qLq3EVk0Cz3aRIjo4mW9erqN%?&U?07gc%MvY0t}m1bT_==KhVN zV>v^8%@pKgmwe7iMS;u*NrjT&MqSNse`C%GgNATpjgFj75A#=_FTd(VzE!C02=~|^ z&cyEi2C}IdG?fn-`k;fFTo%|z&whDE5=*Ljv)7P_`Q>-~7(I_}QM8FEt3jkei2?S{ zUiX~QG{Ko12~i2Y)<-$b7Cn#&k~zQayZ3ha_SQM7Z`yC+>5OUiIQD%c{(r2T0$Kh$=VP2<*iE$%dmG4nFGIn z|Beu5>T}Uf)xYZ1pUmL^810|LlhT9{LH!}R%ymi`tE&d()bNCE{NVT7@v5&m5P*