@@ -53,7 +53,7 @@ from typing import ( # noqa: Y027
53
53
TypeVar ,
54
54
overload ,
55
55
)
56
- from typing_extensions import Literal , SupportsIndex , TypeAlias , TypeGuard , final
56
+ from typing_extensions import Literal , LiteralString , SupportsIndex , TypeAlias , TypeGuard , final
57
57
58
58
if sys .version_info >= (3 , 9 ):
59
59
from types import GenericAlias
@@ -399,21 +399,39 @@ class str(Sequence[str]):
399
399
def __new__ (cls : type [Self ], object : object = ...) -> Self : ...
400
400
@overload
401
401
def __new__ (cls : type [Self ], object : ReadableBuffer , encoding : str = ..., errors : str = ...) -> Self : ...
402
- def capitalize (self ) -> str : ...
403
- def casefold (self ) -> str : ...
404
- def center (self , __width : SupportsIndex , __fillchar : str = ...) -> str : ...
402
+ @overload
403
+ def capitalize (self : LiteralString ) -> LiteralString : ...
404
+ @overload
405
+ def capitalize (self ) -> str : ... # type: ignore[misc]
406
+ @overload
407
+ def casefold (self : LiteralString ) -> LiteralString : ...
408
+ @overload
409
+ def casefold (self ) -> str : ... # type: ignore[misc]
410
+ @overload
411
+ def center (self : LiteralString , __width : SupportsIndex , __fillchar : LiteralString = ...) -> LiteralString : ...
412
+ @overload
413
+ def center (self , __width : SupportsIndex , __fillchar : str = ...) -> str : ... # type: ignore[misc]
405
414
def count (self , x : str , __start : SupportsIndex | None = ..., __end : SupportsIndex | None = ...) -> int : ...
406
415
def encode (self , encoding : str = ..., errors : str = ...) -> bytes : ...
407
416
def endswith (
408
417
self , __suffix : str | tuple [str , ...], __start : SupportsIndex | None = ..., __end : SupportsIndex | None = ...
409
418
) -> bool : ...
410
419
if sys .version_info >= (3 , 8 ):
411
- def expandtabs (self , tabsize : SupportsIndex = ...) -> str : ...
420
+ @overload
421
+ def expandtabs (self : LiteralString , tabsize : SupportsIndex = ...) -> LiteralString : ...
422
+ @overload
423
+ def expandtabs (self , tabsize : SupportsIndex = ...) -> str : ... # type: ignore[misc]
412
424
else :
413
- def expandtabs (self , tabsize : int = ...) -> str : ...
425
+ @overload
426
+ def expandtabs (self : LiteralString , tabsize : int = ...) -> LiteralString : ...
427
+ @overload
428
+ def expandtabs (self , tabsize : int = ...) -> str : ... # type: ignore[misc]
414
429
415
430
def find (self , __sub : str , __start : SupportsIndex | None = ..., __end : SupportsIndex | None = ...) -> int : ...
416
- def format (self , * args : object , ** kwargs : object ) -> str : ...
431
+ @overload
432
+ def format (self : LiteralString , * args : LiteralString , ** kwargs : LiteralString ) -> LiteralString : ...
433
+ @overload
434
+ def format (self , * args : object , ** kwargs : object ) -> str : ... # type: ignore[misc]
417
435
def format_map (self , map : _FormatMapMapping ) -> str : ...
418
436
def index (self , __sub : str , __start : SupportsIndex | None = ..., __end : SupportsIndex | None = ...) -> int : ...
419
437
def isalnum (self ) -> bool : ...
@@ -430,55 +448,129 @@ class str(Sequence[str]):
430
448
def isspace (self ) -> bool : ...
431
449
def istitle (self ) -> bool : ...
432
450
def isupper (self ) -> bool : ...
433
- def join (self , __iterable : Iterable [str ]) -> str : ...
434
- def ljust (self , __width : SupportsIndex , __fillchar : str = ...) -> str : ...
435
- def lower (self ) -> str : ...
436
- def lstrip (self , __chars : str | None = ...) -> str : ...
437
- def partition (self , __sep : str ) -> tuple [str , str , str ]: ...
438
- def replace (self , __old : str , __new : str , __count : SupportsIndex = ...) -> str : ...
451
+ @overload
452
+ def join (self : LiteralString , __iterable : Iterable [LiteralString ]) -> LiteralString : ...
453
+ @overload
454
+ def join (self , __iterable : Iterable [str ]) -> str : ... # type: ignore[misc]
455
+ @overload
456
+ def ljust (self : LiteralString , __width : SupportsIndex , __fillchar : LiteralString = ...) -> LiteralString : ...
457
+ @overload
458
+ def ljust (self , __width : SupportsIndex , __fillchar : str = ...) -> str : ... # type: ignore[misc]
459
+ @overload
460
+ def lower (self : LiteralString ) -> LiteralString : ...
461
+ @overload
462
+ def lower (self ) -> str : ... # type: ignore[misc]
463
+ @overload
464
+ def lstrip (self : LiteralString , __chars : LiteralString | None = ...) -> LiteralString : ...
465
+ @overload
466
+ def lstrip (self , __chars : str | None = ...) -> str : ... # type: ignore[misc]
467
+ @overload
468
+ def partition (self : LiteralString , __sep : LiteralString ) -> tuple [LiteralString , LiteralString , LiteralString ]: ...
469
+ @overload
470
+ def partition (self , __sep : str ) -> tuple [str , str , str ]: ... # type: ignore[misc]
471
+ @overload
472
+ def replace (
473
+ self : LiteralString , __old : LiteralString , __new : LiteralString , __count : SupportsIndex = ...
474
+ ) -> LiteralString : ...
475
+ @overload
476
+ def replace (self , __old : str , __new : str , __count : SupportsIndex = ...) -> str : ... # type: ignore[misc]
439
477
if sys .version_info >= (3 , 9 ):
440
- def removeprefix (self , __prefix : str ) -> str : ...
441
- def removesuffix (self , __suffix : str ) -> str : ...
478
+ @overload
479
+ def removeprefix (self : LiteralString , __prefix : LiteralString ) -> LiteralString : ...
480
+ @overload
481
+ def removeprefix (self , __prefix : str ) -> str : ... # type: ignore[misc]
482
+ @overload
483
+ def removesuffix (self : LiteralString , __suffix : LiteralString ) -> LiteralString : ...
484
+ @overload
485
+ def removesuffix (self , __suffix : str ) -> str : ... # type: ignore[misc]
442
486
443
487
def rfind (self , __sub : str , __start : SupportsIndex | None = ..., __end : SupportsIndex | None = ...) -> int : ...
444
488
def rindex (self , __sub : str , __start : SupportsIndex | None = ..., __end : SupportsIndex | None = ...) -> int : ...
445
- def rjust (self , __width : SupportsIndex , __fillchar : str = ...) -> str : ...
446
- def rpartition (self , __sep : str ) -> tuple [str , str , str ]: ...
447
- def rsplit (self , sep : str | None = ..., maxsplit : SupportsIndex = ...) -> list [str ]: ...
448
- def rstrip (self , __chars : str | None = ...) -> str : ...
449
- def split (self , sep : str | None = ..., maxsplit : SupportsIndex = ...) -> list [str ]: ...
450
- def splitlines (self , keepends : bool = ...) -> list [str ]: ...
489
+ @overload
490
+ def rjust (self : LiteralString , __width : SupportsIndex , __fillchar : LiteralString = ...) -> LiteralString : ...
491
+ @overload
492
+ def rjust (self , __width : SupportsIndex , __fillchar : str = ...) -> str : ... # type: ignore[misc]
493
+ @overload
494
+ def rpartition (self : LiteralString , __sep : LiteralString ) -> tuple [LiteralString , LiteralString , LiteralString ]: ...
495
+ @overload
496
+ def rpartition (self , __sep : str ) -> tuple [str , str , str ]: ... # type: ignore[misc]
497
+ @overload
498
+ def rsplit (self : LiteralString , sep : LiteralString | None = ..., maxsplit : SupportsIndex = ...) -> list [LiteralString ]: ...
499
+ @overload
500
+ def rsplit (self , sep : str | None = ..., maxsplit : SupportsIndex = ...) -> list [str ]: ... # type: ignore[misc]
501
+ @overload
502
+ def rstrip (self : LiteralString , __chars : LiteralString | None = ...) -> LiteralString : ...
503
+ @overload
504
+ def rstrip (self , __chars : str | None = ...) -> str : ... # type: ignore[misc]
505
+ @overload
506
+ def split (self : LiteralString , sep : LiteralString | None = ..., maxsplit : SupportsIndex = ...) -> list [LiteralString ]: ...
507
+ @overload
508
+ def split (self , sep : str | None = ..., maxsplit : SupportsIndex = ...) -> list [str ]: ... # type: ignore[misc]
509
+ @overload
510
+ def splitlines (self : LiteralString , keepends : bool = ...) -> list [LiteralString ]: ...
511
+ @overload
512
+ def splitlines (self , keepends : bool = ...) -> list [str ]: ... # type: ignore[misc]
451
513
def startswith (
452
514
self , __prefix : str | tuple [str , ...], __start : SupportsIndex | None = ..., __end : SupportsIndex | None = ...
453
515
) -> bool : ...
454
- def strip (self , __chars : str | None = ...) -> str : ...
455
- def swapcase (self ) -> str : ...
456
- def title (self ) -> str : ...
516
+ @overload
517
+ def strip (self : LiteralString , __chars : LiteralString | None = ...) -> LiteralString : ...
518
+ @overload
519
+ def strip (self , __chars : str | None = ...) -> str : ... # type: ignore[misc]
520
+ @overload
521
+ def swapcase (self : LiteralString ) -> LiteralString : ...
522
+ @overload
523
+ def swapcase (self ) -> str : ... # type: ignore[misc]
524
+ @overload
525
+ def title (self : LiteralString ) -> LiteralString : ...
526
+ @overload
527
+ def title (self ) -> str : ... # type: ignore[misc]
457
528
def translate (self , __table : Mapping [int , int | str | None ] | Sequence [int | str | None ]) -> str : ...
458
- def upper (self ) -> str : ...
459
- def zfill (self , __width : SupportsIndex ) -> str : ...
529
+ @overload
530
+ def upper (self : LiteralString ) -> LiteralString : ...
531
+ @overload
532
+ def upper (self ) -> str : ... # type: ignore[misc]
533
+ @overload
534
+ def zfill (self : LiteralString , __width : SupportsIndex ) -> LiteralString : ...
535
+ @overload
536
+ def zfill (self , __width : SupportsIndex ) -> str : ... # type: ignore[misc]
460
537
@staticmethod
461
538
@overload
462
539
def maketrans (__x : dict [int , _T ] | dict [str , _T ] | dict [str | int , _T ]) -> dict [int , _T ]: ...
463
540
@staticmethod
464
541
@overload
465
542
def maketrans (__x : str , __y : str , __z : str | None = ...) -> dict [int , int | None ]: ...
466
- def __add__ (self , __s : str ) -> str : ...
543
+ @overload
544
+ def __add__ (self : LiteralString , __s : LiteralString ) -> LiteralString : ...
545
+ @overload
546
+ def __add__ (self , __s : str ) -> str : ... # type: ignore[misc]
467
547
# Incompatible with Sequence.__contains__
468
548
def __contains__ (self , __o : str ) -> bool : ... # type: ignore[override]
469
549
def __eq__ (self , __x : object ) -> bool : ...
470
550
def __ge__ (self , __x : str ) -> bool : ...
471
551
def __getitem__ (self , __i : SupportsIndex | slice ) -> str : ...
472
552
def __gt__ (self , __x : str ) -> bool : ...
473
553
def __hash__ (self ) -> int : ...
474
- def __iter__ (self ) -> Iterator [str ]: ...
554
+ @overload
555
+ def __iter__ (self : LiteralString ) -> Iterator [LiteralString ]: ...
556
+ @overload
557
+ def __iter__ (self ) -> Iterator [str ]: ... # type: ignore[misc]
475
558
def __le__ (self , __x : str ) -> bool : ...
476
559
def __len__ (self ) -> int : ...
477
560
def __lt__ (self , __x : str ) -> bool : ...
478
- def __mod__ (self , __x : Any ) -> str : ...
479
- def __mul__ (self , __n : SupportsIndex ) -> str : ...
561
+ @overload
562
+ def __mod__ (self : LiteralString , __x : LiteralString | tuple [LiteralString , ...]) -> LiteralString : ...
563
+ @overload
564
+ def __mod__ (self , __x : Any ) -> str : ... # type: ignore[misc]
565
+ @overload
566
+ def __mul__ (self : LiteralString , __n : SupportsIndex ) -> LiteralString : ...
567
+ @overload
568
+ def __mul__ (self , __n : SupportsIndex ) -> str : ... # type: ignore[misc]
480
569
def __ne__ (self , __x : object ) -> bool : ...
481
- def __rmul__ (self , __n : SupportsIndex ) -> str : ...
570
+ @overload
571
+ def __rmul__ (self : LiteralString , __n : SupportsIndex ) -> LiteralString : ...
572
+ @overload
573
+ def __rmul__ (self , __n : SupportsIndex ) -> str : ... # type: ignore[misc]
482
574
def __getnewargs__ (self ) -> tuple [str ]: ...
483
575
484
576
class bytes (ByteString ):
0 commit comments