✘✘ 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/python312/lib64/python3.12/test//test_array.py
"""Test the arraymodule.
   Roger E. Masse
"""

import collections.abc
import unittest
from test import support
from test.support import import_helper
from test.support import os_helper
from test.support import _2G
import weakref
import pickle
import operator
import struct
import sys

import array
from array import _array_reconstructor as array_reconstructor

sizeof_wchar = array.array('u').itemsize


class ArraySubclass(array.array):
    pass

class ArraySubclassWithKwargs(array.array):
    def __init__(self, typecode, newarg=None):
        array.array.__init__(self)

typecodes = 'ubBhHiIlLfdqQ'

class MiscTest(unittest.TestCase):

    def test_array_is_sequence(self):
        self.assertIsInstance(array.array("B"), collections.abc.MutableSequence)
        self.assertIsInstance(array.array("B"), collections.abc.Reversible)

    def test_bad_constructor(self):
        self.assertRaises(TypeError, array.array)
        self.assertRaises(TypeError, array.array, spam=42)
        self.assertRaises(TypeError, array.array, 'xx')
        self.assertRaises(ValueError, array.array, 'x')

    @support.cpython_only
    def test_disallow_instantiation(self):
        my_array = array.array("I")
        support.check_disallow_instantiation(
            self, type(iter(my_array)), my_array
        )

    @support.cpython_only
    def test_immutable(self):
        # bpo-43908: check that array.array is immutable
        with self.assertRaises(TypeError):
            array.array.foo = 1

    def test_empty(self):
        # Exercise code for handling zero-length arrays
        a = array.array('B')
        a[:] = a
        self.assertEqual(len(a), 0)
        self.assertEqual(len(a + a), 0)
        self.assertEqual(len(a * 3), 0)
        a += a
        self.assertEqual(len(a), 0)


# Machine format codes.
#
# Search for "enum machine_format_code" in Modules/arraymodule.c to get the
# authoritative values.
UNKNOWN_FORMAT = -1
UNSIGNED_INT8 = 0
SIGNED_INT8 = 1
UNSIGNED_INT16_LE = 2
UNSIGNED_INT16_BE = 3
SIGNED_INT16_LE = 4
SIGNED_INT16_BE = 5
UNSIGNED_INT32_LE = 6
UNSIGNED_INT32_BE = 7
SIGNED_INT32_LE = 8
SIGNED_INT32_BE = 9
UNSIGNED_INT64_LE = 10
UNSIGNED_INT64_BE = 11
SIGNED_INT64_LE = 12
SIGNED_INT64_BE = 13
IEEE_754_FLOAT_LE = 14
IEEE_754_FLOAT_BE = 15
IEEE_754_DOUBLE_LE = 16
IEEE_754_DOUBLE_BE = 17
UTF16_LE = 18
UTF16_BE = 19
UTF32_LE = 20
UTF32_BE = 21

class ArrayReconstructorTest(unittest.TestCase):

    def test_error(self):
        self.assertRaises(TypeError, array_reconstructor,
                          "", "b", 0, b"")
        self.assertRaises(TypeError, array_reconstructor,
                          str, "b", 0, b"")
        self.assertRaises(TypeError, array_reconstructor,
                          array.array, "b", '', b"")
        self.assertRaises(TypeError, array_reconstructor,
                          array.array, "b", 0, "")
        self.assertRaises(ValueError, array_reconstructor,
                          array.array, "?", 0, b"")
        self.assertRaises(ValueError, array_reconstructor,
                          array.array, "b", UNKNOWN_FORMAT, b"")
        self.assertRaises(ValueError, array_reconstructor,
                          array.array, "b", 22, b"")
        self.assertRaises(ValueError, array_reconstructor,
                          array.array, "d", 16, b"a")

    def test_numbers(self):
        testcases = (
            (['B', 'H', 'I', 'L'], UNSIGNED_INT8, '=BBBB',
             [0x80, 0x7f, 0, 0xff]),
            (['b', 'h', 'i', 'l'], SIGNED_INT8, '=bbb',
             [-0x80, 0x7f, 0]),
            (['H', 'I', 'L'], UNSIGNED_INT16_LE, '<HHHH',
             [0x8000, 0x7fff, 0, 0xffff]),
            (['H', 'I', 'L'], UNSIGNED_INT16_BE, '>HHHH',
             [0x8000, 0x7fff, 0, 0xffff]),
            (['h', 'i', 'l'], SIGNED_INT16_LE, '<hhh',
             [-0x8000, 0x7fff, 0]),
            (['h', 'i', 'l'], SIGNED_INT16_BE, '>hhh',
             [-0x8000, 0x7fff, 0]),
            (['I', 'L'], UNSIGNED_INT32_LE, '<IIII',
             [1<<31, (1<<31)-1, 0, (1<<32)-1]),
            (['I', 'L'], UNSIGNED_INT32_BE, '>IIII',
             [1<<31, (1<<31)-1, 0, (1<<32)-1]),
            (['i', 'l'], SIGNED_INT32_LE, '<iii',
             [-1<<31, (1<<31)-1, 0]),
            (['i', 'l'], SIGNED_INT32_BE, '>iii',
             [-1<<31, (1<<31)-1, 0]),
            (['L'], UNSIGNED_INT64_LE, '<QQQQ',
             [1<<31, (1<<31)-1, 0, (1<<32)-1]),
            (['L'], UNSIGNED_INT64_BE, '>QQQQ',
             [1<<31, (1<<31)-1, 0, (1<<32)-1]),
            (['l'], SIGNED_INT64_LE, '<qqq',
             [-1<<31, (1<<31)-1, 0]),
            (['l'], SIGNED_INT64_BE, '>qqq',
             [-1<<31, (1<<31)-1, 0]),
            # The following tests for INT64 will raise an OverflowError
            # when run on a 32-bit machine. The tests are simply skipped
            # in that case.
            (['L'], UNSIGNED_INT64_LE, '<QQQQ',
             [1<<63, (1<<63)-1, 0, (1<<64)-1]),
            (['L'], UNSIGNED_INT64_BE, '>QQQQ',
             [1<<63, (1<<63)-1, 0, (1<<64)-1]),
            (['l'], SIGNED_INT64_LE, '<qqq',
             [-1<<63, (1<<63)-1, 0]),
            (['l'], SIGNED_INT64_BE, '>qqq',
             [-1<<63, (1<<63)-1, 0]),
            (['f'], IEEE_754_FLOAT_LE, '<ffff',
             [16711938.0, float('inf'), float('-inf'), -0.0]),
            (['f'], IEEE_754_FLOAT_BE, '>ffff',
             [16711938.0, float('inf'), float('-inf'), -0.0]),
            (['d'], IEEE_754_DOUBLE_LE, '<dddd',
             [9006104071832581.0, float('inf'), float('-inf'), -0.0]),
            (['d'], IEEE_754_DOUBLE_BE, '>dddd',
             [9006104071832581.0, float('inf'), float('-inf'), -0.0])
        )
        for testcase in testcases:
            valid_typecodes, mformat_code, struct_fmt, values = testcase
            arraystr = struct.pack(struct_fmt, *values)
            for typecode in valid_typecodes:
                try:
                    a = array.array(typecode, values)
                except OverflowError:
                    continue  # Skip this test case.
                b = array_reconstructor(
                    array.array, typecode, mformat_code, arraystr)
                self.assertEqual(a, b,
                    msg="{0!r} != {1!r}; testcase={2!r}".format(a, b, testcase))

    def test_unicode(self):
        teststr = "Bonne Journ\xe9e \U0002030a\U00020347"
        testcases = (
            (UTF16_LE, "UTF-16-LE"),
            (UTF16_BE, "UTF-16-BE"),
            (UTF32_LE, "UTF-32-LE"),
            (UTF32_BE, "UTF-32-BE")
        )
        for testcase in testcases:
            mformat_code, encoding = testcase
            a = array.array('u', teststr)
            b = array_reconstructor(
                array.array, 'u', mformat_code, teststr.encode(encoding))
            self.assertEqual(a, b,
                msg="{0!r} != {1!r}; testcase={2!r}".format(a, b, testcase))


