$73 GRAYBYTE WORDPRESS FILE MANAGER $80

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.217.254 | ADMIN IP 216.73.216.180
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/opt/alt/python313/lib64/python3.13/

HOME
Current File : /opt/alt/python313/lib64/python3.13//fnmatch.py
"""Filename matching with shell patterns.

fnmatch(FILENAME, PATTERN) matches according to the local convention.
fnmatchcase(FILENAME, PATTERN) always takes case in account.

The functions operate by translating the pattern into a regular
expression.  They cache the compiled regular expressions for speed.

The function translate(PATTERN) returns a regular expression
corresponding to PATTERN.  (It does not compile it.)
"""
import os
import posixpath
import re
import functools

__all__ = ["filter", "fnmatch", "fnmatchcase", "translate"]

def fnmatch(name, pat):
    """Test whether FILENAME matches PATTERN.

    Patterns are Unix shell style:

    *       matches everything
    ?       matches any single character
    [seq]   matches any character in seq
    [!seq]  matches any char not in seq

    An initial period in FILENAME is not special.
    Both FILENAME and PATTERN are first case-normalized
    if the operating system requires it.
    If you don't want this, use fnmatchcase(FILENAME, PATTERN).
    """
    name = os.path.normcase(name)
    pat = os.path.normcase(pat)
    return fnmatchcase(name, pat)

@functools.lru_cache(maxsize=32768, typed=True)
def _compile_pattern(pat):
    if isinstance(pat, bytes):
        pat_str = str(pat, 'ISO-8859-1')
        res_str = translate(pat_str)
        res = bytes(res_str, 'ISO-8859-1')
    else:
        res = translate(pat)
    return re.compile(res).match

def filter(names, pat):
    """Construct a list from those elements of the iterable NAMES that match PAT."""
    result = []
    pat = os.path.normcase(pat)
    match = _compile_pattern(pat)
    if os.path is posixpath:
        # normcase on posix is NOP. Optimize it away from the loop.
        for name in names:
            if match(name):
                result.append(name)
    else:
        for name in names:
            if match(os.path.normcase(name)):
                result.append(name)
    return result

def fnmatchcase(name, pat):
    """Test whether FILENAME matches PATTERN, including case.

    This is a version of fnmatch() which doesn't case-normalize
    its arguments.
    """
    match = _compile_pattern(pat)
    return match(name) is not None


def translate(pat):
    """Translate a shell PATTERN to a regular expression.

    There is no way to quote meta-characters.
    """

    STAR = object()
    parts = _translate(pat, STAR, '.')
    return _join_translated_parts(parts, STAR)


def _translate(pat, STAR, QUESTION_MARK):
    res = []
    add = res.append
    i, n = 0, len(pat)
    while i < n:
        c = pat[i]
        i = i+1
        if c == '*':
            # compress consecutive `*` into one
            if (not res) or res[-1] is not STAR:
                add(STAR)
        elif c == '?':
            add(QUESTION_MARK)
        elif c == '[':
            j = i
            if j < n and pat[j] == '!':
                j = j+1
            if j < n and pat[j] == ']':
                j = j+1
            while j < n and pat[j] != ']':
                j = j+1
            if j >= n:
                add('\\[')
            else:
                stuff = pat[i:j]
                if '-' not in stuff:
                    stuff = stuff.replace('\\', r'\\')
                else:
                    chunks = []
                    k = i+2 if pat[i] == '!' else i+1
                    while True:
                        k = pat.find('-', k, j)
                        if k < 0:
                            break
                        chunks.append(pat[i:k])
                        i = k+1
                        k = k+3
                    chunk = pat[i:j]
                    if chunk:
                        chunks.append(chunk)
                    else:
                        chunks[-1] += '-'
                    # Remove empty ranges -- invalid in RE.
                    for k in range(len(chunks)-1, 0, -1):
                        if chunks[k-1][-1] > chunks[k][0]:
                            chunks[k-1] = chunks[k-1][:-1] + chunks[k][1:]
                            del chunks[k]
                    # Escape backslashes and hyphens for set difference (--).
                    # Hyphens that create ranges shouldn't be escaped.
                    stuff = '-'.join(s.replace('\\', r'\\').replace('-', r'\-')
                                     for s in chunks)
                # Escape set operations (&&, ~~ and ||).
                stuff = re.sub(r'([&~|])', r'\\\1', stuff)
                i = j+1
                if not stuff:
                    # Empty range: never match.
                    add('(?!)')
                elif stuff == '!':
                    # Negated empty range: match any character.
                    add('.')
                else:
                    if stuff[0] == '!':
                        stuff = '^' + stuff[1:]
                    elif stuff[0] in ('^', '['):
                        stuff = '\\' + stuff
                    add(f'[{stuff}]')
        else:
            add(re.escape(c))
    assert i == n
    return res


