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

Method strip_enum_prefix

compiler/fory_compiler/generators/base.py:255–290  ·  view source on GitHub ↗

Strip the enum name prefix from an enum value name. For protobuf-style enums where values are prefixed with the enum name in UPPER_SNAKE_CASE, strip the prefix to get cleaner scoped enum values. Example: enum_name="DeviceTier", value_name="DEVICE_TIER_UNKNOWN" -

(self, enum_name: str, value_name: str)

Source from the content-addressed store, hash-verified

253 return schemas
254
255 def strip_enum_prefix(self, enum_name: str, value_name: str) -> str:
256 """Strip the enum name prefix from an enum value name.
257
258 For protobuf-style enums where values are prefixed with the enum name
259 in UPPER_SNAKE_CASE, strip the prefix to get cleaner scoped enum values.
260
261 Example:
262 enum_name="DeviceTier", value_name="DEVICE_TIER_UNKNOWN" -> "UNKNOWN"
263 enum_name="DeviceTier", value_name="DEVICE_TIER_TIER1" -> "TIER1"
264 enum_name="DeviceTier", value_name="DEVICE_TIER_1" -> "DEVICE_TIER_1" (keeps original, "1" is invalid)
265
266 The prefix is only stripped if the remainder is a valid identifier
267 (starts with a letter).
268
269 Args:
270 enum_name: The enum type name (e.g., "DeviceTier")
271 value_name: The enum value name (e.g., "DEVICE_TIER_UNKNOWN")
272
273 Returns:
274 The stripped value name, or original if stripping would yield an invalid name
275 """
276 # Convert enum name to UPPER_SNAKE_CASE prefix
277 prefix = self.to_upper_snake_case(enum_name) + "_"
278
279 # Check if value_name starts with the prefix
280 if not value_name.startswith(prefix):
281 return value_name
282
283 # Get the remainder after stripping prefix
284 remainder = value_name[len(prefix) :]
285
286 # Check if remainder is a valid identifier (starts with letter)
287 if not remainder or not remainder[0].isalpha():
288 return value_name
289
290 return remainder
291
292 def format_type_id_comment(self, type_def, comment_prefix: str) -> Optional[str]:
293 """Format a type id comment for a message/union."""

Callers 12

generate_enumMethod · 0.80
generate_enumMethod · 0.80
generate_enumMethod · 0.80
generate_enumMethod · 0.80
generate_enumMethod · 0.80
generate_enumMethod · 0.80
_field_type_exprMethod · 0.80
generate_enumMethod · 0.80
get_enum_value_namesMethod · 0.80

Calls 1

to_upper_snake_caseMethod · 0.95

Tested by

no test coverage detected