diff --git a/setup.cfg b/setup.cfg index 8b8f283..c41386b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -3,3 +3,9 @@ universal=1 [flake8] max-line-length=120 ignore: E301, E302, E305, E401, E226, F841 +[coverage:run] +omit = + signxml/__pyinstaller/* +[options.entry_points] +pyinstaller40 = + hook-dirs = signxml.__pyinstaller:get_hook_dirs diff --git a/signxml/__pyinstaller/__init__.py b/signxml/__pyinstaller/__init__.py new file mode 100644 index 0000000..75adcb3 --- /dev/null +++ b/signxml/__pyinstaller/__init__.py @@ -0,0 +1,10 @@ +""" +This file indicates that this directory contains the hooks to include the schema files on the final version +if it's compiled with pyinstaller. +""" + +import os + + +def get_hook_dirs(): + return [os.path.dirname(__file__)] diff --git a/signxml/__pyinstaller/hook-signxml.py b/signxml/__pyinstaller/hook-signxml.py new file mode 100644 index 0000000..afdf732 --- /dev/null +++ b/signxml/__pyinstaller/hook-signxml.py @@ -0,0 +1,5 @@ +"""Hook for pyinstaller to include the files are signxml/schemas/* into the final build.""" + +from PyInstaller.utils.hooks import collect_data_files + +datas = collect_data_files('signxml', excludes=['__pyinstaller']) diff --git a/signxml/util/__init__.py b/signxml/util/__init__.py index d385857..4f46e34 100644 --- a/signxml/util/__init__.py +++ b/signxml/util/__init__.py @@ -133,7 +133,7 @@ class XMLProcessor: @classmethod def schema(cls): if cls._schema is None: - schema_path = os.path.join(os.path.dirname(__file__), "..", "schemas", cls.schema_file) + schema_path = os.path.normpath(os.path.join(os.path.dirname(__file__), "..", "schemas", cls.schema_file)) cls._schema = etree.XMLSchema(etree.parse(schema_path)) return cls._schema