| 950 | |
| 951 | |
| 952 | class Request: |
| 953 | def __init__(self, request_type, args, index=None): |
| 954 | if request_type not in REQUEST_RETURN_LENGTHS.keys(): |
| 955 | raise NotImplementedError( |
| 956 | "The request type {} is not implemented!".format(request_type) |
| 957 | ) |
| 958 | |
| 959 | self.request_type = request_type |
| 960 | self.args = args |
| 961 | self.index = index |
| 962 | |
| 963 | def __iter__(self): |
| 964 | if REQUEST_RETURN_LENGTHS[self.request_type] is None: |
| 965 | raise IndexError("This request type does not return multiple arguments!") |
| 966 | for i in range(REQUEST_RETURN_LENGTHS[self.request_type]): |
| 967 | yield Request(self.request_type, self.args, i) |
| 968 | |
| 969 | def __getitem__(self, i): |
| 970 | if REQUEST_RETURN_LENGTHS[self.request_type] is None: |
| 971 | raise IndexError("This request type does not return multiple arguments!") |
| 972 | return Request(self.request_type, self.args, i) |
| 973 | |
| 974 | def __eq__(self, other): |
| 975 | return ( |
| 976 | self.request_type == other.request_type |
| 977 | and self.args == other.args |
| 978 | and self.index == other.index |
| 979 | ) |
| 980 | |
| 981 | def __repr__(self): |
| 982 | return f"Req_{self.request_type}{self.args}[{self.index}]\n" |
| 983 | |
| 984 | |
| 985 | class RequestFactory: |
no outgoing calls
no test coverage detected