Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/cassandra/storage.py
Show First 20 Lines • Show All 817 Lines • ▼ Show 20 Lines | def origin_visit_update( | ||||
visit = attr.evolve(visit, **updates) | visit = attr.evolve(visit, **updates) | ||||
except (KeyError, TypeError, ValueError) as e: | except (KeyError, TypeError, ValueError) as e: | ||||
raise StorageArgumentException(*e.args) | raise StorageArgumentException(*e.args) | ||||
self.journal_writer.origin_visit_update(visit) | self.journal_writer.origin_visit_update(visit) | ||||
self._cql_runner.origin_visit_update(origin_url, visit_id, updates) | self._cql_runner.origin_visit_update(origin_url, visit_id, updates) | ||||
def origin_visit_upsert(self, visits): | def origin_visit_upsert(self, visits: Iterable[OriginVisit]) -> None: | ||||
visits = [visit.copy() for visit in visits] | |||||
for visit in visits: | |||||
if isinstance(visit['date'], str): | |||||
visit['date'] = dateutil.parser.parse(visit['date']) | |||||
self.journal_writer.origin_visit_upsert(visits) | self.journal_writer.origin_visit_upsert(visits) | ||||
for visit in visits: | for visit in visits: | ||||
visit = visit.copy() | |||||
if visit.get('metadata'): | |||||
visit['metadata'] = json.dumps(visit['metadata']) | |||||
self._cql_runner.origin_visit_upsert(visit) | self._cql_runner.origin_visit_upsert(visit) | ||||
vlorentz: This shouldn't type-check.
Call `json.dumps` in CqlRunner.origin_visit_upsert, like CqlRunner. | |||||
Done Inline Actionsok, will do. ardumont: ok, will do. | |||||
Done Inline Actions
metadata = attr.ib(type=Optional[Dict[str, object]], default=None) I see now. json.dumps could return a string, list or Dict... Well, that's actually a field which is not used... ardumont: > This shouldn't type-check.
```
metadata = attr.ib(type=Optional[Dict[str, object]]… | |||||
Done Inline Actions
no, just a string... ardumont: > json.dumps could return a string, list or Dict...
no, just a string...
ok i see (pfff, needs… | |||||
@staticmethod | @staticmethod | ||||
def _format_origin_visit_row(visit): | def _format_origin_visit_row(visit): | ||||
return { | return { | ||||
**visit._asdict(), | **visit._asdict(), | ||||
'origin': visit.origin, | 'origin': visit.origin, | ||||
'date': visit.date.replace(tzinfo=datetime.timezone.utc), | 'date': visit.date.replace(tzinfo=datetime.timezone.utc), | ||||
'metadata': (json.loads(visit.metadata) | 'metadata': (json.loads(visit.metadata) | ||||
▲ Show 20 Lines • Show All 112 Lines • Show Last 20 Lines |
This shouldn't type-check.
Call json.dumps in CqlRunner.origin_visit_upsert, like CqlRunner.origin_visit_update does.