@@ -54,7 +54,24 @@ namespace mo2::python {
5454 .value (" NO_METADATA" , Version::FormatMode::NoMetadata)
5555 .value (" CONDENSED" ,
5656 static_cast <Version::FormatMode>(Version::FormatCondensed.toInt ()))
57- .export_values ();
57+ .export_values ()
58+ .def (" __xor__" ,
59+ py::overload_cast<Version::FormatMode, Version::FormatModes>(
60+ &operator ^))
61+ .def (" __and__" ,
62+ py::overload_cast<Version::FormatMode, Version::FormatModes>(
63+ &operator &))
64+ .def (" __or__" , py::overload_cast<Version::FormatMode, Version::FormatModes>(
65+ &operator |))
66+ .def (" __rxor__" ,
67+ py::overload_cast<Version::FormatMode, Version::FormatModes>(
68+ &operator ^))
69+ .def (" __rand__" ,
70+ py::overload_cast<Version::FormatMode, Version::FormatModes>(
71+ &operator &))
72+ .def (" __ror__" ,
73+ py::overload_cast<Version::FormatMode, Version::FormatModes>(
74+ &operator |));
5875
5976 pyVersion
6077 .def_static (" parse" , &Version::parse, " value" _a,
@@ -86,8 +103,11 @@ namespace mo2::python {
86103 .def_property_readonly (" subpatch" , &Version::subpatch)
87104 .def_property_readonly (" prereleases" , &Version::preReleases)
88105 .def_property_readonly (" build_metadata" , &Version::buildMetadata)
89- .def (" string" , &Version::string, " mode" _a = Version::FormatCondensed)
90- .def (" __str__" , &Version::string)
106+ .def (" string" , &Version::string, " mode" _a = Version::FormatModes{})
107+ .def (" __str__" ,
108+ [](Version const & version) {
109+ return version.string (Version::FormatCondensed);
110+ })
91111 .def (py::self < py::self)
92112 .def (py::self > py::self)
93113 .def (py::self <= py::self)
0 commit comments