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

Method encode_with_encoding

python/pyfory/meta/metastring.py:297–373  ·  view source on GitHub ↗

Encodes the input string with the specified encoding. Args: input_string (str): The string to encode. encoding (Encoding): The encoding type. Returns: MetaString: An encoded MetaString object.

(self, input_string: str, encoding: Encoding)

Source from the content-addressed store, hash-verified

295 return self.encode_with_encoding(input_string, encoding)
296
297 def encode_with_encoding(self, input_string: str, encoding: Encoding) -> MetaString:
298 """
299 Encodes the input string with the specified encoding.
300
301 Args:
302 input_string (str): The string to encode.
303 encoding (Encoding): The encoding type.
304
305 Returns:
306 MetaString: An encoded MetaString object.
307 """
308 # Long meta string longer than _METASTRING_NUM_CHARS_LIMIT is not allowed.
309 assert len(input_string) < _METASTRING_NUM_CHARS_LIMIT, "Long meta string longer than _METASTRING_NUM_CHARS_LIMIT is not allowed."
310
311 if not input_string:
312 return MetaString(
313 input_string,
314 Encoding.UTF_8,
315 bytes(),
316 0,
317 self.special_char1,
318 self.special_char2,
319 )
320
321 length = len(input_string)
322 if encoding == Encoding.LOWER_SPECIAL:
323 encoded_data = self._encode_lower_special(input_string)
324 return MetaString(
325 input_string,
326 encoding,
327 encoded_data,
328 length * 5,
329 self.special_char1,
330 self.special_char2,
331 )
332 elif encoding == Encoding.LOWER_UPPER_DIGIT_SPECIAL:
333 encoded_data = self._encode_lower_upper_digit_special(input_string)
334 return MetaString(
335 input_string,
336 encoding,
337 encoded_data,
338 length * 6,
339 self.special_char1,
340 self.special_char2,
341 )
342 elif encoding == Encoding.FIRST_TO_LOWER_SPECIAL:
343 encoded_data = self._encode_first_to_lower_special(input_string)
344 return MetaString(
345 input_string,
346 encoding,
347 encoded_data,
348 length * 5,
349 self.special_char1,
350 self.special_char2,
351 )
352 elif encoding == Encoding.ALL_TO_LOWER_SPECIAL:
353 chars = list(input_string)
354 upper_count = sum(1 for c in chars if c.isupper())

Callers 4

test_encode_empty_stringFunction · 0.95
encodeMethod · 0.95
write_field_infoFunction · 0.45

Calls 6

_encode_lower_specialMethod · 0.95
MetaStringClass · 0.70
listFunction · 0.50

Tested by 2

test_encode_empty_stringFunction · 0.76