diff --git a/README.md b/README.md index fbe8b16..828f520 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,6 @@ dataset and state tables used by `comet` to track metadata. The table classes provided in `chimedb.dataset` are: * Dataset -* DatasetAttachedType * DatasetCurrentState * DatasetState * DatasetStateType diff --git a/chimedb/dataset/__init__.py b/chimedb/dataset/__init__.py index 07b315d..6df8126 100644 --- a/chimedb/dataset/__init__.py +++ b/chimedb/dataset/__init__.py @@ -1,13 +1,7 @@ """comet (datasets and states) table definitions.""" -from .orm import ( - DatasetState, - Dataset, - DatasetCurrentState, - DatasetStateType, - DatasetAttachedType, -) -from .get import get_dataset, get_state, get_types +from .orm import DatasetState, Dataset, DatasetCurrentState, DatasetStateType +from .get import get_dataset, get_state from .insert import insert_dataset, insert_state __version__ = "0.0.1" diff --git a/chimedb/dataset/get.py b/chimedb/dataset/get.py index 0ec6c5d..f8fe41b 100644 --- a/chimedb/dataset/get.py +++ b/chimedb/dataset/get.py @@ -10,7 +10,7 @@ # Imports # ======= -from .orm import Dataset, DatasetState, DatasetAttachedType +from .orm import Dataset, DatasetState # Logging # ======= @@ -60,32 +60,3 @@ def get_state(id): except DatasetState.DoesNotExist: _logger.warning("Could not find state {}.".format(id)) return None - - -def get_types(dataset_id): - """ - Get state types of the given dataset. - - Parameters - ---------- - dataset_id : int - ID of the dataset to find attached state types for. - - Returns - ------- - list of str - The state types attached to the dataset. Returns `None` if dataset or types not found. - """ - try: - result = DatasetAttachedType.select().where( - DatasetAttachedType.dataset_id == dataset_id - ) - except DatasetAttachedType.DoesNotExist: - _logger.warning( - "Could not find any types attached to dataset {}.".format(dataset_id) - ) - return None - types = list() - for t in result: - types.append(t.type.name) - return types diff --git a/chimedb/dataset/insert.py b/chimedb/dataset/insert.py index 315e7e5..c736687 100644 --- a/chimedb/dataset/insert.py +++ b/chimedb/dataset/insert.py @@ -13,13 +13,7 @@ import datetime from comet.manager import TIMESTAMP_FORMAT -from .orm import ( - DatasetStateType, - DatasetCurrentState, - DatasetState, - Dataset, - DatasetAttachedType, -) +from .orm import DatasetStateType, DatasetCurrentState, DatasetState, Dataset # Logging # ======= @@ -73,7 +67,7 @@ def insert_dataset(entry): Parameters ---------- entry : dict - A dict containing the fields `ds/state`, `ds/is_root`, `ds/types`, `time`, `hash`. + A dict containing the fields `ds/state`, `ds/is_root`, `ds/type`, `time`, `hash`. """ state = DatasetState.get(DatasetState.id == entry["ds"]["state"]) try: @@ -86,6 +80,4 @@ def insert_dataset(entry): time=datetime.datetime.strptime(entry["time"], TIMESTAMP_FORMAT), ) - for state_type in entry["ds"]["types"]: - state_type_id, _ = DatasetStateType.get_or_create(name=state_type) - DatasetAttachedType.get_or_create(dataset_id=dataset, type=state_type_id) + state_type_id, _ = DatasetStateType.get_or_create(name=entry["ds"]["type"]) diff --git a/chimedb/dataset/orm.py b/chimedb/dataset/orm.py index a8b73cf..d7b161b 100644 --- a/chimedb/dataset/orm.py +++ b/chimedb/dataset/orm.py @@ -8,7 +8,6 @@ from chimedb.core.orm import base_model, JSONDictField -import orjson as json import peewee # Logging @@ -33,7 +32,7 @@ class DatasetStateType(base_model): class DatasetState(base_model): """Model for datasetstate table.""" - id = peewee.DecimalField(21, 0, primary_key=True) + id = peewee.FixedCharField(max_length=32, primary_key=True) type = peewee.ForeignKeyField(DatasetStateType, null=True) data = JSONDictField() @@ -41,25 +40,13 @@ class DatasetState(base_model): class Dataset(base_model): """Model for dataset table.""" - id = peewee.DecimalField(21, 0, primary_key=True) + id = peewee.FixedCharField(max_length=32, primary_key=True) root = peewee.BooleanField() state = peewee.ForeignKeyField(DatasetState) time = peewee.DateTimeField() base_dset = peewee.ForeignKeyField("self", null=True) -class DatasetAttachedType(base_model): - """ - Model for datasettypes table. - - Lists which state types are attached to which datasets - """ - - id = peewee.AutoField(primary_key=True) - dataset_id = peewee.ForeignKeyField(Dataset) - type = peewee.ForeignKeyField(DatasetStateType) - - class DatasetCurrentState(base_model): """Model for datasetcurrentstate table."""