@@ -52,41 +52,64 @@ class T_CONNECT:
5252 """A TRANSPORT CONNECTION primitive
5353
5454 .. versionadded:: 2.0
55+
56+ Attributes
57+ ----------
58+ request : pynetdicom.pdu_primitives.A_ASSOCIATE
59+ The A-ASSOCIATE (request) primitive that generated the TRANSPORT CONNECTION
60+ primitive.
5561 """
5662
57- def __init__ (self , address : Union [ Tuple [ str , int ], "A_ASSOCIATE" ] ) -> None :
63+ def __init__ (self , request : "A_ASSOCIATE" ) -> None :
5864 """Create a new TRANSPORT CONNECTION primitive.
5965
6066 Parameters
6167 ----------
62- address : Union[Tuple[str, int], pynetdicom.pdu_primitives.A_ASSOCIATE]
63- The ``(str: IP address, int: port)`` or A-ASSOCIATE (request) primitive to
64- use when making a connection with a peer.
68+ request : pynetdicom.pdu_primitives.A_ASSOCIATE
69+ The A-ASSOCIATE (request) primitive to use when making a connection with
70+ a peer.
6571 """
66- self ._request = None
67- self .result = ""
68-
69- if isinstance (address , tuple ):
70- self ._address = address
71- elif isinstance (address , A_ASSOCIATE ):
72- self ._address = cast (Tuple [str , int ], address .called_presentation_address )
73- self ._request = address
74- else :
72+ self ._result = ""
73+ self .request = request
74+
75+ if not isinstance (request , A_ASSOCIATE ):
7576 raise TypeError (
76- f"'address' must be 'Tuple[str, int]' or "
77- "'pynetdicom.pdu_primitives.A_ASSOCIATE', not "
78- f"'{ address .__class__ .__name__ } '"
77+ f"'request' must be 'pynetdicom.pdu_primitives.A_ASSOCIATE', not "
78+ f"'{ request .__class__ .__name__ } '"
7979 )
8080
8181 @property
8282 def address (self ) -> Tuple [str , int ]:
8383 """Return the peer's ``(str: IP address, int: port)``."""
84- return self ._address
84+ return cast ( Tuple [ str , int ], self .request . called_presentation_address )
8585
8686 @property
87- def request (self ) -> Optional [A_ASSOCIATE ]:
88- """Return the A-ASSOCIATE (request) primitive, or ``None`` if not available."""
89- return self ._request
87+ def result (self ) -> str :
88+ """Return the result of the connection attempt as :class:`str`.
89+
90+ Parameters
91+ ----------
92+ str
93+ The result of the connection attempt, ``"Evt2"`` if the connection
94+ succeeded, ``"Evt17"`` if it failed.
95+
96+ Returns
97+ -------
98+ str
99+ The result of the connection attempt, ``"Evt2"`` if the connection
100+ succeeded, ``"Evt17"`` if it failed.
101+ """
102+ if self ._result == "" :
103+ raise ValueError ("A connection attempt has not yet been made" )
104+
105+ return self ._result
106+
107+ @result .setter
108+ def result (self , value : str ) -> None :
109+ if value not in ("Evt2" , "Evt17" ):
110+ raise ValueError (f"Invalid connection result '{ value } '" )
111+
112+ self ._result = value
90113
91114
92115class AssociationSocket :
0 commit comments