Metadata-Version: 2.4
Name: csm-erfh5-py
Version: 0.1.2
Summary: A Python library for reading ERF (ESI Result File) data for CAE engineers
Author-email: Keysight Technologies <bhadrinath.bhojanala@keysight.com>, Keysight Technologies <sagar.vilasrao-nilkanth@keysight.com>
Maintainer-email: Keysight Technologies <bhadrinath.bhojanala@keysight.com>, Keysight Technologies <sagar.vilasrao-nilkanth@keysight.com>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/Keysight/csm-erfh5-py/
Project-URL: Documentation, https://github.com/Keysight/csm-erfh5-py#readme
Project-URL: Repository, https://github.com/Keysight/csm-erfh5-py.git
Project-URL: Issues, https://github.com/Keysight/csm-erfh5-py/issues
Keywords: erf,cae,engineering,simulation,hdf5,results
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.20.0
Requires-Dist: h5py>=3.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=22.0.0; extra == "dev"
Requires-Dist: flake8>=5.0.0; extra == "dev"
Requires-Dist: mypy>=0.990; extra == "dev"
Dynamic: license-file

# csm-erfh5-py

A Python library for reading ERF (ESI Result File) data, designed for CAE engineers working with simulation results stored in HDF5 format.

## Features

- High-level Python API for reading ERF data
- Support for multi-state result parameters
- Built on top of HDF5 (h5py) for efficient data access
- Type-annotated for better IDE support
- Designed for non-modular data structures

## Installation

### From PyPI (once published)

```bash
pip install csm-erfh5-py
```

### From Source

```bash
git clone https://github.com/Keysight/csm-erfh5-py.git
cd csm-erfh5-py
pip install -e .
```

### Development Installation

```bash
pip install -e ".[dev]"
```

## Requirements

- Python >= 3.8
- numpy >= 1.20.0
- h5py >= 3.0.0

## Quick Start

```python
from csm_erfh5_py import ERFH5Reader, ERFH5MultiStateResultParams

# Create a reader instance
reader = ERFH5Reader("path/to/your/erf/file.erfh5")

# Read multi-state results
entity_type = "NODE"
result_name = "Translational_Acceleration"
params = ERFH5MultiStateResultParams()
results, index_values = reader.get_multi_state_result_values(entity_type, result_name, params)
```

## Public API

Only these classes are part of the supported public API:

```python
from csm_erfh5_py import ERFH5Reader, ERFH5MultiStateResultParams
```

`core/` and `io/` modules are internal implementation details and are not intended for direct user imports.

For more examples, see the [Examples](examples/) directory.

## Project Structure

```
csm-erfh5-py/
├── src/
│   └── csm_erfh5_py/        # Python package source code
│       ├── api/             # Public API (user-facing classes)
│       ├── core/            # Internal (not part of public API)
│       └── io/              # Internal (not part of public API)
├── examples/                # Usage examples
├── docs/                     # Documentation
├── pyproject.toml
└── README.md
```

## Supported Features

✅ Reading of Results (non-modular data)  
✅ Multi-state result parameters  
❌ Reading of Mesh info (not supported)  
❌ True Modular Data (not supported)  
❌ Encryption data (not supported)  
❌ Adaptive data with collectors (not supported)  
❌ Unit system support (not supported)

## Development

### Running Tests

```bash
pytest tests/
```

### Code Formatting

```bash
black .
```

### Type Checking

```bash
mypy src/csm_erfh5_py/
```

## Publishing Workflow

For PyPI publishing, use `.github/workflows/publish.yml`.
See [SETUP_GUIDE.md](SETUP_GUIDE.md) for the current release flow.

## Version History

- **0.1.2** - See CHANGELOG for details

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.

## Authors

- Keysight Technologies

## Contact

For questions or support, please open an issue on GitHub.

## Security Reporting

To report product cybersecurity issues, contact:
- [productsecurity@keysight.com](mailto:productsecurity@keysight.com)

For further details:
- [Report a Product Cybersecurity Issue | Keysight](https://www.keysight.com/us/en/about/quality-and-security/security/product-and-solution-cyber-security/report-a-product-cybersecurity-issue.html)

## Acknowledgements

This library is designed to work with ERF (ESI Result File) format for CAE engineering applications.

See the full third-party dependency credits in [Acknowledgements](docs/acknowledgements.md).
