package pyml_bindgen

  1. Overview
  2. Docs
Generate pyml bindings from OCaml value specifications

Install

Dune Dependency

Authors

Maintainers

Sources

0.4.1.tar.gz
md5=bfa32570ab50fe360974fe7a4c9ff504
sha512=496beb6364654ad09be5d0f8ae01016a01163105341ed57f5f27eb430c67cea4e6e5aa913375557094d4acf1e29fb4908cab8552b8ae38f50f1f89f7562d4821

doc/CHANGELOG.html

Unreleased

0.4.1 (2022-08-01)

Fixed

  • Fixed cram dependency specification

0.4.0 (2022-07-31)

Added

  • Add helper scripts for binding cyclic Python classes

    • gen_multi is a wrapper for pyml_bindgen that takes a TSV file of command line specs, and runs pyml_bindgen on each of them.
    • combine_rec_modules is a small program that takes generated OCaml modules and "converts" them into recursive modules
    • You can combine these two to make it easier to generate recursive modules, which can be useful for binding Python classes that reference each other.
  • Add support for py_arg_name attribute. It lets you use different argument names in the OCaml bindings than used in the Python functions.
  • Add --split-caml-module option to split generated module into separate ml and mli files.
  • Add pyml_bindgen-dev.opam for easier installation of development dependencies.

0.3.1 (2022-03-23)

Changed

  • Reduce number of dependencies (including when installing from the GitHub repository).

    • Use re instead of re2 for regular expressions.
    • Drop some of the dev dependencies from the opam file.

0.3.0 (2022-03-18)

Added

  • Allow nested module types in val specs (e.g., Food.Dessert.Apple_pie.t)
  • Allow using Pytypes.pyobject and Py.Object.t in val specs
  • Better error messages when parser or py_fun creation fails
  • You can now use attributes on value specifications.

    • Currently the only one available is py_fun_name.
    • It allows you to decouple the Python method name and the generated OCaml function name.
    • See the examples directory on GitHub for more info.
  • You can now bind tuples with 2, 3, 4, or 5 elements.

    • They can be passed in as arguments, or returned from functions.
    • Only basic types and Python objects are allowed in tuples.
    • You can also put tuples inside of collections, e.g., (int * string) list, but not Options or Or_errors.

Changed

  • Updated docs
  • Update to dune 3
  • Update to cmdliner 1.1

Fixed

  • Fix some small otype bugs

0.2.0 (2022-02-02)

  • Allow embedding Python source directly into generated OCaml module with the --embed-python-source CLI option. See this issue for more info.
  • Fix bug in val spec parsing
  • Update docs
  • Add full examples in the examples directory

0.1.2 (2021-12-07)

  • Use specific ocamlformat version for the tests. See this Opam repository pull request for more info.

0.1.1 (2021-11-04)

  • Update lower bounds for dependencies
  • Fix tests to work with BusyBox/Alpine grep command

0.1.0 (2021-10-31)

Initial release!

OCaml

Innovation. Community. Security.