✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ beluga.o2switch.net ​🇻​♯➤ 4.18.0-553.123.2.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 185.154.139.77 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.254
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /opt/alt/python37/lib64/python3.7/Tools/scripts//pdeps.py
#! /opt/alt/python37/bin/python3.7

# pdeps
#
# Find dependencies between a bunch of Python modules.
#
# Usage:
#       pdeps file1.py file2.py ...
#
# Output:
# Four tables separated by lines like '--- Closure ---':
# 1) Direct dependencies, listing which module imports which other modules
# 2) The inverse of (1)
# 3) Indirect dependencies, or the closure of the above
# 4) The inverse of (3)
#
# To do:
# - command line options to select output type
# - option to automatically scan the Python library for referenced modules
# - option to limit output to particular modules


import sys
import re
import os


# Main program
#
def main():
    args = sys.argv[1:]
    if not args:
        print('usage: pdeps file.py file.py ...')
        return 2
    #
    table = {}
    for arg in args:
        process(arg, table)
    #
    print('--- Uses ---')
    printresults(table)
    #
    print('--- Used By ---')
    inv = inverse(table)
    printresults(inv)
    #
    print('--- Closure of Uses ---')
    reach = closure(table)
    printresults(reach)
    #
    print('--- Closure of Used By ---')
    invreach = inverse(reach)
    printresults(invreach)
    #
    return 0


# Compiled regular expressions to search for import statements
#
m_import = re.compile('^[ \t]*from[ \t]+([^ \t]+)[ \t]+')
m_from = re.compile('^[ \t]*import[ \t]+([^#]+)')


# Collect data from one file
#
def process(filename, table):
    fp = open(filename, 'r')
    mod = os.path.basename(filename)
    if mod[-3:] == '.py':
        mod = mod[:-3]
    table[mod] = list = []
    while 1:
        line = fp.readline()
        if not line: break
        while line[-1:] == '\\':
            nextline = fp.readline()
            if not nextline: break
            line = line[:-1] + nextline
        m_found = m_import.match(line) or m_from.match(line)
        if m_found:
            (a, b), (a1, b1) = m_found.regs[:2]
        else: continue
        words = line[a1:b1].split(',')
        # print '#', line, words
        for word in words:
            word = word.strip()
            if word not in list:
                list.append(word)
    fp.close()


# Compute closure (this is in fact totally general)
#
def closure(table):
    modules = list(table.keys())
    #
    # Initialize reach with a copy of table
    #
    reach = {}
    for mod in modules:
        reach[mod] = table[mod][:]
    #
    # Iterate until no more change
    #
    change = 1
    while change:
        change = 0
        for mod in modules:
            for mo in reach[mod]:
                if mo in modules:
                    for m in reach[mo]:
                        if m not in reach[mod]:
                            reach[mod].append(m)
                            change = 1
    #
    return reach


# Invert a table (this is again totally general).
# All keys of the original table are made keys of the inverse,
# so there may be empty lists in the inverse.
#
def inverse(table):
    inv = {}
    for key in table.keys():
        if key not in inv:
            inv[key] = []
        for item in table[key]:
            store(inv, item, key)
    return inv


# Store "item" in "dict" under "key".
# The dictionary maps keys to lists of items.
# If there is no list for the key yet, it is created.
#
def store(dict, key, item):
    if key in dict:
        dict[key].append(item)
    else:
        dict[key] = [item]


# Tabulate results neatly
#
def printresults(table):
    modules = sorted(table.keys())
    maxlen = 0
    for mod in modules: maxlen = max(maxlen, len(mod))
    for mod in modules:
        list = sorted(table[mod])
        print(mod.ljust(maxlen), ':', end=' ')
        if mod in list:
            print('(*)', end=' ')
        for ref in list:
            print(ref, end=' ')
        print()


# Call main and honor exit status
if __name__ == '__main__':
    try:
        sys.exit(main())
    except KeyboardInterrupt:
        sys.exit(1)


Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
25 Jul 2024 8.41 AM
root / linksafe
0755
__pycache__
--
25 Jul 2024 8.41 AM
root / linksafe
0755
2to3
0.094 KB
5 Jun 2023 8.45 PM
root / linksafe
0755
README
4.53 KB
5 Jun 2023 8.45 PM
root / linksafe
0644
abitype.py
5.453 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
analyze_dxp.py
4.085 KB
17 Apr 2024 5.36 PM
root / linksafe
0644
byext.py
3.823 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
byteyears.py
1.622 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
checkpip.py
0.786 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
checkpyc.py
2.174 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
cleanfuture.py
8.432 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
combinerefs.py
4.325 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
copytime.py
0.658 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
crlf.py
0.628 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
db2pickle.py
3.557 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
diff.py
2.215 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
dutree.doc
2.185 KB
5 Jun 2023 8.45 PM
root / linksafe
0644
dutree.py
1.581 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
eptags.py
1.469 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
find-uname.py
1.19 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
find_recursionlimit.py
3.912 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
finddiv.py
2.449 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
findlinksto.py
1.057 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
findnocoding.py
2.895 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
fixcid.py
9.826 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
fixdiv.py
13.567 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
fixheader.py
1.19 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
fixnotice.py
2.998 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
fixps.py
0.89 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
generate_opcode_h.py
1.708 KB
17 Apr 2024 5.36 PM
root / linksafe
0644
get-remote-certificate.py
2.292 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
google.py
0.5 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
gprof2html.py
2.188 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
h2py.py
5.483 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
highlight.py
8.959 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
idle3
0.094 KB
5 Jun 2023 8.45 PM
root / linksafe
0755
ifdef.py
3.644 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
import_diagnostics.py
0.987 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
lfcr.py
0.636 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
linktree.py
2.394 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
lll.py
0.741 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
mailerdaemon.py
7.863 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
make_ctype.py
2.238 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
md5sum.py
2.46 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
mkreal.py
1.604 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
ndiff.py
3.741 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
nm2def.py
2.407 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
objgraph.py
5.79 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
parse_html5_entities.py
3.917 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
parseentities.py
1.667 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
patchcheck.py
9.57 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
pathfix.py
5.039 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
pdeps.py
3.834 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
pickle2db.py
3.938 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
pindent.py
16.736 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
ptags.py
1.209 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
pydoc3
0.078 KB
5 Jun 2023 8.45 PM
root / linksafe
0755
pysource.py
3.785 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
pyvenv
0.427 KB
5 Jun 2023 8.45 PM
root / linksafe
0755
reindent-rst.py
0.284 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
reindent.py
11.385 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
rgrep.py
1.452 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
run_tests.py
1.778 KB
17 Apr 2024 5.36 PM
root / linksafe
0644
serve.py
1.146 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
smelly.py
2.081 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
suff.py
0.509 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
texi2html.py
68.542 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
untabify.py
1.276 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
update_file.py
0.744 KB
17 Apr 2024 5.36 PM
root / linksafe
0644
verify_ensurepip_wheels.py
3.12 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
which.py
1.605 KB
17 Apr 2024 5.36 PM
root / linksafe
0755
win_add2path.py
1.619 KB
17 Apr 2024 5.36 PM
root / linksafe
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF