Ecmind-blue-client-manage: Benutzernamen werden fälschlicherweise als Integer interpretiert

Hallo zusammen,

mir ist aufgefallen, dass bei der Nutzung der get_users Funktion der ecmind-blue-client-manage rein numerische Benutzernamen als Integer ausgelesen und zurückgegeben werden.
Diese Funktion wird u.a. von der Funktion get_user_groups_by_login aufgerufen. Dort wird als Übergabeparameter allerdings ein String für den Benutzernamen erwartet get_user_groups_by_login(client: Client, login: str).
Somit kommt es in der Folge dazu, dass der Benutzer bzw. dessen Gruppen nicht ermittelt werden können.

Aus meiner Sicht ließe sich das Problem wie folgt beheben, indem man der to_dict Methode recognize_numbers=False mitgibt und bei "locked": True if user_entry["@locked"] == "1" else False die „1“ als String prüft.
Optional könnte die id noch zu einem Integer gewandelt werden "id": int(user_entry["@id"]).

def get_users(client: Client) -> dict:
    user_list_result = client.execute(Job("mng.GetUserList", Flags=0))

    if not user_list_result.return_code == 0:
        raise RuntimeError(user_list_result.error_message)

    xml_string = fix_encoding(user_list_result.values["UserList"])
    users_element = XmlElement.from_string(xml_string).find("Users")
    users_element.find("User").flag_as_list = True
    result = {}
    for user_entry in users_element.to_dict(recognize_numbers=False)["User"]:
        result[user_entry["@benutzer"]] = {
            "id": int(user_entry["@id"]),
            "login": user_entry["@benutzer"],
            "name": user_entry["@name"],
            "guid": user_entry["@osguid"],
            "mail": user_entry["@osemail"],
            "locked": True if user_entry["@locked"] == "1" else False,
            "profile": user_entry["@profil"],
        }
    return result

Wäre die Anpassung in dieser Form aus eurer Sicht möglich?

Viele Grüße
Benjamin