Guest User

Untitled

a guest
Jun 12th, 2025
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.41 KB | None | 0 0
  1. from wireup import service, create_sync_container
  2.  
  3. class B:
  4.     def __init__(self, x: int):
  5.         self.x = x
  6.  
  7.     def __repr__(self):
  8.         return f"<B:{self.x}>"
  9.  
  10.  
  11. class CAAAAA:
  12.     def __init__(self):
  13.         pass
  14.  
  15.  
  16. class CAAAA:
  17.     def __init__(self, x: CAAAAA):
  18.         pass
  19.  
  20.  
  21. class CAAA:
  22.     def __init__(self, x: CAAAA):
  23.         pass
  24.  
  25.  
  26. class CAA:
  27.     def __init__(self, x: CAAA):
  28.         pass
  29.  
  30.  
  31. class CA:
  32.     def __init__(self, x: CAA):
  33.         pass
  34.  
  35.  
  36. class C:
  37.     def __init__(self, x: CA):
  38.         pass
  39.  
  40.  
  41. class A:
  42.     def __init__(self, b: B, c: C):
  43.         self.b = b
  44.         self.c = c
  45.  
  46.     def __repr__(self):
  47.         return f"<<A:{self.b}-{self.c}>>"
  48.  
  49.  
  50. class A1(A):
  51.     pass
  52.  
  53.  
  54. A1 = service(A1, lifetime="scoped")
  55. CA = service(CA, lifetime="scoped")
  56. CAA = service(CAA, lifetime="scoped")
  57. CAAA = service(CAAA, lifetime="scoped")
  58. CAAAA = service(CAAAA, lifetime="scoped")
  59. CAAAAA = service(CAAAAA, lifetime="scoped")
  60.  
  61.  
  62. @service(lifetime="scoped")
  63. def make_b() -> B:
  64.     return B(2)
  65.  
  66.  
  67. @service(lifetime="scoped")
  68. def make_c(x: CA) -> C:
  69.     return C(x)
  70.  
  71.  
  72. NUMBER = 1000000
  73. def main():
  74.     container = create_sync_container(services=[
  75.         A1, CA, CAA, CAAA, CAAAA, CAAAAA,
  76.         make_b, make_c,
  77.     ])
  78.     for x in range(NUMBER):
  79.         with container.enter_scope() as scope:
  80.             scope.get(A1)
  81.  
  82.  
  83. if __name__ == '__main__':
  84.     main()
  85.  
Add Comment
Please, Sign In to add comment