py.ml provides OCaml bindings for Python 2 and Python 3. This library
subsumes the pycaml library, which is no longer actively maintained.
The Python library is linked at runtime and the same executable can be run in
a Python 2 or a Python 3 environment. py.ml does not require any Python
library at compile time. The only compile time dependency is Stdcompat to
ensure compatibility with all OCaml compiler versions from 3.12.
Bindings are split in three modules:
- Py provides the initialization functions and some high-level bindings, with
error handling and naming conventions closer to OCaml usages.
- Pycaml provides a signature close to the old Pycaml module, so as to ease
migration.
- Pywrappers provides low-level bindings, which follow closely the conventions
of the C bindings for Python. Submodules `Pywrappers.Python2` and
`Pywrappers.Python3` contain version-specific bindings.