# // this piece of code is included in the documentation
# use arrow_udf_python::{Runtime, CallMode};
# use arrow_schema::{DataType, Field, Schema};
# use arrow_array::{RecordBatch, Int32Array};
# use std::sync::Arc;
# let mut runtime = Runtime::new().unwrap();
# runtime
# .add_function(
# "gcd",
# DataType::Int32,
# CallMode::ReturnNullOnNullInput,
# r#"
# def gcd(a: int, b: int) -> int:
# while b:
# a, b = b, a % b
# return a
# "#,
# )
# .unwrap();
# runtime
# .add_function(
# "series",
# DataType::Int32,
# CallMode::ReturnNullOnNullInput,
# r#"
# def series(n: int):
# for i in range(n):
# yield i
# "#,
# )
# .unwrap();