Code Duplication    Length = 13-13 lines in 2 locations

lib/exabgp/bgp/message/update/nlri/qualifier/rd.py 1 location

@@ 86-98 (lines=13) @@
83
	@classmethod
84
	def fromElements (cls, prefix, suffix):
85
		try:
86
			if '.' in prefix:
87
				data = [character(0),character(1)]
88
				data.extend([character(int(_)) for _ in prefix.split('.')])
89
				data.extend([character(suffix >> 8),character(suffix & 0xFF)])
90
				distinguisher = concat_bytes_i(data)
91
			else:
92
				number = int(prefix)
93
				if number < pow(2,16) and suffix < pow(2,32):
94
					distinguisher = character(0) + character(0) + pack('!H',number) + pack('!L',suffix)
95
				elif number < pow(2,32) and suffix < pow(2,16):
96
					distinguisher = character(0) + character(2) + pack('!L',number) + pack('!H',suffix)
97
				else:
98
					raise ValueError('invalid route-distinguisher %s' % number)
99
100
			return cls(distinguisher)
101
		except ValueError:

lib/exabgp/configuration/static/mpls.py 1 location

@@ 49-61 (lines=13) @@
46
		prefix = data[:separator]
47
		suffix = int(data[separator+1:])
48
49
	if '.' in prefix:
50
		data = [character(0),character(1)]
51
		data.extend([character(int(_)) for _ in prefix.split('.')])
52
		data.extend([character(suffix >> 8),character(suffix & 0xFF)])
53
		rtd = concat_bytes_i(data)
54
	else:
55
		number = int(prefix)
56
		if number < pow(2,16) and suffix < pow(2,32):
57
			rtd = character(0) + character(0) + pack('!H',number) + pack('!L',suffix)
58
		elif number < pow(2,32) and suffix < pow(2,16):
59
			rtd = character(0) + character(2) + pack('!L',number) + pack('!H',suffix)
60
		else:
61
			raise ValueError('invalid route-distinguisher %s' % data)
62
63
	return RouteDistinguisher(rtd)
64