Skip to content

Commit a0c6326

Browse files
Fix custom creation date (#43)
Co-authored-by: Dr. Dennis Wittich <[email protected]>
1 parent 9d0ab0e commit a0c6326

File tree

5 files changed

+16
-12
lines changed

5 files changed

+16
-12
lines changed

learning_loop_node/data_classes/image_metadata.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class ImageMetadata():
2828
tags: List[str] = field(default_factory=list, metadata={
2929
'description': 'List of tags'})
3030

31-
date: Optional[str] = field(default_factory=current_datetime, metadata={
31+
created: Optional[str] = field(default_factory=current_datetime, metadata={
3232
'description': 'Creation date of the image'})
3333
source: Optional[str] = field(default=None, metadata={
3434
'description': 'Source of the image'})

learning_loop_node/detector/detector_node.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,6 @@ def setup_sio_server(self) -> None:
140140

141141
@self.sio.event
142142
async def detect(sid, data: Dict) -> Dict:
143-
self.log.debug('running detect via socketio')
144143
try:
145144
np_image = np.frombuffer(data['image'], np.uint8)
146145
det = await self.get_detections(
@@ -153,7 +152,6 @@ async def detect(sid, data: Dict) -> Dict:
153152
if det is None:
154153
return {'error': 'no model loaded'}
155154
detection_dict = jsonable_encoder(asdict(det))
156-
self.log.debug('detect via socketio finished')
157155
return detection_dict
158156
except Exception as e:
159157
self.log.exception('could not detect via socketio')
@@ -188,6 +186,9 @@ async def upload(sid, data: Dict) -> Optional[Dict]:
188186
source = data.get('source', None)
189187
creation_date = data.get('creation_date', None)
190188

189+
self.log.debug('running upload via socketio. tags: %s, source: %s, creation_date: %s',
190+
tags, source, creation_date)
191+
191192
loop = asyncio.get_event_loop()
192193
try:
193194
await loop.run_in_executor(None, self.outbox.save, data['image'], image_metadata, tags, source, creation_date)

learning_loop_node/detector/outbox.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,11 @@ def save(self,
7676
return
7777
tmp = f'{GLOBALS.data_folder}/tmp/{identifier}'
7878
image_metadata.tags = tags
79-
if creation_date and self._is_valid_isoformat(creation_date):
80-
image_metadata.date = creation_date
79+
if self._is_valid_isoformat(creation_date):
80+
image_metadata.created = creation_date
8181
else:
82-
image_metadata.date = identifier
82+
image_metadata.created = identifier
83+
8384
image_metadata.source = source or 'unknown'
8485
os.makedirs(tmp, exist_ok=True)
8586

@@ -94,7 +95,9 @@ def save(self,
9495
else:
9596
self.log.error('Could not rename %s to %s', tmp, self.path + '/' + identifier)
9697

97-
def _is_valid_isoformat(self, date: str) -> bool:
98+
def _is_valid_isoformat(self, date: Optional[str]) -> bool:
99+
if date is None:
100+
return False
98101
try:
99102
datetime.fromisoformat(date)
100103
return True
@@ -153,7 +156,7 @@ async def _upload_batch(self, items: List[str]):
153156
self.log.exception('Could not upload images')
154157
return
155158
finally:
156-
self.log.info('Closing files')
159+
self.log.debug('Closing files')
157160
for _, file in data:
158161
file.close()
159162

learning_loop_node/loop_communication.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def __init__(self) -> None:
3535
else:
3636
self.async_client = httpx.AsyncClient(base_url=self.base_url, timeout=Timeout(60.0))
3737

38-
logging.info(f'Loop interface initialized with base_url: {self.base_url} / user: {self.username}')
38+
logging.info('Loop interface initialized with base_url: %s / user: %s', self.base_url, self.username)
3939

4040
def websocket_url(self) -> str:
4141
return f'ws{"s" if "learning-loop.ai" in self.host else ""}://' + self.host
@@ -48,7 +48,7 @@ async def ensure_login(self, relogin=False) -> None:
4848
self.async_client.cookies.clear()
4949
response = await self.async_client.post('/api/login', data={'username': self.username, 'password': self.password})
5050
if response.status_code != 200:
51-
logging.info(f'Login failed with response: {response}')
51+
logging.info('Login failed with response: %s', response)
5252
raise LoopCommunicationException('Login failed with response: ' + str(response))
5353
self.async_client.cookies.update(response.cookies)
5454

@@ -57,7 +57,7 @@ async def logout(self) -> None:
5757

5858
response = await self.async_client.post('/api/logout')
5959
if response.status_code != 200:
60-
logging.info(f'Logout failed with response: {response}')
60+
logging.info('Logout failed with response: %s', response)
6161
raise LoopCommunicationException('Logout failed with response: ' + str(response))
6262
self.async_client.cookies.clear()
6363

mock_detector/app_code/tests/test_detector.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,4 @@ async def test_sio_detect(test_detector_node: DetectorNode, sio):
3838
assert response['point_detections'] == []
3939
assert response['segmentation_detections'] == []
4040
assert response['tags'] == []
41-
assert 'date' in response
41+
assert 'created' in response

0 commit comments

Comments
 (0)