diff options
| author | cyfraeviolae <cyfraeviolae> | 2024-04-03 03:17:55 -0400 | 
|---|---|---|
| committer | cyfraeviolae <cyfraeviolae> | 2024-04-03 03:17:55 -0400 | 
| commit | 12cf076118570eebbff08c6b3090e0d4798447a1 (patch) | |
| tree | 3ba25e17e3c3a5e82316558ba3864b955919ff72 /venv/lib/python3.11/site-packages/sqlalchemy/testing/entities.py | |
| parent | c45662ff3923b34614ddcc8feb9195541166dcc5 (diff) | |
no venv
Diffstat (limited to 'venv/lib/python3.11/site-packages/sqlalchemy/testing/entities.py')
| -rw-r--r-- | venv/lib/python3.11/site-packages/sqlalchemy/testing/entities.py | 117 | 
1 files changed, 0 insertions, 117 deletions
diff --git a/venv/lib/python3.11/site-packages/sqlalchemy/testing/entities.py b/venv/lib/python3.11/site-packages/sqlalchemy/testing/entities.py deleted file mode 100644 index 8f0f36b..0000000 --- a/venv/lib/python3.11/site-packages/sqlalchemy/testing/entities.py +++ /dev/null @@ -1,117 +0,0 @@ -# testing/entities.py -# Copyright (C) 2005-2024 the SQLAlchemy authors and contributors -# <see AUTHORS file> -# -# This module is part of SQLAlchemy and is released under -# the MIT License: https://www.opensource.org/licenses/mit-license.php -# mypy: ignore-errors - - -from __future__ import annotations - -import sqlalchemy as sa -from .. import exc as sa_exc -from ..orm.writeonly import WriteOnlyCollection - -_repr_stack = set() - - -class BasicEntity: -    def __init__(self, **kw): -        for key, value in kw.items(): -            setattr(self, key, value) - -    def __repr__(self): -        if id(self) in _repr_stack: -            return object.__repr__(self) -        _repr_stack.add(id(self)) -        try: -            return "%s(%s)" % ( -                (self.__class__.__name__), -                ", ".join( -                    [ -                        "%s=%r" % (key, getattr(self, key)) -                        for key in sorted(self.__dict__.keys()) -                        if not key.startswith("_") -                    ] -                ), -            ) -        finally: -            _repr_stack.remove(id(self)) - - -_recursion_stack = set() - - -class ComparableMixin: -    def __ne__(self, other): -        return not self.__eq__(other) - -    def __eq__(self, other): -        """'Deep, sparse compare. - -        Deeply compare two entities, following the non-None attributes of the -        non-persisted object, if possible. - -        """ -        if other is self: -            return True -        elif not self.__class__ == other.__class__: -            return False - -        if id(self) in _recursion_stack: -            return True -        _recursion_stack.add(id(self)) - -        try: -            # pick the entity that's not SA persisted as the source -            try: -                self_key = sa.orm.attributes.instance_state(self).key -            except sa.orm.exc.NO_STATE: -                self_key = None - -            if other is None: -                a = self -                b = other -            elif self_key is not None: -                a = other -                b = self -            else: -                a = self -                b = other - -            for attr in list(a.__dict__): -                if attr.startswith("_"): -                    continue - -                value = getattr(a, attr) - -                if isinstance(value, WriteOnlyCollection): -                    continue - -                try: -                    # handle lazy loader errors -                    battr = getattr(b, attr) -                except (AttributeError, sa_exc.UnboundExecutionError): -                    return False - -                if hasattr(value, "__iter__") and not isinstance(value, str): -                    if hasattr(value, "__getitem__") and not hasattr( -                        value, "keys" -                    ): -                        if list(value) != list(battr): -                            return False -                    else: -                        if set(value) != set(battr): -                            return False -                else: -                    if value is not None and value != battr: -                        return False -            return True -        finally: -            _recursion_stack.remove(id(self)) - - -class ComparableEntity(ComparableMixin, BasicEntity): -    def __hash__(self): -        return hash(self.__class__)  | 
