def __getattr__(self, attr_name): """ Try different cases for backward compatibility. """ available_attrs = vars(self) snake_case = to_snake_case(attr_name) if snake_case in available_attrs: return available_attrs[snake_case] lower_camel_case = to_lower_camel_case(attr_name) if lower_camel_case in available_attrs: return available_attrs[lower_camel_case] raise AttributeError(f"'UserProfile' object has no attribute '{attr_name}'")
def __init__(self, config=None): super().__init__(config) if config: self.city = config["city"]\ if "city" in config else None self.cost_center = config["costCenter"]\ if "costCenter" in config else None self.country_code = config["countryCode"]\ if "countryCode" in config else None self.department = config["department"]\ if "department" in config else None self.display_name = config["displayName"]\ if "displayName" in config else None self.division = config["division"]\ if "division" in config else None self.email = config["email"]\ if "email" in config else None self.employee_number = config["employeeNumber"]\ if "employeeNumber" in config else None self.first_name = config["firstName"]\ if "firstName" in config else None self.honorific_prefix = config["honorificPrefix"]\ if "honorificPrefix" in config else None self.honorific_suffix = config["honorificSuffix"]\ if "honorificSuffix" in config else None self.last_name = config["lastName"]\ if "lastName" in config else None self.locale = config["locale"]\ if "locale" in config else None self.login = config["login"]\ if "login" in config else None self.manager = config["manager"]\ if "manager" in config else None self.manager_id = config["managerId"]\ if "managerId" in config else None self.middle_name = config["middleName"]\ if "middleName" in config else None self.mobile_phone = config["mobilePhone"]\ if "mobilePhone" in config else None self.nick_name = config["nickName"]\ if "nickName" in config else None self.organization = config["organization"]\ if "organization" in config else None self.postal_address = config["postalAddress"]\ if "postalAddress" in config else None self.preferred_language = config["preferredLanguage"]\ if "preferredLanguage" in config else None self.primary_phone = config["primaryPhone"]\ if "primaryPhone" in config else None self.profile_url = config["profileUrl"]\ if "profileUrl" in config else None self.second_email = config["secondEmail"]\ if "secondEmail" in config else None self.state = config["state"]\ if "state" in config else None self.street_address = config["streetAddress"]\ if "streetAddress" in config else None self.timezone = config["timezone"]\ if "timezone" in config else None self.title = config["title"]\ if "title" in config else None self.user_type = config["userType"]\ if "userType" in config else None self.zip_code = config["zipCode"]\ if "zipCode" in config else None # set custom attributes not defined in model for attr_name in config: if attr_name not in vars(self): setattr(self, to_snake_case(attr_name), config[attr_name]) else: self.city = None self.cost_center = None self.country_code = None self.department = None self.display_name = None self.division = None self.email = None self.employee_number = None self.first_name = None self.honorific_prefix = None self.honorific_suffix = None self.last_name = None self.locale = None self.login = None self.manager = None self.manager_id = None self.middle_name = None self.mobile_phone = None self.nick_name = None self.organization = None self.postal_address = None self.preferred_language = None self.primary_phone = None self.profile_url = None self.second_email = None self.state = None self.street_address = None self.timezone = None self.title = None self.user_type = None self.zip_code = None
def test_to_snake_case(): assert helpers.to_snake_case('string') == 'string' assert helpers.to_snake_case('CamelCaseStr') == 'camel_case_str' assert helpers.to_snake_case('lowerCamelCaseStr') == 'lower_camel_case_str' assert helpers.to_snake_case('snake_case_str') == 'snake_case_str'