Metadata-Version: 2.4
Name: pharmapy-org
Version: 0.1.0
Summary: A Pythonic framework for the digital analysis of pharmaceutical manufacturing processes.
Author-email: Daniel Casas-Orozco <dcasasor@purdue.edu>, Zachary Hillman <zachary.hillman18@gmail.com>
Maintainer-email: Zachary Hillman <zachary.hillman18@gmail.com>
License-Expression: BSD-3-Clause
Project-URL: Homepage, https://github.com/PharmaPy-org/PharmaPy
Project-URL: Repository, https://github.com/PharmaPy-org/PharmaPy
Keywords: pharmaceutical,process simulation,flowsheet,crystallization,chemical engineering
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Chemistry
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: matplotlib
Requires-Dist: pandas
Provides-Extra: julia
Requires-Dist: diffeqpy>=2.6; python_version >= "3.10" and extra == "julia"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Dynamic: license-file

# PharmaPy

PharmaPy is a pythonic library for the analysis of pharmaceutical manufacturing systems.

It allows to simulate the dynamics of standalone, drug substance unit operations in a variety of operating modes (batch, continuous, semibatch). Also, PharmaPy facilitates setting up and simulating pharmaceutical **flowsheets**, i.e., interconnected unit operations in a variety of operation modes, ranging from end-to-end batch, end-to-end continuous, and hybrid operation (combination of batch and/or continuous and semicontinuous unit operations).

## Getting started
Source code, examples and documentation sources are on [GitHub](https://github.com/PharmaPy-org/PharmaPy).

### Installation
PharmaPy is published on PyPI as `pharmapy-org`, and you import it as `PharmaPy`:

```
pip install pharmapy-org
```

```python
import PharmaPy
```

The only integrator this installs is scipy's. Unit operations built on `MultiPhaseVessel` (the `*_Refactored` modules) default to `ScipyBackend`. Two other solver backends are optional:

- **Assimulo (SUNDIALS CVode/IDA)** is used by `AssimuloBackend` and `AssimuloDAEBackend`. It is also needed by the legacy unit operations that have not been refactored yet: `Reactors`, `Crystallizers`, `Evaporators`, `Distillation`, `SolidLiquidSep`, `Containers`, `Drying_Model`, `DynamicExtraction` and `ThreePhaseSettler`. Install it from conda-forge, because the PyPI `assimulo` package is outdated and has no wheels:

  ```
  conda install -c conda-forge assimulo
  ```

- **Julia (DifferentialEquations.jl)** is used by `DiffeqpyBackend` and needs Python 3.10 or newer:

  ```
  pip install "pharmapy-org[julia]"
  python -c "import diffeqpy; diffeqpy.install()"
  ```

To get a development install with every backend, clone the [GitHub repository](https://github.com/PharmaPy-org/PharmaPy) and follow `install_instructions.txt`. It sets up a conda environment that includes Assimulo and installs PharmaPy in editable mode.
