{"id":37066739,"url":"https://github.com/kanedata/ixbrl-parse","last_synced_at":"2026-01-14T07:50:01.251Z","repository":{"id":45440612,"uuid":"161476708","full_name":"kanedata/ixbrl-parse","owner":"kanedata","description":"A python library for getting useful data out of ixbrl files.","archived":false,"fork":false,"pushed_at":"2025-11-04T11:04:28.000Z","size":243,"stargazers_count":70,"open_issues_count":2,"forks_count":25,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-11-04T11:22:45.743Z","etag":null,"topics":["finance","python","python37","xbrl"],"latest_commit_sha":null,"homepage":"https://ixbrl-parse.readthedocs.io/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kanedata.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["kanedata"]}},"created_at":"2018-12-12T11:11:57.000Z","updated_at":"2025-11-04T11:04:11.000Z","dependencies_parsed_at":"2024-06-05T10:52:59.979Z","dependency_job_id":"559ea319-da40-4716-8904-eb6040c651a1","html_url":"https://github.com/kanedata/ixbrl-parse","commit_stats":null,"previous_names":["kanedata/ixbrl-parse","drkane/ixbrl-parse"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/kanedata/ixbrl-parse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanedata%2Fixbrl-parse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanedata%2Fixbrl-parse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanedata%2Fixbrl-parse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanedata%2Fixbrl-parse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kanedata","download_url":"https://codeload.github.com/kanedata/ixbrl-parse/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanedata%2Fixbrl-parse/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28413508,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["finance","python","python37","xbrl"],"created_at":"2026-01-14T07:50:00.591Z","updated_at":"2026-01-14T07:50:01.236Z","avatar_url":"https://github.com/kanedata.png","language":"HTML","funding_links":["https://github.com/sponsors/kanedata"],"categories":[],"sub_categories":[],"readme":"# ixbrl-parse\n\n![Test status](https://github.com/kanedata/ixbrl-parse/workflows/tests/badge.svg)\n[![PyPI version](https://img.shields.io/pypi/v/ixbrlparse)](https://pypi.org/project/ixbrlparse/)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ixbrlparse)\n![PyPI - License](https://img.shields.io/pypi/l/ixbrlparse)\n[![Documentation Status](https://readthedocs.org/projects/ixbrl-parse/badge/?version=latest)](https://ixbrl-parse.readthedocs.io/en/latest/?badge=latest)\n\nA python module for getting useful data out of iXBRL™ and XBRL™ files. The library is at an early stage - feedback and improvements are very welcome.\n\nFull documentation is available at [ixbrl-parse.readthedocs.io](https://ixbrl-parse.readthedocs.io/)\n\nFor more about the iXBRL™ and XBRL™ standards, see the [specification site](https://specifications.xbrl.org/)\nand [XBRL International](https://www.xbrl.org/). This tool is not affiliated with XBRL International.\n\n**[Changelog](https://ixbrl-parse.readthedocs.io/en/latest/changelog/)**\n\n## Requirements\n\nThe module requires [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/) and [lxml](https://lxml.de/) to parse the documents.\n\nIf you're using Python 3.13 you may need to ensure that the `libxml2-dev` and `libxslt-dev` packages have been installed.\n\n[word2number](https://github.com/akshaynagpal/w2n) is used to process the\nnumeric items with the `numsenwords` format.\n\n## How to install\n\nYou can install from pypi using pip:\n\n```\npip install ixbrlparse\n```\n\n## How to use\n\nYou can run the module directly to extract data from an iXBRL™ file.\n\n```bash\nixbrlparse example_file.html\n# or\npython -m ixbrlparse example_file.html\n```\n\nWhile primarily designed for iXBRL™ files, the parser should also work\nfor XBRL™ files.\n\nThe various options for using this can be found through:\n\n```bash\npython -m ixbrlparse -h\n# optional arguments:\n#   -h, --help            show this help message and exit\n#   --outfile OUTFILE     Where to output the file\n#   --format {csv,json,jsonlines,jsonl}\n#                         format of the output\n#   --fields {numeric,nonnumeric,all}\n#                         Which fields to output\n```\n\nYou can also use as a python module (see [the documentation](https://ixbrl-parse.readthedocs.io/en/latest/python-module/) for more details)\n\n## Development\n\nThe module is setup for development using [hatch](https://hatch.pypa.io/latest/). It should be possible to run tests and linting without needed hatch, however.\n\n### Run tests\n\nTests can be run with `pytest`:\n\n```bash\nhatch run test\n```\n\nWithout hatch, you'll need to run:\n\n```bash\npip install -e .[test]\npython -m pytest tests\n```\n\n### Test coverage\n\nRun tests then report on coverage\n\n```bash\nhatch run cov\n```\n\nWithout hatch, you'll need to run:\n\n```bash\npip install -e .[test]\ncoverage run -m pytest tests\ncoverage report\n```\n\nRun tests then run a server showing where coverage is missing\n\n```bash\nhatch run cov-html\n```\n\nWithout hatch, you'll need to run:\n\n```bash\npip install -e .[test]\ncoverage run -m pytest tests\ncoverage report\ncoverage html\npython -m http.server -d htmlcov\n```\n\n### Run typing checks\n\n```bash\nhatch run lint:typing\n```\n\nWithout hatch, you'll need to run:\n\n```bash\npip install -e .[lint]\nmypy --install-types --non-interactive src/ixbrlparse tests\n```\n\n### Linting\n\nRuff should be run before committing any changes.\n\nTo check for any changes needed:\n\n```bash\nhatch run lint:style\n```\n\nWithout hatch, you'll need to run:\n\n```bash\npip install -e .[lint]\nruff check .\nruff format --check --diff .\n```\n\nTo run any autoformatting possible:\n\n```sh\nhatch run lint:fmt\n```\n\nWithout hatch, you'll need to run:\n\n```bash\npip install -e .[lint]\nruff format .\nruff check --fix .\n```\n\n### Run all checks at once\n\n```sh\nhatch run lint:all\n```\n\nWithout hatch, you'll need to run:\n\n```bash\npip install -e .[lint]\nruff check .\nruff format --check --diff .\nmypy --install-types --non-interactive src/ixbrlparse tests\n```\n\n## Publish to pypi\n\n```bash\nhatch build\nhatch publish\ngit tag v\u003cVERSION_NUMBER\u003e\ngit push origin v\u003cVERSION_NUMBER\u003e\n```\n\n## Acknowledgements\n\nDeveloped by [David Kane](https://dkane.net/) of [Kane Data Ltd](https://kanedata.co.uk/)\n\nOriginally developed for a project with\n[Power to Change](https://www.powertochange.org.uk/) looking at how to extract data from\nfinancial documents of community businesses.\n\nThanks to the following users for their contributions:\n\n- [@avyfain](https://github.com/avyfain)\n- [@wcollinscw](https://github.com/wcollinscw)\n- [@ajmarks](https://github.com/ajmarks)\n- [@adobrinevski](https://github.com/adobrinevski)\n- [@JWFB](https://github.com/JWFB)\n- [@vin0110](https://github.com/vin0110)\n- [@daizutabi](https://github.com/daizutabi)\n\nXBRL™ and iXBRL™ are trademarks of XBRL International, Inc. All rights reserved.\n\nThe XBRL™ standards are open and freely licensed by way of the XBRL International License Agreement. Our use of these trademarks is permitted by XBRL International in accordance with the XBRL International Trademark Policy.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkanedata%2Fixbrl-parse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkanedata%2Fixbrl-parse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkanedata%2Fixbrl-parse/lists"}