On Fri, Mar 20, 2020 at 3:28 PM Victor Stinner <vstinner@python.org> wrote:
> The builtin ``str`` class will gain two new methods with roughly the
> following behavior::
>     def cutprefix(self: str, pre: str, /) -> str:
>         if self.startswith(pre):
>             return self[len(pre):]
>         return self[:]

I tend to be mistrustful of code that tries to guess the best thing to do, when something expected isn't found.

How about:

def cutprefix(self: str, pre: str, raise_on_no_match: bool=False, /) -> str:
    if self.startswith(pre):
        return self[len(pre):]
    if raise_on_no_match:
        raise ValueError('prefix not found')
    return self[:]