$55 GRAYBYTE WORDPRESS FILE MANAGER $65

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/cloudlinux/venv/lib/python3.11/site-packages/astroid/brain/

HOME
Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/astroid/brain//brain_ctypes.py
# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
# For details: https://github.com/PyCQA/astroid/blob/main/LICENSE
# Copyright (c) https://github.com/PyCQA/astroid/blob/main/CONTRIBUTORS.txt

"""
Astroid hooks for ctypes module.

Inside the ctypes module, the value class is defined inside
the C coded module _ctypes.
Thus astroid doesn't know that the value member is a builtin type
among float, int, bytes or str.
"""
import sys

from astroid.brain.helpers import register_module_extender
from astroid.builder import parse
from astroid.manager import AstroidManager


def enrich_ctypes_redefined_types():
    """
    For each ctypes redefined types, overload 'value' and '_type_' members
    definition.

    Overloading 'value' is mandatory otherwise astroid cannot infer the correct type for it.
    Overloading '_type_' is necessary because the class definition made here replaces the original
    one, in which '_type_' member is defined. Luckily those original class definitions are very short
    and contain only the '_type_' member definition.
    """
    c_class_to_type = (
        ("c_byte", "int", "b"),
        ("c_char", "bytes", "c"),
        ("c_double", "float", "d"),
        ("c_float", "float", "f"),
        ("c_int", "int", "i"),
        ("c_int16", "int", "h"),
        ("c_int32", "int", "i"),
        ("c_int64", "int", "l"),
        ("c_int8", "int", "b"),
        ("c_long", "int", "l"),
        ("c_longdouble", "float", "g"),
        ("c_longlong", "int", "l"),
        ("c_short", "int", "h"),
        ("c_size_t", "int", "L"),
        ("c_ssize_t", "int", "l"),
        ("c_ubyte", "int", "B"),
        ("c_uint", "int", "I"),
        ("c_uint16", "int", "H"),
        ("c_uint32", "int", "I"),
        ("c_uint64", "int", "L"),
        ("c_uint8", "int", "B"),
        ("c_ulong", "int", "L"),
        ("c_ulonglong", "int", "L"),
        ("c_ushort", "int", "H"),
        ("c_wchar", "str", "u"),
    )

    src = [
        """
from _ctypes import _SimpleCData

class c_bool(_SimpleCData):
    def __init__(self, value):
        self.value = True
        self._type_ = '?'
    """
    ]

    for c_type, builtin_type, type_code in c_class_to_type:
        src.append(
            f"""
class {c_type}(_SimpleCData):
    def __init__(self, value):
        self.value = {builtin_type}(value)
        self._type_ = '{type_code}'
        """
        )

    return parse("\n".join(src))


if not hasattr(sys, "pypy_version_info"):
    # No need of this module in pypy where everything is written in python
    register_module_extender(AstroidManager(), "ctypes", enrich_ctypes_redefined_types)

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
14 Aug 2025 9.24 PM
root / root
0755
__pycache__
--
14 Aug 2025 9.24 PM
root / root
0755
__init__.py
0 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_argparse.py
1.521 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_attrs.py
2.967 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_boto3.py
0.988 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_builtin_inference.py
33.451 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_collections.py
4.313 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_crypt.py
0.843 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_ctypes.py
2.598 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_curses.py
3.396 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_dataclasses.py
21.571 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_dateutil.py
0.749 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_fstrings.py
2.413 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_functools.py
5.846 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_gi.py
7.366 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_hashlib.py
2.755 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_http.py
10.391 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_hypothesis.py
1.691 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_io.py
1.49 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_mechanize.py
2.584 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_multiprocessing.py
3.136 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_namedtuple_enum.py
22.192 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_nose.py
2.266 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_numpy_core_einsumfunc.py
0.806 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_numpy_core_fromnumeric.py
0.715 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_numpy_core_function_base.py
1.268 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_numpy_core_multiarray.py
4.139 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_numpy_core_numeric.py
1.591 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_numpy_core_numerictypes.py
8.346 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_numpy_core_umath.py
4.778 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_numpy_ma.py
0.875 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_numpy_ndarray.py
8.787 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_numpy_random_mtrand.py
3.355 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_numpy_utils.py
2.575 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_pathlib.py
1.506 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_pkg_resources.py
2.148 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_pytest.py
2.171 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_qt.py
2.742 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_random.py
2.822 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_re.py
2.803 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_regex.py
3.283 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_responses.py
1.824 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_scipy_signal.py
2.223 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_signal.py
3.789 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_six.py
7.416 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_sqlalchemy.py
0.985 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_ssl.py
6.4 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_subprocess.py
2.926 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_threading.py
0.85 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_type.py
2.425 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_typing.py
13.979 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_unittest.py
1.12 KB
17 Apr 2025 8.10 PM
root / root
0644
brain_uuid.py
0.651 KB
17 Apr 2025 8.10 PM
root / root
0644
helpers.py
0.887 KB
17 Apr 2025 8.10 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF