Skip to main content

A python module for getting useful data out of ixbrl files.

Project description

ixbrl-parse

Test status PyPI version PyPI - Python Version PyPI - License Documentation Status

A python module for getting useful data out of ixbrl files. The library is at an early stage - feedback and improvements are very welcome.

Full documentation is available at ixbrl-parse.readthedocs.io

Changelog

Requirements

The module requires BeautifulSoup and lxml to parse the documents.

word2number is used to process the numeric items with the numsenwords format.

How to install

You can install from pypi using pip:

pip install ixbrlparse

How to use

You can run the module directly to extract data from an IXBRL file.

ixbrlparse example_file.html
# or
python -m ixbrlparse example_file.html

The various options for using this can be found through:

python -m ixbrlparse -h
# optional arguments:
#   -h, --help            show this help message and exit
#   --outfile OUTFILE     Where to output the file
#   --format {csv,json,jsonlines,jsonl}
#                         format of the output
#   --fields {numeric,nonnumeric,all}
#                         Which fields to output

You can also use as a python module (see the documentation for more details)

Development

The module is setup for development using hatch.

Run tests

Tests can be run with pytest:

hatch run test

Test coverage

Run tests then report on coverage

hatch run cov

Run tests then run a server showing where coverage is missing

hatch run cov-html

Run typing checks

hatch run lint:typing

Linting

Black and ruff should be run before committing any changes.

To check for any changes needed:

hatch run lint:style

To run any autoformatting possible:

hatch run lint:fmt

Run all checks at once

hatch run lint:all

Publish to pypi

hatch build
hatch publish
git tag v<VERSION_NUMBER>
git push origin v<VERSION_NUMBER>

Acknowledgements

Developed by David Kane of Kane Data Ltd

Originally developed for a project with Power to Change looking at how to extract data from financial documents of community businesses.

Thanks to the following users for their contributions:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ixbrlparse-0.7.2.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

ixbrlparse-0.7.2-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file ixbrlparse-0.7.2.tar.gz.

File metadata

  • Download URL: ixbrlparse-0.7.2.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.24.1

File hashes

Hashes for ixbrlparse-0.7.2.tar.gz
Algorithm Hash digest
SHA256 625bfeb83e90227b7c1d4092191f3a61b63d4cbdd22db863f285f14610b0d75f
MD5 69969fcfcfd025ee15e2c4dbd9568869
BLAKE2b-256 721362778865a761d6cd18db6fd3b9de7e52c83848a23bd123bf0a0da85491df

See more details on using hashes here.

File details

Details for the file ixbrlparse-0.7.2-py3-none-any.whl.

File metadata

  • Download URL: ixbrlparse-0.7.2-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.24.1

File hashes

Hashes for ixbrlparse-0.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3a0f454dfc6084d6b59358a280069e2577b762a11fabafc6087a83843c441463
MD5 5aa86a580e9a517e8dd73c5a749ff969
BLAKE2b-256 3c2cafd1225da76c42e2f422dc3647ee99c0f6b3660dbd289c6ce660af7ca399

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page