@@ -1368,47 +1368,37 @@ These can be used as types in annotations. They all support subscription using
13681368      T1 = Annotated[int, ValueRange(-10, 5)]
13691369      T2 = Annotated[T1, ValueRange(-20, 3)]
13701370
1371-    Details of the syntax:
1371+    The first argument to ``Annotated `` must be a valid type. Multiple metadata
1372+    elements can be supplied as ``Annotated `` supports variadic arguments. The
1373+    order of the metadata elements is preserved and matters for equality checks::
13721374
1373-    * The first argument to ``Annotated `` must be a valid type
1374- 
1375-    * Multiple metadata elements can be supplied (``Annotated `` supports variadic
1376-      arguments)::
1377- 
1378-         @dataclass 
1379-         class ctype: 
1380-             kind: str 
1381- 
1382-         Annotated[int, ValueRange(3, 10), ctype("char")] 
1383- 
1384-      It is up to the tool consuming the annotations to decide whether the
1385-      client is allowed to add multiple metadata elements to one annotation and how to
1386-      merge those annotations.
1375+       @dataclass 
1376+       class ctype: 
1377+            kind: str 
13871378
1388-    * `` Annotated `` must be subscripted with at least two arguments ( 
1389-      `` Annotated[int]  `` is not valid) 
1379+       a1 = Annotated[int, ValueRange(3, 10), ctype("char")]  
1380+       a2 =  Annotated[int, ctype("char"), ValueRange(3, 10)]  
13901381
1391-    * The order of the metadata elements is preserved and matters for equality
1392-      checks::
1382+       assert a1 != a2  # Order matters 
13931383
1394-         assert Annotated[int, ValueRange(3, 10), ctype("char")] != Annotated[  
1395-             int, ctype("char"), ValueRange(3, 10)  
1396-         ]  
1384+    It is up to the tool consuming the annotations to decide whether the 
1385+    client is allowed to add multiple metadata elements to one annotation and how to 
1386+    merge those annotations. 
13971387
1398-    *  Nested ``Annotated `` types are flattened. The order of the metadata elements
1399-       starts with the innermost annotation::
1388+    Nested ``Annotated `` types are flattened. The order of the metadata elements
1389+    starts with the innermost annotation::
14001390
1401-          assert Annotated[Annotated[int, ValueRange(3, 10)], ctype("char")] == Annotated[ 
1402-              int, ValueRange(3, 10), ctype("char") 
1403-          ] 
1391+       assert Annotated[Annotated[int, ValueRange(3, 10)], ctype("char")] == Annotated[ 
1392+           int, ValueRange(3, 10), ctype("char") 
1393+       ] 
14041394
1405-    *  Duplicated metadata elements are not removed::
1395+    Duplicated metadata elements are not removed::
14061396
1407-          assert Annotated[int, ValueRange(3, 10)] != Annotated[ 
1408-              int, ValueRange(3, 10), ValueRange(3, 10) 
1409-          ] 
1397+       assert Annotated[int, ValueRange(3, 10)] != Annotated[ 
1398+           int, ValueRange(3, 10), ValueRange(3, 10) 
1399+       ] 
14101400
1411-    *  ``Annotated `` can be used with nested and generic aliases:
1401+    ``Annotated `` can be used with nested and generic aliases:
14121402
14131403     .. testcode ::
14141404
@@ -1422,19 +1412,15 @@ These can be used as types in annotations. They all support subscription using
14221412        # ``Annotated[list[tuple[int, int]], MaxLen(10)] ``:
14231413        type V = Vec[int]
14241414
1425-    * ``Annotated `` cannot be used with an unpacked :class: `TypeVarTuple `::
1426- 
1427-         type Variadic[*Ts] = Annotated[*Ts, Ann1]  # NOT valid 
1428- 
1429-      This would be equivalent to:: 
1415+    ``Annotated `` cannot be used with an unpacked :class: `TypeVarTuple `::
14301416
1431-         Annotated[T1, T2, T3, ..., Ann1] 
1417+         type Variadic[*Ts] =  Annotated[*Ts, Ann1] = Annotated[ T1, T2, T3, ..., Ann1]  # NOT valid  
14321418
1433-       where ``T1``, ``T2``, etc.  are :class:`TypeVars <TypeVar>`. This would be  
1434-      invalid:  only one type should be passed to Annotated. 
1419+    where ``T1 ``, ``T2 ``, ...  are :class: `TypeVars <TypeVar> `. This is invalid as 
1420+    only one type should be passed to Annotated.
14351421
1436-    *  By default, :func: `get_type_hints ` strips the metadata from annotations.
1437-       Pass ``include_extras=True `` to have the metadata preserved:
1422+    By default, :func: `get_type_hints ` strips the metadata from annotations.
1423+    Pass ``include_extras=True `` to have the metadata preserved:
14381424
14391425     .. doctest ::
14401426
@@ -1446,8 +1432,8 @@ These can be used as types in annotations. They all support subscription using
14461432        >>> get_type_hints(func, include_extras = True ) 
14471433        {'x': typing.Annotated[int, 'metadata'], 'return': <class 'NoneType'>} 
14481434
1449-    *  At runtime, the metadata associated with an ``Annotated `` type can be
1450-       retrieved via the :attr: `!__metadata__ ` attribute:
1435+    At runtime, the metadata associated with an ``Annotated `` type can be
1436+    retrieved via the :attr: `!__metadata__ ` attribute:
14511437
14521438     .. doctest ::
14531439
@@ -1458,8 +1444,8 @@ These can be used as types in annotations. They all support subscription using
14581444        >>> X.__metadata__ 
14591445        ('very', 'important', 'metadata') 
14601446
1461-    * At runtime, if  you want to retrieve the original
1462-      type wrapped by `` Annotated ``, use the  :attr: `!__origin__ ` attribute:
1447+    If  you want to retrieve the original type wrapped by `` Annotated ``, use the 
1448+    :attr: `!__origin__ ` attribute:
14631449
14641450     .. doctest ::
14651451
@@ -1468,7 +1454,7 @@ These can be used as types in annotations. They all support subscription using
14681454        >>> Password.__origin__ 
14691455        <class 'str'> 
14701456
1471-       Note that using :func: `get_origin ` will return ``Annotated `` itself:
1457+    Note that using :func: `get_origin ` will return ``Annotated `` itself:
14721458
14731459     .. doctest ::
14741460
0 commit comments