mirror of https://github.com/python/cpython
gh-106446: Fix failed doctest in stdtypes (#106447)
--------- Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
This commit is contained in:
parent
21d98be422
commit
89867d2491
|
@ -3953,7 +3953,7 @@ copying.
|
||||||
>>> m = memoryview(bytearray(b'abc'))
|
>>> m = memoryview(bytearray(b'abc'))
|
||||||
>>> mm = m.toreadonly()
|
>>> mm = m.toreadonly()
|
||||||
>>> mm.tolist()
|
>>> mm.tolist()
|
||||||
[89, 98, 99]
|
[97, 98, 99]
|
||||||
>>> mm[0] = 42
|
>>> mm[0] = 42
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<stdin>", line 1, in <module>
|
File "<stdin>", line 1, in <module>
|
||||||
|
@ -4009,6 +4009,7 @@ copying.
|
||||||
:mod:`struct` syntax. One of the formats must be a byte format
|
:mod:`struct` syntax. One of the formats must be a byte format
|
||||||
('B', 'b' or 'c'). The byte length of the result must be the same
|
('B', 'b' or 'c'). The byte length of the result must be the same
|
||||||
as the original length.
|
as the original length.
|
||||||
|
Note that all byte lengths may depend on the operating system.
|
||||||
|
|
||||||
Cast 1D/long to 1D/unsigned bytes::
|
Cast 1D/long to 1D/unsigned bytes::
|
||||||
|
|
||||||
|
@ -4039,8 +4040,8 @@ copying.
|
||||||
>>> x = memoryview(b)
|
>>> x = memoryview(b)
|
||||||
>>> x[0] = b'a'
|
>>> x[0] = b'a'
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<stdin>", line 1, in <module>
|
...
|
||||||
ValueError: memoryview: invalid value for format "B"
|
TypeError: memoryview: invalid type for format 'B'
|
||||||
>>> y = x.cast('c')
|
>>> y = x.cast('c')
|
||||||
>>> y[0] = b'a'
|
>>> y[0] = b'a'
|
||||||
>>> b
|
>>> b
|
||||||
|
@ -4789,10 +4790,10 @@ An example of dictionary view usage::
|
||||||
>>> # set operations
|
>>> # set operations
|
||||||
>>> keys & {'eggs', 'bacon', 'salad'}
|
>>> keys & {'eggs', 'bacon', 'salad'}
|
||||||
{'bacon'}
|
{'bacon'}
|
||||||
>>> keys ^ {'sausage', 'juice'}
|
>>> keys ^ {'sausage', 'juice'} == {'juice', 'sausage', 'bacon', 'spam'}
|
||||||
{'juice', 'sausage', 'bacon', 'spam'}
|
True
|
||||||
>>> keys | ['juice', 'juice', 'juice']
|
>>> keys | ['juice', 'juice', 'juice'] == {'bacon', 'spam', 'juice'}
|
||||||
{'juice', 'sausage', 'bacon', 'spam', 'eggs'}
|
True
|
||||||
|
|
||||||
>>> # get back a read-only proxy for the original dictionary
|
>>> # get back a read-only proxy for the original dictionary
|
||||||
>>> values.mapping
|
>>> values.mapping
|
||||||
|
@ -4999,8 +5000,8 @@ exception to disallow mistakes like ``dict[str][str]``::
|
||||||
|
|
||||||
>>> dict[str][str]
|
>>> dict[str][str]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<stdin>", line 1, in <module>
|
...
|
||||||
TypeError: There are no type variables left in dict[str]
|
TypeError: dict[str] is not a generic class
|
||||||
|
|
||||||
However, such expressions are valid when :ref:`type variables <generics>` are
|
However, such expressions are valid when :ref:`type variables <generics>` are
|
||||||
used. The index must have as many elements as there are type variable items
|
used. The index must have as many elements as there are type variable items
|
||||||
|
@ -5206,13 +5207,15 @@ enables cleaner type hinting syntax compared to :data:`typing.Union`.
|
||||||
>>> isinstance("", int | str)
|
>>> isinstance("", int | str)
|
||||||
True
|
True
|
||||||
|
|
||||||
However, union objects containing :ref:`parameterized generics
|
However, :ref:`parameterized generics <types-genericalias>` in
|
||||||
<types-genericalias>` cannot be used::
|
union objects cannot be checked::
|
||||||
|
|
||||||
>>> isinstance(1, int | list[int])
|
>>> isinstance(1, int | list[int]) # short-circuit evaluation
|
||||||
|
True
|
||||||
|
>>> isinstance([1], int | list[int])
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<stdin>", line 1, in <module>
|
...
|
||||||
TypeError: isinstance() argument 2 cannot contain a parameterized generic
|
TypeError: isinstance() argument 2 cannot be a parameterized generic
|
||||||
|
|
||||||
The user-exposed type for the union object can be accessed from
|
The user-exposed type for the union object can be accessed from
|
||||||
:data:`types.UnionType` and used for :func:`isinstance` checks. An object cannot be
|
:data:`types.UnionType` and used for :func:`isinstance` checks. An object cannot be
|
||||||
|
@ -5515,7 +5518,7 @@ types, where they are relevant. Some of these are not reported by the
|
||||||
definition order. Example::
|
definition order. Example::
|
||||||
|
|
||||||
>>> int.__subclasses__()
|
>>> int.__subclasses__()
|
||||||
[<class 'bool'>]
|
[<class 'bool'>, <enum 'IntEnum'>, <flag 'IntFlag'>, <class 're._constants._NamedIntConstant'>]
|
||||||
|
|
||||||
|
|
||||||
.. _int_max_str_digits:
|
.. _int_max_str_digits:
|
||||||
|
@ -5551,7 +5554,7 @@ When an operation would exceed the limit, a :exc:`ValueError` is raised:
|
||||||
>>> _ = int('2' * 5432)
|
>>> _ = int('2' * 5432)
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
ValueError: Exceeds the limit (4300 digits) for integer string conversion: value has 5432 digits; use sys.set_int_max_str_digits() to increase the limit.
|
ValueError: Exceeds the limit (4300 digits) for integer string conversion: value has 5432 digits; use sys.set_int_max_str_digits() to increase the limit
|
||||||
>>> i = int('2' * 4300)
|
>>> i = int('2' * 4300)
|
||||||
>>> len(str(i))
|
>>> len(str(i))
|
||||||
4300
|
4300
|
||||||
|
@ -5559,7 +5562,7 @@ When an operation would exceed the limit, a :exc:`ValueError` is raised:
|
||||||
>>> len(str(i_squared))
|
>>> len(str(i_squared))
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
ValueError: Exceeds the limit (4300 digits) for integer string conversion: value has 8599 digits; use sys.set_int_max_str_digits() to increase the limit.
|
ValueError: Exceeds the limit (4300 digits) for integer string conversion; use sys.set_int_max_str_digits() to increase the limit
|
||||||
>>> len(hex(i_squared))
|
>>> len(hex(i_squared))
|
||||||
7144
|
7144
|
||||||
>>> assert int(hex(i_squared), base=16) == i*i # Hexadecimal is unlimited.
|
>>> assert int(hex(i_squared), base=16) == i*i # Hexadecimal is unlimited.
|
||||||
|
|
Loading…
Reference in New Issue