Skip to content

Commit d5f6b8b

Browse files
authored
Merge pull request #89 from serv-c/feature/blob
fix: correct filter function for child
2 parents 74f296a + f96d1fc commit d5f6b8b

File tree

6 files changed

+34
-5
lines changed

6 files changed

+34
-5
lines changed

servc/svc/__init__.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,26 @@ class ComponentType(Enum):
1313
INTERFACE = "interface"
1414
DATABASE = "database"
1515
STORAGE = "storage"
16+
BLOB = "blob"
17+
LAKE = "lake"
18+
19+
20+
def findComp(
21+
middleware: List[Middleware],
22+
filter: ComponentType | None = None,
23+
name: str | None = None,
24+
) -> Middleware:
25+
for x in middleware:
26+
if ((filter and x.type == filter) or (not filter)) and (
27+
(name and x.name == name) or (not name)
28+
):
29+
return x
30+
31+
if filter and not name:
32+
raise Exception(f"{filter.value} not found")
33+
elif name and filter:
34+
raise Exception(f"{filter.value} with name {name} not found")
35+
raise Exception(f"{name} not found")
1636

1737

1838
class Middleware:
@@ -66,7 +86,4 @@ def close(self):
6686
def getChild(
6787
self, filter: ComponentType | None = None, name: str | None = None
6888
) -> Middleware:
69-
for child in self._children:
70-
if (filter and child.type == filter) or (name and child.name == name):
71-
return child
72-
raise Exception("Child of not found")
89+
return findComp(self._children, filter, name)

servc/svc/com/http/blob.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@ def _postMessage(self, extra_params: Dict | None = None):
5959

6060
for filekey in list(request.files):
6161
file = request.files[filekey]
62-
container, remote_filename = self.get_upload_file_path(extra_params, file.filename)
62+
container, remote_filename = self.get_upload_file_path(
63+
extra_params, file.filename
64+
)
6365

6466
if file.filename != "":
6567
self._blobStorage.put_file(

servc/svc/com/storage/blob/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
from io import BytesIO
22
from typing import List
33

4+
from servc.svc import ComponentType
45
from servc.svc.com.storage import StorageComponent
56
from servc.svc.config import Config
67

78

89
class BlobStorage(StorageComponent):
910
name: str = "blob"
1011

12+
_type: ComponentType = ComponentType.BLOB
13+
1114
def __init__(self, config: Config):
1215
super().__init__(config)
1316

servc/svc/com/storage/delta.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212

1313
class Delta(Lake[DeltaTable]):
14+
name: str = "delta"
15+
1416
_storageOptions: Dict[str, str] = {}
1517

1618
_location_prefix: str

servc/svc/com/storage/iceberg.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818

1919
class IceBerg(Lake[Table]):
20+
name: str = "iceberg"
21+
2022
# _table
2123
_catalog: Catalog
2224

servc/svc/com/storage/lake.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
from pyarrow import RecordBatchReader, Schema, Table
55

6+
from servc.svc import ComponentType
67
from servc.svc.com.storage import StorageComponent
78
from servc.svc.config import Config
89

@@ -27,6 +28,8 @@ class LakeTable(TypedDict):
2728
class Lake(Generic[T], StorageComponent):
2829
name: str = "lake"
2930

31+
_type: ComponentType = ComponentType.LAKE
32+
3033
_table: LakeTable | str
3134

3235
_database: str

0 commit comments

Comments
 (0)