src/eric7/EricNetwork/EricIPv4InputWidget.py

branch
eric7
changeset 10024
3bbf6dbec0bd
parent 9830
6c91fdb0e55b
child 10439
21c28b0f9e41
equal deleted inserted replaced
10023:a842dbf8c0df 10024:3bbf6dbec0bd
115 Public method to get the IPv4 address as a string. 115 Public method to get the IPv4 address as a string.
116 116
117 @return IPv4 address 117 @return IPv4 address
118 @rtype str 118 @rtype str
119 """ 119 """
120 return "{0}.{1}.{2}.{3}".format( 120 ip1 = self.ip1Edit.text()
121 self.ip1Edit.text(), 121 ip2 = self.ip2Edit.text()
122 self.ip2Edit.text(), 122 ip3 = self.ip3Edit.text()
123 self.ip3Edit.text(), 123 ip4 = self.ip4Edit.text()
124 self.ip4Edit.text(), 124
125 ) 125 if not all(bool(ip) for ip in (ip1, ip2, ip3, ip4)):
126 return ""
127
128 return "{0}.{1}.{2}.{3}".format(ip1, ip2, ip3, ip4)
126 129
127 def setText(self, address): 130 def setText(self, address):
128 """ 131 """
129 Public method to set the IPv4 address given a string. 132 Public method to set the IPv4 address given a string.
133
134 Note: If an invalid address is given, the input is cleared.
130 135
131 @param address IPv4 address 136 @param address IPv4 address
132 @type str 137 @type str
133 @exception ValueError raised to indicate an invalid IPv4 address 138 """
134 """ 139 if address and address != "...": # '...' is empty as well
135 if address:
136 try: 140 try:
137 ipaddress.IPv4Address(address) 141 ipaddress.IPv4Address(address)
138 except ipaddress.AddressValueError as err: 142 except ipaddress.AddressValueError:
139 raise ValueError(str(err)) 143 self.clear()
144 return
140 145
141 addressParts = address.split(".") 146 addressParts = address.split(".")
142 self.ip1Edit.setText(addressParts[0]) 147 self.ip1Edit.setText(addressParts[0])
143 self.ip2Edit.setText(addressParts[1]) 148 self.ip2Edit.setText(addressParts[1])
144 self.ip3Edit.setText(addressParts[2]) 149 self.ip3Edit.setText(addressParts[2])
163 """ 168 """
164 Public method to set the IPv4 address given an ipaddress.IPv4Address object. 169 Public method to set the IPv4 address given an ipaddress.IPv4Address object.
165 170
166 @param address IPv4 address 171 @param address IPv4 address
167 @type ipaddress.IPv4Address 172 @type ipaddress.IPv4Address
168 """ 173 @exception ValueError raised to indicate an invalid IPv4 address
169 if address: 174 """
175 if address and address != "...": # '...' is empty as well
176 try:
177 ipaddress.IPv4Address(address)
178 except ipaddress.AddressValueError as err:
179 raise ValueError(str(err))
180
170 self.setText(str(address)) 181 self.setText(str(address))
171 else: 182 else:
172 self.clear() 183 self.clear()
173 184
174 @pyqtSlot() 185 @pyqtSlot()

eric ide

mercurial