Code Duplication    Length = 11-11 lines in 2 locations

lib/exabgp/configuration/flow/parser.py 2 locations

@@ 73-83 (lines=11) @@
70
71
def destination(tokeniser):
72
    data = tokeniser()
73
    if data.count('.') == 3 and data.count(':') == 0:
74
        ip, netmask = data.split('/')
75
        raw = b''.join(bytes([int(_)]) for _ in ip.split('.'))
76
        yield Flow4Destination(raw, int(netmask))
77
    elif data.count('/') == 1:
78
        ip, netmask = data.split('/')
79
        offset = 0
80
        yield Flow6Destination(IP.pton(ip), int(netmask), int(offset))
81
    else:
82
        ip, netmask, offset = data.split('/')
83
        yield Flow6Destination(IP.pton(ip), int(netmask), int(offset))
84
85
86
# Expressions
@@ 58-68 (lines=11) @@
55
56
def source(tokeniser):
57
    data = tokeniser()
58
    if data.count('.') == 3 and data.count(':') == 0:
59
        ip, netmask = data.split('/')
60
        raw = b''.join(bytes([int(_)]) for _ in ip.split('.'))
61
        yield Flow4Source(raw, int(netmask))
62
    elif data.count('/') == 1:
63
        ip, netmask = data.split('/')
64
        offset = 0
65
        yield Flow6Source(IP.pton(ip), int(netmask), int(offset))
66
    else:
67
        ip, netmask, offset = data.split('/')
68
        yield Flow6Source(IP.pton(ip), int(netmask), int(offset))
69
70
71
def destination(tokeniser):