From 6d7ba58f880be618ade07f8ea080fe8c4bf8a896 Mon Sep 17 00:00:00 2001 From: cyfraeviolae Date: Wed, 3 Apr 2024 03:10:44 -0400 Subject: venv --- .../site-packages/sqlalchemy/testing/pickleable.py | 155 +++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 venv/lib/python3.11/site-packages/sqlalchemy/testing/pickleable.py (limited to 'venv/lib/python3.11/site-packages/sqlalchemy/testing/pickleable.py') diff --git a/venv/lib/python3.11/site-packages/sqlalchemy/testing/pickleable.py b/venv/lib/python3.11/site-packages/sqlalchemy/testing/pickleable.py new file mode 100644 index 0000000..761891a --- /dev/null +++ b/venv/lib/python3.11/site-packages/sqlalchemy/testing/pickleable.py @@ -0,0 +1,155 @@ +# testing/pickleable.py +# 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 +# mypy: ignore-errors + + +"""Classes used in pickling tests, need to be at the module level for +unpickling. +""" + +from __future__ import annotations + +from .entities import ComparableEntity +from ..schema import Column +from ..types import String + + +class User(ComparableEntity): + pass + + +class Order(ComparableEntity): + pass + + +class Dingaling(ComparableEntity): + pass + + +class EmailUser(User): + pass + + +class Address(ComparableEntity): + pass + + +# TODO: these are kind of arbitrary.... +class Child1(ComparableEntity): + pass + + +class Child2(ComparableEntity): + pass + + +class Parent(ComparableEntity): + pass + + +class Screen: + def __init__(self, obj, parent=None): + self.obj = obj + self.parent = parent + + +class Mixin: + email_address = Column(String) + + +class AddressWMixin(Mixin, ComparableEntity): + pass + + +class Foo: + def __init__(self, moredata, stuff="im stuff"): + self.data = "im data" + self.stuff = stuff + self.moredata = moredata + + __hash__ = object.__hash__ + + def __eq__(self, other): + return ( + other.data == self.data + and other.stuff == self.stuff + and other.moredata == self.moredata + ) + + +class Bar: + def __init__(self, x, y): + self.x = x + self.y = y + + __hash__ = object.__hash__ + + def __eq__(self, other): + return ( + other.__class__ is self.__class__ + and other.x == self.x + and other.y == self.y + ) + + def __str__(self): + return "Bar(%d, %d)" % (self.x, self.y) + + +class OldSchool: + def __init__(self, x, y): + self.x = x + self.y = y + + def __eq__(self, other): + return ( + other.__class__ is self.__class__ + and other.x == self.x + and other.y == self.y + ) + + +class OldSchoolWithoutCompare: + def __init__(self, x, y): + self.x = x + self.y = y + + +class BarWithoutCompare: + def __init__(self, x, y): + self.x = x + self.y = y + + def __str__(self): + return "Bar(%d, %d)" % (self.x, self.y) + + +class NotComparable: + def __init__(self, data): + self.data = data + + def __hash__(self): + return id(self) + + def __eq__(self, other): + return NotImplemented + + def __ne__(self, other): + return NotImplemented + + +class BrokenComparable: + def __init__(self, data): + self.data = data + + def __hash__(self): + return id(self) + + def __eq__(self, other): + raise NotImplementedError + + def __ne__(self, other): + raise NotImplementedError -- cgit v1.2.3