@@ -62,21 +62,28 @@ void circt::python::populateDialectRTGSubmodule(nb::module_ &m) {
6262 [](nb::object cls, MlirType elementType) {
6363 return cls (rtgSetTypeGet (elementType));
6464 },
65- nb::arg (" self" ), nb::arg (" element_type" ));
65+ nb::arg (" self" ), nb::arg (" element_type" ))
66+ .def_property_readonly (" element_type" , [](MlirType self) {
67+ return rtgSetTypeGetElementType (self);
68+ });
6669
6770 mlir_type_subclass (m, " BagType" , rtgTypeIsABag)
6871 .def_classmethod (
6972 " get" ,
7073 [](nb::object cls, MlirType elementType) {
7174 return cls (rtgBagTypeGet (elementType));
7275 },
73- nb::arg (" self" ), nb::arg (" element_type" ));
76+ nb::arg (" self" ), nb::arg (" element_type" ))
77+ .def_property_readonly (" element_type" , [](MlirType self) {
78+ return rtgBagTypeGetElementType (self);
79+ });
7480
7581 mlir_type_subclass (m, " DictType" , rtgTypeIsADict)
7682 .def_classmethod (
7783 " get" ,
78- [](nb::object cls, MlirContext ctxt,
79- const std::vector<std::pair<MlirAttribute, MlirType>> &entries) {
84+ [](nb::object cls,
85+ const std::vector<std::pair<MlirAttribute, MlirType>> &entries,
86+ MlirContext ctxt) {
8087 std::vector<MlirAttribute> names;
8188 std::vector<MlirType> types;
8289 for (auto entry : entries) {
@@ -86,9 +93,10 @@ void circt::python::populateDialectRTGSubmodule(nb::module_ &m) {
8693 return cls (
8794 rtgDictTypeGet (ctxt, types.size (), names.data (), types.data ()));
8895 },
89- nb::arg (" self" ), nb::arg ( " ctxt " ) = nullptr ,
96+ nb::arg (" self" ),
9097 nb::arg (" entries" ) =
91- std::vector<std::pair<MlirAttribute, MlirType>>());
98+ std::vector<std::pair<MlirAttribute, MlirType>>(),
99+ nb::arg (" ctxt" ) = nullptr );
92100
93101 nb::enum_<RTGLabelVisibility>(m, " LabelVisibility" )
94102 .value (" LOCAL" , RTG_LABEL_VISIBILITY_LOCAL)
0 commit comments