@@ -51,7 +51,7 @@ mlirApiObjectToCapsule(nanobind::handle apiObject) {
51
51
nanobind::object api =
52
52
nanobind::getattr (apiObject, MLIR_PYTHON_CAPI_PTR_ATTR, nanobind::none ());
53
53
if (api.is_none ())
54
- return std::nullopt ;
54
+ return {} ;
55
55
return api;
56
56
}
57
57
@@ -65,10 +65,8 @@ template <>
65
65
struct type_caster <MlirAffineMap> {
66
66
NB_TYPE_CASTER (MlirAffineMap, const_name(" MlirAffineMap" ))
67
67
bool from_python (handle src, uint8_t flags, cleanup_list *cleanup) noexcept {
68
- std::optional<nanobind::object> capsule = mlirApiObjectToCapsule (src);
69
- if (!capsule)
70
- return false ;
71
- value = mlirPythonCapsuleToAffineMap (capsule.value ().ptr ());
68
+ if (auto capsule = mlirApiObjectToCapsule (src))
69
+ value = mlirPythonCapsuleToAffineMap (capsule->ptr ());
72
70
return !mlirAffineMapIsNull (value);
73
71
}
74
72
static handle from_cpp (MlirAffineMap v, rv_policy,
@@ -87,10 +85,8 @@ template <>
87
85
struct type_caster <MlirAttribute> {
88
86
NB_TYPE_CASTER (MlirAttribute, const_name(" MlirAttribute" ))
89
87
bool from_python (handle src, uint8_t flags, cleanup_list *cleanup) noexcept {
90
- std::optional<nanobind::object> capsule = mlirApiObjectToCapsule (src);
91
- if (!capsule)
92
- return false ;
93
- value = mlirPythonCapsuleToAttribute (capsule.value ().ptr ());
88
+ if (auto capsule = mlirApiObjectToCapsule (src))
89
+ value = mlirPythonCapsuleToAttribute (capsule->ptr ());
94
90
return !mlirAttributeIsNull (value);
95
91
}
96
92
static handle from_cpp (MlirAttribute v, rv_policy,
@@ -110,10 +106,8 @@ template <>
110
106
struct type_caster <MlirBlock> {
111
107
NB_TYPE_CASTER (MlirBlock, const_name(" MlirBlock" ))
112
108
bool from_python (handle src, uint8_t flags, cleanup_list *cleanup) noexcept {
113
- std::optional<nanobind::object> capsule = mlirApiObjectToCapsule (src);
114
- if (!capsule)
115
- return false ;
116
- value = mlirPythonCapsuleToBlock (capsule.value ().ptr ());
109
+ if (auto capsule = mlirApiObjectToCapsule (src))
110
+ value = mlirPythonCapsuleToBlock (capsule->ptr ());
117
111
return !mlirBlockIsNull (value);
118
112
}
119
113
};
@@ -133,7 +127,7 @@ struct type_caster<MlirContext> {
133
127
.attr (" current" );
134
128
}
135
129
std::optional<nanobind::object> capsule = mlirApiObjectToCapsule (src);
136
- value = mlirPythonCapsuleToContext (capsule. value (). ptr ());
130
+ value = mlirPythonCapsuleToContext (capsule-> ptr ());
137
131
return !mlirContextIsNull (value);
138
132
}
139
133
};
@@ -143,10 +137,8 @@ template <>
143
137
struct type_caster <MlirDialectRegistry> {
144
138
NB_TYPE_CASTER (MlirDialectRegistry, const_name(" MlirDialectRegistry" ))
145
139
bool from_python (handle src, uint8_t flags, cleanup_list *cleanup) noexcept {
146
- std::optional<nanobind::object> capsule = mlirApiObjectToCapsule (src);
147
- if (!capsule)
148
- return false ;
149
- value = mlirPythonCapsuleToDialectRegistry (capsule.value ().ptr ());
140
+ if (auto capsule = mlirApiObjectToCapsule (src))
141
+ value = mlirPythonCapsuleToDialectRegistry (capsule->ptr ());
150
142
return !mlirDialectRegistryIsNull (value);
151
143
}
152
144
static handle from_cpp (MlirDialectRegistry v, rv_policy,
@@ -171,8 +163,8 @@ struct type_caster<MlirLocation> {
171
163
.attr (" Location" )
172
164
.attr (" current" );
173
165
}
174
- std::optional<nanobind::object> capsule = mlirApiObjectToCapsule (src);
175
- value = mlirPythonCapsuleToLocation (capsule. value (). ptr ());
166
+ if ( auto capsule = mlirApiObjectToCapsule (src))
167
+ value = mlirPythonCapsuleToLocation (capsule-> ptr ());
176
168
return !mlirLocationIsNull (value);
177
169
}
178
170
static handle from_cpp (MlirLocation v, rv_policy,
@@ -191,10 +183,8 @@ template <>
191
183
struct type_caster <MlirModule> {
192
184
NB_TYPE_CASTER (MlirModule, const_name(" MlirModule" ))
193
185
bool from_python (handle src, uint8_t flags, cleanup_list *cleanup) noexcept {
194
- std::optional<nanobind::object> capsule = mlirApiObjectToCapsule (src);
195
- if (!capsule)
196
- return false ;
197
- value = mlirPythonCapsuleToModule (capsule.value ().ptr ());
186
+ if (auto capsule = mlirApiObjectToCapsule (src))
187
+ value = mlirPythonCapsuleToModule (capsule->ptr ());
198
188
return !mlirModuleIsNull (value);
199
189
}
200
190
static handle from_cpp (MlirModule v, rv_policy,
@@ -214,10 +204,8 @@ struct type_caster<MlirFrozenRewritePatternSet> {
214
204
NB_TYPE_CASTER (MlirFrozenRewritePatternSet,
215
205
const_name (" MlirFrozenRewritePatternSet" ))
216
206
bool from_python(handle src, uint8_t flags, cleanup_list *cleanup) noexcept {
217
- std::optional<nanobind::object> capsule = mlirApiObjectToCapsule (src);
218
- if (!capsule)
219
- return false ;
220
- value = mlirPythonCapsuleToFrozenRewritePatternSet (capsule.value ().ptr ());
207
+ if (auto capsule = mlirApiObjectToCapsule (src))
208
+ value = mlirPythonCapsuleToFrozenRewritePatternSet (capsule->ptr ());
221
209
return value.ptr != nullptr ;
222
210
}
223
211
static handle from_cpp (MlirFrozenRewritePatternSet v, rv_policy,
@@ -236,10 +224,8 @@ template <>
236
224
struct type_caster <MlirOperation> {
237
225
NB_TYPE_CASTER (MlirOperation, const_name(" MlirOperation" ))
238
226
bool from_python (handle src, uint8_t flags, cleanup_list *cleanup) noexcept {
239
- std::optional<nanobind::object> capsule = mlirApiObjectToCapsule (src);
240
- if (!capsule)
241
- return false ;
242
- value = mlirPythonCapsuleToOperation (capsule.value ().ptr ());
227
+ if (auto capsule = mlirApiObjectToCapsule (src))
228
+ value = mlirPythonCapsuleToOperation (capsule->ptr ());
243
229
return !mlirOperationIsNull (value);
244
230
}
245
231
static handle from_cpp (MlirOperation v, rv_policy,
@@ -260,10 +246,8 @@ template <>
260
246
struct type_caster <MlirValue> {
261
247
NB_TYPE_CASTER (MlirValue, const_name(" MlirValue" ))
262
248
bool from_python (handle src, uint8_t flags, cleanup_list *cleanup) noexcept {
263
- std::optional<nanobind::object> capsule = mlirApiObjectToCapsule (src);
264
- if (!capsule)
265
- return false ;
266
- value = mlirPythonCapsuleToValue (capsule.value ().ptr ());
249
+ if (auto capsule = mlirApiObjectToCapsule (src))
250
+ value = mlirPythonCapsuleToValue (capsule->ptr ());
267
251
return !mlirValueIsNull (value);
268
252
}
269
253
static handle from_cpp (MlirValue v, rv_policy,
@@ -285,10 +269,8 @@ template <>
285
269
struct type_caster <MlirPassManager> {
286
270
NB_TYPE_CASTER (MlirPassManager, const_name(" MlirPassManager" ))
287
271
bool from_python (handle src, uint8_t flags, cleanup_list *cleanup) noexcept {
288
- std::optional<nanobind::object> capsule = mlirApiObjectToCapsule (src);
289
- if (!capsule)
290
- return false ;
291
- value = mlirPythonCapsuleToPassManager (capsule.value ().ptr ());
272
+ if (auto capsule = mlirApiObjectToCapsule (src))
273
+ value = mlirPythonCapsuleToPassManager (capsule->ptr ());
292
274
return !mlirPassManagerIsNull (value);
293
275
}
294
276
};
@@ -298,10 +280,8 @@ template <>
298
280
struct type_caster <MlirTypeID> {
299
281
NB_TYPE_CASTER (MlirTypeID, const_name(" MlirTypeID" ))
300
282
bool from_python (handle src, uint8_t flags, cleanup_list *cleanup) noexcept {
301
- std::optional<nanobind::object> capsule = mlirApiObjectToCapsule (src);
302
- if (!capsule)
303
- return false ;
304
- value = mlirPythonCapsuleToTypeID (capsule.value ().ptr ());
283
+ if (auto capsule = mlirApiObjectToCapsule (src))
284
+ value = mlirPythonCapsuleToTypeID (capsule->ptr ());
305
285
return !mlirTypeIDIsNull (value);
306
286
}
307
287
static handle from_cpp (MlirTypeID v, rv_policy,
@@ -322,10 +302,8 @@ template <>
322
302
struct type_caster <MlirType> {
323
303
NB_TYPE_CASTER (MlirType, const_name(" MlirType" ))
324
304
bool from_python (handle src, uint8_t flags, cleanup_list *cleanup) noexcept {
325
- std::optional<nanobind::object> capsule = mlirApiObjectToCapsule (src);
326
- if (!capsule)
327
- return false ;
328
- value = mlirPythonCapsuleToType (capsule.value ().ptr ());
305
+ if (auto capsule = mlirApiObjectToCapsule (src))
306
+ value = mlirPythonCapsuleToType (capsule->ptr ());
329
307
return !mlirTypeIsNull (value);
330
308
}
331
309
static handle from_cpp (MlirType t, rv_policy,
0 commit comments