Metadata-Version: 2.4
Name: structural-lib-is456
Version: 0.16.5
Summary: IS 456 RC Beam Design Library (flexure, shear, ductile detailing, DXF export for RC beams)
Author: Pravin Surawase
License-Expression: MIT
Project-URL: Homepage, https://github.com/Pravin-surawase/structural_engineering_lib
Project-URL: Repository, https://github.com/Pravin-surawase/structural_engineering_lib
Project-URL: Documentation, https://github.com/Pravin-surawase/structural_engineering_lib/tree/main/docs
Project-URL: Changelog, https://github.com/Pravin-surawase/structural_engineering_lib/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/Pravin-surawase/structural_engineering_lib/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-benchmark; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: bandit; extra == "dev"
Requires-Dist: isort; extra == "dev"
Provides-Extra: dxf
Requires-Dist: ezdxf>=1.0; extra == "dxf"
Provides-Extra: render
Requires-Dist: ezdxf>=1.0; extra == "render"
Requires-Dist: matplotlib>=3.5; extra == "render"
Dynamic: license-file

# structural-lib-is456

IS 456 RC Beam Design Library (Python package).

**Version:** 0.16.5 (development preview)
**Status:** [![Python tests](https://github.com/Pravin-surawase/structural_engineering_lib/actions/workflows/python-tests.yml/badge.svg)](https://github.com/Pravin-surawase/structural_engineering_lib/actions/workflows/python-tests.yml)

> ⚠️ **Development Preview:** APIs may change until v1.0. For reproducible results, pin to a release tag.

For full project overview and usage examples, see the repository root `README.md`.

## Install

```bash
# Recommended (pinned to release tag)
pip install "structural-lib-is456 @ git+https://github.com/Pravin-surawase/structural_engineering_lib.git@v0.16.5#subdirectory=Python"

# With DXF support (pinned)
pip install "structural-lib-is456[dxf] @ git+https://github.com/Pravin-surawase/structural_engineering_lib.git@v0.16.5#subdirectory=Python"

# PyPI (latest — may differ from pinned tag)
pip install structural-lib-is456

# PyPI with DXF support
pip install "structural-lib-is456[dxf]"
```

## Extras

- `dxf`: DXF export support (`ezdxf`)
- `render`: planned DXF render to PNG/PDF (`matplotlib`) — not implemented yet
- `dev`: tooling for tests/formatting/linting

## Quick Start: CLI Usage

The library provides a unified command-line interface:

```bash
# Run beam design from CSV input
python -m structural_lib design input.csv -o results.json

# Generate bar bending schedule
python -m structural_lib bbs results.json -o bbs.csv

# Generate DXF drawings (requires ezdxf)
python -m structural_lib dxf results.json -o drawings.dxf

# Run complete job from specification
python -m structural_lib job job.json -o output/

# Critical set + report from job outputs
python -m structural_lib critical output/ --top 10 --format=csv -o critical.csv
python -m structural_lib report output/ --format=html -o report.html
```
The HTML report includes a cross-section SVG, input sanity heatmap, stability scorecard,
and units sentinel.

You can also generate reports directly from `design_results.json`:
```bash
python -m structural_lib report results.json --format=html -o report/ --batch-threshold 80
```

Run `python -m structural_lib --help` for more options.

## Insights export (v0.13.0+)

```bash
python -m structural_lib design input.csv -o results.json --insights
# Writes: results.json + <output_stem>_insights.json
```

Note: CLI insights currently export precheck + sensitivity + robustness; constructability may be null until CLI integration is completed.

## Quick Start: Python API

```python
from structural_lib import flexure, shear, api

# Single beam design
result = flexure.design_singly_reinforced(
    b=230, d=450, d_total=500, mu_knm=100, fck=25, fy=500
)
print(f"Ast required: {result.ast_required:.0f} mm²")

# Multi-case compliance check
report = api.check_beam_is456(
    units="IS456",
    b_mm=230, D_mm=500, d_mm=450,
    fck_nmm2=25, fy_nmm2=500,
    cases=[{"case_id": "ULS-1", "mu_knm": 100, "vu_kn": 80}]
)
print(f"Governing case: {report.governing_case_id}")
```

## New in v0.16.5

- **Library-first API wrappers:** `validate_*`, `compute_detailing`, `compute_bbs`, `export_bbs`, `compute_dxf`, `compute_report`, `compute_critical`.
- **New CLI helpers:** `validate` for schema checks and `detail` for detailing JSON export.
- **DXF/BBS quality gates:** mark consistency checks + DXF content tests + title block context.
- **Batch packaging (V08):** `report` accepts design results JSON and supports folder output with `--batch-threshold`.
- **Golden fixtures (V09):** Deterministic report outputs verified via golden-file tests.
