| | |
| |
|
| | #pragma once |
| |
|
| | #include <nanobind/nanobind.h> |
| | #include <nanobind/stl/optional.h> |
| | #include <nanobind/stl/string.h> |
| | #include <nanobind/stl/unordered_map.h> |
| | #include <nanobind/stl/variant.h> |
| |
|
| | #include <optional> |
| | #include <string> |
| | #include <unordered_map> |
| | #include <variant> |
| | #include "mlx/io.h" |
| |
|
| | namespace mx = mlx::core; |
| | namespace nb = nanobind; |
| |
|
| | using LoadOutputTypes = std::variant< |
| | mx::array, |
| | std::unordered_map<std::string, mx::array>, |
| | mx::SafetensorsLoad, |
| | mx::GGUFLoad>; |
| |
|
| | mx::SafetensorsLoad mlx_load_safetensor_helper( |
| | nb::object file, |
| | mx::StreamOrDevice s); |
| | void mlx_save_safetensor_helper( |
| | nb::object file, |
| | nb::dict d, |
| | std::optional<nb::dict> m); |
| |
|
| | mx::GGUFLoad mlx_load_gguf_helper(nb::object file, mx::StreamOrDevice s); |
| |
|
| | void mlx_save_gguf_helper( |
| | nb::object file, |
| | nb::dict d, |
| | std::optional<nb::dict> m); |
| |
|
| | LoadOutputTypes mlx_load_helper( |
| | nb::object file, |
| | std::optional<std::string> format, |
| | bool return_metadata, |
| | mx::StreamOrDevice s); |
| | void mlx_save_helper(nb::object file, mx::array a); |
| | void mlx_savez_helper( |
| | nb::object file, |
| | nb::args args, |
| | const nb::kwargs& kwargs, |
| | bool compressed = false); |
| |
|