Skip to content

Commit

Permalink
🔧 MAINTAIN: Add contex manager methods
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisjsewell committed Sep 1, 2021
1 parent 2cb2841 commit 2d2d32c
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions disk_objectstore/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -451,6 +451,13 @@ def read(self, size=-1):
self._update_pos()
return stream

def __enter__(self) -> "PackedObjectReader":
"""Use as context manager."""
return self

def __exit__(self, exc_type, value, traceback) -> None:
"""Close context manager."""


class CallbackStreamWrapper:
"""A class to just wrap a read stream, but perform a callback every few bytes.
Expand Down Expand Up @@ -541,6 +548,13 @@ def read(self, size=-1):

return data

def __enter__(self) -> "CallbackStreamWrapper":
"""Use as context manager."""
return self

def __exit__(self, exc_type, value, traceback) -> None:
"""Close context manager."""

def close_callback(self):
"""
Call the wrap up closing calls for the callback.
Expand Down Expand Up @@ -680,6 +694,13 @@ def read(self, size=-1):

return to_return

def __enter__(self) -> "ZlibLikeBaseStreamDecompresser":
"""Use as context manager."""
return self

def __exit__(self, exc_type, value, traceback) -> None:
"""Close context manager."""

@property
def seekable(self):
"""Return whether object supports random access."""
Expand Down

0 comments on commit 2d2d32c

Please sign in to comment.