XBRL-XML to XBRL-CSV converter for EBA Taxonomy (version 4.1)
Project description
Overview
XBridge is a Python library for converting XBRL-XML files into XBRL-CSV files using the EBA (European Banking Authority) taxonomy. It provides a simple, reliable way to transform regulatory reporting data from XML format to CSV format.
The library currently supports EBA Taxonomy version 4.2 and includes support for DORA (Digital Operational Resilience Act) CSV conversion. The library must be updated with each new EBA taxonomy version release.
Key Features
XBRL-XML to XBRL-CSV Conversion: Seamlessly convert XBRL-XML instance files to XBRL-CSV format
Command-Line Interface: Quick conversions without writing code using the xbridge CLI
Python API: Programmatic conversion for integration with other tools and workflows
EBA Taxonomy 4.2 Support: Built for the latest EBA taxonomy specification
DORA CSV Conversion: Support for Digital Operational Resilience Act reporting
Configurable Validation: Flexible filing indicator validation with strict or warning modes
Decimal Handling: Intelligent decimal precision handling with configurable options
Type Safety: Fully typed codebase with MyPy strict mode compliance
Python 3.9+: Supports Python 3.9 through 3.13
Prerequisites
Python: 3.9 or higher
7z Command-Line Tool: Required for loading compressed taxonomy files (7z or ZIP format)
On Ubuntu/Debian: sudo apt-get install p7zip-full
On macOS: brew install p7zip
On Windows: Download from 7-zip.org
Installation
Install XBridge from PyPI using pip:
pip install eba-xbridge
For development installation, see CONTRIBUTING.md.
Quick Start
XBridge offers two ways to convert XBRL-XML files to XBRL-CSV: a command-line interface (CLI) for quick conversions, and a Python API for programmatic use.
Command-Line Interface
The CLI provides a quick way to convert files without writing code:
# Basic conversion (output to same directory as input)
xbridge instance.xbrl
# Specify output directory
xbridge instance.xbrl --output-path ./output
# Continue with warnings instead of errors
xbridge instance.xbrl --no-strict-validation
# Include headers as datapoints
xbridge instance.xbrl --headers-as-datapoints
CLI Options:
--output-path PATH: Output directory (default: same as input file)
--headers-as-datapoints: Treat headers as datapoints (default: False)
--strict-validation: Raise errors on validation failures (default: True)
--no-strict-validation: Emit warnings instead of errors
For more CLI options, run xbridge --help.
Python API - Basic Conversion
Convert an XBRL-XML instance file to XBRL-CSV using the Python API:
from xbridge.api import convert_instance
# Basic conversion
input_path = "path/to/instance.xbrl"
output_path = "path/to/output"
convert_instance(input_path, output_path)
The converted XBRL-CSV files will be saved as a ZIP archive in the output directory.
Python API - Advanced Usage
Customize the conversion with additional parameters:
from xbridge.api import convert_instance
# Conversion with custom options
convert_instance(
instance_path="path/to/instance.xbrl",
output_path="path/to/output",
headers_as_datapoints=True, # Treat headers as datapoints
validate_filing_indicators=True, # Validate filing indicators
strict_validation=False, # Emit warnings instead of errors for orphaned facts
)
Python API - Handling Warnings
XBridge emits structured warnings that can be filtered or turned into errors from your code. The most common ones are:
IdentifierPrefixWarning: Unknown entity identifier prefix; XBridge falls back to rs.
FilingIndicatorWarning: Filing indicator inconsistencies; some facts are excluded.
To capture these warnings when using convert_instance:
import warnings
from xbridge.api import convert_instance
from xbridge.exceptions import XbridgeWarning, FilingIndicatorWarning
input_path = "path/to/instance.xbrl"
output_path = "path/to/output"
with warnings.catch_warnings(record=True) as caught:
# Ensure all xbridge warnings are captured
warnings.simplefilter("always", XbridgeWarning)
zip_path = convert_instance(
instance_path=input_path,
output_path=output_path,
validate_filing_indicators=True,
strict_validation=False, # Warnings instead of errors for orphaned facts
)
filing_warnings = [
w for w in caught if issubclass(w.category, FilingIndicatorWarning)
]
for w in filing_warnings:
print(f"Filing indicator warning: {w.message}")
To treat all XBridge warnings as errors:
import warnings
from xbridge.api import convert_instance
from xbridge.exceptions import XbridgeWarning
with warnings.catch_warnings():
warnings.simplefilter("error", XbridgeWarning)
convert_instance("path/to/instance.xbrl", "path/to/output")
Loading an Instance
Load and inspect an XBRL-XML instance without converting:
from xbridge.api import load_instance
instance = load_instance("path/to/instance.xbrl")
# Access instance properties
print(f"Entity: {instance.entity}")
print(f"Period: {instance.period}")
print(f"Facts count: {len(instance.facts)}")
How XBridge Works
XBridge performs the conversion in several steps:
Load the XBRL-XML instance: Parse and extract facts, contexts, scenarios, and filing indicators
Load the EBA taxonomy: Access pre-processed taxonomy modules containing tables and variables
Match and validate: Join instance facts with taxonomy definitions
Generate CSV files: Create XBRL-CSV files including:
Data tables with facts and dimensions
Filing indicators showing reported tables
Parameters (entity, period, base currency, decimals)
Package output: Bundle all CSV files into a ZIP archive
Output Structure
The output ZIP file contains:
META-INF/: JSON report package metadata
reports/: CSV files for each reported table
filing-indicators.csv: Table reporting indicators
parameters.csv: Report-level parameters
Documentation
Comprehensive documentation is available at docs.xbridge.meaningfuldata.eu.
The documentation includes:
API Reference: Complete API documentation
Quickstart Guide: Step-by-step tutorials
Technical Notes: Architecture and design details
FAQ: Frequently asked questions
Taxonomy Loading
If you need to work with the EBA taxonomy directly, you can load it using:
python -m xbridge.taxonomy_loader --input_path path/to/FullTaxonomy.7z
This generates an index.json file containing module references and pre-processed taxonomy data.
Configuration Options
convert_instance Parameters
instance_path (str | Path): Path to the XBRL-XML instance file
output_path (str | Path | None): Output directory for CSV files (default: current directory)
headers_as_datapoints (bool): Treat table headers as datapoints (default: False)
validate_filing_indicators (bool): Validate that facts belong to reported tables (default: True)
strict_validation (bool): Raise errors on validation failures; if False, emit warnings (default: True)
Troubleshooting
Common Issues
- 7z command not found
Install the 7z command-line tool using your system’s package manager (see Prerequisites).
- Taxonomy version mismatch
Ensure you’re using the correct version of XBridge for your taxonomy version. XBridge 1.5.x supports EBA Taxonomy 4.1.
- Orphaned facts warning/error
Facts that don’t belong to any reported table. Set strict_validation=False to continue with warnings instead of errors.
- Decimal precision issues
XBridge automatically handles decimal precision from the taxonomy. Check the parameters.csv file for applied decimal settings.
For more issues, see our FAQ or open an issue.
Contributing
We welcome contributions! Please see CONTRIBUTING.md for:
Development setup instructions
Code style guidelines
Testing requirements
Pull request process
Before contributing, please read our Code of Conduct.
Changelog
See CHANGELOG.md for a detailed history of changes.
Support
Documentation: https://docs.xbridge.meaningfuldata.eu
Issue Tracker: https://github.com/Meaningful-Data/xbridge/issues
Email: info@meaningfuldata.eu
Company: https://www.meaningfuldata.eu/
Security
For security issues, please see our Security Policy.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Acknowledgments
This project is designed to work with the European Banking Authority (EBA) taxonomy for regulatory reporting
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eba_xbridge-1.5.0rc6.tar.gz.
File metadata
- Download URL: eba_xbridge-1.5.0rc6.tar.gz
- Upload date:
- Size: 12.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd757be14e08074e7aaa6c3678777c16b99f7961bb8a0a6ce9fe6dfc8bb65d12
|
|
| MD5 |
df7df18fb529a05da93d525a2b4d3d40
|
|
| BLAKE2b-256 |
b29b03cb60673de8c8cd3bb823ef73610cd5f641d9bba3a2b06509d5cb33c479
|
File details
Details for the file eba_xbridge-1.5.0rc6-py3-none-any.whl.
File metadata
- Download URL: eba_xbridge-1.5.0rc6-py3-none-any.whl
- Upload date:
- Size: 15.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75ad700085b01a5e43b9fe134d09640ef3febd606d438f3b5b47b516410b65fd
|
|
| MD5 |
83fbfa7d64bd4b06a49d6b15d052b5c5
|
|
| BLAKE2b-256 |
13f818c7b3c574a6404948e08c2074d85fa9038a278687322313354c39f4caac
|