def add_http_status(name, value, phrase, description=''): # call our new member factory, it's essentially the `HTTPStatus.__new__` method new_status = HTTPStatus.__new_member__(HTTPStatus, value, phrase, description) new_status._name_ = name # store the enum's member internal name new_status.__objclass__ = HTTPStatus.__class__ # store the enum's member parent class setattr(HTTPStatus, name, new_status) # add it to the global HTTPStatus namespace HTTPStatus._member_map_[ name] = new_status # add it to the name=>member map HTTPStatus._member_names_.append( name) # append the names so it appears in __members__ HTTPStatus._value2member_map_[ value] = new_status # add it to the value=>member map