Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.112
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
src /
Python-3.10.14 /
Doc /
library /
Delete
Unzip
Name
Size
Permission
Date
Action
2to3.rst
16.15
KB
-rw-r--r--
2024-03-19 22:46
__future__.rst
6
KB
-rw-r--r--
2024-03-19 22:46
__main__.rst
12.34
KB
-rw-r--r--
2024-03-19 22:46
_thread.rst
7.88
KB
-rw-r--r--
2024-03-19 22:46
abc.rst
12.19
KB
-rw-r--r--
2024-03-19 22:46
aifc.rst
7.48
KB
-rw-r--r--
2024-03-19 22:46
allos.rst
678
B
-rw-r--r--
2024-03-19 22:46
archiving.rst
440
B
-rw-r--r--
2024-03-19 22:46
argparse.rst
80.31
KB
-rw-r--r--
2024-03-19 22:46
array.rst
10.45
KB
-rw-r--r--
2024-03-19 22:46
ast.rst
75.95
KB
-rw-r--r--
2024-03-19 22:46
asynchat.rst
8.44
KB
-rw-r--r--
2024-03-19 22:46
asyncio-api-index.rst
4.61
KB
-rw-r--r--
2024-03-19 22:46
asyncio-dev.rst
7.31
KB
-rw-r--r--
2024-03-19 22:46
asyncio-eventloop.rst
59.33
KB
-rw-r--r--
2024-03-19 22:46
asyncio-exceptions.rst
1.7
KB
-rw-r--r--
2024-03-19 22:46
asyncio-future.rst
8.31
KB
-rw-r--r--
2024-03-19 22:46
asyncio-llapi-index.rst
14.06
KB
-rw-r--r--
2024-03-19 22:46
asyncio-platforms.rst
3.03
KB
-rw-r--r--
2024-03-19 22:46
asyncio-policy.rst
9.17
KB
-rw-r--r--
2024-03-19 22:46
asyncio-protocol.rst
31.55
KB
-rw-r--r--
2024-03-19 22:46
asyncio-queue.rst
5.5
KB
-rw-r--r--
2024-03-19 22:46
asyncio-stream.rst
14.88
KB
-rw-r--r--
2024-03-19 22:46
asyncio-subprocess.rst
11.4
KB
-rw-r--r--
2024-03-19 22:46
asyncio-sync.rst
8.84
KB
-rw-r--r--
2024-03-19 22:46
asyncio-task.rst
32.29
KB
-rw-r--r--
2024-03-19 22:46
asyncio.rst
2.63
KB
-rw-r--r--
2024-03-19 22:46
asyncore.rst
13.43
KB
-rw-r--r--
2024-03-19 22:46
atexit.rst
3.84
KB
-rw-r--r--
2024-03-19 22:46
audioop.rst
10.59
KB
-rw-r--r--
2024-03-19 22:46
audit_events.rst
2.29
KB
-rw-r--r--
2024-03-19 22:46
base64.rst
10.87
KB
-rw-r--r--
2024-03-19 22:46
bdb.rst
14.54
KB
-rw-r--r--
2024-03-19 22:46
binary.rst
654
B
-rw-r--r--
2024-03-19 22:46
binascii.rst
7.66
KB
-rw-r--r--
2024-03-19 22:46
binhex.rst
1.69
KB
-rw-r--r--
2024-03-19 22:46
bisect.rst
9.06
KB
-rw-r--r--
2024-03-19 22:46
builtins.rst
1.43
KB
-rw-r--r--
2024-03-19 22:46
bz2.rst
11.87
KB
-rw-r--r--
2024-03-19 22:46
calendar.rst
14.17
KB
-rw-r--r--
2024-03-19 22:46
cgi.rst
21.49
KB
-rw-r--r--
2024-03-19 22:46
cgitb.rst
3.75
KB
-rw-r--r--
2024-03-19 22:46
chunk.rst
5.1
KB
-rw-r--r--
2024-03-19 22:46
cmath.rst
9.42
KB
-rw-r--r--
2024-03-19 22:46
cmd.rst
13.6
KB
-rw-r--r--
2024-03-19 22:46
code.rst
7.64
KB
-rw-r--r--
2024-03-19 22:46
codecs.rst
75.37
KB
-rw-r--r--
2024-03-19 22:46
codeop.rst
3
KB
-rw-r--r--
2024-03-19 22:46
collections.abc.rst
16.73
KB
-rw-r--r--
2024-03-19 22:46
collections.rst
52.13
KB
-rw-r--r--
2024-03-19 22:46
colorsys.rst
1.77
KB
-rw-r--r--
2024-03-19 22:46
compileall.rst
13.45
KB
-rw-r--r--
2024-03-19 22:46
concurrency.rst
685
B
-rw-r--r--
2024-03-19 22:46
concurrent.futures.rst
20.76
KB
-rw-r--r--
2024-03-19 22:46
concurrent.rst
171
B
-rw-r--r--
2024-03-19 22:46
configparser.rst
49.91
KB
-rw-r--r--
2024-03-19 22:46
constants.rst
3.77
KB
-rw-r--r--
2024-03-19 22:46
contextlib.rst
34.35
KB
-rw-r--r--
2024-03-19 22:46
contextvars.rst
8.32
KB
-rw-r--r--
2024-03-19 22:46
copy.rst
3.39
KB
-rw-r--r--
2024-03-19 22:46
copyreg.rst
1.97
KB
-rw-r--r--
2024-03-19 22:46
crypt.rst
5.84
KB
-rw-r--r--
2024-03-19 22:46
crypto.rst
411
B
-rw-r--r--
2024-03-19 22:46
csv.rst
20.91
KB
-rw-r--r--
2024-03-19 22:46
ctypes.rst
90.63
KB
-rw-r--r--
2024-03-19 22:46
curses.ascii.rst
8.85
KB
-rw-r--r--
2024-03-19 22:46
curses.panel.rst
2.7
KB
-rw-r--r--
2024-03-19 22:46
curses.rst
77.03
KB
-rw-r--r--
2024-03-19 22:46
custominterp.rst
569
B
-rw-r--r--
2024-03-19 22:46
dataclasses.rst
29.22
KB
-rw-r--r--
2024-03-19 22:46
datatypes.rst
817
B
-rw-r--r--
2024-03-19 22:46
datetime.rst
101.93
KB
-rw-r--r--
2024-03-19 22:46
dbm.rst
15.05
KB
-rw-r--r--
2024-03-19 22:46
debug.rst
611
B
-rw-r--r--
2024-03-19 22:46
decimal.rst
76.21
KB
-rw-r--r--
2024-03-19 22:46
development.rst
719
B
-rw-r--r--
2024-03-19 22:46
devmode.rst
7.28
KB
-rw-r--r--
2024-03-19 22:46
dialog.rst
6.12
KB
-rw-r--r--
2024-03-19 22:46
difflib.rst
29.76
KB
-rw-r--r--
2024-03-19 22:46
dis.rst
35.33
KB
-rw-r--r--
2024-03-19 22:46
distribution.rst
452
B
-rw-r--r--
2024-03-19 22:46
distutils.rst
2.09
KB
-rw-r--r--
2024-03-19 22:46
doctest.rst
69.87
KB
-rw-r--r--
2024-03-19 22:46
email.charset.rst
7.83
KB
-rw-r--r--
2024-03-19 22:46
email.compat32-message.rst
32.89
KB
-rw-r--r--
2024-03-19 22:46
email.contentmanager.rst
8.9
KB
-rw-r--r--
2024-03-19 22:46
email.encoders.rst
2.92
KB
-rw-r--r--
2024-03-19 22:46
email.errors.rst
4.8
KB
-rw-r--r--
2024-03-19 22:46
email.examples.rst
1.87
KB
-rw-r--r--
2024-03-19 22:46
email.generator.rst
13.49
KB
-rw-r--r--
2024-03-19 22:46
email.header.rst
8.97
KB
-rw-r--r--
2024-03-19 22:46
email.headerregistry.rst
18.04
KB
-rw-r--r--
2024-03-19 22:46
email.iterators.rst
2.73
KB
-rw-r--r--
2024-03-19 22:46
email.message.rst
32.25
KB
-rw-r--r--
2024-03-19 22:46
email.mime.rst
11.45
KB
-rw-r--r--
2024-03-19 22:46
email.parser.rst
13.76
KB
-rw-r--r--
2024-03-19 22:46
email.policy.rst
26.39
KB
-rw-r--r--
2024-03-19 22:46
email.rst
6.63
KB
-rw-r--r--
2024-03-19 22:46
email.utils.rst
9.17
KB
-rw-r--r--
2024-03-19 22:46
ensurepip.rst
4.9
KB
-rw-r--r--
2024-03-19 22:46
enum.rst
35.96
KB
-rw-r--r--
2024-03-19 22:46
errno.rst
7.81
KB
-rw-r--r--
2024-03-19 22:46
exceptions.rst
29.86
KB
-rw-r--r--
2024-03-19 22:46
faulthandler.rst
6.51
KB
-rw-r--r--
2024-03-19 22:46
fcntl.rst
7.99
KB
-rw-r--r--
2024-03-19 22:46
filecmp.rst
5.89
KB
-rw-r--r--
2024-03-19 22:46
fileformats.rst
273
B
-rw-r--r--
2024-03-19 22:46
fileinput.rst
8.99
KB
-rw-r--r--
2024-03-19 22:46
filesys.rst
946
B
-rw-r--r--
2024-03-19 22:46
fnmatch.rst
3.31
KB
-rw-r--r--
2024-03-19 22:46
fractions.rst
6.2
KB
-rw-r--r--
2024-03-19 22:46
frameworks.rst
391
B
-rw-r--r--
2024-03-19 22:46
ftplib.rst
18.13
KB
-rw-r--r--
2024-03-19 22:46
functional.rst
365
B
-rw-r--r--
2024-03-19 22:46
functions.rst
84.5
KB
-rw-r--r--
2024-03-19 22:46
functools.rst
25.99
KB
-rw-r--r--
2024-03-19 22:46
gc.rst
11.16
KB
-rw-r--r--
2024-03-19 22:46
getopt.rst
6.4
KB
-rw-r--r--
2024-03-19 22:46
getpass.rst
1.84
KB
-rw-r--r--
2024-03-19 22:46
gettext.rst
27.35
KB
-rw-r--r--
2024-03-19 22:46
glob.rst
5.07
KB
-rw-r--r--
2024-03-19 22:46
graphlib.rst
8.56
KB
-rw-r--r--
2024-03-19 22:46
grp.rst
2.32
KB
-rw-r--r--
2024-03-19 22:46
gzip.rst
9.7
KB
-rw-r--r--
2024-03-19 22:46
hashlib-blake2-tree.png
10.81
KB
-rw-r--r--
2024-03-19 22:46
hashlib.rst
27.32
KB
-rw-r--r--
2024-03-19 22:46
heapq.rst
13.59
KB
-rw-r--r--
2024-03-19 22:46
hmac.rst
4.93
KB
-rw-r--r--
2024-03-19 22:46
html.entities.rst
1.31
KB
-rw-r--r--
2024-03-19 22:46
html.parser.rst
11.02
KB
-rw-r--r--
2024-03-19 22:46
html.rst
1.27
KB
-rw-r--r--
2024-03-19 22:46
http.client.rst
20.86
KB
-rw-r--r--
2024-03-19 22:46
http.cookiejar.rst
27.68
KB
-rw-r--r--
2024-03-19 22:46
http.cookies.rst
8.79
KB
-rw-r--r--
2024-03-19 22:46
http.rst
7.61
KB
-rw-r--r--
2024-03-19 22:46
http.server.rst
19.68
KB
-rw-r--r--
2024-03-19 22:46
i18n.rst
408
B
-rw-r--r--
2024-03-19 22:46
idle.rst
38.83
KB
-rw-r--r--
2024-03-19 22:46
imaplib.rst
21.42
KB
-rw-r--r--
2024-03-19 22:46
imghdr.rst
3.01
KB
-rw-r--r--
2024-03-19 22:46
imp.rst
15.15
KB
-rw-r--r--
2024-03-19 22:46
importlib.metadata.rst
12.12
KB
-rw-r--r--
2024-03-19 22:46
importlib.rst
66.95
KB
-rw-r--r--
2024-03-19 22:46
index.rst
2.37
KB
-rw-r--r--
2024-03-19 22:46
inspect.rst
59.36
KB
-rw-r--r--
2024-03-19 22:46
internet.rst
923
B
-rw-r--r--
2024-03-19 22:46
intro.rst
2.95
KB
-rw-r--r--
2024-03-19 22:46
io.rst
44.14
KB
-rw-r--r--
2024-03-19 22:46
ipaddress.rst
35.22
KB
-rw-r--r--
2024-03-19 22:46
ipc.rst
643
B
-rw-r--r--
2024-03-19 22:46
itertools.rst
42.1
KB
-rw-r--r--
2024-03-19 22:46
json.rst
28.07
KB
-rw-r--r--
2024-03-19 22:46
keyword.rst
1.12
KB
-rw-r--r--
2024-03-19 22:46
language.rst
494
B
-rw-r--r--
2024-03-19 22:46
linecache.rst
2.49
KB
-rw-r--r--
2024-03-19 22:46
locale.rst
26.03
KB
-rw-r--r--
2024-03-19 22:46
logging.config.rst
36.69
KB
-rw-r--r--
2024-03-19 22:46
logging.handlers.rst
47.53
KB
-rw-r--r--
2024-03-19 22:46
logging.rst
66.77
KB
-rw-r--r--
2024-03-19 22:46
lzma.rst
16.95
KB
-rw-r--r--
2024-03-19 22:46
mailbox.rst
61.47
KB
-rw-r--r--
2024-03-19 22:46
mailcap.rst
4.43
KB
-rw-r--r--
2024-03-19 22:46
markup.rst
679
B
-rw-r--r--
2024-03-19 22:46
marshal.rst
5.35
KB
-rw-r--r--
2024-03-19 22:46
math.rst
21.01
KB
-rw-r--r--
2024-03-19 22:46
mimetypes.rst
9.96
KB
-rw-r--r--
2024-03-19 22:46
mm.rst
331
B
-rw-r--r--
2024-03-19 22:46
mmap.rst
13.41
KB
-rw-r--r--
2024-03-19 22:46
modulefinder.rst
3.16
KB
-rw-r--r--
2024-03-19 22:46
modules.rst
381
B
-rw-r--r--
2024-03-19 22:46
msilib.rst
18.51
KB
-rw-r--r--
2024-03-19 22:46
msvcrt.rst
4.5
KB
-rw-r--r--
2024-03-19 22:46
multiprocessing.rst
108.08
KB
-rw-r--r--
2024-03-19 22:46
multiprocessing.shared_memory.rst
14.44
KB
-rw-r--r--
2024-03-19 22:46
netdata.rst
314
B
-rw-r--r--
2024-03-19 22:46
netrc.rst
3.32
KB
-rw-r--r--
2024-03-19 22:46
nis.rst
2.07
KB
-rw-r--r--
2024-03-19 22:46
nntplib.rst
21.25
KB
-rw-r--r--
2024-03-19 22:46
numbers.rst
8.09
KB
-rw-r--r--
2024-03-19 22:46
numeric.rst
696
B
-rw-r--r--
2024-03-19 22:46
operator.rst
18.84
KB
-rw-r--r--
2024-03-19 22:46
optparse.rst
75.3
KB
-rw-r--r--
2024-03-19 22:46
os.path.rst
17.4
KB
-rw-r--r--
2024-03-19 22:46
os.rst
168.21
KB
-rw-r--r--
2024-03-19 22:46
ossaudiodev.rst
17.56
KB
-rw-r--r--
2024-03-19 22:46
pathlib-inheritance.png
6.28
KB
-rw-r--r--
2024-03-19 22:46
pathlib-inheritance.svg
55.23
KB
-rw-r--r--
2024-03-19 22:46
pathlib.rst
39.66
KB
-rw-r--r--
2024-03-19 22:46
pdb.rst
20.26
KB
-rw-r--r--
2024-03-19 22:46
persistence.rst
591
B
-rw-r--r--
2024-03-19 22:46
pickle.rst
46.52
KB
-rw-r--r--
2024-03-19 22:46
pickletools.rst
3.64
KB
-rw-r--r--
2024-03-19 22:46
pipes.rst
2.72
KB
-rw-r--r--
2024-03-19 22:46
pkgutil.rst
10.26
KB
-rw-r--r--
2024-03-19 22:46
platform.rst
9.7
KB
-rw-r--r--
2024-03-19 22:46
plistlib.rst
5.32
KB
-rw-r--r--
2024-03-19 22:46
poplib.rst
8.98
KB
-rw-r--r--
2024-03-19 22:46
posix.rst
3.52
KB
-rw-r--r--
2024-03-19 22:46
pprint.rst
16.34
KB
-rw-r--r--
2024-03-19 22:46
profile.rst
29.55
KB
-rw-r--r--
2024-03-19 22:46
pty.rst
4.5
KB
-rw-r--r--
2024-03-19 22:46
pwd.rst
2.67
KB
-rw-r--r--
2024-03-19 22:46
py_compile.rst
6.52
KB
-rw-r--r--
2024-03-19 22:46
pyclbr.rst
4.45
KB
-rw-r--r--
2024-03-19 22:46
pydoc.rst
5.01
KB
-rw-r--r--
2024-03-19 22:46
pyexpat.rst
29.52
KB
-rw-r--r--
2024-03-19 22:46
python.rst
480
B
-rw-r--r--
2024-03-19 22:46
queue.rst
10
KB
-rw-r--r--
2024-03-19 22:46
quopri.rst
2.51
KB
-rw-r--r--
2024-03-19 22:46
random.rst
22.98
KB
-rw-r--r--
2024-03-19 22:46
re.rst
68.48
KB
-rw-r--r--
2024-03-19 22:46
readline.rst
12.13
KB
-rw-r--r--
2024-03-19 22:46
reprlib.rst
5.12
KB
-rw-r--r--
2024-03-19 22:46
resource.rst
13
KB
-rw-r--r--
2024-03-19 22:46
rlcompleter.rst
2.24
KB
-rw-r--r--
2024-03-19 22:46
runpy.rst
8.09
KB
-rw-r--r--
2024-03-19 22:46
sched.rst
5.05
KB
-rw-r--r--
2024-03-19 22:46
secrets.rst
5.96
KB
-rw-r--r--
2024-03-19 22:46
security_warnings.rst
1.56
KB
-rw-r--r--
2024-03-19 22:46
select.rst
27.78
KB
-rw-r--r--
2024-03-19 22:46
selectors.rst
8.72
KB
-rw-r--r--
2024-03-19 22:46
shelve.rst
8.6
KB
-rw-r--r--
2024-03-19 22:46
shlex.rst
17.62
KB
-rw-r--r--
2024-03-19 22:46
shutil.rst
31.13
KB
-rw-r--r--
2024-03-19 22:46
signal.rst
25.12
KB
-rw-r--r--
2024-03-19 22:46
site.rst
10.38
KB
-rw-r--r--
2024-03-19 22:46
smtpd.rst
10.79
KB
-rw-r--r--
2024-03-19 22:46
smtplib.rst
23.66
KB
-rw-r--r--
2024-03-19 22:46
sndhdr.rst
2.09
KB
-rw-r--r--
2024-03-19 22:46
socket.rst
77.52
KB
-rw-r--r--
2024-03-19 22:46
socketserver.rst
24.01
KB
-rw-r--r--
2024-03-19 22:46
spwd.rst
3.03
KB
-rw-r--r--
2024-03-19 22:46
sqlite3.rst
66.94
KB
-rw-r--r--
2024-03-19 22:46
ssl.rst
104.53
KB
-rw-r--r--
2024-03-19 22:46
stat.rst
9.89
KB
-rw-r--r--
2024-03-19 22:46
statistics.rst
35.59
KB
-rw-r--r--
2024-03-19 22:46
stdtypes.rst
205.7
KB
-rw-r--r--
2024-03-19 22:46
string.rst
38.87
KB
-rw-r--r--
2024-03-19 22:46
stringprep.rst
4.18
KB
-rw-r--r--
2024-03-19 22:46
struct.rst
24.29
KB
-rw-r--r--
2024-03-19 22:46
subprocess.rst
57.99
KB
-rw-r--r--
2024-03-19 22:46
sunau.rst
7.24
KB
-rw-r--r--
2024-03-19 22:46
superseded.rst
561
B
-rw-r--r--
2024-03-19 22:46
symtable.rst
5.14
KB
-rw-r--r--
2024-03-19 22:46
sys.rst
76.36
KB
-rw-r--r--
2024-03-19 22:46
sysconfig.rst
9.7
KB
-rw-r--r--
2024-03-19 22:46
syslog.rst
4.55
KB
-rw-r--r--
2024-03-19 22:46
tabnanny.rst
1.96
KB
-rw-r--r--
2024-03-19 22:46
tarfile.rst
47.13
KB
-rw-r--r--
2024-03-19 22:46
telnetlib.rst
8.03
KB
-rw-r--r--
2024-03-19 22:46
tempfile.rst
15.69
KB
-rw-r--r--
2024-03-19 22:46
termios.rst
3.66
KB
-rw-r--r--
2024-03-19 22:46
test.rst
54.87
KB
-rw-r--r--
2024-03-19 22:46
text.rst
584
B
-rw-r--r--
2024-03-19 22:46
textwrap.rst
11.18
KB
-rw-r--r--
2024-03-19 22:46
threading.rst
42.74
KB
-rw-r--r--
2024-03-19 22:46
time.rst
36.47
KB
-rw-r--r--
2024-03-19 22:46
timeit.rst
13.32
KB
-rw-r--r--
2024-03-19 22:46
tk.rst
1.6
KB
-rw-r--r--
2024-03-19 22:46
tk_msg.png
14.63
KB
-rw-r--r--
2024-03-19 22:46
tkinter.colorchooser.rst
906
B
-rw-r--r--
2024-03-19 22:46
tkinter.dnd.rst
2.07
KB
-rw-r--r--
2024-03-19 22:46
tkinter.font.rst
2.91
KB
-rw-r--r--
2024-03-19 22:46
tkinter.messagebox.rst
1.27
KB
-rw-r--r--
2024-03-19 22:46
tkinter.rst
40.8
KB
-rw-r--r--
2024-03-19 22:46
tkinter.scrolledtext.rst
1.18
KB
-rw-r--r--
2024-03-19 22:46
tkinter.tix.rst
21.59
KB
-rw-r--r--
2024-03-19 22:46
tkinter.ttk.rst
61.02
KB
-rw-r--r--
2024-03-19 22:46
token-list.inc
2.62
KB
-rw-r--r--
2024-03-19 22:46
token.rst
2.7
KB
-rw-r--r--
2024-03-19 22:46
tokenize.rst
10.55
KB
-rw-r--r--
2024-03-19 22:46
trace.rst
6.82
KB
-rw-r--r--
2024-03-19 22:46
traceback.rst
18.93
KB
-rw-r--r--
2024-03-19 22:46
tracemalloc.rst
24.96
KB
-rw-r--r--
2024-03-19 22:46
tty.rst
1.07
KB
-rw-r--r--
2024-03-19 22:46
tulip_coro.dia
4.35
KB
-rw-r--r--
2024-03-19 22:46
tulip_coro.png
35.95
KB
-rw-r--r--
2024-03-19 22:46
turtle-star.pdf
4.31
KB
-rw-r--r--
2024-03-19 22:46
turtle-star.png
33.02
KB
-rw-r--r--
2024-03-19 22:46
turtle-star.ps
13.48
KB
-rw-r--r--
2024-03-19 22:46
turtle.rst
72.59
KB
-rw-r--r--
2024-03-19 22:46
types.rst
14.9
KB
-rw-r--r--
2024-03-19 22:46
typing.rst
77.48
KB
-rw-r--r--
2024-03-19 22:46
unicodedata.rst
5.83
KB
-rw-r--r--
2024-03-19 22:46
unittest.mock-examples.rst
47.14
KB
-rw-r--r--
2024-03-19 22:46
unittest.mock.rst
97.32
KB
-rw-r--r--
2024-03-19 22:46
unittest.rst
99.8
KB
-rw-r--r--
2024-03-19 22:46
unix.rst
397
B
-rw-r--r--
2024-03-19 22:46
urllib.error.rst
2.15
KB
-rw-r--r--
2024-03-19 22:46
urllib.parse.rst
32.65
KB
-rw-r--r--
2024-03-19 22:46
urllib.request.rst
59.94
KB
-rw-r--r--
2024-03-19 22:46
urllib.robotparser.rst
3.19
KB
-rw-r--r--
2024-03-19 22:46
urllib.rst
466
B
-rw-r--r--
2024-03-19 22:46
uu.rst
2.67
KB
-rw-r--r--
2024-03-19 22:46
uuid.rst
9.95
KB
-rw-r--r--
2024-03-19 22:46
venv.rst
25.52
KB
-rw-r--r--
2024-03-19 22:46
warnings.rst
23.71
KB
-rw-r--r--
2024-03-19 22:46
wave.rst
6.68
KB
-rw-r--r--
2024-03-19 22:46
weakref.rst
21.22
KB
-rw-r--r--
2024-03-19 22:46
webbrowser.rst
9.83
KB
-rw-r--r--
2024-03-19 22:46
windows.rst
258
B
-rw-r--r--
2024-03-19 22:46
winreg.rst
25.18
KB
-rw-r--r--
2024-03-19 22:46
winsound.rst
5.01
KB
-rw-r--r--
2024-03-19 22:46
wsgiref.rst
32.61
KB
-rw-r--r--
2024-03-19 22:46
xdrlib.rst
8.02
KB
-rw-r--r--
2024-03-19 22:46
xml.dom.minidom.rst
11
KB
-rw-r--r--
2024-03-19 22:46
xml.dom.pulldom.rst
5.16
KB
-rw-r--r--
2024-03-19 22:46
xml.dom.rst
38.62
KB
-rw-r--r--
2024-03-19 22:46
xml.etree.elementtree.rst
58.55
KB
-rw-r--r--
2024-03-19 22:46
xml.rst
6.49
KB
-rw-r--r--
2024-03-19 22:46
xml.sax.handler.rst
16.43
KB
-rw-r--r--
2024-03-19 22:46
xml.sax.reader.rst
11.97
KB
-rw-r--r--
2024-03-19 22:46
xml.sax.rst
7.09
KB
-rw-r--r--
2024-03-19 22:46
xml.sax.utils.rst
3.81
KB
-rw-r--r--
2024-03-19 22:46
xmlrpc.client.rst
22.52
KB
-rw-r--r--
2024-03-19 22:46
xmlrpc.rst
475
B
-rw-r--r--
2024-03-19 22:46
xmlrpc.server.rst
16.25
KB
-rw-r--r--
2024-03-19 22:46
zipapp.rst
17.85
KB
-rw-r--r--
2024-03-19 22:46
zipfile.rst
29.76
KB
-rw-r--r--
2024-03-19 22:46
zipimport.rst
6.79
KB
-rw-r--r--
2024-03-19 22:46
zlib.rst
13.83
KB
-rw-r--r--
2024-03-19 22:46
zoneinfo.rst
15.66
KB
-rw-r--r--
2024-03-19 22:46
Save
Rename
:mod:`tracemalloc` --- Trace memory allocations =============================================== .. module:: tracemalloc :synopsis: Trace memory allocations. .. versionadded:: 3.4 **Source code:** :source:`Lib/tracemalloc.py` -------------- The tracemalloc module is a debug tool to trace memory blocks allocated by Python. It provides the following information: * Traceback where an object was allocated * Statistics on allocated memory blocks per filename and per line number: total size, number and average size of allocated memory blocks * Compute the differences between two snapshots to detect memory leaks To trace most memory blocks allocated by Python, the module should be started as early as possible by setting the :envvar:`PYTHONTRACEMALLOC` environment variable to ``1``, or by using :option:`-X` ``tracemalloc`` command line option. The :func:`tracemalloc.start` function can be called at runtime to start tracing Python memory allocations. By default, a trace of an allocated memory block only stores the most recent frame (1 frame). To store 25 frames at startup: set the :envvar:`PYTHONTRACEMALLOC` environment variable to ``25``, or use the :option:`-X` ``tracemalloc=25`` command line option. Examples -------- Display the top 10 ^^^^^^^^^^^^^^^^^^ Display the 10 files allocating the most memory:: import tracemalloc tracemalloc.start() # ... run your application ... snapshot = tracemalloc.take_snapshot() top_stats = snapshot.statistics('lineno') print("[ Top 10 ]") for stat in top_stats[:10]: print(stat) Example of output of the Python test suite:: [ Top 10 ] <frozen importlib._bootstrap>:716: size=4855 KiB, count=39328, average=126 B <frozen importlib._bootstrap>:284: size=521 KiB, count=3199, average=167 B /usr/lib/python3.4/collections/__init__.py:368: size=244 KiB, count=2315, average=108 B /usr/lib/python3.4/unittest/case.py:381: size=185 KiB, count=779, average=243 B /usr/lib/python3.4/unittest/case.py:402: size=154 KiB, count=378, average=416 B /usr/lib/python3.4/abc.py:133: size=88.7 KiB, count=347, average=262 B <frozen importlib._bootstrap>:1446: size=70.4 KiB, count=911, average=79 B <frozen importlib._bootstrap>:1454: size=52.0 KiB, count=25, average=2131 B <string>:5: size=49.7 KiB, count=148, average=344 B /usr/lib/python3.4/sysconfig.py:411: size=48.0 KiB, count=1, average=48.0 KiB We can see that Python loaded ``4855 KiB`` data (bytecode and constants) from modules and that the :mod:`collections` module allocated ``244 KiB`` to build :class:`~collections.namedtuple` types. See :meth:`Snapshot.statistics` for more options. Compute differences ^^^^^^^^^^^^^^^^^^^ Take two snapshots and display the differences:: import tracemalloc tracemalloc.start() # ... start your application ... snapshot1 = tracemalloc.take_snapshot() # ... call the function leaking memory ... snapshot2 = tracemalloc.take_snapshot() top_stats = snapshot2.compare_to(snapshot1, 'lineno') print("[ Top 10 differences ]") for stat in top_stats[:10]: print(stat) Example of output before/after running some tests of the Python test suite:: [ Top 10 differences ] <frozen importlib._bootstrap>:716: size=8173 KiB (+4428 KiB), count=71332 (+39369), average=117 B /usr/lib/python3.4/linecache.py:127: size=940 KiB (+940 KiB), count=8106 (+8106), average=119 B /usr/lib/python3.4/unittest/case.py:571: size=298 KiB (+298 KiB), count=589 (+589), average=519 B <frozen importlib._bootstrap>:284: size=1005 KiB (+166 KiB), count=7423 (+1526), average=139 B /usr/lib/python3.4/mimetypes.py:217: size=112 KiB (+112 KiB), count=1334 (+1334), average=86 B /usr/lib/python3.4/http/server.py:848: size=96.0 KiB (+96.0 KiB), count=1 (+1), average=96.0 KiB /usr/lib/python3.4/inspect.py:1465: size=83.5 KiB (+83.5 KiB), count=109 (+109), average=784 B /usr/lib/python3.4/unittest/mock.py:491: size=77.7 KiB (+77.7 KiB), count=143 (+143), average=557 B /usr/lib/python3.4/urllib/parse.py:476: size=71.8 KiB (+71.8 KiB), count=969 (+969), average=76 B /usr/lib/python3.4/contextlib.py:38: size=67.2 KiB (+67.2 KiB), count=126 (+126), average=546 B We can see that Python has loaded ``8173 KiB`` of module data (bytecode and constants), and that this is ``4428 KiB`` more than had been loaded before the tests, when the previous snapshot was taken. Similarly, the :mod:`linecache` module has cached ``940 KiB`` of Python source code to format tracebacks, all of it since the previous snapshot. If the system has little free memory, snapshots can be written on disk using the :meth:`Snapshot.dump` method to analyze the snapshot offline. Then use the :meth:`Snapshot.load` method reload the snapshot. Get the traceback of a memory block ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Code to display the traceback of the biggest memory block:: import tracemalloc # Store 25 frames tracemalloc.start(25) # ... run your application ... snapshot = tracemalloc.take_snapshot() top_stats = snapshot.statistics('traceback') # pick the biggest memory block stat = top_stats[0] print("%s memory blocks: %.1f KiB" % (stat.count, stat.size / 1024)) for line in stat.traceback.format(): print(line) Example of output of the Python test suite (traceback limited to 25 frames):: 903 memory blocks: 870.1 KiB File "<frozen importlib._bootstrap>", line 716 File "<frozen importlib._bootstrap>", line 1036 File "<frozen importlib._bootstrap>", line 934 File "<frozen importlib._bootstrap>", line 1068 File "<frozen importlib._bootstrap>", line 619 File "<frozen importlib._bootstrap>", line 1581 File "<frozen importlib._bootstrap>", line 1614 File "/usr/lib/python3.4/doctest.py", line 101 import pdb File "<frozen importlib._bootstrap>", line 284 File "<frozen importlib._bootstrap>", line 938 File "<frozen importlib._bootstrap>", line 1068 File "<frozen importlib._bootstrap>", line 619 File "<frozen importlib._bootstrap>", line 1581 File "<frozen importlib._bootstrap>", line 1614 File "/usr/lib/python3.4/test/support/__init__.py", line 1728 import doctest File "/usr/lib/python3.4/test/test_pickletools.py", line 21 support.run_doctest(pickletools) File "/usr/lib/python3.4/test/regrtest.py", line 1276 test_runner() File "/usr/lib/python3.4/test/regrtest.py", line 976 display_failure=not verbose) File "/usr/lib/python3.4/test/regrtest.py", line 761 match_tests=ns.match_tests) File "/usr/lib/python3.4/test/regrtest.py", line 1563 main() File "/usr/lib/python3.4/test/__main__.py", line 3 regrtest.main_in_temp_cwd() File "/usr/lib/python3.4/runpy.py", line 73 exec(code, run_globals) File "/usr/lib/python3.4/runpy.py", line 160 "__main__", fname, loader, pkg_name) We can see that the most memory was allocated in the :mod:`importlib` module to load data (bytecode and constants) from modules: ``870.1 KiB``. The traceback is where the :mod:`importlib` loaded data most recently: on the ``import pdb`` line of the :mod:`doctest` module. The traceback may change if a new module is loaded. Pretty top ^^^^^^^^^^ Code to display the 10 lines allocating the most memory with a pretty output, ignoring ``<frozen importlib._bootstrap>`` and ``<unknown>`` files:: import linecache import os import tracemalloc def display_top(snapshot, key_type='lineno', limit=10): snapshot = snapshot.filter_traces(( tracemalloc.Filter(False, "<frozen importlib._bootstrap>"), tracemalloc.Filter(False, "<unknown>"), )) top_stats = snapshot.statistics(key_type) print("Top %s lines" % limit) for index, stat in enumerate(top_stats[:limit], 1): frame = stat.traceback[0] print("#%s: %s:%s: %.1f KiB" % (index, frame.filename, frame.lineno, stat.size / 1024)) line = linecache.getline(frame.filename, frame.lineno).strip() if line: print(' %s' % line) other = top_stats[limit:] if other: size = sum(stat.size for stat in other) print("%s other: %.1f KiB" % (len(other), size / 1024)) total = sum(stat.size for stat in top_stats) print("Total allocated size: %.1f KiB" % (total / 1024)) tracemalloc.start() # ... run your application ... snapshot = tracemalloc.take_snapshot() display_top(snapshot) Example of output of the Python test suite:: Top 10 lines #1: Lib/base64.py:414: 419.8 KiB _b85chars2 = [(a + b) for a in _b85chars for b in _b85chars] #2: Lib/base64.py:306: 419.8 KiB _a85chars2 = [(a + b) for a in _a85chars for b in _a85chars] #3: collections/__init__.py:368: 293.6 KiB exec(class_definition, namespace) #4: Lib/abc.py:133: 115.2 KiB cls = super().__new__(mcls, name, bases, namespace) #5: unittest/case.py:574: 103.1 KiB testMethod() #6: Lib/linecache.py:127: 95.4 KiB lines = fp.readlines() #7: urllib/parse.py:476: 71.8 KiB for a in _hexdig for b in _hexdig} #8: <string>:5: 62.0 KiB #9: Lib/_weakrefset.py:37: 60.0 KiB self.data = set() #10: Lib/base64.py:142: 59.8 KiB _b32tab2 = [a + b for a in _b32tab for b in _b32tab] 6220 other: 3602.8 KiB Total allocated size: 5303.1 KiB See :meth:`Snapshot.statistics` for more options. Record the current and peak size of all traced memory blocks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following code computes two sums like ``0 + 1 + 2 + ...`` inefficiently, by creating a list of those numbers. This list consumes a lot of memory temporarily. We can use :func:`get_traced_memory` and :func:`reset_peak` to observe the small memory usage after the sum is computed as well as the peak memory usage during the computations:: import tracemalloc tracemalloc.start() # Example code: compute a sum with a large temporary list large_sum = sum(list(range(100000))) first_size, first_peak = tracemalloc.get_traced_memory() tracemalloc.reset_peak() # Example code: compute a sum with a small temporary list small_sum = sum(list(range(1000))) second_size, second_peak = tracemalloc.get_traced_memory() print(f"{first_size=}, {first_peak=}") print(f"{second_size=}, {second_peak=}") Output:: first_size=664, first_peak=3592984 second_size=804, second_peak=29704 Using :func:`reset_peak` ensured we could accurately record the peak during the computation of ``small_sum``, even though it is much smaller than the overall peak size of memory blocks since the :func:`start` call. Without the call to :func:`reset_peak`, ``second_peak`` would still be the peak from the computation ``large_sum`` (that is, equal to ``first_peak``). In this case, both peaks are much higher than the final memory usage, and which suggests we could optimise (by removing the unnecessary call to :class:`list`, and writing ``sum(range(...))``). API --- Functions ^^^^^^^^^ .. function:: clear_traces() Clear traces of memory blocks allocated by Python. See also :func:`stop`. .. function:: get_object_traceback(obj) Get the traceback where the Python object *obj* was allocated. Return a :class:`Traceback` instance, or ``None`` if the :mod:`tracemalloc` module is not tracing memory allocations or did not trace the allocation of the object. See also :func:`gc.get_referrers` and :func:`sys.getsizeof` functions. .. function:: get_traceback_limit() Get the maximum number of frames stored in the traceback of a trace. The :mod:`tracemalloc` module must be tracing memory allocations to get the limit, otherwise an exception is raised. The limit is set by the :func:`start` function. .. function:: get_traced_memory() Get the current size and peak size of memory blocks traced by the :mod:`tracemalloc` module as a tuple: ``(current: int, peak: int)``. .. function:: reset_peak() Set the peak size of memory blocks traced by the :mod:`tracemalloc` module to the current size. Do nothing if the :mod:`tracemalloc` module is not tracing memory allocations. This function only modifies the recorded peak size, and does not modify or clear any traces, unlike :func:`clear_traces`. Snapshots taken with :func:`take_snapshot` before a call to :func:`reset_peak` can be meaningfully compared to snapshots taken after the call. See also :func:`get_traced_memory`. .. versionadded:: 3.9 .. function:: get_tracemalloc_memory() Get the memory usage in bytes of the :mod:`tracemalloc` module used to store traces of memory blocks. Return an :class:`int`. .. function:: is_tracing() ``True`` if the :mod:`tracemalloc` module is tracing Python memory allocations, ``False`` otherwise. See also :func:`start` and :func:`stop` functions. .. function:: start(nframe: int=1) Start tracing Python memory allocations: install hooks on Python memory allocators. Collected tracebacks of traces will be limited to *nframe* frames. By default, a trace of a memory block only stores the most recent frame: the limit is ``1``. *nframe* must be greater or equal to ``1``. You can still read the original number of total frames that composed the traceback by looking at the :attr:`Traceback.total_nframe` attribute. Storing more than ``1`` frame is only useful to compute statistics grouped by ``'traceback'`` or to compute cumulative statistics: see the :meth:`Snapshot.compare_to` and :meth:`Snapshot.statistics` methods. Storing more frames increases the memory and CPU overhead of the :mod:`tracemalloc` module. Use the :func:`get_tracemalloc_memory` function to measure how much memory is used by the :mod:`tracemalloc` module. The :envvar:`PYTHONTRACEMALLOC` environment variable (``PYTHONTRACEMALLOC=NFRAME``) and the :option:`-X` ``tracemalloc=NFRAME`` command line option can be used to start tracing at startup. See also :func:`stop`, :func:`is_tracing` and :func:`get_traceback_limit` functions. .. function:: stop() Stop tracing Python memory allocations: uninstall hooks on Python memory allocators. Also clears all previously collected traces of memory blocks allocated by Python. Call :func:`take_snapshot` function to take a snapshot of traces before clearing them. See also :func:`start`, :func:`is_tracing` and :func:`clear_traces` functions. .. function:: take_snapshot() Take a snapshot of traces of memory blocks allocated by Python. Return a new :class:`Snapshot` instance. The snapshot does not include memory blocks allocated before the :mod:`tracemalloc` module started to trace memory allocations. Tracebacks of traces are limited to :func:`get_traceback_limit` frames. Use the *nframe* parameter of the :func:`start` function to store more frames. The :mod:`tracemalloc` module must be tracing memory allocations to take a snapshot, see the :func:`start` function. See also the :func:`get_object_traceback` function. DomainFilter ^^^^^^^^^^^^ .. class:: DomainFilter(inclusive: bool, domain: int) Filter traces of memory blocks by their address space (domain). .. versionadded:: 3.6 .. attribute:: inclusive If *inclusive* is ``True`` (include), match memory blocks allocated in the address space :attr:`domain`. If *inclusive* is ``False`` (exclude), match memory blocks not allocated in the address space :attr:`domain`. .. attribute:: domain Address space of a memory block (``int``). Read-only property. Filter ^^^^^^ .. class:: Filter(inclusive: bool, filename_pattern: str, lineno: int=None, all_frames: bool=False, domain: int=None) Filter on traces of memory blocks. See the :func:`fnmatch.fnmatch` function for the syntax of *filename_pattern*. The ``'.pyc'`` file extension is replaced with ``'.py'``. Examples: * ``Filter(True, subprocess.__file__)`` only includes traces of the :mod:`subprocess` module * ``Filter(False, tracemalloc.__file__)`` excludes traces of the :mod:`tracemalloc` module * ``Filter(False, "<unknown>")`` excludes empty tracebacks .. versionchanged:: 3.5 The ``'.pyo'`` file extension is no longer replaced with ``'.py'``. .. versionchanged:: 3.6 Added the :attr:`domain` attribute. .. attribute:: domain Address space of a memory block (``int`` or ``None``). tracemalloc uses the domain ``0`` to trace memory allocations made by Python. C extensions can use other domains to trace other resources. .. attribute:: inclusive If *inclusive* is ``True`` (include), only match memory blocks allocated in a file with a name matching :attr:`filename_pattern` at line number :attr:`lineno`. If *inclusive* is ``False`` (exclude), ignore memory blocks allocated in a file with a name matching :attr:`filename_pattern` at line number :attr:`lineno`. .. attribute:: lineno Line number (``int``) of the filter. If *lineno* is ``None``, the filter matches any line number. .. attribute:: filename_pattern Filename pattern of the filter (``str``). Read-only property. .. attribute:: all_frames If *all_frames* is ``True``, all frames of the traceback are checked. If *all_frames* is ``False``, only the most recent frame is checked. This attribute has no effect if the traceback limit is ``1``. See the :func:`get_traceback_limit` function and :attr:`Snapshot.traceback_limit` attribute. Frame ^^^^^ .. class:: Frame Frame of a traceback. The :class:`Traceback` class is a sequence of :class:`Frame` instances. .. attribute:: filename Filename (``str``). .. attribute:: lineno Line number (``int``). Snapshot ^^^^^^^^ .. class:: Snapshot Snapshot of traces of memory blocks allocated by Python. The :func:`take_snapshot` function creates a snapshot instance. .. method:: compare_to(old_snapshot: Snapshot, key_type: str, cumulative: bool=False) Compute the differences with an old snapshot. Get statistics as a sorted list of :class:`StatisticDiff` instances grouped by *key_type*. See the :meth:`Snapshot.statistics` method for *key_type* and *cumulative* parameters. The result is sorted from the biggest to the smallest by: absolute value of :attr:`StatisticDiff.size_diff`, :attr:`StatisticDiff.size`, absolute value of :attr:`StatisticDiff.count_diff`, :attr:`Statistic.count` and then by :attr:`StatisticDiff.traceback`. .. method:: dump(filename) Write the snapshot into a file. Use :meth:`load` to reload the snapshot. .. method:: filter_traces(filters) Create a new :class:`Snapshot` instance with a filtered :attr:`traces` sequence, *filters* is a list of :class:`DomainFilter` and :class:`Filter` instances. If *filters* is an empty list, return a new :class:`Snapshot` instance with a copy of the traces. All inclusive filters are applied at once, a trace is ignored if no inclusive filters match it. A trace is ignored if at least one exclusive filter matches it. .. versionchanged:: 3.6 :class:`DomainFilter` instances are now also accepted in *filters*. .. classmethod:: load(filename) Load a snapshot from a file. See also :meth:`dump`. .. method:: statistics(key_type: str, cumulative: bool=False) Get statistics as a sorted list of :class:`Statistic` instances grouped by *key_type*: ===================== ======================== key_type description ===================== ======================== ``'filename'`` filename ``'lineno'`` filename and line number ``'traceback'`` traceback ===================== ======================== If *cumulative* is ``True``, cumulate size and count of memory blocks of all frames of the traceback of a trace, not only the most recent frame. The cumulative mode can only be used with *key_type* equals to ``'filename'`` and ``'lineno'``. The result is sorted from the biggest to the smallest by: :attr:`Statistic.size`, :attr:`Statistic.count` and then by :attr:`Statistic.traceback`. .. attribute:: traceback_limit Maximum number of frames stored in the traceback of :attr:`traces`: result of the :func:`get_traceback_limit` when the snapshot was taken. .. attribute:: traces Traces of all memory blocks allocated by Python: sequence of :class:`Trace` instances. The sequence has an undefined order. Use the :meth:`Snapshot.statistics` method to get a sorted list of statistics. Statistic ^^^^^^^^^ .. class:: Statistic Statistic on memory allocations. :func:`Snapshot.statistics` returns a list of :class:`Statistic` instances. See also the :class:`StatisticDiff` class. .. attribute:: count Number of memory blocks (``int``). .. attribute:: size Total size of memory blocks in bytes (``int``). .. attribute:: traceback Traceback where the memory block was allocated, :class:`Traceback` instance. StatisticDiff ^^^^^^^^^^^^^ .. class:: StatisticDiff Statistic difference on memory allocations between an old and a new :class:`Snapshot` instance. :func:`Snapshot.compare_to` returns a list of :class:`StatisticDiff` instances. See also the :class:`Statistic` class. .. attribute:: count Number of memory blocks in the new snapshot (``int``): ``0`` if the memory blocks have been released in the new snapshot. .. attribute:: count_diff Difference of number of memory blocks between the old and the new snapshots (``int``): ``0`` if the memory blocks have been allocated in the new snapshot. .. attribute:: size Total size of memory blocks in bytes in the new snapshot (``int``): ``0`` if the memory blocks have been released in the new snapshot. .. attribute:: size_diff Difference of total size of memory blocks in bytes between the old and the new snapshots (``int``): ``0`` if the memory blocks have been allocated in the new snapshot. .. attribute:: traceback Traceback where the memory blocks were allocated, :class:`Traceback` instance. Trace ^^^^^ .. class:: Trace Trace of a memory block. The :attr:`Snapshot.traces` attribute is a sequence of :class:`Trace` instances. .. versionchanged:: 3.6 Added the :attr:`domain` attribute. .. attribute:: domain Address space of a memory block (``int``). Read-only property. tracemalloc uses the domain ``0`` to trace memory allocations made by Python. C extensions can use other domains to trace other resources. .. attribute:: size Size of the memory block in bytes (``int``). .. attribute:: traceback Traceback where the memory block was allocated, :class:`Traceback` instance. Traceback ^^^^^^^^^ .. class:: Traceback Sequence of :class:`Frame` instances sorted from the oldest frame to the most recent frame. A traceback contains at least ``1`` frame. If the ``tracemalloc`` module failed to get a frame, the filename ``"<unknown>"`` at line number ``0`` is used. When a snapshot is taken, tracebacks of traces are limited to :func:`get_traceback_limit` frames. See the :func:`take_snapshot` function. The original number of frames of the traceback is stored in the :attr:`Traceback.total_nframe` attribute. That allows to know if a traceback has been truncated by the traceback limit. The :attr:`Trace.traceback` attribute is an instance of :class:`Traceback` instance. .. versionchanged:: 3.7 Frames are now sorted from the oldest to the most recent, instead of most recent to oldest. .. attribute:: total_nframe Total number of frames that composed the traceback before truncation. This attribute can be set to ``None`` if the information is not available. .. versionchanged:: 3.9 The :attr:`Traceback.total_nframe` attribute was added. .. method:: format(limit=None, most_recent_first=False) Format the traceback as a list of lines. Use the :mod:`linecache` module to retrieve lines from the source code. If *limit* is set, format the *limit* most recent frames if *limit* is positive. Otherwise, format the ``abs(limit)`` oldest frames. If *most_recent_first* is ``True``, the order of the formatted frames is reversed, returning the most recent frame first instead of last. Similar to the :func:`traceback.format_tb` function, except that :meth:`.format` does not include newlines. Example:: print("Traceback (most recent call first):") for line in traceback: print(line) Output:: Traceback (most recent call first): File "test.py", line 9 obj = Object() File "test.py", line 12 tb = tracemalloc.get_object_traceback(f())