Astroport.ONE/venv/lib/python3.11/site-packages/graphql/language/print_string.py

84 lines
1.7 KiB
Python
Raw Normal View History

2024-03-01 16:15:45 +01:00
__all__ = ["print_string"]
def print_string(s: str) -> str:
"""Print a string as a GraphQL StringValue literal.
Replaces control characters and excluded characters (" U+0022 and \\ U+005C)
with escape sequences.
"""
if not isinstance(s, str):
s = str(s)
return f'"{s.translate(escape_sequences)}"'
escape_sequences = {
0x00: "\\u0000",
0x01: "\\u0001",
0x02: "\\u0002",
0x03: "\\u0003",
0x04: "\\u0004",
0x05: "\\u0005",
0x06: "\\u0006",
0x07: "\\u0007",
0x08: "\\b",
0x09: "\\t",
0x0A: "\\n",
0x0B: "\\u000B",
0x0C: "\\f",
0x0D: "\\r",
0x0E: "\\u000E",
0x0F: "\\u000F",
0x10: "\\u0010",
0x11: "\\u0011",
0x12: "\\u0012",
0x13: "\\u0013",
0x14: "\\u0014",
0x15: "\\u0015",
0x16: "\\u0016",
0x17: "\\u0017",
0x18: "\\u0018",
0x19: "\\u0019",
0x1A: "\\u001A",
0x1B: "\\u001B",
0x1C: "\\u001C",
0x1D: "\\u001D",
0x1E: "\\u001E",
0x1F: "\\u001F",
0x22: '\\"',
0x5C: "\\\\",
0x7F: "\\u007F",
0x80: "\\u0080",
0x81: "\\u0081",
0x82: "\\u0082",
0x83: "\\u0083",
0x84: "\\u0084",
0x85: "\\u0085",
0x86: "\\u0086",
0x87: "\\u0087",
0x88: "\\u0088",
0x89: "\\u0089",
0x8A: "\\u008A",
0x8B: "\\u008B",
0x8C: "\\u008C",
0x8D: "\\u008D",
0x8E: "\\u008E",
0x8F: "\\u008F",
0x90: "\\u0090",
0x91: "\\u0091",
0x92: "\\u0092",
0x93: "\\u0093",
0x94: "\\u0094",
0x95: "\\u0095",
0x96: "\\u0096",
0x97: "\\u0097",
0x98: "\\u0098",
0x99: "\\u0099",
0x9A: "\\u009A",
0x9B: "\\u009B",
0x9C: "\\u009C",
0x9D: "\\u009D",
0x9E: "\\u009E",
0x9F: "\\u009F",
}