(name: str)
| 977 | |
| 978 | |
| 979 | def _to_snake_case(name: str) -> str: |
| 980 | result = [] |
| 981 | previous = "" |
| 982 | for index, char in enumerate(name): |
| 983 | if char == "_": |
| 984 | result.append(char) |
| 985 | previous = char |
| 986 | continue |
| 987 | if char.isupper(): |
| 988 | next_is_lower = index + 1 < len(name) and name[index + 1].islower() |
| 989 | previous_lower_or_digit = previous.islower() or previous.isdigit() |
| 990 | previous_upper = previous.isupper() |
| 991 | if result and result[-1] != "_" and (previous_lower_or_digit or (previous_upper and next_is_lower)): |
| 992 | result.append("_") |
| 993 | result.append(char.lower()) |
| 994 | else: |
| 995 | result.append(char) |
| 996 | previous = char |
| 997 | return "".join(result).rstrip("_") |
| 998 | |
| 999 | |
| 1000 | def _sort_fields(type_resolver, field_names, serializers, nullable_map=None, field_infos_list=None): |
no test coverage detected