-
Notifications
You must be signed in to change notification settings - Fork 15.4k
[mlir:python] Add manual typing annotations to mlir.register_* functions.
#170627
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[mlir:python] Add manual typing annotations to mlir.register_* functions.
#170627
Conversation
|
@llvm/pr-subscribers-mlir Author: Ingo Müller (ingomueller-net) ChangesThis PR adds a manual typing annotations to the Full diff: https://github.com/llvm/llvm-project/pull/170627.diff 1 Files Affected:
diff --git a/mlir/lib/Bindings/Python/MainModule.cpp b/mlir/lib/Bindings/Python/MainModule.cpp
index a14f09f77d2c3..38259c9d962e5 100644
--- a/mlir/lib/Bindings/Python/MainModule.cpp
+++ b/mlir/lib/Bindings/Python/MainModule.cpp
@@ -102,6 +102,8 @@ NB_MODULE(_mlir, m) {
return opClass;
});
},
+ nb::sig("def register_operation(dialect_class: type, *, "
+ "replace: bool = False) -> typing.Callable[..., type]"),
"dialect_class"_a, nb::kw_only(), "replace"_a = false,
"Produce a class decorator for registering an Operation class as part of "
"a dialect");
@@ -114,6 +116,9 @@ NB_MODULE(_mlir, m) {
return typeCaster;
});
},
+ nb::sig(
+ "def register_type_caster(typeid: mlir.ir.TypeID, *, "
+ "replace: bool = False) -> typing.Callable[..., mlir.ir.TypeID]"),
"typeid"_a, nb::kw_only(), "replace"_a = false,
"Register a type caster for casting MLIR types to custom user types.");
m.def(
@@ -126,6 +131,9 @@ NB_MODULE(_mlir, m) {
return valueCaster;
});
},
+ nb::sig(
+ "def register_value_caster(typeid: mlir.ir.TypeID, *, "
+ "replace: bool = False) -> typing.Callable[..., mlir.ir.TypeID]"),
"typeid"_a, nb::kw_only(), "replace"_a = false,
"Register a value caster for casting MLIR values to custom user values.");
|
|
|
…tions. This PR adds a manual typing annotations to the `register_operation` and `register_(type|value)_caster` functions in the main `mlir` module. Since those functions return the result `nb::cpp_function`, which is of type `nb::object`, the automatic typing annocations are of the form `def f() -> object`. This isn't particularly precise and leads to type checking errors when the functions are used. Manually defining the annotation with `nb::sig` solves the problem. Signed-off-by: Ingo Müller <ingomueller@google.com>
60b4137 to
f493b65
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM modulo nit!
Signed-off-by: Ingo Müller <ingomueller@google.com>
This PR adds a manual typing annotations to the
register_operationandregister_(type|value)_casterfunctions in the mainmlirmodule. Since those functions return the resultnb::cpp_function, which is of typenb::object, the automatic typing annocations are of the formdef f() -> object. This isn't particularly precise and leads to type checking errors when the functions are used. Manually defining the annotation withnb::sigsolves the problem.