def wrap_member(member, login_alias=None, password=None): """ Return a `ConsumerWrapper` reflecting the given `Member`. """ wrapper = ConsumerWrapper() for a in NEO_ATTR: getattr(wrapper, "set_%s" % a)(getattr(member, a)) # Use a login_alias instead if specified # member.username.lower() is not guaranteed to be unique if login_alias: wrapper.set_username(login_alias) if password: wrapper.set_password(password) # assign address has_address = False for k in ADDRESS_FIELDS: if getattr(member, k, None): has_address = True break if has_address: wrapper.set_address(member.address, member.city, member.province, member.zipcode, member.country) return wrapper