manusimidt / py-xbrl

Python-based parser for parsing XBRL and iXBRL files
https://py-xbrl.readthedocs.io/en/latest/
GNU General Public License v3.0
111 stars 45 forks source link

xbrl.TaxonomyNotFound #120

Open rainergo opened 1 year ago

rainergo commented 1 year ago

Hi, I got an error while trying to parse local xbrl package (structure is as recommended in your docs): xbrl.TaxonomyNotFound: The taxonomy with namespace http://xbrl.ifrs.org/taxonomy/2021-03-24/ifrs-full could not be found. Please check if it is imported in the schema file

But: py-xbrl already downloaded this taxonomy into the "cache" folder. Why can't it find it?

Update: I found the answer: Because your "taxonomy.py" file does not contain the updated ifrs-taxonomy. I manually inserted it by adding: "http://xbrl.ifrs.org/taxonomy/2021-03-24/ifrs-full": "http://xbrl.ifrs.org/taxonomy/2021-03-24/full_ifrs/full_ifrs-cor_2021-03-24.xsd",.

It works now. But how can I update taxonomies without going deep into your code? Is there a function for it or do you plan to add it?

Thanks.

Cave-Johnson commented 11 months ago

Similar issue open here with some UK referenced taxonimies - https://github.com/manusimidt/py-xbrl/issues/112.

You could create a PR to include yours, I am looking to do the same with the ones for the other thread. But this will require the author to accept and merge

manusimidt commented 11 months ago

@rainergo Thanks for the issue, sorry for the late reply. When all XBRL submissions would strictly follow the XBRL Specification, the manual mapping between namespaces and schema-urls would not be necessary. However, in practice, there are many XBRL submissions that use a namespace from an XBRL taxonomy without declaring the schema URL. Often these URLs are from commonly known taxonomies, in which case py-xbrl should still be able to parse them, therefore I created the manual table.

It is planned to create a functionality that py-xbrl automatically downloads the latest taxonomy namespaces and schema URLs for SEC EDGAR taxonomies (see #76). The SEC provides a file that exactly defines this mapping (edgartaxonomies.xml). However, I am not aware of a similar service by the UK company house, but please let me know if you found something!