Repository navigation
Expand file tree
/
Copy pathpy_params.hpp
More file actions
65 lines (48 loc) · 2.2 KB
/
Copy pathpy_params.hpp
File metadata and controls
65 lines (48 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/* SPDX-FileCopyrightText: 2025 LichtFeld Studio Authors
*
* SPDX-License-Identifier: GPL-3.0-or-later */
#pragma once
#include "core/parameters.hpp"
#include "core/property_registry.hpp"
#include <nanobind/nanobind.h>
namespace nb = nanobind;
namespace lfs::python {
[[nodiscard]] std::any resolve_optimization_default(
const core::prop::PropertyMeta& meta,
const core::param::OptimizationParameters& source);
[[nodiscard]] std::any resolve_optimization_builtin_default(
const core::prop::PropertyMeta& meta,
const core::param::OptimizationParameters& active);
class PyOptimizationParams {
public:
PyOptimizationParams() = default;
[[nodiscard]] nb::object get(const std::string& prop_id) const;
void set(const std::string& prop_id, nb::object value);
[[nodiscard]] nb::dict prop_info(const std::string& prop_id) const;
void reset(const std::string& prop_id);
[[nodiscard]] nb::object builtin_default(const std::string& prop_id) const;
[[nodiscard]] nb::list properties() const;
[[nodiscard]] nb::dict get_all_properties() const;
// Returns reference to ParamManager's active params (or throws if unavailable)
core::param::OptimizationParameters& params();
[[nodiscard]] const core::param::OptimizationParameters& params() const;
// Check if params are available
[[nodiscard]] bool has_params() const;
};
class PyDatasetConfig {
public:
PyDatasetConfig() = default;
[[nodiscard]] nb::object get(const std::string& prop_id) const;
void set(const std::string& prop_id, nb::object value);
[[nodiscard]] nb::dict prop_info(const std::string& prop_id) const;
[[nodiscard]] nb::list properties() const;
[[nodiscard]] nb::dict get_all_properties() const;
core::param::DatasetConfig& params();
[[nodiscard]] core::param::DatasetConfig params() const;
[[nodiscard]] bool has_params() const;
[[nodiscard]] bool can_edit() const;
[[nodiscard]] std::string init_path() const;
};
void register_dataset_properties();
void register_params(nb::module_& m);
} // namespace lfs::python