update socials section
This commit is contained in:
		
							
								
								
									
										149
									
								
								node_modules/flatted/python/flatted.py
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										149
									
								
								node_modules/flatted/python/flatted.py
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,149 @@ | ||||
| # ISC License | ||||
| # | ||||
| # Copyright (c) 2018-2025, Andrea Giammarchi, @WebReflection | ||||
| # | ||||
| # Permission to use, copy, modify, and/or distribute this software for any | ||||
| # purpose with or without fee is hereby granted, provided that the above | ||||
| # copyright notice and this permission notice appear in all copies. | ||||
| # | ||||
| # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||||
| # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||||
| # AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||||
| # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||||
| # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE | ||||
| # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||||
| # PERFORMANCE OF THIS SOFTWARE. | ||||
|  | ||||
| import json as _json | ||||
|  | ||||
| class _Known: | ||||
|     def __init__(self): | ||||
|         self.key = [] | ||||
|         self.value = [] | ||||
|  | ||||
| class _String: | ||||
|     def __init__(self, value): | ||||
|         self.value = value | ||||
|  | ||||
|  | ||||
| def _array_keys(value): | ||||
|     keys = [] | ||||
|     i = 0 | ||||
|     for _ in value: | ||||
|         keys.append(i) | ||||
|         i += 1 | ||||
|     return keys | ||||
|  | ||||
| def _object_keys(value): | ||||
|     keys = [] | ||||
|     for key in value: | ||||
|         keys.append(key) | ||||
|     return keys | ||||
|  | ||||
| def _is_array(value): | ||||
|     return isinstance(value, (list, tuple)) | ||||
|  | ||||
| def _is_object(value): | ||||
|     return isinstance(value, dict) | ||||
|  | ||||
| def _is_string(value): | ||||
|     return isinstance(value, str) | ||||
|  | ||||
| def _index(known, input, value): | ||||
|     input.append(value) | ||||
|     index = str(len(input) - 1) | ||||
|     known.key.append(value) | ||||
|     known.value.append(index) | ||||
|     return index | ||||
|  | ||||
| def _loop(keys, input, known, output): | ||||
|     for key in keys: | ||||
|         value = output[key] | ||||
|         if isinstance(value, _String): | ||||
|             _ref(key, input[int(value.value)], input, known, output) | ||||
|  | ||||
|     return output | ||||
|  | ||||
| def _ref(key, value, input, known, output): | ||||
|     if _is_array(value) and value not in known: | ||||
|         known.append(value) | ||||
|         value = _loop(_array_keys(value), input, known, value) | ||||
|     elif _is_object(value) and value not in known: | ||||
|         known.append(value) | ||||
|         value = _loop(_object_keys(value), input, known, value) | ||||
|  | ||||
|     output[key] = value | ||||
|  | ||||
| def _relate(known, input, value): | ||||
|     if _is_string(value) or _is_array(value) or _is_object(value): | ||||
|         try: | ||||
|             return known.value[known.key.index(value)] | ||||
|         except: | ||||
|             return _index(known, input, value) | ||||
|  | ||||
|     return value | ||||
|  | ||||
| def _transform(known, input, value): | ||||
|     if _is_array(value): | ||||
|         output = [] | ||||
|         for val in value: | ||||
|             output.append(_relate(known, input, val)) | ||||
|         return output | ||||
|  | ||||
|     if _is_object(value): | ||||
|         obj = {} | ||||
|         for key in value: | ||||
|             obj[key] = _relate(known, input, value[key]) | ||||
|         return obj | ||||
|  | ||||
|     return value | ||||
|  | ||||
| def _wrap(value): | ||||
|     if _is_string(value): | ||||
|         return _String(value) | ||||
|  | ||||
|     if _is_array(value): | ||||
|         i = 0 | ||||
|         for val in value: | ||||
|             value[i] = _wrap(val) | ||||
|             i += 1 | ||||
|  | ||||
|     elif _is_object(value): | ||||
|         for key in value: | ||||
|             value[key] = _wrap(value[key]) | ||||
|  | ||||
|     return value | ||||
|  | ||||
| def parse(value, *args, **kwargs): | ||||
|     json = _json.loads(value, *args, **kwargs) | ||||
|     wrapped = [] | ||||
|     for value in json: | ||||
|         wrapped.append(_wrap(value)) | ||||
|  | ||||
|     input = [] | ||||
|     for value in wrapped: | ||||
|         if isinstance(value, _String): | ||||
|             input.append(value.value) | ||||
|         else: | ||||
|             input.append(value) | ||||
|  | ||||
|     value = input[0] | ||||
|  | ||||
|     if _is_array(value): | ||||
|         return _loop(_array_keys(value), input, [value], value) | ||||
|  | ||||
|     if _is_object(value): | ||||
|         return _loop(_object_keys(value), input, [value], value) | ||||
|  | ||||
|     return value | ||||
|  | ||||
|  | ||||
| def stringify(value, *args, **kwargs): | ||||
|     known = _Known() | ||||
|     input = [] | ||||
|     output = [] | ||||
|     i = int(_index(known, input, value)) | ||||
|     while i < len(input): | ||||
|         output.append(_transform(known, input, input[i])) | ||||
|         i += 1 | ||||
|     return _json.dumps(output, *args, **kwargs) | ||||
		Reference in New Issue
	
	Block a user