From bd9060cac97fb78c0cb3f2829595a5bcfc28f84a Mon Sep 17 00:00:00 2001 From: ross-spencer Date: Wed, 17 Dec 2025 12:01:00 +0100 Subject: [PATCH] WIP: Windows compatibility --- .github/workflows/test.yml | 2 -- src/sqlitefid/libs/CSVHandlerClass.py | 21 +++++++----- src/sqlitefid/libs/DROIDLoaderClass.py | 21 +++++++----- src/sqlitefid/libs/FidoLoaderClass.py | 14 +++++--- src/sqlitefid/libs/SFHandlerClass.py | 14 +++++--- src/sqlitefid/libs/SFLoaderClass.py | 22 ++++++++----- src/sqlitefid/sqlitefid.py | 44 ++++++++++++++------------ 7 files changed, 82 insertions(+), 56 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3760833..8b56629 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,8 +12,6 @@ jobs: strategy: matrix: include: - - python-version: "3.9" - toxenv: "py39" - python-version: "3.10" toxenv: "py310" steps: diff --git a/src/sqlitefid/libs/CSVHandlerClass.py b/src/sqlitefid/libs/CSVHandlerClass.py index 5983d7b..d83098e 100644 --- a/src/sqlitefid/libs/CSVHandlerClass.py +++ b/src/sqlitefid/libs/CSVHandlerClass.py @@ -13,17 +13,22 @@ import logging import os.path from urllib.parse import urlparse +import os -try: - from libs import unicodecsv - from libs.PyDateHandler import PyDateHandler -except ModuleNotFoundError: +if os.name != "nt": try: - from src.sqlitefid.libs import unicodecsv - from src.sqlitefid.libs.PyDateHandler import PyDateHandler + from libs import unicodecsv + from libs.PyDateHandler import PyDateHandler except ModuleNotFoundError: - from sqlitefid.libs import unicodecsv - from sqlitefid.libs.PyDateHandler import PyDateHandler + try: + from src.sqlitefid.libs import unicodecsv + from src.sqlitefid.libs.PyDateHandler import PyDateHandler + except ModuleNotFoundError: + from sqlitefid.libs import unicodecsv + from sqlitefid.libs.PyDateHandler import PyDateHandler +else: + from . import unicodecsv + from .PyDateHandler import PyDateHandler class CSVExportException(Exception): diff --git a/src/sqlitefid/libs/DROIDLoaderClass.py b/src/sqlitefid/libs/DROIDLoaderClass.py index dce7e2e..8d18a04 100644 --- a/src/sqlitefid/libs/DROIDLoaderClass.py +++ b/src/sqlitefid/libs/DROIDLoaderClass.py @@ -11,17 +11,22 @@ import logging from sqlite3 import OperationalError +import os -try: - from libs.CSVHandlerClass import DroidCSVHandler - from libs.ToolMappingClass import ToolMapping -except ModuleNotFoundError: +if os.name != "nt": try: - from src.sqlitefid.libs.CSVHandlerClass import DroidCSVHandler - from src.sqlitefid.libs.ToolMappingClass import ToolMapping + from libs.CSVHandlerClass import DroidCSVHandler + from libs.ToolMappingClass import ToolMapping except ModuleNotFoundError: - from sqlitefid.libs.CSVHandlerClass import DroidCSVHandler - from sqlitefid.libs.ToolMappingClass import ToolMapping + try: + from src.sqlitefid.libs.CSVHandlerClass import DroidCSVHandler + from src.sqlitefid.libs.ToolMappingClass import ToolMapping + except ModuleNotFoundError: + from sqlitefid.libs.CSVHandlerClass import DroidCSVHandler + from sqlitefid.libs.ToolMappingClass import ToolMapping +else: + from .CSVHandlerClass import DroidCSVHandler + from .ToolMappingClass import ToolMapping class DROIDLoader: diff --git a/src/sqlitefid/libs/FidoLoaderClass.py b/src/sqlitefid/libs/FidoLoaderClass.py index 5fe47a7..3e45d70 100644 --- a/src/sqlitefid/libs/FidoLoaderClass.py +++ b/src/sqlitefid/libs/FidoLoaderClass.py @@ -15,14 +15,18 @@ import logging import tempfile +import os -try: - from libs.CSVHandlerClass import GenericCSVHandler -except ModuleNotFoundError: +if os.name != "nt": try: - from src.sqlitefid.libs.CSVHandlerClass import GenericCSVHandler + from libs.CSVHandlerClass import GenericCSVHandler except ModuleNotFoundError: - from sqlitefid.libs.CSVHandlerClass import GenericCSVHandler + try: + from src.sqlitefid.libs.CSVHandlerClass import GenericCSVHandler + except ModuleNotFoundError: + from sqlitefid.libs.CSVHandlerClass import GenericCSVHandler +else: + from .CSVHandlerClass import GenericCSVHandler class FidoLoader: diff --git a/src/sqlitefid/libs/SFHandlerClass.py b/src/sqlitefid/libs/SFHandlerClass.py index 347586b..53b0b21 100644 --- a/src/sqlitefid/libs/SFHandlerClass.py +++ b/src/sqlitefid/libs/SFHandlerClass.py @@ -16,14 +16,18 @@ import logging import ntpath import os.path +import os -try: - from libs.PyDateHandler import PyDateHandler -except ModuleNotFoundError: +if os.name != "nt": try: - from src.sqlitefid.libs.PyDateHandler import PyDateHandler + from libs.PyDateHandler import PyDateHandler except ModuleNotFoundError: - from sqlitefid.libs.PyDateHandler import PyDateHandler + try: + from src.sqlitefid.libs.PyDateHandler import PyDateHandler + except ModuleNotFoundError: + from sqlitefid.libs.PyDateHandler import PyDateHandler +else: + from .PyDateHandler import PyDateHandler class SFYAMLHandler: diff --git a/src/sqlitefid/libs/SFLoaderClass.py b/src/sqlitefid/libs/SFLoaderClass.py index c9b333e..047057c 100644 --- a/src/sqlitefid/libs/SFLoaderClass.py +++ b/src/sqlitefid/libs/SFLoaderClass.py @@ -9,16 +9,22 @@ into the sqlite db. """ -try: - from libs.SFHandlerClass import SFYAMLHandler - from libs.ToolMappingClass import ToolMapping -except ModuleNotFoundError: +import os + +if os.name != "nt": try: - from src.sqlitefid.libs.SFHandlerClass import SFYAMLHandler - from src.sqlitefid.libs.ToolMappingClass import ToolMapping + from libs.SFHandlerClass import SFYAMLHandler + from libs.ToolMappingClass import ToolMapping except ModuleNotFoundError: - from sqlitefid.libs.SFHandlerClass import SFYAMLHandler - from sqlitefid.libs.ToolMappingClass import ToolMapping + try: + from src.sqlitefid.libs.SFHandlerClass import SFYAMLHandler + from src.sqlitefid.libs.ToolMappingClass import ToolMapping + except ModuleNotFoundError: + from sqlitefid.libs.SFHandlerClass import SFYAMLHandler + from sqlitefid.libs.ToolMappingClass import ToolMapping +else: + from .SFHandlerClass import SFYAMLHandler + from .ToolMappingClass import ToolMapping class SFLoader: diff --git a/src/sqlitefid/sqlitefid.py b/src/sqlitefid/sqlitefid.py index e8adc94..2ff683c 100755 --- a/src/sqlitefid/sqlitefid.py +++ b/src/sqlitefid/sqlitefid.py @@ -17,28 +17,32 @@ import sys import time -try: - from libs.DROIDLoaderClass import DROIDLoader - from libs.FidoLoaderClass import FidoLoader - from libs.GenerateBaselineDBClass import GenerateBaselineDB - from libs.IdentifyExportClass import IdentifyExport - from libs.SFLoaderClass import SFLoader - from libs.Version import SqliteFIDVersion -except ModuleNotFoundError: +if os.name != "nt": try: - from src.sqlitefid.libs.DROIDLoaderClass import DROIDLoader - from src.sqlitefid.libs.FidoLoaderClass import FidoLoader - from src.sqlitefid.libs.GenerateBaselineDBClass import GenerateBaselineDB - from src.sqlitefid.libs.IdentifyExportClass import IdentifyExport - from src.sqlitefid.libs.SFLoaderClass import SFLoader - from src.sqlitefid.libs.Version import SqliteFIDVersion + from libs.DROIDLoaderClass import DROIDLoader + from libs.FidoLoaderClass import FidoLoader + from libs.GenerateBaselineDBClass import GenerateBaselineDB + from libs.IdentifyExportClass import IdentifyExport + from libs.SFLoaderClass import SFLoader + from libs.Version import SqliteFIDVersion except ModuleNotFoundError: - from sqlitefid.libs.DROIDLoaderClass import DROIDLoader - from sqlitefid.libs.FidoLoaderClass import FidoLoader - from sqlitefid.libs.GenerateBaselineDBClass import GenerateBaselineDB - from sqlitefid.libs.IdentifyExportClass import IdentifyExport - from sqlitefid.libs.SFLoaderClass import SFLoader - from sqlitefid.libs.Version import SqliteFIDVersion + try: + from src.sqlitefid.libs.DROIDLoaderClass import DROIDLoader + from src.sqlitefid.libs.FidoLoaderClass import FidoLoader + from src.sqlitefid.libs.GenerateBaselineDBClass import GenerateBaselineDB + from src.sqlitefid.libs.IdentifyExportClass import IdentifyExport + from src.sqlitefid.libs.SFLoaderClass import SFLoader + from src.sqlitefid.libs.Version import SqliteFIDVersion + except ModuleNotFoundError: + from sqlitefid.libs.DROIDLoaderClass import DROIDLoader + from sqlitefid.libs.FidoLoaderClass import FidoLoader + from sqlitefid.libs.GenerateBaselineDBClass import GenerateBaselineDB + from sqlitefid.libs.IdentifyExportClass import IdentifyExport + from sqlitefid.libs.SFLoaderClass import SFLoader + from sqlitefid.libs.Version import SqliteFIDVersion +else: + from . import unicodecsv + from .PyDateHandler import PyDateHandler LOGFORMAT = "%(asctime)-15s %(levelname)s: %(message)s" DATEFORMAT = "%Y-%m-%d %H:%M:%S"