Skip to content

Commit

Permalink
fix: remove logs in model_repository, add log to s3 storage, update v…
Browse files Browse the repository at this point in the history
…ersion to 2.1.4 (#194)
  • Loading branch information
phamhoangtuan authored Jun 29, 2023
1 parent 9ba0377 commit 8f2cec0
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 6 deletions.
4 changes: 0 additions & 4 deletions h1st/model/repository/model_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,6 @@ def persist(self, model, version=None):
# assert isinstance(model, Model)
# TODO: use version format: v_20200714-1203
version = version or str(ulid.new())
logger.info(f"Persisting model {model} version {version}")

try:
# serialize a model to a temporary folder and then clean up later
Expand All @@ -421,20 +420,17 @@ def persist(self, model, version=None):

self._serder.serialize(model, serialized_dir)
_tar_create(tar_file, serialized_dir)
logger.info(f'Created tar file {tar_file} for model {model} version {version}')

with open(tar_file, mode="rb") as f:
self._storage.set_bytes(
self._get_key(model, version),
f.read(),
)
logger.info(f'Set bytes {self._get_key(model, version)} to storage from local {tar_file}')

self._storage.set_obj(
self._get_key(model, "latest"),
version,
)
logger.info(f'Set obj {self._get_key(model, "latest")} to storage from local {tar_file}')

model.version = version
except Exception as e:
Expand Down
9 changes: 8 additions & 1 deletion h1st/model/repository/storage/s3.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@
import cloudpickle
import s3fs
from h1st.model.repository.storage.base import Storage
from loguru import logger


class S3Storage(Storage):
"""
Provide data storage on top of AWS S3
"""

def __init__(self, bucket_name: str = "", prefix: str = ""):
def __init__(self, bucket_name: str = None, prefix: str = None):
"""
:param bucket_name: s3 bucket name to store data into
:param prefix: s3 object prefix, leave blank to store at bucket root
Expand All @@ -25,6 +26,8 @@ def get_obj(self, name: str) -> Any:
:param name: object name
"""
key = self._to_key(name)
logger.info(f"---Loading obj {key} from S3")

try:
with self.fs.open(key, 'rb') as f:
return cloudpickle.load(f)
Expand All @@ -38,6 +41,8 @@ def get_bytes(self, name) -> bytes:
:param name: object name
"""
key = self._to_key(name)
logger.info(f"---Loading bytes {key} from S3")

try:
with self.fs.open(key, 'rb') as f:
return f.read()
Expand All @@ -52,6 +57,7 @@ def set_obj(self, name: str, value: Any) -> NoReturn:
:param value: value in python object
"""
key = self._to_key(name)
logger.info(f"---Saving obj {key} to S3, value {value}")

with self.fs.open(key, 'wb') as f:
return cloudpickle.dump(value, f)
Expand All @@ -64,6 +70,7 @@ def set_bytes(self, name: str, value: bytes) -> NoReturn:
:param value: value in bytes
"""
key = self._to_key(name)
logger.info(f"---Saving bytes {key} to S3, value {value}")

with self.fs.open(key, 'wb') as f:
f.write(value)
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "h1st"
version = "2.1.3"
version = "2.1.4"
description = "Human-First AI (H1st)"
authors = ["Aitomatic, Inc. <engineering@aitomatic.com>"]
license = "Apache-2.0"
Expand Down

0 comments on commit 8f2cec0

Please sign in to comment.