From 846959fc36e10be224dfe929b4dc0ce7effee7cd Mon Sep 17 00:00:00 2001 From: Polina Date: Thu, 2 Jul 2026 20:19:31 +0000 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20=C2=AB?= =?UTF-8?q?venv/Lib/site-packages/sqlalchemy/cyextension=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cyextension/util.cp314-win_amd64.pyd | Bin 0 -> 70656 bytes .../sqlalchemy/cyextension/util.pyx | 90 ++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 venv/Lib/site-packages/sqlalchemy/cyextension/util.cp314-win_amd64.pyd create mode 100644 venv/Lib/site-packages/sqlalchemy/cyextension/util.pyx diff --git a/venv/Lib/site-packages/sqlalchemy/cyextension/util.cp314-win_amd64.pyd b/venv/Lib/site-packages/sqlalchemy/cyextension/util.cp314-win_amd64.pyd new file mode 100644 index 0000000000000000000000000000000000000000..ce664b1125df2ed9f7a45b76095094cb042af911 GIT binary patch literal 70656 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 literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/sqlalchemy/cyextension/util.pyx b/venv/Lib/site-packages/sqlalchemy/cyextension/util.pyx new file mode 100644 index 0000000..28dd47a --- /dev/null +++ b/venv/Lib/site-packages/sqlalchemy/cyextension/util.pyx @@ -0,0 +1,90 @@ +# cyextension/util.pyx +# Copyright (C) 2005-2024 the SQLAlchemy authors and contributors +# +# +# This module is part of SQLAlchemy and is released under +# the MIT License: https://www.opensource.org/licenses/mit-license.php +from collections.abc import Mapping + +from sqlalchemy import exc + +cdef tuple _Empty_Tuple = () + +cdef inline bint _is_mapping_or_tuple(object value): + return isinstance(value, dict) or isinstance(value, tuple) or isinstance(value, Mapping) + + +cdef inline bint _is_mapping(object value): + return isinstance(value, dict) or isinstance(value, Mapping) + + +def _distill_params_20(object params): + if params is None: + return _Empty_Tuple + elif isinstance(params, list) or isinstance(params, tuple): + if params and not _is_mapping(params[0]): + raise exc.ArgumentError( + "List argument must consist only of dictionaries" + ) + return params + elif _is_mapping(params): + return [params] + else: + raise exc.ArgumentError("mapping or list expected for parameters") + + +def _distill_raw_params(object params): + if params is None: + return _Empty_Tuple + elif isinstance(params, list): + if params and not _is_mapping_or_tuple(params[0]): + raise exc.ArgumentError( + "List argument must consist only of tuples or dictionaries" + ) + return params + elif _is_mapping_or_tuple(params): + return [params] + else: + raise exc.ArgumentError("mapping or sequence expected for parameters") + +cdef class prefix_anon_map(dict): + def __missing__(self, str key): + cdef str derived + cdef int anonymous_counter + cdef dict self_dict = self + + derived = key.split(" ", 1)[1] + + anonymous_counter = self_dict.get(derived, 1) + self_dict[derived] = anonymous_counter + 1 + value = f"{derived}_{anonymous_counter}" + self_dict[key] = value + return value + + +cdef class cache_anon_map(dict): + cdef int _index + + def __init__(self): + self._index = 0 + + def get_anon(self, obj): + cdef long long idself + cdef str id_ + cdef dict self_dict = self + + idself = id(obj) + if idself in self_dict: + return self_dict[idself], True + else: + id_ = self.__missing__(idself) + return id_, False + + def __missing__(self, key): + cdef str val + cdef dict self_dict = self + + self_dict[key] = val = str(self._index) + self._index += 1 + return val +