Psyduck - 可達鴨 之 鴨力山大2


Server : LiteSpeed
System : Linux premium217.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User : alloknri ( 880)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /opt/alt/python310/lib64/python3.10/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/alt/python310/lib64/python3.10/imghdr.py
"""Recognize image file formats based on their first few bytes."""

from os import PathLike

__all__ = ["what"]

#-------------------------#
# Recognize image headers #
#-------------------------#

def what(file, h=None):
    f = None
    try:
        if h is None:
            if isinstance(file, (str, PathLike)):
                f = open(file, 'rb')
                h = f.read(32)
            else:
                location = file.tell()
                h = file.read(32)
                file.seek(location)
        for tf in tests:
            res = tf(h, f)
            if res:
                return res
    finally:
        if f: f.close()
    return None


#---------------------------------#
# Subroutines per image file type #
#---------------------------------#

tests = []

def test_jpeg(h, f):
    """JPEG data in JFIF or Exif format"""
    if h[6:10] in (b'JFIF', b'Exif'):
        return 'jpeg'

tests.append(test_jpeg)

def test_png(h, f):
    if h.startswith(b'\211PNG\r\n\032\n'):
        return 'png'

tests.append(test_png)

def test_gif(h, f):
    """GIF ('87 and '89 variants)"""
    if h[:6] in (b'GIF87a', b'GIF89a'):
        return 'gif'

tests.append(test_gif)

def test_tiff(h, f):
    """TIFF (can be in Motorola or Intel byte order)"""
    if h[:2] in (b'MM', b'II'):
        return 'tiff'

tests.append(test_tiff)

def test_rgb(h, f):
    """SGI image library"""
    if h.startswith(b'\001\332'):
        return 'rgb'

tests.append(test_rgb)

def test_pbm(h, f):
    """PBM (portable bitmap)"""
    if len(h) >= 3 and \
        h[0] == ord(b'P') and h[1] in b'14' and h[2] in b' \t\n\r':
        return 'pbm'

tests.append(test_pbm)

def test_pgm(h, f):
    """PGM (portable graymap)"""
    if len(h) >= 3 and \
        h[0] == ord(b'P') and h[1] in b'25' and h[2] in b' \t\n\r':
        return 'pgm'

tests.append(test_pgm)

def test_ppm(h, f):
    """PPM (portable pixmap)"""
    if len(h) >= 3 and \
        h[0] == ord(b'P') and h[1] in b'36' and h[2] in b' \t\n\r':
        return 'ppm'

tests.append(test_ppm)

def test_rast(h, f):
    """Sun raster file"""
    if h.startswith(b'\x59\xA6\x6A\x95'):
        return 'rast'

tests.append(test_rast)

def test_xbm(h, f):
    """X bitmap (X10 or X11)"""
    if h.startswith(b'#define '):
        return 'xbm'

tests.append(test_xbm)

def test_bmp(h, f):
    if h.startswith(b'BM'):
        return 'bmp'

tests.append(test_bmp)

def test_webp(h, f):
    if h.startswith(b'RIFF') and h[8:12] == b'WEBP':
        return 'webp'

tests.append(test_webp)

def test_exr(h, f):
    if h.startswith(b'\x76\x2f\x31\x01'):
        return 'exr'

tests.append(test_exr)

#--------------------#
# Small test program #
#--------------------#

def test():
    import sys
    recursive = 0
    if sys.argv[1:] and sys.argv[1] == '-r':
        del sys.argv[1:2]
        recursive = 1
    try:
        if sys.argv[1:]:
            testall(sys.argv[1:], recursive, 1)
        else:
            testall(['.'], recursive, 1)
    except KeyboardInterrupt:
        sys.stderr.write('\n[Interrupted]\n')
        sys.exit(1)