class BaseTest:
    # Required class attributes (provided by subclasses
    # typecode: the typecode to test
    # example: an initializer usable in the constructor for this type
    # smallerexample: the same length as example, but smaller
    # biggerexample: the same length as example, but bigger
    # outside: An entry that is not in example
    # minitemsize: the minimum guaranteed itemsize

    def assertEntryEqual(self, entry1, entry2):
        self.assertEqual(entry1, entry2)

    def badtypecode(self):
        # Return a typecode that is different from our own
        return typecodes[(typecodes.index(self.typecode)+1) % len(typecodes)]

    def test_constructor(self):
        a = array.array(self.typecode)
        self.assertEqual(a.typecode, self.typecode)
        self.assertGreaterEqual(a.itemsize, self.minitemsize)
        self.assertRaises(TypeError, array.array, self.typecode, None)

    def test_len(self):
        a = array.array(self.typecode)
        a.append(self.example[0])
        self.assertEqual(len(a), 1)

        a = array.array(self.typecode, self.example)
        self.assertEqual(len(a), len(self.example))

    def test_buffer_info(self):
        a = array.array(self.typecode, self.example)
        self.assertRaises(TypeError, a.buffer_info, 42)
        bi = a.buffer_info()
        self.assertIsInstance(bi, tuple)
        self.assertEqual(len(bi), 2)
        self.assertIsInstance(bi[0], int)
        self.assertIsInstance(bi[1], int)
        self.assertEqual(bi[1], len(a))

    def test_byteswap(self):
        if self.typecode == 'u':
            example = '\U00100100'
        else:
            example = self.example
        a = array.array(self.typecode, example)
        self.assertRaises(TypeError, a.byteswap, 42)
        if a.itemsize in (1, 2, 4, 8):
            b = array.array(self.typecode, example)
            b.byteswap()
            if a.itemsize==1:
                self.assertEqual(a, b)
            else:
                self.assertNotEqual(a, b)
            b.byteswap()
            self.assertEqual(a, b)

    def test_copy(self):
        import copy
        a = array.array(self.typecode, self.example)
        b = copy.copy(a)
        self.assertNotEqual(id(a), id(b))
        self.assertEqual(a, b)

    def test_deepcopy(self):
        import copy
        a = array.array(self.typecode, self.example)
        b = copy.deepcopy(a)
        self.assertNotEqual(id(a), id(b))
        self.assertEqual(a, b)

    def test_reduce_ex(self):
        a = array.array(self.typecode, self.example)
        for protocol in range(3):
            self.assertIs(a.__reduce_ex__(protocol)[0], array.array)
        for protocol in range(3, pickle.HIGHEST_PROTOCOL + 1):
            self.assertIs(a.__reduce_ex__(protocol)[0], array_reconstructor)

    def test_pickle(self):
        for protocol in range(pickle.HIGHEST_PROTOCOL + 1):
            a = array.array(self.typecode, self.example)
            b = pickle.loads(pickle.dumps(a, protocol))
            self.assertNotEqual(id(a), id(b))
            self.assertEqual(a, b)

            a = ArraySubclass(self.typecode, self.example)
            a.x = 10
            b = pickle.loads(pickle.dumps(a, protocol))
            self.assertNotEqual(id(a), id(b))
            self.assertEqual(a, b)
            self.assertEqual(a.x, b.x)
            self.assertEqual(type(a), type(b))

    def test_pickle_for_empty_array(self):
        for protocol in range(pickle.HIGHEST_PROTOCOL + 1):
            a = array.array(self.typecode)
            b = pickle.loads(pickle.dumps(a, protocol))
            self.assertNotEqual(id(a), id(b))
            self.assertEqual(a, b)

            a = ArraySubclass(self.typecode)
            a.x = 10
            b = pickle.loads(pickle.dumps(a, protocol))
            self.assertNotEqual(id(a), id(b))
            self.assertEqual(a, b)
            self.assertEqual(a.x, b.x)
            self.assertEqual(type(a), type(b))

    def test_iterator_pickle(self):
        orig = array.array(self.typecode, self.example)
        data = list(orig)
        data2 = data[::-1]
        for proto in range(pickle.HIGHEST_PROTOCOL + 1):
            # initial iterator
            itorig = iter(orig)
            d = pickle.dumps((itorig, orig), proto)
            it, a = pickle.loads(d)
            a.fromlist(data2)
            self.assertEqual(type(it), type(itorig))
            self.assertEqual(list(it), data + data2)

            # running iterator
            next(itorig)
            d = pickle.dumps((itorig, orig), proto)
            it, a = pickle.loads(d)
            a.fromlist(data2)
            self.assertEqual(type(it), type(itorig))
            self.assertEqual(list(it), data[1:] + data2)

            # empty iterator
            for i in range(1, len(data)):
                next(itorig)
            d = pickle.dumps((itorig, orig), proto)
            it, a = pickle.loads(d)
            a.fromlist(data2)
            self.assertEqual(type(it), type(itorig))
            self.assertEqual(list(it), data2)

            # exhausted iterator
            self.assertRaises(StopIteration, next, itorig)
            d = pickle.dumps((itorig, orig), proto)
            it, a = pickle.loads(d)
            a.fromlist(data2)
            self.assertEqual(list(it), [])

    def test_exhausted_iterator(self):
        a = array.array(self.typecode, self.example)
        self.assertEqual(list(a), list(self.example))
        exhit = iter(a)
        empit = iter(a)
        for x in exhit:  # exhaust the iterator
            next(empit)  # not exhausted
        a.append(self.outside)
        self.assertEqual(list(exhit), [])
        self.assertEqual(list(empit), [self.outside])
        self.assertEqual(list(a), list(self.example) + [self.outside])

    def test_reverse_iterator(self):
        a = array.array(self.typecode, self.example)
        self.assertEqual(list(a), list(self.example))
        self.assertEqual(list(reversed(a)), list(iter(a))[::-1])

    def test_reverse_iterator_picking(self):
        orig = array.array(self.typecode, self.example)
        data = list(orig)
        data2 = [self.outside] + data
        rev_data = data[len(data)-2::-1] + [self.outside]
        for proto in range(pickle.HIGHEST_PROTOCOL + 1):
            # initial iterator
            itorig = reversed(orig)
            d = pickle.dumps((itorig, orig), proto)
            it, a = pickle.loads(d)
            a.insert(0, self.outside)
            self.assertEqual(type(it), type(itorig))
            self.assertEqual(list(it), rev_data)
            self.assertEqual(list(a), data2)

            # running iterator
            next(itorig)
            d = pickle.dumps((itorig, orig), proto)
            it, a = pickle.loads(d)
            a.insert(0, self.outside)
            self.assertEqual(type(it), type(itorig))
            self.assertEqual(list(it), rev_data[1:])
            self.assertEqual(list(a), data2)

            # empty iterator
            for i in range(1, len(data)):
                next(itorig)
            d = pickle.dumps((itorig, orig), proto)
            it, a = pickle.loads(d)
            a.insert(0, self.outside)
            self.assertEqual(type(it), type(itorig))
            self.assertEqual(list(it), [])
            self.assertEqual(list(a), data2)

            # exhausted iterator
            self.assertRaises(StopIteration, next, itorig)
            d = pickle.dumps((itorig, orig), proto)
            it, a = pickle.loads(d)
            a.insert(0, self.outside)
            self.assertEqual(list(it), [])
            self.assertEqual(list(a), data2)

    def test_exhausted_reverse_iterator(self):
        a = array.array(self.typecode, self.example)
        self.assertEqual(list(a), list(self.example))
        exhit = reversed(a)
        empit = reversed(a)
        for x in exhit:  # exhaust the iterator
            next(empit)  # Pointing past the 0th position.
        a.insert(0, self.outside)
        self.assertEqual(list(exhit), [])
        # The iterator index points past the 0th position so inserting
        # an element in the beginning does not make it appear.
        self.assertEqual(list(empit), [])
        self.assertEqual(list(a), [self.outside] + list(self.example))

    def test_insert(self):
        a = array.array(self.typecode, self.example)
        a.insert(0, self.example[0])
        self.assertEqual(len(a), 1+len(self.example))
        self.assertEqual(a[0], a[1])
        self.assertRaises(TypeError, a.insert)
        self.assertRaises(TypeError, a.insert, None)
        self.assertRaises(TypeError, a.insert, 0, None)

        a = array.array(self.typecode, self.example)
        a.insert(-1, self.example[0])
        self.assertEqual(
            a,
            array.array(
                self.typecode,
                self.example[:-1] + self.example[:1] + self.example[-1:]
            )
        )

        a = array.array(self.typecode, self.example)
        a.insert(-1000, self.example[0])
        self.assertEqual(
            a,
            array.array(self.typecode, self.example[:1] + self.example)
        )

        a = array.array(self.typecode, self.example)
        a.insert(1000, self.example[0])
        self.assertEqual(
            a,
            array.array(self.typecode, self.example + self.example[:1])
        )

    def test_tofromfile(self):
        a = array.array(self.typecode, 2*self.example)
        self.assertRaises(TypeError, a.tofile)
        os_helper.unlink(os_helper.TESTFN)
        f = open(os_helper.TESTFN, 'wb')
        try:
            a.tofile(f)
            f.close()
            b = array.array(self.typecode)
            f = open(os_helper.TESTFN, 'rb')
            self.assertRaises(TypeError, b.fromfile)
            b.fromfile(f, len(self.example))
            self.assertEqual(b, array.array(self.typecode, self.example))
            self.assertNotEqual(a, b)
            self.assertRaises(EOFError, b.fromfile, f, len(self.example)+1)
            self.assertEqual(a, b)
            f.close()
        finally:
            if not f.closed:
                f.close()
            os_helper.unlink(os_helper.TESTFN)

    def test_fromfile_ioerror(self):
        # Issue #5395: Check if fromfile raises a proper OSError
        # instead of EOFError.
        a = array.array(self.typecode)
        f = open(os_helper.TESTFN, 'wb')
        try:
            self.assertRaises(OSError, a.fromfile, f, len(self.example))
        finally:
            f.close()
            os_helper.unlink(os_helper.TESTFN)

    def test_filewrite(self):
        a = array.array(self.typecode, 2*self.example)
        f = open(os_helper.TESTFN, 'wb')
        try:
            f.write(a)
            f.close()
            b = array.array(self.typecode)
            f = open(os_helper.TESTFN, 'rb')
            b.fromfile(f, len(self.example))
            self.assertEqual(b, array.array(self.typecode, self.example))
            self.assertNotEqual(a, b)
            b.fromfile(f, len(self.example))
            self.assertEqual(a, b)
            f.close()
        finally:
            if not f.closed:
                f.close()
            os_helper.unlink(os_helper.TESTFN)

    def test_tofromlist(self):
        a = array.array(self.typecode, 2*self.example)
        b = array.array(self.typecode)
        self.assertRaises(TypeError, a.tolist, 42)
        self.assertRaises(TypeError, b.fromlist)
        self.assertRaises(TypeError, b.fromlist, 42)
        self.assertRaises(TypeError, b.fromlist, [None])
        b.fromlist(a.tolist())
        self.assertEqual(a, b)

    def test_tofrombytes(self):
        a = array.array(self.typecode, 2*self.example)
        b = array.array(self.typecode)
        self.assertRaises(TypeError, a.tobytes, 42)
        self.assertRaises(TypeError, b.frombytes)
        self.assertRaises(TypeError, b.frombytes, 42)
        b.frombytes(a.tobytes())
        c = array.array(self.typecode, bytearray(a.tobytes()))
        self.assertEqual(a, b)
        self.assertEqual(a, c)
        if a.itemsize>1:
            self.assertRaises(ValueError, b.frombytes, b"x")

    def test_fromarray(self):
        a = array.array(self.typecode, self.example)
        b = array.array(self.typecode, a)
        self.assertEqual(a, b)

    def test_repr(self):
        a = array.array(self.typecode, 2*self.example)
        self.assertEqual(a, eval(repr(a), {"array": array.array}))

        a = array.array(self.typecode)
        self.assertEqual(repr(a), "array('%s')" % self.typecode)

    def test_str(self):
        a = array.array(self.typecode, 2*self.example)
        str(a)

    def test_cmp(self):
        a = array.array(self.typecode, self.example)
        self.assertIs(a == 42, False)
        self.assertIs(a != 42, True)

        self.assertIs(a == a, True)
        self.assertIs(a != a, False)
        self.assertIs(a < a, False)
        self.assertIs(a <= a, True)
        self.assertIs(a > a, False)
        self.assertIs(a >= a, True)

        al = array.array(self.typecode, self.smallerexample)
        ab = array.array(self.typecode, self.biggerexample)

        self.assertIs(a == 2*a, False)
        self.assertIs(a != 2*a, True)
        self.assertIs(a < 2*a, True)
        self.assertIs(a <= 2*a, True)
        self.assertIs(a > 2*a, False)
        self.assertIs(a >= 2*a, False)

        self.assertIs(a == al, False)
        self.assertIs(a != al, True)
        self.assertIs(a < al, False)
        self.assertIs(a <= al, False)
        self.assertIs(a > al, True)
        self.assertIs(a >= al, True)

        self.assertIs(a == ab, False)
        self.assertIs(a != ab, True)
        self.assertIs(a < ab, True)
        self.assertIs(a <= ab, True)
        self.assertIs(a > ab, False)
        self.assertIs(a >= ab, False)

    def test_add(self):
        a = array.array(self.typecode, self.example) \
            + array.array(self.typecode, self.example[::-1])
        self.assertEqual(
            a,
            array.array(self.typecode, self.example + self.example[::-1])
        )

        b = array.array(self.badtypecode())
        self.assertRaises(TypeError, a.__add__, b)

        self.assertRaises(TypeError, a.__add__, "bad")

    def test_iadd(self):
        a = array.array(self.typecode, self.example[::-1])
        b = a
        a += array.array(self.typecode, 2*self.example)
        self.assertIs(a, b)
        self.assertEqual(
            a,
            array.array(self.typecode, self.example[::-1]+2*self.example)
        )
        a = array.array(self.typecode, self.example)
        a += a
        self.assertEqual(
            a,
            array.array(self.typecode, self.example + self.example)
        )

        b = array.array(self.badtypecode())
        self.assertRaises(TypeError, a.__add__, b)

        self.assertRaises(TypeError, a.__iadd__, "bad")

    def test_mul(self):
        a = 5*array.array(self.typecode, self.example)
        self.assertEqual(
            a,
            array.array(self.typecode, 5*self.example)
        )

        a = array.array(self.typecode, self.example)*5
        self.assertEqual(
            a,
            array.array(self.typecode, self.example*5)
        )

        a = 0*array.array(self.typecode, self.example)
        self.assertEqual(
            a,
            array.array(self.typecode)
        )

        a = (-1)*array.array(self.typecode, self.example)
        self.assertEqual(
            a,
            array.array(self.typecode)
        )

        a = 5 * array.array(self.typecode, self.example[:1])
        self.assertEqual(
            a,
            array.array(self.typecode, [a[0]] * 5)
        )

        self.assertRaises(TypeError, a.__mul__, "bad")

    def test_imul(self):
        a = array.array(self.typecode, self.example)
        b = a

        a *= 5
        self.assertIs(a, b)
        self.assertEqual(
            a,
            array.array(self.typecode, 5*self.example)
        )

        a *= 0
        self.assertIs(a, b)
        self.assertEqual(a, array.array(self.typecode))

        a *= 1000
        self.assertIs(a, b)
        self.assertEqual(a, array.array(self.typecode))

        a *= -1
        self.assertIs(a, b)
        self.assertEqual(a, array.array(self.typecode))

        a = array.array(self.typecode, self.example)
        a *= -1
        self.assertEqual(a, array.array(self.typecode))

        self.assertRaises(TypeError, a.__imul__, "bad")

    def test_getitem(self):
        a = array.array(self.typecode, self.example)
        self.assertEntryEqual(a[0], self.example[0])
        self.assertEntryEqual(a[0], self.example[0])
        self.assertEntryEqual(a[-1], self.example[-1])
        self.assertEntryEqual(a[-1], self.example[-1])
        self.assertEntryEqual(a[len(self.example)-1], self.example[-1])
        self.assertEntryEqual(a[-len(self.example)], self.example[0])
        self.assertRaises(TypeError, a.__getitem__)
        self.assertRaises(IndexError, a.__getitem__, len(self.example))
        self.assertRaises(IndexError, a.__getitem__, -len(self.example)-1)

    def test_setitem(self):
        a = array.array(self.typecode, self.example)
        a[0] = a[-1]
        self.assertEntryEqual(a[0], a[-1])

        a = array.array(self.typecode, self.example)
        a[0] = a[-1]
        self.assertEntryEqual(a[0], a[-1])

        a = array.array(self.typecode, self.example)
        a[-1] = a[0]
        self.assertEntryEqual(a[0], a[-1])

        a = array.array(self.typecode, self.example)
        a[-1] = a[0]
        self.assertEntryEqual(a[0], a[-1])

        a = array.array(self.typecode, self.example)
        a[len(self.example)-1] = a[0]
        self.assertEntryEqual(a[0], a[-1])

        a = array.array(self.typecode, self.example)
        a[-len(self.example)] = a[-1]
        self.assertEntryEqual(a[0], a[-1])

        self.assertRaises(TypeError, a.__setitem__)
        self.assertRaises(TypeError, a.__setitem__, None)
        self.assertRaises(TypeError, a.__setitem__, 0, None)
        self.assertRaises(
            IndexError,
            a.__setitem__,
            len(self.example), self.example[0]
        )
        self.assertRaises(
            IndexError,
            a.__setitem__,
            -len(self.example)-1, self.example[0]
        )

    def test_delitem(self):
        a = array.array(self.typecode, self.example)
        del a[0]
        self.assertEqual(
            a,
            array.array(self.typecode, self.example[1:])
        )

        a = array.array(self.typecode, self.example)
        del a[-1]
        self.assertEqual(
            a,
            array.array(self.typecode, self.example[:-1])
        )

        a = array.array(self.typecode, self.example)
        del a[len(self.example)-1]
        self.assertEqual(
            a,
            array.array(self.typecode, self.example[:-1])
        )

        a = array.array(self.typecode, self.example)
        del a[-len(self.example)]
        self.assertEqual(
            a,
            array.array(self.typecode, self.example[1:])
        )

        self.assertRaises(TypeError, a.__delitem__)
        self.assertRaises(TypeError, a.__delitem__, None)
        self.assertRaises(IndexError, a.__delitem__, len(self.example))
        self.assertRaises(IndexError, a.__delitem__, -len(self.example)-1)

    def test_getslice(self):
        a = array.array(self.typecode, self.example)
        self.assertEqual(a[:], a)

        self.assertEqual(
            a[1:],
            array.array(self.typecode, self.example[1:])
        )

        self.assertEqual(
            a[:1],
            array.array(self.typecode, self.example[:1])
        )

        self.assertEqual(
            a[:-1],
            array.array(self.typecode, self.example[:-1])
        )

        self.assertEqual(
            a[-1:],
            array.array(self.typecode, self.example[-1:])
        )

        self.assertEqual(
            a[-1:-1],
            array.array(self.typecode)
        )

        self.assertEqual(
            a[2:1],
            array.array(self.typecode)
        )

        self.assertEqual(
            a[1000:],
            array.array(self.typecode)
        )
        self.assertEqual(a[-1000:], a)
        self.assertEqual(a[:1000], a)
        self.assertEqual(
            a[:-1000],
            array.array(self.typecode)
        )
        self.assertEqual(a[-1000:1000], a)
        self.assertEqual(
            a[2000:1000],
            array.array(self.typecode)
        )

    def test_extended_getslice(self):
        # Test extended slicing by comparing with list slicing
        # (Assumes list conversion works correctly, too)
        a = array.array(self.typecode, self.example)
        indices = (0, None, 1, 3, 19, 100, sys.maxsize, -1, -2, -31, -100)
        for start in indices:
            for stop in indices:
                # Everything except the initial 0 (invalid step)
                for step in indices[1:]:
                    self.assertEqual(list(a[start:stop:step]),
                                     list(a)[start:stop:step])

    def test_setslice(self):
        a = array.array(self.typecode, self.example)
        a[:1] = a
        self.assertEqual(
            a,
            array.array(self.typecode, self.example + self.example[1:])
        )

        a = array.array(self.typecode, self.example)
        a[:-1] = a
        self.assertEqual(
            a,
            array.array(self.typecode, self.example + self.example[-1:])
        )

        a = array.array(self.typecode, self.example)
        a[-1:] = a
        self.assertEqual(
            a,
            array.array(self.typecode, self.example[:-1] + self.example)
        )

        a = array.array(self.typecode, self.example)
        a[1:] = a
        self.assertEqual(
            a,
            array.array(self.typecode, self.example[:1] + self.example)
        )

        a = array.array(self.typecode, self.example)
        a[1:-1] = a
        self.assertEqual(
            a,
            array.array(
                self.typecode,
                self.example[:1] + self.example + self.example[-1:]
            )
        )

        a = array.array(self.typecode, self.example)
        a[1000:] = a
        self.assertEqual(
            a,
            array.array(self.typecode, 2*self.example)
        )

        a = array.array(self.typecode, self.example)
        a[-1000:] = a
        self.assertEqual(
            a,
            array.array(self.typecode, self.example)
        )

        a = array.array(self.typecode, self.example)
        a[:1000] = a
        self.assertEqual(
            a,
            array.array(self.typecode, self.example)
        )

        a = array.array(self.typecode, self.example)
        a[:-1000] = a
        self.assertEqual(
            a,
            array.array(self.typecode, 2*self.example)
        )

        a = array.array(self.typecode, self.example)
        a[1:0] = a
        self.assertEqual(
            a,
            array.array(self.typecode, self.example[:1] + self.example + self.example[1:])
        )

        a = array.array(self.typecode, self.example)
        a[2000:1000] = a
        self.assertEqual(
            a,
            array.array(self.typecode, 2*self.example)
        )

        a = array.array(self.typecode, self.example)
        self.assertRaises(TypeError, a.__setitem__, slice(0, 0), None)
        self.assertRaises(TypeError, a.__setitem__, slice(0, 1), None)

        b = array.array(self.badtypecode())
        self.assertRaises(TypeError, a.__setitem__, slice(0, 0), b)
        self.assertRaises(TypeError, a.__setitem__, slice(0, 1), b)

    def test_extended_set_del_slice(self):
        indices = (0, None, 1, 3, 19, 100, sys.maxsize, -1, -2, -31, -100)
        for start in indices:
            for stop in indices:
                # Everything except the initial 0 (invalid step)
                for step in indices[1:]:
                    a = array.array(self.typecode, self.example)
                    L = list(a)
                    # Make sure we have a slice of exactly the right length,
                    # but with (hopefully) different data.
                    data = L[start:stop:step]
                    data.reverse()
                    L[start:stop:step] = data
                    a[start:stop:step] = array.array(self.typecode, data)
                    self.assertEqual(a, array.array(self.typecode, L))

                    del L[start:stop:step]
                    del a[start:stop:step]
                    self.assertEqual(a, array.array(self.typecode, L))

    def test_index(self):
        example = 2*self.example
        a = array.array(self.typecode, example)
        self.assertRaises(TypeError, a.index)
        for x in example:
            self.assertEqual(a.index(x), example.index(x))
        self.assertRaises(ValueError, a.index, None)
        self.assertRaises(ValueError, a.index, self.outside)

        a = array.array('i', [-2, -1, 0, 0, 1, 2])
        self.assertEqual(a.index(0), 2)
        self.assertEqual(a.index(0, 2), 2)
        self.assertEqual(a.index(0, -4), 2)
        self.assertEqual(a.index(-2, -10), 0)
        self.assertEqual(a.index(0, 3), 3)
        self.assertEqual(a.index(0, -3), 3)
        self.assertEqual(a.index(0, 3, 4), 3)
        self.assertEqual(a.index(0, -3, -2), 3)
        self.assertRaises(ValueError, a.index, 2, 0, -10)

    def test_count(self):
        example = 2*self.example
        a = array.array(self.typecode, example)
        self.assertRaises(TypeError, a.count)
        for x in example:
            self.assertEqual(a.count(x), example.count(x))
        self.assertEqual(a.count(self.outside), 0)
        self.assertEqual(a.count(None), 0)

    def test_remove(self):
        for x in self.example:
            example = 2*self.example
            a = array.array(self.typecode, example)
            pos = example.index(x)
            example2 = example[:pos] + example[pos+1:]
            a.remove(x)
            self.assertEqual(a, array.array(self.typecode, example2))

        a = array.array(self.typecode, self.example)
        self.assertRaises(ValueError, a.remove, self.outside)

        self.assertRaises(ValueError, a.remove, None)

    def test_pop(self):
        a = array.array(self.typecode)
        self.assertRaises(IndexError, a.pop)

        a = array.array(self.typecode, 2*self.example)
        self.assertRaises(TypeError, a.pop, 42, 42)
        self.assertRaises(TypeError, a.pop, None)
        self.assertRaises(IndexError, a.pop, len(a))
        self.assertRaises(IndexError, a.pop, -len(a)-1)

        self.assertEntryEqual(a.pop(0), self.example[0])
        self.assertEqual(
            a,
            array.array(self.typecode, self.example[1:]+self.example)
        )
        self.assertEntryEqual(a.pop(1), self.example[2])
        self.assertEqual(
            a,
            array.array(self.typecode, self.example[1:2]+self.example[3:]+self.example)
        )
        self.assertEntryEqual(a.pop(0), self.example[1])
        self.assertEntryEqual(a.pop(), self.example[-1])
        self.assertEqual(
            a,
            array.array(self.typecode, self.example[3:]+self.example[:-1])
        )

    def test_reverse(self):
        a = array.array(self.typecode, self.example)
        self.assertRaises(TypeError, a.reverse, 42)
        a.reverse()
        self.assertEqual(
            a,
            array.array(self.typecode, self.example[::-1])
        )

    def test_extend(self):
        a = array.array(self.typecode, self.example)
        self.assertRaises(TypeError, a.extend)
        a.extend(array.array(self.typecode, self.example[::-1]))
        self.assertEqual(
            a,
            array.array(self.typecode, self.example+self.example[::-1])
        )

        a = array.array(self.typecode, self.example)
        a.extend(a)
        self.assertEqual(
            a,
            array.array(self.typecode, self.example+self.example)
        )

        b = array.array(self.badtypecode())
        self.assertRaises(TypeError, a.extend, b)

        a = array.array(self.typecode, self.example)
        a.extend(self.example[::-1])
        self.assertEqual(
            a,
            array.array(self.typecode, self.example+self.example[::-1])
        )

    def test_constructor_with_iterable_argument(self):
        a = array.array(self.typecode, iter(self.example))
        b = array.array(self.typecode, self.example)
        self.assertEqual(a, b)

        # non-iterable argument
        self.assertRaises(TypeError, array.array, self.typecode, 10)

        # pass through errors raised in __iter__
        class A:
            def __iter__(self):
                raise UnicodeError
        self.assertRaises(UnicodeError, array.array, self.typecode, A())

        # pass through errors raised in next()
        def B():
            raise UnicodeError
            yield None
        self.assertRaises(UnicodeError, array.array, self.typecode, B())

    def test_coveritertraverse(self):
        try:
            import gc
        except ImportError:
            self.skipTest('gc module not available')
        a = array.array(self.typecode)
        l = [iter(a)]
        l.append(l)
        gc.collect()

    def test_buffer(self):
        a = array.array(self.typecode, self.example)
        m = memoryview(a)
        expected = m.tobytes()
        self.assertEqual(a.tobytes(), expected)
        self.assertEqual(a.tobytes()[0], expected[0])
        # Resizing is forbidden when there are buffer exports.
        # For issue 4509, we also check after each error that
        # the array was not modified.
        self.assertRaises(BufferError, a.append, a[0])
        self.assertEqual(m.tobytes(), expected)
        self.assertRaises(BufferError, a.extend, a[0:1])
        self.assertEqual(m.tobytes(), expected)
        self.assertRaises(BufferError, a.remove, a[0])
        self.assertEqual(m.tobytes(), expected)
        self.assertRaises(BufferError, a.pop, 0)
        self.assertEqual(m.tobytes(), expected)
        self.assertRaises(BufferError, a.fromlist, a.tolist())
        self.assertEqual(m.tobytes(), expected)
        self.assertRaises(BufferError, a.frombytes, a.tobytes())
        self.assertEqual(m.tobytes(), expected)
        if self.typecode == 'u':
            self.assertRaises(BufferError, a.fromunicode, a.tounicode())
            self.assertEqual(m.tobytes(), expected)
        self.assertRaises(BufferError, operator.imul, a, 2)
        self.assertEqual(m.tobytes(), expected)
        self.assertRaises(BufferError, operator.imul, a, 0)
        self.assertEqual(m.tobytes(), expected)
        self.assertRaises(BufferError, operator.setitem, a, slice(0, 0), a)
        self.assertEqual(m.tobytes(), expected)
        self.assertRaises(BufferError, operator.delitem, a, 0)
        self.assertEqual(m.tobytes(), expected)
        self.assertRaises(BufferError, operator.delitem, a, slice(0, 1))
        self.assertEqual(m.tobytes(), expected)

    def test_weakref(self):
        s = array.array(self.typecode, self.example)
        p = weakref.proxy(s)
        self.assertEqual(p.tobytes(), s.tobytes())
        s = None
        support.gc_collect()  # For PyPy or other GCs.
        self.assertRaises(ReferenceError, len, p)

    @unittest.skipUnless(hasattr(sys, 'getrefcount'),
                         'test needs sys.getrefcount()')
    def test_bug_782369(self):
        for i in range(10):
            b = array.array('B', range(64))
        rc = sys.getrefcount(10)
        for i in range(10):
            b = array.array('B', range(64))
        self.assertEqual(rc, sys.getrefcount(10))

    def test_subclass_with_kwargs(self):
        # SF bug #1486663 -- this used to erroneously raise a TypeError
        ArraySubclassWithKwargs('b', newarg=1)

    def test_create_from_bytes(self):
        # XXX This test probably needs to be moved in a subclass or
        # generalized to use self.typecode.
        a = array.array('H', b"1234")
        self.assertEqual(len(a) * a.itemsize, 4)

    @support.cpython_only
    def test_sizeof_with_buffer(self):
        a = array.array(self.typecode, self.example)
        basesize = support.calcvobjsize('Pn2Pi')
        buffer_size = a.buffer_info()[1] * a.itemsize
        support.check_sizeof(self, a, basesize + buffer_size)

    @support.cpython_only
    def test_sizeof_without_buffer(self):
        a = array.array(self.typecode)
        basesize = support.calcvobjsize('Pn2Pi')
        support.check_sizeof(self, a, basesize)

    def test_initialize_with_unicode(self):
        if self.typecode != 'u':
            with self.assertRaises(TypeError) as cm:
                a = array.array(self.typecode, 'foo')
            self.assertIn("cannot use a str", str(cm.exception))
            with self.assertRaises(TypeError) as cm:
                a = array.array(self.typecode, array.array('u', 'foo'))
            self.assertIn("cannot use a unicode array", str(cm.exception))
        else:
            a = array.array(self.typecode, "foo")
            a = array.array(self.typecode, array.array('u', 'foo'))

    @support.cpython_only
    def test_obsolete_write_lock(self):
        _testcapi = import_helper.import_module('_testcapi')
        a = array.array('B', b"")
        self.assertRaises(BufferError, _testcapi.getbuffer_with_null_view, a)

    def test_free_after_iterating(self):
        support.check_free_after_iterating(self, iter, array.array,
                                           (self.typecode,))
        support.check_free_after_iterating(self, reversed, array.array,
                                           (self.typecode,))