def _join_translated_parts(inp, STAR):
    # Deal with STARs.
    res = []
    add = res.append
    i, n = 0, len(inp)
    # Fixed pieces at the start?
    while i < n and inp[i] is not STAR:
        add(inp[i])
        i += 1
    # Now deal with STAR fixed STAR fixed ...
    # For an interior `STAR fixed` pairing, we want to do a minimal
    # .*? match followed by `fixed`, with no possibility of backtracking.
    # Atomic groups ("(?>...)") allow us to spell that directly.
    # Note: people rely on the undocumented ability to join multiple
    # translate() results together via "|" to build large regexps matching
    # "one of many" shell patterns.
    while i < n:
        assert inp[i] is STAR
        i += 1
        if i == n:
            add(".*")
            break
        assert inp[i] is not STAR
        fixed = []
        while i < n and inp[i] is not STAR:
            fixed.append(inp[i])
            i += 1
        fixed = "".join(fixed)
        if i == n:
            add(".*")
            add(fixed)
        else:
            add(f"(?>.*?{fixed})")
    assert i == n
    res = "".join(res)
    return fr'(?s:{res})\Z'


Current_dir [ NOT WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
10 Feb 2026 9.37 AM
root / root
0755
__pycache__
--
10 Feb 2026 9.35 AM
root / linksafe
0755
_pyrepl
--
10 Feb 2026 9.35 AM
root / linksafe
0755
asyncio
--
10 Feb 2026 9.35 AM
root / linksafe
0755
collections
--
10 Feb 2026 9.35 AM
root / linksafe
0755
concurrent
--
10 Feb 2026 9.35 AM
root / linksafe
0755
config-3.13-x86_64-linux-gnu
--
10 Feb 2026 9.37 AM
root / linksafe
0755
ctypes
--
10 Feb 2026 9.35 AM
root / linksafe
0755
curses
--
10 Feb 2026 9.35 AM
root / linksafe
0755
dbm
--
10 Feb 2026 9.35 AM
root / linksafe
0755
email
--
10 Feb 2026 9.35 AM
root / linksafe
0755
encodings
--
10 Feb 2026 9.35 AM
root / linksafe
0755
ensurepip
--
10 Feb 2026 9.35 AM
root / linksafe
0755
html
--
10 Feb 2026 9.35 AM
root / linksafe
0755
http
--
10 Feb 2026 9.35 AM
root / linksafe
0755
importlib
--
10 Feb 2026 9.35 AM
root / linksafe
0755
json
--
10 Feb 2026 9.35 AM
root / linksafe
0755
lib-dynload
--
10 Feb 2026 9.35 AM
root / linksafe
0755
logging
--
10 Feb 2026 9.35 AM
root / linksafe
0755
multiprocessing
--
10 Feb 2026 9.35 AM
root / linksafe
0755
pathlib
--
10 Feb 2026 9.35 AM
root / linksafe
0755
pydoc_data
--
10 Feb 2026 9.35 AM
root / linksafe
0755
re
--
10 Feb 2026 9.35 AM
root / linksafe
0755
site-packages
--
10 Feb 2026 9.35 AM
root / linksafe
0755
sqlite3
--
10 Feb 2026 9.35 AM
root / linksafe
0755
sysconfig
--
10 Feb 2026 9.35 AM
root / linksafe
0755
tomllib
--
10 Feb 2026 9.35 AM
root / linksafe
0755
unittest
--
10 Feb 2026 9.35 AM
root / linksafe
0755
urllib
--
10 Feb 2026 9.35 AM
root / linksafe
0755
venv
--
10 Feb 2026 9.35 AM
root / linksafe
0755
wsgiref
--
10 Feb 2026 9.35 AM
root / linksafe
0755
xml
--
10 Feb 2026 9.35 AM
root / linksafe
0755
xmlrpc
--
10 Feb 2026 9.35 AM
root / linksafe
0755
zipfile
--
10 Feb 2026 9.35 AM
root / linksafe
0755
zoneinfo
--
10 Feb 2026 9.35 AM
root / linksafe
0755
LICENSE.txt
13.485 KB
5 Dec 2025 4.06 PM
root / linksafe
0644
__future__.py
5.096 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
__hello__.py
0.222 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
_aix_support.py
3.927 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
_android_support.py
6.899 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
_apple_support.py
2.203 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
_collections_abc.py
31.846 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
_colorize.py
2.996 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
_compat_pickle.py
8.53 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
_compression.py
5.548 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
_ios_support.py
2.609 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
_markupbase.py
14.31 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
_opcode_metadata.py
9.048 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
_osx_support.py
21.507 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
_py_abc.py
6.044 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
_pydatetime.py
89.827 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
_pydecimal.py
222.193 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
_pyio.py
91.61 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
_pylong.py
11.553 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
_sitebuiltins.py
3.055 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
_strptime.py
33.92 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
_sysconfigdata__linux_x86_64-linux-gnu.py
65.9 KB
10 Jan 2026 10.43 AM
root / linksafe
0644
_sysconfigdata_d_linux_x86_64-linux-gnu.py
65.883 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
_threading_local.py
4.261 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
_weakrefset.py
5.755 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
abc.py
6.385 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
antigravity.py
0.488 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
argparse.py
99.278 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
ast.py
63.808 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
base64.py
21.541 KB
10 Jan 2026 10.38 AM
root / linksafe
0755
bdb.py
35.253 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
bisect.py
3.343 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
bz2.py
11.688 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
cProfile.py
6.481 KB
10 Jan 2026 10.38 AM
root / linksafe
0755
calendar.py
25.466 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
cmd.py
14.957 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
code.py
12.861 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
codecs.py
36.111 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
codeop.py
5.691 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
colorsys.py
3.967 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
compileall.py
20.181 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
configparser.py
52.569 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
contextlib.py
27.149 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
contextvars.py
0.126 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
copy.py
8.765 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
copyreg.py
7.436 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
csv.py
18.729 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
dataclasses.py
63.032 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
datetime.py
0.262 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
decimal.py
2.732 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
difflib.py
81.413 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
dis.py
40.002 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
doctest.py
106.85 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
enum.py
83.587 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
filecmp.py
10.402 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
fileinput.py
15.349 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
fnmatch.py
6.035 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
fractions.py
39.15 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
ftplib.py
33.921 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
functools.py
38.146 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
genericpath.py
6.101 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
getopt.py
7.313 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
getpass.py
6.087 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
gettext.py
21.029 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
glob.py
19.444 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
graphlib.py
9.422 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
gzip.py
24.056 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
hashlib.py
9.225 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
heapq.py
22.484 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
hmac.py
7.535 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
imaplib.py
53.066 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
inspect.py
125.625 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
io.py
3.498 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
ipaddress.py
79.735 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
keyword.py
1.048 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
linecache.py
7.113 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
locale.py
77.181 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
lzma.py
13.085 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
mailbox.py
79.73 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
mimetypes.py
23.292 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
modulefinder.py
23.234 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
netrc.py
6.866 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
ntpath.py
30.162 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
nturl2path.py
2.318 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
numbers.py
11.493 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
opcode.py
2.759 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
operator.py
10.723 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
optparse.py
58.954 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
os.py
40.651 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
pdb.py
89.839 KB
10 Jan 2026 10.38 AM
root / linksafe
0755
pickle.py
65.388 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
pickletools.py
91.848 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
pkgutil.py
17.853 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
platform.py
46.249 KB
10 Jan 2026 10.38 AM
root / linksafe
0755
plistlib.py
29.33 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
poplib.py
14.262 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
posixpath.py
17.806 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
pprint.py
23.592 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
profile.py
22.61 KB
10 Jan 2026 10.38 AM
root / linksafe
0755
pstats.py
28.609 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
pty.py
5.993 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
py_compile.py
7.653 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
pyclbr.py
11.129 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
pydoc.py
107.584 KB
10 Jan 2026 10.38 AM
root / linksafe
0755
queue.py
13.14 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
quopri.py
7.028 KB
10 Jan 2026 10.39 AM
root / linksafe
0755
random.py
36.139 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
reprlib.py
7.879 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
rlcompleter.py
7.732 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
runpy.py
12.583 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
sched.py
6.202 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
secrets.py
1.938 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
selectors.py
19.001 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
shelve.py
8.604 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
shlex.py
13.04 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
shutil.py
56.116 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
signal.py
2.437 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
site.py
24.957 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
smtplib.py
42.901 KB
10 Jan 2026 10.38 AM
root / linksafe
0755
socket.py
36.874 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
socketserver.py
27.407 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
sre_compile.py
0.226 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
sre_constants.py
0.227 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
sre_parse.py
0.224 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
ssl.py
51.471 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
stat.py
6.003 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
statistics.py
60.724 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
string.py
11.51 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
stringprep.py
12.614 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
struct.py
0.251 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
subprocess.py
88.697 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
symtable.py
13.874 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
tabnanny.py
11.274 KB
10 Jan 2026 10.39 AM
root / linksafe
0755
tarfile.py
111.739 KB
10 Jan 2026 10.38 AM
root / linksafe
0755
tempfile.py
31.646 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
textwrap.py
19.49 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
this.py
0.979 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
threading.py
54.046 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
timeit.py
13.161 KB
10 Jan 2026 10.38 AM
root / linksafe
0755
token.py
2.431 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
tokenize.py
21.063 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
trace.py
29.031 KB
10 Jan 2026 10.38 AM
root / linksafe
0755
traceback.py
65.004 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
tracemalloc.py
17.624 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
tty.py
1.987 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
types.py
10.944 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
typing.py
130.14 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
uuid.py
28.768 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
warnings.py
26.437 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
wave.py
22.709 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
weakref.py
21.009 KB
10 Jan 2026 10.39 AM
root / linksafe
0644
webbrowser.py
23.729 KB
10 Jan 2026 10.39 AM
root / linksafe
0755
zipapp.py
8.416 KB
10 Jan 2026 10.38 AM
root / linksafe
0644
zipimport.py
32.119 KB
10 Jan 2026 10.39 AM
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF