def longPart(path, T, remove_a_little_extra=True):
    if remove_a_little_extra:
        if (T < (1 - T)):
            extra = T
            if isNear(path.point((T + extra)), path.point(T)):
                extra = findAppropriateTstep(path, T, True)
        else:
            extra = (1 - T)
            if isNear(path.point((T + extra)), path.point(T)):
                extra = ((- 1) * findAppropriateTstep(path, T, False))
    else:
        extra = 0
    if (T < (1 - T)):
        return path.cropped((T + extra), 1)
    else:
        return path.cropped(0, (T - extra))
def longPart(path, T, remove_a_little_extra=True):
    if remove_a_little_extra:
        if (T < (1 - T)):
            extra = T
            if isNear(path.point((T + extra)), path.point(T)):
                extra = findAppropriateTstep(path, T, True)
        else:
            extra = (1 - T)
            if isNear(path.point((T + extra)), path.point(T)):
                extra = ((- 1) * findAppropriateTstep(path, T, False))
    else:
        extra = 0
    if (T < (1 - T)):
        return path.cropped((T + extra), 1)
    else:
        return path.cropped(0, (T - extra))