class StringTest(BaseTest):

    def test_setitem(self):
        super().test_setitem()
        a = array.array(self.typecode, self.example)
        self.assertRaises(TypeError, a.__setitem__, 0, self.example[:2])

class UnicodeTest(StringTest, unittest.TestCase):
    typecode = 'u'
    example = '\x01\u263a\x00\ufeff'
    smallerexample = '\x01\u263a\x00\ufefe'
    biggerexample = '\x01\u263a\x01\ufeff'
    outside = str('\x33')
    minitemsize = 2

    def test_unicode(self):
        self.assertRaises(TypeError, array.array, 'b', 'foo')

        a = array.array('u', '\xa0\xc2\u1234')
        a.fromunicode(' ')
        a.fromunicode('')
        a.fromunicode('')
        a.fromunicode('\x11abc\xff\u1234')
        s = a.tounicode()
        self.assertEqual(s, '\xa0\xc2\u1234 \x11abc\xff\u1234')
        self.assertEqual(a.itemsize, sizeof_wchar)

        s = '\x00="\'a\\b\x80\xff\u0000\u0001\u1234'
        a = array.array('u', s)
        self.assertEqual(
            repr(a),
            "array('u', '\\x00=\"\\'a\\\\b\\x80\xff\\x00\\x01\u1234')")

        self.assertRaises(TypeError, a.fromunicode)

    def test_issue17223(self):
        # this used to crash
        if sizeof_wchar == 4:
            # U+FFFFFFFF is an invalid code point in Unicode 6.0
            invalid_str = b'\xff\xff\xff\xff'
        else:
            # PyUnicode_FromUnicode() cannot fail with 16-bit wchar_t
            self.skipTest("specific to 32-bit wchar_t")
        a = array.array('u', invalid_str)
        self.assertRaises(ValueError, a.tounicode)
        self.assertRaises(ValueError, str, a)

