Skip to main content

A Python package that converts ILCD XML formats to their Python equivalents and export the same data back to XML.

Project description

pyilcd

PyPI Status Python Version License

Read the documentation at https://pyilcd.readthedocs.io/ Tests Codecov

pre-commit Black

Installation

You can install pyilcd via [pip] from [PyPI]:

$ pip install pyilcd

Usage

from pyilcd import parse_file_contact_dataset, validate_file_contact_dataset, save_ilcd_file, Defaults

# Override defaults if needed, else skip. Defaults are already set.
Defaults.config_defaults("config.ini")  # Replace with your own config file

# Validate the ContactDataset class against the ContactDataset schema.
validate_file_contact_dataset("data/invalid/sample_contact_invalid.xml")  # Replace with your own XML file
>> data/contact/sample_contact_invalid.xml:17:0:ERROR:SCHEMASV:SCHEMAV_CVC_DATATYPE_VALID_1_2_1: Element '{http://lca.jrc.it/ILCD/Common}class', attribute 'level': 'a' is not a valid value of the atomic type '{http://lca.jrc.it/ILCD/Common}LevelType'. data/contact/sample_contact_invalid.xml:17:0:ERROR:SCHEMASV:SCHEMAV_CVC_IDC: Element '{http://lca.jrc.it/ILCD/Common}class', attribute 'level': Warning: No precomputed value available, the value was either invalid or something strange happened.

# Parse the required XML file to ContactDataset class.
contactDataset = parse_file_contact_dataset("data/contact/sample_contact.xml")  # Replace with your own XML file
contactDataset
>> <Element {http://lca.jrc.it/ILCD/Contact}contactDataSet at 0x1c85f20c780>

## Change whatever attributes you need changing.
dataSetInformation = contactDataset.contactInformation.dataSetInformation
dataSetInformation.UUID
>> 00000000-0000-0000-0000-000000000000
dataSetInformation.UUID = "10000000-0000-0000-0000-000000000000"
dataSetInformation.UUID
>> 10000000-0000-0000-0000-000000000000

## Save final ContactDataset class as an XML file, make sure root directory exists.
save_ilcd_file(contactDataset, "out/sample_contact_new.xml")  # Replace with your own path

Contributing

Contributions are very welcome. To learn more, see the Contributor Guide.

License

Distributed under the terms of the GPL 3.0 license, pyilcd is free and open source software.

Issues

If you encounter any problems, please file an issue along with a detailed description.

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

pyilcd-6.3.1.tar.gz (119.5 kB view details)

Uploaded Source

Built Distribution

pyilcd-6.3.1-py3-none-any.whl (133.1 kB view details)

Uploaded Python 3

File details

Details for the file pyilcd-6.3.1.tar.gz.

File metadata

  • Download URL: pyilcd-6.3.1.tar.gz
  • Upload date:
  • Size: 119.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for pyilcd-6.3.1.tar.gz
Algorithm Hash digest
SHA256 68878f4bd0b746f150b0ac17f3947a454c58cc6b9fdea4be136c91815729e5ea
MD5 6adba742b13d4820bfcf8020122f6a91
BLAKE2b-256 09370725958ee9739d982627450931787a5661dff0356b26604e18abff8f5107

See more details on using hashes here.

File details

Details for the file pyilcd-6.3.1-py3-none-any.whl.

File metadata

  • Download URL: pyilcd-6.3.1-py3-none-any.whl
  • Upload date:
  • Size: 133.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for pyilcd-6.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0092d53c154c41656514adeeae6f0cc96c45259a4e7c605e6eabfe8d513dd39f
MD5 9c0c5a436c7bd5d31bf4d67c198aec86
BLAKE2b-256 7798d51e4a67bc4aefdc07a83989ce83e842ac57b0bc2a540ff0fefe13511488

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 Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page