Metadata-Version: 2.3
Name: lcax
Version: 1.7.0
Requires-Dist: cffi
Requires-Dist: pydantic >=1.8.2, <2.0.0
Requires-Dist: mkdocs-material >=8.1.4, <9.0.0 ; extra == 'doc'
Requires-Dist: mdx-include >=1.4.1, <2.0.0 ; extra == 'doc'
Requires-Dist: datamodel-code-generator ; extra == 'codegen'
Requires-Dist: pytest ; extra == 'tests'
Requires-Dist: pytest-datafixtures ; extra == 'tests'
Provides-Extra: doc
Provides-Extra: codegen
Provides-Extra: tests
License-File: LICENSE
License-File: LICENSE
Summary: LCAx is an open, machine and human-readable data format for exchanging LCA results.
Home-Page: https://lcax.kongsgaard.eu
Author: Christian Kongsgaard <christian@kongsgaard.eu>
Author-email: Christian Kongsgaard <christian@kongsgaard.eu>
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: homepage, https://lcax.kongsgaard.eu
Project-URL: documentation, https://lcax.kongsgaard.eu
Project-URL: repository, https://github.com/ocni-dtu/lcax

# LCAx

The goal for LCAx is to make an open, machine and human-readable data format for exchanging LCA results,
EPD's and assemblies.

We propose a simple three level data format with information on project, assembly and EPD level,
written in an open data format and paired with a validator for a more robust and standardized format.
We intend to create connections to existing tools and API’s.

Our goal is making LCA calculations more accessible, transparent, and open.

![LCAx](./docs/assets/benchmark.png)

# Rust

## Install Rust
Head over to Rust's installation [page](https://www.rust-lang.org/tools/install)

## Install Rust Dependencies
```bash
cargo update
```

## Run Rust Tests

```bash
cargo test --package lcax --target x86_64-unknown-linux-gnu
```

## Export JSON Schema
```bash
cargo run --target x86_64-unknown-linux-gnu --bin export-schema > lcax.schema.json
```

# Python

## Install Python Dependencies
```bash
pip install maturin venv
```

## Run Python Tests

```bash
maturin develop --extras tests,codegen --target x86_64-unknown-linux-gnu
source .venv/bin/activate .

datamodel-codegen \
--input lcax.schema.json \
--input-file-type jsonschema \
--output packages/python/src/lcax/pydantic.py
          
cd packages/python
pytest tests/
```

## Build Documentation

```bash
maturin develop --extras doc --target x86_64-unknown-linux-gnu
mkdocs serve
```

# JavaScript/TypeScript

## Build JS Package

```bash
wasm-pack build --features jsbindings
mv pkg/lcax* packages/javascript/src
```

## Run JS Tests
```bash
npm run test
```
