INGV / qquake

A plugin for QGIS 3.x that relies on web services for loading seismological data
https://www.emidius.eu/qquake/
GNU General Public License v3.0
7 stars 3 forks source link

Exception when fetching events #30

Closed nyalldawson closed 2 years ago

nyalldawson commented 2 years ago

I get the following bug on Lubuntu 20.04 and QGIS 3.10 when selecting the “ISIDe” web service in the fdsn-event, time window 2020-01-02 up to 2020-12-31, magnitude range between 3.5 and 7.5, “Italy” as the geographical area, and “Basic” as output. We tried to reproduce the error on similar configurations, but we couldn’t reproduce it. An error has occurred while executing Python code:

TypeError: QgsField(): arguments did not match any overloaded call:   overload 1: argument 2 has unexpected type 'NoneType'   overload 2: argument 1 has unexpected type 'str' 
Traceback (most recent call last):
  File "/home/mario/.local/share/QGIS/QGIS3/profiles/default/python/plugins/qquake/gui/qquake_dialog.py", line 791, in _fetcher_finished
    layers.append(self.fetcher.create_event_layer())
  File "/home/mario/.local/share/QGIS/QGIS3/profiles/default/python/plugins/qquake/fetcher.py", line 558, in create_event_layer
    return self.events_to_layer(self.result, self.preferred_origins_only, self.preferred_magnitudes_only)
  File "/home/mario/.local/share/QGIS/QGIS3/profiles/default/python/plugins/qquake/fetcher.py", line 449, in events_to_layer
    vl = self._create_empty_event_layer()
  File "/home/mario/.local/share/QGIS/QGIS3/profiles/default/python/plugins/qquake/fetcher.py", line 392, in _create_empty_event_layer
    vl.dataProvider().addAttributes(self.result.to_event_fields(self.output_fields))
  File "/home/mario/.local/share/QGIS/QGIS3/profiles/default/python/plugins/qquake/basic_text_parser.py", line 152, in to_event_fields
    fields.append(QgsField(f, self.get_field_type(f)))
TypeError: QgsField(): arguments did not match any overloaded call:
  overload 1: argument 2 has unexpected type 'NoneType'
  overload 2: argument 1 has unexpected type 'str'

Python version: 3.8.10 (default, Jun 2 2021, 10:49:15) [GCC 9.4.0] QGIS version: 3.10.4-A Coruña A Coruña, exported

Python Path: /usr/share/qgis/python /home/mario/.local/share/QGIS/QGIS3/profiles/default/python /home/mario/.local/share/QGIS/QGIS3/profiles/default/python/plugins /usr/share/qgis/python/plugins /usr/lib/python38.zip /usr/lib/python3.8 /usr/lib/python3.8/lib-dynload /usr/local/lib/python3.8/dist-packages /usr/lib/python3/dist-packages /home/mario/.local/share/QGIS/QGIS3/profiles/default/python

Using the same filter settings as above, I get a Python error also on Windows 10 using QGIS 3.20. We tried to reproduce the error on similar configurations, but we couldn’t reproduce it.

TypeError: QgsField(): arguments did not match any overloaded call:   overload 1: argument 2 has unexpected type 'NoneType'   overload 2: argument 1 has unexpected type 'str'
Traceback (most recent call last):
  File "C:\Users/Rovida/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qquake\gui\qquake_dialog.py", line 745, in _fetcher_finished
    layers.append(self.fetcher.create_event_layer())
  File "C:\Users/Rovida/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qquake\fetcher.py", line 540, in create_event_layer
    return self.events_to_layer(self.result, self.preferred_origins_only, self.preferred_magnitudes_only)
  File "C:\Users/Rovida/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qquake\fetcher.py", line 432, in events_to_layer
    vl = self._create_empty_event_layer()
  File "C:\Users/Rovida/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qquake\fetcher.py", line 375, in _create_empty_event_layer
    vl.dataProvider().addAttributes(self.result.to_event_fields(self.output_fields))
  File "C:\Users/Rovida/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qquake\basic_text_parser.py", line 146, in to_event_fields
    fields.append(QgsField(f, self.get_field_type(f)))
TypeError: QgsField(): arguments did not match any overloaded call:
  overload 1: argument 2 has unexpected type 'NoneType'
  overload 2: argument 1 has unexpected type 'str'

Python version: 3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] QGIS version: 3.20.2-Odense Odense, 9f59a156

Python Path: C:\Users/Rovida/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\contour C:/PROGRA~1/QGIS 3.20.2/apps/qgis/./python C:/Users/Rovida/AppData/Roaming/QGIS/QGIS3\profiles\default/python C:/Users/Rovida/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins C:/PROGRA~1/QGIS 3.20.2/apps/qgis/./python/plugins C:\Program Files\QGIS 3.20.2\bin\python39.zip C:\PROGRA~1\QGIS 3.20.2\apps\Python39\DLLs C:\PROGRA~1\QGIS 3.20.2\apps\Python39\lib C:\Program Files\QGIS 3.20.2\bin C:\PROGRA~1\QGIS 3.20.2\apps\Python39 C:\PROGRA~1\QGIS 3.20.2\apps\Python39\lib\site-packages C:\PROGRA~1\QGIS 3.20.2\apps\Python39\lib\site-packages\win32 C:\PROGRA~1\QGIS 3.20.2\apps\Python39\lib\site-packages\win32\lib C:\PROGRA~1\QGIS 3.20.2\apps\Python39\lib\site-packages\Pythonwin C:/Users/Rovida/AppData/Roaming/QGIS/QGIS3\profiles\default/python C:\Users\Rovida\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\kmltools\libs C:/Users/Rovida/Documents/ASMI/CPTI/aggiornamento_2020

nyalldawson commented 2 years ago

@MarioLocati this is a copy of the bug which was reported.

I've given this some testing and am unable to reproduce it. Are you still able to reproduce this error?

MarioLocati commented 2 years ago

@nyalldawson I have tried multiple configurations but I am unable to reproduce the errror. I have contacted the person that initially reported the problem, and he now reports that all is working fine. I close the issue until further notice.