Skip to main content

Module importing ChemApp functions to Python

Project description

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:

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

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:

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

Install in editable mode:

pip install -e .

🧱 Building

To build distributions:

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 for details.


👤 Author

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


🔗 Links


💡 Acknowledgements

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chemapproxy-1.0.0.tar.gz (39.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

chemapproxy-1.0.0-py3-none-any.whl (40.0 kB view details)

Uploaded Python 3

chemapproxy-1.0.0-cp311-cp311-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11Windows x86-64

File details

Details for the file chemapproxy-1.0.0.tar.gz.

File metadata

  • Download URL: chemapproxy-1.0.0.tar.gz
  • Upload date:
  • Size: 39.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.11.7 Windows/10

File hashes

Hashes for chemapproxy-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2b03701059f6e6b76521d4ed6802811907487547629156d76303ac26e1c8749f
MD5 2ed6fe87bc15be5376879fc4274d6464
BLAKE2b-256 ba866d153c1dde3601306deba1bd88366f8fc09958abdc9b05b63105f40962d1

See more details on using hashes here.

File details

Details for the file chemapproxy-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: chemapproxy-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 40.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.11.7 Windows/10

File hashes

Hashes for chemapproxy-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9e18b675834244067f6074a94c15953f603f09665fb613bfb209db013bc31e06
MD5 fb9df3a3ce81cbce45e575a8b7908c61
BLAKE2b-256 e062a5e876a2c7c3d3c623a43e70fe018cba79312a46ba18997d8b59be860709

See more details on using hashes here.

File details

Details for the file chemapproxy-1.0.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: chemapproxy-1.0.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.11.7 Windows/10

File hashes

Hashes for chemapproxy-1.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d81531bf0bc80c9d1129e21c53d7857beceb18cbf41ed63e9179749414ef42fb
MD5 14fa439d80a35ed8f1484888271956bb
BLAKE2b-256 5fd7af37aa540ceaf28d809ab11954603b56fb97617594c51017776518efe651

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page