Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
lib_py_b2b / lib_b2b / tracking.py
Size: Mime:
import random

mock_tracking_numbers = [
    '11111111111',
    '449044304137821',
    '149331877648230',
    '020207021381215',
    '11111111111',
    '403934084723025',
    '920241085725456',
    '568838414941',
    '11111111111',
    '039813852990618',
    '231300687629630',
    '797806677146',
    '11111111111',
    '377101283611590',
    '852426136339213',
    '797615467620',
    '11111111111',
    '957794015041323',
    '076288115212522',
    '581190049992',
    '11111111111',
    '122816215025810',
    '843119172384577',
    '070358180009382',
    '11111111111'
    '11111111111'
    '11111111111'
    '11111111111'
]


def get_random_tracking_number():
    return random.choice(mock_tracking_numbers)


def decode_glovia_pro_num(pro):
    # logger.debug(f"Decoding {pro}")
    if not pro:
        return []
    pro_segs = pro.split('/')
    tn = []
    if len(pro_segs) > 1:
        master = pro_segs[0]
        tn.append(master)
        for i in range(1, len(pro_segs)):
            _pro = pro_segs[i]
            if len(_pro) < 16:
                _pro = master[0:len(master) - len(_pro)] + _pro
                tn.append(_pro)
    else:
        tn.append(pro)
    # logger.debug(f"Decoded into {tn}")
    return tn


def encode_glovia_pro_num(tracking_numbers: [str]):
    if len(tracking_numbers) < 1:
        return ""
    elif len(tracking_numbers) == 1:
        return tracking_numbers[0]
    else:
        from os.path import commonprefix
        prefix = commonprefix(tracking_numbers)
        pro_num = prefix
        for t in tracking_numbers:
            pro_num += "/" + t[len(prefix):]
        return pro_num