U  üeýã@sddd„ZdS)NcCsPt|ƒ}t||ƒ}z t|ƒ}Wntk r2YnXd ||¡}|pJt|ƒ‚|S)a(If *iterable* has only one item, return it. If it has zero items, return *default*. If it has more than one item, raise the exception given by *too_long*, which is ``ValueError`` by default. >>> only([], default='missing') 'missing' >>> only([1]) 1 >>> only([1, 2]) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ... ValueError: Expected exactly one item in iterable, but got 1, 2, and perhaps more.' >>> only([1, 2], too_long=TypeError) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ... TypeError Note that :func:`only` attempts to advance *iterable* twice to ensure there is only one item. See :func:`spy` or :func:`peekable` to check iterable contents less destructively. zLExpected exactly one item in iterable, but got {!r}, {!r}, and perhaps more.)ÚiterÚnextÚ StopIterationÚformatÚ ValueError)ÚiterableÚdefaultZtoo_longÚitZ first_valueZ second_valueÚmsg©r úL/opt/hc_python/lib/python3.8/site-packages/importlib_resources/_itertools.pyÚonlys  ÿÿ r )NN)r r r r r Ú