geopython / pycsw

pycsw is an OGC CSW server implementation written in Python. pycsw fully implements the OpenGIS Catalogue Service Implementation Specification [Catalogue Service for the Web]. Initial development started in 2010 (more formally announced in 2011). The project is certified OGC Compliant, and is an OGC Reference Implementation. pycsw allows for the publishing and discovery of geospatial metadata via numerous APIs (CSW 2/CSW 3, OpenSearch, OAI-PMH, SRU). Existing repositories of geospatial metadata can also be exposed, providing a standards-based metadata and catalogue component of spatial data infrastructures. pycsw is Open Source, released under an MIT license, and runs on all major platforms (Windows, Linux, Mac OS X). Please read the docs at https://pycsw.org/docs for more information.
https://pycsw.org
MIT License
209 stars 155 forks source link

GetCapabilities - TypeError: list indices must be integers or slices, not str #1032

Open Dubkoslove opened 1 month ago

Dubkoslove commented 1 month ago

Description

Default getcapabilities use case does work.

Enpodints:

return error 500

Environment

Steps to Reproduce

Deployment on Kubernetes pod via helm chart. Used default configuration with pg database and APISO profile enabled.

Additional Information

[2024-10-14T09:16:20Z] {/usr/local/lib/python3.10/site-packages/flask/app.py:838} ERROR - Exception on /csw [GET] Traceback (most recent call last):

File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1473, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 882, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 880, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 865, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] File "/home/pycsw/pycsw/pycsw/wsgi_flask.py", line 264, in csw status, headers, content = application_dispatcher(request.environ) File "/home/pycsw/pycsw/pycsw/wsgi.py", line 84, in application_dispatcher status, contents = csw.dispatch_wsgi() File "/home/pycsw/pycsw/pycsw/server.py", line 248, in dispatch_wsgi return self.dispatch() File "/home/pycsw/pycsw/pycsw/server.py", line 567, in dispatch self.response = self.iface.getcapabilities() File "/home/pycsw/pycsw/pycsw/ogc/csw/csw3.py", line 395, in getcapabilities self.parent.profiles['loaded'][prof].get_extendedcapabilities() File "/home/pycsw/pycsw/pycsw/plugins/profiles/apiso/apiso.py", line 242, in get_extendedcapabilities util.nspath_eval('inspire_common:StartingDate', self.inspire_namespaces)).text = str(val['begin']) TypeError: list indices must be integers or slices, not str

kalxas commented 1 month ago

http://demo.pycsw.org/cite/csw?service=CSW&version=2.0.2&request=GetCapabilities

Dubkoslove commented 1 month ago

http://demo.pycsw.org/cite/csw?service=CSW&version=2.0.2&request=GetCapabilities

Sorry, I dont understand your comment.

My problem was that the inspire functionality raises this exception after default deployment. I turned off the inspire, now it works.

kalxas commented 1 month ago

Thank you for the feedback, I will try to replicate the issue