uproot.classname_encode
Defined in uproot.model on line 206.
- uproot.model.classname_encode(classname, version=None, unknown=False)
Converts a C++ (decoded) classname, such as
Some::Thing
into a Python classname (encoded), such asModel_Some_3a3a_Thing
.If
version
is a number such as2
, the Python name is suffixed by version, such asModel_Some_3a3a_Thing_v2
.If
unknown
is True, theModel_
prefix becomesUnknown_
.C++ classnames can include namespace delimiters (
::
) and template arguments (<
and>
), which have to be translated into[A-Za-z_][A-Za-z0-9_]*
for Python. Non-conforming characters and also underscores are translated to their hexadecimal equivalents and surrounded by underscores. Additionally, Python models of C++ classes are prepended withModel_
(orUnknown_
if a streamer isn’t found).