From 4e2a56fa9c48e7e899be4fecacc53a9ee192dcf2 Mon Sep 17 00:00:00 2001 From: Alexander Saff Date: Mon, 16 Nov 2020 18:05:37 +0000 Subject: [PATCH] Build latest changes. --- build/lib/dataEng_container_tools/cla.py | 24 +++++++++++++++--- .../dataEng_container_tools/safe_stdout.py | 2 ++ dataEng_container_tools.egg-info/PKG-INFO | 19 +++++++++++--- dist/dataEng-container-tools-0.1.9.tar.gz | Bin 0 -> 11923 bytes ...Eng_container_tools-0.1.9-py3-none-any.whl | Bin 0 -> 11096 bytes setup.py | 2 +- 6 files changed, 40 insertions(+), 7 deletions(-) create mode 100644 dist/dataEng-container-tools-0.1.9.tar.gz create mode 100644 dist/dataEng_container_tools-0.1.9-py3-none-any.whl diff --git a/build/lib/dataEng_container_tools/cla.py b/build/lib/dataEng_container_tools/cla.py index 468ba1d..753ad80 100644 --- a/build/lib/dataEng_container_tools/cla.py +++ b/build/lib/dataEng_container_tools/cla.py @@ -2,7 +2,7 @@ import json import sys from enum import Enum -from .safe_stdout import setup_stdout, default_gcs_secret_locations +from .safe_stdout import setup_stdout, default_gcs_secret_locations, secrets_files import os class custom_command_line_argument: @@ -175,9 +175,27 @@ def get_output_uris(self): return output def get_secret_locations(self): - if not self.__secret_locations: + if self.__secret_locations: + return self.__args.gcs_secret_locations + if len(secrets_files) > 0: + return secrets_files + return None + + def get_secrets(self): + return_list = {} + secret_list = None + if self.__secret_locations: + secret_list = self.__args.gcs_secret_locations + elif len(secrets_files) > 0: + secret_list = secrets_files + else: return None - return self.__args.gcs_secret_locations + for item in secret_list: + try: + return_list[item.split('/')[-1]] = json.load(open(item,'r')) + except ValueError: + print(item, "is not a properly formatted json file.") + return return_list def check_args(self): #TODO: Implement this diff --git a/build/lib/dataEng_container_tools/safe_stdout.py b/build/lib/dataEng_container_tools/safe_stdout.py index be89e3f..f8f8e92 100644 --- a/build/lib/dataEng_container_tools/safe_stdout.py +++ b/build/lib/dataEng_container_tools/safe_stdout.py @@ -4,6 +4,7 @@ default_secret_folder = '/vault/secrets/' default_gcs_secret_locations = [default_secret_folder + 'gcp-sa-storage.json'] +secrets_files = [] class safe_stdout: def __init__(self, bad_words): @@ -56,6 +57,7 @@ def setup_default_stdout(folder = default_secret_folder): secret = json.load(open(file,'r')) except ValueError: print(file, "is not a properly formatted json file.") + secrets_files.append(file) these_bad_words = set(secret.values()) bad_words.update(these_bad_words) for word in these_bad_words: diff --git a/dataEng_container_tools.egg-info/PKG-INFO b/dataEng_container_tools.egg-info/PKG-INFO index 22ae06b..4c788d2 100644 --- a/dataEng_container_tools.egg-info/PKG-INFO +++ b/dataEng_container_tools.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: dataEng-container-tools -Version: 0.1.8 +Version: 0.1.9 Summary: A package containing tools for data engineering containers. Home-page: https://github.com/colpal/dataEng-container-tools Author: Alexander Saff @@ -8,7 +8,7 @@ Author-email: alexander_saff@colpal.com License: UNKNOWN Description: # Data Engineering Container Tools - This packages is split into three parts: **CLA**, **GCS**, and **safe_stdout**. + This packages is split into four parts: **CLA**, **GCS**, **safe_stdout**, and **simple_setup**. ## CLA: Deals with receiving input from the command line. Has three classes: `custom_command_line_argument`, `command_line_argument_type`, and `command_line_arguments`. @@ -106,7 +106,7 @@ Description: # Data Engineering Container Tools * `default_secret_folder`: Variable containing the folder in which secrets are injected by default. Currently set to `'/vault/secrets/'`. ## Example: - An example workflow might look something like this: + An example workflow using the classes above might look something like this: ``` from dataEng_container_tools.cla import command_line_arguments, command_line_argument_type from dataEng_container_tools.gcs import gcs_file_io @@ -126,6 +126,19 @@ Description: # Data Engineering Container Tools result = file_io.upload_file_from_object(gcs_uri=output_uris[0], object_to_upload=pqt_obj) ``` + ## simple_setup: + A simple way to get input from the command line, and download and upload documents to/from GCS. Fewer options than the classes above but also fewer lines of code to write. A brief example (documentation to come): + ``` + from dataEng_container_tools.simple_setup import simple_setup + simple = simple_setup(['input_left', 'input_right', 'output_inner', 'output_outer', 'secret_location', 'example_flag']) + objects = simple.get_input_objects() + # + # Edit the objects in some way here. + # + return_objs = {'output_outer': objects['input_left'], 'output_inner': objects['input_right']} + upload = simp.upload_objects(return_objs) + ``` + Platform: UNKNOWN Classifier: Programming Language :: Python :: 3 Classifier: License :: OSI Approved :: MIT License diff --git a/dist/dataEng-container-tools-0.1.9.tar.gz b/dist/dataEng-container-tools-0.1.9.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..711631e902f53d6edc40a2d9a4f03492b0b82fbd GIT binary patch literal 11923 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 literal 0 HcmV?d00001 diff --git a/setup.py b/setup.py index 3ed3f14..10501bb 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ setuptools.setup( name="dataEng-container-tools", - version="0.1.8", + version="0.1.9", author="Alexander Saff", author_email="alexander_saff@colpal.com", description="A package containing tools for data engineering containers.",