Metadata-Version: 2.4
Name: fpy2
Version: 0.0.13
Summary: An embedded DSL for numerical computing
Author-email: Brett Saiki <bsaiki@cs.washington.edu>
License-Expression: MIT
Project-URL: Homepage, https://github.com/bksaiki/fpy
Project-URL: Issues, https://github.com/bksaiki/fpy/issues
Project-URL: Documentation, https://fpy.readthedocs.io/
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: titanfp==0.1.1
Requires-Dist: gmpy2==2.2
Provides-Extra: dev
Requires-Dist: hypothesis==6.135; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: sphinx; extra == "dev"
Requires-Dist: sphinx-rtd-theme; extra == "dev"
Dynamic: license-file

# FPy

An embedded Python DSL for specifying and simulating numerical algorithms.

Important links:
 - PyPI package: [fpy2](https://pypi.org/project/fpy2/)
 - Documentation: [fpy.readthedocs.io](https://fpy.readthedocs.io/)
 - GitHub: [fpy](https://github.com/bksaiki/fpy)

## Installation

The recommended way to install FPy is through `pip`.
FPy can also be installed from source for development.
The following instructions assume a `bash`-like shell.

### Installing with `pip`

Requirements:
 - Python 3.11 or later

To install the latest stable release of FPy, run:
```bash
pip install fpy2
```

### Installing from source

Requirements:
 - Python 3.11 or later
 - `make`

### Installation

If you do not have a Python virtual environment,
create one using
```bash
python3 -m venv .env/
```
and activate it using using
```bash
source .env/bin/activate
```
To install an instance of FPy for development, run:
```bash
pip install -e .[dev]
```
or with `make`, run
```bash
make install-dev
```

To uninstall FPy, run:
```bash
pip uninstall fpy2
```

### Testing

There are a number of tests that can be run through
the `Makefile` including
```bash
make lint
```
to ensure formatting and type safety;
```bash
make unittest
```
to run the unit tests;
```bash
make infratest
```
to run the infrastructure tests.
