Автовайринг методов #5

Open
opened 2025-07-19 22:00:13 +03:00 by nikto_b · 0 comments
Owner

Пометка автовайринга методов/конструкторов, которая позволит добавить в репозиторий базовых преобразований методы объекта если те не оперируют базовыми типами
Концепт:

@mark_autowired
class Foo:
    def __init__(self, depA: A, depB: B):
        self.a = depA
        self.b = depB

    def into_B(self) -> B:
        return self.b

При появлении Foo внутри сигнатур базовых преобразований, конструктор (A,B)->Foo, а также метод (Foo)->B будут добавлены в репозиторий базовых преобразований, если преобразований с такой сигнатурой ещё не было, можно включить/выключить данное поведение, но это может привести к некоммутативности графов преобразований, поскольку будет существовать несколько идентичных путей преобразования, например (A,B)->Foo с одинаковой сигнатурой, которые будут для системы равносильны и будет неочевидно какой из них необходимо использовать

Пометка автовайринга методов/конструкторов, которая позволит добавить в репозиторий базовых преобразований методы объекта если те не оперируют базовыми типами Концепт: ```python @mark_autowired class Foo: def __init__(self, depA: A, depB: B): self.a = depA self.b = depB def into_B(self) -> B: return self.b ``` При появлении `Foo` внутри сигнатур базовых преобразований, конструктор (A,B)->Foo, а также метод (Foo)->B будут добавлены в репозиторий базовых преобразований, если преобразований с такой сигнатурой ещё не было, можно включить/выключить данное поведение, но это может привести к некоммутативности графов преобразований, поскольку будет существовать несколько идентичных путей преобразования, например (A,B)->Foo с одинаковой сигнатурой, которые будут для системы равносильны и будет неочевидно какой из них необходимо использовать
nikto_b added the
DevEx
enhancement
labels 2025-07-19 22:00:13 +03:00
nikto_b added this to the Buggystack project 2025-07-19 22:00:13 +03:00
nikto_b moved this to To Do in Buggystack on 2025-07-19 22:48:06 +03:00
Sign in to join this conversation.
No description provided.