Compare commits
4 Commits
0.1.0.post
...
0.2.0
| Author | SHA1 | Date | |
|---|---|---|---|
| bfcf65b6e7 | |||
|
|
5fca93e4a8 | ||
| f39fd9cf44 | |||
|
|
dd45b1281f |
2
.project
2
.project
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>{{project_name}}</name>
|
||||
<name>dabdatasync</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
|
||||
@@ -35,6 +35,8 @@ def urljoin(*args):
|
||||
class A_DataSync_Compressor(ABC):
|
||||
"""abstract compressor class"""
|
||||
|
||||
suffix: str
|
||||
|
||||
@abstractmethod
|
||||
def compress(self, path_in: Path, file_out: IO):
|
||||
"""compress method - virtual"""
|
||||
@@ -47,6 +49,8 @@ class A_DataSync_Compressor(ABC):
|
||||
class DataSync_Compressor_targz(A_DataSync_Compressor):
|
||||
"""Concrete compressor class - .tar.gz compressor"""
|
||||
|
||||
suffix: str = ".tar.gz"
|
||||
|
||||
def compress(self, path_in: Path, file_out: IO):
|
||||
"""compress method - .tar.gz concrete"""
|
||||
with tarfile.open(fileobj=file_out, mode="w:gz") as tar:
|
||||
@@ -64,7 +68,6 @@ class A_DataSync_Record(BaseModel, ABC):
|
||||
name: str
|
||||
rec_type: str
|
||||
value: str
|
||||
suffix: str
|
||||
|
||||
@abstractmethod
|
||||
def compress(self, compressor: A_DataSync_Compressor, file_out: IO) -> None:
|
||||
@@ -100,7 +103,6 @@ class C_DataSync_Record_FS(A_DataSync_Record):
|
||||
"""Concrete DataSync Record class - FileSystem"""
|
||||
|
||||
rec_type: str = "fs"
|
||||
suffix: str = ".tar.gz"
|
||||
path: Optional[Path] = None
|
||||
|
||||
def model_post_init(self, __context) -> None:
|
||||
@@ -189,8 +191,8 @@ class I_DataSync(ABC):
|
||||
self.connect()
|
||||
with TemporaryDirectory() as tmpdir:
|
||||
for datasync_record in self.ar_datasync_record:
|
||||
self._impl_read_data(Path(datasync_record.name + datasync_record.suffix), Path(tmpdir))
|
||||
datasync_record.decompress(self.compressor, Path(tmpdir) / (datasync_record.name + datasync_record.suffix))
|
||||
self._impl_read_data(Path(datasync_record.name + self.compressor.suffix), Path(tmpdir))
|
||||
datasync_record.decompress(self.compressor, Path(tmpdir) / (datasync_record.name + self.compressor.suffix))
|
||||
|
||||
@abstractmethod
|
||||
def _impl_read_data(self, file_in: Path, file_out: Path) -> None:
|
||||
@@ -202,7 +204,7 @@ class I_DataSync(ABC):
|
||||
self._impl_wipe_data()
|
||||
for datasync_record in self.ar_datasync_record:
|
||||
try:
|
||||
with NamedTemporaryFile("wb", suffix=datasync_record.suffix, delete=False) as tmp_file:
|
||||
with NamedTemporaryFile("wb", suffix=self.compressor.suffix, delete=False) as tmp_file:
|
||||
datasync_record.compress(self.compressor, tmp_file)
|
||||
tmp_file.seek(0)
|
||||
tmp_file.close()
|
||||
|
||||
@@ -49,8 +49,6 @@ class TestDabDataSync(unittest.TestCase):
|
||||
self.assertEqual(datasync.ar_datasync_record[1].rec_type, "fs")
|
||||
self.assertEqual(datasync.ar_datasync_record[0].value, "test/test_data")
|
||||
self.assertEqual(datasync.ar_datasync_record[1].value, "test/test_data2/SAVE_FILE.txt")
|
||||
self.assertEqual(datasync.ar_datasync_record[0].suffix, ".tar.gz")
|
||||
self.assertEqual(datasync.ar_datasync_record[1].suffix, ".tar.gz")
|
||||
|
||||
with open(testdir_path / "test_data" / "SAVE_FILE.txt", "rt", encoding="utf-8") as testfile:
|
||||
self.assertEqual(testfile.read(), "SAVED_VALUE")
|
||||
|
||||
Reference in New Issue
Block a user