From 5067678a8c62c5b77bc1edb5c7456d9c0b6d36d0 Mon Sep 17 00:00:00 2001
From: = <=>
Date: Fri, 21 Apr 2023 15:00:03 -0400
Subject: [PATCH] Project restructure to faciliate future work
---
.gitignore | 9 +-
compile_gui | 1 -
ile_installer.py | 118 ------------------
src/assets/checkedCircle.svg | 44 +++++++
src/assets/copy.svg | 60 +++++++++
src/assets/excel.svg | 6 +
src/assets/extract.ico | Bin 0 -> 7077 bytes
src/assets/extract.svg | 1 +
src/assets/fileSearch.svg | 4 +
src/assets/folder.svg | 2 +
src/assets/maximize.svg | 24 ++++
src/assets/process.svg | 1 +
src/assets/settings.svg | 62 +++++++++
main.py => src/il_extract.py | 4 +-
ILExtract.py => src/il_reports.py | 0
settings.json => src/settings.json | 0
.../ui_ile_main_window.py | 0
todo.md | 34 +++++
18 files changed, 246 insertions(+), 124 deletions(-)
delete mode 100644 compile_gui
delete mode 100644 ile_installer.py
create mode 100644 src/assets/checkedCircle.svg
create mode 100644 src/assets/copy.svg
create mode 100644 src/assets/excel.svg
create mode 100644 src/assets/extract.ico
create mode 100644 src/assets/extract.svg
create mode 100644 src/assets/fileSearch.svg
create mode 100644 src/assets/folder.svg
create mode 100644 src/assets/maximize.svg
create mode 100644 src/assets/process.svg
create mode 100644 src/assets/settings.svg
rename main.py => src/il_extract.py (99%)
rename ILExtract.py => src/il_reports.py (100%)
rename settings.json => src/settings.json (100%)
rename ILE_MainWindow.py => src/ui_ile_main_window.py (100%)
create mode 100644 todo.md
diff --git a/.gitignore b/.gitignore
index 833202d..695edac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,13 @@
build/
venv/
dist/
-inputFiles/
+IL_InputFiles/
__pycache__/
-2023/
*.spec
*.log
-*.xlsx
\ No newline at end of file
+*.xlsx
+*.txt
+*.md
+
+!todo.md
\ No newline at end of file
diff --git a/compile_gui b/compile_gui
deleted file mode 100644
index 4e6afcf..0000000
--- a/compile_gui
+++ /dev/null
@@ -1 +0,0 @@
-pyinstaller -w --add-data "assets/extract.svg;." --add-data "assets/process.svg;." --add-data "assets/folder.svg;." --add-data "assets/copy.svg;." --add-data "settings.json;." -i assets/extract.ico -n "IL Extract" main.py
\ No newline at end of file
diff --git a/ile_installer.py b/ile_installer.py
deleted file mode 100644
index c77096c..0000000
--- a/ile_installer.py
+++ /dev/null
@@ -1,118 +0,0 @@
-from os import system, getlogin
-import os
-from sys import exit
-from zipfile import ZipFile
-import win32com.client
-from glob import glob
-import re
-
-from itertools import cycle
-from shutil import get_terminal_size
-from threading import Thread
-from time import sleep
-
-def error_exit(exception_info: str):
- print(exception_info)
- input("\nPress enter/return to exit")
- exit(1)
-
-
-class NoMatchingFile(Exception):
- def __init__(self, search_file: str, found: list) -> None:
- super().__init__(f"File: {search_file} was not found: {found}")
-
-
-class Loader:
- def __init__(self, desc="Loading...", end="Done!", timeout=0.1):
- """
- A loader-like context manager
-
- Args:
- desc (str, optional): The loader's description. Defaults to "Loading...".
- end (str, optional): Final print. Defaults to "Done!".
- timeout (float, optional): Sleep time between prints. Defaults to 0.1.
- """
- self.desc = desc
- self.end = end
- self.timeout = timeout
-
- self._thread = Thread(target=self._animate, daemon=True)
- self.steps = ["|", "/", "-", "\\",]
- self.done = False
-
- def start(self):
- self._thread.start()
- return self
-
- def _animate(self):
- for c in cycle(self.steps):
- if self.done:
- break
- print(f"\r{self.desc} {c}", flush=True, end="")
- sleep(self.timeout)
-
- def __enter__(self):
- self.start()
-
- def stop(self):
- self.done = True
- cols = get_terminal_size((80, 20)).columns
- print("\r" + " " * cols, end="", flush=True)
- print(f"\r{self.end}", flush=True)
-
- def __exit__(self, exc_type, exc_value, tb):
- # handle exceptions with those variables ^
- self.stop()
-
-ZIP_LOCATION = r"\\leafnow.com\public\Accounting Shared\ILE Apps"
-APP_FOLDER = r"InfoLeaseExtract"
-
-try:
-
- user = getlogin()
- install_folder = f"C:\\Users\\{user}\\AppData\\Local"
- backup_install_folder = f"C:\\Users\\{user}\\Documents\\"
-
- print(f"Initalizing InfoLease Extract Installer\n#######################################")
- # Find the newest version:
- latest_version = glob(f"{ZIP_LOCATION}\\LATEST*")
- if len(latest_version) == 0:
- # Create Custom exception
- raise NoMatchingFile(f"{ZIP_LOCATION}\\LATEST*", latest_version)
-
- latest_version: str = latest_version[0]
- version = re.search("\d+\.\d+", latest_version).group()
- print(f"Installing verion {version}...")
-
- with ZipFile(latest_version, 'r') as zipObj:
- try:
- with Loader("Setting up program files..."):
- zipObj.extractall(install_folder)
- except Exception as e:
- error_exit(f"Failed to extract file ({latest_version}) to '{install_folder}' :\n{e}")
-
- print("Creating Desktop shortcut...")
- try:
- desktop = f"C:\\Users\\{user}\\OneDrive - LEAF Commercial Capital\\Desktop"
- shell = win32com.client.Dispatch("WScript.Shell")
- shortcut = shell.CreateShortCut(os.path.join(desktop, "IL Extract v3.10.lnk"),)
- shortcut.Targetpath = f"{install_folder}\\IL Extract\\IL Extract.exe"
- shortcut.IconLocation = f"{install_folder}\\IL Extract\\assets\\extract.ico"
- shortcut.WorkingDirectory = f"{install_folder}\\IL Extract"
- shortcut.save()
- except:
- try:
- desktop = f"C:\\Users\\{user}\\Desktop"
- shell = win32com.client.Dispatch("WScript.Shell")
- shortcut = shell.CreateShortCut(os.path.join(desktop, "IL Extract v3.10.lnk"),)
- shortcut.Targetpath = f"{install_folder}\\IL Extract\\IL Extract.exe"
- shortcut.IconLocation = f"{install_folder}\\IL Extract\\assets\\extract.ico"
- shortcut.WorkingDirectory = f"{install_folder}\\IL Extract"
- shortcut.save()
- except Exception as e:
- error_exit(f"Failed to create shortcut. The application is still installed at:\n{install_folder}\\IL Extract.\nYou can manually create a shortcut if you would like.\n{e}")
-
- print(f"\nInstallation Completed Successfully!")
- input("\nPress Enter/Return to exit.")
-except Exception as e:
- error_exit(f"High level exception:\n{e}")
\ No newline at end of file
diff --git a/src/assets/checkedCircle.svg b/src/assets/checkedCircle.svg
new file mode 100644
index 0000000..e3afbdc
--- /dev/null
+++ b/src/assets/checkedCircle.svg
@@ -0,0 +1,44 @@
+
+
+
+
diff --git a/src/assets/copy.svg b/src/assets/copy.svg
new file mode 100644
index 0000000..f23e8f2
--- /dev/null
+++ b/src/assets/copy.svg
@@ -0,0 +1,60 @@
+
+
+
diff --git a/src/assets/excel.svg b/src/assets/excel.svg
new file mode 100644
index 0000000..99c6cd6
--- /dev/null
+++ b/src/assets/excel.svg
@@ -0,0 +1,6 @@
+
diff --git a/src/assets/extract.ico b/src/assets/extract.ico
new file mode 100644
index 0000000000000000000000000000000000000000..faab094f52e1df2a7ae8ba76422413aba6c26f88
GIT binary patch
literal 7077
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
literal 0
HcmV?d00001
diff --git a/src/assets/extract.svg b/src/assets/extract.svg
new file mode 100644
index 0000000..c392432
--- /dev/null
+++ b/src/assets/extract.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/fileSearch.svg b/src/assets/fileSearch.svg
new file mode 100644
index 0000000..6e04a1c
--- /dev/null
+++ b/src/assets/fileSearch.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/src/assets/folder.svg b/src/assets/folder.svg
new file mode 100644
index 0000000..5488499
--- /dev/null
+++ b/src/assets/folder.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/src/assets/maximize.svg b/src/assets/maximize.svg
new file mode 100644
index 0000000..1d60cee
--- /dev/null
+++ b/src/assets/maximize.svg
@@ -0,0 +1,24 @@
+
\ No newline at end of file
diff --git a/src/assets/process.svg b/src/assets/process.svg
new file mode 100644
index 0000000..e20b6ba
--- /dev/null
+++ b/src/assets/process.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/settings.svg b/src/assets/settings.svg
new file mode 100644
index 0000000..4debab2
--- /dev/null
+++ b/src/assets/settings.svg
@@ -0,0 +1,62 @@
+
+
+
diff --git a/main.py b/src/il_extract.py
similarity index 99%
rename from main.py
rename to src/il_extract.py
index 20da80f..23a746f 100644
--- a/main.py
+++ b/src/il_extract.py
@@ -1,11 +1,11 @@
-from ILE_MainWindow import Ui_MainWindow
+from ui_ile_main_window import Ui_MainWindow
import sys
import os
import pandas as pd
import json
from PyQt5 import QtWidgets
from datetime import datetime as dt
-import ILExtract as ilx
+import il_reports as ilx #TODO redo aliasing
from logging import debug, DEBUG, basicConfig
diff --git a/ILExtract.py b/src/il_reports.py
similarity index 100%
rename from ILExtract.py
rename to src/il_reports.py
diff --git a/settings.json b/src/settings.json
similarity index 100%
rename from settings.json
rename to src/settings.json
diff --git a/ILE_MainWindow.py b/src/ui_ile_main_window.py
similarity index 100%
rename from ILE_MainWindow.py
rename to src/ui_ile_main_window.py
diff --git a/todo.md b/todo.md
new file mode 100644
index 0000000..1c382b1
--- /dev/null
+++ b/todo.md
@@ -0,0 +1,34 @@
+# Work List
+
+## Priority
+- [ ] Bring back in consolidated reports
+ - [ ] ACH
+ - [ ] CHECKS_LIVE
+ - [ ] CREDIT
+ - [ ] LOCKBOX
+ - [ ] PAY BY PHONE
+ - [ ] WIRES
+ - [ ] RETURNS ACH
+ - [ ] RETURNS Portal *(new addition)*
+
+- [ ] Adjust pyinstaller spec for new file structure
+
+## Feature Goals
+- [ ] Year Walkthrough report
+
+Generate monthly consolidated reports for each month in a year
+ - Must generate IL Extract report where nesseary
+
+- [ ] Users can add/create new reports
+ - This would be very complicated
+
+## Code Improvement
+- [ ] Rework IL Report as an ABC and report types as sub-classes
+- [ ] Rework config set up
+- [ ] Simpify & standardize row/data parsing
+
+
+## Completed last commit
+
+
+---
\ No newline at end of file