Server IP : 103.169.32.36 / Your IP : 216.73.216.202 Web Server : Apache System : Linux web.dpmptsp 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : apache ( 48) PHP Version : 5.6.40 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/lib64/python2.7/lib2to3/pgen2/ |
Upload File : |
| Current File : /usr/lib64/python2.7/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()
| N4m3 |
5!z3 |
L45t M0d!f!3d |
0wn3r / Gr0up |
P3Rm!55!0n5 |
0pt!0n5 |
| .. |
-- |
December 20 2023 04:52:59 |
0 / 0 |
0755 |
|
| | | | | |
| __init__.py |
0.14 KB |
November 14 2023 16:14:19 |
0 / 0 |
0644 |
|
| __init__.pyc |
0.17 KB |
November 14 2023 16:14:41 |
0 / 0 |
0644 |
|
| __init__.pyo |
0.17 KB |
November 14 2023 16:14:41 |
0 / 0 |
0644 |
|
| conv.py |
9.401 KB |
November 14 2023 16:14:19 |
0 / 0 |
0644 |
|
| conv.pyc |
7.997 KB |
November 14 2023 16:14:41 |
0 / 0 |
0644 |
|
| conv.pyo |
6.872 KB |
November 14 2023 16:14:44 |
0 / 0 |
0644 |
|
| driver.py |
5.043 KB |
November 14 2023 16:14:19 |
0 / 0 |
0644 |
|
| driver.pyc |
5.262 KB |
November 14 2023 16:14:41 |
0 / 0 |
0644 |
|
| driver.pyo |
5.2 KB |
November 14 2023 16:14:44 |
0 / 0 |
0644 |
|
| grammar.py |
5.237 KB |
November 14 2023 16:14:19 |
0 / 0 |
0644 |
|
| grammar.pyc |
5.874 KB |
November 14 2023 16:14:41 |
0 / 0 |
0644 |
|
| grammar.pyo |
5.874 KB |
November 14 2023 16:14:41 |
0 / 0 |
0644 |
|
| literals.py |
1.576 KB |
November 14 2023 16:14:19 |
0 / 0 |
0644 |
|
| literals.pyc |
1.971 KB |
November 14 2023 16:14:41 |
0 / 0 |
0644 |
|
| literals.pyo |
1.744 KB |
November 14 2023 16:14:44 |
0 / 0 |
0644 |
|
| parse.py |
7.864 KB |
November 14 2023 16:14:19 |
0 / 0 |
0644 |
|
| parse.pyc |
7.066 KB |
November 14 2023 16:14:41 |
0 / 0 |
0644 |
|
| parse.pyo |
7.028 KB |
November 14 2023 16:14:44 |
0 / 0 |
0644 |
|
| pgen.py |
13.463 KB |
November 14 2023 16:14:19 |
0 / 0 |
0644 |
|
| pgen.pyc |
11.888 KB |
November 14 2023 16:14:41 |
0 / 0 |
0644 |
|
| pgen.pyo |
11.304 KB |
November 14 2023 16:14:44 |
0 / 0 |
0644 |
|
| token.py |
1.215 KB |
November 14 2023 16:14:19 |
0 / 0 |
0755 |
|
| token.pyc |
2.225 KB |
November 14 2023 16:14:41 |
0 / 0 |
0644 |
|
| token.pyo |
2.225 KB |
November 14 2023 16:14:41 |
0 / 0 |
0644 |
|
| tokenize.py |
18.664 KB |
November 14 2023 16:14:19 |
0 / 0 |
0644 |
|
| tokenize.pyc |
16.461 KB |
November 14 2023 16:14:41 |
0 / 0 |
0644 |
|
| tokenize.pyo |
16.374 KB |
November 14 2023 16:14:44 |
0 / 0 |
0644 |
|