From 9eb7e60c860297cdecc880cb357f2f22834fd0a6 Mon Sep 17 00:00:00 2001 From: Taylor Jackle Spriggs Date: Wed, 13 Oct 2021 14:12:03 -0700 Subject: [PATCH 01/10] use custom chevron version --- requirements.txt | 1 - setup.py | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 0f2856fe..2d44c30c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,6 @@ Pint>=0.16.0,<0.17.0 PyYAML==5.4.1,<6.0.0 backoff>=1.10.0,<2.0.0 boto3==1.16.34,<2.0.0 -chevron>=0.14.0,<1.0.0 click>=8.0.0 docker>=4.4.0,<5.0.0 ipython>=5.0.0 diff --git a/setup.py b/setup.py index 239ad0ae..7bdef7c1 100644 --- a/setup.py +++ b/setup.py @@ -25,6 +25,7 @@ with open(os.path.join(here, 'requirements.txt')) as requirements_fp: install_requires = requirements_fp.read().split('\n') +install_requires.append("chevron @ git+https://github.com/taylorjacklespriggs/chevron@support-custom-escaping") with open(os.path.join(here, 'requirements-dev.txt')) as requirements_dev_fp: dev_install_requires = requirements_dev_fp.read().split('\n') From f27a6ea7977fc61b1fe566097b3ca2e74d78b70b Mon Sep 17 00:00:00 2001 From: Taylor Jackle Spriggs Date: Wed, 13 Oct 2021 14:12:57 -0700 Subject: [PATCH 02/10] use escape option --- sigopt/orchestrate/template/service.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sigopt/orchestrate/template/service.py b/sigopt/orchestrate/template/service.py index 3ea42e80..31f50868 100644 --- a/sigopt/orchestrate/template/service.py +++ b/sigopt/orchestrate/template/service.py @@ -7,9 +7,6 @@ class TemplateService(Service): def _dockerfile_escape(self, s): return s.replace('\\', '\\\\').replace('\n', '\\\n') - def _escape_args(self, args, escape): - return {k: escape(v) for k, v in args.items()} - def render_dockerfile_template_from_file(self, relative_filename, template_args): return self._raw_render_template_from_file(self._dockerfile_escape, relative_filename, template_args) @@ -23,5 +20,6 @@ def _raw_render_template_from_file(self, escape, relative_filename, template_arg template = self.services.resource_service.read('template', relative_filename).decode("utf-8") return chevron.render( template=template, - data=self._escape_args(template_args, escape), + data=template_args, + escape=escape, ) From 590868e5b146d48295fa6629aceff8ffdb161a51 Mon Sep 17 00:00:00 2001 From: Taylor Jackle Spriggs Date: Wed, 13 Oct 2021 14:15:42 -0700 Subject: [PATCH 03/10] fix test --- test/orchestrate/template/service_test.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/orchestrate/template/service_test.py b/test/orchestrate/template/service_test.py index bfdf9f8a..96bce251 100644 --- a/test/orchestrate/template/service_test.py +++ b/test/orchestrate/template/service_test.py @@ -32,7 +32,6 @@ def test_dockerfile_escape_newline(self, template_service): # Ensure that the newline is preceded by a backslash, so Dockerfile doesn't interpret it as a new command assert 'ENV SIGOPT_HOME "\\\nCOPY ."' in rendered - @pytest.mark.skip(reason="chevron doesn't handle quotes gracefully") def test_dockerfile_escape_backslash(self, template_service): rendered = template_service.render_dockerfile_template_from_file('model_packer/Dockerfile.ms', dict( sigopt_home='echo ""\\', @@ -40,7 +39,6 @@ def test_dockerfile_escape_backslash(self, template_service): # Ensure that the trailing backslash is escaped, and not interpreted as an escape sequence for the newline assert 'ENV SIGOPT_HOME "echo ""\\\\"\n' in rendered - @pytest.mark.skip(reason="chevron doesn't handle quotes gracefully") def test_yaml_escape_quotes(self, template_service): rendered = template_service.render_yaml_template_from_file('test.yml.ms', dict( endpoint_url='"', base64_encoded_ca_cert='"', From f1b2b49b4ade99cdf0e3e2e49a4fe60261f78d7c Mon Sep 17 00:00:00 2001 From: Taylor Jackle Spriggs Date: Thu, 14 Oct 2021 09:58:30 -0700 Subject: [PATCH 04/10] chevron as submodule --- .gitmodules | 3 +++ sigopt/vendored/chevron | 1 + 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 sigopt/vendored/chevron diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..6b24cd37 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "sigopt/vendored/chevron"] + path = sigopt/vendored/chevron + url = https://github.com/taylorjacklespriggs/chevron-1.git diff --git a/sigopt/vendored/chevron b/sigopt/vendored/chevron new file mode 160000 index 00000000..5f9aa6f7 --- /dev/null +++ b/sigopt/vendored/chevron @@ -0,0 +1 @@ +Subproject commit 5f9aa6f7c2aa4005b52085e31b5e2677362a5b9b From 0586afd6f0846a154f81a4dcae41545be4ef471c Mon Sep 17 00:00:00 2001 From: Taylor Jackle Spriggs Date: Thu, 14 Oct 2021 09:59:13 -0700 Subject: [PATCH 05/10] remove chevron git --- setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.py b/setup.py index 7bdef7c1..239ad0ae 100644 --- a/setup.py +++ b/setup.py @@ -25,7 +25,6 @@ with open(os.path.join(here, 'requirements.txt')) as requirements_fp: install_requires = requirements_fp.read().split('\n') -install_requires.append("chevron @ git+https://github.com/taylorjacklespriggs/chevron@support-custom-escaping") with open(os.path.join(here, 'requirements-dev.txt')) as requirements_dev_fp: dev_install_requires = requirements_dev_fp.read().split('\n') From d97666b9a73ffe28f5b64ae2685b87c7d69b19f9 Mon Sep 17 00:00:00 2001 From: Taylor Jackle Spriggs Date: Thu, 14 Oct 2021 09:59:54 -0700 Subject: [PATCH 06/10] use vendored chevron --- sigopt/orchestrate/template/service.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sigopt/orchestrate/template/service.py b/sigopt/orchestrate/template/service.py index 31f50868..9bb27d1e 100644 --- a/sigopt/orchestrate/template/service.py +++ b/sigopt/orchestrate/template/service.py @@ -1,4 +1,4 @@ -import chevron +from sigopt.vendored import chevron from ..services.base import Service From e039a69ce30062df6a3c36e3879fcd7e25dfe894 Mon Sep 17 00:00:00 2001 From: Taylor Jackle Spriggs Date: Thu, 14 Oct 2021 10:04:49 -0700 Subject: [PATCH 07/10] remove vendored --- .gitmodules | 3 --- sigopt/vendored/chevron | 1 - 2 files changed, 4 deletions(-) delete mode 100644 .gitmodules delete mode 160000 sigopt/vendored/chevron diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 6b24cd37..00000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "sigopt/vendored/chevron"] - path = sigopt/vendored/chevron - url = https://github.com/taylorjacklespriggs/chevron-1.git diff --git a/sigopt/vendored/chevron b/sigopt/vendored/chevron deleted file mode 160000 index 5f9aa6f7..00000000 --- a/sigopt/vendored/chevron +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5f9aa6f7c2aa4005b52085e31b5e2677362a5b9b From 1be964a52ec5d4bee4ea4291517d82ce576bb1b2 Mon Sep 17 00:00:00 2001 From: Taylor Jackle Spriggs Date: Thu, 14 Oct 2021 10:06:38 -0700 Subject: [PATCH 08/10] add chevron submodule top level --- .gitmodules | 3 +++ chevron | 1 + sigopt/vendored/chevron | 1 + 3 files changed, 5 insertions(+) create mode 100644 .gitmodules create mode 160000 chevron create mode 120000 sigopt/vendored/chevron diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..0be2fef8 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "chevron"] + path = chevron + url = https://github.com/taylorjacklespriggs/chevron-1.git diff --git a/chevron b/chevron new file mode 160000 index 00000000..5e1c1282 --- /dev/null +++ b/chevron @@ -0,0 +1 @@ +Subproject commit 5e1c12827b7fc3db30cb3b24cae9a7ee3092822b diff --git a/sigopt/vendored/chevron b/sigopt/vendored/chevron new file mode 120000 index 00000000..0763f13a --- /dev/null +++ b/sigopt/vendored/chevron @@ -0,0 +1 @@ +../../chevron/chevron \ No newline at end of file From 7c97d0a1fff006ebaa389164102f6a27228f8edb Mon Sep 17 00:00:00 2001 From: Taylor Jackle Spriggs Date: Thu, 14 Oct 2021 10:07:28 -0700 Subject: [PATCH 09/10] setup submodules --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index 533b6b69..d6849614 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,8 @@ lint: @./lint update: + @git submodule init + @git submodule update @pip install -r requirements-dev.txt @pip install -r requirements.txt @python setup.py clean --all From 1ab97cbef6845a481ae7f28384abac72a62c5541 Mon Sep 17 00:00:00 2001 From: Taylor Jackle Spriggs Date: Thu, 14 Oct 2021 10:11:10 -0700 Subject: [PATCH 10/10] chevron patch branch --- chevron | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chevron b/chevron index 5e1c1282..e8859eb7 160000 --- a/chevron +++ b/chevron @@ -1 +1 @@ -Subproject commit 5e1c12827b7fc3db30cb3b24cae9a7ee3092822b +Subproject commit e8859eb7e8672a55d36d923c440bd72eda926518