MCPcopy Create free account
hub / github.com/apache/fory / to_snake_case

Method to_snake_case

compiler/fory_compiler/generators/base.py:145–171  ·  view source on GitHub ↗

Convert name to snake_case. Handles acronyms properly: - DeviceTier -> device_tier - HTTPStatus -> http_status - XMLParser -> xml_parser - HTMLToText -> html_to_text

(self, name: str)

Source from the content-addressed store, hash-verified

143 return pascal[0].lower() + pascal[1:]
144
145 def to_snake_case(self, name: str) -> str:
146 """Convert name to snake_case.
147
148 Handles acronyms properly:
149 - DeviceTier -> device_tier
150 - HTTPStatus -> http_status
151 - XMLParser -> xml_parser
152 - HTMLToText -> html_to_text
153 """
154 if not name:
155 return name
156 result = []
157 for i, char in enumerate(name):
158 if char.isupper():
159 # Add underscore before uppercase if:
160 # 1. Not at the start
161 # 2. Previous char is lowercase, OR
162 # 3. Next char exists and is lowercase (handles acronyms like HTTP->Status)
163 if i > 0:
164 prev_lower = name[i - 1].islower()
165 next_lower = (i + 1 < len(name)) and name[i + 1].islower()
166 if prev_lower or next_lower:
167 result.append("_")
168 result.append(char.lower())
169 else:
170 result.append(char)
171 return "".join(result)
172
173 def to_upper_snake_case(self, name: str) -> str:
174 """Convert name to UPPER_SNAKE_CASE."""

Callers 15

to_upper_snake_caseMethod · 0.95
_field_info_linesMethod · 0.80
to_rust_snakeMethod · 0.80
generate_unionMethod · 0.80
generate_fieldMethod · 0.80
generate_repr_methodMethod · 0.80
get_field_member_nameMethod · 0.80
generate_union_macrosMethod · 0.80

Calls 1

appendMethod · 0.45

Tested by

no test coverage detected