# Generated by SnakeBridge v0.12.0 - DO NOT EDIT MANUALLY # Regenerate with: mix compile # Library: dspy 3.1.2 # Python module: dspy # Python class: InferRules defmodule Dspy.InferRules do def __snakebridge_python_name__, do: "dspy" def __snakebridge_python_class__, do: "InferRules" def __snakebridge_library__, do: "dspy" @opaque t :: SnakeBridge.Ref.t() @spec new(list(term()), keyword()) :: {:ok, SnakeBridge.Ref.t()} | {:error, Snakepit.Error.t()} def new(args, opts \\ []) do {args, opts} = SnakeBridge.Runtime.normalize_args_opts(args, opts) SnakeBridge.Runtime.call_class(__MODULE__, :__init__, [] ++ List.wrap(args), opts) end @spec _bootstrap(SnakeBridge.Ref.t(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def _bootstrap(ref, opts \\ []) do SnakeBridge.Runtime.call_method(ref, :_bootstrap, [], opts) end @spec _bootstrap_one_example(SnakeBridge.Ref.t(), term(), list(term()), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def _bootstrap_one_example(ref, example, args, opts \\ []) do {args, opts} = SnakeBridge.Runtime.normalize_args_opts(args, opts) SnakeBridge.Runtime.call_method( ref, :_bootstrap_one_example, [example] ++ List.wrap(args), opts ) end @spec _prepare_predictor_mappings(SnakeBridge.Ref.t(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def _prepare_predictor_mappings(ref, opts \\ []) do SnakeBridge.Runtime.call_method(ref, :_prepare_predictor_mappings, [], opts) end @spec _prepare_student_and_teacher(SnakeBridge.Ref.t(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def _prepare_student_and_teacher(ref, student, teacher, opts \\ []) do SnakeBridge.Runtime.call_method(ref, :_prepare_student_and_teacher, [student, teacher], opts) end @spec _train(SnakeBridge.Ref.t(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def _train(ref, opts \\ []) do SnakeBridge.Runtime.call_method(ref, :_train, [], opts) end @spec compile(SnakeBridge.Ref.t(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def compile(ref, student, opts \\ []) do kw_keys = opts |> Keyword.keys() |> Enum.map(&to_string/1) missing_kw = ["trainset"] |> Enum.reject(&(&1 in kw_keys)) if missing_kw != [] do raise ArgumentError, "Missing required keyword-only arguments: " <> Enum.join(missing_kw, ", ") end SnakeBridge.Runtime.call_method(ref, :compile, [student], opts) end @spec evaluate_program(SnakeBridge.Ref.t(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def evaluate_program(ref, program, dataset, opts \\ []) do SnakeBridge.Runtime.call_method(ref, :evaluate_program, [program, dataset], opts) end @spec format_examples(SnakeBridge.Ref.t(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def format_examples(ref, demos, signature, opts \\ []) do SnakeBridge.Runtime.call_method(ref, :format_examples, [demos, signature], opts) end @spec get_params(SnakeBridge.Ref.t(), keyword()) :: {:ok, %{optional(String.t()) => term()}} | {:error, Snakepit.Error.t()} def get_params(ref, opts \\ []) do SnakeBridge.Runtime.call_method(ref, :get_params, [], opts) end @spec get_predictor_demos(SnakeBridge.Ref.t(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def get_predictor_demos(ref, trainset, predictor, opts \\ []) do SnakeBridge.Runtime.call_method(ref, :get_predictor_demos, [trainset, predictor], opts) end @spec induce_natural_language_rules(SnakeBridge.Ref.t(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def induce_natural_language_rules(ref, predictor, trainset, opts \\ []) do SnakeBridge.Runtime.call_method( ref, :induce_natural_language_rules, [predictor, trainset], opts ) end @spec update_program_instructions(SnakeBridge.Ref.t(), term(), term(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()} def update_program_instructions(ref, predictor, natural_language_rules, opts \\ []) do SnakeBridge.Runtime.call_method( ref, :update_program_instructions, [predictor, natural_language_rules], opts ) end end