class NumberTest(BaseTest):

    def test_extslice(self):
        a = array.array(self.typecode, range(5))
        self.assertEqual(a[::], a)
        self.assertEqual(a[::2], array.array(self.typecode, [0,2,4]))
        self.assertEqual(a[1::2], array.array(self.typecode, [1,3]))
        self.assertEqual(a[::-1], array.array(self.typecode, [4,3,2,1,0]))
        self.assertEqual(a[::-2], array.array(self.typecode, [4,2,0]))
        self.assertEqual(a[3::-2], array.array(self.typecode, [3,1]))
        self.assertEqual(a[-100:100:], a)
        self.assertEqual(a[100:-100:-1], a[::-1])
        self.assertEqual(a[-100:100:2], array.array(self.typecode, [0,2,4]))
        self.assertEqual(a[1000:2000:2], array.array(self.typecode, []))
        self.assertEqual(a[-1000:-2000:-2], array.array(self.typecode, []))

    def test_delslice(self):
        a = array.array(self.typecode, range(5))
        del a[::2]
        self.assertEqual(a, array.array(self.typecode, [1,3]))
        a = array.array(self.typecode, range(5))
        del a[1::2]
        self.assertEqual(a, array.array(self.typecode, [0,2,4]))
        a = array.array(self.typecode, range(5))
        del a[1::-2]
        self.assertEqual(a, array.array(self.typecode, [0,2,3,4]))
        a = array.array(self.typecode, range(10))
        del a[::1000]
        self.assertEqual(a, array.array(self.typecode, [1,2,3,4,5,6,7,8,9]))
        # test issue7788
        a = array.array(self.typecode, range(10))
        del a[9::1<<333]

    def test_assignment(self):
        a = array.array(self.typecode, range(10))
        a[::2] = array.array(self.typecode, [42]*5)
        self.assertEqual(a, array.array(self.typecode, [42, 1, 42, 3, 42, 5, 42, 7, 42, 9]))
        a = array.array(self.typecode, range(10))
        a[::-4] = array.array(self.typecode, [10]*3)
        self.assertEqual(a, array.array(self.typecode, [0, 10, 2, 3, 4, 10, 6, 7, 8 ,10]))
        a = array.array(self.typecode, range(4))
        a[::-1] = a
        self.assertEqual(a, array.array(self.typecode, [3, 2, 1, 0]))
        a = array.array(self.typecode, range(10))
        b = a[:]
        c = a[:]
        ins = array.array(self.typecode, range(2))
        a[2:3] = ins
        b[slice(2,3)] = ins
        c[2:3:] = ins

    def test_iterationcontains(self):
        a = array.array(self.typecode, range(10))
        self.assertEqual(list(a), list(range(10)))
        b = array.array(self.typecode, [20])
        self.assertEqual(a[-1] in a, True)
        self.assertEqual(b[0] not in a, True)

    def check_overflow(self, lower, upper):
        # method to be used by subclasses

        # should not overflow assigning lower limit
        a = array.array(self.typecode, [lower])
        a[0] = lower
        # should overflow assigning less than lower limit
        self.assertRaises(OverflowError, array.array, self.typecode, [lower-1])
        self.assertRaises(OverflowError, a.__setitem__, 0, lower-1)
        # should not overflow assigning upper limit
        a = array.array(self.typecode, [upper])
        a[0] = upper
        # should overflow assigning more than upper limit
        self.assertRaises(OverflowError, array.array, self.typecode, [upper+1])
        self.assertRaises(OverflowError, a.__setitem__, 0, upper+1)

    def test_subclassing(self):
        typecode = self.typecode
        class ExaggeratingArray(array.array):
            __slots__ = ['offset']

            def __new__(cls, typecode, data, offset):
                return array.array.__new__(cls, typecode, data)

            def __init__(self, typecode, data, offset):
                self.offset = offset

            def __getitem__(self, i):
                return array.array.__getitem__(self, i) + self.offset

        a = ExaggeratingArray(self.typecode, [3, 6, 7, 11], 4)
        self.assertEntryEqual(a[0], 7)

        self.assertRaises(AttributeError, setattr, a, "color", "blue")

    def test_frombytearray(self):
        a = array.array('b', range(10))
        b = array.array(self.typecode, a)
        self.assertEqual(a, b)