def testall(list, recursive, toplevel):
    import sys
    import os
    for filename in list:
        if os.path.isdir(filename):
            print(filename + '/:', end=' ')
            if recursive or toplevel:
                print('recursing down:')
                import glob
                names = glob.glob(os.path.join(glob.escape(filename), '*'))
                testall(names, recursive, 0)
            else:
                print('*** directory (use -r) ***')
        else:
            print(filename + ':', end=' ')
            sys.stdout.flush()
            try:
                print(what(filename))
            except OSError:
                print('*** not found ***')

if __name__ == '__main__':
    test()
Name
Size
Permissions
Options
__pycache__
--
drwxr-xr-x
asyncio
--
drwxr-xr-x
collections
--
drwxr-xr-x
concurrent
--
drwxr-xr-x
config-3.10-x86_64-linux-gnu
--
drwxr-xr-x
ctypes
--
drwxr-xr-x
curses
--
drwxr-xr-x
dbm
--
drwxr-xr-x
distutils
--
drwxr-xr-x
email
--
drwxr-xr-x
encodings
--
drwxr-xr-x
ensurepip
--
drwxr-xr-x
html
--
drwxr-xr-x
http
--
drwxr-xr-x
importlib
--
drwxr-xr-x
json
--
drwxr-xr-x
lib-dynload
--
drwxr-xr-x
lib2to3
--
drwxr-xr-x
logging
--
drwxr-xr-x
multiprocessing
--
drwxr-xr-x
pydoc_data
--
drwxr-xr-x
site-packages
--
drwxr-xr-x
sqlite3
--
drwxr-xr-x
unittest
--
drwxr-xr-x
urllib
--
drwxr-xr-x
venv
--
drwxr-xr-x
wsgiref
--
drwxr-xr-x
xml
--
drwxr-xr-x
xmlrpc
--
drwxr-xr-x
zoneinfo
--
drwxr-xr-x
LICENSE.txt
13.609 KB
-rw-r--r--
__future__.py
5.034 KB
-rw-r--r--
__phello__.foo.py
0.063 KB
-rw-r--r--
_aix_support.py
3.193 KB
-rw-r--r--
_bootsubprocess.py
2.612 KB
-rw-r--r--
_collections_abc.py
31.527 KB
-rw-r--r--
_compat_pickle.py
8.544 KB
-rw-r--r--
_compression.py
5.548 KB
-rw-r--r--
_markupbase.py
14.31 KB
-rw-r--r--
_osx_support.py
21.276 KB
-rw-r--r--
_py_abc.py
6.044 KB
-rw-r--r--
_pydecimal.py
223.316 KB
-rw-r--r--
_pyio.py
92.253 KB
-rw-r--r--
_sitebuiltins.py
3.055 KB
-rw-r--r--
_strptime.py
24.685 KB
-rw-r--r--
_sysconfigdata__linux_x86_64-linux-gnu.py
40.376 KB
-rw-r--r--
_sysconfigdata_d_linux_x86_64-linux-gnu.py
39.808 KB
-rw-r--r--
_threading_local.py
7.051 KB
-rw-r--r--
_weakrefset.py
5.784 KB
-rw-r--r--
abc.py
6.369 KB
-rw-r--r--
aifc.py
31.841 KB
-rw-r--r--
antigravity.py
0.488 KB
-rw-r--r--
argparse.py
96.233 KB
-rw-r--r--
ast.py
58.496 KB
-rw-r--r--
asynchat.py
11.25 KB
-rw-r--r--
asyncore.py
19.793 KB
-rw-r--r--
base64.py
20.371 KB
-rwxr-xr-x
bdb.py
31.637 KB
-rw-r--r--
binhex.py
14.438 KB
-rw-r--r--
bisect.py
3.062 KB
-rw-r--r--
bz2.py
11.569 KB
-rw-r--r--
cProfile.py
6.211 KB
-rwxr-xr-x
calendar.py
23.999 KB
-rw-r--r--
cgi.py
33.312 KB
-rwxr-xr-x
cgitb.py
11.813 KB
-rw-r--r--
chunk.py
5.308 KB
-rw-r--r--
cmd.py
14.512 KB
-rw-r--r--
code.py
10.373 KB
-rw-r--r--
codecs.py
35.854 KB
-rw-r--r--
codeop.py
5.478 KB
-rw-r--r--
colorsys.py
3.923 KB
-rw-r--r--
compileall.py
19.777 KB
-rw-r--r--
configparser.py
53.332 KB
-rw-r--r--
contextlib.py
25.275 KB
-rw-r--r--
contextvars.py
0.126 KB
-rw-r--r--
copy.py
8.478 KB
-rw-r--r--
copyreg.py
7.252 KB
-rw-r--r--
crypt.py
3.758 KB
-rw-r--r--
csv.py
15.654 KB
-rw-r--r--
dataclasses.py
55.068 KB
-rw-r--r--
datetime.py
86.021 KB
-rw-r--r--
decimal.py
0.313 KB
-rw-r--r--
difflib.py
81.355 KB
-rw-r--r--
dis.py
19.551 KB
-rw-r--r--
doctest.py
102.679 KB
-rw-r--r--
enum.py
38.897 KB
-rw-r--r--
filecmp.py
9.939 KB
-rw-r--r--
fileinput.py
16.057 KB
-rw-r--r--
fnmatch.py
6.556 KB
-rw-r--r--
fractions.py
27.58 KB
-rw-r--r--
ftplib.py
34.664 KB
-rw-r--r--
functools.py
37.184 KB
-rw-r--r--
genericpath.py
5.123 KB
-rw-r--r--
getopt.py
7.313 KB
-rw-r--r--
getpass.py
5.85 KB
-rw-r--r--
gettext.py
26.627 KB
-rw-r--r--
glob.py
7.703 KB
-rw-r--r--
graphlib.py
9.349 KB
-rw-r--r--
gzip.py
21.337 KB
-rw-r--r--
hashlib.py
9.989 KB
-rw-r--r--
heapq.py
22.341 KB
-rw-r--r--
hmac.py
7.536 KB
-rw-r--r--
imaplib.py
53.924 KB
-rw-r--r--
imghdr.py
3.719 KB
-rw-r--r--
imp.py
10.343 KB
-rw-r--r--
inspect.py
121.463 KB
-rw-r--r--
io.py
4.098 KB
-rw-r--r--
ipaddress.py
78.942 KB
-rw-r--r--
keyword.py
1.036 KB
-rw-r--r--
linecache.py
5.557 KB
-rw-r--r--
locale.py
76.293 KB
-rw-r--r--
lzma.py
12.966 KB
-rw-r--r--
mailbox.py
76.947 KB
-rw-r--r--
mailcap.py
8.902 KB
-rw-r--r--
mimetypes.py
22.011 KB
-rw-r--r--
modulefinder.py
23.829 KB
-rw-r--r--
netrc.py
5.612 KB
-rw-r--r--
nntplib.py
40.062 KB
-rw-r--r--
ntpath.py
29.242 KB
-rw-r--r--
nturl2path.py
2.819 KB
-rw-r--r--
numbers.py
10.105 KB
-rw-r--r--
opcode.py
5.764 KB
-rw-r--r--
operator.py
10.499 KB
-rw-r--r--
optparse.py
58.954 KB
-rw-r--r--
os.py
38.63 KB
-rw-r--r--
pathlib.py
48.413 KB
-rw-r--r--
pdb.py
61.756 KB
-rwxr-xr-x
pickle.py
63.427 KB
-rw-r--r--
pickletools.py
91.295 KB
-rw-r--r--
pipes.py
8.705 KB
-rw-r--r--
pkgutil.py
24 KB
-rw-r--r--
platform.py
41.051 KB
-rwxr-xr-x
plistlib.py
27.688 KB
-rw-r--r--
poplib.py
14.842 KB
-rw-r--r--
posixpath.py
16.051 KB
-rw-r--r--
pprint.py
23.871 KB
-rw-r--r--
profile.py
22.359 KB
-rwxr-xr-x
pstats.py
28.639 KB
-rw-r--r--
pty.py
5.091 KB
-rw-r--r--
py_compile.py
7.707 KB
-rw-r--r--
pyclbr.py
11.129 KB
-rw-r--r--
pydoc.py
107.034 KB
-rwxr-xr-x
queue.py
11.227 KB
-rw-r--r--
quopri.py
7.11 KB
-rwxr-xr-x
random.py
32.442 KB
-rw-r--r--
re.py
15.488 KB
-rw-r--r--
reprlib.py
5.144 KB
-rw-r--r--
rlcompleter.py
7.634 KB
-rw-r--r--
runpy.py
12.804 KB
-rw-r--r--
sched.py
6.202 KB
-rw-r--r--
secrets.py
1.988 KB
-rw-r--r--
selectors.py
19.078 KB
-rw-r--r--
shelve.py
8.359 KB
-rw-r--r--
shlex.py
13.185 KB
-rw-r--r--
shutil.py
53.293 KB
-rw-r--r--
signal.py
2.381 KB
-rw-r--r--
site.py
22.389 KB
-rw-r--r--
smtpd.py
34.354 KB
-rwxr-xr-x
smtplib.py
44.366 KB
-rwxr-xr-x
sndhdr.py
6.933 KB
-rw-r--r--
socket.py
36.139 KB
-rw-r--r--
socketserver.py
26.656 KB
-rw-r--r--
sre_compile.py
27.317 KB
-rw-r--r--
sre_constants.py
7.009 KB
-rw-r--r--
sre_parse.py
39.823 KB
-rw-r--r--
ssl.py
52.632 KB
-rw-r--r--
stat.py
5.356 KB
-rw-r--r--
statistics.py
42.192 KB
-rw-r--r--
string.py
10.318 KB
-rw-r--r--
stringprep.py
12.614 KB
-rw-r--r--
struct.py
0.251 KB
-rw-r--r--
subprocess.py
82.927 KB
-rw-r--r--
sunau.py
17.732 KB
-rw-r--r--
symtable.py
9.978 KB
-rw-r--r--
sysconfig.py
26.962 KB
-rw-r--r--
tabnanny.py
11.047 KB
-rwxr-xr-x
tarfile.py
108.993 KB
-rwxr-xr-x
telnetlib.py
22.709 KB
-rw-r--r--
tempfile.py
28.778 KB
-rw-r--r--
textwrap.py
19.309 KB
-rw-r--r--
this.py
0.979 KB
-rw-r--r--
threading.py
55.412 KB
-rw-r--r--
timeit.py
13.191 KB
-rwxr-xr-x
token.py
2.33 KB
-rw-r--r--
tokenize.py
25.313 KB
-rw-r--r--
trace.py
28.544 KB
-rwxr-xr-x
traceback.py
25.607 KB
-rw-r--r--
tracemalloc.py
17.624 KB
-rw-r--r--
tty.py
0.858 KB
-rw-r--r--
types.py
9.88 KB
-rw-r--r--
typing.py
90.388 KB
-rw-r--r--
uu.py
7.106 KB
-rw-r--r--
uuid.py
26.855 KB
-rw-r--r--
warnings.py
19.227 KB
-rw-r--r--
wave.py
17.582 KB
-rw-r--r--
weakref.py
21.055 KB
-rw-r--r--
webbrowser.py
23.689 KB
-rwxr-xr-x
xdrlib.py
5.774 KB
-rw-r--r--
zipapp.py
7.358 KB
-rw-r--r--
zipfile.py
88.087 KB
-rw-r--r--
zipimport.py
30.167 KB
-rw-r--r--