From 80999586da87500f0f0072e46811cab01d1537f1 Mon Sep 17 00:00:00 2001 From: mtralka Date: Mon, 25 Oct 2021 14:54:33 -0400 Subject: [PATCH] :ambulance: Fix for asset packaging --- eoplatform/__init__.py | 2 +- eoplatform/factory.py | 28 ++++++++++++++++------------ eoplatform/main.py | 1 - eoplatform/platforms/__init__.py | 0 pyproject.toml | 7 +++++-- 5 files changed, 22 insertions(+), 16 deletions(-) create mode 100644 eoplatform/platforms/__init__.py diff --git a/eoplatform/__init__.py b/eoplatform/__init__.py index f6b68ff..e7a79da 100644 --- a/eoplatform/__init__.py +++ b/eoplatform/__init__.py @@ -3,4 +3,4 @@ from eoplatform.main import info -__version__ = "0.1.0" +__version__ = "0.1.1" diff --git a/eoplatform/factory.py b/eoplatform/factory.py index 7ba6561..6ee23a9 100644 --- a/eoplatform/factory.py +++ b/eoplatform/factory.py @@ -1,10 +1,12 @@ +from importlib import resources import json -from os import stat from pathlib import Path import sys from typing import Any from typing import Dict from typing import Generator +from typing import Iterator +from typing import List from typing import Union from eoplatform.baseClasses import Platform @@ -15,32 +17,34 @@ else: from typing_extensions import Final -PLATFORM_PATH: Final[Path] = Path("eoplatform/platforms") +PLATFORM_PATH: Final[str] = "eoplatform.platforms" class EOPlatformFactory: @staticmethod def generate_platform() -> Generator[Platform, None, None]: - platform_paths: Generator[ - Path, None, None - ] = EOPlatformFactory._find_platform_files() + platform_names: List[str] = EOPlatformFactory._find_platform_files() - for file in platform_paths: + for name in platform_names: platform_data: Dict[ str, Union[str, int] - ] = EOPlatformFactory._get_platform_data(file) + ] = EOPlatformFactory._get_platform_data(name) yield EOPlatformFactory._produce_platform(platform_data) @staticmethod - def _find_platform_files() -> Generator[Path, None, None]: - pattern: str = "*.json" - return Path(PLATFORM_PATH).glob(pattern) + def _find_platform_files() -> List[str]: + directory: Iterator[str] = resources.contents(PLATFORM_PATH) + test: List[str] = [f for f in directory if f[-5:] == ".json"] + + return test @staticmethod - def _get_platform_data(platform_file: Path) -> Dict[str, Union[str, int]]: - with open(platform_file, "r") as file: + def _get_platform_data(platform_name: str) -> Dict[str, Union[str, int]]: + + with resources.open_text(PLATFORM_PATH, platform_name) as file: data: Dict[str, Union[str, int]] = json.load(file) + return data @staticmethod diff --git a/eoplatform/main.py b/eoplatform/main.py index 899f591..a40d85c 100644 --- a/eoplatform/main.py +++ b/eoplatform/main.py @@ -1,4 +1,3 @@ -from typing import Union from typing import cast from eoplatform.baseClasses import Bands diff --git a/eoplatform/platforms/__init__.py b/eoplatform/platforms/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pyproject.toml b/pyproject.toml index d99cf1c..e7a1d54 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,12 +1,15 @@ [tool.poetry] name = "eoplatform" -version = "0.1.0" +version = "0.1.1" description = "Earth Observation made easy." authors = ["Matthew Tralka "] maintainers = ["Matthew Tralka "] license = "GPL-3.0-only" -repository = "README.md" +repository = "https://github.com/mtralka/EOPlatform" +readme = "README.md" keywords = ["remote sensing", "earth observation", "gis", "education"] +include = ["eoplatform/platforms/*"] + classifiers = [ "Development Status :: 4 - Beta",