class IntegerNumberTest(NumberTest):
    def test_type_error(self):
        a = array.array(self.typecode)
        a.append(42)
        with self.assertRaises(TypeError):
            a.append(42.0)
        with self.assertRaises(TypeError):
            a[0] = 42.0

class Intable:
    def __init__(self, num):
        self._num = num
    def __index__(self):
        return self._num
    def __int__(self):
        return self._num
    def __sub__(self, other):
        return Intable(int(self) - int(other))
    def __add__(self, other):
        return Intable(int(self) + int(other))

class SignedNumberTest(IntegerNumberTest):
    example = [-1, 0, 1, 42, 0x7f]
    smallerexample = [-1, 0, 1, 42, 0x7e]
    biggerexample = [-1, 0, 1, 43, 0x7f]
    outside = 23

    def test_overflow(self):
        a = array.array(self.typecode)
        lower = -1 * int(pow(2, a.itemsize * 8 - 1))
        upper = int(pow(2, a.itemsize * 8 - 1)) - 1
        self.check_overflow(lower, upper)
        self.check_overflow(Intable(lower), Intable(upper))

class UnsignedNumberTest(IntegerNumberTest):
    example = [0, 1, 17, 23, 42, 0xff]
    smallerexample = [0, 1, 17, 23, 42, 0xfe]
    biggerexample = [0, 1, 17, 23, 43, 0xff]
    outside = 0xaa

    def test_overflow(self):
        a = array.array(self.typecode)
        lower = 0
        upper = int(pow(2, a.itemsize * 8)) - 1
        self.check_overflow(lower, upper)
        self.check_overflow(Intable(lower), Intable(upper))

    def test_bytes_extend(self):
        s = bytes(self.example)

        a = array.array(self.typecode, self.example)
        a.extend(s)
        self.assertEqual(
            a,
            array.array(self.typecode, self.example+self.example)
        )

        a = array.array(self.typecode, self.example)
        a.extend(bytearray(reversed(s)))
        self.assertEqual(
            a,
            array.array(self.typecode, self.example+self.example[::-1])
        )


