from _typeshed import Incomplete
from typing import Any

from . import fixtures

class User(fixtures.ComparableEntity): ...
class Order(fixtures.ComparableEntity): ...
class Dingaling(fixtures.ComparableEntity): ...
class EmailUser(User): ...
class Address(fixtures.ComparableEntity): ...
class Child1(fixtures.ComparableEntity): ...
class Child2(fixtures.ComparableEntity): ...
class Parent(fixtures.ComparableEntity): ...

class Screen:
    obj: Any
    parent: Any
    def __init__(self, obj, parent: Incomplete | None = ...) -> None: ...

class Foo:
    data: str
    stuff: Any
    moredata: Any
    def __init__(self, moredata, stuff: str = ...) -> None: ...
    __hash__ = object.__hash__
    def __eq__(self, other): ...

class Bar:
    x: Any
    y: Any
    def __init__(self, x, y) -> None: ...
    __hash__ = object.__hash__
    def __eq__(self, other): ...

class OldSchool:
    x: Any
    y: Any
    def __init__(self, x, y) -> None: ...
    def __eq__(self, other): ...

class OldSchoolWithoutCompare:
    x: Any
    y: Any
    def __init__(self, x, y) -> None: ...

class BarWithoutCompare:
    x: Any
    y: Any
    def __init__(self, x, y) -> None: ...

class NotComparable:
    data: Any
    def __init__(self, data) -> None: ...
    def __hash__(self) -> int: ...
    def __eq__(self, other): ...
    def __ne__(self, other): ...

class BrokenComparable:
    data: Any
    def __init__(self, data) -> None: ...
    def __hash__(self) -> int: ...
    def __eq__(self, other): ...
    def __ne__(self, other): ...
