Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion python/lib/core/README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
# About
Python package for core types depended upon by multiple other DMOD Python packages, which must be located in an isolated "core" package to avoid circular dependencies.
Python package for core DMOD types, both concrete and abstract, that are depended upon by other DMOD Python packages and themselves have no dependencies outside of Python and its standard library.

Classes belong here if placing them in a more specialized package would cause undesired consequences, such as circular dependencies or transitive dependency on otherwise unnecessary packages.
2 changes: 1 addition & 1 deletion python/lib/core/dmod/core/_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '0.2.0'
__version__ = '0.3.0'
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from abc import ABC, abstractmethod
from dmod.core.meta_data import ContinuousRestriction, DataCategory, DataDomain, DataFormat, DiscreteRestriction, \
from .meta_data import ContinuousRestriction, DataCategory, DataDomain, DataFormat, DiscreteRestriction, \
StandardDatasetIndex, TimeRange
from dmod.core.exception import DmodRuntimeError
from .exception import DmodRuntimeError
from datetime import datetime, timedelta

from dmod.core.serializable import Serializable, ResultIndicator
from .serializable import Serializable, ResultIndicator
from enum import Enum
from numbers import Number
from typing import Any, Callable, Dict, FrozenSet, List, Optional, Set, Tuple, Type, Union
Expand Down Expand Up @@ -616,6 +616,26 @@ class DatasetManager(ABC):
::method:`transform` creates a new dataset from an existing one, but transforms the data to another format.
"""

_SERIALIZED_OBJ_NAME_TEMPLATE = "{}_serialized.json"
""" The name of the file/object for serialized versions of datasets, within a dataset's bucket. """

@classmethod
def get_serial_dataset_filename(cls, dataset_name: str) -> str:
"""
Get the standard file basename for persisting the serialized state of a ::class:`Dataset` of the given name.

Parameters
----------
dataset_name: str
The name of the dataset in question.

Returns
-------
str
The file basename for persisting the serialized state of a dataset with the given name.
"""
return cls._SERIALIZED_OBJ_NAME_TEMPLATE.format(dataset_name)

def __init__(self, uuid: Optional[UUID] = None, datasets: Optional[Dict[str, Dataset]] = None, *args, **kwargs):
self._uuid = uuid4() if uuid is None else uuid
self._datasets = datasets if datasets is not None else dict()
Expand Down
Empty file.
2 changes: 1 addition & 1 deletion python/lib/core/dmod/test/test_allocationparadigm.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import unittest
from dmod.scheduler.job.job import AllocationParadigm
from ..core.execution import AllocationParadigm
from dmod.communication import SchedulerRequestMessage


Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import unittest
from dmod.core.meta_data import DataDomain, DataFormat, DataRequirement, DataCategory, DiscreteRestriction
from ..core.meta_data import DataDomain, DataFormat, DataRequirement, DataCategory, DiscreteRestriction


class TestDataRequirement(unittest.TestCase):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import unittest
from ..modeldata.data.dataset import Dataset, DatasetType
from dmod.core.meta_data import DataCategory, DataDomain, DataFormat, DiscreteRestriction, TimeRange
from ..core.dataset import Dataset, DatasetType
from ..core.meta_data import DataCategory, DataDomain, DataFormat, DiscreteRestriction, TimeRange
from datetime import datetime, timedelta
from typing import Any, Dict, Optional, Union
from typing import Optional, Union


class TestDataset(unittest.TestCase):
Expand Down
2 changes: 1 addition & 1 deletion python/lib/modeldata/dmod/modeldata/_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '0.8.0'
__version__ = '0.9.0'
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from pathlib import Path
from typing import Optional, List, Set, Union, Any, Tuple

from .dataset import Dataset, DatasetManager, DatasetType
from dmod.core.dataset import Dataset, DatasetManager, DatasetType
from dmod.core.exception import DmodRuntimeError
from dmod.core.meta_data import DataCategory, DataDomain

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import minio.retention

from dmod.core.meta_data import DataCategory, DataDomain
from .dataset import Dataset, DatasetManager, DatasetType
from dmod.core.dataset import Dataset, DatasetManager, DatasetType
from datetime import datetime, timedelta
from minio import Minio
from minio.api import ObjectWriteResult
Expand All @@ -21,8 +21,6 @@ class ObjectStoreDatasetManager(DatasetManager):

_SUPPORTED_TYPES = {DatasetType.OBJECT_STORE}
""" Supported dataset types set, which is always ::class:`ObjectStoreDataset` for this manager subtype. """
_SERIALIZED_OBJ_NAME_TEMPLATE = "{}_serialized.json"
""" The name of the file/object for serialized versions of datasets, within a dataset's bucket. """

def __init__(self, obj_store_host_str: str, access_key: Optional[str] = None, secret_key: Optional[str] = None,
secure_connection: bool = False, *args, **kwargs):
Expand Down
2 changes: 1 addition & 1 deletion python/lib/modeldata/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
author_email='',
url='',
license='',
install_requires=['numpy>=1.20.1', 'pandas', 'geopandas', 'dmod-communication>=0.4.2', 'dmod-core>=0.1.0', 'minio',
install_requires=['numpy>=1.20.1', 'pandas', 'geopandas', 'dmod-communication>=0.4.2', 'dmod-core>=0.3.0', 'minio',
'aiohttp<=3.7.4', 'hypy@git+https://github.com/NOAA-OWP/hypy@master#egg=hypy&subdirectory=python'],
packages=find_namespace_packages(exclude=('tests', 'schemas', 'ssl', 'src'))
)
2 changes: 1 addition & 1 deletion python/services/dataservice/dmod/dataservice/_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '0.3.0'
__version__ = '0.4.0'
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import os
from ..dataservice.service import ServiceManager
from dmod.communication.client import get_or_create_eventloop
from dmod.modeldata.data.dataset import Dataset
from dmod.core.dataset import Dataset
from dmod.scheduler.job import RequestedJob
from pathlib import Path
from typing import Any, Dict, List, Optional
Expand Down
2 changes: 1 addition & 1 deletion python/services/dataservice/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
author_email='',
url='',
license='',
install_requires=['dmod-core>=0.1.1', 'dmod-communication>=0.7.1', 'dmod-scheduler>=0.7.0', 'dmod-modeldata>=0.8.0',
install_requires=['dmod-core>=0.3.0', 'dmod-communication>=0.7.1', 'dmod-scheduler>=0.7.0', 'dmod-modeldata>=0.9.0',
'redis'],
packages=find_namespace_packages(exclude=('tests', 'test', 'deprecated', 'conf', 'schemas', 'ssl', 'src'))
)