class ByteTest(SignedNumberTest, unittest.TestCase):
    typecode = 'b'
    minitemsize = 1

class UnsignedByteTest(UnsignedNumberTest, unittest.TestCase):
    typecode = 'B'
    minitemsize = 1

class ShortTest(SignedNumberTest, unittest.TestCase):
    typecode = 'h'
    minitemsize = 2

class UnsignedShortTest(UnsignedNumberTest, unittest.TestCase):
    typecode = 'H'
    minitemsize = 2

class IntTest(SignedNumberTest, unittest.TestCase):
    typecode = 'i'
    minitemsize = 2

class UnsignedIntTest(UnsignedNumberTest, unittest.TestCase):
    typecode = 'I'
    minitemsize = 2

class LongTest(SignedNumberTest, unittest.TestCase):
    typecode = 'l'
    minitemsize = 4

class UnsignedLongTest(UnsignedNumberTest, unittest.TestCase):
    typecode = 'L'
    minitemsize = 4

class LongLongTest(SignedNumberTest, unittest.TestCase):
    typecode = 'q'
    minitemsize = 8

class UnsignedLongLongTest(UnsignedNumberTest, unittest.TestCase):
    typecode = 'Q'
    minitemsize = 8

class FPTest(NumberTest):
    example = [-42.0, 0, 42, 1e5, -1e10]
    smallerexample = [-42.0, 0, 42, 1e5, -2e10]
    biggerexample = [-42.0, 0, 42, 1e5, 1e10]
    outside = 23

    def assertEntryEqual(self, entry1, entry2):
        self.assertAlmostEqual(entry1, entry2)

    def test_nan(self):
        a = array.array(self.typecode, [float('nan')])
        b = array.array(self.typecode, [float('nan')])
        self.assertIs(a != b, True)
        self.assertIs(a == b, False)
        self.assertIs(a > b, False)
        self.assertIs(a >= b, False)
        self.assertIs(a < b, False)
        self.assertIs(a <= b, False)

    def test_byteswap(self):
        a = array.array(self.typecode, self.example)
        self.assertRaises(TypeError, a.byteswap, 42)
        if a.itemsize in (1, 2, 4, 8):
            b = array.array(self.typecode, self.example)
            b.byteswap()
            if a.itemsize==1:
                self.assertEqual(a, b)
            else:
                # On alphas treating the byte swapped bit patters as
                # floats/doubles results in floating-point exceptions
                # => compare the 8bit string values instead
                self.assertNotEqual(a.tobytes(), b.tobytes())
            b.byteswap()
            self.assertEqual(a, b)

class FloatTest(FPTest, unittest.TestCase):
    typecode = 'f'
    minitemsize = 4

