diff --git a/.gitignore b/.gitignore index 98c95b6..edfc904 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ -bananaSPLIT/build -bananaSPLIT/conf/_*.json +SPEx/bin TestFiles __pycache__ .vscode diff --git a/SPEx/poetry.lock b/SPEx/poetry.lock index 46ee25f..3f8c0f1 100644 --- a/SPEx/poetry.lock +++ b/SPEx/poetry.lock @@ -1,3 +1,11 @@ +[[package]] +category = "main" +description = "Python graph (network) package" +name = "altgraph" +optional = false +python-versions = "*" +version = "0.17" + [[package]] category = "dev" description = "An abstract syntax tree for Python with inference support." @@ -55,6 +63,15 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" version = "0.4.3" +[[package]] +category = "main" +description = "Clean single-source support for Python 3 and 2" +marker = "sys_platform == \"win32\"" +name = "future" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +version = "0.18.2" + [[package]] category = "dev" description = "A Python utility / library to sort Python imports." @@ -76,6 +93,18 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" version = "1.4.3" +[[package]] +category = "main" +description = "Mach-O header analysis and editing" +marker = "sys_platform == \"darwin\"" +name = "macholib" +optional = false +python-versions = "*" +version = "1.14" + +[package.dependencies] +altgraph = ">=0.15" + [[package]] category = "dev" description = "McCabe checker, plugin for flake8" @@ -112,6 +141,18 @@ optional = false python-versions = "*" version = "1.18.0" +[[package]] +category = "main" +description = "Python PE parsing module" +marker = "sys_platform == \"win32\"" +name = "pefile" +optional = false +python-versions = "*" +version = "2019.4.18" + +[package.dependencies] +future = "*" + [[package]] category = "dev" description = "plugin and hook calling mechanisms for python" @@ -139,6 +180,34 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" version = "2.6.0" +[[package]] +category = "main" +description = "PyInstaller bundles a Python application and all its dependencies into a single package." +name = "pyinstaller" +optional = false +python-versions = "*" +version = "4.0" + +[package.dependencies] +altgraph = "*" +macholib = ">=1.8" +pefile = ">=2017.8.1" +pyinstaller-hooks-contrib = ">=2020.6" +pywin32-ctypes = ">=0.2.0" +setuptools = "*" + +[package.extras] +encryption = ["tinyaes (>=1.0.0)"] +hook_testing = ["pytest (>=2.7.3)", "execnet (>=1.5.0)", "psutil"] + +[[package]] +category = "main" +description = "Community maintained hooks for PyInstaller" +name = "pyinstaller-hooks-contrib" +optional = false +python-versions = "*" +version = "2020.9" + [[package]] category = "dev" description = "python code static checker" @@ -217,6 +286,15 @@ text-unidecode = ">=1.3" [package.extras] unidecode = ["Unidecode (>=1.1.1)"] +[[package]] +category = "main" +description = "" +marker = "sys_platform == \"win32\"" +name = "pywin32-ctypes" +optional = false +python-versions = "*" +version = "0.2.0" + [[package]] category = "dev" description = "Python 2 and 3 compatibility utilities" @@ -258,11 +336,15 @@ python-versions = "*" version = "1.12.1" [metadata] -content-hash = "f2c0aacdec9a2b08fb05b279563096aab92c78d4b64ccc312db25de8e74a910f" +content-hash = "ecf1dd55941dc1c592b5ba51eae2dc80961547647906fd1e1f1a45846e607cdc" lock-version = "1.0" python-versions = "^3.8" [metadata.files] +altgraph = [ + {file = "altgraph-0.17-py2.py3-none-any.whl", hash = "sha256:c623e5f3408ca61d4016f23a681b9adb100802ca3e3da5e718915a9e4052cebe"}, + {file = "altgraph-0.17.tar.gz", hash = "sha256:1f05a47122542f97028caf78775a095fbe6a2699b5089de8477eb583167d69aa"}, +] astroid = [ {file = "astroid-2.4.2-py3-none-any.whl", hash = "sha256:bc58d83eb610252fd8de6363e39d4f1d0619c894b0ed24603b881c02e64c7386"}, {file = "astroid-2.4.2.tar.gz", hash = "sha256:2f4078c2a41bf377eea06d71c9d2ba4eb8f6b1af2135bec27bbbb7d8f12bb703"}, @@ -282,6 +364,9 @@ colorama = [ {file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"}, {file = "colorama-0.4.3.tar.gz", hash = "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"}, ] +future = [ + {file = "future-0.18.2.tar.gz", hash = "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"}, +] isort = [ {file = "isort-5.6.3-py3-none-any.whl", hash = "sha256:2c1d044a96c74367ab12188593d134c596747d97aec43b9cdb12eea83b6889d2"}, {file = "isort-5.6.3.tar.gz", hash = "sha256:3820dd92c3214290cda6351f2ae2cedd5170759bc434af600eaad4f7a82a6ade"}, @@ -309,6 +394,10 @@ lazy-object-proxy = [ {file = "lazy_object_proxy-1.4.3-cp38-cp38-win32.whl", hash = "sha256:5541cada25cd173702dbd99f8e22434105456314462326f06dba3e180f203dfd"}, {file = "lazy_object_proxy-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:59f79fef100b09564bc2df42ea2d8d21a64fdcda64979c0fa3db7bdaabaf6239"}, ] +macholib = [ + {file = "macholib-1.14-py2.py3-none-any.whl", hash = "sha256:c500f02867515e6c60a27875b408920d18332ddf96b4035ef03beddd782d4281"}, + {file = "macholib-1.14.tar.gz", hash = "sha256:0c436bc847e7b1d9bda0560351bf76d7caf930fb585a828d13608839ef42c432"}, +] mccabe = [ {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, @@ -324,6 +413,9 @@ packaging = [ parse = [ {file = "parse-1.18.0.tar.gz", hash = "sha256:91666032d6723dc5905248417ef0dc9e4c51df9526aaeef271eacad6491f06a4"}, ] +pefile = [ + {file = "pefile-2019.4.18.tar.gz", hash = "sha256:a5d6e8305c6b210849b47a6174ddf9c452b2888340b8177874b862ba6c207645"}, +] pluggy = [ {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, @@ -336,6 +428,13 @@ pycodestyle = [ {file = "pycodestyle-2.6.0-py2.py3-none-any.whl", hash = "sha256:2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367"}, {file = "pycodestyle-2.6.0.tar.gz", hash = "sha256:c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e"}, ] +pyinstaller = [ + {file = "pyinstaller-4.0.tar.gz", hash = "sha256:970beb07115761d5e4ec317c1351b712fd90ae7f23994db914c633281f99bab0"}, +] +pyinstaller-hooks-contrib = [ + {file = "pyinstaller-hooks-contrib-2020.9.tar.gz", hash = "sha256:a5fd45a920012802e3f2089e1d3501ef2f49265dfea8fc46c3310f18e3326c91"}, + {file = "pyinstaller_hooks_contrib-2020.9-py2.py3-none-any.whl", hash = "sha256:c382f3ac1a42b45cfecd581475c36db77da90e479b2f5bcb6d840d21fa545114"}, +] pylint = [ {file = "pylint-2.6.0-py3-none-any.whl", hash = "sha256:bfe68f020f8a0fece830a22dd4d5dddb4ecc6137db04face4c3420a46a52239f"}, {file = "pylint-2.6.0.tar.gz", hash = "sha256:bb4a908c9dadbc3aac18860550e870f58e1a02c9f2c204fdf5693d73be061210"}, @@ -381,6 +480,10 @@ pytest = [ python-slugify = [ {file = "python-slugify-4.0.1.tar.gz", hash = "sha256:69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270"}, ] +pywin32-ctypes = [ + {file = "pywin32-ctypes-0.2.0.tar.gz", hash = "sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942"}, + {file = "pywin32_ctypes-0.2.0-py2.py3-none-any.whl", hash = "sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98"}, +] six = [ {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, diff --git a/SPEx/pyproject.toml b/SPEx/pyproject.toml index 91c8afc..ab04e9f 100644 --- a/SPEx/pyproject.toml +++ b/SPEx/pyproject.toml @@ -9,6 +9,7 @@ python = "^3.8" PyQt5 = ">=5.15.0" python-slugify = "*" parse = "*" +pyinstaller = "^4.0" [tool.poetry.dev-dependencies] pytest = "^5.2" diff --git a/SPEx/scripts/SPEx.exe.spec b/SPEx/scripts/SPEx.exe.spec new file mode 100644 index 0000000..82cc6d3 --- /dev/null +++ b/SPEx/scripts/SPEx.exe.spec @@ -0,0 +1,33 @@ +# -*- mode: python ; coding: utf-8 -*- + +block_cipher = None + + +a = Analysis(['..\\spex\\guimain.py'], + pathex=['./libbananasplit', './UserInterface/compiledUI', 'D:\\Emanuele\\Documenti\\VScode\\bananaSPLIT\\SPEx\\scripts'], + binaries=[], + datas=[('..\\.venv\\Lib\\site-packages\\text_unidecode\\data.bin', '.\\text_unidecode')], + hiddenimports=[], + hookspath=[], + runtime_hooks=[], + excludes=[], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, + noarchive=False) +pyz = PYZ(a.pure, a.zipped_data, + cipher=block_cipher) +exe = EXE(pyz, + a.scripts, + a.binaries, + a.zipfiles, + a.datas, + [], + name='SPEx.exe', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + upx_exclude=[], + runtime_tmpdir=None, + console=False , icon='..\\spex\\logo.ico') diff --git a/SPEx/scripts/create_SPEx.bat b/SPEx/scripts/create_SPEx.bat new file mode 100644 index 0000000..c76cdec --- /dev/null +++ b/SPEx/scripts/create_SPEx.bat @@ -0,0 +1,15 @@ +echo off +pyinstaller.exe --add-data="..\.venv\Lib\site-packages\text_unidecode\data.bin";.\text_unidecode ^ + --icon="..\spex\logo.ico" ^ + --paths ./libbananasplit --paths ./UserInterface/compiledUI ^ + --name=SPEx.exe ^ + --onefile ^ + --windowed -y ^ + ..\spex\guimain.py | rem +echo "Copio i file di configurazione..." +robocopy /E ..\conf .\dist\conf +echo "Sposto la cartella con l'exe" +robocopy /E /MOVE .\dist ..\bin\ +echo "Rimuovo la cartella di build" +rmdir /s /q .\build .\dist +echo on \ No newline at end of file