Metadata-Version: 2.4
Name: ductile-loads
Version: 1.2.1
Summary: Loads processing tool for structural analysis — certified under DQMS
Author: Alex Pradas
License-Expression: MIT
License-File: LICENSE
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.13
Requires-Dist: pydantic
Provides-Extra: all
Requires-Dist: matplotlib; extra == 'all'
Requires-Dist: rich; extra == 'all'
Provides-Extra: charts
Requires-Dist: matplotlib; extra == 'charts'
Provides-Extra: dev
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Provides-Extra: display
Requires-Dist: rich; extra == 'display'
Provides-Extra: docs
Requires-Dist: mkdocs-llmstxt; extra == 'docs'
Requires-Dist: mkdocs-material; extra == 'docs'
Requires-Dist: mkdocs<2; extra == 'docs'
Requires-Dist: mkdocstrings[python]; extra == 'docs'
Description-Content-Type: text/markdown

# ductile-loads

[![PyPI](https://img.shields.io/pypi/v/ductile-loads)](https://pypi.org/project/ductile-loads/)
[![Python](https://img.shields.io/pypi/pyversions/ductile-loads)](https://pypi.org/project/ductile-loads/)
[![Tests](https://github.com/alex-pradas/ductile-loads/actions/workflows/publish.yml/badge.svg)](https://github.com/alex-pradas/ductile-loads/actions/workflows/publish.yml)
[![codecov](https://codecov.io/gh/alex-pradas/ductile-loads/graph/badge.svg)](https://codecov.io/gh/alex-pradas/ductile-loads)
[![Docs](https://github.com/alex-pradas/ductile-loads/actions/workflows/docs.yml/badge.svg)](https://alex-pradas.github.io/ductile-loads)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

Loads processing tool for structural analysis, certified under the Design Quality Management System (DQMS).

This is a sample tool as part of the DUCTILE agentic orchestration paper. See the [DUCTILE repository](https://github.com/alex-pradas/DUCTILE) or the paper (DOI: TBD) for context.

## Documentation

Full documentation: [alex-pradas.github.io/ductile-loads](https://alex-pradas.github.io/ductile-loads)

## Install

```bash
uv add ductile-loads
```

With optional display/chart features:

```bash
uv add ductile-loads[all]
```

## Quick Start

```python
from ductile_loads import LoadSet

# Load data
ls = LoadSet.read_json("supplier_forces.json")

# Convert units
ls = ls.convert_to("N")

# Envelope (downselect critical load cases)
ls_env = ls.envelope()

# Export to ANSYS
ls_env.to_ansys(folder_path="design_loads", name_stem="design_load")

# Get extremes
extremes = ls_env.get_point_extremes(output="envelope_extremes.json")
```

## License

MIT