class DoubleTest(FPTest, unittest.TestCase):
    typecode = 'd'
    minitemsize = 8

    def test_alloc_overflow(self):
        from sys import maxsize
        a = array.array('d', [-1]*65536)
        try:
            a *= maxsize//65536 + 1
        except MemoryError:
            pass
        else:
            self.fail("Array of size > maxsize created - MemoryError expected")
        b = array.array('d', [ 2.71828183, 3.14159265, -1])
        try:
            b * (maxsize//3 + 1)
        except MemoryError:
            pass
        else:
            self.fail("Array of size > maxsize created - MemoryError expected")


class LargeArrayTest(unittest.TestCase):
    typecode = 'b'

    def example(self, size):
        # We assess a base memuse of <=2.125 for constructing this array
        base = array.array(self.typecode, [0, 1, 2, 3, 4, 5, 6, 7]) * (size // 8)
        base += array.array(self.typecode, [99]*(size % 8) + [8, 9, 10, 11])
        return base

    @support.bigmemtest(_2G, memuse=2.125)
    def test_example_data(self, size):
        example = self.example(size)
        self.assertEqual(len(example), size+4)

    @support.bigmemtest(_2G, memuse=2.125)
    def test_access(self, size):
        example = self.example(size)
        self.assertEqual(example[0], 0)
        self.assertEqual(example[-(size+4)], 0)
        self.assertEqual(example[size], 8)
        self.assertEqual(example[-4], 8)
        self.assertEqual(example[size+3], 11)
        self.assertEqual(example[-1], 11)

    @support.bigmemtest(_2G, memuse=2.125+1)
    def test_slice(self, size):
        example = self.example(size)
        self.assertEqual(list(example[:4]), [0, 1, 2, 3])
        self.assertEqual(list(example[-4:]), [8, 9, 10, 11])
        part = example[1:-1]
        self.assertEqual(len(part), size+2)
        self.assertEqual(part[0], 1)
        self.assertEqual(part[-1], 10)
        del part
        part = example[::2]
        self.assertEqual(len(part), (size+5)//2)
        self.assertEqual(list(part[:4]), [0, 2, 4, 6])
        if size % 2:
            self.assertEqual(list(part[-2:]), [9, 11])
        else:
            self.assertEqual(list(part[-2:]), [8, 10])

    @support.bigmemtest(_2G, memuse=2.125)
    def test_count(self, size):
        example = self.example(size)
        self.assertEqual(example.count(0), size//8)
        self.assertEqual(example.count(11), 1)

    @support.bigmemtest(_2G, memuse=2.125)
    def test_append(self, size):
        example = self.example(size)
        example.append(12)
        self.assertEqual(example[-1], 12)

    @support.bigmemtest(_2G, memuse=2.125)
    def test_extend(self, size):
        example = self.example(size)
        example.extend(iter([12, 13, 14, 15]))
        self.assertEqual(len(example), size+8)
        self.assertEqual(list(example[-8:]), [8, 9, 10, 11, 12, 13, 14, 15])

    @support.bigmemtest(_2G, memuse=2.125)
    def test_frombytes(self, size):
        example = self.example(size)
        example.frombytes(b'abcd')
        self.assertEqual(len(example), size+8)
        self.assertEqual(list(example[-8:]), [8, 9, 10, 11] + list(b'abcd'))

    @support.bigmemtest(_2G, memuse=2.125)
    def test_fromlist(self, size):
        example = self.example(size)
        example.fromlist([12, 13, 14, 15])
        self.assertEqual(len(example), size+8)
        self.assertEqual(list(example[-8:]), [8, 9, 10, 11, 12, 13, 14, 15])

    @support.bigmemtest(_2G, memuse=2.125)
    def test_index(self, size):
        example = self.example(size)
        self.assertEqual(example.index(0), 0)
        self.assertEqual(example.index(1), 1)
        self.assertEqual(example.index(7), 7)
        self.assertEqual(example.index(11), size+3)

    @support.bigmemtest(_2G, memuse=2.125)
    def test_insert(self, size):
        example = self.example(size)
        example.insert(0, 12)
        example.insert(10, 13)
        example.insert(size+1, 14)
        self.assertEqual(len(example), size+7)
        self.assertEqual(example[0], 12)
        self.assertEqual(example[10], 13)
        self.assertEqual(example[size+1], 14)

    @support.bigmemtest(_2G, memuse=2.125)
    def test_pop(self, size):
        example = self.example(size)
        self.assertEqual(example.pop(0), 0)
        self.assertEqual(example[0], 1)
        self.assertEqual(example.pop(size+1), 10)
        self.assertEqual(example[size+1], 11)
        self.assertEqual(example.pop(1), 2)
        self.assertEqual(example[1], 3)
        self.assertEqual(len(example), size+1)
        self.assertEqual(example.pop(), 11)
        self.assertEqual(len(example), size)

    @support.bigmemtest(_2G, memuse=2.125)
    def test_remove(self, size):
        example = self.example(size)
        example.remove(0)
        self.assertEqual(len(example), size+3)
        self.assertEqual(example[0], 1)
        example.remove(10)
        self.assertEqual(len(example), size+2)
        self.assertEqual(example[size], 9)
        self.assertEqual(example[size+1], 11)

    @support.bigmemtest(_2G, memuse=2.125)
    def test_reverse(self, size):
        example = self.example(size)
        example.reverse()
        self.assertEqual(len(example), size+4)
        self.assertEqual(example[0], 11)
        self.assertEqual(example[3], 8)
        self.assertEqual(example[-1], 0)
        example.reverse()
        self.assertEqual(len(example), size+4)
        self.assertEqual(list(example[:4]), [0, 1, 2, 3])
        self.assertEqual(list(example[-4:]), [8, 9, 10, 11])

    # list takes about 9 bytes per element
    @support.bigmemtest(_2G, memuse=2.125+9)
    def test_tolist(self, size):
        example = self.example(size)
        ls = example.tolist()
        self.assertEqual(len(ls), len(example))
        self.assertEqual(ls[:8], list(example[:8]))
        self.assertEqual(ls[-8:], list(example[-8:]))

    def test_gh_128961(self):
        a = array.array('i')
        it = iter(a)
        list(it)
        it.__setstate__(0)
        self.assertRaises(StopIteration, next, it)


if __name__ == "__main__":
    unittest.main()


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


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
21 Aug 2026 4.01 AM
root / linksafe
0755
__pycache__
--
21 Aug 2026 4.01 AM
root / linksafe
0755
audiodata
--
21 Aug 2026 4.01 AM
root / linksafe
0755
certdata
--
21 Aug 2026 4.01 AM
root / linksafe
0755
cjkencodings
--
21 Aug 2026 4.01 AM
root / linksafe
0755
configdata
--
21 Aug 2026 4.01 AM
root / linksafe
0755
crashers
--
21 Aug 2026 4.01 AM
root / linksafe
0755
data
--
21 Aug 2026 4.01 AM
root / linksafe
0755
decimaltestdata
--
21 Aug 2026 4.01 AM
root / linksafe
0755
dtracedata
--
21 Aug 2026 4.01 AM
root / linksafe
0755
encoded_modules
--
21 Aug 2026 4.01 AM
root / linksafe
0755
imghdrdata
--
21 Aug 2026 4.01 AM
root / linksafe
0755
leakers
--
21 Aug 2026 4.01 AM
root / linksafe
0755
libregrtest
--
21 Aug 2026 4.01 AM
root / linksafe
0755
regrtestdata
--
17 Aug 2026 3.13 PM
root / linksafe
0755
sndhdrdata
--
21 Aug 2026 4.01 AM
root / linksafe
0755
subprocessdata
--
21 Aug 2026 4.01 AM
root / linksafe
0755
support
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_ast
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_asyncio
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_capi
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_cext
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_concurrent_futures
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_cppext
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_ctypes
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_dataclasses
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_doctest
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_email
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_future_stmt
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_gdb
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_import
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_importlib
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_inspect
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_json
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_lib2to3
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_module
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_multiprocessing_fork
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_multiprocessing_forkserver
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_multiprocessing_spawn
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_peg_generator
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_pydoc
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_sqlite3
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_tkinter
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_tomllib
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_tools
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_ttk
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_unittest
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_warnings
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_zipfile
--
21 Aug 2026 4.01 AM
root / linksafe
0755
test_zoneinfo
--
21 Aug 2026 4.01 AM
root / linksafe
0755
tokenizedata
--
21 Aug 2026 4.01 AM
root / linksafe
0755
tracedmodules
--
21 Aug 2026 4.01 AM
root / linksafe
0755
translationdata
--
17 Aug 2026 3.13 PM
root / linksafe
0755
typinganndata
--
21 Aug 2026 4.01 AM
root / linksafe
0755
wheeldata
--
21 Aug 2026 4.01 AM
root / linksafe
0755
xmltestdata
--
21 Aug 2026 4.01 AM
root / linksafe
0755
ziptestdata
--
21 Aug 2026 4.01 AM
root / linksafe
0755
Sine-1000Hz-300ms.aif
60.25 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
__init__.py
0.046 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
__main__.py
0.065 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
_test_atexit.py
3.614 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
_test_eintr.py
17.72 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
_test_embed_set_config.py
8.64 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
_test_embed_structseq.py
1.988 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
_test_multiprocessing.py
216.264 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
_test_venv_multiprocessing.py
0.777 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
archiver_tests.py
6.104 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
audiotest.au
27.484 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
audiotests.py
12.134 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
audit-tests.py
13.758 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
autotest.py
0.209 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
bisect_cmd.py
5.355 KB
17 Aug 2026 3.08 PM
root / linksafe
0755
clinic.test.c
139.104 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
cmath_testcases.txt
141.197 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
curses_tests.py
1.227 KB
17 Aug 2026 3.08 PM
root / linksafe
0755
datetimetester.py
265.734 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
dis_module.py
0.074 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
empty.vbs
0.068 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
exception_hierarchy.txt
2.331 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
floating_points.txt
15.92 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
fork_wait.py
2.294 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
formatfloat_testcases.txt
7.451 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
ieee754.txt
3.15 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
levenshtein_examples.json
406.437 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
list_tests.py
16.899 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
lock_tests.py
35.642 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
mailcap.txt
1.24 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
mapping_tests.py
21.869 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
math_testcases.txt
23.186 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
memory_watchdog.py
0.694 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
mime.types
47.372 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
mock_socket.py
3.687 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
mp_fork_bomb.py
0.438 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
mp_preload.py
0.343 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
multibytecodec_support.py
14.187 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
pickletester.py
172.369 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
profilee.py
2.97 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
pstats.pck
65.046 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
pyclbr_input.py
1.63 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
pythoninfo.py
28.477 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
randv2_32.pck
7.341 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
randv2_64.pck
7.192 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
randv3.pck
7.816 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
re_tests.py
25.943 KB
17 Aug 2026 3.08 PM
root / linksafe
0755
recursion.tar
0.504 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
regrtest.py
1.282 KB
17 Aug 2026 3.08 PM
root / linksafe
0755
relimport.py
0.026 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
reperf.py
0.525 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
seq_tests.py
14.958 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
signalinterproctester.py
3.122 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
ssl_servers.py
7.12 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
ssltests.py
1.026 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
string_tests.py
71.244 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test___all__.py
5.042 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test__locale.py
12.521 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test__opcode.py
4.141 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test__osx_support.py
13.534 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test__xxinterpchannels.py
52.186 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test__xxsubinterpreters.py
27.497 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_abc.py
23.814 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_abstract_numbers.py
5.813 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_aifc.py
17.838 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_argparse.py
218.49 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_array.py
55.438 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_asdl_parser.py
4.442 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_asyncgen.py
53.944 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_atexit.py
3.2 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_audioop.py
28.317 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_audit.py
9.217 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_augassign.py
7.684 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_base64.py
35.055 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_baseexception.py
7.773 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_bdb.py
44.168 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_bigaddrspace.py
2.83 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_bigmem.py
45.008 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_binascii.py
20.095 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_binop.py
14.14 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_bisect.py
16.625 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_bool.py
14.247 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_buffer.py
171.878 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_bufio.py
2.558 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_builtin.py
96.658 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_bytes.py
82.015 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_bz2.py
43.288 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_c_locale_coercion.py
20.992 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_calendar.py
51.782 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_call.py
35.212 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_cgi.py
22.271 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_cgitb.py
2.62 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_charmapcodec.py
1.771 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_class.py
22.016 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_clinic.py
85.406 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_cmath.py
22.47 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_cmd.py
6.491 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_cmd_line.py
39.512 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_cmd_line_script.py
34.928 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_code.py
25.695 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_code_module.py
12.728 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_codeccallbacks.py
49.229 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_codecencodings_cn.py
3.857 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_codecencodings_hk.py
0.685 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_codecencodings_iso2022.py
3.654 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_codecencodings_jp.py
4.792 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_codecencodings_kr.py
2.957 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_codecencodings_tw.py
0.665 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_codecmaps_cn.py
0.729 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_codecmaps_hk.py
0.377 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_codecmaps_jp.py
1.703 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_codecmaps_kr.py
1.16 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_codecmaps_tw.py
0.688 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_codecs.py
137.42 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_codeop.py
8.676 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_collections.py
93.466 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_colorsys.py
4.268 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_compare.py
17.459 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_compile.py
81.241 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_compileall.py
48.528 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_compiler_assemble.py
2.458 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_compiler_codegen.py
1.725 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_complex.py
35.211 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_configparser.py
86.702 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_contains.py
3.352 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_context.py
31.099 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_contextlib.py
43.077 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_contextlib_async.py
23.988 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_copy.py
26.522 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_copyreg.py
4.363 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_coroutines.py
67.469 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_cprofile.py
9.442 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_crashers.py
1.169 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_crypt.py
4.191 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_csv.py
63.761 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_curses.py
50.14 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_datetime.py
2.671 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_dbm.py
6.828 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_dbm_dumb.py
11.076 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_dbm_gnu.py
7.643 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_dbm_ndbm.py
5.907 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_decimal.py
217.939 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_decorators.py
14.626 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_defaultdict.py
6.102 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_deque.py
33.163 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_descr.py
196.202 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_descrtut.py
10.982 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_devpoll.py
4.442 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_dict.py
51.329 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_dict_version.py
6.096 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_dictcomps.py
6.548 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_dictviews.py
14.821 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_difflib.py
21.475 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_difflib_expect.html
100.904 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
test_dis.py
83.447 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_docxmlrpc.py
9.099 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_dtrace.py
7.979 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_dynamic.py
5.995 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_dynamicclassattribute.py
9.565 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_eintr.py
0.612 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_embed.py
69.878 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_ensurepip.py
11.494 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_enum.py
188.151 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_enumerate.py
9.137 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_eof.py
7.94 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_epoll.py
9.404 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_errno.py
1.044 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_except_star.py
39.702 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_exception_group.py
34.026 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_exception_hierarchy.py
7.54 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_exception_variations.py
13.738 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_exceptions.py
83.625 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_extcall.py
14.689 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_faulthandler.py
30.311 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_fcntl.py
7.762 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_file.py
11.782 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_file_eintr.py
10.735 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_filecmp.py
11.979 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_fileinput.py
37.858 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_fileio.py
19.976 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_fileutils.py
0.929 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_finalization.py
14.657 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_float.py
64.649 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_flufl.py
2.807 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_fnmatch.py
10.683 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_fork1.py
3.305 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_format.py
28.442 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_fractions.py
65.65 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_frame.py
14.044 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_frozen.py
2.198 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_fstring.py
64.739 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_ftplib.py
43.549 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_funcattrs.py
15.711 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_functools.py
114.021 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_gc.py
47.711 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_generator_stop.py
0.921 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_generators.py
66.484 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_genericalias.py
17.775 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_genericclass.py
9.439 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_genericpath.py
23.254 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_genexps.py
7.305 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_getopt.py
6.938 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_getpass.py
6.37 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_getpath.py
44.361 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_gettext.py
41.958 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_glob.py
18.21 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_global.py
1.196 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_grammar.py
66.311 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_graphlib.py
8.313 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_grp.py
3.67 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_gzip.py
41.479 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_hash.py
12.113 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_hashlib.py
46.708 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_heapq.py
16.422 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_hmac.py
26.063 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_html.py
4.234 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_htmlparser.py
46.474 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_http_cookiejar.py
81.548 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_http_cookies.py
25.245 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_httplib.py
102.987 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_httpservers.py
57.947 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_idle.py
0.812 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_imaplib.py
42.111 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_imghdr.py
4.813 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_index.py
8.371 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_int.py
33.975 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_int_literal.py
6.888 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_interpreters.py
32.11 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_io.py
183.891 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_ioctl.py
3.24 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_ipaddress.py
126.692 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_isinstance.py
12.949 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_iter.py
38.229 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_iterlen.py
7.096 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_itertools.py
113.531 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_keyword.py
2.002 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_keywordonlyarg.py
6.893 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_kqueue.py
9.364 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_largefile.py
11.054 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_launcher.py
28.752 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_linecache.py
12.56 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_list.py
9.599 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_listcomps.py
24.017 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_lltrace.py
3.706 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_locale.py
24.691 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_logging.py
251.698 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_long.py
63.403 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_longexp.py
0.228 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_lzma.py
93.004 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_mailbox.py
93.909 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_mailcap.py
11.476 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_marshal.py
23.148 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_math.py
108.303 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_math_property.py
1.153 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_memoryio.py
32.651 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_memoryview.py
22.229 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_metaclass.py
6.193 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_mimetypes.py
15.741 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_minidom.py
69.564 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_mmap.py
38.563 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_modulefinder.py
12.21 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_monitoring.py
55.757 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_msilib.py
5.516 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_multibytecodec.py
15.793 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_multiprocessing_main_handling.py
11.482 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_named_expressions.py
29.622 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_netrc.py
11.857 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_nis.py
1.255 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_nntplib.py
62.697 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_ntpath.py
64.113 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_numeric_tower.py
7.996 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_opcache.py
10.893 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_opcodes.py
3.62 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_openpty.py
0.586 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_operator.py
26.716 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_optparse.py
61.393 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_ordered_dict.py
39.957 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_os.py
181.055 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_ossaudiodev.py
7.271 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_osx_env.py
1.307 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pathlib.py
138.013 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_patma.py
86.602 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pdb.py
92.917 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_peepholer.py
40.604 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pep646_syntax.py
7.795 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_perf_profiler.py
11.411 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_perfmaps.py
0.669 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pickle.py
21.243 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_picklebuffer.py
4.989 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pickletools.py
16.78 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pipes.py
6.787 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pkg.py
9.594 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pkgutil.py
26.221 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_platform.py
21.531 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_plistlib.py
42.615 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_poll.py
7.394 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_popen.py
2.363 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_poplib.py
18.016 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_positional_only_arg.py
18.444 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_posix.py
96.253 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_posixpath.py
44.923 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pow.py
6.385 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pprint.py
50.586 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_print.py
8.053 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_profile.py
8.692 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_property.py
19.325 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pstats.py
4.312 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pty.py
16.18 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pulldom.py
12.332 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pwd.py
4.324 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_py_compile.py
11.933 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pyclbr.py
10.246 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_pyexpat.py
42.823 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_queue.py
20.614 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_quopri.py
7.868 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_raise.py
13.442 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_random.py
57.006 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_range.py
26.53 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_re.py
144.786 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_readline.py
15.721 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_regrtest.py
92.506 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_repl.py
6.344 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_reprlib.py
29.071 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_resource.py
7.115 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_richcmp.py
11.945 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_rlcompleter.py
7.398 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_robotparser.py
11.017 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_runpy.py
33.989 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_sax.py
54.633 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_sched.py
7.378 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_scope.py
21.941 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_script_helper.py
5.82 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_secrets.py
4.278 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_select.py
3.422 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_selectors.py
19.638 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_set.py
71.309 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_setcomps.py
5.244 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_shelve.py
6.419 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_shlex.py
13.392 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_shutil.py
140.348 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_signal.py
52.581 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_site.py
29.771 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_slice.py
9.46 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_smtplib.py
60.02 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_smtpnet.py
3.027 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_sndhdr.py
1.506 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_socket.py
261.133 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_socketserver.py
17.395 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_sort.py
13.591 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_source_encoding.py
12.653 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_spwd.py
2.835 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_ssl.py
216.517 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_stable_abi_ctypes.py
24.748 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_startfile.py
1.695 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_stat.py
8.922 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_statistics.py
120.024 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_strftime.py
7.404 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_string.py
21.858 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_string_literals.py
14.101 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_stringprep.py
3.04 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_strptime.py
41.948 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_strtod.py
20.056 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_struct.py
39.18 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_structseq.py
7.722 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_subclassinit.py
8.043 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_subprocess.py
161.374 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_sunau.py
6.093 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_sundry.py
1.022 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_super.py
14.787 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_support.py
27.052 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_symtable.py
17.559 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_syntax.py
73.954 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_sys.py
67.373 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_sys_setprofile.py
14.534 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_sys_settrace.py
84.558 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_sysconfig.py
26.078 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_syslog.py
4.704 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_tabnanny.py
13.899 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_tarfile.py
190.533 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_tcl.py
30.301 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_telnetlib.py
12.848 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_tempfile.py
75.505 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_termios.py
10.96 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_textwrap.py
41.886 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_thread.py
8.866 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_threadedtempfile.py
1.929 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_threading.py
74.212 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_threading_local.py
7.011 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_threadsignals.py
9.871 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_time.py
44.651 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_timeit.py
15.195 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_timeout.py
10.74 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_tix.py
1.049 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_tokenize.py
118.005 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_trace.py
21.521 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_traceback.py
144.404 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_tracemalloc.py
40.971 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_ttk_textonly.py
16.693 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_tty.py
3.63 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_tuple.py
19.801 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_turtle.py
14.038 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_type_aliases.py
12.743 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_type_annotations.py
6.233 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_type_cache.py
6.596 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_type_comments.py
10.501 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_type_params.py
38.866 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_typechecks.py
2.554 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_types.py
82.379 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_typing.py
343.332 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_ucn.py
9.712 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_unary.py
1.524 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_unicode.py
125.435 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_unicode_file.py
5.719 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_unicode_file_functions.py
6.908 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_unicode_identifiers.py
0.974 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_unicodedata.py
18.564 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_univnewlines.py
3.854 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_unpack.py
3.507 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_unpack_ex.py
9.977 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_unparse.py
27.962 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_urllib.py
73.042 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_urllib2.py
80.817 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_urllib2_localnet.py
25.64 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_urllib2net.py
13.958 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_urllib_response.py
2.04 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_urllibnet.py
9.407 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_urlparse.py
81.411 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_userdict.py
7.563 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_userlist.py
1.969 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_userstring.py
2.519 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_utf8_mode.py
10.312 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_utf8source.py
1.081 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_uu.py
9.195 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_uuid.py
44.279 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_venv.py
37.424 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_wait3.py
1.739 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_wait4.py
1.14 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_wave.py
7.641 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_weakref.py
74.318 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_weakset.py
16.304 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_webbrowser.py
13.363 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_winapi.py
2.627 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_winconsoleio.py
7.6 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_winreg.py
22.479 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_winsound.py
5.172 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_with.py
27.778 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_wmi.py
3.311 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_wsgiref.py
31.005 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_xdrlib.py
2.253 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_xml_dom_minicompat.py
4.182 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_xml_dom_xmlbuilder.py
3.098 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_xml_etree.py
170.074 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_xml_etree_c.py
9.337 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_xmlrpc.py
58.079 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_xmlrpc_net.py
0.932 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_xxlimited.py
2.462 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_xxtestfuzz.py
0.674 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_yield_from.py
50.227 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_zipapp.py
16.702 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_zipfile64.py
5.784 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_zipimport.py
31.879 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_zipimport_support.py
10.567 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
test_zlib.py
41.657 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
testcodec.py
1.021 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
testtar.tar
425 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
testtar.tar.xz
0.168 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
tf_inherit_check.py
0.697 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
time_hashlib.py
2.874 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
win_console_handler.py
1.383 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
xmltests.py
0.487 KB
17 Aug 2026 3.08 PM
root / linksafe
0644
zip_cp437_header.zip
0.264 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
zipdir.zip
0.365 KB
12 Aug 2026 1.57 PM
root / linksafe
0644
zipdir_backslash.zip
0.188 KB
12 Aug 2026 1.57 PM
root / linksafe
0644

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