Metadata-Version: 2.1
Name: retracesoftware-functional
Version: 0.3.15
Summary: High-performance functional utilities implemented as a Python C/C++ extension
Keywords: functional,programming,c-extension,utilities,performance
Author-Email: Retrace Software <info@retracesoftware.com>
Maintainer-Email: Retrace Software <info@retracesoftware.com>
License: Apache-2.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Project-URL: Homepage, https://github.com/retracesoftware/functional
Project-URL: Repository, https://github.com/retracesoftware/functional
Project-URL: Documentation, https://github.com/retracesoftware/functional
Project-URL: Bug Tracker, https://github.com/retracesoftware/functional/issues
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# retracesoftware-functional

High-performance functional utilities for Python, implemented as a native C/C++ extension.

## Features

- Call composition and chaining
- Lazy evaluation and side-effects helpers
- Predicate combinators (and/or/not, type/case/when)
- Memoization and caching primitives
- Argument transformation, partial application, method invocation
- Thread-local proxy helpers

Backed by efficient C++ implementations with Python 3.11 vectorcall support where possible.

## Installation

```bash
pip install retracesoftware-functional
```

## Pure-Python fallback

By default, `retracesoftware.functional` will use the native C/C++ extension when it is available, and
automatically fall back to a pure-Python implementation when the extension cannot be imported/loaded
(e.g. unsupported platform, missing wheel).

To **force** the pure-Python backend even when the native extension is available, set either:

- `RETRACESOFTWARE_FUNCTIONAL_PURE_PYTHON=1`
- `FUNCTIONAL_PURE_PYTHON=1`

## Quick start

```python
import retracesoftware.functional as fn

# Example: simple composition (see module docs for full API)
# ...
```

## License

Apache-2.0
