From 3fd30a3dce2d8e1d85f8430475f920d7e96fa0ff Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 6 Jan 2023 18:42:00 -0500 Subject: [PATCH 01/59] Update requirements_dev.txt --- requirements_dev.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements_dev.txt b/requirements_dev.txt index c7c53a1..0042e79 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -1,3 +1,4 @@ pytest pytest-cov coveralls +filehash From ed8857604624b8b5fa13cac707f721467c826df7 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 6 Jan 2023 18:46:03 -0500 Subject: [PATCH 02/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index dac30bd..f6f4ff4 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -9,11 +9,15 @@ def test_success_from_bin(): createFromBin("tests/vbaProject.bin", "src/data", "success_bin.xlam") # Assert that xlam file is created assert exists("success_bin.xlam") - #ToDo: assert that bin file within success_bin.xlam matches tests/vbaProject.bin - + #assert that bin file within success_bin.xlam matches tests/vbaProject.bin + extractBinFromZip("success_bin.xlam") + assert file_hash("tests/vbaProject.bin") == file_hash("xl/vbaProject.bin") + createFromZip("success_bin.xlam", "src/data", "success_xlam.xlam") assert exists("success_xlam.xlam") #ToDo: assert that bin file within success_xlam.xlam matches bin file within success_bin.xlam + extractBinFromZip("success_xlam.xlam") + assert file_hash("tests/vbaProject.bin") == file_hash("xl/vbaProject.bin") def test_not_bin_exception(): """ Test that an exception is thrown if the bin file is not an OLE file""" From 09517f08e883052a30d9d59d4824539779132a17 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 6 Jan 2023 18:48:42 -0500 Subject: [PATCH 03/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index f6f4ff4..feec15d 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -11,13 +11,13 @@ def test_success_from_bin(): assert exists("success_bin.xlam") #assert that bin file within success_bin.xlam matches tests/vbaProject.bin extractBinFromZip("success_bin.xlam") - assert file_hash("tests/vbaProject.bin") == file_hash("xl/vbaProject.bin") + assert hash_file("tests/vbaProject.bin") == hash_file("xl/vbaProject.bin") createFromZip("success_bin.xlam", "src/data", "success_xlam.xlam") assert exists("success_xlam.xlam") #ToDo: assert that bin file within success_xlam.xlam matches bin file within success_bin.xlam extractBinFromZip("success_xlam.xlam") - assert file_hash("tests/vbaProject.bin") == file_hash("xl/vbaProject.bin") + assert hash_file("tests/vbaProject.bin") == hash_file("xl/vbaProject.bin") def test_not_bin_exception(): """ Test that an exception is thrown if the bin file is not an OLE file""" From f2e064b1fb134d763f3dc19bd3267abc6f0cbdbe Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 6 Jan 2023 18:50:28 -0500 Subject: [PATCH 04/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index feec15d..add14ab 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -3,6 +3,7 @@ import pytest from excelAddinGenerator.main import * from os.path import exists +from filehash import FileHash def test_success_from_bin(): """Test that xlam is successfully generated from a OLE file""" From 0c473e5c41d1cbe7a6929ee4699871d8e857928f Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 6 Jan 2023 18:54:20 -0500 Subject: [PATCH 05/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index add14ab..cac5668 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -12,13 +12,14 @@ def test_success_from_bin(): assert exists("success_bin.xlam") #assert that bin file within success_bin.xlam matches tests/vbaProject.bin extractBinFromZip("success_bin.xlam") - assert hash_file("tests/vbaProject.bin") == hash_file("xl/vbaProject.bin") + md5hasher = FileHash('md5') + assert md5hasher.hash_file("tests/vbaProject.bin") == md5hasher.hash_file("xl/vbaProject.bin") createFromZip("success_bin.xlam", "src/data", "success_xlam.xlam") assert exists("success_xlam.xlam") #ToDo: assert that bin file within success_xlam.xlam matches bin file within success_bin.xlam extractBinFromZip("success_xlam.xlam") - assert hash_file("tests/vbaProject.bin") == hash_file("xl/vbaProject.bin") + assert md5hasher.hash_file("tests/vbaProject.bin") == md5hasher.hash_file("xl/vbaProject.bin") def test_not_bin_exception(): """ Test that an exception is thrown if the bin file is not an OLE file""" From d138230e6b7f7f5746c4babf22d8288872b70654 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 6 Jan 2023 19:01:39 -0500 Subject: [PATCH 06/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index cac5668..3af18af 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -17,7 +17,7 @@ def test_success_from_bin(): createFromZip("success_bin.xlam", "src/data", "success_xlam.xlam") assert exists("success_xlam.xlam") - #ToDo: assert that bin file within success_xlam.xlam matches bin file within success_bin.xlam + #assert that bin file within success_xlam.xlam matches bin file within success_bin.xlam extractBinFromZip("success_xlam.xlam") assert md5hasher.hash_file("tests/vbaProject.bin") == md5hasher.hash_file("xl/vbaProject.bin") From 89d5d4fa637ab3c85a2fa9b4421f1f0604988178 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 06:55:23 -0400 Subject: [PATCH 07/59] Create pyproject.toml --- pyproject.toml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..405621a --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,35 @@ +[build-system] +requires = ["setuptools>=61.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "excel_addin_generator" +version = "0.0.1" +authors = [ + { name="Kevin Nowaczyk", email="beakerboy99@yahoo.com" }, +] +description = "Create an Excel addin with python." +readme = "README.md" +requires-python = ">=3.7" +classifiers = [ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", +] +[project.optional-dependencies] +tests = [ + 'pytest', + 'pytest-cov', + 'filehash' +] +[project.urls] +"Homepage" = "https://github.com/Beakerboy/vbaProject-Compiler" +"Bug Tracker" = "https://github.com/Beakerboy/vbaProject-Compiler/issues" + +[tool.pytest.ini_options] +pythonpath = "src" +testpaths = [ + "tests", +] +[tool.setuptools.package-data] +"*" = ["*.cls"] From 3dcea6fcbf6cf632735a92cf4defa3b32ad494e2 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 06:55:37 -0400 Subject: [PATCH 08/59] Delete setup.py --- setup.py | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 setup.py diff --git a/setup.py b/setup.py deleted file mode 100644 index 7a3ca67..0000000 --- a/setup.py +++ /dev/null @@ -1,7 +0,0 @@ -from setuptools import setup - -setup( - name="excelAddinGenerator", - packages=['excelAddinGenerator'], - tests_require=['pytest'], -) From c645058a1be3f68e5de5becf0ebe2f628362c940 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 06:55:44 -0400 Subject: [PATCH 09/59] Delete requirements_dev.txt --- requirements_dev.txt | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 requirements_dev.txt diff --git a/requirements_dev.txt b/requirements_dev.txt deleted file mode 100644 index 0042e79..0000000 --- a/requirements_dev.txt +++ /dev/null @@ -1,4 +0,0 @@ -pytest -pytest-cov -coveralls -filehash From 8e559068a8fb50be97b8ac0f15c12bb4e27125a1 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 06:56:15 -0400 Subject: [PATCH 10/59] Update python-package.yml --- .github/workflows/python-package.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 566dada..d4b98cd 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -28,8 +28,6 @@ jobs: run: | python -m pip install --upgrade pip python -m pip install flake8 pytest - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - if [ -f requirements_dev.txt ]; then pip install -r requirements_dev.txt; fi - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names From b26bc17c5f4a10495bdbced465c20dafbe920abf Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 07:30:23 -0400 Subject: [PATCH 11/59] Update python-package.yml --- .github/workflows/python-package.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index d4b98cd..992ab30 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -28,6 +28,7 @@ jobs: run: | python -m pip install --upgrade pip python -m pip install flake8 pytest + pip install -e .[tests] - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names From bb4c9165429a797d7328c3b80a546ec413800f4e Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 07:45:16 -0400 Subject: [PATCH 12/59] Update python-package.yml --- .github/workflows/python-package.yml | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 992ab30..80bbb18 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -7,7 +7,6 @@ on: push: branches: [ "master" ] pull_request: - branches: [ "master" ] jobs: build: @@ -16,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8", "3.9", "3.10"] + python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] steps: - uses: actions/checkout@v3 @@ -27,7 +26,6 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - python -m pip install flake8 pytest pip install -e .[tests] - name: Lint with flake8 run: | @@ -39,5 +37,26 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - pytest --cov=excelAddinGenerator + pytest --cov=src coveralls --service=github + + flake8: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.10"] + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -e .[tests] + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --show-source --statistics From 352999afae6e4581ded3c25612e8e7ffbd2715fa Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 07:46:33 -0400 Subject: [PATCH 13/59] Update pyproject.toml --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 405621a..b62ad32 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,6 +18,7 @@ classifiers = [ ] [project.optional-dependencies] tests = [ + 'coveralls', 'pytest', 'pytest-cov', 'filehash' From cd87b3500245352de04215683c25970eac364abc Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 07:48:04 -0400 Subject: [PATCH 14/59] Rename excelAddinGenerator/__init__.py to src/excel_addin_generator/__init__.py --- {excelAddinGenerator => src/excel_addin_generator}/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {excelAddinGenerator => src/excel_addin_generator}/__init__.py (100%) diff --git a/excelAddinGenerator/__init__.py b/src/excel_addin_generator/__init__.py similarity index 100% rename from excelAddinGenerator/__init__.py rename to src/excel_addin_generator/__init__.py From 4f4ea96e4c55500413c175f74eedef4c7f223817 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 07:49:44 -0400 Subject: [PATCH 15/59] Rename excelAddinGenerator/main.py to src/excel_addin_generator/main.py --- {excelAddinGenerator => src/excel_addin_generator}/main.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {excelAddinGenerator => src/excel_addin_generator}/main.py (100%) diff --git a/excelAddinGenerator/main.py b/src/excel_addin_generator/main.py similarity index 100% rename from excelAddinGenerator/main.py rename to src/excel_addin_generator/main.py From a9ed0dc537e2d3ea6321a5d38c98d0c9b83bc80b Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 07:51:32 -0400 Subject: [PATCH 16/59] Update pyproject.toml --- pyproject.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b62ad32..f4efb8c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,9 +19,10 @@ classifiers = [ [project.optional-dependencies] tests = [ 'coveralls', + 'filehash', + 'flake8-annotations', 'pytest', - 'pytest-cov', - 'filehash' + 'pytest-cov' ] [project.urls] "Homepage" = "https://github.com/Beakerboy/vbaProject-Compiler" From d8ae589b1687b568dc87a60815cff31e91a6ece5 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 07:53:47 -0400 Subject: [PATCH 17/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index 3af18af..aff3350 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -1,7 +1,7 @@ # test_excelAddinGenerator.py import pytest -from excelAddinGenerator.main import * +from excel_addin_generator import * from os.path import exists from filehash import FileHash From a4bd455ddc27afd20f3b3f863b90585f1cb5dbff Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 07:56:29 -0400 Subject: [PATCH 18/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index aff3350..dc0fbc0 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -1,41 +1,40 @@ # test_excelAddinGenerator.py import pytest -from excel_addin_generator import * from os.path import exists from filehash import FileHash def test_success_from_bin(): """Test that xlam is successfully generated from a OLE file""" - createFromBin("tests/vbaProject.bin", "src/data", "success_bin.xlam") + excel_addin_generator.createFromBin("tests/vbaProject.bin", "src/data", "success_bin.xlam") # Assert that xlam file is created assert exists("success_bin.xlam") #assert that bin file within success_bin.xlam matches tests/vbaProject.bin - extractBinFromZip("success_bin.xlam") + excel_addin_generator.extractBinFromZip("success_bin.xlam") md5hasher = FileHash('md5') assert md5hasher.hash_file("tests/vbaProject.bin") == md5hasher.hash_file("xl/vbaProject.bin") - createFromZip("success_bin.xlam", "src/data", "success_xlam.xlam") + excel_addin_generator.createFromZip("success_bin.xlam", "src/data", "success_xlam.xlam") assert exists("success_xlam.xlam") #assert that bin file within success_xlam.xlam matches bin file within success_bin.xlam - extractBinFromZip("success_xlam.xlam") + excel_addin_generator.extractBinFromZip("success_xlam.xlam") assert md5hasher.hash_file("tests/vbaProject.bin") == md5hasher.hash_file("xl/vbaProject.bin") def test_not_bin_exception(): """ Test that an exception is thrown if the bin file is not an OLE file""" with pytest.raises(Exception) as e_info: - createFromBin("tests/blank.bin", "src/data", "./fail.xlam") + excel_addin_generator.createFromBin("tests/blank.bin", "src/data", "./fail.xlam") def test_xlam_not_zip(): """ Test that an exception is thrown if the zip is not a zip archive""" with pytest.raises(Exception) as e_info: - createFromZip("tests/blank.bin", "src/data", "./fail.xlam") + excel_addin_generator.createFromZip("tests/blank.bin", "src/data", "./fail.xlam") def test_main(): - main(["./excelAddinGenerator", "./tests/vbaProject.bin", "success_bin.xlam"]) - main(["./excelAddinGenerator", "success_bin.xlam", "success_xlam.xlam"]) + excel_addin_generator.main(["./excelAddinGenerator", "./tests/vbaProject.bin", "success_bin.xlam"]) + excel_addin_generator.main(["./excelAddinGenerator", "success_bin.xlam", "success_xlam.xlam"]) def test_main_incorrect_type(): """ Test that an exception is thrown if the zip is not a zip archive""" with pytest.raises(Exception) as e_info: - main(["./excelAddinGenerator", "./src/data/xl/styles.xml", "fail.xlam"]) + excel_addin_generator.main(["./excelAddinGenerator", "./src/data/xl/styles.xml", "fail.xlam"]) From a8778bcd97b821b38a4e340161604d695f5b79f1 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 07:58:31 -0400 Subject: [PATCH 19/59] Update main.py --- src/excel_addin_generator/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/excel_addin_generator/main.py b/src/excel_addin_generator/main.py index 91cc16c..ac27fdc 100644 --- a/src/excel_addin_generator/main.py +++ b/src/excel_addin_generator/main.py @@ -12,7 +12,7 @@ def main(args): else: raise Exception(input_file, " is not a valid file format.") -def createFromBin(input_file, wrapper_dir, output_file_name): +def create_from_bin(input_file, wrapper_dir, output_file_name): """Create a zip file containing the provided bin""" # file must start with 'd0 cf 11 e0 a1 b1 1a e1' fileSig = open(input_file, "rb").read(8).hex() @@ -25,7 +25,7 @@ def createFromBin(input_file, wrapper_dir, output_file_name): def createFromZip(input_file, wrapper_dir, output_file_name): """Create a zip file containing the bin file within the provided zip file""" extractBinFromZip(input_file) - createFromBin('xl/vbaProject.bin', wrapper_dir, output_file_name) + create_from_bin('xl/vbaProject.bin', wrapper_dir, output_file_name) def extractBinFromZip(input_file): # check that input is a zip file From 702c1029e1934e52ea3fc90db8a4c1fa0bed933a Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 07:59:58 -0400 Subject: [PATCH 20/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index dc0fbc0..0a0b027 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -6,7 +6,7 @@ def test_success_from_bin(): """Test that xlam is successfully generated from a OLE file""" - excel_addin_generator.createFromBin("tests/vbaProject.bin", "src/data", "success_bin.xlam") + excel_addin_generator.main.create_from_bin("tests/vbaProject.bin", "src/data", "success_bin.xlam") # Assert that xlam file is created assert exists("success_bin.xlam") #assert that bin file within success_bin.xlam matches tests/vbaProject.bin From cfdefe8240cd4fac7f79535e28952d7aac267742 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:09:55 -0400 Subject: [PATCH 21/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index 0a0b027..cbac9fa 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -1,5 +1,5 @@ # test_excelAddinGenerator.py - +import excel_addin_generator import pytest from os.path import exists from filehash import FileHash From 67e936eb222fd41e91ad4e8416dabfc84f42dc43 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:11:41 -0400 Subject: [PATCH 22/59] Update main.py --- src/excel_addin_generator/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/excel_addin_generator/main.py b/src/excel_addin_generator/main.py index ac27fdc..6206f07 100644 --- a/src/excel_addin_generator/main.py +++ b/src/excel_addin_generator/main.py @@ -8,7 +8,7 @@ def main(args): if input_file.endswith('.xlam'): createFromZip(input_file, args[0] + '/../src/data', output_file_name) elif input_file.endswith('.bin'): - createFromBin(input_file, args[0] + '/../src/data', output_file_name) + create_from_bin(input_file, args[0] + '/../src/data', output_file_name) else: raise Exception(input_file, " is not a valid file format.") From f3360e20f9d61af45d171d00d4ab3ee81411b0a3 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:15:41 -0400 Subject: [PATCH 23/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index cbac9fa..6e790ce 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -1,5 +1,5 @@ # test_excelAddinGenerator.py -import excel_addin_generator +import excel_addin_generator.main import pytest from os.path import exists from filehash import FileHash From 010d6225ab5707e8a59a3bb6879902728d115395 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:17:40 -0400 Subject: [PATCH 24/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index 6e790ce..006059e 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -10,31 +10,31 @@ def test_success_from_bin(): # Assert that xlam file is created assert exists("success_bin.xlam") #assert that bin file within success_bin.xlam matches tests/vbaProject.bin - excel_addin_generator.extractBinFromZip("success_bin.xlam") + excel_addin_generator.main.extractBinFromZip("success_bin.xlam") md5hasher = FileHash('md5') assert md5hasher.hash_file("tests/vbaProject.bin") == md5hasher.hash_file("xl/vbaProject.bin") excel_addin_generator.createFromZip("success_bin.xlam", "src/data", "success_xlam.xlam") assert exists("success_xlam.xlam") #assert that bin file within success_xlam.xlam matches bin file within success_bin.xlam - excel_addin_generator.extractBinFromZip("success_xlam.xlam") + excel_addin_generator.main.extractBinFromZip("success_xlam.xlam") assert md5hasher.hash_file("tests/vbaProject.bin") == md5hasher.hash_file("xl/vbaProject.bin") def test_not_bin_exception(): """ Test that an exception is thrown if the bin file is not an OLE file""" with pytest.raises(Exception) as e_info: - excel_addin_generator.createFromBin("tests/blank.bin", "src/data", "./fail.xlam") + excel_addin_generator.main.createFromBin("tests/blank.bin", "src/data", "./fail.xlam") def test_xlam_not_zip(): """ Test that an exception is thrown if the zip is not a zip archive""" with pytest.raises(Exception) as e_info: - excel_addin_generator.createFromZip("tests/blank.bin", "src/data", "./fail.xlam") + excel_addin_generator.main.createFromZip("tests/blank.bin", "src/data", "./fail.xlam") def test_main(): - excel_addin_generator.main(["./excelAddinGenerator", "./tests/vbaProject.bin", "success_bin.xlam"]) - excel_addin_generator.main(["./excelAddinGenerator", "success_bin.xlam", "success_xlam.xlam"]) + excel_addin_generator.main.main(["./excelAddinGenerator", "./tests/vbaProject.bin", "success_bin.xlam"]) + excel_addin_generator.main.main(["./excelAddinGenerator", "success_bin.xlam", "success_xlam.xlam"]) def test_main_incorrect_type(): """ Test that an exception is thrown if the zip is not a zip archive""" with pytest.raises(Exception) as e_info: - excel_addin_generator.main(["./excelAddinGenerator", "./src/data/xl/styles.xml", "fail.xlam"]) + excel_addin_generator.main.main(["./excelAddinGenerator", "./src/data/xl/styles.xml", "fail.xlam"]) From 8e924c117476061ee0441098204f88723cf3942d Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:19:34 -0400 Subject: [PATCH 25/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index 006059e..93e5772 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -14,7 +14,7 @@ def test_success_from_bin(): md5hasher = FileHash('md5') assert md5hasher.hash_file("tests/vbaProject.bin") == md5hasher.hash_file("xl/vbaProject.bin") - excel_addin_generator.createFromZip("success_bin.xlam", "src/data", "success_xlam.xlam") + excel_addin_generator.main.createFromZip("success_bin.xlam", "src/data", "success_xlam.xlam") assert exists("success_xlam.xlam") #assert that bin file within success_xlam.xlam matches bin file within success_bin.xlam excel_addin_generator.main.extractBinFromZip("success_xlam.xlam") From b1ce0f5fb391ba06971a1e29290753cc572c1cc3 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:25:30 -0400 Subject: [PATCH 26/59] Update main.py --- src/excel_addin_generator/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/excel_addin_generator/main.py b/src/excel_addin_generator/main.py index 6206f07..2a480d4 100644 --- a/src/excel_addin_generator/main.py +++ b/src/excel_addin_generator/main.py @@ -6,9 +6,9 @@ def main(args): input_file = args[1] output_file_name = args[2] if input_file.endswith('.xlam'): - createFromZip(input_file, args[0] + '/../src/data', output_file_name) + createFromZip(input_file, args[0] + '/../data', output_file_name) elif input_file.endswith('.bin'): - create_from_bin(input_file, args[0] + '/../src/data', output_file_name) + create_from_bin(input_file, args[0] + '/../data', output_file_name) else: raise Exception(input_file, " is not a valid file format.") From 41d3e467d9849042c68d088f9be10dc804dce0ff Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:28:44 -0400 Subject: [PATCH 27/59] Update main.py --- src/excel_addin_generator/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/excel_addin_generator/main.py b/src/excel_addin_generator/main.py index 2a480d4..4c18221 100644 --- a/src/excel_addin_generator/main.py +++ b/src/excel_addin_generator/main.py @@ -6,9 +6,9 @@ def main(args): input_file = args[1] output_file_name = args[2] if input_file.endswith('.xlam'): - createFromZip(input_file, args[0] + '/../data', output_file_name) + createFromZip(input_file, args[0] + '/src/data', output_file_name) elif input_file.endswith('.bin'): - create_from_bin(input_file, args[0] + '/../data', output_file_name) + create_from_bin(input_file, args[0] + '/src/data', output_file_name) else: raise Exception(input_file, " is not a valid file format.") From 94a29dda425d98fddb4f6cfc0af06e8aa9f7449d Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:31:18 -0400 Subject: [PATCH 28/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index 93e5772..c9f2751 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -31,10 +31,10 @@ def test_xlam_not_zip(): excel_addin_generator.main.createFromZip("tests/blank.bin", "src/data", "./fail.xlam") def test_main(): - excel_addin_generator.main.main(["./excelAddinGenerator", "./tests/vbaProject.bin", "success_bin.xlam"]) - excel_addin_generator.main.main(["./excelAddinGenerator", "success_bin.xlam", "success_xlam.xlam"]) + excel_addin_generator.main.main(["./src/excel_addin_generator", "./tests/vbaProject.bin", "success_bin.xlam"]) + excel_addin_generator.main.main(["./src/excel_addin_generator", "success_bin.xlam", "success_xlam.xlam"]) def test_main_incorrect_type(): """ Test that an exception is thrown if the zip is not a zip archive""" with pytest.raises(Exception) as e_info: - excel_addin_generator.main.main(["./excelAddinGenerator", "./src/data/xl/styles.xml", "fail.xlam"]) + excel_addin_generator.main.main(["./src/excel_addin_generator", "./src/data/xl/styles.xml", "fail.xlam"]) From 4f613711d8c558347467a44b298fcddea59d0289 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:34:06 -0400 Subject: [PATCH 29/59] Update main.py --- src/excel_addin_generator/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/excel_addin_generator/main.py b/src/excel_addin_generator/main.py index 4c18221..2a480d4 100644 --- a/src/excel_addin_generator/main.py +++ b/src/excel_addin_generator/main.py @@ -6,9 +6,9 @@ def main(args): input_file = args[1] output_file_name = args[2] if input_file.endswith('.xlam'): - createFromZip(input_file, args[0] + '/src/data', output_file_name) + createFromZip(input_file, args[0] + '/../data', output_file_name) elif input_file.endswith('.bin'): - create_from_bin(input_file, args[0] + '/src/data', output_file_name) + create_from_bin(input_file, args[0] + '/../data', output_file_name) else: raise Exception(input_file, " is not a valid file format.") From 0a2298b130f7e7996802a77531c8dd8d736aa390 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:41:07 -0400 Subject: [PATCH 30/59] Update main.py --- src/excel_addin_generator/main.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/excel_addin_generator/main.py b/src/excel_addin_generator/main.py index 2a480d4..f6a3051 100644 --- a/src/excel_addin_generator/main.py +++ b/src/excel_addin_generator/main.py @@ -1,6 +1,6 @@ import shutil, sys, os, zipfile -def main(args): +def main(args) -> None: if len(args) > 2: # check the extension on sys.argv[1] to determine which function to call input_file = args[1] @@ -12,7 +12,7 @@ def main(args): else: raise Exception(input_file, " is not a valid file format.") -def create_from_bin(input_file, wrapper_dir, output_file_name): +def create_from_bin(input_file, wrapper_dir, output_file_name) -> None: """Create a zip file containing the provided bin""" # file must start with 'd0 cf 11 e0 a1 b1 1a e1' fileSig = open(input_file, "rb").read(8).hex() @@ -22,12 +22,12 @@ def create_from_bin(input_file, wrapper_dir, output_file_name): shutil.make_archive(output_file_name, 'zip', wrapper_dir) shutil.move(output_file_name + ".zip", output_file_name) -def createFromZip(input_file, wrapper_dir, output_file_name): +def createFromZip(input_file, wrapper_dir, output_file_name) -> None: """Create a zip file containing the bin file within the provided zip file""" extractBinFromZip(input_file) create_from_bin('xl/vbaProject.bin', wrapper_dir, output_file_name) -def extractBinFromZip(input_file): +def extractBinFromZip(input_file) -> None: # check that input is a zip file if zipfile.is_zipfile(input_file): # check that the zip archive contains /xl/vbaProject.bin From 4b94e260ea12e18c142324e6e87fcdf26fdb055b Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:43:57 -0400 Subject: [PATCH 31/59] Update main.py --- src/excel_addin_generator/main.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/excel_addin_generator/main.py b/src/excel_addin_generator/main.py index f6a3051..0d33c53 100644 --- a/src/excel_addin_generator/main.py +++ b/src/excel_addin_generator/main.py @@ -1,6 +1,9 @@ -import shutil, sys, os, zipfile +import os +import shutil +import sys +import zipfile -def main(args) -> None: +def main(args: list) -> None: if len(args) > 2: # check the extension on sys.argv[1] to determine which function to call input_file = args[1] From c6ebfcd0c83e9033cf4542cfc761a739c64782d9 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:47:06 -0400 Subject: [PATCH 32/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index c9f2751..f65610b 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -4,7 +4,7 @@ from os.path import exists from filehash import FileHash -def test_success_from_bin(): +def test_success_from_bin() -> None: """Test that xlam is successfully generated from a OLE file""" excel_addin_generator.main.create_from_bin("tests/vbaProject.bin", "src/data", "success_bin.xlam") # Assert that xlam file is created @@ -20,21 +20,21 @@ def test_success_from_bin(): excel_addin_generator.main.extractBinFromZip("success_xlam.xlam") assert md5hasher.hash_file("tests/vbaProject.bin") == md5hasher.hash_file("xl/vbaProject.bin") -def test_not_bin_exception(): +def test_not_bin_exception() -> None: """ Test that an exception is thrown if the bin file is not an OLE file""" with pytest.raises(Exception) as e_info: excel_addin_generator.main.createFromBin("tests/blank.bin", "src/data", "./fail.xlam") -def test_xlam_not_zip(): +def test_xlam_not_zip() -> None: """ Test that an exception is thrown if the zip is not a zip archive""" with pytest.raises(Exception) as e_info: excel_addin_generator.main.createFromZip("tests/blank.bin", "src/data", "./fail.xlam") -def test_main(): +def test_main() -> None: excel_addin_generator.main.main(["./src/excel_addin_generator", "./tests/vbaProject.bin", "success_bin.xlam"]) excel_addin_generator.main.main(["./src/excel_addin_generator", "success_bin.xlam", "success_xlam.xlam"]) -def test_main_incorrect_type(): +def test_main_incorrect_type() -> None: """ Test that an exception is thrown if the zip is not a zip archive""" with pytest.raises(Exception) as e_info: excel_addin_generator.main.main(["./src/excel_addin_generator", "./src/data/xl/styles.xml", "fail.xlam"]) From 18ccebbb4f66fd42d0dd5e245d97c4bf4c05f977 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:50:44 -0400 Subject: [PATCH 33/59] Update main.py --- src/excel_addin_generator/main.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/excel_addin_generator/main.py b/src/excel_addin_generator/main.py index 0d33c53..b4dcb10 100644 --- a/src/excel_addin_generator/main.py +++ b/src/excel_addin_generator/main.py @@ -4,6 +4,7 @@ import zipfile def main(args: list) -> None: + if len(args) > 2: # check the extension on sys.argv[1] to determine which function to call input_file = args[1] @@ -16,6 +17,7 @@ def main(args: list) -> None: raise Exception(input_file, " is not a valid file format.") def create_from_bin(input_file, wrapper_dir, output_file_name) -> None: + """Create a zip file containing the provided bin""" # file must start with 'd0 cf 11 e0 a1 b1 1a e1' fileSig = open(input_file, "rb").read(8).hex() @@ -26,11 +28,13 @@ def create_from_bin(input_file, wrapper_dir, output_file_name) -> None: shutil.move(output_file_name + ".zip", output_file_name) def createFromZip(input_file, wrapper_dir, output_file_name) -> None: + """Create a zip file containing the bin file within the provided zip file""" extractBinFromZip(input_file) create_from_bin('xl/vbaProject.bin', wrapper_dir, output_file_name) def extractBinFromZip(input_file) -> None: + # check that input is a zip file if zipfile.is_zipfile(input_file): # check that the zip archive contains /xl/vbaProject.bin From 9f87d07a3fbb16bda33c8cc51c9822b391dae79d Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:52:09 -0400 Subject: [PATCH 34/59] Update main.py --- src/excel_addin_generator/main.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/excel_addin_generator/main.py b/src/excel_addin_generator/main.py index b4dcb10..1914f03 100644 --- a/src/excel_addin_generator/main.py +++ b/src/excel_addin_generator/main.py @@ -4,7 +4,7 @@ import zipfile def main(args: list) -> None: - + if len(args) > 2: # check the extension on sys.argv[1] to determine which function to call input_file = args[1] @@ -17,7 +17,7 @@ def main(args: list) -> None: raise Exception(input_file, " is not a valid file format.") def create_from_bin(input_file, wrapper_dir, output_file_name) -> None: - + """Create a zip file containing the provided bin""" # file must start with 'd0 cf 11 e0 a1 b1 1a e1' fileSig = open(input_file, "rb").read(8).hex() @@ -28,13 +28,13 @@ def create_from_bin(input_file, wrapper_dir, output_file_name) -> None: shutil.move(output_file_name + ".zip", output_file_name) def createFromZip(input_file, wrapper_dir, output_file_name) -> None: - + """Create a zip file containing the bin file within the provided zip file""" extractBinFromZip(input_file) create_from_bin('xl/vbaProject.bin', wrapper_dir, output_file_name) def extractBinFromZip(input_file) -> None: - + # check that input is a zip file if zipfile.is_zipfile(input_file): # check that the zip archive contains /xl/vbaProject.bin From 3796dd642bf9366ed7a860f511b1c15632617ff8 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:52:47 -0400 Subject: [PATCH 35/59] Update main.py --- src/excel_addin_generator/main.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/excel_addin_generator/main.py b/src/excel_addin_generator/main.py index 1914f03..c42c864 100644 --- a/src/excel_addin_generator/main.py +++ b/src/excel_addin_generator/main.py @@ -3,6 +3,7 @@ import sys import zipfile + def main(args: list) -> None: if len(args) > 2: @@ -16,6 +17,7 @@ def main(args: list) -> None: else: raise Exception(input_file, " is not a valid file format.") + def create_from_bin(input_file, wrapper_dir, output_file_name) -> None: """Create a zip file containing the provided bin""" @@ -27,12 +29,14 @@ def create_from_bin(input_file, wrapper_dir, output_file_name) -> None: shutil.make_archive(output_file_name, 'zip', wrapper_dir) shutil.move(output_file_name + ".zip", output_file_name) + def createFromZip(input_file, wrapper_dir, output_file_name) -> None: """Create a zip file containing the bin file within the provided zip file""" extractBinFromZip(input_file) create_from_bin('xl/vbaProject.bin', wrapper_dir, output_file_name) + def extractBinFromZip(input_file) -> None: # check that input is a zip file @@ -43,6 +47,7 @@ def extractBinFromZip(input_file) -> None: else: raise Exception(input_file, " is not a valid file format.") + if __name__ == "__main__": args = [] args[0] = os.path.dirname(sys.argv[0]) From 007f1a98fe3d74d99ac44401b6c47eec1279df0a Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:54:58 -0400 Subject: [PATCH 36/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index f65610b..dfa78b1 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -4,6 +4,7 @@ from os.path import exists from filehash import FileHash + def test_success_from_bin() -> None: """Test that xlam is successfully generated from a OLE file""" excel_addin_generator.main.create_from_bin("tests/vbaProject.bin", "src/data", "success_bin.xlam") @@ -19,21 +20,25 @@ def test_success_from_bin() -> None: #assert that bin file within success_xlam.xlam matches bin file within success_bin.xlam excel_addin_generator.main.extractBinFromZip("success_xlam.xlam") assert md5hasher.hash_file("tests/vbaProject.bin") == md5hasher.hash_file("xl/vbaProject.bin") - + + def test_not_bin_exception() -> None: """ Test that an exception is thrown if the bin file is not an OLE file""" with pytest.raises(Exception) as e_info: excel_addin_generator.main.createFromBin("tests/blank.bin", "src/data", "./fail.xlam") - + + def test_xlam_not_zip() -> None: """ Test that an exception is thrown if the zip is not a zip archive""" with pytest.raises(Exception) as e_info: excel_addin_generator.main.createFromZip("tests/blank.bin", "src/data", "./fail.xlam") + def test_main() -> None: excel_addin_generator.main.main(["./src/excel_addin_generator", "./tests/vbaProject.bin", "success_bin.xlam"]) excel_addin_generator.main.main(["./src/excel_addin_generator", "success_bin.xlam", "success_xlam.xlam"]) + def test_main_incorrect_type() -> None: """ Test that an exception is thrown if the zip is not a zip archive""" with pytest.raises(Exception) as e_info: From 47b9f68563ac78ecd590f0490cf23f7d01dc057c Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:56:03 -0400 Subject: [PATCH 37/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index dfa78b1..ae107d9 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -10,14 +10,14 @@ def test_success_from_bin() -> None: excel_addin_generator.main.create_from_bin("tests/vbaProject.bin", "src/data", "success_bin.xlam") # Assert that xlam file is created assert exists("success_bin.xlam") - #assert that bin file within success_bin.xlam matches tests/vbaProject.bin + # assert that bin file within success_bin.xlam matches tests/vbaProject.bin excel_addin_generator.main.extractBinFromZip("success_bin.xlam") md5hasher = FileHash('md5') assert md5hasher.hash_file("tests/vbaProject.bin") == md5hasher.hash_file("xl/vbaProject.bin") excel_addin_generator.main.createFromZip("success_bin.xlam", "src/data", "success_xlam.xlam") assert exists("success_xlam.xlam") - #assert that bin file within success_xlam.xlam matches bin file within success_bin.xlam + # assert that bin file within success_xlam.xlam matches bin file within success_bin.xlam excel_addin_generator.main.extractBinFromZip("success_xlam.xlam") assert md5hasher.hash_file("tests/vbaProject.bin") == md5hasher.hash_file("xl/vbaProject.bin") From 41bfb7e8f640a95965f083227c7509079513170f Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 08:57:53 -0400 Subject: [PATCH 38/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index ae107d9..c7c58fd 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -24,13 +24,13 @@ def test_success_from_bin() -> None: def test_not_bin_exception() -> None: """ Test that an exception is thrown if the bin file is not an OLE file""" - with pytest.raises(Exception) as e_info: + with pytest.raises(Exception): excel_addin_generator.main.createFromBin("tests/blank.bin", "src/data", "./fail.xlam") def test_xlam_not_zip() -> None: """ Test that an exception is thrown if the zip is not a zip archive""" - with pytest.raises(Exception) as e_info: + with pytest.raises(Exception): excel_addin_generator.main.createFromZip("tests/blank.bin", "src/data", "./fail.xlam") @@ -41,5 +41,5 @@ def test_main() -> None: def test_main_incorrect_type() -> None: """ Test that an exception is thrown if the zip is not a zip archive""" - with pytest.raises(Exception) as e_info: + with pytest.raises(Exception): excel_addin_generator.main.main(["./src/excel_addin_generator", "./src/data/xl/styles.xml", "fail.xlam"]) From a272cd09346934372fc95e604f8b071e16ba1c3c Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 09:00:11 -0400 Subject: [PATCH 39/59] Update __init__.py --- src/excel_addin_generator/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/excel_addin_generator/__init__.py b/src/excel_addin_generator/__init__.py index 8b13789..fbf40fc 100644 --- a/src/excel_addin_generator/__init__.py +++ b/src/excel_addin_generator/__init__.py @@ -1 +1 @@ - +# None From 5050fc3bd5387b26d3354bcec14afb0f1de8125b Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 09:02:46 -0400 Subject: [PATCH 40/59] Update main.py --- src/excel_addin_generator/main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/excel_addin_generator/main.py b/src/excel_addin_generator/main.py index c42c864..66cd529 100644 --- a/src/excel_addin_generator/main.py +++ b/src/excel_addin_generator/main.py @@ -18,7 +18,7 @@ def main(args: list) -> None: raise Exception(input_file, " is not a valid file format.") -def create_from_bin(input_file, wrapper_dir, output_file_name) -> None: +def create_from_bin(input_file: str, wrapper_dir: str, output_file_name: str) -> None: """Create a zip file containing the provided bin""" # file must start with 'd0 cf 11 e0 a1 b1 1a e1' @@ -30,14 +30,14 @@ def create_from_bin(input_file, wrapper_dir, output_file_name) -> None: shutil.move(output_file_name + ".zip", output_file_name) -def createFromZip(input_file, wrapper_dir, output_file_name) -> None: +def createFromZip(input_file: str, wrapper_dir: str, output_file_name: str) -> None: """Create a zip file containing the bin file within the provided zip file""" extractBinFromZip(input_file) create_from_bin('xl/vbaProject.bin', wrapper_dir, output_file_name) -def extractBinFromZip(input_file) -> None: +def extractBinFromZip(input_file: str) -> None: # check that input is a zip file if zipfile.is_zipfile(input_file): From 37fd60eef5d6a85c2a61136547562ff1e1e3435d Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 09:04:34 -0400 Subject: [PATCH 41/59] Delete tests/__init__.py --- tests/__init__.py | 1 - 1 file changed, 1 deletion(-) delete mode 100644 tests/__init__.py diff --git a/tests/__init__.py b/tests/__init__.py deleted file mode 100644 index 8b13789..0000000 --- a/tests/__init__.py +++ /dev/null @@ -1 +0,0 @@ - From 65d23bbaa27786259ba767432804311e34e4c0fa Mon Sep 17 00:00:00 2001 From: Beakerboy Date: Fri, 3 Nov 2023 14:00:11 +0000 Subject: [PATCH 42/59] moved data --- src/{ => excel_addin_generator}/data/[Content_Types].xml | 0 src/{ => excel_addin_generator}/data/_rels/.rels | 0 src/{ => excel_addin_generator}/data/docProps/app.xml | 0 src/{ => excel_addin_generator}/data/docProps/core.xml | 0 src/{ => excel_addin_generator}/data/xl/_rels/workbook.xml.rels | 0 src/{ => excel_addin_generator}/data/xl/styles.xml | 0 src/{ => excel_addin_generator}/data/xl/theme/theme1.xml | 0 src/{ => excel_addin_generator}/data/xl/workbook.xml | 0 src/{ => excel_addin_generator}/data/xl/worksheets/sheet1.xml | 0 9 files changed, 0 insertions(+), 0 deletions(-) rename src/{ => excel_addin_generator}/data/[Content_Types].xml (100%) rename src/{ => excel_addin_generator}/data/_rels/.rels (100%) rename src/{ => excel_addin_generator}/data/docProps/app.xml (100%) rename src/{ => excel_addin_generator}/data/docProps/core.xml (100%) rename src/{ => excel_addin_generator}/data/xl/_rels/workbook.xml.rels (100%) rename src/{ => excel_addin_generator}/data/xl/styles.xml (100%) rename src/{ => excel_addin_generator}/data/xl/theme/theme1.xml (100%) rename src/{ => excel_addin_generator}/data/xl/workbook.xml (100%) rename src/{ => excel_addin_generator}/data/xl/worksheets/sheet1.xml (100%) diff --git a/src/data/[Content_Types].xml b/src/excel_addin_generator/data/[Content_Types].xml similarity index 100% rename from src/data/[Content_Types].xml rename to src/excel_addin_generator/data/[Content_Types].xml diff --git a/src/data/_rels/.rels b/src/excel_addin_generator/data/_rels/.rels similarity index 100% rename from src/data/_rels/.rels rename to src/excel_addin_generator/data/_rels/.rels diff --git a/src/data/docProps/app.xml b/src/excel_addin_generator/data/docProps/app.xml similarity index 100% rename from src/data/docProps/app.xml rename to src/excel_addin_generator/data/docProps/app.xml diff --git a/src/data/docProps/core.xml b/src/excel_addin_generator/data/docProps/core.xml similarity index 100% rename from src/data/docProps/core.xml rename to src/excel_addin_generator/data/docProps/core.xml diff --git a/src/data/xl/_rels/workbook.xml.rels b/src/excel_addin_generator/data/xl/_rels/workbook.xml.rels similarity index 100% rename from src/data/xl/_rels/workbook.xml.rels rename to src/excel_addin_generator/data/xl/_rels/workbook.xml.rels diff --git a/src/data/xl/styles.xml b/src/excel_addin_generator/data/xl/styles.xml similarity index 100% rename from src/data/xl/styles.xml rename to src/excel_addin_generator/data/xl/styles.xml diff --git a/src/data/xl/theme/theme1.xml b/src/excel_addin_generator/data/xl/theme/theme1.xml similarity index 100% rename from src/data/xl/theme/theme1.xml rename to src/excel_addin_generator/data/xl/theme/theme1.xml diff --git a/src/data/xl/workbook.xml b/src/excel_addin_generator/data/xl/workbook.xml similarity index 100% rename from src/data/xl/workbook.xml rename to src/excel_addin_generator/data/xl/workbook.xml diff --git a/src/data/xl/worksheets/sheet1.xml b/src/excel_addin_generator/data/xl/worksheets/sheet1.xml similarity index 100% rename from src/data/xl/worksheets/sheet1.xml rename to src/excel_addin_generator/data/xl/worksheets/sheet1.xml From 7783a24380e7e819768447c8c12c1e9cb08fed96 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 10:01:56 -0400 Subject: [PATCH 43/59] Update main.py --- src/excel_addin_generator/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/excel_addin_generator/main.py b/src/excel_addin_generator/main.py index 66cd529..ccdb5f5 100644 --- a/src/excel_addin_generator/main.py +++ b/src/excel_addin_generator/main.py @@ -11,9 +11,9 @@ def main(args: list) -> None: input_file = args[1] output_file_name = args[2] if input_file.endswith('.xlam'): - createFromZip(input_file, args[0] + '/../data', output_file_name) + createFromZip(input_file, args[0] + '/data', output_file_name) elif input_file.endswith('.bin'): - create_from_bin(input_file, args[0] + '/../data', output_file_name) + create_from_bin(input_file, args[0] + '/data', output_file_name) else: raise Exception(input_file, " is not a valid file format.") From 1fa2f09efbbd6e24f34d9b1671569c92f4887695 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 10:04:03 -0400 Subject: [PATCH 44/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index c7c58fd..3623a4f 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -7,7 +7,7 @@ def test_success_from_bin() -> None: """Test that xlam is successfully generated from a OLE file""" - excel_addin_generator.main.create_from_bin("tests/vbaProject.bin", "src/data", "success_bin.xlam") + excel_addin_generator.main.create_from_bin("tests/vbaProject.bin", "src/excel_addin_generator/data", "success_bin.xlam") # Assert that xlam file is created assert exists("success_bin.xlam") # assert that bin file within success_bin.xlam matches tests/vbaProject.bin From fd87e1175b3b01e865b1d3b9b260abc02188bfb2 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 10:05:27 -0400 Subject: [PATCH 45/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index 3623a4f..0df1130 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -15,7 +15,7 @@ def test_success_from_bin() -> None: md5hasher = FileHash('md5') assert md5hasher.hash_file("tests/vbaProject.bin") == md5hasher.hash_file("xl/vbaProject.bin") - excel_addin_generator.main.createFromZip("success_bin.xlam", "src/data", "success_xlam.xlam") + excel_addin_generator.main.createFromZip("success_bin.xlam", "src/excel_addin_generator/data", "success_xlam.xlam") assert exists("success_xlam.xlam") # assert that bin file within success_xlam.xlam matches bin file within success_bin.xlam excel_addin_generator.main.extractBinFromZip("success_xlam.xlam") @@ -25,13 +25,13 @@ def test_success_from_bin() -> None: def test_not_bin_exception() -> None: """ Test that an exception is thrown if the bin file is not an OLE file""" with pytest.raises(Exception): - excel_addin_generator.main.createFromBin("tests/blank.bin", "src/data", "./fail.xlam") + excel_addin_generator.main.createFromBin("tests/blank.bin", "src/excel_addin_generator/data", "./fail.xlam") def test_xlam_not_zip() -> None: """ Test that an exception is thrown if the zip is not a zip archive""" with pytest.raises(Exception): - excel_addin_generator.main.createFromZip("tests/blank.bin", "src/data", "./fail.xlam") + excel_addin_generator.main.createFromZip("tests/blank.bin", "src/excel_addin_generator/data", "./fail.xlam") def test_main() -> None: @@ -42,4 +42,4 @@ def test_main() -> None: def test_main_incorrect_type() -> None: """ Test that an exception is thrown if the zip is not a zip archive""" with pytest.raises(Exception): - excel_addin_generator.main.main(["./src/excel_addin_generator", "./src/data/xl/styles.xml", "fail.xlam"]) + excel_addin_generator.main.main(["./src/excel_addin_generator", "./src/excel_addin_generator/data/xl/styles.xml", "fail.xlam"]) From 0655d8f471c2ea38d16d17a7a3ba02a9b0df257a Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 10:10:33 -0400 Subject: [PATCH 46/59] Create __main__.py --- src/excel_addin_generator/__main__.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/excel_addin_generator/__main__.py diff --git a/src/excel_addin_generator/__main__.py b/src/excel_addin_generator/__main__.py new file mode 100644 index 0000000..722a6ce --- /dev/null +++ b/src/excel_addin_generator/__main__.py @@ -0,0 +1,17 @@ +import excel_addin_generator.main as gen + + +def main(args: list) -> None: + + if len(args) > 2: + # check the extension on sys.argv[1] to determine which function to call + input_file = args[1] + output_file_name = args[2] + if input_file.endswith('.xlam'): + gen.createFromZip(input_file, args[0] + '/data', output_file_name) + elif input_file.endswith('.bin'): + gen.create_from_bin(input_file, args[0] + '/data', output_file_name) + else: + raise Exception(input_file, " is not a valid file format.") + +main() From 84f8df9fddd3c2bbd53ee8342ca5b67cedde07ba Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 10:11:00 -0400 Subject: [PATCH 47/59] Update main.py --- src/excel_addin_generator/main.py | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/src/excel_addin_generator/main.py b/src/excel_addin_generator/main.py index ccdb5f5..886b3f2 100644 --- a/src/excel_addin_generator/main.py +++ b/src/excel_addin_generator/main.py @@ -4,21 +4,7 @@ import zipfile -def main(args: list) -> None: - - if len(args) > 2: - # check the extension on sys.argv[1] to determine which function to call - input_file = args[1] - output_file_name = args[2] - if input_file.endswith('.xlam'): - createFromZip(input_file, args[0] + '/data', output_file_name) - elif input_file.endswith('.bin'): - create_from_bin(input_file, args[0] + '/data', output_file_name) - else: - raise Exception(input_file, " is not a valid file format.") - - -def create_from_bin(input_file: str, wrapper_dir: str, output_file_name: str) -> None: + create_from_bin(input_file: str, wrapper_dir: str, output_file_name: str) -> None: """Create a zip file containing the provided bin""" # file must start with 'd0 cf 11 e0 a1 b1 1a e1' @@ -46,11 +32,3 @@ def extractBinFromZip(input_file: str) -> None: zip.extract('xl/vbaProject.bin') else: raise Exception(input_file, " is not a valid file format.") - - -if __name__ == "__main__": - args = [] - args[0] = os.path.dirname(sys.argv[0]) - args[1] = sys.argv[1] - args[2] = sys.argv[2] - main(args) From 4554e1008cb2a76bfefe44fa0ddfec8c2c2bced5 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 10:12:02 -0400 Subject: [PATCH 48/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index 0df1130..f5382b9 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -35,11 +35,11 @@ def test_xlam_not_zip() -> None: def test_main() -> None: - excel_addin_generator.main.main(["./src/excel_addin_generator", "./tests/vbaProject.bin", "success_bin.xlam"]) - excel_addin_generator.main.main(["./src/excel_addin_generator", "success_bin.xlam", "success_xlam.xlam"]) + excel_addin_generator.__main__.main(["./src/excel_addin_generator", "./tests/vbaProject.bin", "success_bin.xlam"]) + excel_addin_generator.__main__.main(["./src/excel_addin_generator", "success_bin.xlam", "success_xlam.xlam"]) def test_main_incorrect_type() -> None: """ Test that an exception is thrown if the zip is not a zip archive""" with pytest.raises(Exception): - excel_addin_generator.main.main(["./src/excel_addin_generator", "./src/excel_addin_generator/data/xl/styles.xml", "fail.xlam"]) + excel_addin_generator.__main__.main(["./src/excel_addin_generator", "./src/excel_addin_generator/data/xl/styles.xml", "fail.xlam"]) From 539a0f4ade12ca3ea2599be3d2e8c79683020630 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 10:12:57 -0400 Subject: [PATCH 49/59] Update main.py --- src/excel_addin_generator/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/excel_addin_generator/main.py b/src/excel_addin_generator/main.py index 886b3f2..4e02ff6 100644 --- a/src/excel_addin_generator/main.py +++ b/src/excel_addin_generator/main.py @@ -4,7 +4,7 @@ import zipfile - create_from_bin(input_file: str, wrapper_dir: str, output_file_name: str) -> None: +def create_from_bin(input_file: str, wrapper_dir: str, output_file_name: str) -> None: """Create a zip file containing the provided bin""" # file must start with 'd0 cf 11 e0 a1 b1 1a e1' From 5d42b37eff7f1c9bc2d67603845b41fe8a4d3f8c Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 10:14:39 -0400 Subject: [PATCH 50/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index f5382b9..939f44d 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -1,5 +1,6 @@ # test_excelAddinGenerator.py import excel_addin_generator.main +import excel_addin_generator.__main__ import pytest from os.path import exists from filehash import FileHash From 8b30ff6fdc5b18be0fa1d68fdebc8f2e35925da7 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 10:17:37 -0400 Subject: [PATCH 51/59] Update __main__.py --- src/excel_addin_generator/__main__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/excel_addin_generator/__main__.py b/src/excel_addin_generator/__main__.py index 722a6ce..bc1b0c0 100644 --- a/src/excel_addin_generator/__main__.py +++ b/src/excel_addin_generator/__main__.py @@ -1,3 +1,5 @@ +import os +import sys import excel_addin_generator.main as gen @@ -14,4 +16,8 @@ def main(args: list) -> None: else: raise Exception(input_file, " is not a valid file format.") -main() +args = [] +args[0] = os.path.dirname(sys.argv[0]) +args[1] = sys.argv[1] +args[2] = sys.argv[2] +main(args) From 7fbe97a11b96a51a6dbc20045697e2170d1aef66 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 10:22:31 -0400 Subject: [PATCH 52/59] Update __main__.py --- src/excel_addin_generator/__main__.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/excel_addin_generator/__main__.py b/src/excel_addin_generator/__main__.py index bc1b0c0..9bea39e 100644 --- a/src/excel_addin_generator/__main__.py +++ b/src/excel_addin_generator/__main__.py @@ -3,8 +3,11 @@ import excel_addin_generator.main as gen -def main(args: list) -> None: - +def main() -> None: + args = [] + args[0] = os.path.dirname(sys.argv[0]) + args[1] = sys.argv[1] + args[2] = sys.argv[2] if len(args) > 2: # check the extension on sys.argv[1] to determine which function to call input_file = args[1] @@ -16,8 +19,5 @@ def main(args: list) -> None: else: raise Exception(input_file, " is not a valid file format.") -args = [] -args[0] = os.path.dirname(sys.argv[0]) -args[1] = sys.argv[1] -args[2] = sys.argv[2] -main(args) + +main() From 966b346652ea6dde35d11ad29f5d29fb2d4c15cb Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 10:23:12 -0400 Subject: [PATCH 53/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index 939f44d..0a654ed 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -33,14 +33,3 @@ def test_xlam_not_zip() -> None: """ Test that an exception is thrown if the zip is not a zip archive""" with pytest.raises(Exception): excel_addin_generator.main.createFromZip("tests/blank.bin", "src/excel_addin_generator/data", "./fail.xlam") - - -def test_main() -> None: - excel_addin_generator.__main__.main(["./src/excel_addin_generator", "./tests/vbaProject.bin", "success_bin.xlam"]) - excel_addin_generator.__main__.main(["./src/excel_addin_generator", "success_bin.xlam", "success_xlam.xlam"]) - - -def test_main_incorrect_type() -> None: - """ Test that an exception is thrown if the zip is not a zip archive""" - with pytest.raises(Exception): - excel_addin_generator.__main__.main(["./src/excel_addin_generator", "./src/excel_addin_generator/data/xl/styles.xml", "fail.xlam"]) From 74097b9ef7613a342f1004e4f69f9aafb33e73f1 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 10:31:47 -0400 Subject: [PATCH 54/59] Update test_excelAddinGenerator.py --- tests/test_excelAddinGenerator.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test_excelAddinGenerator.py b/tests/test_excelAddinGenerator.py index 0a654ed..98ae9d4 100644 --- a/tests/test_excelAddinGenerator.py +++ b/tests/test_excelAddinGenerator.py @@ -1,6 +1,5 @@ # test_excelAddinGenerator.py import excel_addin_generator.main -import excel_addin_generator.__main__ import pytest from os.path import exists from filehash import FileHash From 1bac080bb57a7395c5474561c2eb2c5abe4116f2 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 12:29:57 -0400 Subject: [PATCH 55/59] Update __main__.py --- src/excel_addin_generator/__main__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/excel_addin_generator/__main__.py b/src/excel_addin_generator/__main__.py index 9bea39e..adefd79 100644 --- a/src/excel_addin_generator/__main__.py +++ b/src/excel_addin_generator/__main__.py @@ -5,7 +5,7 @@ def main() -> None: args = [] - args[0] = os.path.dirname(sys.argv[0]) + base_path = os.path.dirname(__file__) args[1] = sys.argv[1] args[2] = sys.argv[2] if len(args) > 2: @@ -13,9 +13,9 @@ def main() -> None: input_file = args[1] output_file_name = args[2] if input_file.endswith('.xlam'): - gen.createFromZip(input_file, args[0] + '/data', output_file_name) + gen.createFromZip(input_file, base_path + '/data', output_file_name) elif input_file.endswith('.bin'): - gen.create_from_bin(input_file, args[0] + '/data', output_file_name) + gen.create_from_bin(input_file, base_path + '/data', output_file_name) else: raise Exception(input_file, " is not a valid file format.") From ade2ff093879f8558f6acde443654dba4b0d9047 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 12:34:48 -0400 Subject: [PATCH 56/59] Update __main__.py --- src/excel_addin_generator/__main__.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/excel_addin_generator/__main__.py b/src/excel_addin_generator/__main__.py index adefd79..9c99968 100644 --- a/src/excel_addin_generator/__main__.py +++ b/src/excel_addin_generator/__main__.py @@ -1,23 +1,25 @@ +import argparse import os import sys import excel_addin_generator.main as gen def main() -> None: - args = [] + parser = argparse.ArgumentParser() + parser.add_argument("input", + help="The input bin or xlam file.") + parser.add_argument("output", + help="The output path and file name.") + args = parser.parse_args() base_path = os.path.dirname(__file__) - args[1] = sys.argv[1] - args[2] = sys.argv[2] if len(args) > 2: # check the extension on sys.argv[1] to determine which function to call - input_file = args[1] - output_file_name = args[2] - if input_file.endswith('.xlam'): - gen.createFromZip(input_file, base_path + '/data', output_file_name) - elif input_file.endswith('.bin'): - gen.create_from_bin(input_file, base_path + '/data', output_file_name) + if args.input.endswith('.xlam'): + gen.createFromZip(args.input, base_path + '/data', args.output) + elif args.input.endswith('.bin'): + gen.create_from_bin(args.input, base_path + '/data', args.output) else: - raise Exception(input_file, " is not a valid file format.") + raise Exception(args.input, " is not a valid file format.") main() From 922ebb93e5a1fdcc67aa6c60cd2e2bea953231a4 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 12:38:03 -0400 Subject: [PATCH 57/59] Update __main__.py --- src/excel_addin_generator/__main__.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/excel_addin_generator/__main__.py b/src/excel_addin_generator/__main__.py index 9c99968..ce1c907 100644 --- a/src/excel_addin_generator/__main__.py +++ b/src/excel_addin_generator/__main__.py @@ -12,14 +12,13 @@ def main() -> None: help="The output path and file name.") args = parser.parse_args() base_path = os.path.dirname(__file__) - if len(args) > 2: - # check the extension on sys.argv[1] to determine which function to call - if args.input.endswith('.xlam'): - gen.createFromZip(args.input, base_path + '/data', args.output) - elif args.input.endswith('.bin'): - gen.create_from_bin(args.input, base_path + '/data', args.output) - else: - raise Exception(args.input, " is not a valid file format.") + # check the extension on sys.argv[1] to determine which function to call + if args.input.endswith('.xlam'): + gen.createFromZip(args.input, base_path + '/data', args.output) + elif args.input.endswith('.bin'): + gen.create_from_bin(args.input, base_path + '/data', args.output) + else: + raise Exception(args.input, " is not a valid file format.") main() From 98bbf28973468e48936bee2ed3bc1ef7ce464faa Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 12:47:54 -0400 Subject: [PATCH 58/59] Update pyproject.toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f4efb8c..cfe9541 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,4 +34,4 @@ testpaths = [ "tests", ] [tool.setuptools.package-data] -"*" = ["*.cls"] +"*" = ["*.xml"] From bb652975e5440b9d011b6efebf998810f6444e60 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 3 Nov 2023 12:49:24 -0400 Subject: [PATCH 59/59] Update pyproject.toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index cfe9541..6daff8a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,4 +34,4 @@ testpaths = [ "tests", ] [tool.setuptools.package-data] -"*" = ["*.xml"] +"*" = ["*.xml", ".rst"]