parkerhancock / patent_client

A collection of ORM-style clients to public patent data
Other
89 stars 34 forks source link

KeyError: 'inventors' #124

Closed amit-trexo closed 10 months ago

amit-trexo commented 10 months ago

While accessing application number 18306211, the python app crashes. Below is the stacktrace :

Traceback (most recent call last): File "/home/amit/development/python/venv/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response response = wrapped_callback(request, *callback_args, callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/django/views/decorators/csrf.py", line 56, in wrapper_view return view_func(*args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/django/views/generic/base.py", line 104, in view return self.dispatch(request, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/rest_framework/views.py", line 509, in dispatch response = self.handle_exception(exc) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/rest_framework/views.py", line 469, in handle_exception self.raise_uncaught_exception(exc) File "/home/amit/development/python/venv/lib/python3.11/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception raise exc File "/home/amit/development/python/venv/lib/python3.11/site-packages/rest_framework/views.py", line 506, in dispatch response = handler(request, *args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/rest_framework/decorators.py", line 50, in handler return func(*args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/drf/api/views.py", line 22, in getData app = USApplication.objects.get(application_number) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/patent_client/util/manager.py", line 159, in get return run_sync(self.aget(args, kwargs)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/patent_client/util/asyncio_util.py", line 5, in run_sync return asyncio.run(coroutine) ^^^^^^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/nest_asyncio.py", line 31, in run return loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/nest_asyncio.py", line 99, in run_until_complete return f.result() ^^^^^^^^^^ File "/home/amit/anaconda3/lib/python3.11/asyncio/futures.py", line 203, in result raise self._exception.with_traceback(self._exception_tb) File "/home/amit/anaconda3/lib/python3.11/asyncio/tasks.py", line 267, in step result = coro.send(None) ^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/patent_client/util/manager.py", line 151, in aget length = await mger.alen() ^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/patent_client/uspto/peds/manager.py", line 32, in alen max_length = (await api.create_query(**self.get_query_params())).num_found ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/patent_client/uspto/peds/api.py", line 105, in create_query return PedsPage.model_validate(response.json()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/pydantic/main.py", line 503, in model_validate return cls.__pydantic_validator.validate_python( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/amit/development/python/venv/lib/python3.11/site-packages/patent_client/uspto/peds/model.py", line 323, in collect_related_fields for inventor in values["inventors"]:


KeyError: 'inventors'
parkerhancock commented 10 months ago

This is fixed in v.4.1.5. The problem is that sometimes the "inventors" key isn't present. Line 232 of model.py is now:

for inventor in values.get("inventors", list()):
    ...

The fix is simple, just:

pip install --upgrade patent_client