A modular and extensible Python pipeline for processing DLTINS data.
- Parse XML metadata files to extract DLTINS download links
- Download DLTINS ZIP archives and extract XML content
- Convert DLTINS XML content into structured CSV format
- Enrich data by adding custom analysis columns
- Export data to local or remote storage systems using
fsspec
- Python 3.10+
pandasrequestslxmlfsspecpandas-stubs
To support specific cloud systems, install additional fsspec plugins as needed:
- Amazon S3:
pip install s3fs - Google Cloud Storage:
pip install gcsfs - Azure Blob Storage:
pip install adlfs
Development Dependencies:
pytestpytest-covpytest-mockruffmypypre-committypes-requests
poetry installpoetry run pytest --cov=dltins_processor --cov-report=xml --cov-report=termDownloads XML content from a specified URL.
from dltins_processor import XMLDownloader
xml_download = XMLDownloader('https://example.com')
xml_file = xml_download.download()Parses an XML metadata file and extracts DLTINS download links.
from dltins_processor import DLTINSLinksParser
xml_parser = DLTINSLinksParser(xml_file)
link = xml_parser.get_specific_dltins_link(1)Downloads and extracts a ZIP file containing the DLTINS XML from a given URL.
from dltins_processor import DLTINSDownloader
downloader = DLTINSDownloader(zip_link=link)
xml_content = downloader.extract_file()Converts a DLTINS XML string into a CSV file and a DataFrame.
from dltins_processor import FileConverter
converter = FileConverter(xml_content, csv_dir="./output")
df = converter.convert_to_csv()Adds two columns to a DLTINS DataFrame:
a_count: Number of lowercase 'a' characters in theFinInstrmGnlAttrbts.FullNmcolumn.contains_a: 'YES' ifa_count> 0, otherwise 'NO'.
from dltins_processor import AddACountsColumns
transformer = AddACountsColumns("./output", "./output")
transformer.add_a_counts_columns()Saves a CSV file into a cloud or local file storage system using fsspec.
from dltins_processor import CloudStorage
storage = CloudStorage(
csv_dir="./output",
system="file", # or "s3", "gcs", etc.
storage_path="./backup/transformed_dltins_file.csv"
)
storage.run()Alexandre Oliveira – @ao60337