basedpyright 1.18.3 → 1.18.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/pyright-langserver.js +1 -1
- package/dist/pyright-langserver.js.map +1 -1
- package/dist/pyright.js +1 -1
- package/dist/pyright.js.map +1 -1
- package/dist/typeshed-fallback/commit.txt +1 -1
- package/dist/typeshed-fallback/stdlib/VERSIONS +2 -0
- package/dist/typeshed-fallback/stdlib/_ast.pyi +140 -1667
- package/dist/typeshed-fallback/stdlib/_csv.pyi +14 -3
- package/dist/typeshed-fallback/stdlib/_curses.pyi +857 -65
- package/dist/typeshed-fallback/stdlib/_decimal.pyi +29 -820
- package/dist/typeshed-fallback/stdlib/_socket.pyi +4 -12
- package/dist/typeshed-fallback/stdlib/_sqlite3.pyi +387 -0
- package/dist/typeshed-fallback/stdlib/_ssl.pyi +406 -0
- package/dist/typeshed-fallback/stdlib/_weakref.pyi +2 -41
- package/dist/typeshed-fallback/stdlib/ast.pyi +1843 -172
- package/dist/typeshed-fallback/stdlib/builtins.pyi +5 -0
- package/dist/typeshed-fallback/stdlib/cProfile.pyi +3 -3
- package/dist/typeshed-fallback/stdlib/calendar.pyi +3 -3
- package/dist/typeshed-fallback/stdlib/concurrent/futures/process.pyi +3 -2
- package/dist/typeshed-fallback/stdlib/contextlib.pyi +6 -8
- package/dist/typeshed-fallback/stdlib/csv.pyi +4 -3
- package/dist/typeshed-fallback/stdlib/curses/__init__.pyi +7 -2
- package/dist/typeshed-fallback/stdlib/curses/panel.pyi +4 -4
- package/dist/typeshed-fallback/stdlib/curses/textpad.pyi +3 -3
- package/dist/typeshed-fallback/stdlib/decimal.pyi +840 -2
- package/dist/typeshed-fallback/stdlib/email/_policybase.pyi +27 -18
- package/dist/typeshed-fallback/stdlib/email/feedparser.pyi +5 -5
- package/dist/typeshed-fallback/stdlib/email/generator.pyi +46 -9
- package/dist/typeshed-fallback/stdlib/email/message.pyi +8 -6
- package/dist/typeshed-fallback/stdlib/email/parser.pyi +6 -4
- package/dist/typeshed-fallback/stdlib/email/policy.pyi +28 -10
- package/dist/typeshed-fallback/stdlib/http/client.pyi +3 -2
- package/dist/typeshed-fallback/stdlib/io.pyi +6 -22
- package/dist/typeshed-fallback/stdlib/multiprocessing/connection.pyi +27 -19
- package/dist/typeshed-fallback/stdlib/multiprocessing/context.pyi +5 -2
- package/dist/typeshed-fallback/stdlib/multiprocessing/managers.pyi +4 -2
- package/dist/typeshed-fallback/stdlib/multiprocessing/reduction.pyi +2 -2
- package/dist/typeshed-fallback/stdlib/profile.pyi +3 -3
- package/dist/typeshed-fallback/stdlib/pyexpat/__init__.pyi +1 -5
- package/dist/typeshed-fallback/stdlib/re.pyi +10 -1
- package/dist/typeshed-fallback/stdlib/socket.pyi +12 -4
- package/dist/typeshed-fallback/stdlib/sqlite3/__init__.pyi +739 -1
- package/dist/typeshed-fallback/stdlib/sqlite3/dbapi2.pyi +220 -884
- package/dist/typeshed-fallback/stdlib/sre_constants.pyi +1 -8
- package/dist/typeshed-fallback/stdlib/ssl.pyi +40 -128
- package/dist/typeshed-fallback/stdlib/tarfile.pyi +111 -6
- package/dist/typeshed-fallback/stdlib/tkinter/__init__.pyi +127 -21
- package/dist/typeshed-fallback/stdlib/tokenize.pyi +1 -1
- package/dist/typeshed-fallback/stdlib/typing.pyi +7 -7
- package/dist/typeshed-fallback/stdlib/typing_extensions.pyi +1 -1
- package/dist/typeshed-fallback/stdlib/unittest/mock.pyi +2 -2
- package/dist/typeshed-fallback/stdlib/weakref.pyi +49 -14
- package/dist/typeshed-fallback/stdlib/xml/parsers/expat/__init__.pyi +6 -0
- package/dist/typeshed-fallback/stdlib/xmlrpc/client.pyi +1 -1
- package/dist/typeshed-fallback/stdlib/xmlrpc/server.pyi +3 -2
- package/dist/typeshed-fallback/stdlib/zoneinfo/__init__.pyi +41 -44
- package/dist/typeshed-fallback/stdlib/zoneinfo/_common.pyi +13 -0
- package/dist/typeshed-fallback/stdlib/zoneinfo/_tzpath.pyi +13 -0
- package/dist/typeshed-fallback/stubs/Flask-SocketIO/METADATA.toml +1 -1
- package/dist/typeshed-fallback/stubs/braintree/METADATA.toml +1 -1
- package/dist/typeshed-fallback/stubs/braintree/braintree/error_codes.pyi +1 -0
- package/dist/typeshed-fallback/stubs/docutils/docutils/__init__.pyi +3 -1
- package/dist/typeshed-fallback/stubs/docutils/docutils/frontend.pyi +1 -2
- package/dist/typeshed-fallback/stubs/docutils/docutils/parsers/rst/directives/admonitions.pyi +15 -2
- package/dist/typeshed-fallback/stubs/docutils/docutils/readers/doctree.pyi +1 -1
- package/dist/typeshed-fallback/stubs/docutils/docutils/writers/__init__.pyi +21 -2
- package/dist/typeshed-fallback/stubs/fpdf2/fpdf/fpdf.pyi +4 -4
- package/dist/typeshed-fallback/stubs/greenlet/METADATA.toml +1 -1
- package/dist/typeshed-fallback/stubs/hdbcli/METADATA.toml +1 -1
- package/dist/typeshed-fallback/stubs/icalendar/METADATA.toml +5 -2
- package/dist/typeshed-fallback/stubs/icalendar/icalendar/__init__.pyi +49 -5
- package/dist/typeshed-fallback/stubs/icalendar/icalendar/cal.pyi +32 -6
- package/dist/typeshed-fallback/stubs/icalendar/icalendar/caselessdict.pyi +2 -0
- package/dist/typeshed-fallback/stubs/icalendar/icalendar/parser.pyi +25 -1
- package/dist/typeshed-fallback/stubs/icalendar/icalendar/parser_tools.pyi +7 -3
- package/dist/typeshed-fallback/stubs/icalendar/icalendar/prop.pyi +112 -72
- package/dist/typeshed-fallback/stubs/icalendar/icalendar/timezone/__init__.pyi +8 -0
- package/dist/typeshed-fallback/stubs/icalendar/icalendar/timezone/provider.pyi +29 -0
- package/dist/typeshed-fallback/stubs/icalendar/icalendar/timezone/pytz.pyi +22 -0
- package/dist/typeshed-fallback/stubs/icalendar/icalendar/timezone/tzp.pyi +30 -0
- package/dist/typeshed-fallback/stubs/icalendar/icalendar/timezone/zoneinfo.pyi +33 -0
- package/dist/typeshed-fallback/stubs/icalendar/icalendar/tools.pyi +2 -0
- package/dist/typeshed-fallback/stubs/icalendar/icalendar/version.pyi +8 -0
- package/dist/typeshed-fallback/stubs/jwcrypto/METADATA.toml +3 -0
- package/dist/typeshed-fallback/stubs/jwcrypto/jwcrypto/common.pyi +48 -0
- package/dist/typeshed-fallback/stubs/jwcrypto/jwcrypto/jwa.pyi +35 -0
- package/dist/typeshed-fallback/stubs/jwcrypto/jwcrypto/jwe.pyi +51 -0
- package/dist/typeshed-fallback/stubs/jwcrypto/jwcrypto/jwk.pyi +115 -0
- package/dist/typeshed-fallback/stubs/jwcrypto/jwcrypto/jws.pyi +52 -0
- package/dist/typeshed-fallback/stubs/jwcrypto/jwcrypto/jwt.pyi +78 -0
- package/dist/typeshed-fallback/stubs/m3u8/METADATA.toml +2 -0
- package/dist/typeshed-fallback/stubs/m3u8/m3u8/__init__.pyi +74 -0
- package/dist/typeshed-fallback/stubs/m3u8/m3u8/httpclient.pyi +19 -0
- package/dist/typeshed-fallback/stubs/m3u8/m3u8/mixins.pyi +25 -0
- package/dist/typeshed-fallback/stubs/m3u8/m3u8/model.pyi +406 -0
- package/dist/typeshed-fallback/stubs/m3u8/m3u8/parser.pyi +14 -0
- package/dist/typeshed-fallback/stubs/m3u8/m3u8/protocol.pyi +41 -0
- package/dist/typeshed-fallback/stubs/m3u8/m3u8/version_matching.pyi +5 -0
- package/dist/typeshed-fallback/stubs/m3u8/m3u8/version_matching_rules.pyi +24 -0
- package/dist/typeshed-fallback/stubs/paramiko/paramiko/transport.pyi +2 -1
- package/dist/typeshed-fallback/stubs/protobuf/METADATA.toml +2 -2
- package/dist/typeshed-fallback/stubs/protobuf/google/protobuf/descriptor_pb2.pyi +4 -3
- package/dist/typeshed-fallback/stubs/protobuf/google/protobuf/internal/well_known_types.pyi +0 -1
- package/dist/typeshed-fallback/stubs/pytz/pytz/__init__.pyi +4 -4
- package/dist/typeshed-fallback/stubs/pytz/pytz/tzinfo.pyi +1 -1
- package/dist/typeshed-fallback/stubs/qrcode/METADATA.toml +3 -2
- package/dist/typeshed-fallback/stubs/redis/redis/client.pyi +18 -0
- package/dist/typeshed-fallback/stubs/reportlab/METADATA.toml +1 -1
- package/dist/typeshed-fallback/stubs/reportlab/reportlab/graphics/renderPDF.pyi +2 -2
- package/dist/typeshed-fallback/stubs/seaborn/METADATA.toml +9 -1
- package/dist/typeshed-fallback/stubs/vobject/vobject/__init__.pyi +4 -0
- package/dist/typeshed-fallback/stubs/vobject/vobject/base.pyi +11 -2
- package/dist/typeshed-fallback/stubs/vobject/vobject/behavior.pyi +1 -1
- package/dist/typeshed-fallback/stubs/vobject/vobject/change_tz.pyi +4 -0
- package/dist/typeshed-fallback/stubs/vobject/vobject/ics_diff.pyi +0 -3
- package/dist/typeshed-fallback/stubs/vobject/vobject/vcard.pyi +1 -1
- package/dist/typeshed-fallback/stubs/waitress/waitress/__init__.pyi +2 -2
- package/package.json +1 -1
- package/dist/typeshed-fallback/stubs/Pillow/METADATA.toml +0 -8
- package/dist/typeshed-fallback/stubs/Pillow/PIL/BdfFontFile.pyi +0 -11
- package/dist/typeshed-fallback/stubs/Pillow/PIL/BlpImagePlugin.pyi +0 -39
- package/dist/typeshed-fallback/stubs/Pillow/PIL/BmpImagePlugin.pyi +0 -25
- package/dist/typeshed-fallback/stubs/Pillow/PIL/BufrStubImagePlugin.pyi +0 -9
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ContainerIO.pyi +0 -14
- package/dist/typeshed-fallback/stubs/Pillow/PIL/CurImagePlugin.pyi +0 -6
- package/dist/typeshed-fallback/stubs/Pillow/PIL/DcxImagePlugin.pyi +0 -13
- package/dist/typeshed-fallback/stubs/Pillow/PIL/DdsImagePlugin.pyi +0 -314
- package/dist/typeshed-fallback/stubs/Pillow/PIL/EpsImagePlugin.pyi +0 -34
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ExifTags.pyi +0 -347
- package/dist/typeshed-fallback/stubs/Pillow/PIL/FitsImagePlugin.pyi +0 -7
- package/dist/typeshed-fallback/stubs/Pillow/PIL/FliImagePlugin.pyi +0 -9
- package/dist/typeshed-fallback/stubs/Pillow/PIL/FontFile.pyi +0 -16
- package/dist/typeshed-fallback/stubs/Pillow/PIL/FpxImagePlugin.pyi +0 -23
- package/dist/typeshed-fallback/stubs/Pillow/PIL/FtexImagePlugin.pyi +0 -15
- package/dist/typeshed-fallback/stubs/Pillow/PIL/GbrImagePlugin.pyi +0 -11
- package/dist/typeshed-fallback/stubs/Pillow/PIL/GdImageFile.pyi +0 -9
- package/dist/typeshed-fallback/stubs/Pillow/PIL/GifImagePlugin.pyi +0 -31
- package/dist/typeshed-fallback/stubs/Pillow/PIL/GimpGradientFile.pyi +0 -19
- package/dist/typeshed-fallback/stubs/Pillow/PIL/GimpPaletteFile.pyi +0 -7
- package/dist/typeshed-fallback/stubs/Pillow/PIL/GribStubImagePlugin.pyi +0 -9
- package/dist/typeshed-fallback/stubs/Pillow/PIL/Hdf5StubImagePlugin.pyi +0 -9
- package/dist/typeshed-fallback/stubs/Pillow/PIL/IcnsImagePlugin.pyi +0 -36
- package/dist/typeshed-fallback/stubs/Pillow/PIL/IcoImagePlugin.pyi +0 -26
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImImagePlugin.pyi +0 -34
- package/dist/typeshed-fallback/stubs/Pillow/PIL/Image.pyi +0 -342
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageChops.pyi +0 -23
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageCms.pyi +0 -84
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageColor.pyi +0 -10
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageDraw.pyi +0 -155
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageDraw2.pyi +0 -37
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageEnhance.pyi +0 -25
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageFile.pyi +0 -89
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageFilter.pyi +0 -136
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageFont.pyi +0 -114
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageGrab.pyi +0 -36
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageMath.pyi +0 -49
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageMode.pyi +0 -10
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageMorph.pyi +0 -26
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageOps.pyi +0 -53
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImagePalette.pyi +0 -26
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImagePath.pyi +0 -3
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageQt.pyi +0 -26
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageSequence.pyi +0 -14
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageShow.pyi +0 -58
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageStat.pyi +0 -14
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageTk.pyi +0 -51
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageTransform.pyi +0 -21
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImageWin.pyi +0 -38
- package/dist/typeshed-fallback/stubs/Pillow/PIL/ImtImagePlugin.pyi +0 -10
- package/dist/typeshed-fallback/stubs/Pillow/PIL/IptcImagePlugin.pyi +0 -23
- package/dist/typeshed-fallback/stubs/Pillow/PIL/Jpeg2KImagePlugin.pyi +0 -23
- package/dist/typeshed-fallback/stubs/Pillow/PIL/JpegImagePlugin.pyi +0 -30
- package/dist/typeshed-fallback/stubs/Pillow/PIL/JpegPresets.pyi +0 -3
- package/dist/typeshed-fallback/stubs/Pillow/PIL/McIdasImagePlugin.pyi +0 -7
- package/dist/typeshed-fallback/stubs/Pillow/PIL/MicImagePlugin.pyi +0 -18
- package/dist/typeshed-fallback/stubs/Pillow/PIL/MpegImagePlugin.pyi +0 -18
- package/dist/typeshed-fallback/stubs/Pillow/PIL/MpoImagePlugin.pyi +0 -15
- package/dist/typeshed-fallback/stubs/Pillow/PIL/MspImagePlugin.pyi +0 -10
- package/dist/typeshed-fallback/stubs/Pillow/PIL/PSDraw.pyi +0 -19
- package/dist/typeshed-fallback/stubs/Pillow/PIL/PaletteFile.pyi +0 -7
- package/dist/typeshed-fallback/stubs/Pillow/PIL/PalmImagePlugin.pyi +0 -5
- package/dist/typeshed-fallback/stubs/Pillow/PIL/PcdImagePlugin.pyi +0 -10
- package/dist/typeshed-fallback/stubs/Pillow/PIL/PcfFontFile.pyi +0 -25
- package/dist/typeshed-fallback/stubs/Pillow/PIL/PcxImagePlugin.pyi +0 -10
- package/dist/typeshed-fallback/stubs/Pillow/PIL/PdfParser.pyi +0 -167
- package/dist/typeshed-fallback/stubs/Pillow/PIL/PixarImagePlugin.pyi +0 -7
- package/dist/typeshed-fallback/stubs/Pillow/PIL/PngImagePlugin.pyi +0 -115
- package/dist/typeshed-fallback/stubs/Pillow/PIL/PpmImagePlugin.pyi +0 -17
- package/dist/typeshed-fallback/stubs/Pillow/PIL/PsdImagePlugin.pyi +0 -17
- package/dist/typeshed-fallback/stubs/Pillow/PIL/PyAccess.pyi +0 -69
- package/dist/typeshed-fallback/stubs/Pillow/PIL/QoiImagePlugin.pyi +0 -11
- package/dist/typeshed-fallback/stubs/Pillow/PIL/SgiImagePlugin.pyi +0 -13
- package/dist/typeshed-fallback/stubs/Pillow/PIL/SpiderImagePlugin.pyi +0 -28
- package/dist/typeshed-fallback/stubs/Pillow/PIL/SunImagePlugin.pyi +0 -7
- package/dist/typeshed-fallback/stubs/Pillow/PIL/TarIO.pyi +0 -12
- package/dist/typeshed-fallback/stubs/Pillow/PIL/TgaImagePlugin.pyi +0 -12
- package/dist/typeshed-fallback/stubs/Pillow/PIL/TiffImagePlugin.pyi +0 -295
- package/dist/typeshed-fallback/stubs/Pillow/PIL/TiffTags.pyi +0 -46
- package/dist/typeshed-fallback/stubs/Pillow/PIL/WalImageFile.pyi +0 -14
- package/dist/typeshed-fallback/stubs/Pillow/PIL/WebPImagePlugin.pyi +0 -18
- package/dist/typeshed-fallback/stubs/Pillow/PIL/WmfImagePlugin.pyi +0 -19
- package/dist/typeshed-fallback/stubs/Pillow/PIL/XVThumbImagePlugin.pyi +0 -9
- package/dist/typeshed-fallback/stubs/Pillow/PIL/XbmImagePlugin.pyi +0 -10
- package/dist/typeshed-fallback/stubs/Pillow/PIL/XpmImagePlugin.pyi +0 -11
- package/dist/typeshed-fallback/stubs/Pillow/PIL/__init__.pyi +0 -3
- package/dist/typeshed-fallback/stubs/Pillow/PIL/_binary.pyi +0 -13
- package/dist/typeshed-fallback/stubs/Pillow/PIL/_imaging.pyi +0 -29
- package/dist/typeshed-fallback/stubs/Pillow/PIL/_tkinter_finder.pyi +0 -2
- package/dist/typeshed-fallback/stubs/Pillow/PIL/_version.pyi +0 -1
- package/dist/typeshed-fallback/stubs/Pillow/PIL/features.pyi +0 -23
- package/dist/typeshed-fallback/stubs/icalendar/icalendar/timezone_cache.pyi +0 -0
- /package/dist/typeshed-fallback/stubs/icalendar/icalendar/{windows_to_olson.pyi → timezone/windows_to_olson.pyi} +0 -0
- /package/dist/typeshed-fallback/stubs/{Pillow/PIL/PdfImagePlugin.pyi → jwcrypto/jwcrypto/__init__.pyi} +0 -0
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
import datetime as dt
|
|
2
|
+
from _typeshed import Incomplete, StrOrBytesPath
|
|
3
|
+
from collections.abc import Callable, Mapping
|
|
4
|
+
from typing import ClassVar, Literal, Protocol, TypeVar, type_check_only
|
|
5
|
+
from typing_extensions import TypeAlias
|
|
6
|
+
|
|
7
|
+
from m3u8.mixins import BasePathMixin, GroupedBasePathMixin
|
|
8
|
+
from m3u8.protocol import ext_x_map, ext_x_session_key
|
|
9
|
+
|
|
10
|
+
_T = TypeVar("_T")
|
|
11
|
+
_CustomTagsParser: TypeAlias = Callable[[str, int, dict[str, Incomplete], dict[str, Incomplete]], object]
|
|
12
|
+
|
|
13
|
+
@type_check_only
|
|
14
|
+
class _PlaylistProtocol(Protocol):
|
|
15
|
+
base_uri: str | None
|
|
16
|
+
uri: str | None
|
|
17
|
+
@property
|
|
18
|
+
def absolute_uri(self) -> str: ...
|
|
19
|
+
@property
|
|
20
|
+
def base_path(self) -> str: ...
|
|
21
|
+
@base_path.setter
|
|
22
|
+
def base_path(self, newbase_path: str) -> None: ...
|
|
23
|
+
def get_path_from_uri(self) -> str: ...
|
|
24
|
+
|
|
25
|
+
_PlaylistAnyT = TypeVar("_PlaylistAnyT", bound=_PlaylistProtocol)
|
|
26
|
+
|
|
27
|
+
class MalformedPlaylistError(Exception): ...
|
|
28
|
+
|
|
29
|
+
class M3U8:
|
|
30
|
+
simple_attributes: list[tuple[str, str]]
|
|
31
|
+
data: dict[str, Incomplete]
|
|
32
|
+
keys: list[Key]
|
|
33
|
+
segment_map: list[InitializationSection]
|
|
34
|
+
segments: SegmentList
|
|
35
|
+
files: list[str | None]
|
|
36
|
+
media: MediaList
|
|
37
|
+
playlists: PlaylistList[Playlist]
|
|
38
|
+
iframe_playlists: PlaylistList[IFramePlaylist]
|
|
39
|
+
image_playlists: PlaylistList[ImagePlaylist]
|
|
40
|
+
start: Start
|
|
41
|
+
server_control: ServerControl
|
|
42
|
+
part_inf: PartInformation
|
|
43
|
+
skip: Skip
|
|
44
|
+
rendition_reports: RenditionReportList
|
|
45
|
+
session_data: SessionDataList
|
|
46
|
+
session_keys: list[SessionKey | None]
|
|
47
|
+
preload_hint: PreloadHint
|
|
48
|
+
content_steering: ContentSteering
|
|
49
|
+
|
|
50
|
+
# inserted via setattr()
|
|
51
|
+
|
|
52
|
+
is_variant: bool | None
|
|
53
|
+
is_endlist: bool | None
|
|
54
|
+
is_i_frames_only: bool | None
|
|
55
|
+
target_duration: float | None
|
|
56
|
+
media_sequence: int | None
|
|
57
|
+
program_date_time: str | None
|
|
58
|
+
is_independent_segments: bool | None
|
|
59
|
+
version: str | None
|
|
60
|
+
allow_cache: str | None
|
|
61
|
+
playlist_type: str | None
|
|
62
|
+
discontinuity_sequence: Incomplete | None # undocmented
|
|
63
|
+
is_images_only: bool | None
|
|
64
|
+
|
|
65
|
+
def __init__(
|
|
66
|
+
self,
|
|
67
|
+
content: str | None = None,
|
|
68
|
+
base_path: str | None = None,
|
|
69
|
+
base_uri: str | None = None,
|
|
70
|
+
strict: bool = False,
|
|
71
|
+
custom_tags_parser: _CustomTagsParser | None = None,
|
|
72
|
+
) -> None: ...
|
|
73
|
+
@property
|
|
74
|
+
def base_uri(self) -> str | None: ...
|
|
75
|
+
@base_uri.setter
|
|
76
|
+
def base_uri(self, new_base_uri: str) -> None: ...
|
|
77
|
+
@property
|
|
78
|
+
def base_path(self) -> str | None: ...
|
|
79
|
+
@base_path.setter
|
|
80
|
+
def base_path(self, newbase_path: str) -> None: ...
|
|
81
|
+
def add_playlist(self, playlist: Playlist) -> None: ...
|
|
82
|
+
def add_iframe_playlist(self, iframe_playlist: IFramePlaylist) -> None: ...
|
|
83
|
+
def add_image_playlist(self, image_playlist: ImagePlaylist) -> None: ...
|
|
84
|
+
def add_media(self, media: Media) -> None: ...
|
|
85
|
+
def add_segment(self, segment: Segment) -> None: ...
|
|
86
|
+
def add_rendition_report(self, report: RenditionReport) -> None: ...
|
|
87
|
+
def dumps(self, timespec: str = "milliseconds", infspec: str = "auto") -> str: ...
|
|
88
|
+
def dump(self, filename: StrOrBytesPath) -> None: ...
|
|
89
|
+
def __unicode__(self) -> str: ...
|
|
90
|
+
|
|
91
|
+
class Segment(BasePathMixin):
|
|
92
|
+
media_sequence: int | None
|
|
93
|
+
uri: str | None
|
|
94
|
+
duration: float | None
|
|
95
|
+
title: str
|
|
96
|
+
bitrate: int | None
|
|
97
|
+
byterange: str | None
|
|
98
|
+
program_date_time: dt.datetime | None
|
|
99
|
+
current_program_date_time: dt.datetime | None
|
|
100
|
+
discontinuity: bool
|
|
101
|
+
cue_out_start: bool
|
|
102
|
+
cue_out_explicitly_duration: bool
|
|
103
|
+
cue_out: bool
|
|
104
|
+
cue_in: bool
|
|
105
|
+
scte35: str | None
|
|
106
|
+
oatcls_scte35: str | None
|
|
107
|
+
scte35_duration: float | None
|
|
108
|
+
scte35_elapsedtime: Incomplete | None
|
|
109
|
+
asset_metadata: dict[str, Incomplete] | None
|
|
110
|
+
key: Key | None
|
|
111
|
+
parts: PartialSegmentList
|
|
112
|
+
init_section: InitializationSection | None
|
|
113
|
+
dateranges: DateRangeList
|
|
114
|
+
gap_tag: Incomplete | None
|
|
115
|
+
custom_parser_values: dict[str, Incomplete]
|
|
116
|
+
def __init__(
|
|
117
|
+
self,
|
|
118
|
+
uri: str | None = None,
|
|
119
|
+
base_uri: str | None = None,
|
|
120
|
+
program_date_time: dt.datetime | None = None,
|
|
121
|
+
current_program_date_time=None,
|
|
122
|
+
duration: float | None = None,
|
|
123
|
+
title: str | None = None,
|
|
124
|
+
bitrate=None,
|
|
125
|
+
byterange=None,
|
|
126
|
+
cue_out: bool = False,
|
|
127
|
+
cue_out_start: bool = False,
|
|
128
|
+
cue_out_explicitly_duration: bool = False,
|
|
129
|
+
cue_in: bool = False,
|
|
130
|
+
discontinuity: bool = False,
|
|
131
|
+
key=None,
|
|
132
|
+
scte35=None,
|
|
133
|
+
oatcls_scte35: str | None = None,
|
|
134
|
+
scte35_duration=None,
|
|
135
|
+
scte35_elapsedtime=None,
|
|
136
|
+
asset_metadata: Mapping[str, str] | None = None,
|
|
137
|
+
keyobject: Key | None = None,
|
|
138
|
+
parts: list[Mapping[str, Incomplete]] | None = None,
|
|
139
|
+
init_section: Mapping[str, Incomplete] | None = None,
|
|
140
|
+
dateranges=None,
|
|
141
|
+
gap_tag: list[Mapping[str, Incomplete]] | None = None,
|
|
142
|
+
media_sequence: int | None = None,
|
|
143
|
+
custom_parser_values=None,
|
|
144
|
+
) -> None: ...
|
|
145
|
+
def add_part(self, part: PartialSegment) -> None: ...
|
|
146
|
+
def dumps(self, last_segment: PartialSegment | None, timespec: str = "milliseconds", infspec: str = "auto") -> str: ...
|
|
147
|
+
@property
|
|
148
|
+
def base_path(self) -> str: ...
|
|
149
|
+
@base_path.setter
|
|
150
|
+
def base_path(self, newbase_path: str) -> None: ...
|
|
151
|
+
@property
|
|
152
|
+
def base_uri(self) -> str: ...
|
|
153
|
+
@base_uri.setter
|
|
154
|
+
def base_uri(self, newbase_uri: str) -> None: ...
|
|
155
|
+
|
|
156
|
+
class SegmentList(list[Segment], GroupedBasePathMixin[Segment]):
|
|
157
|
+
def dumps(self, timespec: str = "milliseconds", infspec: str = "auto") -> str: ...
|
|
158
|
+
@property
|
|
159
|
+
def uri(self) -> list[str | None]: ...
|
|
160
|
+
def by_key(self, key: Key) -> list[Segment]: ...
|
|
161
|
+
|
|
162
|
+
class PartialSegment(BasePathMixin):
|
|
163
|
+
base_uri: str
|
|
164
|
+
uri: str | None
|
|
165
|
+
duration: float | None
|
|
166
|
+
program_date_time: dt.datetime | None
|
|
167
|
+
current_program_date_time: dt.datetime | None
|
|
168
|
+
byterange: str | None
|
|
169
|
+
independent: bool
|
|
170
|
+
gap: str | None
|
|
171
|
+
dateranges: DateRangeList
|
|
172
|
+
gap_tag: str | None
|
|
173
|
+
|
|
174
|
+
def __init__(
|
|
175
|
+
self,
|
|
176
|
+
base_uri: str,
|
|
177
|
+
uri: str | None,
|
|
178
|
+
duration: float | None,
|
|
179
|
+
program_date_time: dt.datetime | None = None,
|
|
180
|
+
current_program_date_time: Incomplete | None = None,
|
|
181
|
+
byterange: Incomplete | None = None,
|
|
182
|
+
independent: Incomplete | None = None,
|
|
183
|
+
gap: Incomplete | None = None,
|
|
184
|
+
dateranges: list[Mapping[str, Incomplete]] | None = None,
|
|
185
|
+
gap_tag: Incomplete | None = None,
|
|
186
|
+
) -> None: ...
|
|
187
|
+
def dumps(self, last_segment) -> str: ...
|
|
188
|
+
|
|
189
|
+
class PartialSegmentList(list[PartialSegment], GroupedBasePathMixin[PartialSegment]): ...
|
|
190
|
+
|
|
191
|
+
class Key(BasePathMixin):
|
|
192
|
+
tag: ClassVar[str] = ...
|
|
193
|
+
method: str
|
|
194
|
+
base_uri: str
|
|
195
|
+
uri: str | None
|
|
196
|
+
iv: str | None
|
|
197
|
+
keyformat: str | None
|
|
198
|
+
keyformatversions: str | None
|
|
199
|
+
|
|
200
|
+
def __init__(
|
|
201
|
+
self,
|
|
202
|
+
method: str,
|
|
203
|
+
base_uri: str,
|
|
204
|
+
uri: str | None = None,
|
|
205
|
+
iv: str | None = None,
|
|
206
|
+
keyformat: str | None = None,
|
|
207
|
+
keyformatversions: str | None = None,
|
|
208
|
+
**kwargs,
|
|
209
|
+
) -> None: ...
|
|
210
|
+
def __eq__(self, other: object) -> bool: ...
|
|
211
|
+
def __ne__(self, other: object) -> bool: ...
|
|
212
|
+
|
|
213
|
+
class InitializationSection(BasePathMixin):
|
|
214
|
+
tag = ext_x_map
|
|
215
|
+
base_uri: str
|
|
216
|
+
uri: str | None
|
|
217
|
+
byterange: str | None
|
|
218
|
+
def __init__(self, base_uri: str, uri: str | None, byterange: str | None = None) -> None: ...
|
|
219
|
+
def __eq__(self, other: object) -> bool: ...
|
|
220
|
+
def __ne__(self, other: object) -> bool: ...
|
|
221
|
+
|
|
222
|
+
class SessionKey(Key):
|
|
223
|
+
tag = ext_x_session_key
|
|
224
|
+
|
|
225
|
+
class Playlist(_PlaylistProtocol):
|
|
226
|
+
base_uri: str | None
|
|
227
|
+
uri: str | None
|
|
228
|
+
stream_info: StreamInfo
|
|
229
|
+
media: MediaList
|
|
230
|
+
def __init__(self, uri: str | None, stream_info: Mapping[str, Incomplete], media: MediaList, base_uri: str) -> None: ...
|
|
231
|
+
|
|
232
|
+
class IFramePlaylist(_PlaylistProtocol):
|
|
233
|
+
uri: str | None
|
|
234
|
+
base_uri: str | None
|
|
235
|
+
iframe_stream_info: StreamInfo
|
|
236
|
+
def __init__(self, base_uri: str, uri: str | None, iframe_stream_info: Mapping[str, Incomplete]) -> None: ...
|
|
237
|
+
|
|
238
|
+
class StreamInfo:
|
|
239
|
+
bandwidth: int | None
|
|
240
|
+
closed_captions: Incomplete | None
|
|
241
|
+
average_bandwidth: int | None
|
|
242
|
+
program_id: int | None
|
|
243
|
+
resolution: tuple[int, int] | None
|
|
244
|
+
codecs: str | None
|
|
245
|
+
audio: str | None
|
|
246
|
+
video: str | None
|
|
247
|
+
subtitles: str | None
|
|
248
|
+
frame_rate: float | None
|
|
249
|
+
video_range: str | None
|
|
250
|
+
hdcp_level: str | None
|
|
251
|
+
pathway_id: str | None
|
|
252
|
+
stable_variant_id: str | None
|
|
253
|
+
req_video_layout: str | None
|
|
254
|
+
def __init__(self, **kwargs) -> None: ...
|
|
255
|
+
|
|
256
|
+
class Media(BasePathMixin):
|
|
257
|
+
base_uri: str | None
|
|
258
|
+
uri: str | None
|
|
259
|
+
type: str | None
|
|
260
|
+
group_id: str | None
|
|
261
|
+
language: str | None
|
|
262
|
+
name: str | None
|
|
263
|
+
default: str | None
|
|
264
|
+
autoselect: str | None
|
|
265
|
+
forced: str | None
|
|
266
|
+
assoc_language: str | None
|
|
267
|
+
instream_id: str | None
|
|
268
|
+
characteristics: str | None
|
|
269
|
+
channels: str | None
|
|
270
|
+
stable_rendition_id: str | None
|
|
271
|
+
extras: dict[str, Incomplete]
|
|
272
|
+
|
|
273
|
+
def __init__(
|
|
274
|
+
self,
|
|
275
|
+
uri: str | None = None,
|
|
276
|
+
type: str | None = None,
|
|
277
|
+
group_id: str | None = None,
|
|
278
|
+
language: str | None = None,
|
|
279
|
+
name: str | None = None,
|
|
280
|
+
default: str | None = None,
|
|
281
|
+
autoselect: str | None = None,
|
|
282
|
+
forced: str | None = None,
|
|
283
|
+
characteristics: str | None = None,
|
|
284
|
+
channels: str | None = None,
|
|
285
|
+
stable_rendition_id: str | None = None,
|
|
286
|
+
assoc_language: str | None = None,
|
|
287
|
+
instream_id: str | None = None,
|
|
288
|
+
base_uri: str | None = None,
|
|
289
|
+
**extras,
|
|
290
|
+
) -> None: ...
|
|
291
|
+
def dumps(self) -> str: ...
|
|
292
|
+
|
|
293
|
+
class TagList(list[_T]): ...
|
|
294
|
+
|
|
295
|
+
class MediaList(TagList[Media], list[Media], GroupedBasePathMixin[Media]):
|
|
296
|
+
@property
|
|
297
|
+
def uri(self) -> list[str | None]: ...
|
|
298
|
+
|
|
299
|
+
class PlaylistList(TagList[_PlaylistAnyT], list[_PlaylistAnyT], GroupedBasePathMixin[_PlaylistAnyT]): ...
|
|
300
|
+
class SessionDataList(TagList[SessionData], list[SessionData]): ...
|
|
301
|
+
|
|
302
|
+
class Start:
|
|
303
|
+
time_offset: float
|
|
304
|
+
precise: Literal["YES", "NO"]
|
|
305
|
+
def __init__(self, time_offset: float, precise: Literal["YES", "NO"] | None = None) -> None: ...
|
|
306
|
+
|
|
307
|
+
class RenditionReport(BasePathMixin):
|
|
308
|
+
base_uri: str | None
|
|
309
|
+
uri: str | None
|
|
310
|
+
last_msn: int
|
|
311
|
+
last_part: int | None
|
|
312
|
+
def __init__(self, base_uri: str | None, uri: str | None, last_msn: int, last_part: int | None = None) -> None: ...
|
|
313
|
+
def dumps(self) -> str: ...
|
|
314
|
+
|
|
315
|
+
class RenditionReportList(list[RenditionReport], GroupedBasePathMixin[RenditionReport]): ...
|
|
316
|
+
|
|
317
|
+
class ServerControl:
|
|
318
|
+
can_skip_until: float | None
|
|
319
|
+
can_block_reload: str | None
|
|
320
|
+
hold_back: float | None
|
|
321
|
+
part_hold_back: float | None
|
|
322
|
+
can_skip_dateranges: str | None
|
|
323
|
+
def __init__(
|
|
324
|
+
self,
|
|
325
|
+
can_skip_until: float | None = None,
|
|
326
|
+
can_block_reload: str | None = None,
|
|
327
|
+
hold_back: float | None = None,
|
|
328
|
+
part_hold_back: float | None = None,
|
|
329
|
+
can_skip_dateranges: str | None = None,
|
|
330
|
+
) -> None: ...
|
|
331
|
+
def __getitem__(self, item: str): ...
|
|
332
|
+
def dumps(self) -> str: ...
|
|
333
|
+
|
|
334
|
+
class Skip:
|
|
335
|
+
skipped_segments: int | None
|
|
336
|
+
recently_removed_dateranges: str | None
|
|
337
|
+
def __init__(self, skipped_segments: int, recently_removed_dateranges: str | None = None) -> None: ...
|
|
338
|
+
def dumps(self) -> str: ...
|
|
339
|
+
|
|
340
|
+
class PartInformation:
|
|
341
|
+
part_target: float | None
|
|
342
|
+
def __init__(self, part_target: float | None = None) -> None: ...
|
|
343
|
+
def dumps(self) -> str: ...
|
|
344
|
+
|
|
345
|
+
class PreloadHint(BasePathMixin):
|
|
346
|
+
hint_type: str | None
|
|
347
|
+
base_uri: str | None
|
|
348
|
+
uri: str | None
|
|
349
|
+
byterange_start: int | None
|
|
350
|
+
byterange_length: int | None
|
|
351
|
+
def __init__(
|
|
352
|
+
self,
|
|
353
|
+
type: str | None,
|
|
354
|
+
base_uri: str | None,
|
|
355
|
+
uri: str | None,
|
|
356
|
+
byterange_start: int | None = None,
|
|
357
|
+
byterange_length: int | None = None,
|
|
358
|
+
) -> None: ...
|
|
359
|
+
def __getitem__(self, item: str) -> str: ...
|
|
360
|
+
def dumps(self) -> str: ...
|
|
361
|
+
|
|
362
|
+
class SessionData:
|
|
363
|
+
data_id: str
|
|
364
|
+
value: str | None
|
|
365
|
+
uri: str | None
|
|
366
|
+
language: str | None
|
|
367
|
+
def __init__(self, data_id: str, value: str | None = None, uri: str | None = None, language: str | None = None) -> None: ...
|
|
368
|
+
def dumps(self) -> str: ...
|
|
369
|
+
|
|
370
|
+
class DateRangeList(TagList[DateRange]): ...
|
|
371
|
+
|
|
372
|
+
class DateRange:
|
|
373
|
+
id: str
|
|
374
|
+
start_date: str | None
|
|
375
|
+
class_: str | None
|
|
376
|
+
end_date: str | None
|
|
377
|
+
duration: float | None
|
|
378
|
+
planned_duration: float | None
|
|
379
|
+
scte35_cmd: str | None
|
|
380
|
+
scte35_out: str | None
|
|
381
|
+
scte35_in: str | None
|
|
382
|
+
end_on_next: Incomplete
|
|
383
|
+
x_client_attrs: list[tuple[str, str]]
|
|
384
|
+
def __init__(self, **kwargs) -> None: ...
|
|
385
|
+
def dumps(self) -> str: ...
|
|
386
|
+
|
|
387
|
+
class ContentSteering(BasePathMixin):
|
|
388
|
+
base_uri: str | None
|
|
389
|
+
uri: str | None
|
|
390
|
+
pathway_id: str | None
|
|
391
|
+
def __init__(self, base_uri: str | None, server_uri: str | None, pathway_id: str | None = None) -> None: ...
|
|
392
|
+
def dumps(self) -> str: ...
|
|
393
|
+
|
|
394
|
+
class ImagePlaylist(_PlaylistProtocol):
|
|
395
|
+
uri: str | None
|
|
396
|
+
base_uri: str | None
|
|
397
|
+
image_stream_info: StreamInfo
|
|
398
|
+
def __init__(self, base_uri: str | None, uri: str | None, image_stream_info: Mapping[str, Incomplete]) -> None: ...
|
|
399
|
+
|
|
400
|
+
class Tiles(BasePathMixin): # this is unused in runtime, so this is (temporary) has incomplete
|
|
401
|
+
uri: str | None
|
|
402
|
+
resolution: Incomplete
|
|
403
|
+
layout: Incomplete
|
|
404
|
+
duration: Incomplete
|
|
405
|
+
def __init__(self, resolution, layout, duration) -> None: ...
|
|
406
|
+
def dumps(self) -> str: ...
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from collections.abc import Callable
|
|
2
|
+
from re import Pattern
|
|
3
|
+
from typing import Any
|
|
4
|
+
from typing_extensions import TypeAlias
|
|
5
|
+
|
|
6
|
+
ATTRIBUTELISTPATTERN: Pattern[str]
|
|
7
|
+
_CustomTagsParser: TypeAlias = Callable[[str, int, dict[str, Any], dict[str, Any]], object]
|
|
8
|
+
|
|
9
|
+
class ParseError(Exception):
|
|
10
|
+
lineno: int
|
|
11
|
+
line: str
|
|
12
|
+
def __init__(self, lineno: int, line: str) -> None: ...
|
|
13
|
+
|
|
14
|
+
def parse(content: str, strict: bool = False, custom_tags_parser: _CustomTagsParser | None = None) -> dict[str, Any]: ...
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
ext_m3u: str
|
|
2
|
+
ext_x_targetduration: str
|
|
3
|
+
ext_x_media_sequence: str
|
|
4
|
+
ext_x_discontinuity_sequence: str
|
|
5
|
+
ext_x_program_date_time: str
|
|
6
|
+
ext_x_media: str
|
|
7
|
+
ext_x_playlist_type: str
|
|
8
|
+
ext_x_key: str
|
|
9
|
+
ext_x_stream_inf: str
|
|
10
|
+
ext_x_version: str
|
|
11
|
+
ext_x_allow_cache: str
|
|
12
|
+
ext_x_endlist: str
|
|
13
|
+
extinf: str
|
|
14
|
+
ext_i_frames_only: str
|
|
15
|
+
ext_x_asset: str
|
|
16
|
+
ext_x_bitrate: str
|
|
17
|
+
ext_x_byterange: str
|
|
18
|
+
ext_x_i_frame_stream_inf: str
|
|
19
|
+
ext_x_discontinuity: str
|
|
20
|
+
ext_x_cue_out: str
|
|
21
|
+
ext_x_cue_out_cont: str
|
|
22
|
+
ext_x_cue_in: str
|
|
23
|
+
ext_x_cue_span: str
|
|
24
|
+
ext_oatcls_scte35: str
|
|
25
|
+
ext_is_independent_segments: str
|
|
26
|
+
ext_x_map: str
|
|
27
|
+
ext_x_start: str
|
|
28
|
+
ext_x_server_control: str
|
|
29
|
+
ext_x_part_inf: str
|
|
30
|
+
ext_x_part: str
|
|
31
|
+
ext_x_rendition_report: str
|
|
32
|
+
ext_x_skip: str
|
|
33
|
+
ext_x_session_data: str
|
|
34
|
+
ext_x_session_key: str
|
|
35
|
+
ext_x_preload_hint: str
|
|
36
|
+
ext_x_daterange: str
|
|
37
|
+
ext_x_gap: str
|
|
38
|
+
ext_x_content_steering: str
|
|
39
|
+
ext_x_image_stream_inf: str
|
|
40
|
+
ext_x_images_only: str
|
|
41
|
+
ext_x_tiles: str
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from m3u8.version_matching_rules import VersionMatchingError
|
|
2
|
+
|
|
3
|
+
def get_version(file_lines: list[str]) -> float | None: ...
|
|
4
|
+
def valid_in_all_rules(line_number: int, line: str, version: float) -> list[VersionMatchingError]: ...
|
|
5
|
+
def validate(file_lines: list[str]) -> list[VersionMatchingError]: ...
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
|
|
3
|
+
@dataclass
|
|
4
|
+
class VersionMatchingError(Exception):
|
|
5
|
+
line_number: int
|
|
6
|
+
line: str
|
|
7
|
+
how_to_fix: str = ...
|
|
8
|
+
description: str = ...
|
|
9
|
+
|
|
10
|
+
class VersionMatchRuleBase:
|
|
11
|
+
description: str
|
|
12
|
+
how_to_fix: str
|
|
13
|
+
version: float
|
|
14
|
+
line_number: int
|
|
15
|
+
line: str
|
|
16
|
+
def __init__(self, version: float, line_number: int, line: str) -> None: ...
|
|
17
|
+
def validate(self) -> bool: ...
|
|
18
|
+
def get_error(self) -> VersionMatchingError: ...
|
|
19
|
+
|
|
20
|
+
class ValidIVInEXTXKEY(VersionMatchRuleBase): ...
|
|
21
|
+
class ValidFloatingPointEXTINF(VersionMatchRuleBase): ...
|
|
22
|
+
class ValidEXTXBYTERANGEOrEXTXIFRAMESONLY(VersionMatchRuleBase): ...
|
|
23
|
+
|
|
24
|
+
available_rules: list[type[VersionMatchRuleBase]]
|
|
@@ -12,13 +12,14 @@ from paramiko.channel import Channel
|
|
|
12
12
|
from paramiko.message import Message
|
|
13
13
|
from paramiko.packet import Packetizer
|
|
14
14
|
from paramiko.pkey import PKey
|
|
15
|
+
from paramiko.proxy import ProxyCommand
|
|
15
16
|
from paramiko.server import ServerInterface, SubsystemHandler
|
|
16
17
|
from paramiko.sftp_client import SFTPClient
|
|
17
18
|
from paramiko.ssh_gss import _SSH_GSSAuth
|
|
18
19
|
from paramiko.util import ClosingContextManager
|
|
19
20
|
|
|
20
21
|
_Addr: TypeAlias = tuple[str, int]
|
|
21
|
-
_SocketLike: TypeAlias = str | _Addr | socket | Channel
|
|
22
|
+
_SocketLike: TypeAlias = str | _Addr | socket | Channel | ProxyCommand
|
|
22
23
|
|
|
23
24
|
class _KexEngine(Protocol):
|
|
24
25
|
def start_kex(self) -> None: ...
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Whenever you update version here, PACKAGE_VERSION should be updated
|
|
2
2
|
# in scripts/sync_proto/google_protobuf.py and vice-versa.
|
|
3
|
-
version = "5.
|
|
3
|
+
version = "5.28.*"
|
|
4
4
|
upstream_repository = "https://github.com/protocolbuffers/protobuf"
|
|
5
|
-
extra_description = "Partially generated using [mypy-protobuf==3.6.0](https://github.com/nipunn1313/mypy-protobuf/tree/v3.6.0) and libprotoc 26.1 on [protobuf
|
|
5
|
+
extra_description = "Partially generated using [mypy-protobuf==3.6.0](https://github.com/nipunn1313/mypy-protobuf/tree/v3.6.0) and libprotoc 26.1 on [protobuf v28.2](https://github.com/protocolbuffers/protobuf/releases/tag/v28.2) (python `protobuf==5.28.2`)."
|
|
6
6
|
partial_stub = true
|
|
7
7
|
|
|
8
8
|
[tool.stubtest]
|
|
@@ -1304,12 +1304,13 @@ class FieldOptions(google.protobuf.message.Message):
|
|
|
1304
1304
|
FEATURE_SUPPORT_FIELD_NUMBER: builtins.int
|
|
1305
1305
|
UNINTERPRETED_OPTION_FIELD_NUMBER: builtins.int
|
|
1306
1306
|
ctype: global___FieldOptions.CType.ValueType
|
|
1307
|
-
"""
|
|
1307
|
+
"""NOTE: ctype is deprecated. Use `features.(pb.cpp).string_type` instead.
|
|
1308
|
+
The ctype option instructs the C++ code generator to use a different
|
|
1308
1309
|
representation of the field than it normally would. See the specific
|
|
1309
1310
|
options below. This option is only implemented to support use of
|
|
1310
1311
|
[ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of
|
|
1311
|
-
type "bytes" in the open source release
|
|
1312
|
-
|
|
1312
|
+
type "bytes" in the open source release.
|
|
1313
|
+
TODO: make ctype actually deprecated.
|
|
1313
1314
|
"""
|
|
1314
1315
|
packed: builtins.bool
|
|
1315
1316
|
"""The packed option can be enabled for repeated primitive fields to enable
|
|
@@ -73,7 +73,6 @@ _StructValueArg: TypeAlias = _StructValue | Mapping[str, _StructValueArg] | Sequ
|
|
|
73
73
|
|
|
74
74
|
class Struct:
|
|
75
75
|
def __getitem__(self, key: str) -> _StructValue: ...
|
|
76
|
-
def __contains__(self, item: object) -> bool: ...
|
|
77
76
|
def __setitem__(self, key: str, value: _StructValueArg) -> None: ...
|
|
78
77
|
def __delitem__(self, key: str) -> None: ...
|
|
79
78
|
def __len__(self) -> int: ...
|
|
@@ -13,8 +13,8 @@ from .tzinfo import BaseTzInfo as BaseTzInfo, DstTzInfo, StaticTzInfo
|
|
|
13
13
|
|
|
14
14
|
# Actually named UTC and then masked with a singleton with the same name
|
|
15
15
|
class _UTCclass(BaseTzInfo):
|
|
16
|
-
def localize(self, dt: datetime.datetime, is_dst: bool | None =
|
|
17
|
-
def normalize(self, dt: datetime.datetime) -> datetime.datetime: ...
|
|
16
|
+
def localize(self, dt: datetime.datetime, is_dst: bool | None = False) -> datetime.datetime: ...
|
|
17
|
+
def normalize(self, dt: datetime.datetime, is_dst: bool | None = False) -> datetime.datetime: ...
|
|
18
18
|
def tzname(self, dt: datetime.datetime | None) -> str: ...
|
|
19
19
|
def utcoffset(self, dt: datetime.datetime | None) -> datetime.timedelta: ...
|
|
20
20
|
def dst(self, dt: datetime.datetime | None) -> datetime.timedelta: ...
|
|
@@ -30,8 +30,8 @@ class _FixedOffset(datetime.tzinfo):
|
|
|
30
30
|
def utcoffset(self, dt: Unused) -> datetime.timedelta | None: ...
|
|
31
31
|
def dst(self, dt: Unused) -> datetime.timedelta: ...
|
|
32
32
|
def tzname(self, dt: Unused) -> None: ...
|
|
33
|
-
def localize(self, dt: datetime.datetime, is_dst: bool = False) -> datetime.datetime: ...
|
|
34
|
-
def normalize(self, dt: datetime.datetime, is_dst: bool = False) -> datetime.datetime: ...
|
|
33
|
+
def localize(self, dt: datetime.datetime, is_dst: bool | None = False) -> datetime.datetime: ...
|
|
34
|
+
def normalize(self, dt: datetime.datetime, is_dst: bool | None = False) -> datetime.datetime: ...
|
|
35
35
|
|
|
36
36
|
def FixedOffset(offset: int, _tzinfos: dict[int, _FixedOffset] = {}) -> _UTCclass | _FixedOffset: ...
|
|
37
37
|
|
|
@@ -9,7 +9,7 @@ class BaseTzInfo(datetime.tzinfo):
|
|
|
9
9
|
# The following abstract methods don't exist in the implementation, but
|
|
10
10
|
# are implemented by all sub-classes.
|
|
11
11
|
@abstractmethod
|
|
12
|
-
def localize(self, dt: datetime.datetime) -> datetime.datetime: ...
|
|
12
|
+
def localize(self, dt: datetime.datetime, is_dst: bool | None = ...) -> datetime.datetime: ...
|
|
13
13
|
@abstractmethod
|
|
14
14
|
def normalize(self, dt: datetime.datetime) -> datetime.datetime: ...
|
|
15
15
|
@abstractmethod
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
version = "
|
|
1
|
+
version = "8.0.*"
|
|
2
2
|
upstream_repository = "https://github.com/lincolnloop/python-qrcode"
|
|
3
|
-
|
|
3
|
+
# must be a version of Pillow that is py.typed
|
|
4
|
+
requires = ["Pillow>=10.3.0"]
|
|
4
5
|
|
|
5
6
|
[tool.stubtest]
|
|
6
7
|
extras = ["pil"]
|
|
@@ -105,13 +105,22 @@ class Redis(AbstractRedis, RedisModuleCommands, CoreCommands[_StrType], Sentinel
|
|
|
105
105
|
ssl_certfile: str | None = ...,
|
|
106
106
|
ssl_cert_reqs: str | int | None = ...,
|
|
107
107
|
ssl_ca_certs: str | None = ...,
|
|
108
|
+
ssl_ca_path: Incomplete | None = None,
|
|
109
|
+
ssl_ca_data: Incomplete | None = None,
|
|
108
110
|
ssl_check_hostname: bool = ...,
|
|
111
|
+
ssl_password: Incomplete | None = None,
|
|
112
|
+
ssl_validate_ocsp: bool = False,
|
|
113
|
+
ssl_validate_ocsp_stapled: bool = False, # added in 4.1.1
|
|
114
|
+
ssl_ocsp_context: Incomplete | None = None, # added in 4.1.1
|
|
115
|
+
ssl_ocsp_expected_cert: Incomplete | None = None, # added in 4.1.1
|
|
109
116
|
max_connections: int | None = ...,
|
|
110
117
|
single_connection_client: bool = ...,
|
|
111
118
|
health_check_interval: float = ...,
|
|
112
119
|
client_name: str | None = ...,
|
|
113
120
|
username: str | None = ...,
|
|
114
121
|
retry: Retry | None = ...,
|
|
122
|
+
redis_connect_func: _ConnectFunc | None = None,
|
|
123
|
+
credential_provider: CredentialProvider | None = None,
|
|
115
124
|
) -> Redis[str]: ...
|
|
116
125
|
@overload
|
|
117
126
|
@classmethod
|
|
@@ -141,13 +150,22 @@ class Redis(AbstractRedis, RedisModuleCommands, CoreCommands[_StrType], Sentinel
|
|
|
141
150
|
ssl_certfile: str | None = ...,
|
|
142
151
|
ssl_cert_reqs: str | int | None = ...,
|
|
143
152
|
ssl_ca_certs: str | None = ...,
|
|
153
|
+
ssl_ca_path: Incomplete | None = None,
|
|
154
|
+
ssl_ca_data: Incomplete | None = None,
|
|
144
155
|
ssl_check_hostname: bool = ...,
|
|
156
|
+
ssl_password: Incomplete | None = None,
|
|
157
|
+
ssl_validate_ocsp: bool = False,
|
|
158
|
+
ssl_validate_ocsp_stapled: bool = False, # added in 4.1.1
|
|
159
|
+
ssl_ocsp_context: Incomplete | None = None, # added in 4.1.1
|
|
160
|
+
ssl_ocsp_expected_cert: Incomplete | None = None, # added in 4.1.1
|
|
145
161
|
max_connections: int | None = ...,
|
|
146
162
|
single_connection_client: bool = ...,
|
|
147
163
|
health_check_interval: float = ...,
|
|
148
164
|
client_name: str | None = ...,
|
|
149
165
|
username: str | None = ...,
|
|
150
166
|
retry: Retry | None = ...,
|
|
167
|
+
redis_connect_func: _ConnectFunc | None = None,
|
|
168
|
+
credential_provider: CredentialProvider | None = None,
|
|
151
169
|
) -> Redis[bytes]: ...
|
|
152
170
|
connection_pool: Any
|
|
153
171
|
response_callbacks: Any
|
|
@@ -34,6 +34,6 @@ class GraphicsFlowable(Flowable):
|
|
|
34
34
|
def __init__(self, drawing) -> None: ...
|
|
35
35
|
def draw(self) -> None: ...
|
|
36
36
|
|
|
37
|
-
def drawToFile(d: Drawing, fn: str | IO[bytes], msg: str = "", showBoundary=..., autoSize: int = 1,
|
|
38
|
-
def drawToString(d: Drawing, msg: str = "", showBoundary=..., autoSize: int = 1,
|
|
37
|
+
def drawToFile(d: Drawing, fn: str | IO[bytes], msg: str = "", showBoundary=..., autoSize: int = 1, **kwds) -> None: ...
|
|
38
|
+
def drawToString(d: Drawing, msg: str = "", showBoundary=..., autoSize: int = 1, **kwds) -> str: ...
|
|
39
39
|
def test(outDir: str = "pdfout", shout: bool = False) -> None: ...
|
|
@@ -2,7 +2,15 @@ version = "0.13.2"
|
|
|
2
2
|
# Requires a version of numpy and matplotlib with a `py.typed` file
|
|
3
3
|
# see https://github.com/python/typeshed/issues/12551
|
|
4
4
|
# on why we need the upper bound for numpy
|
|
5
|
-
|
|
5
|
+
#
|
|
6
|
+
# TODO: Specifying the python-version for matplotlib should not be necessary,
|
|
7
|
+
# because of the requires_python field. However, this needs changes to
|
|
8
|
+
# get_typeshed_stub_version.py (see there).
|
|
9
|
+
requires = [
|
|
10
|
+
"matplotlib>=3.8; python_version>='3.9'",
|
|
11
|
+
"numpy>=1.20,<2.1.0",
|
|
12
|
+
"pandas-stubs",
|
|
13
|
+
]
|
|
6
14
|
# matplotlib>=3.8 requires Python >=3.9
|
|
7
15
|
requires_python = ">=3.9"
|
|
8
16
|
upstream_repository = "https://github.com/mwaskom/seaborn"
|