# SPDX-License-Identifier: MIT
# Independent observations of class values crossing Python source namespaces.
import models
import other
from models import Record


def create(factory, value):
    return factory(value)


class Child(Record):
    def read(self):
        return super().read() + ":child"


first = create(Record, 7)
second = create(other.Record, 9)
child = Child(5)
print(first.read(), second.read(), child.read())
print(Record is models.Record, Record is other.Record, callable(Record))
print(Record.__name__, Record.__module__, Child.__module__)
print(Record.read(first), first.read.__module__, second.read.__module__)
print(isinstance(child, Record), isinstance(second, Record), isinstance(Record, type))
print(issubclass(Child, models.Record), issubclass(Record, Child))
models.prefix = "updated"
print(first.read(), second.read(), child.read())
