Web: price plot no longer shown
Closed this issue · 3 comments
jgalar commented
Plots are not showing, while we get this exception on the server side:
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: ValueError: Invalid isoformat string: '2022-03-22 00:15:40.862310'
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: ERROR:uvicorn.error:Exception in ASGI application
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: Traceback (most recent call last):
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 75, in __call__
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py", line 366, in run_asgi
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: result = await app(self.scope, self.receive, self.send)
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 75, in __call__
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: return await self.app(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/applications.py", line 261, in __call__
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: await super().__call__(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/applications.py", line 112, in __call__
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: await self.middleware_stack(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/middleware/errors.py", line 181, in __call__
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: raise exc
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/middleware/errors.py", line 159, in __call__
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: await self.app(scope, receive, _send)
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/exceptions.py", line 82, in __call__
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: raise exc
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/exceptions.py", line 71, in __call__
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: await self.app(scope, receive, sender)
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: raise e
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: await self.app(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return await self.app(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 656, in __call__
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: await route.handle(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 259, in handle
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: await self.app(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 61, in app
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: response = await func(request)
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/routing.py", line 227, in app
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: raw_response = await run_endpoint_function(
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/routing.py", line 160, in run_endpoint_function
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: return await dependant.call(**values)
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/CanadianTracker/src/canadiantracker/http.py", line 80, in api_skus_samples
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: return [serialize_product_info_sample(sample) for sample in sku.samples]
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 562, in __get__
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: return self.impl.get(state, dict_) # type: ignore[no-any-return]
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 1075, in get
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: value = self._fire_loader_callables(state, key, passive)
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 1110, in _fire_loader_callables
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: return self.callable_(state, passive)
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 948, in _load_for_state
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: return self._emit_lazyload(
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/applications.py", line 261, in __call__
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 1115, in _emit_lazyload
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: result = result.unique().scalars().all()
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 1774, in all
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: return self._allrows()
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 530, in _allrows
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: rows = self._fetchall_impl()
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 1676, in _fetchall_impl
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: return self._real_result._fetchall_impl()
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 2291, in _fetchall_impl
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: return list(self.iterator)
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 190, in chunks
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: fetch = cursor._raw_all_rows()
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 522, in _raw_all_rows
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: return [make_row(row) for row in rows]
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 522, in <listcomp>
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: return [make_row(row) for row in rows]
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "lib/sqlalchemy/cyextension/resultproxy.pyx", line 24, in sqlalchemy.cyextension.resultproxy.BaseRow.__init__
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: File "lib/sqlalchemy/cyextension/processors.pyx", line 45, in sqlalchemy.cyextension.processors.str_to_date
Feb 15 14:24:39 vps-c0ce24d7 start.sh[7607]: ValueError: Invalid isoformat string: '2022-03-22 00:15:40.862310'
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: await super().__call__(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/applications.py", line 112, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: await self.middleware_stack(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/middleware/errors.py", line 181, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: raise exc
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/middleware/errors.py", line 159, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: await self.app(scope, receive, _send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/exceptions.py", line 82, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: raise exc
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/exceptions.py", line 71, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: await self.app(scope, receive, sender)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: raise e
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: await self.app(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 656, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: await route.handle(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 259, in handle
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: await self.app(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 61, in app
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: response = await func(request)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/routing.py", line 227, in app
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: raw_response = await run_endpoint_function(
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/routing.py", line 160, in run_endpoint_function
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return await dependant.call(**values)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/CanadianTracker/src/canadiantracker/http.py", line 80, in api_skus_samples
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return [serialize_product_info_sample(sample) for sample in sku.samples]
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 562, in __get__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return self.impl.get(state, dict_) # type: ignore[no-any-return]
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 1075, in get
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: value = self._fire_loader_callables(state, key, passive)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 1110, in _fire_loader_callables
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return self.callable_(state, passive)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 948, in _load_for_state
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return self._emit_lazyload(
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 1115, in _emit_lazyload
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: result = result.unique().scalars().all()
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 1774, in all
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return self._allrows()
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 530, in _allrows
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: rows = self._fetchall_impl()
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 1676, in _fetchall_impl
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return self._real_result._fetchall_impl()
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 2291, in _fetchall_impl
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return list(self.iterator)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 190, in chunks
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: fetch = cursor._raw_all_rows()
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 522, in _raw_all_rows
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return [make_row(row) for row in rows]
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 522, in <listcomp>
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return [make_row(row) for row in rows]
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "lib/sqlalchemy/cyextension/resultproxy.pyx", line 24, in sqlalchemy.cyextension.resultproxy.BaseRow.__init__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "lib/sqlalchemy/cyextension/processors.pyx", line 45, in sqlalchemy.cyextension.processors.str_to_date
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: ValueError: Invalid isoformat string: '2022-03-22 00:15:40.862310'
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: ERROR:uvicorn.error:Exception in ASGI application
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: Traceback (most recent call last):
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py", line 366, in run_asgi
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: result = await app(self.scope, self.receive, self.send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 75, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return await self.app(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/applications.py", line 261, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: await super().__call__(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/applications.py", line 112, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: await self.middleware_stack(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/middleware/errors.py", line 181, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: raise exc
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/middleware/errors.py", line 159, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: await self.app(scope, receive, _send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/exceptions.py", line 82, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: raise exc
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/exceptions.py", line 71, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: await self.app(scope, receive, sender)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: raise e
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: await self.app(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 656, in __call__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: await route.handle(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 259, in handle
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: await self.app(scope, receive, send)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 61, in app
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: response = await func(request)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/routing.py", line 227, in app
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: raw_response = await run_endpoint_function(
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/fastapi/routing.py", line 160, in run_endpoint_function
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return await dependant.call(**values)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/CanadianTracker/src/canadiantracker/http.py", line 80, in api_skus_samples
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return [serialize_product_info_sample(sample) for sample in sku.samples]
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 562, in __get__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return self.impl.get(state, dict_) # type: ignore[no-any-return]
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 1075, in get
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: value = self._fire_loader_callables(state, key, passive)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 1110, in _fire_loader_callables
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return self.callable_(state, passive)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 948, in _load_for_state
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return self._emit_lazyload(
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 1115, in _emit_lazyload
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: result = result.unique().scalars().all()
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 1774, in all
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return self._allrows()
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 530, in _allrows
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: rows = self._fetchall_impl()
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 1676, in _fetchall_impl
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return self._real_result._fetchall_impl()
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 2291, in _fetchall_impl
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return list(self.iterator)
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 190, in chunks
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: fetch = cursor._raw_all_rows()
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 522, in _raw_all_rows
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return [make_row(row) for row in rows]
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "/home/web/.cache/pypoetry/virtualenvs/canadiantracker-xDEsgjW9-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 522, in <listcomp>
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: return [make_row(row) for row in rows]
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "lib/sqlalchemy/cyextension/resultproxy.pyx", line 24, in sqlalchemy.cyextension.resultproxy.BaseRow.__init__
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: File "lib/sqlalchemy/cyextension/processors.pyx", line 45, in sqlalchemy.cyextension.processors.str_to_date
Feb 15 14:24:39 vps-c0ce24d7 e0c5713b68cb[751]: ValueError: Invalid isoformat string: '2022-03-22 00:15:40.862310'
simark commented
Ah, that fixes it:
diff --git a/src/canadiantracker/storage.py b/src/canadiantracker/storage.py
index 961cf29e9fae..0fc0f552511d 100644
--- a/src/canadiantracker/storage.py
+++ b/src/canadiantracker/storage.py
@@ -101,7 +101,7 @@ class _StorageProductSample(_Base):
__tablename__ = "samples"
index: Mapped[int] = mapped_column(primary_key=True, unique=True, index=True)
- sample_time: Mapped[datetime.date]
+ sample_time: Mapped[datetime.datetime]
sku_index: Mapped[int] = mapped_column(
sqlalchemy.ForeignKey("skus.index"),
index=True,
jgalar commented
For context, price scraping appears to fail for the same reason:
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: rv = self.invoke(ctx)
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: self = <Group cli>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: args = ['scrape-prices', '--db-path', '/home/scraper/db.tmp.hWUGSV/inventory.db']
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: prog_name = 'ctscraper'
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: complete_var = None
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: standalone_mode = True
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: windows_expand_args = True
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: extra = {}
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: ctx = <click.core.Context object at 0x7f69268b7820>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "/home/scraper/.cache/pypoetry/virtualenvs/canadiantracker-lR2ht7gH-py3.10/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: return _process_result(sub_ctx.command.invoke(sub_ctx))
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: _process_result = <function MultiCommand.invoke.<locals>._process_result at 0x7f6926a17f40>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: args = []
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: cmd_name = 'scrape-prices'
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: cmd = <Command scrape-prices>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: sub_ctx = <click.core.Context object at 0x7f6924f65bd0>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: ctx = <click.core.Context object at 0x7f69268b7820>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: self = <Group cli>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: __class__ = <class 'click.core.MultiCommand'>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "/home/scraper/.cache/pypoetry/virtualenvs/canadiantracker-lR2ht7gH-py3.10/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: return ctx.invoke(self.callback, **ctx.params)
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: self = <Command scrape-prices>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: ctx = <click.core.Context object at 0x7f6924f65bd0>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "/home/scraper/.cache/pypoetry/virtualenvs/canadiantracker-lR2ht7gH-py3.10/lib/python3.10/site-packages/click/core.py", line 760, in invoke
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: return __callback(*args, **kwargs)
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: _Context__self = <click.core.Context object at 0x7f6924f65bd0>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: _Context__callback = <function scrape_prices at 0x7f6924932440>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: args = ()
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: kwargs = {'db_path': '/home/scraper/db.tmp.hWUGSV/inventory.db', 'older_than': 1, 'discard_equal': True}
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: ctx = <click.core.Context object at 0x7f6924f65bd0>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "/home/scraper/CanadianTracker/src/canadiantracker/scraper.py", line 246, in scrape_prices
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: repository.add_product_price_samples(ledger, discard_equal)
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: db_path = '/home/scraper/db.tmp.hWUGSV/inventory.db'
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: older_than = 1
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: discard_equal = True
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: repository = <canadiantracker.storage.ProductRepository object at 0x7f6924b05c00>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: progress_bar_settings = {'label': 'Scraping prices', 'show_pos': True, 'item_show_func': <function scrape_prices.<locals>.<lambda> at 0x7f69249f8820>, 'bar_template': ''}
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: skus = <click._termui_impl.ProgressBar object at 0x7f6924967370>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: ledger = <canadiantracker.triangle.ProductLedger object at 0x7f69249664d0>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "/home/scraper/CanadianTracker/src/canadiantracker/storage.py", line 335, in add_product_price_samples
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: .one_or_none()
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: self = <canadiantracker.storage.ProductRepository object at 0x7f6924b05c00>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: product_infos = <canadiantracker.triangle.ProductLedger object at 0x7f69249664d0>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: discard_equal = True
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: info = {'_raw_payload': {'code': '0052116', 'active': True, 'sellable': True, 'orderable': False, 'originalPrice': None, 'currentPrice': {'value': Decimal('110.99')}, 'displayWasLabel': False, 'badges': [], 'storeShelfLocation': None, 'fulfillment': {'availability': {'Corporate': {'bopisETA': {'MinETA': '2023-02-15T00:00:00.000Z', 'MaxETA': '2023-02-15T00:00:00.000Z'},
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: price = Decimal('110.99')
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: sku = _StorageSku(code=0052116, formatted_code=005-2116-4, product_index=1)
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "/home/scraper/.cache/pypoetry/virtualenvs/canadiantracker-lR2ht7gH-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 2802, in one_or_none
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: return self._iter().one_or_none() # type: ignore
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: self = <sqlalchemy.orm.query.Query object at 0x7f69045bffd0>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "/home/scraper/.cache/pypoetry/virtualenvs/canadiantracker-lR2ht7gH-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 1803, in one_or_none
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: return self._only_one_row(
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: self = <sqlalchemy.engine.result.ScalarResult object at 0x7f690460ff10>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "/home/scraper/.cache/pypoetry/virtualenvs/canadiantracker-lR2ht7gH-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 733, in _only_one_row
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: row: Optional[_InterimRowType[Any]] = onerow(hard_close=True)
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: self = <sqlalchemy.engine.result.ScalarResult object at 0x7f690460ff10>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: raise_for_second_row = True
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: raise_for_none = False
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: scalar = False
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: onerow = <bound method FilterResult._fetchone_impl of <sqlalchemy.engine.result.ScalarResult object at 0x7f690460ff10>>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "/home/scraper/.cache/pypoetry/virtualenvs/canadiantracker-lR2ht7gH-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 1673, in _fetchone_impl
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: return self._real_result._fetchone_impl(hard_close=hard_close)
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: self = <sqlalchemy.engine.result.ScalarResult object at 0x7f690460ff10>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: hard_close = True
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "/home/scraper/.cache/pypoetry/virtualenvs/canadiantracker-lR2ht7gH-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 2280, in _fetchone_impl
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: row = next(self.iterator, _NO_ROW)
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: self = <sqlalchemy.engine.result.ChunkedIteratorResult object at 0x7f6904623e40>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: hard_close = True
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "/home/scraper/.cache/pypoetry/virtualenvs/canadiantracker-lR2ht7gH-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 190, in chunks
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: fetch = cursor._raw_all_rows()
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: size = None
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: yield_per = None
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: context = <sqlalchemy.orm.context.QueryContext object at 0x7f69249573e0>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: cursor = <sqlalchemy.engine.cursor.CursorResult object at 0x7f690462c640>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: is_top_level = True
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: process = (<function _instance_processor.<locals>._instance at 0x7f69045fc4c0>,)
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: single_entity = True
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "/home/scraper/.cache/pypoetry/virtualenvs/canadiantracker-lR2ht7gH-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 522, in _raw_all_rows
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: return [make_row(row) for row in rows]
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: self = <sqlalchemy.engine.cursor.CursorResult object at 0x7f690462c640>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: rows = [(42846876, '2023-02-03 07:25:49.647988', '16', 0, '{\'code\': \'0052116\', \'active\': True, \'sellable\': True, \'orderable\': False, \'originalPrice\': None, \'currentPrice\': {\'value\': Decimal(\'110.99\')}, \'displayWasLabel\': False, \'badges\': [], \'storeShelfLocation\': None, \'fulfillment\': {\'availability\': {\'Corporate\': {\'bopisETA\': {\'MinETA\'
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: make_row = functools.partial(<class 'sqlalchemy.engine.row.Row'>, <sqlalchemy.engine.cursor.CursorResultMetaData object at 0x7f690462c6a0>, [None, <built-in function str_to_date>, None, <built-in function int_to_boolean>, None, None], {<sqlalchemy.sql.compiler._CompileLabel object at 0x7f6904622c80>: (0, 0, (<sqlalchemy.sql.compiler._CompileLabel object at 0x7f6904622c8
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "/home/scraper/.cache/pypoetry/virtualenvs/canadiantracker-lR2ht7gH-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 522, in <listcomp>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: return [make_row(row) for row in rows]
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: .0 = <list_iterator object at 0x7f69045bf160>
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: row = (42846876, '2023-02-03 07:25:49.647988', '16', 0, '{\'code\': \'0052116\', \'active\': True, \'sellable\': True, \'orderable\': False, \'originalPrice\': None, \'currentPrice\': {\'value\': Decimal(\'110.99\')}, \'displayWasLabel\': False, \'badges\': [], \'storeShelfLocation\': None, \'fulfillment\': {\'availability\': {\'Corporate\': {\'bopisETA\': {\'MinETA\':
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: make_row = functools.partial(<class 'sqlalchemy.engine.row.Row'>, <sqlalchemy.engine.cursor.CursorResultMetaData object at 0x7f690462c6a0>, [None, <built-in function str_to_date>, None, <built-in function int_to_boolean>, None, None], {<sqlalchemy.sql.compiler._CompileLabel object at 0x7f6904622c80>: (0, 0, (<sqlalchemy.sql.compiler._CompileLabel object at 0x7f6904622c8
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "lib/sqlalchemy/cyextension/resultproxy.pyx", line 24, in sqlalchemy.cyextension.resultproxy.BaseRow.__init__
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: File "lib/sqlalchemy/cyextension/processors.pyx", line 45, in sqlalchemy.cyextension.processors.str_to_date
Feb 15 15:42:06 vps-c0ce24d7 a6b5dd04cb05[751]: builtins.ValueError: Invalid isoformat string: '2023-02-03 07:25:49.647988'