PHP 7.4.33
Preview: literals.py Size: 1.58 KB
/home/godevadmin/public_html/upload_images/home/000~ROOT~000/lib64/python3.6/lib2to3/pgen2/literals.py

# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved.
# Licensed to PSF under a Contributor Agreement.

"""Safely evaluate Python string literals without using eval()."""

import re

simple_escapes = {"a": "\a",
                  "b": "\b",
                  "f": "\f",
                  "n": "\n",
                  "r": "\r",
                  "t": "\t",
                  "v": "\v",
                  "'": "'",
                  '"': '"',
                  "\\": "\\"}

def escape(m):
    all, tail = m.group(0, 1)
    assert all.startswith("\\")
    esc = simple_escapes.get(tail)
    if esc is not None:
        return esc
    if tail.startswith("x"):
        hexes = tail[1:]
        if len(hexes) < 2:
            raise ValueError("invalid hex string escape ('\\%s')" % tail)
        try:
            i = int(hexes, 16)
        except ValueError:
            raise ValueError("invalid hex string escape ('\\%s')" % tail)
    else:
        try:
            i = int(tail, 8)
        except ValueError:
            raise ValueError("invalid octal string escape ('\\%s')" % tail)
    return chr(i)

def evalString(s):
    assert s.startswith("'") or s.startswith('"'), repr(s[:1])
    q = s[0]
    if s[:3] == q*3:
        q = q*3
    assert s.endswith(q), repr(s[-len(q):])
    assert len(s) >= 2*len(q)
    s = s[len(q):-len(q)]
    return re.sub(r"\\(\'|\"|\\|[abfnrtv]|x.{0,2}|[0-7]{1,3})", escape, s)

def test():
    for i in range(256):
        c = chr(i)
        s = repr(c)
        e = evalString(s)
        if e != c:
            print(i, c, s, e)


if __name__ == "__main__":
    test()

Directory Contents

Dirs: 1 × Files: 9

Name Size Perms Modified Actions
- drwxr-xr-x 2025-07-03 05:10:07
Edit Download
9.42 KB lrw-r--r-- 2018-12-23 21:37:14
Edit Download
5.89 KB lrw-r--r-- 2018-12-23 21:37:14
Edit Download
6.43 KB lrw-r--r-- 2018-12-23 21:37:14
Edit Download
1.58 KB lrw-r--r-- 2018-12-23 21:37:14
Edit Download
7.86 KB lrw-r--r-- 2018-12-23 21:37:14
Edit Download
13.49 KB lrw-r--r-- 2018-12-23 21:37:14
Edit Download
1.26 KB lrwxr-xr-x 2018-12-23 21:37:14
Edit Download
22.08 KB lrw-r--r-- 2018-12-23 21:37:14
Edit Download
143 B lrw-r--r-- 2018-12-23 21:37:14
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).