Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from wireup import service, create_sync_container
- class B:
- def __init__(self, x: int):
- self.x = x
- def __repr__(self):
- return f"<B:{self.x}>"
- class CAAAAA:
- def __init__(self):
- pass
- class CAAAA:
- def __init__(self, x: CAAAAA):
- pass
- class CAAA:
- def __init__(self, x: CAAAA):
- pass
- class CAA:
- def __init__(self, x: CAAA):
- pass
- class CA:
- def __init__(self, x: CAA):
- pass
- class C:
- def __init__(self, x: CA):
- pass
- class A:
- def __init__(self, b: B, c: C):
- self.b = b
- self.c = c
- def __repr__(self):
- return f"<<A:{self.b}-{self.c}>>"
- class A1(A):
- pass
- A1 = service(A1, lifetime="scoped")
- CA = service(CA, lifetime="scoped")
- CAA = service(CAA, lifetime="scoped")
- CAAA = service(CAAA, lifetime="scoped")
- CAAAA = service(CAAAA, lifetime="scoped")
- CAAAAA = service(CAAAAA, lifetime="scoped")
- @service(lifetime="scoped")
- def make_b() -> B:
- return B(2)
- @service(lifetime="scoped")
- def make_c(x: CA) -> C:
- return C(x)
- NUMBER = 1000000
- def main():
- container = create_sync_container(services=[
- A1, CA, CAA, CAAA, CAAAA, CAAAAA,
- make_b, make_c,
- ])
- for x in range(NUMBER):
- with container.enter_scope() as scope:
- scope.get(A1)
- if __name__ == '__main__':
- main()
Add Comment
Please, Sign In to add comment