Metadata-Version: 2.4
Name: chemapproxy
Version: 1.0.0
Summary: Module importing ChemApp functions to Python
License-Expression: MIT
License-File: LICENSE
Keywords: thermochemistry,ffi binding,phase equilibrium,thermodynamics
Author: Evgenii Nekhoroshev
Author-email: evgnekhoroshev@gmail.com
Requires-Python: >=3.9,<3.12
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Education
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering :: Chemistry
Requires-Dist: chemformulapy
Requires-Dist: cython (==3.0.*)
Requires-Dist: numpy (>=1.23,<3)
Requires-Dist: pandas (==2.1.*)
Requires-Dist: pyparsing (>=3.1,<4)
Requires-Dist: pyyaml (==6.0.*)
Project-URL: Homepage, https://github.com/evnekdev/chemapproxy
Project-URL: Issues, https://github.com/evnekdev/chemapproxy/issues
Project-URL: Repository, https://github.com/evnekdev/chemapproxy
Description-Content-Type: text/markdown

# chemapproxy

> Python bindings and proxy interface for ChemApp — enabling thermochemical and phase equilibrium calculations directly from Python.

---

## 🚀 Overview

**chemapproxy** is a Python package that provides a lightweight interface to **ChemApp**, a widely used thermochemical calculation engine. It allows you to:

- Access ChemApp functions from Python
- Perform thermodynamic and phase equilibrium calculations
- Integrate ChemApp workflows with NumPy, Pandas, and modern Python tooling
- Extend or customize bindings for advanced use cases

This package is designed for **scientists, engineers, and researchers** working in:

- Thermodynamics
- Metallurgy
- Materials science
- Chemical engineering

---

## ✨ Features

- 🔗 Direct bindings to ChemApp core functions
- ⚡ Optional integration with official `chemapp` Python package (if installed)
- 🧱 Modular structure (`raw`, `entities`, `custom`)
- 🧮 NumPy & Pandas compatibility
- 🛠 Cython-based performance optimizations
- 🧩 Extensible architecture for custom workflows

---

## 📦 Installation

Install from PyPI:

```bash
pip install chemapproxy
```

### Requirements

- Python **3.9 – 3.11**
- NumPy
- Pandas
- Cython
- PyYAML
- pyparsing
- chemformulapy

> ⚠️ **Note:** ChemApp binaries (DLLs) are required for full functionality and must be available on your system.

---

## ⚙️ Setup

Ensure that ChemApp dynamic libraries are accessible:

- On Windows: `.dll` files (e.g., `ca_vc_e_x64.dll`)
- Add them to your system `PATH` or project directory

---

## 🧪 Quick Example

```python
import chemapproxy.raw as ca

# Example: check architecture
print("Running on 64-bit:", ca.isx64())

# Further ChemApp calls depend on your data and setup
```

---

## 🧩 Project Structure

```
chemapproxy/
├── src/chemapproxy/
│   ├── raw.py        # Low-level ChemApp bindings
│   ├── entities.py   # Data structures and abstractions
│   ├── custom.py     # Higher-level utilities
│   └── __init__.py
├── pyproject.toml
├── setup.py
└── README.md
```

---

## 🔌 Integration with ChemApp

If the official ChemApp Python package (`chemapp.basic`) is installed,  
`chemapproxy` will automatically detect and use it as a backend.

Otherwise, it falls back to direct dynamic library bindings via `ctypes`.

---

## 🛠 Development

Clone the repository:

```bash
git clone https://github.com/evnekdev/chemapproxy.git
cd chemapproxy
```

Install in editable mode:

```bash
pip install -e .
```

---

## 🧱 Building

To build distributions:

```bash
python -m build
```

Wheels and source distributions will be available in `dist/`.

---

## 📊 Use Cases

- Phase equilibrium simulations
- Thermodynamic database evaluation
- Metallurgical process modeling
- Research and teaching in thermochemistry

---

## ⚠️ Limitations

- Requires external ChemApp libraries
- Platform-specific binaries (especially Windows-focused)
- Some low-level functions may require domain knowledge

---

## 🗺 Roadmap

- Improved documentation and examples
- Cross-platform support enhancements
- Higher-level API abstractions
- Expanded test coverage

---

## 🤝 Contributing

Contributions are welcome!

1. Fork the repository
2. Create a feature branch
3. Submit a pull request

---

## 📄 License

MIT License — see [`LICENSE`](LICENSE) for details.

---

## 👤 Author

**Evgenii Nekhoroshev**  
📧 evgnekhoroshev@gmail.com  
🔗 https://github.com/evnekdev

---

## 🔗 Links

- Homepage: https://github.com/evnekdev/chemapproxy
- Issues: https://github.com/evnekdev/chemapproxy/issues

---

## 💡 Acknowledgements

- ChemApp by GTT-Technologies
- Scientific Python ecosystem (NumPy, Pandas)

