MicroPython stuff
This commit is contained in:
3
.micropico
Normal file
3
.micropico
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"info": "This file is just used to identify a project folder."
|
||||||
|
}
|
||||||
27
.vscode/Pico-W-Stub/__builtins__.pyi
vendored
Normal file
27
.vscode/Pico-W-Stub/__builtins__.pyi
vendored
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# allows for type checking of additional builtins by pyright
|
||||||
|
|
||||||
|
from typing import Tuple, TypeVar
|
||||||
|
|
||||||
|
Const_T = TypeVar("Const_T", int, float, str, bytes, Tuple) # constant
|
||||||
|
|
||||||
|
def const(expr: Const_T) -> Const_T:
|
||||||
|
"""
|
||||||
|
Used to declare that the expression is a constant so that the compiler can
|
||||||
|
optimise it. The use of this function should be as follows::
|
||||||
|
|
||||||
|
from micropython import const
|
||||||
|
|
||||||
|
CONST_X = const(123)
|
||||||
|
CONST_Y = const(2 * CONST_X + 1)
|
||||||
|
|
||||||
|
Constants declared this way are still accessible as global variables from
|
||||||
|
outside the module they are declared in. On the other hand, if a constant
|
||||||
|
begins with an underscore then it is hidden, it is not available as a global
|
||||||
|
variable, and does not take up any memory during execution.
|
||||||
|
|
||||||
|
This `const` function is recognised directly by the MicroPython parser and is
|
||||||
|
provided as part of the :mod:`micropython` module mainly so that scripts can be
|
||||||
|
written which run under both CPython and MicroPython, by following the above
|
||||||
|
pattern.
|
||||||
|
"""
|
||||||
|
...
|
||||||
11
.vscode/Pico-W-Stub/_asyncio.pyi
vendored
Normal file
11
.vscode/Pico-W-Stub/_asyncio.pyi
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
from _typeshed import Incomplete as Incomplete
|
||||||
|
|
||||||
|
class TaskQueue:
|
||||||
|
def push(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def peek(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def remove(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def pop(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, *argv, **kwargs) -> None: ...
|
||||||
|
|
||||||
|
class Task:
|
||||||
|
def __init__(self, *argv, **kwargs) -> None: ...
|
||||||
4
.vscode/Pico-W-Stub/_boot.pyi
vendored
Normal file
4
.vscode/Pico-W-Stub/_boot.pyi
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
bdev: Incomplete
|
||||||
|
vfs: Incomplete
|
||||||
4
.vscode/Pico-W-Stub/_boot_fat.pyi
vendored
Normal file
4
.vscode/Pico-W-Stub/_boot_fat.pyi
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
bdev: Incomplete
|
||||||
|
vfs: Incomplete
|
||||||
8
.vscode/Pico-W-Stub/_onewire.pyi
vendored
Normal file
8
.vscode/Pico-W-Stub/_onewire.pyi
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
from _typeshed import Incomplete as Incomplete
|
||||||
|
|
||||||
|
def reset(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def writebyte(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def writebit(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def crc8(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def readbyte(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def readbit(*args, **kwargs) -> Incomplete: ...
|
||||||
42
.vscode/Pico-W-Stub/_rp2.pyi
vendored
Normal file
42
.vscode/Pico-W-Stub/_rp2.pyi
vendored
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
from _typeshed import Incomplete as Incomplete
|
||||||
|
|
||||||
|
def country(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def bootsel_button(*args, **kwargs) -> Incomplete: ...
|
||||||
|
|
||||||
|
class Flash:
|
||||||
|
def readblocks(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def writeblocks(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def ioctl(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, *argv, **kwargs) -> None: ...
|
||||||
|
|
||||||
|
class PIO:
|
||||||
|
JOIN_TX: int
|
||||||
|
JOIN_NONE: int
|
||||||
|
JOIN_RX: int
|
||||||
|
SHIFT_LEFT: int
|
||||||
|
OUT_HIGH: int
|
||||||
|
OUT_LOW: int
|
||||||
|
SHIFT_RIGHT: int
|
||||||
|
IN_LOW: int
|
||||||
|
IRQ_SM3: int
|
||||||
|
IN_HIGH: int
|
||||||
|
IRQ_SM2: int
|
||||||
|
IRQ_SM0: int
|
||||||
|
IRQ_SM1: int
|
||||||
|
def state_machine(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def remove_program(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def irq(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def add_program(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, *argv, **kwargs) -> None: ...
|
||||||
|
|
||||||
|
class StateMachine:
|
||||||
|
def irq(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def put(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def restart(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def rx_fifo(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def tx_fifo(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def init(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def exec(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def get(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def active(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, *argv, **kwargs) -> None: ...
|
||||||
25
.vscode/Pico-W-Stub/_thread.pyi
vendored
Normal file
25
.vscode/Pico-W-Stub/_thread.pyi
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
"""
|
||||||
|
Multithreading support.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/_thread.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:_thread` https://docs.python.org/3/library/_thread.html .
|
||||||
|
|
||||||
|
This module implements multithreading support.
|
||||||
|
|
||||||
|
This module is highly experimental and its API is not yet fully settled
|
||||||
|
and not yet described in this documentation.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
|
||||||
|
def get_ident(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def start_new_thread(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def stack_size(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def exit(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def allocate_lock(*args, **kwargs) -> Incomplete: ...
|
||||||
|
|
||||||
|
class LockType:
|
||||||
|
def locked(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def release(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def acquire(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, *argv, **kwargs) -> None: ...
|
||||||
15
.vscode/Pico-W-Stub/aioble/__init__.pyi
vendored
Normal file
15
.vscode/Pico-W-Stub/aioble/__init__.pyi
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
from .central import scan as scan
|
||||||
|
from .core import GattError as GattError, config as config, log_error as log_error, log_warn as log_warn, stop as stop
|
||||||
|
from .device import Device as Device, DeviceDisconnectedError as DeviceDisconnectedError
|
||||||
|
from .peripheral import advertise as advertise
|
||||||
|
from .server import (
|
||||||
|
BufferedCharacteristic as BufferedCharacteristic,
|
||||||
|
Characteristic as Characteristic,
|
||||||
|
Descriptor as Descriptor,
|
||||||
|
Service as Service,
|
||||||
|
register_services as register_services,
|
||||||
|
)
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
ADDR_PUBLIC: Incomplete
|
||||||
|
ADDR_RANDOM: Incomplete
|
||||||
71
.vscode/Pico-W-Stub/aioble/central.pyi
vendored
Normal file
71
.vscode/Pico-W-Stub/aioble/central.pyi
vendored
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
from .core import (
|
||||||
|
ble as ble,
|
||||||
|
ensure_active as ensure_active,
|
||||||
|
log_error as log_error,
|
||||||
|
log_info as log_info,
|
||||||
|
log_warn as log_warn,
|
||||||
|
register_irq_handler as register_irq_handler,
|
||||||
|
)
|
||||||
|
from .device import Device as Device, DeviceConnection as DeviceConnection, DeviceTimeout as DeviceTimeout
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
from collections.abc import Generator
|
||||||
|
|
||||||
|
_IRQ_SCAN_RESULT: Incomplete
|
||||||
|
_IRQ_SCAN_DONE: Incomplete
|
||||||
|
_IRQ_PERIPHERAL_CONNECT: Incomplete
|
||||||
|
_IRQ_PERIPHERAL_DISCONNECT: Incomplete
|
||||||
|
_ADV_IND: Incomplete
|
||||||
|
_ADV_DIRECT_IND: Incomplete
|
||||||
|
_ADV_SCAN_IND: Incomplete
|
||||||
|
_ADV_NONCONN_IND: Incomplete
|
||||||
|
_SCAN_RSP: Incomplete
|
||||||
|
_ADV_TYPE_FLAGS: Incomplete
|
||||||
|
_ADV_TYPE_NAME: Incomplete
|
||||||
|
_ADV_TYPE_SHORT_NAME: Incomplete
|
||||||
|
_ADV_TYPE_UUID16_INCOMPLETE: Incomplete
|
||||||
|
_ADV_TYPE_UUID16_COMPLETE: Incomplete
|
||||||
|
_ADV_TYPE_UUID32_INCOMPLETE: Incomplete
|
||||||
|
_ADV_TYPE_UUID32_COMPLETE: Incomplete
|
||||||
|
_ADV_TYPE_UUID128_INCOMPLETE: Incomplete
|
||||||
|
_ADV_TYPE_UUID128_COMPLETE: Incomplete
|
||||||
|
_ADV_TYPE_APPEARANCE: Incomplete
|
||||||
|
_ADV_TYPE_MANUFACTURER: Incomplete
|
||||||
|
_active_scanner: Incomplete
|
||||||
|
_connecting: Incomplete
|
||||||
|
|
||||||
|
def _central_irq(event, data) -> None: ...
|
||||||
|
def _central_shutdown() -> None: ...
|
||||||
|
async def _cancel_pending() -> None: ...
|
||||||
|
async def _connect(connection, timeout_ms) -> None: ...
|
||||||
|
|
||||||
|
class ScanResult:
|
||||||
|
device: Incomplete
|
||||||
|
adv_data: Incomplete
|
||||||
|
resp_data: Incomplete
|
||||||
|
rssi: Incomplete
|
||||||
|
connectable: bool
|
||||||
|
def __init__(self, device) -> None: ...
|
||||||
|
def _update(self, adv_type, rssi, adv_data): ...
|
||||||
|
def __str__(self): ...
|
||||||
|
def _decode_field(self, *adv_type) -> Generator[Incomplete, None, None]: ...
|
||||||
|
def name(self): ...
|
||||||
|
def services(self) -> Generator[Incomplete, None, None]: ...
|
||||||
|
def manufacturer(self, filter: Incomplete | None = ...) -> Generator[Incomplete, None, None]: ...
|
||||||
|
|
||||||
|
class scan:
|
||||||
|
_queue: Incomplete
|
||||||
|
_event: Incomplete
|
||||||
|
_done: bool
|
||||||
|
_results: Incomplete
|
||||||
|
_duration_ms: Incomplete
|
||||||
|
_interval_us: Incomplete
|
||||||
|
_window_us: Incomplete
|
||||||
|
_active: Incomplete
|
||||||
|
def __init__(
|
||||||
|
self, duration_ms, interval_us: Incomplete | None = ..., window_us: Incomplete | None = ..., active: bool = ...
|
||||||
|
) -> None: ...
|
||||||
|
async def __aenter__(self): ...
|
||||||
|
async def __aexit__(self, exc_type, exc_val, exc_traceback) -> None: ...
|
||||||
|
def __aiter__(self): ...
|
||||||
|
async def __anext__(self): ...
|
||||||
|
async def cancel(self) -> None: ...
|
||||||
100
.vscode/Pico-W-Stub/aioble/client.pyi
vendored
Normal file
100
.vscode/Pico-W-Stub/aioble/client.pyi
vendored
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
from .core import GattError as GattError, ble as ble, register_irq_handler as register_irq_handler
|
||||||
|
from .device import DeviceConnection as DeviceConnection
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
_IRQ_GATTC_SERVICE_RESULT: Incomplete
|
||||||
|
_IRQ_GATTC_SERVICE_DONE: Incomplete
|
||||||
|
_IRQ_GATTC_CHARACTERISTIC_RESULT: Incomplete
|
||||||
|
_IRQ_GATTC_CHARACTERISTIC_DONE: Incomplete
|
||||||
|
_IRQ_GATTC_DESCRIPTOR_RESULT: Incomplete
|
||||||
|
_IRQ_GATTC_DESCRIPTOR_DONE: Incomplete
|
||||||
|
_IRQ_GATTC_READ_RESULT: Incomplete
|
||||||
|
_IRQ_GATTC_READ_DONE: Incomplete
|
||||||
|
_IRQ_GATTC_WRITE_DONE: Incomplete
|
||||||
|
_IRQ_GATTC_NOTIFY: Incomplete
|
||||||
|
_IRQ_GATTC_INDICATE: Incomplete
|
||||||
|
_CCCD_UUID: Incomplete
|
||||||
|
_CCCD_NOTIFY: Incomplete
|
||||||
|
_CCCD_INDICATE: Incomplete
|
||||||
|
_FLAG_READ: Incomplete
|
||||||
|
_FLAG_WRITE_NO_RESPONSE: Incomplete
|
||||||
|
_FLAG_WRITE: Incomplete
|
||||||
|
_FLAG_NOTIFY: Incomplete
|
||||||
|
_FLAG_INDICATE: Incomplete
|
||||||
|
|
||||||
|
def _client_irq(event, data) -> None: ...
|
||||||
|
|
||||||
|
class ClientDiscover:
|
||||||
|
_connection: Incomplete
|
||||||
|
_queue: Incomplete
|
||||||
|
_status: Incomplete
|
||||||
|
_event: Incomplete
|
||||||
|
_disc_type: Incomplete
|
||||||
|
_parent: Incomplete
|
||||||
|
_timeout_ms: Incomplete
|
||||||
|
_args: Incomplete
|
||||||
|
def __init__(self, connection, disc_type, parent, timeout_ms, *args) -> None: ...
|
||||||
|
async def _start(self) -> None: ...
|
||||||
|
def __aiter__(self): ...
|
||||||
|
async def __anext__(self): ...
|
||||||
|
def _discover_result(conn_handle, *args) -> None: ...
|
||||||
|
def _discover_done(conn_handle, status) -> None: ...
|
||||||
|
|
||||||
|
class ClientService:
|
||||||
|
connection: Incomplete
|
||||||
|
_start_handle: Incomplete
|
||||||
|
_end_handle: Incomplete
|
||||||
|
uuid: Incomplete
|
||||||
|
def __init__(self, connection, start_handle, end_handle, uuid) -> None: ...
|
||||||
|
def __str__(self): ...
|
||||||
|
async def characteristic(self, uuid, timeout_ms: int = ...): ...
|
||||||
|
def characteristics(self, uuid: Incomplete | None = ..., timeout_ms: int = ...): ...
|
||||||
|
def _start_discovery(connection, uuid: Incomplete | None = ...) -> None: ...
|
||||||
|
|
||||||
|
class BaseClientCharacteristic:
|
||||||
|
_value_handle: Incomplete
|
||||||
|
properties: Incomplete
|
||||||
|
uuid: Incomplete
|
||||||
|
_read_event: Incomplete
|
||||||
|
_read_data: Incomplete
|
||||||
|
_read_status: Incomplete
|
||||||
|
_write_event: Incomplete
|
||||||
|
_write_status: Incomplete
|
||||||
|
def __init__(self, value_handle, properties, uuid) -> None: ...
|
||||||
|
def _register_with_connection(self) -> None: ...
|
||||||
|
def _find(conn_handle, value_handle): ...
|
||||||
|
def _check(self, flag) -> None: ...
|
||||||
|
async def read(self, timeout_ms: int = ...): ...
|
||||||
|
def _read_result(conn_handle, value_handle, data) -> None: ...
|
||||||
|
def _read_done(conn_handle, value_handle, status) -> None: ...
|
||||||
|
async def write(self, data, response: Incomplete | None = ..., timeout_ms: int = ...) -> None: ...
|
||||||
|
def _write_done(conn_handle, value_handle, status) -> None: ...
|
||||||
|
|
||||||
|
class ClientCharacteristic(BaseClientCharacteristic):
|
||||||
|
service: Incomplete
|
||||||
|
connection: Incomplete
|
||||||
|
_end_handle: Incomplete
|
||||||
|
_notify_event: Incomplete
|
||||||
|
_notify_queue: Incomplete
|
||||||
|
_indicate_event: Incomplete
|
||||||
|
_indicate_queue: Incomplete
|
||||||
|
def __init__(self, service, end_handle, value_handle, properties, uuid) -> None: ...
|
||||||
|
def __str__(self): ...
|
||||||
|
def _connection(self): ...
|
||||||
|
async def descriptor(self, uuid, timeout_ms: int = ...): ...
|
||||||
|
def descriptors(self, timeout_ms: int = ...): ...
|
||||||
|
def _start_discovery(service, uuid: Incomplete | None = ...) -> None: ...
|
||||||
|
async def _notified_indicated(self, queue, event, timeout_ms): ...
|
||||||
|
async def notified(self, timeout_ms: Incomplete | None = ...): ...
|
||||||
|
def _on_notify_indicate(self, queue, event, data) -> None: ...
|
||||||
|
def _on_notify(conn_handle, value_handle, notify_data) -> None: ...
|
||||||
|
async def indicated(self, timeout_ms: Incomplete | None = ...): ...
|
||||||
|
def _on_indicate(conn_handle, value_handle, indicate_data) -> None: ...
|
||||||
|
async def subscribe(self, notify: bool = ..., indicate: bool = ...) -> None: ...
|
||||||
|
|
||||||
|
class ClientDescriptor(BaseClientCharacteristic):
|
||||||
|
characteristic: Incomplete
|
||||||
|
def __init__(self, characteristic, dsc_handle, uuid) -> None: ...
|
||||||
|
def __str__(self): ...
|
||||||
|
def _connection(self): ...
|
||||||
|
def _start_discovery(characteristic, uuid: Incomplete | None = ...) -> None: ...
|
||||||
23
.vscode/Pico-W-Stub/aioble/core.pyi
vendored
Normal file
23
.vscode/Pico-W-Stub/aioble/core.pyi
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
log_level: int
|
||||||
|
|
||||||
|
def log_error(*args) -> None: ...
|
||||||
|
def log_warn(*args) -> None: ...
|
||||||
|
def log_info(*args) -> None: ...
|
||||||
|
|
||||||
|
class GattError(Exception):
|
||||||
|
_status: Incomplete
|
||||||
|
def __init__(self, status) -> None: ...
|
||||||
|
|
||||||
|
def ensure_active() -> None: ...
|
||||||
|
def config(*args, **kwargs): ...
|
||||||
|
|
||||||
|
_irq_handlers: Incomplete
|
||||||
|
_shutdown_handlers: Incomplete
|
||||||
|
|
||||||
|
def register_irq_handler(irq, shutdown) -> None: ...
|
||||||
|
def stop() -> None: ...
|
||||||
|
def ble_irq(event, data): ...
|
||||||
|
|
||||||
|
ble: Incomplete
|
||||||
62
.vscode/Pico-W-Stub/aioble/device.pyi
vendored
Normal file
62
.vscode/Pico-W-Stub/aioble/device.pyi
vendored
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
from .core import ble as ble, log_error as log_error, register_irq_handler as register_irq_handler
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
_IRQ_MTU_EXCHANGED: Incomplete
|
||||||
|
|
||||||
|
class DeviceDisconnectedError(Exception): ...
|
||||||
|
|
||||||
|
def _device_irq(event, data) -> None: ...
|
||||||
|
|
||||||
|
class DeviceTimeout:
|
||||||
|
_connection: Incomplete
|
||||||
|
_timeout_ms: Incomplete
|
||||||
|
_timeout_task: Incomplete
|
||||||
|
_task: Incomplete
|
||||||
|
def __init__(self, connection, timeout_ms) -> None: ...
|
||||||
|
async def _timeout_sleep(self) -> None: ...
|
||||||
|
def __enter__(self) -> None: ...
|
||||||
|
def __exit__(self, exc_type, exc_val, exc_traceback) -> None: ...
|
||||||
|
|
||||||
|
class Device:
|
||||||
|
addr_type: Incomplete
|
||||||
|
addr: Incomplete
|
||||||
|
_connection: Incomplete
|
||||||
|
def __init__(self, addr_type, addr) -> None: ...
|
||||||
|
def __eq__(self, rhs): ...
|
||||||
|
def __hash__(self): ...
|
||||||
|
def __str__(self): ...
|
||||||
|
def addr_hex(self): ...
|
||||||
|
async def connect(self, timeout_ms: int = ...): ...
|
||||||
|
|
||||||
|
class DeviceConnection:
|
||||||
|
_connected: Incomplete
|
||||||
|
device: Incomplete
|
||||||
|
encrypted: bool
|
||||||
|
authenticated: bool
|
||||||
|
bonded: bool
|
||||||
|
key_size: bool
|
||||||
|
mtu: Incomplete
|
||||||
|
_conn_handle: Incomplete
|
||||||
|
_event: Incomplete
|
||||||
|
_mtu_event: Incomplete
|
||||||
|
_discover: Incomplete
|
||||||
|
_characteristics: Incomplete
|
||||||
|
_task: Incomplete
|
||||||
|
_timeouts: Incomplete
|
||||||
|
_pair_event: Incomplete
|
||||||
|
_l2cap_channel: Incomplete
|
||||||
|
def __init__(self, device) -> None: ...
|
||||||
|
async def device_task(self) -> None: ...
|
||||||
|
def _run_task(self) -> None: ...
|
||||||
|
async def disconnect(self, timeout_ms: int = ...) -> None: ...
|
||||||
|
async def disconnected(self, timeout_ms: int = ..., disconnect: bool = ...) -> None: ...
|
||||||
|
async def service(self, uuid, timeout_ms: int = ...): ...
|
||||||
|
def services(self, uuid: Incomplete | None = ..., timeout_ms: int = ...): ...
|
||||||
|
async def pair(self, *args, **kwargs) -> None: ...
|
||||||
|
def is_connected(self): ...
|
||||||
|
def timeout(self, timeout_ms): ...
|
||||||
|
async def exchange_mtu(self, mtu: Incomplete | None = ..., timeout_ms: int = ...): ...
|
||||||
|
async def l2cap_accept(self, psm, mtu, timeout_ms: Incomplete | None = ...): ...
|
||||||
|
async def l2cap_connect(self, psm, mtu, timeout_ms: int = ...): ...
|
||||||
|
async def __aenter__(self): ...
|
||||||
|
async def __aexit__(self, exc_type, exc_val, exc_traceback) -> None: ...
|
||||||
39
.vscode/Pico-W-Stub/aioble/l2cap.pyi
vendored
Normal file
39
.vscode/Pico-W-Stub/aioble/l2cap.pyi
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
from .core import ble as ble, log_error as log_error, register_irq_handler as register_irq_handler
|
||||||
|
from .device import DeviceConnection as DeviceConnection
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
_IRQ_L2CAP_ACCEPT: Incomplete
|
||||||
|
_IRQ_L2CAP_CONNECT: Incomplete
|
||||||
|
_IRQ_L2CAP_DISCONNECT: Incomplete
|
||||||
|
_IRQ_L2CAP_RECV: Incomplete
|
||||||
|
_IRQ_L2CAP_SEND_READY: Incomplete
|
||||||
|
_listening: bool
|
||||||
|
|
||||||
|
def _l2cap_irq(event, data) -> None: ...
|
||||||
|
def _l2cap_shutdown() -> None: ...
|
||||||
|
|
||||||
|
class L2CAPDisconnectedError(Exception): ...
|
||||||
|
class L2CAPConnectionError(Exception): ...
|
||||||
|
|
||||||
|
class L2CAPChannel:
|
||||||
|
_connection: Incomplete
|
||||||
|
our_mtu: int
|
||||||
|
peer_mtu: int
|
||||||
|
_cid: Incomplete
|
||||||
|
_status: int
|
||||||
|
_stalled: bool
|
||||||
|
_data_ready: bool
|
||||||
|
_event: Incomplete
|
||||||
|
def __init__(self, connection) -> None: ...
|
||||||
|
def _assert_connected(self) -> None: ...
|
||||||
|
async def recvinto(self, buf, timeout_ms: Incomplete | None = ...): ...
|
||||||
|
def available(self): ...
|
||||||
|
async def send(self, buf, timeout_ms: Incomplete | None = ..., chunk_size: Incomplete | None = ...) -> None: ...
|
||||||
|
async def flush(self, timeout_ms: Incomplete | None = ...) -> None: ...
|
||||||
|
async def disconnect(self, timeout_ms: int = ...) -> None: ...
|
||||||
|
async def disconnected(self, timeout_ms: int = ...) -> None: ...
|
||||||
|
async def __aenter__(self): ...
|
||||||
|
async def __aexit__(self, exc_type, exc_val, exc_traceback) -> None: ...
|
||||||
|
|
||||||
|
async def accept(connection, psm, mtu, timeout_ms): ...
|
||||||
|
async def connect(connection, psm, mtu, timeout_ms): ...
|
||||||
43
.vscode/Pico-W-Stub/aioble/peripheral.pyi
vendored
Normal file
43
.vscode/Pico-W-Stub/aioble/peripheral.pyi
vendored
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
from .core import (
|
||||||
|
ble as ble,
|
||||||
|
ensure_active as ensure_active,
|
||||||
|
log_error as log_error,
|
||||||
|
log_info as log_info,
|
||||||
|
log_warn as log_warn,
|
||||||
|
register_irq_handler as register_irq_handler,
|
||||||
|
)
|
||||||
|
from .device import Device as Device, DeviceConnection as DeviceConnection, DeviceTimeout as DeviceTimeout
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
_IRQ_CENTRAL_CONNECT: Incomplete
|
||||||
|
_IRQ_CENTRAL_DISCONNECT: Incomplete
|
||||||
|
_ADV_TYPE_FLAGS: Incomplete
|
||||||
|
_ADV_TYPE_NAME: Incomplete
|
||||||
|
_ADV_TYPE_UUID16_COMPLETE: Incomplete
|
||||||
|
_ADV_TYPE_UUID32_COMPLETE: Incomplete
|
||||||
|
_ADV_TYPE_UUID128_COMPLETE: Incomplete
|
||||||
|
_ADV_TYPE_UUID16_MORE: Incomplete
|
||||||
|
_ADV_TYPE_UUID32_MORE: Incomplete
|
||||||
|
_ADV_TYPE_UUID128_MORE: Incomplete
|
||||||
|
_ADV_TYPE_APPEARANCE: Incomplete
|
||||||
|
_ADV_TYPE_MANUFACTURER: Incomplete
|
||||||
|
_ADV_PAYLOAD_MAX_LEN: Incomplete
|
||||||
|
_incoming_connection: Incomplete
|
||||||
|
_connect_event: Incomplete
|
||||||
|
|
||||||
|
def _peripheral_irq(event, data) -> None: ...
|
||||||
|
def _peripheral_shutdown() -> None: ...
|
||||||
|
def _append(adv_data, resp_data, adv_type, value): ...
|
||||||
|
async def advertise(
|
||||||
|
interval_us,
|
||||||
|
adv_data: Incomplete | None = ...,
|
||||||
|
resp_data: Incomplete | None = ...,
|
||||||
|
connectable: bool = ...,
|
||||||
|
limited_disc: bool = ...,
|
||||||
|
br_edr: bool = ...,
|
||||||
|
name: Incomplete | None = ...,
|
||||||
|
services: Incomplete | None = ...,
|
||||||
|
appearance: int = ...,
|
||||||
|
manufacturer: Incomplete | None = ...,
|
||||||
|
timeout_ms: Incomplete | None = ...,
|
||||||
|
): ...
|
||||||
26
.vscode/Pico-W-Stub/aioble/security.pyi
vendored
Normal file
26
.vscode/Pico-W-Stub/aioble/security.pyi
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
from .core import ble as ble, log_info as log_info, log_warn as log_warn, register_irq_handler as register_irq_handler
|
||||||
|
from .device import DeviceConnection as DeviceConnection
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
_IRQ_ENCRYPTION_UPDATE: Incomplete
|
||||||
|
_IRQ_GET_SECRET: Incomplete
|
||||||
|
_IRQ_SET_SECRET: Incomplete
|
||||||
|
_IRQ_PASSKEY_ACTION: Incomplete
|
||||||
|
_IO_CAPABILITY_DISPLAY_ONLY: Incomplete
|
||||||
|
_IO_CAPABILITY_DISPLAY_YESNO: Incomplete
|
||||||
|
_IO_CAPABILITY_KEYBOARD_ONLY: Incomplete
|
||||||
|
_IO_CAPABILITY_NO_INPUT_OUTPUT: Incomplete
|
||||||
|
_IO_CAPABILITY_KEYBOARD_DISPLAY: Incomplete
|
||||||
|
_PASSKEY_ACTION_INPUT: Incomplete
|
||||||
|
_PASSKEY_ACTION_DISP: Incomplete
|
||||||
|
_PASSKEY_ACTION_NUMCMP: Incomplete
|
||||||
|
_DEFAULT_PATH: str
|
||||||
|
_secrets: Incomplete
|
||||||
|
_modified: bool
|
||||||
|
_path: Incomplete
|
||||||
|
|
||||||
|
def load_secrets(path: Incomplete | None = ...) -> None: ...
|
||||||
|
def _save_secrets(arg: Incomplete | None = ...) -> None: ...
|
||||||
|
def _security_irq(event, data): ...
|
||||||
|
def _security_shutdown() -> None: ...
|
||||||
|
async def pair(connection, bond: bool = ..., le_secure: bool = ..., mitm: bool = ..., io=..., timeout_ms: int = ...) -> None: ...
|
||||||
100
.vscode/Pico-W-Stub/aioble/server.pyi
vendored
Normal file
100
.vscode/Pico-W-Stub/aioble/server.pyi
vendored
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
from .core import (
|
||||||
|
GattError as GattError,
|
||||||
|
ble as ble,
|
||||||
|
ensure_active as ensure_active,
|
||||||
|
log_error as log_error,
|
||||||
|
log_info as log_info,
|
||||||
|
log_warn as log_warn,
|
||||||
|
register_irq_handler as register_irq_handler,
|
||||||
|
)
|
||||||
|
from .device import DeviceConnection as DeviceConnection, DeviceTimeout as DeviceTimeout
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
_registered_characteristics: Incomplete
|
||||||
|
_IRQ_GATTS_WRITE: Incomplete
|
||||||
|
_IRQ_GATTS_READ_REQUEST: Incomplete
|
||||||
|
_IRQ_GATTS_INDICATE_DONE: Incomplete
|
||||||
|
_FLAG_READ: Incomplete
|
||||||
|
_FLAG_WRITE_NO_RESPONSE: Incomplete
|
||||||
|
_FLAG_WRITE: Incomplete
|
||||||
|
_FLAG_NOTIFY: Incomplete
|
||||||
|
_FLAG_INDICATE: Incomplete
|
||||||
|
_FLAG_READ_ENCRYPTED: Incomplete
|
||||||
|
_FLAG_READ_AUTHENTICATED: Incomplete
|
||||||
|
_FLAG_READ_AUTHORIZED: Incomplete
|
||||||
|
_FLAG_WRITE_ENCRYPTED: Incomplete
|
||||||
|
_FLAG_WRITE_AUTHENTICATED: Incomplete
|
||||||
|
_FLAG_WRITE_AUTHORIZED: Incomplete
|
||||||
|
_FLAG_WRITE_CAPTURE: Incomplete
|
||||||
|
_WRITE_CAPTURE_QUEUE_LIMIT: Incomplete
|
||||||
|
|
||||||
|
def _server_irq(event, data): ...
|
||||||
|
def _server_shutdown() -> None: ...
|
||||||
|
|
||||||
|
class Service:
|
||||||
|
uuid: Incomplete
|
||||||
|
characteristics: Incomplete
|
||||||
|
def __init__(self, uuid) -> None: ...
|
||||||
|
def _tuple(self): ...
|
||||||
|
|
||||||
|
class BaseCharacteristic:
|
||||||
|
_value_handle: Incomplete
|
||||||
|
_initial: Incomplete
|
||||||
|
def _register(self, value_handle) -> None: ...
|
||||||
|
def read(self): ...
|
||||||
|
def write(self, data, send_update: bool = ...) -> None: ...
|
||||||
|
@staticmethod
|
||||||
|
def _init_capture() -> None: ...
|
||||||
|
@staticmethod
|
||||||
|
async def _run_capture_task() -> None: ...
|
||||||
|
_write_data: Incomplete
|
||||||
|
async def written(self, timeout_ms: Incomplete | None = ...): ...
|
||||||
|
def on_read(self, connection): ...
|
||||||
|
def _remote_write(conn_handle, value_handle) -> None: ...
|
||||||
|
def _remote_read(conn_handle, value_handle): ...
|
||||||
|
|
||||||
|
class Characteristic(BaseCharacteristic):
|
||||||
|
descriptors: Incomplete
|
||||||
|
_write_event: Incomplete
|
||||||
|
_write_data: Incomplete
|
||||||
|
_indicate_connection: Incomplete
|
||||||
|
_indicate_event: Incomplete
|
||||||
|
_indicate_status: Incomplete
|
||||||
|
uuid: Incomplete
|
||||||
|
flags: Incomplete
|
||||||
|
_value_handle: Incomplete
|
||||||
|
_initial: Incomplete
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
service,
|
||||||
|
uuid,
|
||||||
|
read: bool = ...,
|
||||||
|
write: bool = ...,
|
||||||
|
write_no_response: bool = ...,
|
||||||
|
notify: bool = ...,
|
||||||
|
indicate: bool = ...,
|
||||||
|
initial: Incomplete | None = ...,
|
||||||
|
capture: bool = ...,
|
||||||
|
) -> None: ...
|
||||||
|
def _tuple(self): ...
|
||||||
|
def notify(self, connection, data: Incomplete | None = ...) -> None: ...
|
||||||
|
async def indicate(self, connection, data: Incomplete | None = ..., timeout_ms: int = ...) -> None: ...
|
||||||
|
def _indicate_done(conn_handle, value_handle, status) -> None: ...
|
||||||
|
|
||||||
|
class BufferedCharacteristic(Characteristic):
|
||||||
|
_max_len: Incomplete
|
||||||
|
_append: Incomplete
|
||||||
|
def __init__(self, *args, max_len: int = ..., append: bool = ..., **kwargs) -> None: ...
|
||||||
|
def _register(self, value_handle) -> None: ...
|
||||||
|
|
||||||
|
class Descriptor(BaseCharacteristic):
|
||||||
|
_write_event: Incomplete
|
||||||
|
_write_data: Incomplete
|
||||||
|
uuid: Incomplete
|
||||||
|
flags: Incomplete
|
||||||
|
_value_handle: Incomplete
|
||||||
|
_initial: Incomplete
|
||||||
|
def __init__(self, characteristic, uuid, read: bool = ..., write: bool = ..., initial: Incomplete | None = ...) -> None: ...
|
||||||
|
def _tuple(self): ...
|
||||||
|
|
||||||
|
def register_services(*services) -> None: ...
|
||||||
33
.vscode/Pico-W-Stub/array.pyi
vendored
Normal file
33
.vscode/Pico-W-Stub/array.pyi
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
"""
|
||||||
|
Efficient arrays of numeric data.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/array.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:array` https://docs.python.org/3/library/array.html .
|
||||||
|
|
||||||
|
Supported format codes: ``b``, ``B``, ``h``, ``H``, ``i``, ``I``, ``l``,
|
||||||
|
``L``, ``q``, ``Q``, ``f``, ``d`` (the latter 2 depending on the
|
||||||
|
floating-point support).
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from typing import Any, List, Optional
|
||||||
|
|
||||||
|
class array:
|
||||||
|
"""
|
||||||
|
Create array with elements of given type. Initial contents of the
|
||||||
|
array are given by *iterable*. If it is not provided, an empty
|
||||||
|
array is created.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def extend(self, iterable) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Append new elements as contained in *iterable* to the end of
|
||||||
|
array, growing it.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def append(self, val) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Append new element *val* to the end of array, growing it.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def __init__(self, typecode, iterable: Optional[Any] = None) -> None: ...
|
||||||
7
.vscode/Pico-W-Stub/asyncio/__init__.pyi
vendored
Normal file
7
.vscode/Pico-W-Stub/asyncio/__init__.pyi
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
from .core import *
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
__version__: Incomplete
|
||||||
|
_attrs: Incomplete
|
||||||
|
|
||||||
|
def __getattr__(attr): ...
|
||||||
52
.vscode/Pico-W-Stub/asyncio/core.pyi
vendored
Normal file
52
.vscode/Pico-W-Stub/asyncio/core.pyi
vendored
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
from .task import Task as Task, TaskQueue as TaskQueue
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
class CancelledError(BaseException): ...
|
||||||
|
class TimeoutError(Exception): ...
|
||||||
|
|
||||||
|
_exc_context: Incomplete
|
||||||
|
|
||||||
|
class SingletonGenerator:
|
||||||
|
state: Incomplete
|
||||||
|
exc: Incomplete
|
||||||
|
def __init__(self) -> None: ...
|
||||||
|
def __iter__(self): ...
|
||||||
|
def __next__(self) -> None: ...
|
||||||
|
|
||||||
|
def sleep_ms(t, sgen=...): ...
|
||||||
|
def sleep(t): ...
|
||||||
|
|
||||||
|
class IOQueue:
|
||||||
|
poller: Incomplete
|
||||||
|
map: Incomplete
|
||||||
|
def __init__(self) -> None: ...
|
||||||
|
def _enqueue(self, s, idx) -> None: ...
|
||||||
|
def _dequeue(self, s) -> None: ...
|
||||||
|
def queue_read(self, s) -> None: ...
|
||||||
|
def queue_write(self, s) -> None: ...
|
||||||
|
def remove(self, task) -> None: ...
|
||||||
|
def wait_io_event(self, dt) -> None: ...
|
||||||
|
|
||||||
|
def _promote_to_task(aw): ...
|
||||||
|
def create_task(coro): ...
|
||||||
|
def run_until_complete(main_task: Incomplete | None = ...): ...
|
||||||
|
def run(coro): ...
|
||||||
|
async def _stopper() -> None: ...
|
||||||
|
|
||||||
|
_stop_task: Incomplete
|
||||||
|
|
||||||
|
class Loop:
|
||||||
|
_exc_handler: Incomplete
|
||||||
|
def create_task(coro): ...
|
||||||
|
def run_forever() -> None: ...
|
||||||
|
def run_until_complete(aw): ...
|
||||||
|
def stop() -> None: ...
|
||||||
|
def close() -> None: ...
|
||||||
|
def set_exception_handler(handler) -> None: ...
|
||||||
|
def get_exception_handler(): ...
|
||||||
|
def default_exception_handler(loop, context) -> None: ...
|
||||||
|
def call_exception_handler(context) -> None: ...
|
||||||
|
|
||||||
|
def get_event_loop(runq_len: int = ..., waitq_len: int = ...): ...
|
||||||
|
def current_task(): ...
|
||||||
|
def new_event_loop(): ...
|
||||||
21
.vscode/Pico-W-Stub/asyncio/event.pyi
vendored
Normal file
21
.vscode/Pico-W-Stub/asyncio/event.pyi
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import io
|
||||||
|
from . import core as core
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
from collections.abc import Generator
|
||||||
|
|
||||||
|
class Event:
|
||||||
|
state: bool
|
||||||
|
waiting: Incomplete
|
||||||
|
def __init__(self) -> None: ...
|
||||||
|
def is_set(self): ...
|
||||||
|
def set(self) -> None: ...
|
||||||
|
def clear(self) -> None: ...
|
||||||
|
def wait(self) -> Generator[None, None, Incomplete]: ...
|
||||||
|
|
||||||
|
class ThreadSafeFlag(io.IOBase):
|
||||||
|
state: int
|
||||||
|
def __init__(self) -> None: ...
|
||||||
|
def ioctl(self, req, flags): ...
|
||||||
|
def set(self) -> None: ...
|
||||||
|
def clear(self) -> None: ...
|
||||||
|
async def wait(self) -> Generator[Incomplete, None, None]: ...
|
||||||
13
.vscode/Pico-W-Stub/asyncio/funcs.pyi
vendored
Normal file
13
.vscode/Pico-W-Stub/asyncio/funcs.pyi
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
from . import core as core
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
from collections.abc import Generator
|
||||||
|
|
||||||
|
async def _run(waiter, aw) -> None: ...
|
||||||
|
async def wait_for(aw, timeout, sleep=...): ...
|
||||||
|
def wait_for_ms(aw, timeout): ...
|
||||||
|
|
||||||
|
class _Remove:
|
||||||
|
@staticmethod
|
||||||
|
def remove(t) -> None: ...
|
||||||
|
|
||||||
|
def gather(*aws, return_exceptions: bool = ...) -> Generator[None, None, Incomplete]: ...
|
||||||
13
.vscode/Pico-W-Stub/asyncio/lock.pyi
vendored
Normal file
13
.vscode/Pico-W-Stub/asyncio/lock.pyi
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
from . import core as core
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
from collections.abc import Generator
|
||||||
|
|
||||||
|
class Lock:
|
||||||
|
state: int
|
||||||
|
waiting: Incomplete
|
||||||
|
def __init__(self) -> None: ...
|
||||||
|
def locked(self): ...
|
||||||
|
def release(self) -> None: ...
|
||||||
|
def acquire(self) -> Generator[None, None, Incomplete]: ...
|
||||||
|
async def __aenter__(self): ...
|
||||||
|
async def __aexit__(self, exc_type, exc, tb): ...
|
||||||
36
.vscode/Pico-W-Stub/asyncio/stream.pyi
vendored
Normal file
36
.vscode/Pico-W-Stub/asyncio/stream.pyi
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
from . import core as core
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
from collections.abc import Generator
|
||||||
|
|
||||||
|
class Stream:
|
||||||
|
s: Incomplete
|
||||||
|
e: Incomplete
|
||||||
|
out_buf: bytes
|
||||||
|
def __init__(self, s, e=...) -> None: ...
|
||||||
|
def get_extra_info(self, v): ...
|
||||||
|
async def __aenter__(self): ...
|
||||||
|
async def __aexit__(self, exc_type, exc, tb) -> None: ...
|
||||||
|
def close(self) -> None: ...
|
||||||
|
async def wait_closed(self) -> None: ...
|
||||||
|
def read(self, n: int = ...) -> Generator[Incomplete, None, Incomplete]: ...
|
||||||
|
def readinto(self, buf) -> Generator[Incomplete, None, Incomplete]: ...
|
||||||
|
def readexactly(self, n) -> Generator[Incomplete, None, Incomplete]: ...
|
||||||
|
def readline(self) -> Generator[Incomplete, None, Incomplete]: ...
|
||||||
|
def write(self, buf) -> None: ...
|
||||||
|
def drain(self) -> Generator[Incomplete, None, Incomplete]: ...
|
||||||
|
|
||||||
|
StreamReader = Stream
|
||||||
|
StreamWriter = Stream
|
||||||
|
|
||||||
|
def open_connection(host, port) -> Generator[Incomplete, None, Incomplete]: ...
|
||||||
|
|
||||||
|
class Server:
|
||||||
|
async def __aenter__(self): ...
|
||||||
|
async def __aexit__(self, exc_type, exc, tb) -> None: ...
|
||||||
|
state: bool
|
||||||
|
def close(self) -> None: ...
|
||||||
|
async def wait_closed(self) -> None: ...
|
||||||
|
async def _serve(self, s, cb) -> Generator[Incomplete, None, None]: ...
|
||||||
|
|
||||||
|
async def start_server(cb, host, port, backlog: int = ...): ...
|
||||||
|
async def stream_awrite(self, buf, off: int = ..., sz: int = ...) -> None: ...
|
||||||
46
.vscode/Pico-W-Stub/binascii.pyi
vendored
Normal file
46
.vscode/Pico-W-Stub/binascii.pyi
vendored
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
"""
|
||||||
|
Binary/ASCII conversions.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/binascii.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:binascii` https://docs.python.org/3/library/binascii.html .
|
||||||
|
|
||||||
|
This module implements conversions between binary data and various
|
||||||
|
encodings of it in ASCII form (in both directions).
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from typing import Any, Optional
|
||||||
|
|
||||||
|
def crc32(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def hexlify(data, sep: Optional[Any] = None) -> bytes:
|
||||||
|
"""
|
||||||
|
Convert the bytes in the *data* object to a hexadecimal representation.
|
||||||
|
Returns a bytes object.
|
||||||
|
|
||||||
|
If the additional argument *sep* is supplied it is used as a separator
|
||||||
|
between hexadecimal values.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def unhexlify(data) -> bytes:
|
||||||
|
"""
|
||||||
|
Convert hexadecimal data to binary representation. Returns bytes string.
|
||||||
|
(i.e. inverse of hexlify)
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def b2a_base64(data, *, newline=True) -> bytes:
|
||||||
|
"""
|
||||||
|
Encode binary data in base64 format, as in `RFC 3548
|
||||||
|
<https://tools.ietf.org/html/rfc3548.html>`_. Returns the encoded data
|
||||||
|
followed by a newline character if newline is true, as a bytes object.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def a2b_base64(data) -> bytes:
|
||||||
|
"""
|
||||||
|
Decode base64-encoded data, ignoring invalid characters in the input.
|
||||||
|
Conforms to `RFC 2045 s.6.8 <https://tools.ietf.org/html/rfc2045#section-6.8>`_.
|
||||||
|
Returns a bytes object.
|
||||||
|
"""
|
||||||
|
...
|
||||||
592
.vscode/Pico-W-Stub/bluetooth.pyi
vendored
Normal file
592
.vscode/Pico-W-Stub/bluetooth.pyi
vendored
Normal file
@@ -0,0 +1,592 @@
|
|||||||
|
"""
|
||||||
|
Low-level Bluetooth radio functionality.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/bluetooth.html
|
||||||
|
|
||||||
|
This module provides an interface to a Bluetooth controller on a board.
|
||||||
|
Currently this supports Bluetooth Low Energy (BLE) in Central, Peripheral,
|
||||||
|
Broadcaster, and Observer roles, as well as GATT Server and Client and L2CAP
|
||||||
|
connection-oriented-channels. A device may operate in multiple roles
|
||||||
|
concurrently. Pairing (and bonding) is supported on some ports.
|
||||||
|
|
||||||
|
This API is intended to match the low-level Bluetooth protocol and provide
|
||||||
|
building-blocks for higher-level abstractions such as specific device types.
|
||||||
|
|
||||||
|
``Note:`` For most applications, we recommend using the higher-level
|
||||||
|
`aioble library <https://github.com/micropython/micropython-lib/tree/master/micropython/bluetooth/aioble>`_.
|
||||||
|
|
||||||
|
``Note:`` This module is still under development and its classes, functions,
|
||||||
|
methods and constants are subject to change.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from typing import Any, Optional, Tuple
|
||||||
|
|
||||||
|
FLAG_NOTIFY: int
|
||||||
|
FLAG_READ: int
|
||||||
|
FLAG_WRITE: int
|
||||||
|
FLAG_INDICATE: int
|
||||||
|
FLAG_WRITE_NO_RESPONSE: int
|
||||||
|
|
||||||
|
class UUID:
|
||||||
|
"""
|
||||||
|
Creates a UUID instance with the specified **value**.
|
||||||
|
|
||||||
|
The **value** can be either:
|
||||||
|
|
||||||
|
- A 16-bit integer. e.g. ``0x2908``.
|
||||||
|
- A 128-bit UUID string. e.g. ``'6E400001-B5A3-F393-E0A9-E50E24DCCA9E'``.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, value, /) -> None: ...
|
||||||
|
|
||||||
|
class BLE:
|
||||||
|
"""
|
||||||
|
Returns the singleton BLE object.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def gatts_notify(self, conn_handle, value_handle, data=None, /) -> None:
|
||||||
|
"""
|
||||||
|
Sends a notification request to a connected client.
|
||||||
|
|
||||||
|
If *data* is ``None`` (the default), then the current local value (as set
|
||||||
|
with :meth:`gatts_write <BLE.gatts_write>`) will be sent.
|
||||||
|
|
||||||
|
Otherwise, if *data* is not ``None``, then that value is sent to the client
|
||||||
|
as part of the notification. The local value will not be modified.
|
||||||
|
|
||||||
|
**Note:** The notification will be sent regardless of the subscription
|
||||||
|
status of the client to this characteristic.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gatts_indicate(self, conn_handle, value_handle, data=None, /) -> None:
|
||||||
|
"""
|
||||||
|
Sends a indication request to a connected client.
|
||||||
|
|
||||||
|
If *data* is ``None`` (the default), then the current local value (as set
|
||||||
|
with :meth:`gatts_write <BLE.gatts_write>`) will be sent.
|
||||||
|
|
||||||
|
Otherwise, if *data* is not ``None``, then that value is sent to the client
|
||||||
|
as part of the indication. The local value will not be modified.
|
||||||
|
|
||||||
|
On acknowledgment (or failure, e.g. timeout), the
|
||||||
|
``_IRQ_GATTS_INDICATE_DONE`` event will be raised.
|
||||||
|
|
||||||
|
**Note:** The indication will be sent regardless of the subscription
|
||||||
|
status of the client to this characteristic.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gattc_write(self, conn_handle, value_handle, data, mode=0, /) -> None:
|
||||||
|
"""
|
||||||
|
Issue a remote write to a connected server for the specified
|
||||||
|
characteristic or descriptor handle.
|
||||||
|
|
||||||
|
The argument *mode* specifies the write behaviour, with the currently
|
||||||
|
supported values being:
|
||||||
|
|
||||||
|
* ``mode=0`` (default) is a write-without-response: the write will
|
||||||
|
be sent to the remote server but no confirmation will be
|
||||||
|
returned, and no event will be raised.
|
||||||
|
* ``mode=1`` is a write-with-response: the remote server is
|
||||||
|
requested to send a response/acknowledgement that it received the
|
||||||
|
data.
|
||||||
|
|
||||||
|
If a response is received from the remote server the
|
||||||
|
``_IRQ_GATTC_WRITE_DONE`` event will be raised.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gattc_read(self, conn_handle, value_handle, /) -> None:
|
||||||
|
"""
|
||||||
|
Issue a remote read to a connected server for the specified
|
||||||
|
characteristic or descriptor handle.
|
||||||
|
|
||||||
|
When a value is available, the ``_IRQ_GATTC_READ_RESULT`` event will be
|
||||||
|
raised. Additionally, the ``_IRQ_GATTC_READ_DONE`` will be raised.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gattc_exchange_mtu(self, conn_handle, /) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Initiate MTU exchange with a connected server, using the preferred MTU
|
||||||
|
set using ``BLE.config(mtu=value)``.
|
||||||
|
|
||||||
|
The ``_IRQ_MTU_EXCHANGED`` event will be raised when MTU exchange
|
||||||
|
completes.
|
||||||
|
|
||||||
|
**Note:** MTU exchange is typically initiated by the central. When using
|
||||||
|
the BlueKitchen stack in the central role, it does not support a remote
|
||||||
|
peripheral initiating the MTU exchange. NimBLE works for both roles.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gatts_read(self, value_handle, /) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Reads the local value for this handle (which has either been written by
|
||||||
|
:meth:`gatts_write <BLE.gatts_write>` or by a remote client).
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gatts_write(self, value_handle, data, send_update=False, /) -> None:
|
||||||
|
"""
|
||||||
|
Writes the local value for this handle, which can be read by a client.
|
||||||
|
|
||||||
|
If *send_update* is ``True``, then any subscribed clients will be notified
|
||||||
|
(or indicated, depending on what they're subscribed to and which operations
|
||||||
|
the characteristic supports) about this write.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gatts_set_buffer(self, value_handle, len, append=False, /) -> None:
|
||||||
|
"""
|
||||||
|
Sets the internal buffer size for a value in bytes. This will limit the
|
||||||
|
largest possible write that can be received. The default is 20.
|
||||||
|
|
||||||
|
Setting *append* to ``True`` will make all remote writes append to, rather
|
||||||
|
than replace, the current value. At most *len* bytes can be buffered in
|
||||||
|
this way. When you use :meth:`gatts_read <BLE.gatts_read>`, the value will
|
||||||
|
be cleared after reading. This feature is useful when implementing something
|
||||||
|
like the Nordic UART Service.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gatts_register_services(self, services_definition, /) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Configures the server with the specified services, replacing any
|
||||||
|
existing services.
|
||||||
|
|
||||||
|
*services_definition* is a list of **services**, where each **service** is a
|
||||||
|
two-element tuple containing a UUID and a list of **characteristics**.
|
||||||
|
|
||||||
|
Each **characteristic** is a two-or-three-element tuple containing a UUID, a
|
||||||
|
**flags** value, and optionally a list of *descriptors*.
|
||||||
|
|
||||||
|
Each **descriptor** is a two-element tuple containing a UUID and a **flags**
|
||||||
|
value.
|
||||||
|
|
||||||
|
The **flags** are a bitwise-OR combination of the flags defined below. These
|
||||||
|
set both the behaviour of the characteristic (or descriptor) as well as the
|
||||||
|
security and privacy requirements.
|
||||||
|
|
||||||
|
The return value is a list (one element per service) of tuples (each element
|
||||||
|
is a value handle). Characteristics and descriptor handles are flattened
|
||||||
|
into the same tuple, in the order that they are defined.
|
||||||
|
|
||||||
|
The following example registers two services (Heart Rate, and Nordic UART)::
|
||||||
|
|
||||||
|
HR_UUID = bluetooth.UUID(0x180D)
|
||||||
|
HR_CHAR = (bluetooth.UUID(0x2A37), bluetooth.FLAG_READ | bluetooth.FLAG_NOTIFY,)
|
||||||
|
HR_SERVICE = (HR_UUID, (HR_CHAR,),)
|
||||||
|
UART_UUID = bluetooth.UUID('6E400001-B5A3-F393-E0A9-E50E24DCCA9E')
|
||||||
|
UART_TX = (bluetooth.UUID('6E400003-B5A3-F393-E0A9-E50E24DCCA9E'), bluetooth.FLAG_READ | bluetooth.FLAG_NOTIFY,)
|
||||||
|
UART_RX = (bluetooth.UUID('6E400002-B5A3-F393-E0A9-E50E24DCCA9E'), bluetooth.FLAG_WRITE,)
|
||||||
|
UART_SERVICE = (UART_UUID, (UART_TX, UART_RX,),)
|
||||||
|
SERVICES = (HR_SERVICE, UART_SERVICE,)
|
||||||
|
( (hr,), (tx, rx,), ) = bt.gatts_register_services(SERVICES)
|
||||||
|
|
||||||
|
The three value handles (``hr``, ``tx``, ``rx``) can be used with
|
||||||
|
:meth:`gatts_read <BLE.gatts_read>`, :meth:`gatts_write <BLE.gatts_write>`, :meth:`gatts_notify <BLE.gatts_notify>`, and
|
||||||
|
:meth:`gatts_indicate <BLE.gatts_indicate>`.
|
||||||
|
|
||||||
|
**Note:** Advertising must be stopped before registering services.
|
||||||
|
|
||||||
|
Available flags for characteristics and descriptors are::
|
||||||
|
|
||||||
|
from micropython import const
|
||||||
|
_FLAG_BROADCAST = const(0x0001)
|
||||||
|
_FLAG_READ = const(0x0002)
|
||||||
|
_FLAG_WRITE_NO_RESPONSE = const(0x0004)
|
||||||
|
_FLAG_WRITE = const(0x0008)
|
||||||
|
_FLAG_NOTIFY = const(0x0010)
|
||||||
|
_FLAG_INDICATE = const(0x0020)
|
||||||
|
_FLAG_AUTHENTICATED_SIGNED_WRITE = const(0x0040)
|
||||||
|
|
||||||
|
_FLAG_AUX_WRITE = const(0x0100)
|
||||||
|
_FLAG_READ_ENCRYPTED = const(0x0200)
|
||||||
|
_FLAG_READ_AUTHENTICATED = const(0x0400)
|
||||||
|
_FLAG_READ_AUTHORIZED = const(0x0800)
|
||||||
|
_FLAG_WRITE_ENCRYPTED = const(0x1000)
|
||||||
|
_FLAG_WRITE_AUTHENTICATED = const(0x2000)
|
||||||
|
_FLAG_WRITE_AUTHORIZED = const(0x4000)
|
||||||
|
|
||||||
|
As for the IRQs above, any required constants should be added to your Python code.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def irq(self, handler, /) -> int:
|
||||||
|
"""
|
||||||
|
Registers a callback for events from the BLE stack. The *handler* takes two
|
||||||
|
arguments, ``event`` (which will be one of the codes below) and ``data``
|
||||||
|
(which is an event-specific tuple of values).
|
||||||
|
|
||||||
|
**Note:** As an optimisation to prevent unnecessary allocations, the ``addr``,
|
||||||
|
``adv_data``, ``char_data``, ``notify_data``, and ``uuid`` entries in the
|
||||||
|
tuples are read-only memoryview instances pointing to :mod:`bluetooth`'s internal
|
||||||
|
ringbuffer, and are only valid during the invocation of the IRQ handler
|
||||||
|
function. If your program needs to save one of these values to access after
|
||||||
|
the IRQ handler has returned (e.g. by saving it in a class instance or global
|
||||||
|
variable), then it needs to take a copy of the data, either by using ``bytes()``
|
||||||
|
or ``bluetooth.UUID()``, like this::
|
||||||
|
|
||||||
|
connected_addr = bytes(addr) # equivalently: adv_data, char_data, or notify_data
|
||||||
|
matched_uuid = bluetooth.UUID(uuid)
|
||||||
|
|
||||||
|
For example, the IRQ handler for a scan result might inspect the ``adv_data``
|
||||||
|
to decide if it's the correct device, and only then copy the address data to be
|
||||||
|
used elsewhere in the program. And to print data from within the IRQ handler,
|
||||||
|
``print(bytes(addr))`` will be needed.
|
||||||
|
|
||||||
|
An event handler showing all possible events::
|
||||||
|
|
||||||
|
def bt_irq(event, data):
|
||||||
|
if event == _IRQ_CENTRAL_CONNECT:
|
||||||
|
# A central has connected to this peripheral.
|
||||||
|
conn_handle, addr_type, addr = data
|
||||||
|
elif event == _IRQ_CENTRAL_DISCONNECT:
|
||||||
|
# A central has disconnected from this peripheral.
|
||||||
|
conn_handle, addr_type, addr = data
|
||||||
|
elif event == _IRQ_GATTS_WRITE:
|
||||||
|
# A client has written to this characteristic or descriptor.
|
||||||
|
conn_handle, attr_handle = data
|
||||||
|
elif event == _IRQ_GATTS_READ_REQUEST:
|
||||||
|
# A client has issued a read. Note: this is only supported on STM32.
|
||||||
|
# Return a non-zero integer to deny the read (see below), or zero (or None)
|
||||||
|
# to accept the read.
|
||||||
|
conn_handle, attr_handle = data
|
||||||
|
elif event == _IRQ_SCAN_RESULT:
|
||||||
|
# A single scan result.
|
||||||
|
addr_type, addr, adv_type, rssi, adv_data = data
|
||||||
|
elif event == _IRQ_SCAN_DONE:
|
||||||
|
# Scan duration finished or manually stopped.
|
||||||
|
pass
|
||||||
|
elif event == _IRQ_PERIPHERAL_CONNECT:
|
||||||
|
# A successful gap_connect().
|
||||||
|
conn_handle, addr_type, addr = data
|
||||||
|
elif event == _IRQ_PERIPHERAL_DISCONNECT:
|
||||||
|
# Connected peripheral has disconnected.
|
||||||
|
conn_handle, addr_type, addr = data
|
||||||
|
elif event == _IRQ_GATTC_SERVICE_RESULT:
|
||||||
|
# Called for each service found by gattc_discover_services().
|
||||||
|
conn_handle, start_handle, end_handle, uuid = data
|
||||||
|
elif event == _IRQ_GATTC_SERVICE_DONE:
|
||||||
|
# Called once service discovery is complete.
|
||||||
|
# Note: Status will be zero on success, implementation-specific value otherwise.
|
||||||
|
conn_handle, status = data
|
||||||
|
elif event == _IRQ_GATTC_CHARACTERISTIC_RESULT:
|
||||||
|
# Called for each characteristic found by gattc_discover_services().
|
||||||
|
conn_handle, end_handle, value_handle, properties, uuid = data
|
||||||
|
elif event == _IRQ_GATTC_CHARACTERISTIC_DONE:
|
||||||
|
# Called once service discovery is complete.
|
||||||
|
# Note: Status will be zero on success, implementation-specific value otherwise.
|
||||||
|
conn_handle, status = data
|
||||||
|
elif event == _IRQ_GATTC_DESCRIPTOR_RESULT:
|
||||||
|
# Called for each descriptor found by gattc_discover_descriptors().
|
||||||
|
conn_handle, dsc_handle, uuid = data
|
||||||
|
elif event == _IRQ_GATTC_DESCRIPTOR_DONE:
|
||||||
|
# Called once service discovery is complete.
|
||||||
|
# Note: Status will be zero on success, implementation-specific value otherwise.
|
||||||
|
conn_handle, status = data
|
||||||
|
elif event == _IRQ_GATTC_READ_RESULT:
|
||||||
|
# A gattc_read() has completed.
|
||||||
|
conn_handle, value_handle, char_data = data
|
||||||
|
elif event == _IRQ_GATTC_READ_DONE:
|
||||||
|
# A gattc_read() has completed.
|
||||||
|
# Note: Status will be zero on success, implementation-specific value otherwise.
|
||||||
|
conn_handle, value_handle, status = data
|
||||||
|
elif event == _IRQ_GATTC_WRITE_DONE:
|
||||||
|
# A gattc_write() has completed.
|
||||||
|
# Note: Status will be zero on success, implementation-specific value otherwise.
|
||||||
|
conn_handle, value_handle, status = data
|
||||||
|
elif event == _IRQ_GATTC_NOTIFY:
|
||||||
|
# A server has sent a notify request.
|
||||||
|
conn_handle, value_handle, notify_data = data
|
||||||
|
elif event == _IRQ_GATTC_INDICATE:
|
||||||
|
# A server has sent an indicate request.
|
||||||
|
conn_handle, value_handle, notify_data = data
|
||||||
|
elif event == _IRQ_GATTS_INDICATE_DONE:
|
||||||
|
# A client has acknowledged the indication.
|
||||||
|
# Note: Status will be zero on successful acknowledgment, implementation-specific value otherwise.
|
||||||
|
conn_handle, value_handle, status = data
|
||||||
|
elif event == _IRQ_MTU_EXCHANGED:
|
||||||
|
# ATT MTU exchange complete (either initiated by us or the remote device).
|
||||||
|
conn_handle, mtu = data
|
||||||
|
elif event == _IRQ_L2CAP_ACCEPT:
|
||||||
|
# A new channel has been accepted.
|
||||||
|
# Return a non-zero integer to reject the connection, or zero (or None) to accept.
|
||||||
|
conn_handle, cid, psm, our_mtu, peer_mtu = data
|
||||||
|
elif event == _IRQ_L2CAP_CONNECT:
|
||||||
|
# A new channel is now connected (either as a result of connecting or accepting).
|
||||||
|
conn_handle, cid, psm, our_mtu, peer_mtu = data
|
||||||
|
elif event == _IRQ_L2CAP_DISCONNECT:
|
||||||
|
# Existing channel has disconnected (status is zero), or a connection attempt failed (non-zero status).
|
||||||
|
conn_handle, cid, psm, status = data
|
||||||
|
elif event == _IRQ_L2CAP_RECV:
|
||||||
|
# New data is available on the channel. Use l2cap_recvinto to read.
|
||||||
|
conn_handle, cid = data
|
||||||
|
elif event == _IRQ_L2CAP_SEND_READY:
|
||||||
|
# A previous l2cap_send that returned False has now completed and the channel is ready to send again.
|
||||||
|
# If status is non-zero, then the transmit buffer overflowed and the application should re-send the data.
|
||||||
|
conn_handle, cid, status = data
|
||||||
|
elif event == _IRQ_CONNECTION_UPDATE:
|
||||||
|
# The remote device has updated connection parameters.
|
||||||
|
conn_handle, conn_interval, conn_latency, supervision_timeout, status = data
|
||||||
|
elif event == _IRQ_ENCRYPTION_UPDATE:
|
||||||
|
# The encryption state has changed (likely as a result of pairing or bonding).
|
||||||
|
conn_handle, encrypted, authenticated, bonded, key_size = data
|
||||||
|
elif event == _IRQ_GET_SECRET:
|
||||||
|
# Return a stored secret.
|
||||||
|
# If key is None, return the index'th value of this sec_type.
|
||||||
|
# Otherwise return the corresponding value for this sec_type and key.
|
||||||
|
sec_type, index, key = data
|
||||||
|
return value
|
||||||
|
elif event == _IRQ_SET_SECRET:
|
||||||
|
# Save a secret to the store for this sec_type and key.
|
||||||
|
sec_type, key, value = data
|
||||||
|
return True
|
||||||
|
elif event == _IRQ_PASSKEY_ACTION:
|
||||||
|
# Respond to a passkey request during pairing.
|
||||||
|
# See gap_passkey() for details.
|
||||||
|
# action will be an action that is compatible with the configured "io" config.
|
||||||
|
# passkey will be non-zero if action is "numeric comparison".
|
||||||
|
conn_handle, action, passkey = data
|
||||||
|
|
||||||
|
|
||||||
|
The event codes are::
|
||||||
|
|
||||||
|
from micropython import const
|
||||||
|
_IRQ_CENTRAL_CONNECT = const(1)
|
||||||
|
_IRQ_CENTRAL_DISCONNECT = const(2)
|
||||||
|
_IRQ_GATTS_WRITE = const(3)
|
||||||
|
_IRQ_GATTS_READ_REQUEST = const(4)
|
||||||
|
_IRQ_SCAN_RESULT = const(5)
|
||||||
|
_IRQ_SCAN_DONE = const(6)
|
||||||
|
_IRQ_PERIPHERAL_CONNECT = const(7)
|
||||||
|
_IRQ_PERIPHERAL_DISCONNECT = const(8)
|
||||||
|
_IRQ_GATTC_SERVICE_RESULT = const(9)
|
||||||
|
_IRQ_GATTC_SERVICE_DONE = const(10)
|
||||||
|
_IRQ_GATTC_CHARACTERISTIC_RESULT = const(11)
|
||||||
|
_IRQ_GATTC_CHARACTERISTIC_DONE = const(12)
|
||||||
|
_IRQ_GATTC_DESCRIPTOR_RESULT = const(13)
|
||||||
|
_IRQ_GATTC_DESCRIPTOR_DONE = const(14)
|
||||||
|
_IRQ_GATTC_READ_RESULT = const(15)
|
||||||
|
_IRQ_GATTC_READ_DONE = const(16)
|
||||||
|
_IRQ_GATTC_WRITE_DONE = const(17)
|
||||||
|
_IRQ_GATTC_NOTIFY = const(18)
|
||||||
|
_IRQ_GATTC_INDICATE = const(19)
|
||||||
|
_IRQ_GATTS_INDICATE_DONE = const(20)
|
||||||
|
_IRQ_MTU_EXCHANGED = const(21)
|
||||||
|
_IRQ_L2CAP_ACCEPT = const(22)
|
||||||
|
_IRQ_L2CAP_CONNECT = const(23)
|
||||||
|
_IRQ_L2CAP_DISCONNECT = const(24)
|
||||||
|
_IRQ_L2CAP_RECV = const(25)
|
||||||
|
_IRQ_L2CAP_SEND_READY = const(26)
|
||||||
|
_IRQ_CONNECTION_UPDATE = const(27)
|
||||||
|
_IRQ_ENCRYPTION_UPDATE = const(28)
|
||||||
|
_IRQ_GET_SECRET = const(29)
|
||||||
|
_IRQ_SET_SECRET = const(30)
|
||||||
|
|
||||||
|
For the ``_IRQ_GATTS_READ_REQUEST`` event, the available return codes are::
|
||||||
|
|
||||||
|
_GATTS_NO_ERROR = const(0x00)
|
||||||
|
_GATTS_ERROR_READ_NOT_PERMITTED = const(0x02)
|
||||||
|
_GATTS_ERROR_WRITE_NOT_PERMITTED = const(0x03)
|
||||||
|
_GATTS_ERROR_INSUFFICIENT_AUTHENTICATION = const(0x05)
|
||||||
|
_GATTS_ERROR_INSUFFICIENT_AUTHORIZATION = const(0x08)
|
||||||
|
_GATTS_ERROR_INSUFFICIENT_ENCRYPTION = const(0x0f)
|
||||||
|
|
||||||
|
For the ``_IRQ_PASSKEY_ACTION`` event, the available actions are::
|
||||||
|
|
||||||
|
_PASSKEY_ACTION_NONE = const(0)
|
||||||
|
_PASSKEY_ACTION_INPUT = const(2)
|
||||||
|
_PASSKEY_ACTION_DISPLAY = const(3)
|
||||||
|
_PASSKEY_ACTION_NUMERIC_COMPARISON = const(4)
|
||||||
|
|
||||||
|
In order to save space in the firmware, these constants are not included on the
|
||||||
|
:mod:`bluetooth` module. Add the ones that you need from the list above to your
|
||||||
|
program.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gap_connect(self, addr_type, addr, scan_duration_ms=2000, min_conn_interval_us=None, max_conn_interval_us=None, /) -> None:
|
||||||
|
"""
|
||||||
|
Connect to a peripheral.
|
||||||
|
|
||||||
|
See :meth:`gap_scan <BLE.gap_scan>` for details about address types.
|
||||||
|
|
||||||
|
To cancel an outstanding connection attempt early, call
|
||||||
|
``gap_connect(None)``.
|
||||||
|
|
||||||
|
On success, the ``_IRQ_PERIPHERAL_CONNECT`` event will be raised. If
|
||||||
|
cancelling a connection attempt, the ``_IRQ_PERIPHERAL_DISCONNECT`` event
|
||||||
|
will be raised.
|
||||||
|
|
||||||
|
The device will wait up to *scan_duration_ms* to receive an advertising
|
||||||
|
payload from the device.
|
||||||
|
|
||||||
|
The connection interval can be configured in **micro** seconds using either
|
||||||
|
or both of *min_conn_interval_us* and *max_conn_interval_us*. Otherwise a
|
||||||
|
default interval will be chosen, typically between 30000 and 50000
|
||||||
|
microseconds. A shorter interval will increase throughput, at the expense
|
||||||
|
of power usage.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gap_advertise(self, interval_us, adv_data=None, *, resp_data=None, connectable=True) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Starts advertising at the specified interval (in **micro** seconds). This
|
||||||
|
interval will be rounded down to the nearest 625us. To stop advertising, set
|
||||||
|
*interval_us* to ``None``.
|
||||||
|
|
||||||
|
*adv_data* and *resp_data* can be any type that implements the buffer
|
||||||
|
protocol (e.g. ``bytes``, ``bytearray``, ``str``). *adv_data* is included
|
||||||
|
in all broadcasts, and *resp_data* is send in reply to an active scan.
|
||||||
|
|
||||||
|
**Note:** if *adv_data* (or *resp_data*) is ``None``, then the data passed
|
||||||
|
to the previous call to ``gap_advertise`` will be re-used. This allows a
|
||||||
|
broadcaster to resume advertising with just ``gap_advertise(interval_us)``.
|
||||||
|
To clear the advertising payload pass an empty ``bytes``, i.e. ``b''``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def config(self, param, /) -> Tuple:
|
||||||
|
"""
|
||||||
|
Get or set configuration values of the BLE interface. To get a value the
|
||||||
|
parameter name should be quoted as a string, and just one parameter is
|
||||||
|
queried at a time. To set values use the keyword syntax, and one or more
|
||||||
|
parameter can be set at a time.
|
||||||
|
|
||||||
|
Currently supported values are:
|
||||||
|
|
||||||
|
- ``'mac'``: The current address in use, depending on the current address mode.
|
||||||
|
This returns a tuple of ``(addr_type, addr)``.
|
||||||
|
|
||||||
|
See :meth:`gatts_write <BLE.gatts_write>` for details about address type.
|
||||||
|
|
||||||
|
This may only be queried while the interface is currently active.
|
||||||
|
|
||||||
|
- ``'addr_mode'``: Sets the address mode. Values can be:
|
||||||
|
|
||||||
|
* 0x00 - PUBLIC - Use the controller's public address.
|
||||||
|
* 0x01 - RANDOM - Use a generated static address.
|
||||||
|
* 0x02 - RPA - Use resolvable private addresses.
|
||||||
|
* 0x03 - NRPA - Use non-resolvable private addresses.
|
||||||
|
|
||||||
|
By default the interface mode will use a PUBLIC address if available, otherwise
|
||||||
|
it will use a RANDOM address.
|
||||||
|
|
||||||
|
- ``'gap_name'``: Get/set the GAP device name used by service 0x1800,
|
||||||
|
characteristic 0x2a00. This can be set at any time and changed multiple
|
||||||
|
times.
|
||||||
|
|
||||||
|
- ``'rxbuf'``: Get/set the size in bytes of the internal buffer used to store
|
||||||
|
incoming events. This buffer is global to the entire BLE driver and so
|
||||||
|
handles incoming data for all events, including all characteristics.
|
||||||
|
Increasing this allows better handling of bursty incoming data (for
|
||||||
|
example scan results) and the ability to receive larger characteristic values.
|
||||||
|
|
||||||
|
- ``'mtu'``: Get/set the MTU that will be used during a ATT MTU exchange. The
|
||||||
|
resulting MTU will be the minimum of this and the remote device's MTU.
|
||||||
|
ATT MTU exchange will not happen automatically (unless the remote device initiates
|
||||||
|
it), and must be manually initiated with
|
||||||
|
:meth:`gattc_exchange_mtu<BLE.gattc_exchange_mtu>`.
|
||||||
|
Use the ``_IRQ_MTU_EXCHANGED`` event to discover the MTU for a given connection.
|
||||||
|
|
||||||
|
- ``'bond'``: Sets whether bonding will be enabled during pairing. When
|
||||||
|
enabled, pairing requests will set the "bond" flag and the keys will be stored
|
||||||
|
by both devices.
|
||||||
|
|
||||||
|
- ``'mitm'``: Sets whether MITM-protection is required for pairing.
|
||||||
|
|
||||||
|
- ``'io'``: Sets the I/O capabilities of this device.
|
||||||
|
|
||||||
|
Available options are::
|
||||||
|
|
||||||
|
_IO_CAPABILITY_DISPLAY_ONLY = const(0)
|
||||||
|
_IO_CAPABILITY_DISPLAY_YESNO = const(1)
|
||||||
|
_IO_CAPABILITY_KEYBOARD_ONLY = const(2)
|
||||||
|
_IO_CAPABILITY_NO_INPUT_OUTPUT = const(3)
|
||||||
|
_IO_CAPABILITY_KEYBOARD_DISPLAY = const(4)
|
||||||
|
|
||||||
|
- ``'le_secure'``: Sets whether "LE Secure" pairing is required. Default is
|
||||||
|
false (i.e. allow "Legacy Pairing").
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def active(self, active: Optional[Any] = None, /) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Optionally changes the active state of the BLE radio, and returns the
|
||||||
|
current state.
|
||||||
|
|
||||||
|
The radio must be made active before using any other methods on this class.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gattc_discover_services(self, conn_handle, uuid=None, /) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Query a connected server for its services.
|
||||||
|
|
||||||
|
Optionally specify a service *uuid* to query for that service only.
|
||||||
|
|
||||||
|
For each service discovered, the ``_IRQ_GATTC_SERVICE_RESULT`` event will
|
||||||
|
be raised, followed by ``_IRQ_GATTC_SERVICE_DONE`` on completion.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gap_disconnect(self, conn_handle, /) -> bool:
|
||||||
|
"""
|
||||||
|
Disconnect the specified connection handle. This can either be a
|
||||||
|
central that has connected to this device (if acting as a peripheral)
|
||||||
|
or a peripheral that was previously connected to by this device (if acting
|
||||||
|
as a central).
|
||||||
|
|
||||||
|
On success, the ``_IRQ_PERIPHERAL_DISCONNECT`` or ``_IRQ_CENTRAL_DISCONNECT``
|
||||||
|
event will be raised.
|
||||||
|
|
||||||
|
Returns ``False`` if the connection handle wasn't connected, and ``True``
|
||||||
|
otherwise.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gattc_discover_descriptors(self, conn_handle, start_handle, end_handle, /) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Query a connected server for descriptors in the specified range.
|
||||||
|
|
||||||
|
For each descriptor discovered, the ``_IRQ_GATTC_DESCRIPTOR_RESULT`` event
|
||||||
|
will be raised, followed by ``_IRQ_GATTC_DESCRIPTOR_DONE`` on completion.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gattc_discover_characteristics(self, conn_handle, start_handle, end_handle, uuid=None, /) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Query a connected server for characteristics in the specified range.
|
||||||
|
|
||||||
|
Optionally specify a characteristic *uuid* to query for that
|
||||||
|
characteristic only.
|
||||||
|
|
||||||
|
You can use ``start_handle=1``, ``end_handle=0xffff`` to search for a
|
||||||
|
characteristic in any service.
|
||||||
|
|
||||||
|
For each characteristic discovered, the ``_IRQ_GATTC_CHARACTERISTIC_RESULT``
|
||||||
|
event will be raised, followed by ``_IRQ_GATTC_CHARACTERISTIC_DONE`` on completion.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def gap_scan(self, duration_ms, interval_us=1280000, window_us=11250, active=False, /) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Run a scan operation lasting for the specified duration (in **milli** seconds).
|
||||||
|
|
||||||
|
To scan indefinitely, set *duration_ms* to ``0``.
|
||||||
|
|
||||||
|
To stop scanning, set *duration_ms* to ``None``.
|
||||||
|
|
||||||
|
Use *interval_us* and *window_us* to optionally configure the duty cycle.
|
||||||
|
The scanner will run for *window_us* **micro** seconds every *interval_us*
|
||||||
|
**micro** seconds for a total of *duration_ms* **milli** seconds. The default
|
||||||
|
interval and window are 1.28 seconds and 11.25 milliseconds respectively
|
||||||
|
(background scanning).
|
||||||
|
|
||||||
|
For each scan result the ``_IRQ_SCAN_RESULT`` event will be raised, with event
|
||||||
|
data ``(addr_type, addr, adv_type, rssi, adv_data)``.
|
||||||
|
|
||||||
|
``addr_type`` values indicate public or random addresses:
|
||||||
|
* 0x00 - PUBLIC
|
||||||
|
* 0x01 - RANDOM (either static, RPA, or NRPA, the type is encoded in the address itself)
|
||||||
|
|
||||||
|
``adv_type`` values correspond to the Bluetooth Specification:
|
||||||
|
|
||||||
|
* 0x00 - ADV_IND - connectable and scannable undirected advertising
|
||||||
|
* 0x01 - ADV_DIRECT_IND - connectable directed advertising
|
||||||
|
* 0x02 - ADV_SCAN_IND - scannable undirected advertising
|
||||||
|
* 0x03 - ADV_NONCONN_IND - non-connectable undirected advertising
|
||||||
|
* 0x04 - SCAN_RSP - scan response
|
||||||
|
|
||||||
|
``active`` can be set ``True`` if you want to receive scan responses in the results.
|
||||||
|
|
||||||
|
When scanning is stopped (either due to the duration finishing or when
|
||||||
|
explicitly stopped), the ``_IRQ_SCAN_DONE`` event will be raised.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def __init__(self) -> None: ...
|
||||||
72
.vscode/Pico-W-Stub/cmath.pyi
vendored
Normal file
72
.vscode/Pico-W-Stub/cmath.pyi
vendored
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
"""
|
||||||
|
Mathematical functions for complex numbers.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/cmath.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:cmath` https://docs.python.org/3/library/cmath.html .
|
||||||
|
|
||||||
|
The ``cmath`` module provides some basic mathematical functions for
|
||||||
|
working with complex numbers.
|
||||||
|
|
||||||
|
Availability: not available on WiPy and ESP8266. Floating point support
|
||||||
|
required for this module.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from typing import Tuple
|
||||||
|
|
||||||
|
e: float
|
||||||
|
pi: float
|
||||||
|
|
||||||
|
def polar(z) -> Tuple:
|
||||||
|
"""
|
||||||
|
Returns, as a tuple, the polar form of ``z``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def sqrt(z) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Return the square-root of ``z``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def rect(r, phi) -> float:
|
||||||
|
"""
|
||||||
|
Returns the complex number with modulus ``r`` and phase ``phi``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def sin(z) -> float:
|
||||||
|
"""
|
||||||
|
Return the sine of ``z``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def exp(z) -> float:
|
||||||
|
"""
|
||||||
|
Return the exponential of ``z``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def cos(z) -> float:
|
||||||
|
"""
|
||||||
|
Return the cosine of ``z``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def phase(z) -> float:
|
||||||
|
"""
|
||||||
|
Returns the phase of the number ``z``, in the range (-pi, +pi].
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def log(z) -> float:
|
||||||
|
"""
|
||||||
|
Return the natural logarithm of ``z``. The branch cut is along the negative real axis.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def log10(z) -> float:
|
||||||
|
"""
|
||||||
|
Return the base-10 logarithm of ``z``. The branch cut is along the negative real axis.
|
||||||
|
"""
|
||||||
|
...
|
||||||
105
.vscode/Pico-W-Stub/collections.pyi
vendored
Normal file
105
.vscode/Pico-W-Stub/collections.pyi
vendored
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
"""
|
||||||
|
Collection and container types.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/collections.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:collections` https://docs.python.org/3/library/collections.html .
|
||||||
|
|
||||||
|
This module implements advanced collection and container types to
|
||||||
|
hold/accumulate various objects.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from stdlib.collections import OrderedDict as stdlib_OrderedDict, deque as stdlib_deque
|
||||||
|
from typing_extensions import NamedTuple as stdlib_NamedTuple
|
||||||
|
from typing import Any, Optional
|
||||||
|
|
||||||
|
def namedtuple(name, fields) -> stdlib_NamedTuple:
|
||||||
|
"""
|
||||||
|
This is factory function to create a new namedtuple type with a specific
|
||||||
|
name and set of fields. A namedtuple is a subclass of tuple which allows
|
||||||
|
to access its fields not just by numeric index, but also with an attribute
|
||||||
|
access syntax using symbolic field names. Fields is a sequence of strings
|
||||||
|
specifying field names. For compatibility with CPython it can also be a
|
||||||
|
a string with space-separated field named (but this is less efficient).
|
||||||
|
Example of use::
|
||||||
|
|
||||||
|
from collections import namedtuple
|
||||||
|
|
||||||
|
MyTuple = namedtuple("MyTuple", ("id", "name"))
|
||||||
|
t1 = MyTuple(1, "foo")
|
||||||
|
t2 = MyTuple(2, "bar")
|
||||||
|
print(t1.name)
|
||||||
|
assert t2.name == t2[1]
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
class OrderedDict(stdlib_OrderedDict):
|
||||||
|
"""
|
||||||
|
``dict`` type subclass which remembers and preserves the order of keys
|
||||||
|
added. When ordered dict is iterated over, keys/items are returned in
|
||||||
|
the order they were added::
|
||||||
|
|
||||||
|
from collections import OrderedDict
|
||||||
|
|
||||||
|
# To make benefit of ordered keys, OrderedDict should be initialized
|
||||||
|
# from sequence of (key, value) pairs.
|
||||||
|
d = OrderedDict([("z", 1), ("a", 2)])
|
||||||
|
# More items can be added as usual
|
||||||
|
d["w"] = 5
|
||||||
|
d["b"] = 3
|
||||||
|
for k, v in d.items():
|
||||||
|
print(k, v)
|
||||||
|
|
||||||
|
Output::
|
||||||
|
|
||||||
|
z 1
|
||||||
|
a 2
|
||||||
|
w 5
|
||||||
|
b 3
|
||||||
|
"""
|
||||||
|
|
||||||
|
def popitem(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def pop(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def values(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def setdefault(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def update(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def copy(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def clear(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def keys(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def get(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def items(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
@classmethod
|
||||||
|
def fromkeys(cls, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, *args, **kwargs) -> None: ...
|
||||||
|
|
||||||
|
class deque(stdlib_deque):
|
||||||
|
"""
|
||||||
|
Deques (double-ended queues) are a list-like container that support O(1)
|
||||||
|
appends and pops from either side of the deque. New deques are created
|
||||||
|
using the following arguments:
|
||||||
|
|
||||||
|
- *iterable* must be the empty tuple, and the new deque is created empty.
|
||||||
|
|
||||||
|
- *maxlen* must be specified and the deque will be bounded to this
|
||||||
|
maximum length. Once the deque is full, any new items added will
|
||||||
|
discard items from the opposite end.
|
||||||
|
|
||||||
|
- The optional *flags* can be 1 to check for overflow when adding items.
|
||||||
|
|
||||||
|
As well as supporting `bool` and `len`, deque objects have the following
|
||||||
|
methods:
|
||||||
|
"""
|
||||||
|
|
||||||
|
def popleft(self) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Remove and return an item from the left side of the deque.
|
||||||
|
Raises IndexError if no items are present.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def append(self, x) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Add *x* to the right side of the deque.
|
||||||
|
Raises IndexError if overflow checking is enabled and there is no more room left.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def __init__(self, iterable, maxlen, flags: Optional[Any] = None) -> None: ...
|
||||||
42
.vscode/Pico-W-Stub/cryptolib.pyi
vendored
Normal file
42
.vscode/Pico-W-Stub/cryptolib.pyi
vendored
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
"""
|
||||||
|
Cryptographic ciphers.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/cryptolib.html
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from typing import Any, Optional
|
||||||
|
|
||||||
|
class aes:
|
||||||
|
def encrypt(self, in_buf, out_buf: Optional[Any] = None) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Encrypt *in_buf*. If no *out_buf* is given result is returned as a
|
||||||
|
newly allocated `bytes` object. Otherwise, result is written into
|
||||||
|
mutable buffer *out_buf*. *in_buf* and *out_buf* can also refer
|
||||||
|
to the same mutable buffer, in which case data is encrypted in-place.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def decrypt(self, in_buf, out_buf: Optional[Any] = None) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Like `encrypt()`, but for decryption.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def __init__(self, key, mode, IV: Optional[Any] = None) -> None:
|
||||||
|
"""
|
||||||
|
Initialize cipher object, suitable for encryption/decryption. Note:
|
||||||
|
after initialization, cipher object can be use only either for
|
||||||
|
encryption or decryption. Running decrypt() operation after encrypt()
|
||||||
|
or vice versa is not supported.
|
||||||
|
|
||||||
|
Parameters are:
|
||||||
|
|
||||||
|
* *key* is an encryption/decryption key (bytes-like).
|
||||||
|
* *mode* is:
|
||||||
|
|
||||||
|
* ``1`` (or ``cryptolib.MODE_ECB`` if it exists) for Electronic Code Book (ECB).
|
||||||
|
* ``2`` (or ``cryptolib.MODE_CBC`` if it exists) for Cipher Block Chaining (CBC).
|
||||||
|
* ``6`` (or ``cryptolib.MODE_CTR`` if it exists) for Counter mode (CTR).
|
||||||
|
|
||||||
|
* *IV* is an initialization vector for CBC mode.
|
||||||
|
* For Counter mode, *IV* is the initial value for the counter.
|
||||||
|
"""
|
||||||
|
...
|
||||||
76
.vscode/Pico-W-Stub/deflate.pyi
vendored
Normal file
76
.vscode/Pico-W-Stub/deflate.pyi
vendored
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
"""
|
||||||
|
Deflate compression & decompression.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/deflate.html
|
||||||
|
|
||||||
|
This module allows compression and decompression of binary data with the
|
||||||
|
`DEFLATE algorithm <https://en.wikipedia.org/wiki/DEFLATE>`_
|
||||||
|
(commonly used in the zlib library and gzip archiver).
|
||||||
|
|
||||||
|
**Availability:**
|
||||||
|
|
||||||
|
* Added in MicroPython v1.21.
|
||||||
|
|
||||||
|
* Decompression: Enabled via the ``MICROPY_PY_DEFLATE`` build option, on by default
|
||||||
|
on ports with the "extra features" level or higher (which is most boards).
|
||||||
|
|
||||||
|
* Compression: Enabled via the ``MICROPY_PY_DEFLATE_COMPRESS`` build option, on
|
||||||
|
by default on ports with the "full features" level or higher (generally this means
|
||||||
|
you need to build your own firmware to enable this).
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
|
||||||
|
GZIP: int
|
||||||
|
RAW: int
|
||||||
|
ZLIB: int
|
||||||
|
AUTO: int
|
||||||
|
|
||||||
|
class DeflateIO:
|
||||||
|
"""
|
||||||
|
This class can be used to wrap a *stream* which is any
|
||||||
|
:term:`stream-like <stream>` object such as a file, socket, or stream
|
||||||
|
(including :class:`io.BytesIO`). It is itself a stream and implements the
|
||||||
|
standard read/readinto/write/close methods.
|
||||||
|
|
||||||
|
The *stream* must be a blocking stream. Non-blocking streams are currently
|
||||||
|
not supported.
|
||||||
|
|
||||||
|
The *format* can be set to any of the constants defined below, and defaults
|
||||||
|
to ``AUTO`` which for decompressing will auto-detect gzip or zlib streams,
|
||||||
|
and for compressing it will generate a raw stream.
|
||||||
|
|
||||||
|
The *wbits* parameter sets the base-2 logarithm of the DEFLATE dictionary
|
||||||
|
window size. So for example, setting *wbits* to ``10`` sets the window size
|
||||||
|
to 1024 bytes. Valid values are ``5`` to ``15`` inclusive (corresponding to
|
||||||
|
window sizes of 32 to 32k bytes).
|
||||||
|
|
||||||
|
If *wbits* is set to ``0`` (the default), then for compression a window size
|
||||||
|
of 256 bytes will be used (as if *wbits* was set to 8). For decompression, it
|
||||||
|
depends on the format:
|
||||||
|
|
||||||
|
* ``RAW`` will use 256 bytes (corresponding to *wbits* set to 8).
|
||||||
|
* ``ZLIB`` (or ``AUTO`` with zlib detected) will use the value from the zlib
|
||||||
|
header.
|
||||||
|
* ``GZIP`` (or ``AUTO`` with gzip detected) will use 32 kilobytes
|
||||||
|
(corresponding to *wbits* set to 15).
|
||||||
|
|
||||||
|
See the :ref:`window size <deflate_wbits>` notes below for more information
|
||||||
|
about the window size, zlib, and gzip streams.
|
||||||
|
|
||||||
|
If *close* is set to ``True`` then the underlying stream will be closed
|
||||||
|
automatically when the :class:`deflate.DeflateIO` stream is closed. This is
|
||||||
|
useful if you want to return a :class:`deflate.DeflateIO` stream that wraps
|
||||||
|
another stream and not have the caller need to know about managing the
|
||||||
|
underlying stream.
|
||||||
|
|
||||||
|
If compression is enabled, a given :class:`deflate.DeflateIO` instance
|
||||||
|
supports both reading and writing. For example, a bidirectional stream like
|
||||||
|
a socket can be wrapped, which allows for compression/decompression in both
|
||||||
|
directions.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def readline(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def readinto(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def read(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def close(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, stream, format=AUTO, wbits=0, close=False, /) -> None: ...
|
||||||
15
.vscode/Pico-W-Stub/dht.pyi
vendored
Normal file
15
.vscode/Pico-W-Stub/dht.pyi
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
class DHTBase:
|
||||||
|
pin: Incomplete
|
||||||
|
buf: Incomplete
|
||||||
|
def __init__(self, pin) -> None: ...
|
||||||
|
def measure(self) -> None: ...
|
||||||
|
|
||||||
|
class DHT11(DHTBase):
|
||||||
|
def humidity(self): ...
|
||||||
|
def temperature(self): ...
|
||||||
|
|
||||||
|
class DHT22(DHTBase):
|
||||||
|
def humidity(self): ...
|
||||||
|
def temperature(self): ...
|
||||||
15
.vscode/Pico-W-Stub/ds18x20.pyi
vendored
Normal file
15
.vscode/Pico-W-Stub/ds18x20.pyi
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
_CONVERT: Incomplete
|
||||||
|
_RD_SCRATCH: Incomplete
|
||||||
|
_WR_SCRATCH: Incomplete
|
||||||
|
|
||||||
|
class DS18X20:
|
||||||
|
ow: Incomplete
|
||||||
|
buf: Incomplete
|
||||||
|
def __init__(self, onewire) -> None: ...
|
||||||
|
def scan(self): ...
|
||||||
|
def convert_temp(self) -> None: ...
|
||||||
|
def read_scratch(self, rom): ...
|
||||||
|
def write_scratch(self, rom, buf) -> None: ...
|
||||||
|
def read_temp(self, rom): ...
|
||||||
36
.vscode/Pico-W-Stub/errno.pyi
vendored
Normal file
36
.vscode/Pico-W-Stub/errno.pyi
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
"""
|
||||||
|
System error codes.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/errno.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:errno` https://docs.python.org/3/library/errno.html .
|
||||||
|
|
||||||
|
This module provides access to symbolic error codes for `OSError` exception.
|
||||||
|
A particular inventory of codes depends on :term:`MicroPython port`.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from typing import Dict
|
||||||
|
|
||||||
|
ENOBUFS: int
|
||||||
|
ENODEV: int
|
||||||
|
ENOENT: int
|
||||||
|
EISDIR: int
|
||||||
|
EIO: int
|
||||||
|
EINVAL: int
|
||||||
|
EPERM: int
|
||||||
|
ETIMEDOUT: int
|
||||||
|
ENOMEM: int
|
||||||
|
EOPNOTSUPP: int
|
||||||
|
ENOTCONN: int
|
||||||
|
errorcode: dict
|
||||||
|
EAGAIN: int
|
||||||
|
EALREADY: int
|
||||||
|
EBADF: int
|
||||||
|
EADDRINUSE: int
|
||||||
|
EACCES: int
|
||||||
|
EINPROGRESS: int
|
||||||
|
EEXIST: int
|
||||||
|
EHOSTUNREACH: int
|
||||||
|
ECONNABORTED: int
|
||||||
|
ECONNRESET: int
|
||||||
|
ECONNREFUSED: int
|
||||||
142
.vscode/Pico-W-Stub/framebuf.pyi
vendored
Normal file
142
.vscode/Pico-W-Stub/framebuf.pyi
vendored
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
"""
|
||||||
|
Frame buffer manipulation.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/framebuf.html
|
||||||
|
|
||||||
|
This module provides a general frame buffer which can be used to create
|
||||||
|
bitmap images, which can then be sent to a display.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from typing import Any, Optional
|
||||||
|
|
||||||
|
MONO_HMSB: int
|
||||||
|
MONO_HLSB: int
|
||||||
|
RGB565: int
|
||||||
|
MONO_VLSB: int
|
||||||
|
MVLSB: int
|
||||||
|
GS2_HMSB: int
|
||||||
|
GS8: int
|
||||||
|
GS4_HMSB: int
|
||||||
|
|
||||||
|
def FrameBuffer1(*args, **kwargs) -> Incomplete: ...
|
||||||
|
|
||||||
|
class FrameBuffer:
|
||||||
|
"""
|
||||||
|
Construct a FrameBuffer object. The parameters are:
|
||||||
|
|
||||||
|
- *buffer* is an object with a buffer protocol which must be large
|
||||||
|
enough to contain every pixel defined by the width, height and
|
||||||
|
format of the FrameBuffer.
|
||||||
|
- *width* is the width of the FrameBuffer in pixels
|
||||||
|
- *height* is the height of the FrameBuffer in pixels
|
||||||
|
- *format* specifies the type of pixel used in the FrameBuffer;
|
||||||
|
permissible values are listed under Constants below. These set the
|
||||||
|
number of bits used to encode a color value and the layout of these
|
||||||
|
bits in *buffer*.
|
||||||
|
Where a color value c is passed to a method, c is a small integer
|
||||||
|
with an encoding that is dependent on the format of the FrameBuffer.
|
||||||
|
- *stride* is the number of pixels between each horizontal line
|
||||||
|
of pixels in the FrameBuffer. This defaults to *width* but may
|
||||||
|
need adjustments when implementing a FrameBuffer within another
|
||||||
|
larger FrameBuffer or screen. The *buffer* size must accommodate
|
||||||
|
an increased step size.
|
||||||
|
|
||||||
|
One must specify valid *buffer*, *width*, *height*, *format* and
|
||||||
|
optionally *stride*. Invalid *buffer* size or dimensions may lead to
|
||||||
|
unexpected errors.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def poly(self, x, y, coords, c, f: Optional[Any] = None) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Given a list of coordinates, draw an arbitrary (convex or concave) closed
|
||||||
|
polygon at the given x, y location using the given color.
|
||||||
|
|
||||||
|
The *coords* must be specified as a :mod:`array` of integers, e.g.
|
||||||
|
``array('h', [x0, y0, x1, y1, ... xn, yn])``.
|
||||||
|
|
||||||
|
The optional *f* parameter can be set to ``True`` to fill the polygon.
|
||||||
|
Otherwise just a one pixel outline is drawn.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def vline(self, x, y, h, c) -> Incomplete: ...
|
||||||
|
def pixel(self, x, y, c: Optional[Any] = None) -> Incomplete:
|
||||||
|
"""
|
||||||
|
If *c* is not given, get the color value of the specified pixel.
|
||||||
|
If *c* is given, set the specified pixel to the given color.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def text(self, s, x, y, c: Optional[Any] = None) -> None:
|
||||||
|
"""
|
||||||
|
Write text to the FrameBuffer using the the coordinates as the upper-left
|
||||||
|
corner of the text. The color of the text can be defined by the optional
|
||||||
|
argument but is otherwise a default value of 1. All characters have
|
||||||
|
dimensions of 8x8 pixels and there is currently no way to change the font.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def rect(self, x, y, w, h, c, f: Optional[Any] = None) -> None:
|
||||||
|
"""
|
||||||
|
Draw a rectangle at the given location, size and color.
|
||||||
|
|
||||||
|
The optional *f* parameter can be set to ``True`` to fill the rectangle.
|
||||||
|
Otherwise just a one pixel outline is drawn.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def scroll(self, xstep, ystep) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Shift the contents of the FrameBuffer by the given vector. This may
|
||||||
|
leave a footprint of the previous colors in the FrameBuffer.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def ellipse(self, x, y, xr, yr, c, f, m: Optional[Any] = None) -> None:
|
||||||
|
"""
|
||||||
|
Draw an ellipse at the given location. Radii *xr* and *yr* define the
|
||||||
|
geometry; equal values cause a circle to be drawn. The *c* parameter
|
||||||
|
defines the color.
|
||||||
|
|
||||||
|
The optional *f* parameter can be set to ``True`` to fill the ellipse.
|
||||||
|
Otherwise just a one pixel outline is drawn.
|
||||||
|
|
||||||
|
The optional *m* parameter enables drawing to be restricted to certain
|
||||||
|
quadrants of the ellipse. The LS four bits determine which quadrants are
|
||||||
|
to be drawn, with bit 0 specifying Q1, b1 Q2, b2 Q3 and b3 Q4. Quadrants
|
||||||
|
are numbered counterclockwise with Q1 being top right.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def line(self, x1, y1, x2, y2, c) -> None:
|
||||||
|
"""
|
||||||
|
Draw a line from a set of coordinates using the given color and
|
||||||
|
a thickness of 1 pixel. The `line` method draws the line up to
|
||||||
|
a second set of coordinates whereas the `hline` and `vline`
|
||||||
|
methods draw horizontal and vertical lines respectively up to
|
||||||
|
a given length.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def blit(self, fbuf, x, y, key=-1, palette=None) -> None:
|
||||||
|
"""
|
||||||
|
Draw another FrameBuffer on top of the current one at the given coordinates.
|
||||||
|
If *key* is specified then it should be a color integer and the
|
||||||
|
corresponding color will be considered transparent: all pixels with that
|
||||||
|
color value will not be drawn. (If the *palette* is specified then the *key*
|
||||||
|
is compared to the value from *palette*, not to the value directly from
|
||||||
|
*fbuf*.)
|
||||||
|
|
||||||
|
The *palette* argument enables blitting between FrameBuffers with differing
|
||||||
|
formats. Typical usage is to render a monochrome or grayscale glyph/icon to
|
||||||
|
a color display. The *palette* is a FrameBuffer instance whose format is
|
||||||
|
that of the current FrameBuffer. The *palette* height is one pixel and its
|
||||||
|
pixel width is the number of colors in the source FrameBuffer. The *palette*
|
||||||
|
for an N-bit source needs 2**N pixels; the *palette* for a monochrome source
|
||||||
|
would have 2 pixels representing background and foreground colors. The
|
||||||
|
application assigns a color to each pixel in the *palette*. The color of the
|
||||||
|
current pixel will be that of that *palette* pixel whose x position is the
|
||||||
|
color of the corresponding source pixel.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def hline(self, x, y, w, c) -> Incomplete: ...
|
||||||
|
def fill(self, c) -> None:
|
||||||
|
"""
|
||||||
|
Fill the entire FrameBuffer with the specified color.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def fill_rect(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, buffer, width, height, format, stride=-1, /) -> None: ...
|
||||||
75
.vscode/Pico-W-Stub/gc.pyi
vendored
Normal file
75
.vscode/Pico-W-Stub/gc.pyi
vendored
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
"""
|
||||||
|
Control the garbage collector.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/gc.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:gc` https://docs.python.org/3/library/gc.html .
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from typing import Any, Optional
|
||||||
|
|
||||||
|
def mem_alloc() -> int:
|
||||||
|
"""
|
||||||
|
Return the number of bytes of heap RAM that are allocated by Python code.
|
||||||
|
|
||||||
|
Difference to CPython
|
||||||
|
|
||||||
|
This function is MicroPython extension.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def isenabled(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def mem_free() -> int:
|
||||||
|
"""
|
||||||
|
Return the number of bytes of heap RAM that is available for Python
|
||||||
|
code to allocate, or -1 if this amount is not known.
|
||||||
|
|
||||||
|
Difference to CPython
|
||||||
|
|
||||||
|
This function is MicroPython extension.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def threshold(amount: Optional[Any] = None) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Set or query the additional GC allocation threshold. Normally, a collection
|
||||||
|
is triggered only when a new allocation cannot be satisfied, i.e. on an
|
||||||
|
out-of-memory (OOM) condition. If this function is called, in addition to
|
||||||
|
OOM, a collection will be triggered each time after *amount* bytes have been
|
||||||
|
allocated (in total, since the previous time such an amount of bytes
|
||||||
|
have been allocated). *amount* is usually specified as less than the
|
||||||
|
full heap size, with the intention to trigger a collection earlier than when the
|
||||||
|
heap becomes exhausted, and in the hope that an early collection will prevent
|
||||||
|
excessive memory fragmentation. This is a heuristic measure, the effect
|
||||||
|
of which will vary from application to application, as well as
|
||||||
|
the optimal value of the *amount* parameter.
|
||||||
|
|
||||||
|
Calling the function without argument will return the current value of
|
||||||
|
the threshold. A value of -1 means a disabled allocation threshold.
|
||||||
|
|
||||||
|
Difference to CPython
|
||||||
|
|
||||||
|
This function is a MicroPython extension. CPython has a similar
|
||||||
|
function - ``set_threshold()``, but due to different GC
|
||||||
|
implementations, its signature and semantics are different.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def collect() -> None:
|
||||||
|
"""
|
||||||
|
Run a garbage collection.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def enable() -> None:
|
||||||
|
"""
|
||||||
|
Enable automatic garbage collection.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def disable() -> None:
|
||||||
|
"""
|
||||||
|
Disable automatic garbage collection. Heap memory can still be allocated,
|
||||||
|
and garbage collection can still be initiated manually using :meth:`gc.collect`.
|
||||||
|
"""
|
||||||
|
...
|
||||||
45
.vscode/Pico-W-Stub/hashlib.pyi
vendored
Normal file
45
.vscode/Pico-W-Stub/hashlib.pyi
vendored
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
"""
|
||||||
|
Hashing algorithms.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/hashlib.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:hashlib` https://docs.python.org/3/library/hashlib.html .
|
||||||
|
|
||||||
|
This module implements binary data hashing algorithms. The exact inventory
|
||||||
|
of available algorithms depends on a board. Among the algorithms which may
|
||||||
|
be implemented:
|
||||||
|
|
||||||
|
* SHA256 - The current generation, modern hashing algorithm (of SHA2 series).
|
||||||
|
It is suitable for cryptographically-secure purposes. Included in the
|
||||||
|
MicroPython core and any board is recommended to provide this, unless
|
||||||
|
it has particular code size constraints.
|
||||||
|
|
||||||
|
* SHA1 - A previous generation algorithm. Not recommended for new usages,
|
||||||
|
but SHA1 is a part of number of Internet standards and existing
|
||||||
|
applications, so boards targeting network connectivity and
|
||||||
|
interoperability will try to provide this.
|
||||||
|
|
||||||
|
* MD5 - A legacy algorithm, not considered cryptographically secure. Only
|
||||||
|
selected boards, targeting interoperability with legacy applications,
|
||||||
|
will offer this.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from typing import Any, Optional
|
||||||
|
|
||||||
|
class sha256:
|
||||||
|
"""
|
||||||
|
Create an SHA256 hasher object and optionally feed ``data`` into it.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def digest(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def update(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, data: Optional[Any] = None) -> None: ...
|
||||||
|
|
||||||
|
class sha1:
|
||||||
|
"""
|
||||||
|
Create an SHA1 hasher object and optionally feed ``data`` into it.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def digest(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def update(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, data: Optional[Any] = None) -> None: ...
|
||||||
35
.vscode/Pico-W-Stub/heapq.pyi
vendored
Normal file
35
.vscode/Pico-W-Stub/heapq.pyi
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
"""
|
||||||
|
Heap queue algorithm.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/heapq.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:heapq` https://docs.python.org/3/library/heapq.html .
|
||||||
|
|
||||||
|
This module implements the
|
||||||
|
`min heap queue algorithm <https://en.wikipedia.org/wiki/Heap_%28data_structure%29>`_.
|
||||||
|
|
||||||
|
A heap queue is essentially a list that has its elements stored in such a way
|
||||||
|
that the first item of the list is always the smallest.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
|
||||||
|
def heappop(heap) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Pop the first item from the ``heap``, and return it. Raise ``IndexError`` if
|
||||||
|
``heap`` is empty.
|
||||||
|
|
||||||
|
The returned item will be the smallest item in the ``heap``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def heappush(heap, item) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Push the ``item`` onto the ``heap``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def heapify(x) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Convert the list ``x`` into a heap. This is an in-place operation.
|
||||||
|
"""
|
||||||
|
...
|
||||||
64
.vscode/Pico-W-Stub/io.pyi
vendored
Normal file
64
.vscode/Pico-W-Stub/io.pyi
vendored
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
"""
|
||||||
|
Input/output streams.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/io.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:io` https://docs.python.org/3/library/io.html .
|
||||||
|
|
||||||
|
This module contains additional types of `stream` (file-like) objects
|
||||||
|
and helper functions.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from stdlib.io import *
|
||||||
|
from typing import Any, IO, Optional
|
||||||
|
|
||||||
|
def open(name, mode="r", **kwargs) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Open a file. Builtin ``open()`` function is aliased to this function.
|
||||||
|
All ports (which provide access to file system) are required to support
|
||||||
|
*mode* parameter, but support for other arguments vary by port.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
class IOBase:
|
||||||
|
def __init__(self, *argv, **kwargs) -> None: ...
|
||||||
|
|
||||||
|
class StringIO(IO):
|
||||||
|
def write(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def flush(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def getvalue(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def seek(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def tell(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def readline(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def close(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def read(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def readinto(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, string: Optional[Any] = None) -> None: ...
|
||||||
|
|
||||||
|
class BytesIO(IO):
|
||||||
|
"""
|
||||||
|
In-memory file-like objects for input/output. `StringIO` is used for
|
||||||
|
text-mode I/O (similar to a normal file opened with "t" modifier).
|
||||||
|
`BytesIO` is used for binary-mode I/O (similar to a normal file
|
||||||
|
opened with "b" modifier). Initial contents of file-like objects
|
||||||
|
can be specified with *string* parameter (should be normal string
|
||||||
|
for `StringIO` or bytes object for `BytesIO`). All the usual file
|
||||||
|
methods like ``read()``, ``write()``, ``seek()``, ``flush()``,
|
||||||
|
``close()`` are available on these objects, and additionally, a
|
||||||
|
following method:
|
||||||
|
"""
|
||||||
|
|
||||||
|
def write(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def flush(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def getvalue(self) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Get the current contents of the underlying buffer which holds data.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def seek(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def tell(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def readline(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def close(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def read(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def readinto(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, string: Optional[Any] = None) -> None: ...
|
||||||
47
.vscode/Pico-W-Stub/json.pyi
vendored
Normal file
47
.vscode/Pico-W-Stub/json.pyi
vendored
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
"""
|
||||||
|
JSON encoding and decoding.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/json.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:json` https://docs.python.org/3/library/json.html .
|
||||||
|
|
||||||
|
This modules allows to convert between Python objects and the JSON
|
||||||
|
data format.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
|
||||||
|
def loads(str) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Parse the JSON *str* and return an object. Raises :exc:`ValueError` if the
|
||||||
|
string is not correctly formed.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def load(stream) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Parse the given *stream*, interpreting it as a JSON string and
|
||||||
|
deserialising the data to a Python object. The resulting object is
|
||||||
|
returned.
|
||||||
|
|
||||||
|
Parsing continues until end-of-file is encountered.
|
||||||
|
A :exc:`ValueError` is raised if the data in *stream* is not correctly formed.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def dumps(obj, separators=None) -> str:
|
||||||
|
"""
|
||||||
|
Return *obj* represented as a JSON string.
|
||||||
|
|
||||||
|
The arguments have the same meaning as in `dump`.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def dump(obj, stream, separators=None) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Serialise *obj* to a JSON string, writing it to the given *stream*.
|
||||||
|
|
||||||
|
If specified, separators should be an ``(item_separator, key_separator)``
|
||||||
|
tuple. The default is ``(', ', ': ')``. To get the most compact JSON
|
||||||
|
representation, you should specify ``(',', ':')`` to eliminate whitespace.
|
||||||
|
"""
|
||||||
|
...
|
||||||
39
.vscode/Pico-W-Stub/lwip.pyi
vendored
Normal file
39
.vscode/Pico-W-Stub/lwip.pyi
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
from _typeshed import Incomplete as Incomplete
|
||||||
|
|
||||||
|
SOCK_STREAM: int
|
||||||
|
SOCK_RAW: int
|
||||||
|
SOCK_DGRAM: int
|
||||||
|
SOL_SOCKET: int
|
||||||
|
SO_BROADCAST: int
|
||||||
|
SO_REUSEADDR: int
|
||||||
|
AF_INET6: int
|
||||||
|
AF_INET: int
|
||||||
|
IP_DROP_MEMBERSHIP: int
|
||||||
|
IPPROTO_IP: int
|
||||||
|
IP_ADD_MEMBERSHIP: int
|
||||||
|
|
||||||
|
def reset(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def print_pcbs(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def getaddrinfo(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def callback(*args, **kwargs) -> Incomplete: ...
|
||||||
|
|
||||||
|
class socket:
|
||||||
|
def recvfrom(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def recv(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def makefile(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def listen(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def settimeout(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def sendall(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def setsockopt(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def setblocking(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def sendto(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def readline(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def readinto(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def read(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def close(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def connect(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def send(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def bind(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def accept(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def write(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, *argv, **kwargs) -> None: ...
|
||||||
1193
.vscode/Pico-W-Stub/machine.pyi
vendored
Normal file
1193
.vscode/Pico-W-Stub/machine.pyi
vendored
Normal file
File diff suppressed because it is too large
Load Diff
257
.vscode/Pico-W-Stub/math.pyi
vendored
Normal file
257
.vscode/Pico-W-Stub/math.pyi
vendored
Normal file
@@ -0,0 +1,257 @@
|
|||||||
|
"""
|
||||||
|
Mathematical functions.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/math.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:math` https://docs.python.org/3/library/math.html .
|
||||||
|
|
||||||
|
The ``math`` module provides some basic mathematical functions for
|
||||||
|
working with floating-point numbers.
|
||||||
|
|
||||||
|
*Note:* On the pyboard, floating-point numbers have 32-bit precision.
|
||||||
|
|
||||||
|
Availability: not available on WiPy. Floating point support required
|
||||||
|
for this module.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from typing import Tuple
|
||||||
|
|
||||||
|
inf: float
|
||||||
|
nan: float
|
||||||
|
pi: float
|
||||||
|
e: float
|
||||||
|
tau: float
|
||||||
|
|
||||||
|
def ldexp(x, exp) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Return ``x * (2**exp)``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def lgamma(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the natural logarithm of the gamma function of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def trunc(x) -> int:
|
||||||
|
"""
|
||||||
|
Return an integer, being ``x`` rounded towards 0.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def isclose(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def gamma(x) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Return the gamma function of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def isnan(x) -> bool:
|
||||||
|
"""
|
||||||
|
Return ``True`` if ``x`` is not-a-number
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def isfinite(x) -> bool:
|
||||||
|
"""
|
||||||
|
Return ``True`` if ``x`` is finite.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def isinf(x) -> bool:
|
||||||
|
"""
|
||||||
|
Return ``True`` if ``x`` is infinite.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def sqrt(x) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Return the square root of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def sinh(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the hyperbolic sine of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def log(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the natural logarithm of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def tan(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the tangent of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def tanh(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the hyperbolic tangent of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def log2(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the base-2 logarithm of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def log10(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the base-10 logarithm of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def sin(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the sine of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def modf(x) -> Tuple:
|
||||||
|
"""
|
||||||
|
Return a tuple of two floats, being the fractional and integral parts of
|
||||||
|
``x``. Both return values have the same sign as ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def radians(x) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Return degrees ``x`` converted to radians.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def atanh(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the inverse hyperbolic tangent of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def atan2(y, x) -> float:
|
||||||
|
"""
|
||||||
|
Return the principal value of the inverse tangent of ``y/x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def atan(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the inverse tangent of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def ceil(x) -> int:
|
||||||
|
"""
|
||||||
|
Return an integer, being ``x`` rounded towards positive infinity.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def copysign(x, y) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Return ``x`` with the sign of ``y``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def frexp(x) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Decomposes a floating-point number into its mantissa and exponent.
|
||||||
|
The returned value is the tuple ``(m, e)`` such that ``x == m * 2**e``
|
||||||
|
exactly. If ``x == 0`` then the function returns ``(0.0, 0)``, otherwise
|
||||||
|
the relation ``0.5 <= abs(m) < 1`` holds.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def acos(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the inverse cosine of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def pow(x, y) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Returns ``x`` to the power of ``y``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def asinh(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the inverse hyperbolic sine of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def acosh(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the inverse hyperbolic cosine of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def asin(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the inverse sine of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def factorial(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def fabs(x) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Return the absolute value of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def expm1(x) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Return ``exp(x) - 1``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def floor(x) -> int:
|
||||||
|
"""
|
||||||
|
Return an integer, being ``x`` rounded towards negative infinity.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def fmod(x, y) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Return the remainder of ``x/y``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def cos(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the cosine of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def degrees(x) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Return radians ``x`` converted to degrees.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def cosh(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the hyperbolic cosine of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def exp(x) -> float:
|
||||||
|
"""
|
||||||
|
Return the exponential of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def erf(x) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Return the error function of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def erfc(x) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Return the complementary error function of ``x``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
190
.vscode/Pico-W-Stub/micropython.pyi
vendored
Normal file
190
.vscode/Pico-W-Stub/micropython.pyi
vendored
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
"""
|
||||||
|
Access and control MicroPython internals.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/latest/library/micropython.html
|
||||||
|
"""
|
||||||
|
|
||||||
|
# source version: v1_20_0
|
||||||
|
# origin module:: repos/micropython/docs/library/micropython.rst
|
||||||
|
|
||||||
|
from typing import Any, Callable, Optional, Tuple, TypeVar, Union
|
||||||
|
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
Const_T = TypeVar("Const_T", int, float, str, bytes, Tuple) # constant
|
||||||
|
|
||||||
|
def const(expr: Const_T) -> Const_T:
|
||||||
|
"""
|
||||||
|
Used to declare that the expression is a constant so that the compiler can
|
||||||
|
optimise it. The use of this function should be as follows::
|
||||||
|
|
||||||
|
from micropython import const
|
||||||
|
|
||||||
|
CONST_X = const(123)
|
||||||
|
CONST_Y = const(2 * CONST_X + 1)
|
||||||
|
|
||||||
|
Constants declared this way are still accessible as global variables from
|
||||||
|
outside the module they are declared in. On the other hand, if a constant
|
||||||
|
begins with an underscore then it is hidden, it is not available as a global
|
||||||
|
variable, and does not take up any memory during execution.
|
||||||
|
|
||||||
|
This `const` function is recognised directly by the MicroPython parser and is
|
||||||
|
provided as part of the :mod:`micropython` module mainly so that scripts can be
|
||||||
|
written which run under both CPython and MicroPython, by following the above
|
||||||
|
pattern.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def opt_level(level: Optional[Any] = None) -> Incomplete:
|
||||||
|
"""
|
||||||
|
If *level* is given then this function sets the optimisation level for subsequent
|
||||||
|
compilation of scripts, and returns ``None``. Otherwise it returns the current
|
||||||
|
optimisation level.
|
||||||
|
|
||||||
|
The optimisation level controls the following compilation features:
|
||||||
|
|
||||||
|
- Assertions: at level 0 assertion statements are enabled and compiled into the
|
||||||
|
bytecode; at levels 1 and higher assertions are not compiled.
|
||||||
|
- Built-in ``__debug__`` variable: at level 0 this variable expands to ``True``;
|
||||||
|
at levels 1 and higher it expands to ``False``.
|
||||||
|
- Source-code line numbers: at levels 0, 1 and 2 source-code line number are
|
||||||
|
stored along with the bytecode so that exceptions can report the line number
|
||||||
|
they occurred at; at levels 3 and higher line numbers are not stored.
|
||||||
|
|
||||||
|
The default optimisation level is usually level 0.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def alloc_emergency_exception_buf(size) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Allocate *size* bytes of RAM for the emergency exception buffer (a good
|
||||||
|
size is around 100 bytes). The buffer is used to create exceptions in cases
|
||||||
|
when normal RAM allocation would fail (eg within an interrupt handler) and
|
||||||
|
therefore give useful traceback information in these situations.
|
||||||
|
|
||||||
|
A good way to use this function is to put it at the start of your main script
|
||||||
|
(eg ``boot.py`` or ``main.py``) and then the emergency exception buffer will be active
|
||||||
|
for all the code following it.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def mem_info(verbose: Optional[Any] = None) -> None:
|
||||||
|
"""
|
||||||
|
Print information about currently used memory. If the *verbose* argument
|
||||||
|
is given then extra information is printed.
|
||||||
|
|
||||||
|
The information that is printed is implementation dependent, but currently
|
||||||
|
includes the amount of stack and heap used. In verbose mode it prints out
|
||||||
|
the entire heap indicating which blocks are used and which are free.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def qstr_info(verbose: Optional[Any] = None) -> None:
|
||||||
|
"""
|
||||||
|
Print information about currently interned strings. If the *verbose*
|
||||||
|
argument is given then extra information is printed.
|
||||||
|
|
||||||
|
The information that is printed is implementation dependent, but currently
|
||||||
|
includes the number of interned strings and the amount of RAM they use. In
|
||||||
|
verbose mode it prints out the names of all RAM-interned strings.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def stack_use() -> int:
|
||||||
|
"""
|
||||||
|
Return an integer representing the current amount of stack that is being
|
||||||
|
used. The absolute value of this is not particularly useful, rather it
|
||||||
|
should be used to compute differences in stack usage at different points.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def heap_lock() -> int: ...
|
||||||
|
def heap_unlock() -> int: ...
|
||||||
|
def heap_locked() -> bool:
|
||||||
|
"""
|
||||||
|
Lock or unlock the heap. When locked no memory allocation can occur and a
|
||||||
|
`MemoryError` will be raised if any heap allocation is attempted.
|
||||||
|
`heap_locked()` returns a true value if the heap is currently locked.
|
||||||
|
|
||||||
|
These functions can be nested, ie `heap_lock()` can be called multiple times
|
||||||
|
in a row and the lock-depth will increase, and then `heap_unlock()` must be
|
||||||
|
called the same number of times to make the heap available again.
|
||||||
|
|
||||||
|
Both `heap_unlock()` and `heap_locked()` return the current lock depth
|
||||||
|
(after unlocking for the former) as a non-negative integer, with 0 meaning
|
||||||
|
the heap is not locked.
|
||||||
|
|
||||||
|
If the REPL becomes active with the heap locked then it will be forcefully
|
||||||
|
unlocked.
|
||||||
|
|
||||||
|
Note: `heap_locked()` is not enabled on most ports by default,
|
||||||
|
requires ``MICROPY_PY_MICROPYTHON_HEAP_LOCKED``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def kbd_intr(chr) -> None:
|
||||||
|
"""
|
||||||
|
Set the character that will raise a `KeyboardInterrupt` exception. By
|
||||||
|
default this is set to 3 during script execution, corresponding to Ctrl-C.
|
||||||
|
Passing -1 to this function will disable capture of Ctrl-C, and passing 3
|
||||||
|
will restore it.
|
||||||
|
|
||||||
|
This function can be used to prevent the capturing of Ctrl-C on the
|
||||||
|
incoming stream of characters that is usually used for the REPL, in case
|
||||||
|
that stream is used for other purposes.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def schedule(func, arg) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Schedule the function *func* to be executed "very soon". The function
|
||||||
|
is passed the value *arg* as its single argument. "Very soon" means that
|
||||||
|
the MicroPython runtime will do its best to execute the function at the
|
||||||
|
earliest possible time, given that it is also trying to be efficient, and
|
||||||
|
that the following conditions hold:
|
||||||
|
|
||||||
|
- A scheduled function will never preempt another scheduled function.
|
||||||
|
- Scheduled functions are always executed "between opcodes" which means
|
||||||
|
that all fundamental Python operations (such as appending to a list)
|
||||||
|
are guaranteed to be atomic.
|
||||||
|
- A given port may define "critical regions" within which scheduled
|
||||||
|
functions will never be executed. Functions may be scheduled within
|
||||||
|
a critical region but they will not be executed until that region
|
||||||
|
is exited. An example of a critical region is a preempting interrupt
|
||||||
|
handler (an IRQ).
|
||||||
|
|
||||||
|
A use for this function is to schedule a callback from a preempting IRQ.
|
||||||
|
Such an IRQ puts restrictions on the code that runs in the IRQ (for example
|
||||||
|
the heap may be locked) and scheduling a function to call later will lift
|
||||||
|
those restrictions.
|
||||||
|
|
||||||
|
Note: If `schedule()` is called from a preempting IRQ, when memory
|
||||||
|
allocation is not allowed and the callback to be passed to `schedule()` is
|
||||||
|
a bound method, passing this directly will fail. This is because creating a
|
||||||
|
reference to a bound method causes memory allocation. A solution is to
|
||||||
|
create a reference to the method in the class constructor and to pass that
|
||||||
|
reference to `schedule()`. This is discussed in detail here
|
||||||
|
:ref:`reference documentation <isr_rules>` under "Creation of Python
|
||||||
|
objects".
|
||||||
|
|
||||||
|
There is a finite queue to hold the scheduled functions and `schedule()`
|
||||||
|
will raise a `RuntimeError` if the queue is full.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def viper(func: Callable) -> Callable:
|
||||||
|
"""
|
||||||
|
The Viper code emitter is not fully compliant. It supports special Viper native data types in pursuit of performance.
|
||||||
|
Integer processing is non-compliant because it uses machine words: arithmetic on 32 bit hardware is performed modulo 2**32.
|
||||||
|
Like the Native emitter Viper produces machine instructions but further optimisations are performed, substantially increasing
|
||||||
|
performance especially for integer arithmetic and bit manipulations.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def native(func: Callable) -> Callable:
|
||||||
|
"""
|
||||||
|
This causes the MicroPython compiler to emit native CPU opcodes rather than bytecode.
|
||||||
|
It covers the bulk of the MicroPython functionality, so most functions will require no adaptation.
|
||||||
|
See: https://docs.micropython.org/en/latest/reference/speed_python.html?highlight=viper#the-native-code-emitter
|
||||||
|
"""
|
||||||
|
...
|
||||||
1
.vscode/Pico-W-Stub/micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/INSTALLER
vendored
Normal file
1
.vscode/Pico-W-Stub/micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/INSTALLER
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
pip
|
||||||
22
.vscode/Pico-W-Stub/micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/LICENSE.md
vendored
Normal file
22
.vscode/Pico-W-Stub/micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/LICENSE.md
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2022 Jos Verlinde
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
67
.vscode/Pico-W-Stub/micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/METADATA
vendored
Normal file
67
.vscode/Pico-W-Stub/micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/METADATA
vendored
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
Metadata-Version: 2.1
|
||||||
|
Name: micropython-rp2-rpi_pico_w-stubs
|
||||||
|
Version: 1.21.0.post1
|
||||||
|
Summary: MicroPython stubs
|
||||||
|
Home-page: https://github.com/josverl/micropython-stubs#micropython-stubs
|
||||||
|
License: MIT
|
||||||
|
Author: josverl
|
||||||
|
Author-email: josverl@users.noreply.github.com
|
||||||
|
Requires-Python: >=3.8,<4.0
|
||||||
|
Classifier: Development Status :: 4 - Beta
|
||||||
|
Classifier: License :: OSI Approved :: MIT License
|
||||||
|
Classifier: Operating System :: OS Independent
|
||||||
|
Classifier: Programming Language :: Python
|
||||||
|
Classifier: Programming Language :: Python :: 3
|
||||||
|
Classifier: Programming Language :: Python :: 3.8
|
||||||
|
Classifier: Programming Language :: Python :: 3.9
|
||||||
|
Classifier: Programming Language :: Python :: 3.10
|
||||||
|
Classifier: Programming Language :: Python :: 3.11
|
||||||
|
Classifier: Programming Language :: Python :: 3 :: Only
|
||||||
|
Classifier: Programming Language :: Python :: Implementation :: MicroPython
|
||||||
|
Classifier: Topic :: Software Development :: Build Tools
|
||||||
|
Classifier: Topic :: Text Editors :: Integrated Development Environments (IDE)
|
||||||
|
Classifier: Typing :: Typed
|
||||||
|
Requires-Dist: micropython-stdlib-stubs (>=0.9.0)
|
||||||
|
Project-URL: Documentation, https://micropython-stubs.readthedocs.io/
|
||||||
|
Project-URL: Repository, https://github.com/josverl/micropython-stubs
|
||||||
|
Description-Content-Type: text/markdown
|
||||||
|
|
||||||
|
# micropython-rp2-rpi_pico_w-stubs
|
||||||
|
|
||||||
|
|
||||||
|
This is a stub-only package for MicroPython.
|
||||||
|
It is intended to be installed in a projects virtual environment to allow static type checkers and intellisense features to be used while writing Micropython code.
|
||||||
|
|
||||||
|
The version of this package is alligned the the version of the MicroPython firmware.
|
||||||
|
- Major, Minor and Patch levels are alligned to the same version as the firmware.
|
||||||
|
- The post release level is used to publish new releases of the stubs.
|
||||||
|
|
||||||
|
For `Micropython 1.17` the stubs are published as `1.17.post1` ... `1.17.post2`
|
||||||
|
for `Micropython 1.18` the stubs are published as `1.18.post1` ... `1.18.post2`
|
||||||
|
|
||||||
|
To install the latest stubs:
|
||||||
|
`pip install -I micropython-<port>-stubs` where port is the port of the MicroPython firmware.
|
||||||
|
|
||||||
|
To install the stubs for an older version, such as MicroPython 1.17:
|
||||||
|
`pip install micropython-stm32-stubs==1.17.*` which will install the last post release of the stubs for MicroPython 1.17.
|
||||||
|
|
||||||
|
|
||||||
|
As the creation of the stubs, and merging of the different types is still going though improvements, the stub packages are marked as Beta.
|
||||||
|
To upgrade stubs to the latest stubs for a specific version use `pip install micropython-stm32-stubs==1.17.* --upgrade`
|
||||||
|
|
||||||
|
If you have suggestions or find any issues with the stubs, please report them in the [MicroPython-stubs Discussions](https://github.com/Josverl/micropython-stubs/discussions)
|
||||||
|
|
||||||
|
For an overview of Micropython Stubs please see: https://micropython-stubs.readthedocs.io/en/main/
|
||||||
|
* List of all stubs : https://micropython-stubs.readthedocs.io/en/main/firmware_grp.html
|
||||||
|
|
||||||
|
Included stubs:
|
||||||
|
* Merged stubs from `stubs/micropython-v1_21_0-rp2-rpi_pico_w-merged`
|
||||||
|
* Frozen stubs from `stubs/micropython-v1_21_0-frozen/rp2/RPI_PICO_W`
|
||||||
|
* Core stubs from `stubs/micropython-core`
|
||||||
|
|
||||||
|
|
||||||
|
origin | Family | Port | Board | Version
|
||||||
|
-------|--------|------|-------|--------
|
||||||
|
Documentation | micropython | - | - | v1.21.0
|
||||||
|
Core | micropython | rp2 | - | v1.21.0
|
||||||
|
|
||||||
99
.vscode/Pico-W-Stub/micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/RECORD
vendored
Normal file
99
.vscode/Pico-W-Stub/micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/RECORD
vendored
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
__builtins__.pyi,sha256=SRa_5xpV_qKoNdAgXY1G1TGP59HAYvZxp-ew4M2s3dY,1068
|
||||||
|
_asyncio.pyi,sha256=oJgEZ1Axm6cN0eO1Ke7oj5YckMoicmwKfUO9vL_Y810,416
|
||||||
|
_boot.pyi,sha256=sE1k2jzwUqn1o5YjnKlavj6468D8XQNhJNJ69gVrdtg,71
|
||||||
|
_boot_fat.pyi,sha256=sE1k2jzwUqn1o5YjnKlavj6468D8XQNhJNJ69gVrdtg,71
|
||||||
|
_onewire.pyi,sha256=_BXH4KbavKcoxnFA9OF24eERDydSk7EfXlx6N2mlBw8,343
|
||||||
|
_rp2.pyi,sha256=MCGcgPRjp_mQlh3SN7TWalfzSXP6GAC2ojkCFPpSQj4,1556
|
||||||
|
_thread.pyi,sha256=8qtf48y90MbHs4wEY_eSDeZ7QP__qf5DnYSJa7r18Ps,953
|
||||||
|
aioble/__init__.pyi,sha256=Wjhrff1BWzqTqQh5pMss5q9gT51FhkzMF3tN_QV1cGc,600
|
||||||
|
aioble/central.pyi,sha256=hZmbJnu3ccyO9Z9zjd29KiW6CGTvBmsNJx2Nv1nzLzo,2448
|
||||||
|
aioble/client.pyi,sha256=KkXt3661i_eKYozYTW1BaZkZjbpOhrhfK1SBxKpC0eo,4180
|
||||||
|
aioble/core.pyi,sha256=juai87amOQhoM_Vum3OTUcbkNiQVhXT3mYNyGzLLhe0,520
|
||||||
|
aioble/device.pyi,sha256=7lzYKge6yfFNWwmwyViUQgEClY6lVXWKPneR4oCtifc,2311
|
||||||
|
aioble/l2cap.pyi,sha256=k4NiXgzbvI25TqyfPbuWfu_v0KmF2dVXGtt3FuaicAs,1509
|
||||||
|
aioble/peripheral.pyi,sha256=Rz6k4Jpk-_h6r_BAXp6-rwfnPMRcNJ8KT1uhiujugwM,1425
|
||||||
|
aioble/security.pyi,sha256=-POdQrFOH67f9vtr2vbrf5U4TdZzipfx_qzRWDo6wEM,1071
|
||||||
|
aioble/server.pyi,sha256=Wd4ESEM63-A-7q3sPS3ed6Pl19j4DVh112C2WqUCaxM,3364
|
||||||
|
array.pyi,sha256=ZPtcObYk-XaI4AknOYrfMOJPXOS2ho0p35xdCgYcuVQ,1090
|
||||||
|
asyncio/__init__.pyi,sha256=fa4aomSb_KMbJVCimrP6IfegajK_KSN8muiH_lbqc7k,132
|
||||||
|
asyncio/core.pyi,sha256=xzNDXF3b6zq-OGz22ZPoPIJ_m5TVxgSg0YfUmG_CDzY,1530
|
||||||
|
asyncio/event.pyi,sha256=fFBZxUa_PzdiiE8I14F9IZeqg9lJgIAH8s--6SBd-9E,623
|
||||||
|
asyncio/funcs.pyi,sha256=3uEqPbVQPEqsaids5pFDkvmYUpufmkw4XuoyjwrouvI,390
|
||||||
|
asyncio/lock.pyi,sha256=QF9HAL_ayvACAPYG9Rd2kB0-WeUFYPZazG-MFFVSvtE,414
|
||||||
|
asyncio/stream.pyi,sha256=Uih1xMqHeZY4RwBQ4g-ut3_NauUjF10yxjGvh4Z3zeQ,1427
|
||||||
|
binascii.pyi,sha256=kOai4wTFKZ1BQkyHe5WO2fkRDGST6eEetLS3KdtQ388,1488
|
||||||
|
bluetooth.pyi,sha256=eKIXx2TJHUUHtKsSL4NawmGdnp02pCLbURKMQzSPvv0,30033
|
||||||
|
cmath.pyi,sha256=Hvtu5G3iSwPeuJHZLWliHC3_g07MtMBEVErlOCRXqO0,1529
|
||||||
|
collections.pyi,sha256=veeBTws6XDnpGS2N6sh0lKECaVflUC61SkJXbeakdeY,3966
|
||||||
|
cryptolib.pyi,sha256=pV8vbhqweB83T5J70RwDAFpn9rNJSkHH5YZbS23EJ98,1739
|
||||||
|
deflate.pyi,sha256=xraLamaDJ2rDZtVYjXLKlIM-F-E1xf8x4oA3qEgqeDM,3311
|
||||||
|
dht.pyi,sha256=zamvhZo46pXwloiPKKlldLlMYmb7waNyZE1aeUnz-vA,344
|
||||||
|
ds18x20.pyi,sha256=-BUsQj1Y155ooBHsobP6SzzNqWrw3SO8wnH3EpI9Z0A,404
|
||||||
|
errno.pyi,sha256=fT9TQhrfWRbRou7wVcyJQWPysPh372koMw_GNZCC7SU,777
|
||||||
|
framebuf.pyi,sha256=AlWAUXju3GDe8cD5SUFMb3iz90uLkbFet0BS64eDKUg,6474
|
||||||
|
gc.pyi,sha256=rh6cpwqew57KbQm6aD92AY0cb0mSPM8KFrqxjQpLX6I,2524
|
||||||
|
hashlib.pyi,sha256=9b65Uc6P92RHUGIgf00qCHOb2KSytlkRUnSNEj8q4r8,1743
|
||||||
|
heapq.pyi,sha256=JE1S9UQ38DvuchjejRgb65S_tAYvK8CYYpQT4vEl4JA,1000
|
||||||
|
io.pyi,sha256=ltx99WnM7_72vpSIRbTiiSh9Z5D90SbCeKaNrGISsOs,2702
|
||||||
|
json.pyi,sha256=mP4C0XMgUt1ZcT7AQSteCY-n0rd0bREU_dnSQnjO5d0,1454
|
||||||
|
lwip.pyi,sha256=0vIYgPwL5EnAbcoS1U2p_8e1SgPWiIYNevZDxMrO0kk,1582
|
||||||
|
machine.pyi,sha256=HVtm4Fkv-HfqGxcE0koQVerU7acXqGkYBf8SKCKMPoM,50379
|
||||||
|
math.pyi,sha256=KgjOuv3rpLNWcKWe7fVkB0PQ0Spv2VsBeE-pPhWNCWs,4827
|
||||||
|
micropython.pyi,sha256=a72FE6dfhvby6MIVPeTOPcgh46wsJUyRJr4W4TJsGKA,8423
|
||||||
|
micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/LICENSE.md,sha256=EerY3Evf4ZqwZBZMGIokOHR70txtsAlS_GGHuxmxUJY,1092
|
||||||
|
micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/METADATA,sha256=i_ZZ0I4ExOQn4KCrRnXpajKX5Rdco9aYtYIPJdqAcds,3225
|
||||||
|
micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/RECORD,,
|
||||||
|
micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||||
|
micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
|
||||||
|
mip/__init__.pyi,sha256=Zd0De2fcvpCue3E5iPFUmmXdpf_IeciR9Pty29Id_fk,598
|
||||||
|
neopixel.pyi,sha256=jOhE-kR8bRy0dEwqFLLY3Z7v7dp0n2XFwXTCwty0TuY,448
|
||||||
|
network.pyi,sha256=OQjwBgmxsx5ICq3GCOL3vzqIfUBb4X_gUTEPJ9PWIQQ,7633
|
||||||
|
ntptime.pyi,sha256=CmHJaGQFWjMig6JCTnWF0tY0KIw6jFWN362TnJWaWZQ,72
|
||||||
|
onewire.pyi,sha256=DgLSo0kBX1ox2Qm0x76XY00m2x17GM0uh8J4GWU1Tgs,617
|
||||||
|
os.pyi,sha256=BNYJHi5PymNeepTYUD27GoUDmXWrAreN3bIiU8-sB64,9677
|
||||||
|
platform.pyi,sha256=3xuJleRh1wBIkS51WeiUkfQtwgYK1CLjDqXteBQIWaY,1463
|
||||||
|
random.pyi,sha256=GDIgpkmplAsckapDEHlkkRdsRq8fCS_hBBRCS5gFmZI,2687
|
||||||
|
requests.pyi,sha256=Mk3u-Y3RUz3YXbe8bkC5gzNE12dF8Z7SGEp0-lhckLQ,609
|
||||||
|
requests/__init__.pyi,sha256=yNYrzq9TMRID3tAXLhHRRdzaiku2o6OfjDXjaF2bhYA,739
|
||||||
|
rp2.pyi,sha256=ghYwOcTINmxwfGdaL3tE1z5soZvskgoBbjvSLiuOb2E,1918
|
||||||
|
select.pyi,sha256=LKJ75d0F4BJg_7VAH3L07H1qqG3IkLuVEc82j-xMFWM,4114
|
||||||
|
socket.pyi,sha256=YUTOaiosablCnk-corhGdTRNpQScrllJxdw9pZyWrYo,11622
|
||||||
|
ssl.pyi,sha256=u94PkXN_NoaRnj2bBdMFq2x7JUHVmjeJcA8tvL1wMyI,3758
|
||||||
|
struct.pyi,sha256=4Mf6SQIchLMnVNPnFG-iNgeIqqpaAYx89xvz1FAKJQA,4316
|
||||||
|
sys.pyi,sha256=aL8EhWS78hy24Ir-y4QWB6QYdj5hYVooEiNQZ-MxMK0,1442
|
||||||
|
time.pyi,sha256=Df5LIT2n7WwXRXjLKBlqQ7g0ZHsQe1mnkTdyKyAtYno,13313
|
||||||
|
uarray.pyi,sha256=ZPtcObYk-XaI4AknOYrfMOJPXOS2ho0p35xdCgYcuVQ,1090
|
||||||
|
uasyncio.pyi,sha256=eu4a7KxASOh_jGsRn7zmGtUt2rJYtOpjVuGYB4ty4fc,28
|
||||||
|
uasyncio/__init__.pyi,sha256=bmpai6ZIJXDZ00aZz11BZZ92VGbfdQwqUL1jmUz3ZHU,2015
|
||||||
|
uasyncio/core.pyi,sha256=6mmEJjdYJhiYRHY4c4Hs47AYuY2zEq_ZJXitr4XSlR8,1029
|
||||||
|
uasyncio/event.pyi,sha256=OGzLIKk8AkbwIMK5l5CPy4QZTNc0uFQJzUftEgeUOzQ,580
|
||||||
|
uasyncio/funcs.pyi,sha256=rHBK8jMGD6X6rvpy7jYMCukHJ1SxFg7GfAxlXug_XX0,147
|
||||||
|
uasyncio/lock.pyi,sha256=LQ6j1whw6Oe2cRGT_gsQXkd16UrnsB5p33q8X73l220,259
|
||||||
|
uasyncio/stream.pyi,sha256=89XP2eqkvEmo3VZTNC1V0IAne8b_xEkPJQfkiN0i6Mg,1746
|
||||||
|
ubinascii.pyi,sha256=kOai4wTFKZ1BQkyHe5WO2fkRDGST6eEetLS3KdtQ388,1488
|
||||||
|
ubluetooth.pyi,sha256=eKIXx2TJHUUHtKsSL4NawmGdnp02pCLbURKMQzSPvv0,30033
|
||||||
|
ucollections.pyi,sha256=veeBTws6XDnpGS2N6sh0lKECaVflUC61SkJXbeakdeY,3966
|
||||||
|
ucryptolib.pyi,sha256=pV8vbhqweB83T5J70RwDAFpn9rNJSkHH5YZbS23EJ98,1739
|
||||||
|
uctypes.pyi,sha256=tUGuvBHmFbcLBOZCHZ--OKBe6dZdee-8B8ALYbTuV2Q,2417
|
||||||
|
uerrno.pyi,sha256=fT9TQhrfWRbRou7wVcyJQWPysPh372koMw_GNZCC7SU,777
|
||||||
|
uhashlib.pyi,sha256=9b65Uc6P92RHUGIgf00qCHOb2KSytlkRUnSNEj8q4r8,1743
|
||||||
|
uheapq.pyi,sha256=JE1S9UQ38DvuchjejRgb65S_tAYvK8CYYpQT4vEl4JA,1000
|
||||||
|
uio.pyi,sha256=ltx99WnM7_72vpSIRbTiiSh9Z5D90SbCeKaNrGISsOs,2702
|
||||||
|
ujson.pyi,sha256=mP4C0XMgUt1ZcT7AQSteCY-n0rd0bREU_dnSQnjO5d0,1454
|
||||||
|
umachine.pyi,sha256=HVtm4Fkv-HfqGxcE0koQVerU7acXqGkYBf8SKCKMPoM,50379
|
||||||
|
uos.pyi,sha256=BNYJHi5PymNeepTYUD27GoUDmXWrAreN3bIiU8-sB64,9677
|
||||||
|
uplatform.pyi,sha256=3xuJleRh1wBIkS51WeiUkfQtwgYK1CLjDqXteBQIWaY,1463
|
||||||
|
urandom.pyi,sha256=GDIgpkmplAsckapDEHlkkRdsRq8fCS_hBBRCS5gFmZI,2687
|
||||||
|
ure.pyi,sha256=bLeXSxERwfWOsjH_TCaRE4bcguKddfOgSAf2Bw9Fu7o,239
|
||||||
|
urequests.pyi,sha256=eu4a7KxASOh_jGsRn7zmGtUt2rJYtOpjVuGYB4ty4fc,28
|
||||||
|
uselect.pyi,sha256=LKJ75d0F4BJg_7VAH3L07H1qqG3IkLuVEc82j-xMFWM,4114
|
||||||
|
usocket.pyi,sha256=YUTOaiosablCnk-corhGdTRNpQScrllJxdw9pZyWrYo,11622
|
||||||
|
ussl.pyi,sha256=u94PkXN_NoaRnj2bBdMFq2x7JUHVmjeJcA8tvL1wMyI,3758
|
||||||
|
ustruct.pyi,sha256=4Mf6SQIchLMnVNPnFG-iNgeIqqpaAYx89xvz1FAKJQA,4316
|
||||||
|
usys.pyi,sha256=aL8EhWS78hy24Ir-y4QWB6QYdj5hYVooEiNQZ-MxMK0,1442
|
||||||
|
utime.pyi,sha256=Df5LIT2n7WwXRXjLKBlqQ7g0ZHsQe1mnkTdyKyAtYno,13313
|
||||||
|
uwebsocket.pyi,sha256=1wiEl4cRkoZE4jwWC-38w-Aowz3W5JZuv4KXHDYhsr8,469
|
||||||
|
webrepl.pyi,sha256=Du-Qx0WvAvNFp5E6NG7a2lJv7m5z7KEWpUNRTCZmVO4,513
|
||||||
|
webrepl_setup.pyi,sha256=3AjgA3EbRBgj6rUkxc_isYHihM-pCGnVANegahw1jfE,232
|
||||||
|
websocket.pyi,sha256=1wiEl4cRkoZE4jwWC-38w-Aowz3W5JZuv4KXHDYhsr8,469
|
||||||
0
.vscode/Pico-W-Stub/micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/REQUESTED
vendored
Normal file
0
.vscode/Pico-W-Stub/micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/REQUESTED
vendored
Normal file
4
.vscode/Pico-W-Stub/micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/WHEEL
vendored
Normal file
4
.vscode/Pico-W-Stub/micropython_rp2_rpi_pico_w_stubs-1.21.0.post1.dist-info/WHEEL
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: poetry-core 1.7.0
|
||||||
|
Root-Is-Purelib: true
|
||||||
|
Tag: py3-none-any
|
||||||
1
.vscode/Pico-W-Stub/micropython_stdlib_stubs-1.0.0.dist-info/INSTALLER
vendored
Normal file
1
.vscode/Pico-W-Stub/micropython_stdlib_stubs-1.0.0.dist-info/INSTALLER
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
pip
|
||||||
239
.vscode/Pico-W-Stub/micropython_stdlib_stubs-1.0.0.dist-info/LICENSE.md
vendored
Normal file
239
.vscode/Pico-W-Stub/micropython_stdlib_stubs-1.0.0.dist-info/LICENSE.md
vendored
Normal file
@@ -0,0 +1,239 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2023 Jos Verlinde
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||||
|
Parts of this package are licenced are licensed under different licenses , reproduced below.
|
||||||
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||||
|
|
||||||
|
The "typeshed" project is licensed under the terms of the Apache license, as
|
||||||
|
reproduced below.
|
||||||
|
|
||||||
|
= = = = =
|
||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
|
||||||
|
= = = = =
|
||||||
|
|
||||||
|
Parts of typeshed are licensed under different licenses (like the MIT
|
||||||
|
license), reproduced below.
|
||||||
|
|
||||||
|
= = = = =
|
||||||
|
|
||||||
|
The MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2015 Jukka Lehtosalo and contributors
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
to deal in the Software without restriction, including without limitation
|
||||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
= = = = =
|
||||||
39
.vscode/Pico-W-Stub/micropython_stdlib_stubs-1.0.0.dist-info/METADATA
vendored
Normal file
39
.vscode/Pico-W-Stub/micropython_stdlib_stubs-1.0.0.dist-info/METADATA
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
Metadata-Version: 2.1
|
||||||
|
Name: micropython-stdlib-stubs
|
||||||
|
Version: 1.0.0
|
||||||
|
Summary: Micropython stdlib is a reduced and augmented copy of typeshed's stdlib for use by MicroPython stub packages
|
||||||
|
Home-page: https://github.com/josverl/micropython-stubs#micropython-stubs
|
||||||
|
License: MIT
|
||||||
|
Author: josverl
|
||||||
|
Author-email: josverl@users.noreply.github.com
|
||||||
|
Requires-Python: >=3.8,<4.0
|
||||||
|
Classifier: Development Status :: 4 - Beta
|
||||||
|
Classifier: License :: OSI Approved :: MIT License
|
||||||
|
Classifier: Operating System :: OS Independent
|
||||||
|
Classifier: Programming Language :: Python
|
||||||
|
Classifier: Programming Language :: Python :: 3
|
||||||
|
Classifier: Programming Language :: Python :: 3.8
|
||||||
|
Classifier: Programming Language :: Python :: 3.9
|
||||||
|
Classifier: Programming Language :: Python :: 3.10
|
||||||
|
Classifier: Programming Language :: Python :: 3.11
|
||||||
|
Classifier: Programming Language :: Python :: 3 :: Only
|
||||||
|
Classifier: Programming Language :: Python :: Implementation :: MicroPython
|
||||||
|
Classifier: Topic :: Software Development :: Build Tools
|
||||||
|
Classifier: Topic :: Text Editors :: Integrated Development Environments (IDE)
|
||||||
|
Classifier: Typing :: Typed
|
||||||
|
Project-URL: Documentation, https://micropython-stubs.readthedocs.io/
|
||||||
|
Project-URL: Repository, https://github.com/josverl/micropython-stubs
|
||||||
|
Description-Content-Type: text/markdown
|
||||||
|
|
||||||
|
|
||||||
|
A limited size copy of typesheds stdlib directory.
|
||||||
|
https://github.com/python/typeshed/tree/main/stdlib
|
||||||
|
|
||||||
|
This is used as a dependency in the micropython-*-stub packages to allow overriding of some of the stdlib modules with micropython specific implementations.
|
||||||
|
|
||||||
|
If you have suggestions or find any issues with the stubs, please report them in the [MicroPython-stubs Discussions](https://github.com/Josverl/micropython-stubs/discussions)
|
||||||
|
|
||||||
|
For an overview of Micropython Stubs please see: https://micropython-stubs.readthedocs.io/en/main/
|
||||||
|
* List of all stubs : https://micropython-stubs.readthedocs.io/en/main/firmware_grp.html
|
||||||
|
|
||||||
|
|
||||||
68
.vscode/Pico-W-Stub/micropython_stdlib_stubs-1.0.0.dist-info/RECORD
vendored
Normal file
68
.vscode/Pico-W-Stub/micropython_stdlib_stubs-1.0.0.dist-info/RECORD
vendored
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
micropython_stdlib_stubs-1.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
micropython_stdlib_stubs-1.0.0.dist-info/LICENSE.md,sha256=XnIlPftszZeoPSWf1jwR9a1w2zp3zOL_-oC0qRi-gbE,13067
|
||||||
|
micropython_stdlib_stubs-1.0.0.dist-info/METADATA,sha256=KNci2h2_liQGHy_8lwV89mZaWIbUFW0pxIcrvP8mJ1Y,1908
|
||||||
|
micropython_stdlib_stubs-1.0.0.dist-info/RECORD,,
|
||||||
|
micropython_stdlib_stubs-1.0.0.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
|
||||||
|
stdlib/__future__.pyi,sha256=s-Y8IJP5L0EswG_QSR_xENtt9dEC0ItL_aslaA1UmME,951
|
||||||
|
stdlib/_ast.pyi,sha256=ba_Kp76gZrGxVzrJDXs48Mqx6zYCJ-TFw23Ef0hwDSs,15249
|
||||||
|
stdlib/_codecs.pyi,sha256=wSOMpfy-2VFBVy9uqzVqMvLP1rfFv94z4GOCtONwdsc,7283
|
||||||
|
stdlib/_collections_abc.pyi,sha256=_KGWOxzKJOU2gQu4vQ66zyoknNHWOHg5VElIrB-GFpY,2204
|
||||||
|
stdlib/_decimal.pyi,sha256=_kl9Zl3aws7sXZH8n5Nw885SYCrYhNNThB9IJ939lGs,14057
|
||||||
|
stdlib/_typeshed/__init__.pyi,sha256=dxOvbssi4kLrgRJ-tlhZki85eDQ4vVJ5z3DZ7-YH3KM,10964
|
||||||
|
stdlib/_typeshed/dbapi.pyi,sha256=BJz51q_GDfs3yYJa18jemTilsBKs-m7jV-5ZfM_7owA,1675
|
||||||
|
stdlib/_typeshed/wsgi.pyi,sha256=iExnjwtr89qEPnoCVG48EtM8OeCJ70WGXyAUJwmu0O4,1677
|
||||||
|
stdlib/_typeshed/xml.pyi,sha256=Ffv4MfMivR0nrzVZxli93eddTSRcZR8itwNKdc0ZZnQ,499
|
||||||
|
stdlib/abc.pyi,sha256=NCUDS1byk9ykHiqN1WRB0Ofyewm25MFOj12k-uiGugo,1997
|
||||||
|
stdlib/asyncio/__init__.pyi,sha256=Rha03nC28gVISpLc2COjbPX--6UF7Sq4qIa-G6pkjRw,1266
|
||||||
|
stdlib/asyncio/base_events.pyi,sha256=62qVPV4W7902jhyalPHXk1Zd2WTHVKgoHpN4r3sCW9A,19890
|
||||||
|
stdlib/asyncio/base_futures.pyi,sha256=cHkQsNjGfzBjHZgbyPnAvlsvFYCxOCocJ_mHQVx0HZ4,768
|
||||||
|
stdlib/asyncio/base_tasks.pyi,sha256=PYv3qwMz2WIqDs3GGdLTaJfiJBTuUwIK0PUEKHIl9Uc,413
|
||||||
|
stdlib/asyncio/constants.pyi,sha256=6QF1yNVLZmHDjtnuXStdw-8SWnxzQX8SXn5SnAqKvDs,599
|
||||||
|
stdlib/asyncio/coroutines.pyi,sha256=hRcymXIP0CVXqBpRoDzGtFdLHuTQXbO2y0Kap0d3ls0,1120
|
||||||
|
stdlib/asyncio/events.pyi,sha256=vPoqrxAVQwVfzv18BMjD71LpX2riA7J1IYj9t5U3WWQ,24512
|
||||||
|
stdlib/asyncio/exceptions.pyi,sha256=Sp-bv5S0sVEb11niAgCtX4D2-zoECgJL-EHiGxC0ke4,1039
|
||||||
|
stdlib/asyncio/format_helpers.pyi,sha256=7bHuuROgjnZAgQxjgG1IJrB_RH_PQymZ4c7BUCNt9YY,907
|
||||||
|
stdlib/asyncio/futures.pyi,sha256=L27XOkdyEAmEFHPimch3HWY6bzsWSvViUxmVXr1rJIE,2717
|
||||||
|
stdlib/asyncio/locks.pyi,sha256=ZmCUTwT0Urzu0X8kP691Dva3t42fdiG62gwMDpyyQBU,4203
|
||||||
|
stdlib/asyncio/log.pyi,sha256=--UJmDmbuqm1EdrcBW5c94k3pzoNwlZKjsqn-ckSpPA,42
|
||||||
|
stdlib/asyncio/mixins.pyi,sha256=JUtyAosLnudv46MZaTZvigzn5eoLZnVHajWTSOJ_CQY,242
|
||||||
|
stdlib/asyncio/proactor_events.pyi,sha256=q0tMiV-y81mJh16xcXa21hmlidXyULUn2C9FY6_uQ3k,3009
|
||||||
|
stdlib/asyncio/protocols.pyi,sha256=3ooDCGHhxxYPcM5o20stbqOPNd-RBbiIDNk4ungvJqU,1665
|
||||||
|
stdlib/asyncio/queues.pyi,sha256=TntiRYcbhHQ8pFYG9tmD6p9WUbE-s6kBPlYEzu_oVc8,1310
|
||||||
|
stdlib/asyncio/runners.pyi,sha256=BNNnBWEveWcf-Qe1QoAe99LD4vmWKHdoMSXe2Rph098,1288
|
||||||
|
stdlib/asyncio/selector_events.pyi,sha256=-40IJS-J9MsqcwKb9SkSsO-5-679O_7ocPwOZQZ44yA,231
|
||||||
|
stdlib/asyncio/sslproto.pyi,sha256=XT4zcTMZYTlRh8K2WSxHDz5Xw_k-otF5ShKYUDXI-30,6595
|
||||||
|
stdlib/asyncio/staggered.pyi,sha256=Qwgygm1Wd5ydD1Q9Iwu1lCq5uHRl0q_p5wca_HD7ask,351
|
||||||
|
stdlib/asyncio/streams.pyi,sha256=ZlYMdF5DydffhfXWrHAqky3DtiNxO31OzMRN9BhTf8I,6759
|
||||||
|
stdlib/asyncio/taskgroups.pyi,sha256=l399dBgZNG3_fVZ6Cd3YrmrLT6BVoCFdvkqoyGnQdbQ,646
|
||||||
|
stdlib/asyncio/tasks.pyi,sha256=6aKXS_Oh0s4buOTZkBlmIrNIR-6BNhLFjJoEZSBUOUs,14465
|
||||||
|
stdlib/asyncio/threads.pyi,sha256=2luO0lvlHbVhlIaZqQfFeVdr8xHn5hlmhl2QBP9YLlU,274
|
||||||
|
stdlib/asyncio/timeouts.pyi,sha256=brKulE6iRhpq7_8kdJYDdw-QyVTkrzbK_yYiPycIiyA,653
|
||||||
|
stdlib/asyncio/transports.pyi,sha256=lZFZ2sBsXpa1TGFnIWIBUMMWpqgQMIHjPuPHjJRHCLw,2094
|
||||||
|
stdlib/asyncio/trsock.pyi,sha256=QFrlTSefkKqkm9CvkQE-DrbJ-O0cbj3NN9MjUFBE250,5161
|
||||||
|
stdlib/asyncio/unix_events.pyi,sha256=KtpYuURjnn9lgipPv5FW7_S0yrZUKkBpxqLv1QjoZwo,5847
|
||||||
|
stdlib/builtins.pyi,sha256=slGhgVHGPZM_S2nDlAzR2s0pACuGWadcpohAvVdVDz4,85034
|
||||||
|
stdlib/codecs.pyi,sha256=yvQyUT4IcMHUB_5N6CpOX5dz7IC0UasuoQtS2zpFlNo,11867
|
||||||
|
stdlib/collections/__init__.pyi,sha256=K_CAL3sFw6sYSlV7dExVisyKVltE8wdl5_Ol-VVmXi8,21370
|
||||||
|
stdlib/collections/abc.pyi,sha256=7E24ytmwcwkHwpzvttFRMn9nJfpNDW6YYulI0H9nxxI,81
|
||||||
|
stdlib/contextlib.pyi,sha256=SotLFn_0pEX3aqSGKF1EzuQLUflAbNSkfG-fkGqonpY,9193
|
||||||
|
stdlib/contextvars.pyi,sha256=e1LEavWqiBfSZOscHUnLsazlho_3a1KhMfzvWGD-F7s,2472
|
||||||
|
stdlib/dataclasses.pyi,sha256=OU1-LN29Qf4TWDS_wJEX-cb-M2JH201gQqgWNxpLdLc,9719
|
||||||
|
stdlib/decimal.pyi,sha256=SsrITV7HUaFdSbalRQapbaA726XRSduQCtEBU8Ev9U4,119
|
||||||
|
stdlib/enum.pyi,sha256=qV1OqUsRtz8l81Q-Hfsc0sa6O9fbg4nD6ALmK7eRQdI,10984
|
||||||
|
stdlib/fractions.pyi,sha256=ZDMRzxCoqgPkPGPiQR4AVOYjx1Gbo5_0IDjo61ncBuA,5754
|
||||||
|
stdlib/functools.pyi,sha256=PB8UjNUNW8bsdOfrmReFzdrQrtzIB4r1e_5YQxCzsDY,8850
|
||||||
|
stdlib/io.pyi,sha256=Fx1e2zuobNnVGjlnFm6swi2H3lVMly8LrOw7SbNzJvc,7631
|
||||||
|
stdlib/numbers.pyi,sha256=0ze1DSG3UBfMDIjPFr-htK4FCF4R6FGY69KvSHxSkL8,4043
|
||||||
|
stdlib/os/__init__.pyi,sha256=59wnHVcQ5OD22a1GMNU4l-jmI703jWH5fWL5U17cohg,38450
|
||||||
|
stdlib/queue.pyi,sha256=k88XJePCEN3Vw-hTgj1-Vod8AzZ81E6hztLcmRnbM90,2131
|
||||||
|
stdlib/re.pyi,sha256=ioHD_Nvlx8LpB63K0A3fmGIMzKUuDYDG8j3GmDTfaDI,10221
|
||||||
|
stdlib/selectors.pyi,sha256=zCq3OZKYThiRl3NTC1pHXdwB2D5c4Nz3Y1lr4Ek9EwQ,3802
|
||||||
|
stdlib/socket.pyi,sha256=PhKukvc_esHzO3xsOdrfncyS4aI0Tkt0nOFI3WNeTFs,30384
|
||||||
|
stdlib/sre_compile.pyi,sha256=UPXp7Mfy8VRdGCUgDWu_-msiRGad2FEDtUpWwA5CIxA,343
|
||||||
|
stdlib/sre_constants.pyi,sha256=qZqXCU0gEevo7PDRM3j8iRTL3MdyehjzuA95SANnawk,4116
|
||||||
|
stdlib/sre_parse.pyi,sha256=PYPVZLt8485Ob9JYMKAf-ximVjZPTIlrKmvSFk-VtaI,4610
|
||||||
|
stdlib/sys.pyi,sha256=o_0z8ab0hvt9YjWDmA78jNmES6CfG8R2L-sRQJtdRmQ,12231
|
||||||
|
stdlib/types.pyi,sha256=LyfVBbkqqSn__17l6lkx1VFTQnYeOgt9eyZ48WuC_Ug,21369
|
||||||
|
stdlib/typing.pyi,sha256=YfF43PG2kly39ygU84RsxYGDq4mjf8IiSgdK9IBNNVo,30253
|
||||||
|
stdlib/typing_extensions.pyi,sha256=iSpzmXucn4MDSdhXLQRHI1smqjE9bEj_-Zx6C_tM_WY,15278
|
||||||
4
.vscode/Pico-W-Stub/micropython_stdlib_stubs-1.0.0.dist-info/WHEEL
vendored
Normal file
4
.vscode/Pico-W-Stub/micropython_stdlib_stubs-1.0.0.dist-info/WHEEL
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: poetry-core 1.7.0
|
||||||
|
Root-Is-Purelib: true
|
||||||
|
Tag: py3-none-any
|
||||||
15
.vscode/Pico-W-Stub/mip/__init__.pyi
vendored
Normal file
15
.vscode/Pico-W-Stub/mip/__init__.pyi
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
_PACKAGE_INDEX: Incomplete
|
||||||
|
_CHUNK_SIZE: int
|
||||||
|
|
||||||
|
def _ensure_path_exists(path) -> None: ...
|
||||||
|
def _chunk(src, dest) -> None: ...
|
||||||
|
def _check_exists(path, short_hash): ...
|
||||||
|
def _rewrite_url(url, branch: Incomplete | None = ...): ...
|
||||||
|
def _download_file(url, dest): ...
|
||||||
|
def _install_json(package_json_url, index, target, version, mpy): ...
|
||||||
|
def _install_package(package, index, target, version, mpy): ...
|
||||||
|
def install(
|
||||||
|
package, index: Incomplete | None = ..., target: Incomplete | None = ..., version: Incomplete | None = ..., mpy: bool = ...
|
||||||
|
) -> None: ...
|
||||||
15
.vscode/Pico-W-Stub/neopixel.pyi
vendored
Normal file
15
.vscode/Pico-W-Stub/neopixel.pyi
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
class NeoPixel:
|
||||||
|
ORDER: Incomplete
|
||||||
|
pin: Incomplete
|
||||||
|
n: Incomplete
|
||||||
|
bpp: Incomplete
|
||||||
|
buf: Incomplete
|
||||||
|
timing: Incomplete
|
||||||
|
def __init__(self, pin, n, bpp: int = ..., timing: int = ...) -> None: ...
|
||||||
|
def __len__(self) -> int: ...
|
||||||
|
def __setitem__(self, i, v) -> None: ...
|
||||||
|
def __getitem__(self, i): ...
|
||||||
|
def fill(self, v) -> None: ...
|
||||||
|
def write(self) -> None: ...
|
||||||
184
.vscode/Pico-W-Stub/network.pyi
vendored
Normal file
184
.vscode/Pico-W-Stub/network.pyi
vendored
Normal file
@@ -0,0 +1,184 @@
|
|||||||
|
"""
|
||||||
|
Network configuration.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/network.html
|
||||||
|
|
||||||
|
This module provides network drivers and routing configuration. To use this
|
||||||
|
module, a MicroPython variant/build with network capabilities must be installed.
|
||||||
|
Network drivers for specific hardware are available within this module and are
|
||||||
|
used to configure hardware network interface(s). Network services provided
|
||||||
|
by configured interfaces are then available for use via the :mod:`socket`
|
||||||
|
module.
|
||||||
|
|
||||||
|
For example::
|
||||||
|
|
||||||
|
# connect/ show IP config a specific network interface
|
||||||
|
# see below for examples of specific drivers
|
||||||
|
import network
|
||||||
|
import time
|
||||||
|
nic = network.Driver(...)
|
||||||
|
if not nic.isconnected():
|
||||||
|
nic.connect()
|
||||||
|
print("Waiting for connection...")
|
||||||
|
while not nic.isconnected():
|
||||||
|
time.sleep(1)
|
||||||
|
print(nic.ifconfig())
|
||||||
|
|
||||||
|
# now use socket as usual
|
||||||
|
import socket
|
||||||
|
addr = socket.getaddrinfo('micropython.org', 80)[0][-1]
|
||||||
|
s = socket.socket()
|
||||||
|
s.connect(addr)
|
||||||
|
s.send(b'GET / HTTP/1.1\r\nHost: micropython.org\r\n\r\n')
|
||||||
|
data = s.recv(1000)
|
||||||
|
s.close()
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from typing import Any, List, Optional, Tuple, Union
|
||||||
|
|
||||||
|
STA_IF: int
|
||||||
|
STAT_IDLE: int
|
||||||
|
STAT_NO_AP_FOUND: int
|
||||||
|
STAT_WRONG_PASSWORD: int
|
||||||
|
STAT_GOT_IP: int
|
||||||
|
AP_IF: int
|
||||||
|
STAT_CONNECTING: int
|
||||||
|
STAT_CONNECT_FAIL: int
|
||||||
|
|
||||||
|
def route(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def hostname(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def country(*args, **kwargs) -> Incomplete: ...
|
||||||
|
|
||||||
|
class WLAN:
|
||||||
|
"""
|
||||||
|
Create a WLAN network interface object. Supported interfaces are
|
||||||
|
``network.STA_IF`` (station aka client, connects to upstream WiFi access
|
||||||
|
points) and ``network.AP_IF`` (access point, allows other WiFi clients to
|
||||||
|
connect). Availability of the methods below depends on interface type.
|
||||||
|
For example, only STA interface may `WLAN.connect()` to an access point.
|
||||||
|
"""
|
||||||
|
|
||||||
|
PM_PERFORMANCE: int
|
||||||
|
PM_POWERSAVE: int
|
||||||
|
PM_NONE: int
|
||||||
|
def isconnected(self) -> bool:
|
||||||
|
"""
|
||||||
|
In case of STA mode, returns ``True`` if connected to a WiFi access
|
||||||
|
point and has a valid IP address. In AP mode returns ``True`` when a
|
||||||
|
station is connected. Returns ``False`` otherwise.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def ioctl(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def ifconfig(self, configtuple: Optional[Any] = None) -> Tuple:
|
||||||
|
"""
|
||||||
|
Get/set IP-level network interface parameters: IP address, subnet mask,
|
||||||
|
gateway and DNS server. When called with no arguments, this method returns
|
||||||
|
a 4-tuple with the above information. To set the above values, pass a
|
||||||
|
4-tuple with the required information. For example::
|
||||||
|
|
||||||
|
nic.ifconfig(('192.168.0.4', '255.255.255.0', '192.168.0.1', '8.8.8.8'))
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def scan(self) -> List[Tuple]:
|
||||||
|
"""
|
||||||
|
Scan for the available wireless networks.
|
||||||
|
Hidden networks -- where the SSID is not broadcast -- will also be scanned
|
||||||
|
if the WLAN interface allows it.
|
||||||
|
|
||||||
|
Scanning is only possible on STA interface. Returns list of tuples with
|
||||||
|
the information about WiFi access points:
|
||||||
|
|
||||||
|
(ssid, bssid, channel, RSSI, security, hidden)
|
||||||
|
|
||||||
|
*bssid* is hardware address of an access point, in binary form, returned as
|
||||||
|
bytes object. You can use `binascii.hexlify()` to convert it to ASCII form.
|
||||||
|
|
||||||
|
There are five values for security:
|
||||||
|
|
||||||
|
* 0 -- open
|
||||||
|
* 1 -- WEP
|
||||||
|
* 2 -- WPA-PSK
|
||||||
|
* 3 -- WPA2-PSK
|
||||||
|
* 4 -- WPA/WPA2-PSK
|
||||||
|
|
||||||
|
and two for hidden:
|
||||||
|
|
||||||
|
* 0 -- visible
|
||||||
|
* 1 -- hidden
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def send_ethernet(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def status(self, param: Optional[Any] = None) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Return the current status of the wireless connection.
|
||||||
|
|
||||||
|
When called with no argument the return value describes the network link status.
|
||||||
|
The possible statuses are defined as constants:
|
||||||
|
|
||||||
|
* ``STAT_IDLE`` -- no connection and no activity,
|
||||||
|
* ``STAT_CONNECTING`` -- connecting in progress,
|
||||||
|
* ``STAT_WRONG_PASSWORD`` -- failed due to incorrect password,
|
||||||
|
* ``STAT_NO_AP_FOUND`` -- failed because no access point replied,
|
||||||
|
* ``STAT_CONNECT_FAIL`` -- failed due to other problems,
|
||||||
|
* ``STAT_GOT_IP`` -- connection successful.
|
||||||
|
|
||||||
|
When called with one argument *param* should be a string naming the status
|
||||||
|
parameter to retrieve. Supported parameters in WiFI STA mode are: ``'rssi'``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def config(self, *args, **kwargs) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Get or set general network interface parameters. These methods allow to work
|
||||||
|
with additional parameters beyond standard IP configuration (as dealt with by
|
||||||
|
`WLAN.ifconfig()`). These include network-specific and hardware-specific
|
||||||
|
parameters. For setting parameters, keyword argument syntax should be used,
|
||||||
|
multiple parameters can be set at once. For querying, parameters name should
|
||||||
|
be quoted as a string, and only one parameter can be queries at time::
|
||||||
|
|
||||||
|
# Set WiFi access point name (formally known as SSID) and WiFi channel
|
||||||
|
ap.config(ssid='My AP', channel=11)
|
||||||
|
# Query params one by one
|
||||||
|
print(ap.config('ssid'))
|
||||||
|
print(ap.config('channel'))
|
||||||
|
|
||||||
|
Following are commonly supported parameters (availability of a specific parameter
|
||||||
|
depends on network technology type, driver, and :term:`MicroPython port`).
|
||||||
|
|
||||||
|
============= ===========
|
||||||
|
Parameter Description
|
||||||
|
============= ===========
|
||||||
|
mac MAC address (bytes)
|
||||||
|
ssid WiFi access point name (string)
|
||||||
|
channel WiFi channel (integer)
|
||||||
|
hidden Whether SSID is hidden (boolean)
|
||||||
|
security Security protocol supported (enumeration, see module constants)
|
||||||
|
key Access key (string)
|
||||||
|
hostname The hostname that will be sent to DHCP (STA interfaces) and mDNS (if supported, both STA and AP). (Deprecated, use :func:`network.hostname` instead)
|
||||||
|
reconnects Number of reconnect attempts to make (integer, 0=none, -1=unlimited)
|
||||||
|
txpower Maximum transmit power in dBm (integer or float)
|
||||||
|
pm WiFi Power Management setting (see below for allowed values)
|
||||||
|
============= ===========
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def active(self, is_active: Optional[Any] = None) -> None:
|
||||||
|
"""
|
||||||
|
Activate ("up") or deactivate ("down") network interface, if boolean
|
||||||
|
argument is passed. Otherwise, query current state if no argument is
|
||||||
|
provided. Most other methods require active interface.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def disconnect(self) -> None:
|
||||||
|
"""
|
||||||
|
Disconnect from the currently connected wireless network.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def connect(self, ssid=None, key=None, *, bssid=None) -> None:
|
||||||
|
"""
|
||||||
|
Connect to the specified wireless network, using the specified key.
|
||||||
|
If *bssid* is given then the connection will be restricted to the
|
||||||
|
access-point with that MAC address (the *ssid* must also be specified
|
||||||
|
in this case).
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def deinit(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, interface_id) -> None: ...
|
||||||
5
.vscode/Pico-W-Stub/ntptime.pyi
vendored
Normal file
5
.vscode/Pico-W-Stub/ntptime.pyi
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
host: str
|
||||||
|
timeout: int
|
||||||
|
|
||||||
|
def time(): ...
|
||||||
|
def settime() -> None: ...
|
||||||
21
.vscode/Pico-W-Stub/onewire.pyi
vendored
Normal file
21
.vscode/Pico-W-Stub/onewire.pyi
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
class OneWireError(Exception): ...
|
||||||
|
|
||||||
|
class OneWire:
|
||||||
|
SEARCH_ROM: int
|
||||||
|
MATCH_ROM: int
|
||||||
|
SKIP_ROM: int
|
||||||
|
pin: Incomplete
|
||||||
|
def __init__(self, pin) -> None: ...
|
||||||
|
def reset(self, required: bool = ...): ...
|
||||||
|
def readbit(self): ...
|
||||||
|
def readbyte(self): ...
|
||||||
|
def readinto(self, buf) -> None: ...
|
||||||
|
def writebit(self, value): ...
|
||||||
|
def writebyte(self, value): ...
|
||||||
|
def write(self, buf) -> None: ...
|
||||||
|
def select_rom(self, rom) -> None: ...
|
||||||
|
def scan(self): ...
|
||||||
|
def _search_rom(self, l_rom, diff): ...
|
||||||
|
def crc8(self, data): ...
|
||||||
253
.vscode/Pico-W-Stub/os.pyi
vendored
Normal file
253
.vscode/Pico-W-Stub/os.pyi
vendored
Normal file
@@ -0,0 +1,253 @@
|
|||||||
|
"""
|
||||||
|
Basic "operating system" services.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/os.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:os` https://docs.python.org/3/library/os.html .
|
||||||
|
|
||||||
|
The ``os`` module contains functions for filesystem access and mounting,
|
||||||
|
terminal redirection and duplication, and the ``uname`` and ``urandom``
|
||||||
|
functions.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from stdlib.os import *
|
||||||
|
from typing import Any, IO, Iterator, Optional, Tuple
|
||||||
|
|
||||||
|
def statvfs(path) -> Tuple:
|
||||||
|
"""
|
||||||
|
Get the status of a filesystem.
|
||||||
|
|
||||||
|
Returns a tuple with the filesystem information in the following order:
|
||||||
|
|
||||||
|
* ``f_bsize`` -- file system block size
|
||||||
|
* ``f_frsize`` -- fragment size
|
||||||
|
* ``f_blocks`` -- size of fs in f_frsize units
|
||||||
|
* ``f_bfree`` -- number of free blocks
|
||||||
|
* ``f_bavail`` -- number of free blocks for unprivileged users
|
||||||
|
* ``f_files`` -- number of inodes
|
||||||
|
* ``f_ffree`` -- number of free inodes
|
||||||
|
* ``f_favail`` -- number of free inodes for unprivileged users
|
||||||
|
* ``f_flag`` -- mount flags
|
||||||
|
* ``f_namemax`` -- maximum filename length
|
||||||
|
|
||||||
|
Parameters related to inodes: ``f_files``, ``f_ffree``, ``f_avail``
|
||||||
|
and the ``f_flags`` parameter may return ``0`` as they can be unavailable
|
||||||
|
in a port-specific implementation.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def stat(path) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Get the status of a file or directory.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def rmdir(path) -> None:
|
||||||
|
"""
|
||||||
|
Remove a directory.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def rename(old_path, new_path) -> None:
|
||||||
|
"""
|
||||||
|
Rename a file.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def mount(fsobj, mount_point, *, readonly=False) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Mount the filesystem object *fsobj* at the location in the VFS given by the
|
||||||
|
*mount_point* string. *fsobj* can be a a VFS object that has a ``mount()``
|
||||||
|
method, or a block device. If it's a block device then the filesystem type
|
||||||
|
is automatically detected (an exception is raised if no filesystem was
|
||||||
|
recognised). *mount_point* may be ``'/'`` to mount *fsobj* at the root,
|
||||||
|
or ``'/<name>'`` to mount it at a subdirectory under the root.
|
||||||
|
|
||||||
|
If *readonly* is ``True`` then the filesystem is mounted read-only.
|
||||||
|
|
||||||
|
During the mount process the method ``mount()`` is called on the filesystem
|
||||||
|
object.
|
||||||
|
|
||||||
|
Will raise ``OSError(EPERM)`` if *mount_point* is already mounted.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def sync() -> None:
|
||||||
|
"""
|
||||||
|
Sync all filesystems.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def unlink(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def uname() -> uname_result:
|
||||||
|
"""
|
||||||
|
Return a tuple (possibly a named tuple) containing information about the
|
||||||
|
underlying machine and/or its operating system. The tuple has five fields
|
||||||
|
in the following order, each of them being a string:
|
||||||
|
|
||||||
|
* ``sysname`` -- the name of the underlying system
|
||||||
|
* ``nodename`` -- the network name (can be the same as ``sysname``)
|
||||||
|
* ``release`` -- the version of the underlying system
|
||||||
|
* ``version`` -- the MicroPython version and build date
|
||||||
|
* ``machine`` -- an identifier for the underlying hardware (eg board, CPU)
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def umount(mount_point) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Unmount a filesystem. *mount_point* can be a string naming the mount location,
|
||||||
|
or a previously-mounted filesystem object. During the unmount process the
|
||||||
|
method ``umount()`` is called on the filesystem object.
|
||||||
|
|
||||||
|
Will raise ``OSError(EINVAL)`` if *mount_point* is not found.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def urandom(n) -> bytes:
|
||||||
|
"""
|
||||||
|
Return a bytes object with *n* random bytes. Whenever possible, it is
|
||||||
|
generated by the hardware random number generator.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def chdir(path) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Change current directory.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def dupterm(stream_object, index=0, /) -> IO:
|
||||||
|
"""
|
||||||
|
Duplicate or switch the MicroPython terminal (the REPL) on the given `stream`-like
|
||||||
|
object. The *stream_object* argument must be a native stream object, or derive
|
||||||
|
from ``io.IOBase`` and implement the ``readinto()`` and
|
||||||
|
``write()`` methods. The stream should be in non-blocking mode and
|
||||||
|
``readinto()`` should return ``None`` if there is no data available for reading.
|
||||||
|
|
||||||
|
After calling this function all terminal output is repeated on this stream,
|
||||||
|
and any input that is available on the stream is passed on to the terminal input.
|
||||||
|
|
||||||
|
The *index* parameter should be a non-negative integer and specifies which
|
||||||
|
duplication slot is set. A given port may implement more than one slot (slot 0
|
||||||
|
will always be available) and in that case terminal input and output is
|
||||||
|
duplicated on all the slots that are set.
|
||||||
|
|
||||||
|
If ``None`` is passed as the *stream_object* then duplication is cancelled on
|
||||||
|
the slot given by *index*.
|
||||||
|
|
||||||
|
The function returns the previous stream-like object in the given slot.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def remove(path) -> None:
|
||||||
|
"""
|
||||||
|
Remove a file.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def mkdir(path) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Create a new directory.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def getcwd() -> Incomplete:
|
||||||
|
"""
|
||||||
|
Get the current directory.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def listdir(dir: Optional[Any] = None) -> Incomplete:
|
||||||
|
"""
|
||||||
|
With no argument, list the current directory. Otherwise list the given directory.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def ilistdir(dir: Optional[Any] = None) -> Iterator[Tuple]:
|
||||||
|
"""
|
||||||
|
This function returns an iterator which then yields tuples corresponding to
|
||||||
|
the entries in the directory that it is listing. With no argument it lists the
|
||||||
|
current directory, otherwise it lists the directory given by *dir*.
|
||||||
|
|
||||||
|
The tuples have the form *(name, type, inode[, size])*:
|
||||||
|
|
||||||
|
- *name* is a string (or bytes if *dir* is a bytes object) and is the name of
|
||||||
|
the entry;
|
||||||
|
- *type* is an integer that specifies the type of the entry, with 0x4000 for
|
||||||
|
directories and 0x8000 for regular files;
|
||||||
|
- *inode* is an integer corresponding to the inode of the file, and may be 0
|
||||||
|
for filesystems that don't have such a notion.
|
||||||
|
- Some platforms may return a 4-tuple that includes the entry's *size*. For
|
||||||
|
file entries, *size* is an integer representing the size of the file
|
||||||
|
or -1 if unknown. Its meaning is currently undefined for directory
|
||||||
|
entries.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
class VfsLfs2:
|
||||||
|
"""
|
||||||
|
Create a filesystem object that uses the `littlefs v2 filesystem format`_.
|
||||||
|
Storage of the littlefs filesystem is provided by *block_dev*, which must
|
||||||
|
support the :ref:`extended interface <block-device-interface>`.
|
||||||
|
Objects created by this constructor can be mounted using :func:`mount`.
|
||||||
|
|
||||||
|
The *mtime* argument enables modification timestamps for files, stored using
|
||||||
|
littlefs attributes. This option can be disabled or enabled differently each
|
||||||
|
mount time and timestamps will only be added or updated if *mtime* is enabled,
|
||||||
|
otherwise the timestamps will remain untouched. Littlefs v2 filesystems without
|
||||||
|
timestamps will work without reformatting and timestamps will be added
|
||||||
|
transparently to existing files once they are opened for writing. When *mtime*
|
||||||
|
is enabled `os.stat` on files without timestamps will return 0 for the timestamp.
|
||||||
|
|
||||||
|
See :ref:`filesystem` for more information.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def rename(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
@staticmethod
|
||||||
|
def mkfs(block_dev, readsize=32, progsize=32, lookahead=32) -> None:
|
||||||
|
"""
|
||||||
|
Build a Lfs2 filesystem on *block_dev*.
|
||||||
|
|
||||||
|
``Note:`` There are reports of littlefs v2 failing in certain situations,
|
||||||
|
for details see `littlefs issue 295`_.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def mount(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def statvfs(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def rmdir(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def stat(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def umount(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def remove(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def mkdir(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def open(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def ilistdir(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def chdir(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def getcwd(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, block_dev, readsize=32, progsize=32, lookahead=32, mtime=True) -> None: ...
|
||||||
|
|
||||||
|
class VfsFat:
|
||||||
|
"""
|
||||||
|
Create a filesystem object that uses the FAT filesystem format. Storage of
|
||||||
|
the FAT filesystem is provided by *block_dev*.
|
||||||
|
Objects created by this constructor can be mounted using :func:`mount`.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def rename(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
@staticmethod
|
||||||
|
def mkfs(block_dev) -> None:
|
||||||
|
"""
|
||||||
|
Build a FAT filesystem on *block_dev*.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def mount(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def statvfs(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def rmdir(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def stat(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def umount(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def remove(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def mkdir(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def open(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def ilistdir(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def chdir(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def getcwd(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def __init__(self, block_dev) -> None: ...
|
||||||
43
.vscode/Pico-W-Stub/platform.pyi
vendored
Normal file
43
.vscode/Pico-W-Stub/platform.pyi
vendored
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
"""
|
||||||
|
Access to underlying platform’s identifying data.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/platform.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:platform` https://docs.python.org/3/library/platform.html .
|
||||||
|
|
||||||
|
This module tries to retrieve as much platform-identifying data as possible. It
|
||||||
|
makes this information available via function APIs.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from typing import Tuple
|
||||||
|
|
||||||
|
def platform() -> str:
|
||||||
|
"""
|
||||||
|
Returns a string identifying the underlying platform. This string is composed
|
||||||
|
of several substrings in the following order, delimited by dashes (``-``):
|
||||||
|
|
||||||
|
- the name of the platform system (e.g. Unix, Windows or MicroPython)
|
||||||
|
- the MicroPython version
|
||||||
|
- the architecture of the platform
|
||||||
|
- the version of the underlying platform
|
||||||
|
- the concatenation of the name of the libc that MicroPython is linked to
|
||||||
|
and its corresponding version.
|
||||||
|
|
||||||
|
For example, this could be
|
||||||
|
``"MicroPython-1.20.0-xtensa-IDFv4.2.4-with-newlib3.0.0"``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def python_compiler() -> str:
|
||||||
|
"""
|
||||||
|
Returns a string identifying the compiler used for compiling MicroPython.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def libc_ver() -> Tuple:
|
||||||
|
"""
|
||||||
|
Returns a tuple of strings *(lib, version)*, where *lib* is the name of the
|
||||||
|
libc that MicroPython is linked to, and *version* the corresponding version
|
||||||
|
of this libc.
|
||||||
|
"""
|
||||||
|
...
|
||||||
84
.vscode/Pico-W-Stub/random.pyi
vendored
Normal file
84
.vscode/Pico-W-Stub/random.pyi
vendored
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
"""
|
||||||
|
Random numbers.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/random.html
|
||||||
|
|
||||||
|
This module implements a pseudo-random number generator (PRNG).
|
||||||
|
|
||||||
|
CPython module: :mod:`python:random` https://docs.python.org/3/library/random.html . .
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The following notation is used for intervals:
|
||||||
|
|
||||||
|
- () are open interval brackets and do not include their endpoints.
|
||||||
|
For example, (0, 1) means greater than 0 and less than 1.
|
||||||
|
In set notation: (0, 1) = {x | 0 < x < 1}.
|
||||||
|
|
||||||
|
- [] are closed interval brackets which include all their limit points.
|
||||||
|
For example, [0, 1] means greater than or equal to 0 and less than
|
||||||
|
or equal to 1.
|
||||||
|
In set notation: [0, 1] = {x | 0 <= x <= 1}.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The :func:`randrange`, :func:`randint` and :func:`choice` functions are only
|
||||||
|
available if the ``MICROPY_PY_RANDOM_EXTRA_FUNCS`` configuration option is
|
||||||
|
enabled.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from typing import Any, Optional
|
||||||
|
|
||||||
|
def randrange(start, stop, step: Optional[Any] = None) -> int:
|
||||||
|
"""
|
||||||
|
The first form returns a random integer from the range [0, *stop*).
|
||||||
|
The second form returns a random integer from the range [*start*, *stop*).
|
||||||
|
The third form returns a random integer from the range [*start*, *stop*) in
|
||||||
|
steps of *step*. For instance, calling ``randrange(1, 10, 2)`` will
|
||||||
|
return odd numbers between 1 and 9 inclusive.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def random() -> int:
|
||||||
|
"""
|
||||||
|
Return a random floating point number in the range [0.0, 1.0).
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def seed(n=None, /) -> None:
|
||||||
|
"""
|
||||||
|
Initialise the random number generator module with the seed *n* which should
|
||||||
|
be an integer. When no argument (or ``None``) is passed in it will (if
|
||||||
|
supported by the port) initialise the PRNG with a true random number
|
||||||
|
(usually a hardware generated random number).
|
||||||
|
|
||||||
|
The ``None`` case only works if ``MICROPY_PY_RANDOM_SEED_INIT_FUNC`` is
|
||||||
|
enabled by the port, otherwise it raises ``ValueError``.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def uniform(a, b) -> int:
|
||||||
|
"""
|
||||||
|
Return a random floating point number N such that *a* <= N <= *b* for *a* <= *b*,
|
||||||
|
and *b* <= N <= *a* for *b* < *a*.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def choice(sequence) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Chooses and returns one item at random from *sequence* (tuple, list or
|
||||||
|
any object that supports the subscript operation).
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def randint(a, b) -> int:
|
||||||
|
"""
|
||||||
|
Return a random integer in the range [*a*, *b*].
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def getrandbits(n) -> int:
|
||||||
|
"""
|
||||||
|
Return an integer with *n* random bits (0 <= n <= 32).
|
||||||
|
"""
|
||||||
|
...
|
||||||
16
.vscode/Pico-W-Stub/requests.pyi
vendored
Normal file
16
.vscode/Pico-W-Stub/requests.pyi
vendored
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
from _typeshed import Incomplete as Incomplete
|
||||||
|
|
||||||
|
def request(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def head(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def post(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def patch(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def delete(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def put(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def get(*args, **kwargs) -> Incomplete: ...
|
||||||
|
|
||||||
|
class Response:
|
||||||
|
def json(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
def close(self, *args, **kwargs) -> Incomplete: ...
|
||||||
|
content: Incomplete
|
||||||
|
text: Incomplete
|
||||||
|
def __init__(self, *argv, **kwargs) -> None: ...
|
||||||
31
.vscode/Pico-W-Stub/requests/__init__.pyi
vendored
Normal file
31
.vscode/Pico-W-Stub/requests/__init__.pyi
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
class Response:
|
||||||
|
raw: Incomplete
|
||||||
|
encoding: str
|
||||||
|
_cached: Incomplete
|
||||||
|
def __init__(self, f) -> None: ...
|
||||||
|
def close(self) -> None: ...
|
||||||
|
@property
|
||||||
|
def content(self): ...
|
||||||
|
@property
|
||||||
|
def text(self): ...
|
||||||
|
def json(self): ...
|
||||||
|
|
||||||
|
def request(
|
||||||
|
method,
|
||||||
|
url,
|
||||||
|
data: Incomplete | None = ...,
|
||||||
|
json: Incomplete | None = ...,
|
||||||
|
headers=...,
|
||||||
|
stream: Incomplete | None = ...,
|
||||||
|
auth: Incomplete | None = ...,
|
||||||
|
timeout: Incomplete | None = ...,
|
||||||
|
parse_headers: bool = ...,
|
||||||
|
): ...
|
||||||
|
def head(url, **kw): ...
|
||||||
|
def get(url, **kw): ...
|
||||||
|
def post(url, **kw): ...
|
||||||
|
def put(url, **kw): ...
|
||||||
|
def patch(url, **kw): ...
|
||||||
|
def delete(url, **kw): ...
|
||||||
62
.vscode/Pico-W-Stub/rp2.pyi
vendored
Normal file
62
.vscode/Pico-W-Stub/rp2.pyi
vendored
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
from _rp2 import *
|
||||||
|
from _typeshed import Incomplete
|
||||||
|
|
||||||
|
_PROG_DATA: Incomplete
|
||||||
|
_PROG_OFFSET_PIO0: Incomplete
|
||||||
|
_PROG_OFFSET_PIO1: Incomplete
|
||||||
|
_PROG_EXECCTRL: Incomplete
|
||||||
|
_PROG_SHIFTCTRL: Incomplete
|
||||||
|
_PROG_OUT_PINS: Incomplete
|
||||||
|
_PROG_SET_PINS: Incomplete
|
||||||
|
_PROG_SIDESET_PINS: Incomplete
|
||||||
|
_PROG_MAX_FIELDS: Incomplete
|
||||||
|
|
||||||
|
class PIOASMError(Exception): ...
|
||||||
|
|
||||||
|
class PIOASMEmit:
|
||||||
|
labels: Incomplete
|
||||||
|
prog: Incomplete
|
||||||
|
wrap_used: bool
|
||||||
|
sideset_count: int
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
out_init: Incomplete | None = ...,
|
||||||
|
set_init: Incomplete | None = ...,
|
||||||
|
sideset_init: Incomplete | None = ...,
|
||||||
|
in_shiftdir: int = ...,
|
||||||
|
out_shiftdir: int = ...,
|
||||||
|
autopush: bool = ...,
|
||||||
|
autopull: bool = ...,
|
||||||
|
push_thresh: int = ...,
|
||||||
|
pull_thresh: int = ...,
|
||||||
|
fifo_join: int = ...,
|
||||||
|
) -> None: ...
|
||||||
|
delay_max: int
|
||||||
|
sideset_opt: Incomplete
|
||||||
|
pass_: Incomplete
|
||||||
|
num_instr: int
|
||||||
|
num_sideset: int
|
||||||
|
def start_pass(self, pass_) -> None: ...
|
||||||
|
def __getitem__(self, key): ...
|
||||||
|
def delay(self, delay): ...
|
||||||
|
def side(self, value): ...
|
||||||
|
def wrap_target(self) -> None: ...
|
||||||
|
def wrap(self) -> None: ...
|
||||||
|
def label(self, label) -> None: ...
|
||||||
|
def word(self, instr, label: Incomplete | None = ...): ...
|
||||||
|
def nop(self): ...
|
||||||
|
def jmp(self, cond, label: Incomplete | None = ...): ...
|
||||||
|
def wait(self, polarity, src, index): ...
|
||||||
|
def in_(self, src, data): ...
|
||||||
|
def out(self, dest, data): ...
|
||||||
|
def push(self, value: int = ..., value2: int = ...): ...
|
||||||
|
def pull(self, value: int = ..., value2: int = ...): ...
|
||||||
|
def mov(self, dest, src): ...
|
||||||
|
def irq(self, mod, index: Incomplete | None = ...): ...
|
||||||
|
def set(self, dest, data): ...
|
||||||
|
|
||||||
|
_pio_funcs: Incomplete
|
||||||
|
|
||||||
|
def asm_pio(**kw): ...
|
||||||
|
def asm_pio_encode(instr, sideset_count, sideset_opt: bool = ...): ...
|
||||||
103
.vscode/Pico-W-Stub/select.pyi
vendored
Normal file
103
.vscode/Pico-W-Stub/select.pyi
vendored
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
"""
|
||||||
|
Wait for events on a set of streams.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/select.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:select` https://docs.python.org/3/library/select.html .
|
||||||
|
|
||||||
|
This module provides functions to efficiently wait for events on multiple
|
||||||
|
`streams <stream>` (select streams which are ready for operations).
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from typing import Any, Iterator, List, Optional, Tuple
|
||||||
|
|
||||||
|
POLLOUT: int
|
||||||
|
POLLIN: int
|
||||||
|
POLLHUP: int
|
||||||
|
POLLERR: int
|
||||||
|
|
||||||
|
def select(rlist, wlist, xlist, timeout: Optional[Any] = None) -> None:
|
||||||
|
"""
|
||||||
|
Wait for activity on a set of objects.
|
||||||
|
|
||||||
|
This function is provided by some MicroPython ports for compatibility
|
||||||
|
and is not efficient. Usage of :class:`Poll` is recommended instead.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
class poll:
|
||||||
|
"""
|
||||||
|
Create an instance of the Poll class.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self) -> None: ...
|
||||||
|
def register(self, obj, eventmask: Optional[Any] = None) -> None:
|
||||||
|
"""
|
||||||
|
Register `stream` *obj* for polling. *eventmask* is logical OR of:
|
||||||
|
|
||||||
|
* ``select.POLLIN`` - data available for reading
|
||||||
|
* ``select.POLLOUT`` - more data can be written
|
||||||
|
|
||||||
|
Note that flags like ``select.POLLHUP`` and ``select.POLLERR`` are
|
||||||
|
*not* valid as input eventmask (these are unsolicited events which
|
||||||
|
will be returned from `poll()` regardless of whether they are asked
|
||||||
|
for). This semantics is per POSIX.
|
||||||
|
|
||||||
|
*eventmask* defaults to ``select.POLLIN | select.POLLOUT``.
|
||||||
|
|
||||||
|
It is OK to call this function multiple times for the same *obj*.
|
||||||
|
Successive calls will update *obj*'s eventmask to the value of
|
||||||
|
*eventmask* (i.e. will behave as `modify()`).
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def unregister(self, obj) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Unregister *obj* from polling.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def modify(self, obj, eventmask) -> None:
|
||||||
|
"""
|
||||||
|
Modify the *eventmask* for *obj*. If *obj* is not registered, `OSError`
|
||||||
|
is raised with error of ENOENT.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def poll(self, timeout=-1, /) -> List:
|
||||||
|
"""
|
||||||
|
Wait for at least one of the registered objects to become ready or have an
|
||||||
|
exceptional condition, with optional timeout in milliseconds (if *timeout*
|
||||||
|
arg is not specified or -1, there is no timeout).
|
||||||
|
|
||||||
|
Returns list of (``obj``, ``event``, ...) tuples. There may be other elements in
|
||||||
|
tuple, depending on a platform and version, so don't assume that its size is 2.
|
||||||
|
The ``event`` element specifies which events happened with a stream and
|
||||||
|
is a combination of ``select.POLL*`` constants described above. Note that
|
||||||
|
flags ``select.POLLHUP`` and ``select.POLLERR`` can be returned at any time
|
||||||
|
(even if were not asked for), and must be acted on accordingly (the
|
||||||
|
corresponding stream unregistered from poll and likely closed), because
|
||||||
|
otherwise all further invocations of `poll()` may return immediately with
|
||||||
|
these flags set for this stream again.
|
||||||
|
|
||||||
|
In case of timeout, an empty list is returned.
|
||||||
|
|
||||||
|
Difference to CPython
|
||||||
|
|
||||||
|
Tuples returned may contain more than 2 elements as described above.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def ipoll(self, timeout=-1, flags=0, /) -> Iterator[Tuple]:
|
||||||
|
"""
|
||||||
|
Like :meth:`poll.poll`, but instead returns an iterator which yields a
|
||||||
|
`callee-owned tuple`. This function provides an efficient, allocation-free
|
||||||
|
way to poll on streams.
|
||||||
|
|
||||||
|
If *flags* is 1, one-shot behaviour for events is employed: streams for
|
||||||
|
which events happened will have their event masks automatically reset
|
||||||
|
(equivalent to ``poll.modify(obj, 0)``), so new events for such a stream
|
||||||
|
won't be processed until new mask is set with `poll.modify()`. This
|
||||||
|
behaviour is useful for asynchronous I/O schedulers.
|
||||||
|
|
||||||
|
Difference to CPython
|
||||||
|
|
||||||
|
This function is a MicroPython extension.
|
||||||
|
"""
|
||||||
|
...
|
||||||
271
.vscode/Pico-W-Stub/socket.pyi
vendored
Normal file
271
.vscode/Pico-W-Stub/socket.pyi
vendored
Normal file
@@ -0,0 +1,271 @@
|
|||||||
|
"""
|
||||||
|
Socket module.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/socket.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:socket` https://docs.python.org/3/library/socket.html .
|
||||||
|
|
||||||
|
This module provides access to the BSD socket interface.
|
||||||
|
|
||||||
|
Difference to CPython
|
||||||
|
|
||||||
|
For efficiency and consistency, socket objects in MicroPython implement a `stream`
|
||||||
|
(file-like) interface directly. In CPython, you need to convert a socket to
|
||||||
|
a file-like object using `makefile()` method. This method is still supported
|
||||||
|
by MicroPython (but is a no-op), so where compatibility with CPython matters,
|
||||||
|
be sure to use it.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from stdlib.socket import *
|
||||||
|
from typing import Any, IO, Optional, Tuple
|
||||||
|
|
||||||
|
SOCK_STREAM: int
|
||||||
|
SOCK_RAW: int
|
||||||
|
SOCK_DGRAM: int
|
||||||
|
SOL_SOCKET: int
|
||||||
|
SO_BROADCAST: int
|
||||||
|
SO_REUSEADDR: int
|
||||||
|
AF_INET6: int
|
||||||
|
AF_INET: int
|
||||||
|
IP_DROP_MEMBERSHIP: int
|
||||||
|
IPPROTO_IP: int
|
||||||
|
IP_ADD_MEMBERSHIP: int
|
||||||
|
|
||||||
|
def reset(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def print_pcbs(*args, **kwargs) -> Incomplete: ...
|
||||||
|
def getaddrinfo(host, port, af=0, type=0, proto=0, flags=0, /) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Translate the host/port argument into a sequence of 5-tuples that contain all the
|
||||||
|
necessary arguments for creating a socket connected to that service. Arguments
|
||||||
|
*af*, *type*, and *proto* (which have the same meaning as for the `socket()` function)
|
||||||
|
can be used to filter which kind of addresses are returned. If a parameter is not
|
||||||
|
specified or zero, all combinations of addresses can be returned (requiring
|
||||||
|
filtering on the user side).
|
||||||
|
|
||||||
|
The resulting list of 5-tuples has the following structure::
|
||||||
|
|
||||||
|
(family, type, proto, canonname, sockaddr)
|
||||||
|
|
||||||
|
The following example shows how to connect to a given url::
|
||||||
|
|
||||||
|
s = socket.socket()
|
||||||
|
# This assumes that if "type" is not specified, an address for
|
||||||
|
# SOCK_STREAM will be returned, which may be not true
|
||||||
|
s.connect(socket.getaddrinfo('www.micropython.org', 80)[0][-1])
|
||||||
|
|
||||||
|
Recommended use of filtering params::
|
||||||
|
|
||||||
|
s = socket.socket()
|
||||||
|
# Guaranteed to return an address which can be connect'ed to for
|
||||||
|
# stream operation.
|
||||||
|
s.connect(socket.getaddrinfo('www.micropython.org', 80, 0, SOCK_STREAM)[0][-1])
|
||||||
|
|
||||||
|
Difference to CPython
|
||||||
|
|
||||||
|
CPython raises a ``socket.gaierror`` exception (`OSError` subclass) in case
|
||||||
|
of error in this function. MicroPython doesn't have ``socket.gaierror``
|
||||||
|
and raises OSError directly. Note that error numbers of `getaddrinfo()`
|
||||||
|
form a separate namespace and may not match error numbers from
|
||||||
|
the :mod:`errno` module. To distinguish `getaddrinfo()` errors, they are
|
||||||
|
represented by negative numbers, whereas standard system errors are
|
||||||
|
positive numbers (error numbers are accessible using ``e.args[0]`` property
|
||||||
|
from an exception object). The use of negative values is a provisional
|
||||||
|
detail which may change in the future.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
def callback(*args, **kwargs) -> Incomplete: ...
|
||||||
|
|
||||||
|
class socket:
|
||||||
|
"""
|
||||||
|
Create a new socket using the given address family, socket type and
|
||||||
|
protocol number. Note that specifying *proto* in most cases is not
|
||||||
|
required (and not recommended, as some MicroPython ports may omit
|
||||||
|
``IPPROTO_*`` constants). Instead, *type* argument will select needed
|
||||||
|
protocol automatically::
|
||||||
|
|
||||||
|
# Create STREAM TCP socket
|
||||||
|
socket(AF_INET, SOCK_STREAM)
|
||||||
|
# Create DGRAM UDP socket
|
||||||
|
socket(AF_INET, SOCK_DGRAM)
|
||||||
|
"""
|
||||||
|
|
||||||
|
def recvfrom(self, bufsize) -> Tuple:
|
||||||
|
"""
|
||||||
|
Receive data from the socket. The return value is a pair *(bytes, address)* where *bytes* is a
|
||||||
|
bytes object representing the data received and *address* is the address of the socket sending
|
||||||
|
the data.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def recv(self, bufsize) -> bytes:
|
||||||
|
"""
|
||||||
|
Receive data from the socket. The return value is a bytes object representing the data
|
||||||
|
received. The maximum amount of data to be received at once is specified by bufsize.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def makefile(self, mode="rb", buffering=0, /) -> IO:
|
||||||
|
"""
|
||||||
|
Return a file object associated with the socket. The exact returned type depends on the arguments
|
||||||
|
given to makefile(). The support is limited to binary modes only ('rb', 'wb', and 'rwb').
|
||||||
|
CPython's arguments: *encoding*, *errors* and *newline* are not supported.
|
||||||
|
|
||||||
|
Difference to CPython
|
||||||
|
|
||||||
|
As MicroPython doesn't support buffered streams, values of *buffering*
|
||||||
|
parameter is ignored and treated as if it was 0 (unbuffered).
|
||||||
|
|
||||||
|
Difference to CPython
|
||||||
|
|
||||||
|
Closing the file object returned by makefile() WILL close the
|
||||||
|
original socket as well.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def listen(self, backlog: Optional[Any] = None) -> None:
|
||||||
|
"""
|
||||||
|
Enable a server to accept connections. If *backlog* is specified, it must be at least 0
|
||||||
|
(if it's lower, it will be set to 0); and specifies the number of unaccepted connections
|
||||||
|
that the system will allow before refusing new connections. If not specified, a default
|
||||||
|
reasonable value is chosen.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def settimeout(self, value) -> Incomplete:
|
||||||
|
"""
|
||||||
|
**Note**: Not every port supports this method, see below.
|
||||||
|
|
||||||
|
Set a timeout on blocking socket operations. The value argument can be a nonnegative floating
|
||||||
|
point number expressing seconds, or None. If a non-zero value is given, subsequent socket operations
|
||||||
|
will raise an `OSError` exception if the timeout period value has elapsed before the operation has
|
||||||
|
completed. If zero is given, the socket is put in non-blocking mode. If None is given, the socket
|
||||||
|
is put in blocking mode.
|
||||||
|
|
||||||
|
Not every :term:`MicroPython port` supports this method. A more portable and
|
||||||
|
generic solution is to use `select.poll` object. This allows to wait on
|
||||||
|
multiple objects at the same time (and not just on sockets, but on generic
|
||||||
|
`stream` objects which support polling). Example::
|
||||||
|
|
||||||
|
# Instead of:
|
||||||
|
s.settimeout(1.0) # time in seconds
|
||||||
|
s.read(10) # may timeout
|
||||||
|
|
||||||
|
# Use:
|
||||||
|
poller = select.poll()
|
||||||
|
poller.register(s, select.POLLIN)
|
||||||
|
res = poller.poll(1000) # time in milliseconds
|
||||||
|
if not res:
|
||||||
|
# s is still not ready for input, i.e. operation timed out
|
||||||
|
|
||||||
|
Difference to CPython
|
||||||
|
|
||||||
|
CPython raises a ``socket.timeout`` exception in case of timeout,
|
||||||
|
which is an `OSError` subclass. MicroPython raises an OSError directly
|
||||||
|
instead. If you use ``except OSError:`` to catch the exception,
|
||||||
|
your code will work both in MicroPython and CPython.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def sendall(self, bytes) -> int:
|
||||||
|
"""
|
||||||
|
Send all data to the socket. The socket must be connected to a remote socket.
|
||||||
|
Unlike `send()`, this method will try to send all of data, by sending data
|
||||||
|
chunk by chunk consecutively.
|
||||||
|
|
||||||
|
The behaviour of this method on non-blocking sockets is undefined. Due to this,
|
||||||
|
on MicroPython, it's recommended to use `write()` method instead, which
|
||||||
|
has the same "no short writes" policy for blocking sockets, and will return
|
||||||
|
number of bytes sent on non-blocking sockets.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def setsockopt(self, level, optname, value) -> None:
|
||||||
|
"""
|
||||||
|
Set the value of the given socket option. The needed symbolic constants are defined in the
|
||||||
|
socket module (SO_* etc.). The *value* can be an integer or a bytes-like object representing
|
||||||
|
a buffer.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def setblocking(self, flag) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Set blocking or non-blocking mode of the socket: if flag is false, the socket is set to non-blocking,
|
||||||
|
else to blocking mode.
|
||||||
|
|
||||||
|
This method is a shorthand for certain `settimeout()` calls:
|
||||||
|
|
||||||
|
* ``sock.setblocking(True)`` is equivalent to ``sock.settimeout(None)``
|
||||||
|
* ``sock.setblocking(False)`` is equivalent to ``sock.settimeout(0)``
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def sendto(self, bytes, address) -> None:
|
||||||
|
"""
|
||||||
|
Send data to the socket. The socket should not be connected to a remote socket, since the
|
||||||
|
destination socket is specified by *address*.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def readline(self) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Read a line, ending in a newline character.
|
||||||
|
|
||||||
|
Return value: the line read.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def readinto(self, buf, nbytes: Optional[Any] = None) -> int:
|
||||||
|
"""
|
||||||
|
Read bytes into the *buf*. If *nbytes* is specified then read at most
|
||||||
|
that many bytes. Otherwise, read at most *len(buf)* bytes. Just as
|
||||||
|
`read()`, this method follows "no short reads" policy.
|
||||||
|
|
||||||
|
Return value: number of bytes read and stored into *buf*.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def read(self, size: Optional[Any] = None) -> bytes:
|
||||||
|
"""
|
||||||
|
Read up to size bytes from the socket. Return a bytes object. If *size* is not given, it
|
||||||
|
reads all data available from the socket until EOF; as such the method will not return until
|
||||||
|
the socket is closed. This function tries to read as much data as
|
||||||
|
requested (no "short reads"). This may be not possible with
|
||||||
|
non-blocking socket though, and then less data will be returned.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def close(self) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Mark the socket closed and release all resources. Once that happens, all future operations
|
||||||
|
on the socket object will fail. The remote end will receive EOF indication if
|
||||||
|
supported by protocol.
|
||||||
|
|
||||||
|
Sockets are automatically closed when they are garbage-collected, but it is recommended
|
||||||
|
to `close()` them explicitly as soon you finished working with them.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def connect(self, address) -> None:
|
||||||
|
"""
|
||||||
|
Connect to a remote socket at *address*.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def send(self, bytes) -> int:
|
||||||
|
"""
|
||||||
|
Send data to the socket. The socket must be connected to a remote socket.
|
||||||
|
Returns number of bytes sent, which may be smaller than the length of data
|
||||||
|
("short write").
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def bind(self, address) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Bind the socket to *address*. The socket must not already be bound.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def accept(self) -> Tuple:
|
||||||
|
"""
|
||||||
|
Accept a connection. The socket must be bound to an address and listening for connections.
|
||||||
|
The return value is a pair (conn, address) where conn is a new socket object usable to send
|
||||||
|
and receive data on the connection, and address is the address bound to the socket on the
|
||||||
|
other end of the connection.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def write(self, buf) -> int:
|
||||||
|
"""
|
||||||
|
Write the buffer of bytes to the socket. This function will try to
|
||||||
|
write all data to a socket (no "short writes"). This may be not possible
|
||||||
|
with a non-blocking socket though, and returned value will be less than
|
||||||
|
the length of *buf*.
|
||||||
|
|
||||||
|
Return value: number of bytes written.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def __init__(self, af=AF_INET, type=SOCK_STREAM, proto=IPPROTO_TCP, /) -> None: ...
|
||||||
74
.vscode/Pico-W-Stub/ssl.pyi
vendored
Normal file
74
.vscode/Pico-W-Stub/ssl.pyi
vendored
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
"""
|
||||||
|
TLS/SSL wrapper for socket objects.
|
||||||
|
|
||||||
|
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/ssl.html
|
||||||
|
|
||||||
|
CPython module: :mod:`python:ssl` https://docs.python.org/3/library/ssl.html .
|
||||||
|
|
||||||
|
This module provides access to Transport Layer Security (previously and
|
||||||
|
widely known as “Secure Sockets Layer”) encryption and peer authentication
|
||||||
|
facilities for network sockets, both client-side and server-side.
|
||||||
|
"""
|
||||||
|
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||||
|
from stdlib.ssl import *
|
||||||
|
from typing import IO
|
||||||
|
|
||||||
|
CERT_REQUIRED: int
|
||||||
|
PROTOCOL_TLS_CLIENT: int
|
||||||
|
PROTOCOL_TLS_SERVER: int
|
||||||
|
CERT_OPTIONAL: int
|
||||||
|
CERT_NONE: int
|
||||||
|
|
||||||
|
def wrap_socket(
|
||||||
|
sock, server_side=False, keyfile=None, certfile=None, cert_reqs=None, cadata=None, server_hostname=None, do_handshake=True
|
||||||
|
) -> IO:
|
||||||
|
"""
|
||||||
|
Wrap the given *sock* and return a new wrapped-socket object. The implementation
|
||||||
|
of this function is to first create an `SSLContext` and then call the `SSLContext.wrap_socket`
|
||||||
|
method on that context object. The arguments *sock*, *server_side* and *server_hostname* are
|
||||||
|
passed through unchanged to the method call. The argument *do_handshake* is passed through as
|
||||||
|
*do_handshake_on_connect*. The remaining arguments have the following behaviour:
|
||||||
|
|
||||||
|
- *cert_reqs* determines whether the peer (server or client) must present a valid certificate.
|
||||||
|
Note that for mbedtls based ports, ``ssl.CERT_NONE`` and ``ssl.CERT_OPTIONAL`` will not
|
||||||
|
validate any certificate, only ``ssl.CERT_REQUIRED`` will.
|
||||||
|
|
||||||
|
- *cadata* is a bytes object containing the CA certificate chain (in DER format) that will
|
||||||
|
validate the peer's certificate. Currently only a single DER-encoded certificate is supported.
|
||||||
|
|
||||||
|
Depending on the underlying module implementation in a particular
|
||||||
|
:term:`MicroPython port`, some or all keyword arguments above may be not supported.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
|
||||||
|
class SSLContext:
|
||||||
|
"""
|
||||||
|
Create a new SSLContext instance. The *protocol* argument must be one of the ``PROTOCOL_*``
|
||||||
|
constants.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def wrap_socket(self, sock, *, server_side=False, do_handshake_on_connect=True, server_hostname=None) -> Incomplete:
|
||||||
|
"""
|
||||||
|
Takes a `stream` *sock* (usually socket.socket instance of ``SOCK_STREAM`` type),
|
||||||
|
and returns an instance of ssl.SSLSocket, wrapping the underlying stream.
|
||||||
|
The returned object has the usual `stream` interface methods like
|
||||||
|
``read()``, ``write()``, etc.
|
||||||
|
|
||||||
|
- *server_side* selects whether the wrapped socket is on the server or client side.
|
||||||
|
A server-side SSL socket should be created from a normal socket returned from
|
||||||
|
:meth:`~socket.socket.accept()` on a non-SSL listening server socket.
|
||||||
|
|
||||||
|
- *do_handshake_on_connect* determines whether the handshake is done as part of the ``wrap_socket``
|
||||||
|
or whether it is deferred to be done as part of the initial reads or writes
|
||||||
|
For blocking sockets doing the handshake immediately is standard. For non-blocking
|
||||||
|
sockets (i.e. when the *sock* passed into ``wrap_socket`` is in non-blocking mode)
|
||||||
|
the handshake should generally be deferred because otherwise ``wrap_socket`` blocks
|
||||||
|
until it completes. Note that in AXTLS the handshake can be deferred until the first
|
||||||
|
read or write but it then blocks until completion.
|
||||||
|
|
||||||
|
- *server_hostname* is for use as a client, and sets the hostname to check against the received
|
||||||
|
server certificate. It also sets the name for Server Name Indication (SNI), allowing the server
|
||||||
|
to present the proper certificate.
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
def __init__(self, protocol, /) -> None: ...
|
||||||
36
.vscode/Pico-W-Stub/stdlib/__future__.pyi
vendored
Normal file
36
.vscode/Pico-W-Stub/stdlib/__future__.pyi
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
from typing_extensions import TypeAlias
|
||||||
|
|
||||||
|
_VersionInfo: TypeAlias = tuple[int, int, int, str, int]
|
||||||
|
|
||||||
|
class _Feature:
|
||||||
|
def __init__(self, optionalRelease: _VersionInfo, mandatoryRelease: _VersionInfo | None, compiler_flag: int) -> None: ...
|
||||||
|
def getOptionalRelease(self) -> _VersionInfo: ...
|
||||||
|
def getMandatoryRelease(self) -> _VersionInfo | None: ...
|
||||||
|
compiler_flag: int
|
||||||
|
|
||||||
|
absolute_import: _Feature
|
||||||
|
division: _Feature
|
||||||
|
generators: _Feature
|
||||||
|
nested_scopes: _Feature
|
||||||
|
print_function: _Feature
|
||||||
|
unicode_literals: _Feature
|
||||||
|
with_statement: _Feature
|
||||||
|
barry_as_FLUFL: _Feature
|
||||||
|
generator_stop: _Feature
|
||||||
|
annotations: _Feature
|
||||||
|
|
||||||
|
all_feature_names: list[str] # undocumented
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
"all_feature_names",
|
||||||
|
"absolute_import",
|
||||||
|
"division",
|
||||||
|
"generators",
|
||||||
|
"nested_scopes",
|
||||||
|
"print_function",
|
||||||
|
"unicode_literals",
|
||||||
|
"with_statement",
|
||||||
|
"barry_as_FLUFL",
|
||||||
|
"generator_stop",
|
||||||
|
"annotations",
|
||||||
|
]
|
||||||
573
.vscode/Pico-W-Stub/stdlib/_ast.pyi
vendored
Normal file
573
.vscode/Pico-W-Stub/stdlib/_ast.pyi
vendored
Normal file
@@ -0,0 +1,573 @@
|
|||||||
|
import sys
|
||||||
|
from typing import Any, ClassVar
|
||||||
|
from typing_extensions import Literal, TypeAlias
|
||||||
|
|
||||||
|
PyCF_ONLY_AST: Literal[1024]
|
||||||
|
if sys.version_info >= (3, 8):
|
||||||
|
PyCF_TYPE_COMMENTS: Literal[4096]
|
||||||
|
PyCF_ALLOW_TOP_LEVEL_AWAIT: Literal[8192]
|
||||||
|
|
||||||
|
_Identifier: TypeAlias = str
|
||||||
|
|
||||||
|
class AST:
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ()
|
||||||
|
_attributes: ClassVar[tuple[str, ...]]
|
||||||
|
_fields: ClassVar[tuple[str, ...]]
|
||||||
|
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
||||||
|
# TODO: Not all nodes have all of the following attributes
|
||||||
|
lineno: int
|
||||||
|
col_offset: int
|
||||||
|
if sys.version_info >= (3, 8):
|
||||||
|
end_lineno: int | None
|
||||||
|
end_col_offset: int | None
|
||||||
|
type_comment: str | None
|
||||||
|
|
||||||
|
class mod(AST): ...
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 8):
|
||||||
|
class type_ignore(AST): ...
|
||||||
|
|
||||||
|
class TypeIgnore(type_ignore):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("lineno", "tag")
|
||||||
|
tag: str
|
||||||
|
|
||||||
|
class FunctionType(mod):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("argtypes", "returns")
|
||||||
|
argtypes: list[expr]
|
||||||
|
returns: expr
|
||||||
|
|
||||||
|
class Module(mod):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("body", "type_ignores")
|
||||||
|
body: list[stmt]
|
||||||
|
if sys.version_info >= (3, 8):
|
||||||
|
type_ignores: list[TypeIgnore]
|
||||||
|
|
||||||
|
class Interactive(mod):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("body",)
|
||||||
|
body: list[stmt]
|
||||||
|
|
||||||
|
class Expression(mod):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("body",)
|
||||||
|
body: expr
|
||||||
|
|
||||||
|
class stmt(AST): ...
|
||||||
|
|
||||||
|
class FunctionDef(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("name", "args", "body", "decorator_list", "returns", "type_comment")
|
||||||
|
name: _Identifier
|
||||||
|
args: arguments
|
||||||
|
body: list[stmt]
|
||||||
|
decorator_list: list[expr]
|
||||||
|
returns: expr | None
|
||||||
|
|
||||||
|
class AsyncFunctionDef(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("name", "args", "body", "decorator_list", "returns", "type_comment")
|
||||||
|
name: _Identifier
|
||||||
|
args: arguments
|
||||||
|
body: list[stmt]
|
||||||
|
decorator_list: list[expr]
|
||||||
|
returns: expr | None
|
||||||
|
|
||||||
|
class ClassDef(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("name", "bases", "keywords", "body", "decorator_list")
|
||||||
|
name: _Identifier
|
||||||
|
bases: list[expr]
|
||||||
|
keywords: list[keyword]
|
||||||
|
body: list[stmt]
|
||||||
|
decorator_list: list[expr]
|
||||||
|
|
||||||
|
class Return(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("value",)
|
||||||
|
value: expr | None
|
||||||
|
|
||||||
|
class Delete(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("targets",)
|
||||||
|
targets: list[expr]
|
||||||
|
|
||||||
|
class Assign(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("targets", "value", "type_comment")
|
||||||
|
targets: list[expr]
|
||||||
|
value: expr
|
||||||
|
|
||||||
|
class AugAssign(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("target", "op", "value")
|
||||||
|
target: expr
|
||||||
|
op: operator
|
||||||
|
value: expr
|
||||||
|
|
||||||
|
class AnnAssign(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("target", "annotation", "value", "simple")
|
||||||
|
target: expr
|
||||||
|
annotation: expr
|
||||||
|
value: expr | None
|
||||||
|
simple: int
|
||||||
|
|
||||||
|
class For(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("target", "iter", "body", "orelse", "type_comment")
|
||||||
|
target: expr
|
||||||
|
iter: expr
|
||||||
|
body: list[stmt]
|
||||||
|
orelse: list[stmt]
|
||||||
|
|
||||||
|
class AsyncFor(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("target", "iter", "body", "orelse", "type_comment")
|
||||||
|
target: expr
|
||||||
|
iter: expr
|
||||||
|
body: list[stmt]
|
||||||
|
orelse: list[stmt]
|
||||||
|
|
||||||
|
class While(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("test", "body", "orelse")
|
||||||
|
test: expr
|
||||||
|
body: list[stmt]
|
||||||
|
orelse: list[stmt]
|
||||||
|
|
||||||
|
class If(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("test", "body", "orelse")
|
||||||
|
test: expr
|
||||||
|
body: list[stmt]
|
||||||
|
orelse: list[stmt]
|
||||||
|
|
||||||
|
class With(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("items", "body", "type_comment")
|
||||||
|
items: list[withitem]
|
||||||
|
body: list[stmt]
|
||||||
|
|
||||||
|
class AsyncWith(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("items", "body", "type_comment")
|
||||||
|
items: list[withitem]
|
||||||
|
body: list[stmt]
|
||||||
|
|
||||||
|
class Raise(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("exc", "cause")
|
||||||
|
exc: expr | None
|
||||||
|
cause: expr | None
|
||||||
|
|
||||||
|
class Try(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("body", "handlers", "orelse", "finalbody")
|
||||||
|
body: list[stmt]
|
||||||
|
handlers: list[ExceptHandler]
|
||||||
|
orelse: list[stmt]
|
||||||
|
finalbody: list[stmt]
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
class TryStar(stmt):
|
||||||
|
__match_args__ = ("body", "handlers", "orelse", "finalbody")
|
||||||
|
body: list[stmt]
|
||||||
|
handlers: list[ExceptHandler]
|
||||||
|
orelse: list[stmt]
|
||||||
|
finalbody: list[stmt]
|
||||||
|
|
||||||
|
class Assert(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("test", "msg")
|
||||||
|
test: expr
|
||||||
|
msg: expr | None
|
||||||
|
|
||||||
|
class Import(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("names",)
|
||||||
|
names: list[alias]
|
||||||
|
|
||||||
|
class ImportFrom(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("module", "names", "level")
|
||||||
|
module: str | None
|
||||||
|
names: list[alias]
|
||||||
|
level: int
|
||||||
|
|
||||||
|
class Global(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("names",)
|
||||||
|
names: list[_Identifier]
|
||||||
|
|
||||||
|
class Nonlocal(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("names",)
|
||||||
|
names: list[_Identifier]
|
||||||
|
|
||||||
|
class Expr(stmt):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("value",)
|
||||||
|
value: expr
|
||||||
|
|
||||||
|
class Pass(stmt): ...
|
||||||
|
class Break(stmt): ...
|
||||||
|
class Continue(stmt): ...
|
||||||
|
class expr(AST): ...
|
||||||
|
|
||||||
|
class BoolOp(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("op", "values")
|
||||||
|
op: boolop
|
||||||
|
values: list[expr]
|
||||||
|
|
||||||
|
class BinOp(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("left", "op", "right")
|
||||||
|
left: expr
|
||||||
|
op: operator
|
||||||
|
right: expr
|
||||||
|
|
||||||
|
class UnaryOp(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("op", "operand")
|
||||||
|
op: unaryop
|
||||||
|
operand: expr
|
||||||
|
|
||||||
|
class Lambda(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("args", "body")
|
||||||
|
args: arguments
|
||||||
|
body: expr
|
||||||
|
|
||||||
|
class IfExp(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("test", "body", "orelse")
|
||||||
|
test: expr
|
||||||
|
body: expr
|
||||||
|
orelse: expr
|
||||||
|
|
||||||
|
class Dict(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("keys", "values")
|
||||||
|
keys: list[expr | None]
|
||||||
|
values: list[expr]
|
||||||
|
|
||||||
|
class Set(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("elts",)
|
||||||
|
elts: list[expr]
|
||||||
|
|
||||||
|
class ListComp(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("elt", "generators")
|
||||||
|
elt: expr
|
||||||
|
generators: list[comprehension]
|
||||||
|
|
||||||
|
class SetComp(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("elt", "generators")
|
||||||
|
elt: expr
|
||||||
|
generators: list[comprehension]
|
||||||
|
|
||||||
|
class DictComp(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("key", "value", "generators")
|
||||||
|
key: expr
|
||||||
|
value: expr
|
||||||
|
generators: list[comprehension]
|
||||||
|
|
||||||
|
class GeneratorExp(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("elt", "generators")
|
||||||
|
elt: expr
|
||||||
|
generators: list[comprehension]
|
||||||
|
|
||||||
|
class Await(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("value",)
|
||||||
|
value: expr
|
||||||
|
|
||||||
|
class Yield(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("value",)
|
||||||
|
value: expr | None
|
||||||
|
|
||||||
|
class YieldFrom(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("value",)
|
||||||
|
value: expr
|
||||||
|
|
||||||
|
class Compare(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("left", "ops", "comparators")
|
||||||
|
left: expr
|
||||||
|
ops: list[cmpop]
|
||||||
|
comparators: list[expr]
|
||||||
|
|
||||||
|
class Call(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("func", "args", "keywords")
|
||||||
|
func: expr
|
||||||
|
args: list[expr]
|
||||||
|
keywords: list[keyword]
|
||||||
|
|
||||||
|
class FormattedValue(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("value", "conversion", "format_spec")
|
||||||
|
value: expr
|
||||||
|
conversion: int
|
||||||
|
format_spec: expr | None
|
||||||
|
|
||||||
|
class JoinedStr(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("values",)
|
||||||
|
values: list[expr]
|
||||||
|
|
||||||
|
if sys.version_info < (3, 8):
|
||||||
|
class Num(expr): # Deprecated in 3.8; use Constant
|
||||||
|
n: complex
|
||||||
|
|
||||||
|
class Str(expr): # Deprecated in 3.8; use Constant
|
||||||
|
s: str
|
||||||
|
|
||||||
|
class Bytes(expr): # Deprecated in 3.8; use Constant
|
||||||
|
s: bytes
|
||||||
|
|
||||||
|
class NameConstant(expr): # Deprecated in 3.8; use Constant
|
||||||
|
value: Any
|
||||||
|
|
||||||
|
class Ellipsis(expr): ... # Deprecated in 3.8; use Constant
|
||||||
|
|
||||||
|
class Constant(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("value", "kind")
|
||||||
|
value: Any # None, str, bytes, bool, int, float, complex, Ellipsis
|
||||||
|
kind: str | None
|
||||||
|
# Aliases for value, for backwards compatibility
|
||||||
|
s: Any
|
||||||
|
n: complex
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 8):
|
||||||
|
class NamedExpr(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("target", "value")
|
||||||
|
target: expr
|
||||||
|
value: expr
|
||||||
|
|
||||||
|
class Attribute(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("value", "attr", "ctx")
|
||||||
|
value: expr
|
||||||
|
attr: _Identifier
|
||||||
|
ctx: expr_context
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 9):
|
||||||
|
_Slice: TypeAlias = expr
|
||||||
|
else:
|
||||||
|
class slice(AST): ...
|
||||||
|
_Slice: TypeAlias = slice
|
||||||
|
|
||||||
|
class Slice(_Slice):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("lower", "upper", "step")
|
||||||
|
lower: expr | None
|
||||||
|
upper: expr | None
|
||||||
|
step: expr | None
|
||||||
|
|
||||||
|
if sys.version_info < (3, 9):
|
||||||
|
class ExtSlice(slice):
|
||||||
|
dims: list[slice]
|
||||||
|
|
||||||
|
class Index(slice):
|
||||||
|
value: expr
|
||||||
|
|
||||||
|
class Subscript(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("value", "slice", "ctx")
|
||||||
|
value: expr
|
||||||
|
slice: _Slice
|
||||||
|
ctx: expr_context
|
||||||
|
|
||||||
|
class Starred(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("value", "ctx")
|
||||||
|
value: expr
|
||||||
|
ctx: expr_context
|
||||||
|
|
||||||
|
class Name(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("id", "ctx")
|
||||||
|
id: _Identifier
|
||||||
|
ctx: expr_context
|
||||||
|
|
||||||
|
class List(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("elts", "ctx")
|
||||||
|
elts: list[expr]
|
||||||
|
ctx: expr_context
|
||||||
|
|
||||||
|
class Tuple(expr):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("elts", "ctx")
|
||||||
|
elts: list[expr]
|
||||||
|
ctx: expr_context
|
||||||
|
if sys.version_info >= (3, 9):
|
||||||
|
dims: list[expr]
|
||||||
|
|
||||||
|
class expr_context(AST): ...
|
||||||
|
|
||||||
|
if sys.version_info < (3, 9):
|
||||||
|
class AugLoad(expr_context): ...
|
||||||
|
class AugStore(expr_context): ...
|
||||||
|
class Param(expr_context): ...
|
||||||
|
|
||||||
|
class Suite(mod):
|
||||||
|
body: list[stmt]
|
||||||
|
|
||||||
|
class Del(expr_context): ...
|
||||||
|
class Load(expr_context): ...
|
||||||
|
class Store(expr_context): ...
|
||||||
|
class boolop(AST): ...
|
||||||
|
class And(boolop): ...
|
||||||
|
class Or(boolop): ...
|
||||||
|
class operator(AST): ...
|
||||||
|
class Add(operator): ...
|
||||||
|
class BitAnd(operator): ...
|
||||||
|
class BitOr(operator): ...
|
||||||
|
class BitXor(operator): ...
|
||||||
|
class Div(operator): ...
|
||||||
|
class FloorDiv(operator): ...
|
||||||
|
class LShift(operator): ...
|
||||||
|
class Mod(operator): ...
|
||||||
|
class Mult(operator): ...
|
||||||
|
class MatMult(operator): ...
|
||||||
|
class Pow(operator): ...
|
||||||
|
class RShift(operator): ...
|
||||||
|
class Sub(operator): ...
|
||||||
|
class unaryop(AST): ...
|
||||||
|
class Invert(unaryop): ...
|
||||||
|
class Not(unaryop): ...
|
||||||
|
class UAdd(unaryop): ...
|
||||||
|
class USub(unaryop): ...
|
||||||
|
class cmpop(AST): ...
|
||||||
|
class Eq(cmpop): ...
|
||||||
|
class Gt(cmpop): ...
|
||||||
|
class GtE(cmpop): ...
|
||||||
|
class In(cmpop): ...
|
||||||
|
class Is(cmpop): ...
|
||||||
|
class IsNot(cmpop): ...
|
||||||
|
class Lt(cmpop): ...
|
||||||
|
class LtE(cmpop): ...
|
||||||
|
class NotEq(cmpop): ...
|
||||||
|
class NotIn(cmpop): ...
|
||||||
|
|
||||||
|
class comprehension(AST):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("target", "iter", "ifs", "is_async")
|
||||||
|
target: expr
|
||||||
|
iter: expr
|
||||||
|
ifs: list[expr]
|
||||||
|
is_async: int
|
||||||
|
|
||||||
|
class excepthandler(AST): ...
|
||||||
|
|
||||||
|
class ExceptHandler(excepthandler):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("type", "name", "body")
|
||||||
|
type: expr | None
|
||||||
|
name: _Identifier | None
|
||||||
|
body: list[stmt]
|
||||||
|
|
||||||
|
class arguments(AST):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("posonlyargs", "args", "vararg", "kwonlyargs", "kw_defaults", "kwarg", "defaults")
|
||||||
|
if sys.version_info >= (3, 8):
|
||||||
|
posonlyargs: list[arg]
|
||||||
|
args: list[arg]
|
||||||
|
vararg: arg | None
|
||||||
|
kwonlyargs: list[arg]
|
||||||
|
kw_defaults: list[expr | None]
|
||||||
|
kwarg: arg | None
|
||||||
|
defaults: list[expr]
|
||||||
|
|
||||||
|
class arg(AST):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("arg", "annotation", "type_comment")
|
||||||
|
arg: _Identifier
|
||||||
|
annotation: expr | None
|
||||||
|
|
||||||
|
class keyword(AST):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("arg", "value")
|
||||||
|
arg: _Identifier | None
|
||||||
|
value: expr
|
||||||
|
|
||||||
|
class alias(AST):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("name", "asname")
|
||||||
|
name: _Identifier
|
||||||
|
asname: _Identifier | None
|
||||||
|
|
||||||
|
class withitem(AST):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
__match_args__ = ("context_expr", "optional_vars")
|
||||||
|
context_expr: expr
|
||||||
|
optional_vars: expr | None
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
class Match(stmt):
|
||||||
|
__match_args__ = ("subject", "cases")
|
||||||
|
subject: expr
|
||||||
|
cases: list[match_case]
|
||||||
|
|
||||||
|
class pattern(AST): ...
|
||||||
|
# Without the alias, Pyright complains variables named pattern are recursively defined
|
||||||
|
_Pattern: TypeAlias = pattern
|
||||||
|
|
||||||
|
class match_case(AST):
|
||||||
|
__match_args__ = ("pattern", "guard", "body")
|
||||||
|
pattern: _Pattern
|
||||||
|
guard: expr | None
|
||||||
|
body: list[stmt]
|
||||||
|
|
||||||
|
class MatchValue(pattern):
|
||||||
|
__match_args__ = ("value",)
|
||||||
|
value: expr
|
||||||
|
|
||||||
|
class MatchSingleton(pattern):
|
||||||
|
__match_args__ = ("value",)
|
||||||
|
value: Literal[True, False, None]
|
||||||
|
|
||||||
|
class MatchSequence(pattern):
|
||||||
|
__match_args__ = ("patterns",)
|
||||||
|
patterns: list[pattern]
|
||||||
|
|
||||||
|
class MatchStar(pattern):
|
||||||
|
__match_args__ = ("name",)
|
||||||
|
name: _Identifier | None
|
||||||
|
|
||||||
|
class MatchMapping(pattern):
|
||||||
|
__match_args__ = ("keys", "patterns", "rest")
|
||||||
|
keys: list[expr]
|
||||||
|
patterns: list[pattern]
|
||||||
|
rest: _Identifier | None
|
||||||
|
|
||||||
|
class MatchClass(pattern):
|
||||||
|
__match_args__ = ("cls", "patterns", "kwd_attrs", "kwd_patterns")
|
||||||
|
cls: expr
|
||||||
|
patterns: list[pattern]
|
||||||
|
kwd_attrs: list[_Identifier]
|
||||||
|
kwd_patterns: list[pattern]
|
||||||
|
|
||||||
|
class MatchAs(pattern):
|
||||||
|
__match_args__ = ("pattern", "name")
|
||||||
|
pattern: _Pattern | None
|
||||||
|
name: _Identifier | None
|
||||||
|
|
||||||
|
class MatchOr(pattern):
|
||||||
|
__match_args__ = ("patterns",)
|
||||||
|
patterns: list[pattern]
|
||||||
136
.vscode/Pico-W-Stub/stdlib/_codecs.pyi
vendored
Normal file
136
.vscode/Pico-W-Stub/stdlib/_codecs.pyi
vendored
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
import codecs
|
||||||
|
import sys
|
||||||
|
from _typeshed import ReadableBuffer
|
||||||
|
from collections.abc import Callable
|
||||||
|
from typing import overload
|
||||||
|
from typing_extensions import Literal, TypeAlias
|
||||||
|
|
||||||
|
# This type is not exposed; it is defined in unicodeobject.c
|
||||||
|
class _EncodingMap:
|
||||||
|
def size(self) -> int: ...
|
||||||
|
|
||||||
|
_CharMap: TypeAlias = dict[int, int] | _EncodingMap
|
||||||
|
_Handler: TypeAlias = Callable[[UnicodeError], tuple[str | bytes, int]]
|
||||||
|
_SearchFunction: TypeAlias = Callable[[str], codecs.CodecInfo | None]
|
||||||
|
|
||||||
|
def register(__search_function: _SearchFunction) -> None: ...
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
def unregister(__search_function: _SearchFunction) -> None: ...
|
||||||
|
|
||||||
|
def register_error(__errors: str, __handler: _Handler) -> None: ...
|
||||||
|
def lookup_error(__name: str) -> _Handler: ...
|
||||||
|
|
||||||
|
# The type ignore on `encode` and `decode` is to avoid issues with overlapping overloads, for more details, see #300
|
||||||
|
# https://docs.python.org/3/library/codecs.html#binary-transforms
|
||||||
|
_BytesToBytesEncoding: TypeAlias = Literal[
|
||||||
|
"base64",
|
||||||
|
"base_64",
|
||||||
|
"base64_codec",
|
||||||
|
"bz2",
|
||||||
|
"bz2_codec",
|
||||||
|
"hex",
|
||||||
|
"hex_codec",
|
||||||
|
"quopri",
|
||||||
|
"quotedprintable",
|
||||||
|
"quoted_printable",
|
||||||
|
"quopri_codec",
|
||||||
|
"uu",
|
||||||
|
"uu_codec",
|
||||||
|
"zip",
|
||||||
|
"zlib",
|
||||||
|
"zlib_codec",
|
||||||
|
]
|
||||||
|
# https://docs.python.org/3/library/codecs.html#text-transforms
|
||||||
|
_StrToStrEncoding: TypeAlias = Literal["rot13", "rot_13"]
|
||||||
|
|
||||||
|
@overload
|
||||||
|
def encode(obj: ReadableBuffer, encoding: _BytesToBytesEncoding, errors: str = ...) -> bytes: ...
|
||||||
|
@overload
|
||||||
|
def encode(obj: str, encoding: _StrToStrEncoding, errors: str = ...) -> str: ... # type: ignore[misc]
|
||||||
|
@overload
|
||||||
|
def encode(obj: str, encoding: str = ..., errors: str = ...) -> bytes: ...
|
||||||
|
@overload
|
||||||
|
def decode(obj: ReadableBuffer, encoding: _BytesToBytesEncoding, errors: str = ...) -> bytes: ... # type: ignore[misc]
|
||||||
|
@overload
|
||||||
|
def decode(obj: str, encoding: _StrToStrEncoding, errors: str = ...) -> str: ...
|
||||||
|
|
||||||
|
# these are documented as text encodings but in practice they also accept str as input
|
||||||
|
@overload
|
||||||
|
def decode(
|
||||||
|
obj: str, encoding: Literal["unicode_escape", "unicode-escape", "raw_unicode_escape", "raw-unicode-escape"], errors: str = ...
|
||||||
|
) -> str: ...
|
||||||
|
|
||||||
|
# hex is officially documented as a bytes to bytes encoding, but it appears to also work with str
|
||||||
|
@overload
|
||||||
|
def decode(obj: str, encoding: Literal["hex", "hex_codec"], errors: str = ...) -> bytes: ...
|
||||||
|
@overload
|
||||||
|
def decode(obj: ReadableBuffer, encoding: str = ..., errors: str = ...) -> str: ...
|
||||||
|
def lookup(__encoding: str) -> codecs.CodecInfo: ...
|
||||||
|
def charmap_build(__map: str) -> _CharMap: ...
|
||||||
|
def ascii_decode(__data: ReadableBuffer, __errors: str | None = ...) -> tuple[str, int]: ...
|
||||||
|
def ascii_encode(__str: str, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
def charmap_decode(__data: ReadableBuffer, __errors: str | None = ..., __mapping: _CharMap | None = ...) -> tuple[str, int]: ...
|
||||||
|
def charmap_encode(__str: str, __errors: str | None = ..., __mapping: _CharMap | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
def escape_decode(__data: str | ReadableBuffer, __errors: str | None = ...) -> tuple[str, int]: ...
|
||||||
|
def escape_encode(__data: bytes, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
def latin_1_decode(__data: ReadableBuffer, __errors: str | None = ...) -> tuple[str, int]: ...
|
||||||
|
def latin_1_encode(__str: str, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 9):
|
||||||
|
def raw_unicode_escape_decode(
|
||||||
|
__data: str | ReadableBuffer, __errors: str | None = ..., __final: bool = ...
|
||||||
|
) -> tuple[str, int]: ...
|
||||||
|
|
||||||
|
else:
|
||||||
|
def raw_unicode_escape_decode(__data: str | ReadableBuffer, __errors: str | None = ...) -> tuple[str, int]: ...
|
||||||
|
|
||||||
|
def raw_unicode_escape_encode(__str: str, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
def readbuffer_encode(__data: str | ReadableBuffer, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 9):
|
||||||
|
def unicode_escape_decode(
|
||||||
|
__data: str | ReadableBuffer, __errors: str | None = ..., __final: bool = ...
|
||||||
|
) -> tuple[str, int]: ...
|
||||||
|
|
||||||
|
else:
|
||||||
|
def unicode_escape_decode(__data: str | ReadableBuffer, __errors: str | None = ...) -> tuple[str, int]: ...
|
||||||
|
|
||||||
|
def unicode_escape_encode(__str: str, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
|
||||||
|
if sys.version_info < (3, 8):
|
||||||
|
def unicode_internal_decode(__obj: str | ReadableBuffer, __errors: str | None = ...) -> tuple[str, int]: ...
|
||||||
|
def unicode_internal_encode(__obj: str | ReadableBuffer, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
|
||||||
|
def utf_16_be_decode(__data: ReadableBuffer, __errors: str | None = ..., __final: int = ...) -> tuple[str, int]: ...
|
||||||
|
def utf_16_be_encode(__str: str, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
def utf_16_decode(__data: ReadableBuffer, __errors: str | None = ..., __final: int = ...) -> tuple[str, int]: ...
|
||||||
|
def utf_16_encode(__str: str, __errors: str | None = ..., __byteorder: int = ...) -> tuple[bytes, int]: ...
|
||||||
|
def utf_16_ex_decode(
|
||||||
|
__data: ReadableBuffer, __errors: str | None = ..., __byteorder: int = ..., __final: int = ...
|
||||||
|
) -> tuple[str, int, int]: ...
|
||||||
|
def utf_16_le_decode(__data: ReadableBuffer, __errors: str | None = ..., __final: int = ...) -> tuple[str, int]: ...
|
||||||
|
def utf_16_le_encode(__str: str, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
def utf_32_be_decode(__data: ReadableBuffer, __errors: str | None = ..., __final: int = ...) -> tuple[str, int]: ...
|
||||||
|
def utf_32_be_encode(__str: str, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
def utf_32_decode(__data: ReadableBuffer, __errors: str | None = ..., __final: int = ...) -> tuple[str, int]: ...
|
||||||
|
def utf_32_encode(__str: str, __errors: str | None = ..., __byteorder: int = ...) -> tuple[bytes, int]: ...
|
||||||
|
def utf_32_ex_decode(
|
||||||
|
__data: ReadableBuffer, __errors: str | None = ..., __byteorder: int = ..., __final: int = ...
|
||||||
|
) -> tuple[str, int, int]: ...
|
||||||
|
def utf_32_le_decode(__data: ReadableBuffer, __errors: str | None = ..., __final: int = ...) -> tuple[str, int]: ...
|
||||||
|
def utf_32_le_encode(__str: str, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
def utf_7_decode(__data: ReadableBuffer, __errors: str | None = ..., __final: int = ...) -> tuple[str, int]: ...
|
||||||
|
def utf_7_encode(__str: str, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
def utf_8_decode(__data: ReadableBuffer, __errors: str | None = ..., __final: int = ...) -> tuple[str, int]: ...
|
||||||
|
def utf_8_encode(__str: str, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
|
||||||
|
if sys.platform == "win32":
|
||||||
|
def mbcs_decode(__data: ReadableBuffer, __errors: str | None = ..., __final: int = ...) -> tuple[str, int]: ...
|
||||||
|
def mbcs_encode(__str: str, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
def code_page_decode(
|
||||||
|
__codepage: int, __data: ReadableBuffer, __errors: str | None = ..., __final: int = ...
|
||||||
|
) -> tuple[str, int]: ...
|
||||||
|
def code_page_encode(__code_page: int, __str: str, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
|
def oem_decode(__data: ReadableBuffer, __errors: str | None = ..., __final: int = ...) -> tuple[str, int]: ...
|
||||||
|
def oem_encode(__str: str, __errors: str | None = ...) -> tuple[bytes, int]: ...
|
||||||
81
.vscode/Pico-W-Stub/stdlib/_collections_abc.pyi
vendored
Normal file
81
.vscode/Pico-W-Stub/stdlib/_collections_abc.pyi
vendored
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
import sys
|
||||||
|
from types import MappingProxyType
|
||||||
|
from typing import ( # noqa: Y027,Y038
|
||||||
|
AbstractSet as Set,
|
||||||
|
AsyncGenerator as AsyncGenerator,
|
||||||
|
AsyncIterable as AsyncIterable,
|
||||||
|
AsyncIterator as AsyncIterator,
|
||||||
|
Awaitable as Awaitable,
|
||||||
|
ByteString as ByteString,
|
||||||
|
Callable as Callable,
|
||||||
|
Collection as Collection,
|
||||||
|
Container as Container,
|
||||||
|
Coroutine as Coroutine,
|
||||||
|
Generator as Generator,
|
||||||
|
Generic,
|
||||||
|
Hashable as Hashable,
|
||||||
|
ItemsView as ItemsView,
|
||||||
|
Iterable as Iterable,
|
||||||
|
Iterator as Iterator,
|
||||||
|
KeysView as KeysView,
|
||||||
|
Mapping as Mapping,
|
||||||
|
MappingView as MappingView,
|
||||||
|
MutableMapping as MutableMapping,
|
||||||
|
MutableSequence as MutableSequence,
|
||||||
|
MutableSet as MutableSet,
|
||||||
|
Reversible as Reversible,
|
||||||
|
Sequence as Sequence,
|
||||||
|
Sized as Sized,
|
||||||
|
TypeVar,
|
||||||
|
ValuesView as ValuesView,
|
||||||
|
)
|
||||||
|
from typing_extensions import final
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
"Awaitable",
|
||||||
|
"Coroutine",
|
||||||
|
"AsyncIterable",
|
||||||
|
"AsyncIterator",
|
||||||
|
"AsyncGenerator",
|
||||||
|
"Hashable",
|
||||||
|
"Iterable",
|
||||||
|
"Iterator",
|
||||||
|
"Generator",
|
||||||
|
"Reversible",
|
||||||
|
"Sized",
|
||||||
|
"Container",
|
||||||
|
"Callable",
|
||||||
|
"Collection",
|
||||||
|
"Set",
|
||||||
|
"MutableSet",
|
||||||
|
"Mapping",
|
||||||
|
"MutableMapping",
|
||||||
|
"MappingView",
|
||||||
|
"KeysView",
|
||||||
|
"ItemsView",
|
||||||
|
"ValuesView",
|
||||||
|
"Sequence",
|
||||||
|
"MutableSequence",
|
||||||
|
"ByteString",
|
||||||
|
]
|
||||||
|
|
||||||
|
_KT_co = TypeVar("_KT_co", covariant=True) # Key type covariant containers.
|
||||||
|
_VT_co = TypeVar("_VT_co", covariant=True) # Value type covariant containers.
|
||||||
|
|
||||||
|
@final
|
||||||
|
class dict_keys(KeysView[_KT_co], Generic[_KT_co, _VT_co]): # undocumented
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
@property
|
||||||
|
def mapping(self) -> MappingProxyType[_KT_co, _VT_co]: ...
|
||||||
|
|
||||||
|
@final
|
||||||
|
class dict_values(ValuesView[_VT_co], Generic[_KT_co, _VT_co]): # undocumented
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
@property
|
||||||
|
def mapping(self) -> MappingProxyType[_KT_co, _VT_co]: ...
|
||||||
|
|
||||||
|
@final
|
||||||
|
class dict_items(ItemsView[_KT_co, _VT_co], Generic[_KT_co, _VT_co]): # undocumented
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
@property
|
||||||
|
def mapping(self) -> MappingProxyType[_KT_co, _VT_co]: ...
|
||||||
281
.vscode/Pico-W-Stub/stdlib/_decimal.pyi
vendored
Normal file
281
.vscode/Pico-W-Stub/stdlib/_decimal.pyi
vendored
Normal file
@@ -0,0 +1,281 @@
|
|||||||
|
import numbers
|
||||||
|
import sys
|
||||||
|
from collections.abc import Container, Sequence
|
||||||
|
from types import TracebackType
|
||||||
|
from typing import Any, ClassVar, NamedTuple, overload
|
||||||
|
from typing_extensions import Final, Literal, Self, TypeAlias
|
||||||
|
|
||||||
|
_Decimal: TypeAlias = Decimal | int
|
||||||
|
_DecimalNew: TypeAlias = Decimal | float | str | tuple[int, Sequence[int], int]
|
||||||
|
_ComparableNum: TypeAlias = Decimal | float | numbers.Rational
|
||||||
|
|
||||||
|
__version__: Final[str]
|
||||||
|
__libmpdec_version__: Final[str]
|
||||||
|
|
||||||
|
class DecimalTuple(NamedTuple):
|
||||||
|
sign: int
|
||||||
|
digits: tuple[int, ...]
|
||||||
|
exponent: int | Literal["n", "N", "F"]
|
||||||
|
|
||||||
|
ROUND_DOWN: str
|
||||||
|
ROUND_HALF_UP: str
|
||||||
|
ROUND_HALF_EVEN: str
|
||||||
|
ROUND_CEILING: str
|
||||||
|
ROUND_FLOOR: str
|
||||||
|
ROUND_UP: str
|
||||||
|
ROUND_HALF_DOWN: str
|
||||||
|
ROUND_05UP: str
|
||||||
|
HAVE_CONTEXTVAR: bool
|
||||||
|
HAVE_THREADS: bool
|
||||||
|
MAX_EMAX: int
|
||||||
|
MAX_PREC: int
|
||||||
|
MIN_EMIN: int
|
||||||
|
MIN_ETINY: int
|
||||||
|
|
||||||
|
class DecimalException(ArithmeticError): ...
|
||||||
|
class Clamped(DecimalException): ...
|
||||||
|
class InvalidOperation(DecimalException): ...
|
||||||
|
class ConversionSyntax(InvalidOperation): ...
|
||||||
|
class DivisionByZero(DecimalException, ZeroDivisionError): ...
|
||||||
|
class DivisionImpossible(InvalidOperation): ...
|
||||||
|
class DivisionUndefined(InvalidOperation, ZeroDivisionError): ...
|
||||||
|
class Inexact(DecimalException): ...
|
||||||
|
class InvalidContext(InvalidOperation): ...
|
||||||
|
class Rounded(DecimalException): ...
|
||||||
|
class Subnormal(DecimalException): ...
|
||||||
|
class Overflow(Inexact, Rounded): ...
|
||||||
|
class Underflow(Inexact, Rounded, Subnormal): ...
|
||||||
|
class FloatOperation(DecimalException, TypeError): ...
|
||||||
|
|
||||||
|
def setcontext(__context: Context) -> None: ...
|
||||||
|
def getcontext() -> Context: ...
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
def localcontext(
|
||||||
|
ctx: Context | None = None,
|
||||||
|
*,
|
||||||
|
prec: int | None = ...,
|
||||||
|
rounding: str | None = ...,
|
||||||
|
Emin: int | None = ...,
|
||||||
|
Emax: int | None = ...,
|
||||||
|
capitals: int | None = ...,
|
||||||
|
clamp: int | None = ...,
|
||||||
|
traps: dict[_TrapType, bool] | None = ...,
|
||||||
|
flags: dict[_TrapType, bool] | None = ...,
|
||||||
|
) -> _ContextManager: ...
|
||||||
|
|
||||||
|
else:
|
||||||
|
def localcontext(ctx: Context | None = None) -> _ContextManager: ...
|
||||||
|
|
||||||
|
class Decimal:
|
||||||
|
def __new__(cls, value: _DecimalNew = ..., context: Context | None = ...) -> Self: ...
|
||||||
|
@classmethod
|
||||||
|
def from_float(cls, __f: float) -> Self: ...
|
||||||
|
def __bool__(self) -> bool: ...
|
||||||
|
def compare(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def __hash__(self) -> int: ...
|
||||||
|
def as_tuple(self) -> DecimalTuple: ...
|
||||||
|
def as_integer_ratio(self) -> tuple[int, int]: ...
|
||||||
|
def to_eng_string(self, context: Context | None = None) -> str: ...
|
||||||
|
def __abs__(self) -> Decimal: ...
|
||||||
|
def __add__(self, __value: _Decimal) -> Decimal: ...
|
||||||
|
def __divmod__(self, __value: _Decimal) -> tuple[Decimal, Decimal]: ...
|
||||||
|
def __eq__(self, __value: object) -> bool: ...
|
||||||
|
def __floordiv__(self, __value: _Decimal) -> Decimal: ...
|
||||||
|
def __ge__(self, __value: _ComparableNum) -> bool: ...
|
||||||
|
def __gt__(self, __value: _ComparableNum) -> bool: ...
|
||||||
|
def __le__(self, __value: _ComparableNum) -> bool: ...
|
||||||
|
def __lt__(self, __value: _ComparableNum) -> bool: ...
|
||||||
|
def __mod__(self, __value: _Decimal) -> Decimal: ...
|
||||||
|
def __mul__(self, __value: _Decimal) -> Decimal: ...
|
||||||
|
def __neg__(self) -> Decimal: ...
|
||||||
|
def __pos__(self) -> Decimal: ...
|
||||||
|
def __pow__(self, __value: _Decimal, __mod: _Decimal | None = None) -> Decimal: ...
|
||||||
|
def __radd__(self, __value: _Decimal) -> Decimal: ...
|
||||||
|
def __rdivmod__(self, __value: _Decimal) -> tuple[Decimal, Decimal]: ...
|
||||||
|
def __rfloordiv__(self, __value: _Decimal) -> Decimal: ...
|
||||||
|
def __rmod__(self, __value: _Decimal) -> Decimal: ...
|
||||||
|
def __rmul__(self, __value: _Decimal) -> Decimal: ...
|
||||||
|
def __rsub__(self, __value: _Decimal) -> Decimal: ...
|
||||||
|
def __rtruediv__(self, __value: _Decimal) -> Decimal: ...
|
||||||
|
def __sub__(self, __value: _Decimal) -> Decimal: ...
|
||||||
|
def __truediv__(self, __value: _Decimal) -> Decimal: ...
|
||||||
|
def remainder_near(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def __float__(self) -> float: ...
|
||||||
|
def __int__(self) -> int: ...
|
||||||
|
def __trunc__(self) -> int: ...
|
||||||
|
@property
|
||||||
|
def real(self) -> Decimal: ...
|
||||||
|
@property
|
||||||
|
def imag(self) -> Decimal: ...
|
||||||
|
def conjugate(self) -> Decimal: ...
|
||||||
|
def __complex__(self) -> complex: ...
|
||||||
|
@overload
|
||||||
|
def __round__(self) -> int: ...
|
||||||
|
@overload
|
||||||
|
def __round__(self, __ndigits: int) -> Decimal: ...
|
||||||
|
def __floor__(self) -> int: ...
|
||||||
|
def __ceil__(self) -> int: ...
|
||||||
|
def fma(self, other: _Decimal, third: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def __rpow__(self, __value: _Decimal, __mod: Context | None = None) -> Decimal: ...
|
||||||
|
def normalize(self, context: Context | None = None) -> Decimal: ...
|
||||||
|
def quantize(self, exp: _Decimal, rounding: str | None = None, context: Context | None = None) -> Decimal: ...
|
||||||
|
def same_quantum(self, other: _Decimal, context: Context | None = None) -> bool: ...
|
||||||
|
def to_integral_exact(self, rounding: str | None = None, context: Context | None = None) -> Decimal: ...
|
||||||
|
def to_integral_value(self, rounding: str | None = None, context: Context | None = None) -> Decimal: ...
|
||||||
|
def to_integral(self, rounding: str | None = None, context: Context | None = None) -> Decimal: ...
|
||||||
|
def sqrt(self, context: Context | None = None) -> Decimal: ...
|
||||||
|
def max(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def min(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def adjusted(self) -> int: ...
|
||||||
|
def canonical(self) -> Decimal: ...
|
||||||
|
def compare_signal(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def compare_total(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def compare_total_mag(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def copy_abs(self) -> Decimal: ...
|
||||||
|
def copy_negate(self) -> Decimal: ...
|
||||||
|
def copy_sign(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def exp(self, context: Context | None = None) -> Decimal: ...
|
||||||
|
def is_canonical(self) -> bool: ...
|
||||||
|
def is_finite(self) -> bool: ...
|
||||||
|
def is_infinite(self) -> bool: ...
|
||||||
|
def is_nan(self) -> bool: ...
|
||||||
|
def is_normal(self, context: Context | None = None) -> bool: ...
|
||||||
|
def is_qnan(self) -> bool: ...
|
||||||
|
def is_signed(self) -> bool: ...
|
||||||
|
def is_snan(self) -> bool: ...
|
||||||
|
def is_subnormal(self, context: Context | None = None) -> bool: ...
|
||||||
|
def is_zero(self) -> bool: ...
|
||||||
|
def ln(self, context: Context | None = None) -> Decimal: ...
|
||||||
|
def log10(self, context: Context | None = None) -> Decimal: ...
|
||||||
|
def logb(self, context: Context | None = None) -> Decimal: ...
|
||||||
|
def logical_and(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def logical_invert(self, context: Context | None = None) -> Decimal: ...
|
||||||
|
def logical_or(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def logical_xor(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def max_mag(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def min_mag(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def next_minus(self, context: Context | None = None) -> Decimal: ...
|
||||||
|
def next_plus(self, context: Context | None = None) -> Decimal: ...
|
||||||
|
def next_toward(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def number_class(self, context: Context | None = None) -> str: ...
|
||||||
|
def radix(self) -> Decimal: ...
|
||||||
|
def rotate(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def scaleb(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def shift(self, other: _Decimal, context: Context | None = None) -> Decimal: ...
|
||||||
|
def __reduce__(self) -> tuple[type[Self], tuple[str]]: ...
|
||||||
|
def __copy__(self) -> Self: ...
|
||||||
|
def __deepcopy__(self, __memo: Any) -> Self: ...
|
||||||
|
def __format__(self, __specifier: str, __context: Context | None = ...) -> str: ...
|
||||||
|
|
||||||
|
class _ContextManager:
|
||||||
|
new_context: Context
|
||||||
|
saved_context: Context
|
||||||
|
def __init__(self, new_context: Context) -> None: ...
|
||||||
|
def __enter__(self) -> Context: ...
|
||||||
|
def __exit__(self, t: type[BaseException] | None, v: BaseException | None, tb: TracebackType | None) -> None: ...
|
||||||
|
|
||||||
|
_TrapType: TypeAlias = type[DecimalException]
|
||||||
|
|
||||||
|
class Context:
|
||||||
|
# TODO: Context doesn't allow you to delete *any* attributes from instances of the class at runtime,
|
||||||
|
# even settable attributes like `prec` and `rounding`,
|
||||||
|
# but that's inexpressable in the stub.
|
||||||
|
# Type checkers either ignore it or misinterpret it
|
||||||
|
# if you add a `def __delattr__(self, __name: str) -> NoReturn` method to the stub
|
||||||
|
prec: int
|
||||||
|
rounding: str
|
||||||
|
Emin: int
|
||||||
|
Emax: int
|
||||||
|
capitals: int
|
||||||
|
clamp: int
|
||||||
|
traps: dict[_TrapType, bool]
|
||||||
|
flags: dict[_TrapType, bool]
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
prec: int | None = ...,
|
||||||
|
rounding: str | None = ...,
|
||||||
|
Emin: int | None = ...,
|
||||||
|
Emax: int | None = ...,
|
||||||
|
capitals: int | None = ...,
|
||||||
|
clamp: int | None = ...,
|
||||||
|
flags: None | dict[_TrapType, bool] | Container[_TrapType] = ...,
|
||||||
|
traps: None | dict[_TrapType, bool] | Container[_TrapType] = ...,
|
||||||
|
_ignored_flags: list[_TrapType] | None = ...,
|
||||||
|
) -> None: ...
|
||||||
|
def __reduce__(self) -> tuple[type[Self], tuple[Any, ...]]: ...
|
||||||
|
def clear_flags(self) -> None: ...
|
||||||
|
def clear_traps(self) -> None: ...
|
||||||
|
def copy(self) -> Context: ...
|
||||||
|
def __copy__(self) -> Context: ...
|
||||||
|
# see https://github.com/python/cpython/issues/94107
|
||||||
|
__hash__: ClassVar[None] # type: ignore[assignment]
|
||||||
|
def Etiny(self) -> int: ...
|
||||||
|
def Etop(self) -> int: ...
|
||||||
|
def create_decimal(self, __num: _DecimalNew = "0") -> Decimal: ...
|
||||||
|
def create_decimal_from_float(self, __f: float) -> Decimal: ...
|
||||||
|
def abs(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def add(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def canonical(self, __x: Decimal) -> Decimal: ...
|
||||||
|
def compare(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def compare_signal(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def compare_total(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def compare_total_mag(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def copy_abs(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def copy_decimal(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def copy_negate(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def copy_sign(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def divide(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def divide_int(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def divmod(self, __x: _Decimal, __y: _Decimal) -> tuple[Decimal, Decimal]: ...
|
||||||
|
def exp(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def fma(self, __x: _Decimal, __y: _Decimal, __z: _Decimal) -> Decimal: ...
|
||||||
|
def is_canonical(self, __x: _Decimal) -> bool: ...
|
||||||
|
def is_finite(self, __x: _Decimal) -> bool: ...
|
||||||
|
def is_infinite(self, __x: _Decimal) -> bool: ...
|
||||||
|
def is_nan(self, __x: _Decimal) -> bool: ...
|
||||||
|
def is_normal(self, __x: _Decimal) -> bool: ...
|
||||||
|
def is_qnan(self, __x: _Decimal) -> bool: ...
|
||||||
|
def is_signed(self, __x: _Decimal) -> bool: ...
|
||||||
|
def is_snan(self, __x: _Decimal) -> bool: ...
|
||||||
|
def is_subnormal(self, __x: _Decimal) -> bool: ...
|
||||||
|
def is_zero(self, __x: _Decimal) -> bool: ...
|
||||||
|
def ln(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def log10(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def logb(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def logical_and(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def logical_invert(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def logical_or(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def logical_xor(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def max(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def max_mag(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def min(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def min_mag(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def minus(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def multiply(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def next_minus(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def next_plus(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def next_toward(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def normalize(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def number_class(self, __x: _Decimal) -> str: ...
|
||||||
|
def plus(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def power(self, a: _Decimal, b: _Decimal, modulo: _Decimal | None = None) -> Decimal: ...
|
||||||
|
def quantize(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def radix(self) -> Decimal: ...
|
||||||
|
def remainder(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def remainder_near(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def rotate(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def same_quantum(self, __x: _Decimal, __y: _Decimal) -> bool: ...
|
||||||
|
def scaleb(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def shift(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def sqrt(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def subtract(self, __x: _Decimal, __y: _Decimal) -> Decimal: ...
|
||||||
|
def to_eng_string(self, __x: _Decimal) -> str: ...
|
||||||
|
def to_sci_string(self, __x: _Decimal) -> str: ...
|
||||||
|
def to_integral_exact(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def to_integral_value(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
def to_integral(self, __x: _Decimal) -> Decimal: ...
|
||||||
|
|
||||||
|
DefaultContext: Context
|
||||||
|
BasicContext: Context
|
||||||
|
ExtendedContext: Context
|
||||||
318
.vscode/Pico-W-Stub/stdlib/_typeshed/__init__.pyi
vendored
Normal file
318
.vscode/Pico-W-Stub/stdlib/_typeshed/__init__.pyi
vendored
Normal file
@@ -0,0 +1,318 @@
|
|||||||
|
# Utility types for typeshed
|
||||||
|
#
|
||||||
|
# See the README.md file in this directory for more information.
|
||||||
|
|
||||||
|
import sys
|
||||||
|
from collections.abc import Awaitable, Callable, Iterable, Sequence
|
||||||
|
from collections.abc import Set as AbstractSet
|
||||||
|
from collections.abc import Sized
|
||||||
|
from dataclasses import Field
|
||||||
|
from os import PathLike
|
||||||
|
from types import FrameType, TracebackType
|
||||||
|
from typing import Any, AnyStr, ClassVar, Generic, Protocol, TypeVar, overload
|
||||||
|
|
||||||
|
from typing_extensions import (Buffer, Final, Literal, LiteralString,
|
||||||
|
TypeAlias, final)
|
||||||
|
|
||||||
|
_KT = TypeVar("_KT")
|
||||||
|
_KT_co = TypeVar("_KT_co", covariant=True)
|
||||||
|
_KT_contra = TypeVar("_KT_contra", contravariant=True)
|
||||||
|
_VT = TypeVar("_VT")
|
||||||
|
_VT_co = TypeVar("_VT_co", covariant=True)
|
||||||
|
_T = TypeVar("_T")
|
||||||
|
_T_co = TypeVar("_T_co", covariant=True)
|
||||||
|
_T_contra = TypeVar("_T_contra", contravariant=True)
|
||||||
|
|
||||||
|
# Use for "self" annotations:
|
||||||
|
# def __enter__(self: Self) -> Self: ...
|
||||||
|
Self = TypeVar("Self") # noqa: Y001
|
||||||
|
|
||||||
|
# covariant version of typing.AnyStr, useful for protocols
|
||||||
|
AnyStr_co = TypeVar("AnyStr_co", str, bytes, covariant=True) # noqa: Y001
|
||||||
|
|
||||||
|
# For partially known annotations. Usually, fields where type annotations
|
||||||
|
# haven't been added are left unannotated, but in some situations this
|
||||||
|
# isn't possible or a type is already partially known. In cases like these,
|
||||||
|
# use Incomplete instead of Any as a marker. For example, use
|
||||||
|
# "Incomplete | None" instead of "Any | None".
|
||||||
|
Incomplete: TypeAlias = Any
|
||||||
|
|
||||||
|
# To describe a function parameter that is unused and will work with anything.
|
||||||
|
Unused: TypeAlias = object
|
||||||
|
|
||||||
|
# Used to mark arguments that default to a sentinel value. This prevents
|
||||||
|
# stubtest from complaining about the default value not matching.
|
||||||
|
#
|
||||||
|
# def foo(x: int | None = sentinel) -> None: ...
|
||||||
|
#
|
||||||
|
# In cases where the sentinel object is exported and can be used by user code,
|
||||||
|
# a construct like this is better:
|
||||||
|
#
|
||||||
|
# _SentinelType = NewType("_SentinelType", object)
|
||||||
|
# sentinel: _SentinelType
|
||||||
|
# def foo(x: int | None | _SentinelType = ...) -> None: ...
|
||||||
|
sentinel = Any # noqa: Y026
|
||||||
|
|
||||||
|
# stable
|
||||||
|
class IdentityFunction(Protocol):
|
||||||
|
def __call__(self, __x: _T) -> _T: ...
|
||||||
|
|
||||||
|
# stable
|
||||||
|
class SupportsNext(Protocol[_T_co]):
|
||||||
|
def __next__(self) -> _T_co: ...
|
||||||
|
|
||||||
|
# stable
|
||||||
|
class SupportsAnext(Protocol[_T_co]):
|
||||||
|
def __anext__(self) -> Awaitable[_T_co]: ...
|
||||||
|
|
||||||
|
# Comparison protocols
|
||||||
|
|
||||||
|
class SupportsDunderLT(Protocol[_T_contra]):
|
||||||
|
def __lt__(self, __other: _T_contra) -> bool: ...
|
||||||
|
|
||||||
|
class SupportsDunderGT(Protocol[_T_contra]):
|
||||||
|
def __gt__(self, __other: _T_contra) -> bool: ...
|
||||||
|
|
||||||
|
class SupportsDunderLE(Protocol[_T_contra]):
|
||||||
|
def __le__(self, __other: _T_contra) -> bool: ...
|
||||||
|
|
||||||
|
class SupportsDunderGE(Protocol[_T_contra]):
|
||||||
|
def __ge__(self, __other: _T_contra) -> bool: ...
|
||||||
|
|
||||||
|
class SupportsAllComparisons(
|
||||||
|
SupportsDunderLT[Any], SupportsDunderGT[Any], SupportsDunderLE[Any], SupportsDunderGE[Any], Protocol
|
||||||
|
): ...
|
||||||
|
|
||||||
|
SupportsRichComparison: TypeAlias = SupportsDunderLT[Any] | SupportsDunderGT[Any]
|
||||||
|
SupportsRichComparisonT = TypeVar("SupportsRichComparisonT", bound=SupportsRichComparison) # noqa: Y001
|
||||||
|
|
||||||
|
# Dunder protocols
|
||||||
|
|
||||||
|
class SupportsAdd(Protocol[_T_contra, _T_co]):
|
||||||
|
def __add__(self, __x: _T_contra) -> _T_co: ...
|
||||||
|
|
||||||
|
class SupportsRAdd(Protocol[_T_contra, _T_co]):
|
||||||
|
def __radd__(self, __x: _T_contra) -> _T_co: ...
|
||||||
|
|
||||||
|
class SupportsSub(Protocol[_T_contra, _T_co]):
|
||||||
|
def __sub__(self, __x: _T_contra) -> _T_co: ...
|
||||||
|
|
||||||
|
class SupportsRSub(Protocol[_T_contra, _T_co]):
|
||||||
|
def __rsub__(self, __x: _T_contra) -> _T_co: ...
|
||||||
|
|
||||||
|
class SupportsDivMod(Protocol[_T_contra, _T_co]):
|
||||||
|
def __divmod__(self, __other: _T_contra) -> _T_co: ...
|
||||||
|
|
||||||
|
class SupportsRDivMod(Protocol[_T_contra, _T_co]):
|
||||||
|
def __rdivmod__(self, __other: _T_contra) -> _T_co: ...
|
||||||
|
|
||||||
|
# This protocol is generic over the iterator type, while Iterable is
|
||||||
|
# generic over the type that is iterated over.
|
||||||
|
class SupportsIter(Protocol[_T_co]):
|
||||||
|
def __iter__(self) -> _T_co: ...
|
||||||
|
|
||||||
|
# This protocol is generic over the iterator type, while AsyncIterable is
|
||||||
|
# generic over the type that is iterated over.
|
||||||
|
class SupportsAiter(Protocol[_T_co]):
|
||||||
|
def __aiter__(self) -> _T_co: ...
|
||||||
|
|
||||||
|
class SupportsLenAndGetItem(Protocol[_T_co]):
|
||||||
|
def __len__(self) -> int: ...
|
||||||
|
def __getitem__(self, __k: int) -> _T_co: ...
|
||||||
|
|
||||||
|
class SupportsTrunc(Protocol):
|
||||||
|
def __trunc__(self) -> int: ...
|
||||||
|
|
||||||
|
# Mapping-like protocols
|
||||||
|
|
||||||
|
# stable
|
||||||
|
class SupportsItems(Protocol[_KT_co, _VT_co]):
|
||||||
|
def items(self) -> AbstractSet[tuple[_KT_co, _VT_co]]: ...
|
||||||
|
|
||||||
|
# stable
|
||||||
|
class SupportsKeysAndGetItem(Protocol[_KT, _VT_co]):
|
||||||
|
def keys(self) -> Iterable[_KT]: ...
|
||||||
|
def __getitem__(self, __key: _KT) -> _VT_co: ...
|
||||||
|
|
||||||
|
# stable
|
||||||
|
class SupportsGetItem(Protocol[_KT_contra, _VT_co]):
|
||||||
|
def __contains__(self, __x: Any) -> bool: ...
|
||||||
|
def __getitem__(self, __key: _KT_contra) -> _VT_co: ...
|
||||||
|
|
||||||
|
# stable
|
||||||
|
class SupportsItemAccess(SupportsGetItem[_KT_contra, _VT], Protocol[_KT_contra, _VT]):
|
||||||
|
def __setitem__(self, __key: _KT_contra, __value: _VT) -> None: ...
|
||||||
|
def __delitem__(self, __key: _KT_contra) -> None: ...
|
||||||
|
|
||||||
|
StrPath: TypeAlias = str | PathLike[str] # stable
|
||||||
|
BytesPath: TypeAlias = bytes | PathLike[bytes] # stable
|
||||||
|
GenericPath: TypeAlias = AnyStr | PathLike[AnyStr]
|
||||||
|
StrOrBytesPath: TypeAlias = str | bytes | PathLike[str] | PathLike[bytes] # stable
|
||||||
|
|
||||||
|
OpenTextModeUpdating: TypeAlias = Literal[
|
||||||
|
"r+",
|
||||||
|
"+r",
|
||||||
|
"rt+",
|
||||||
|
"r+t",
|
||||||
|
"+rt",
|
||||||
|
"tr+",
|
||||||
|
"t+r",
|
||||||
|
"+tr",
|
||||||
|
"w+",
|
||||||
|
"+w",
|
||||||
|
"wt+",
|
||||||
|
"w+t",
|
||||||
|
"+wt",
|
||||||
|
"tw+",
|
||||||
|
"t+w",
|
||||||
|
"+tw",
|
||||||
|
"a+",
|
||||||
|
"+a",
|
||||||
|
"at+",
|
||||||
|
"a+t",
|
||||||
|
"+at",
|
||||||
|
"ta+",
|
||||||
|
"t+a",
|
||||||
|
"+ta",
|
||||||
|
"x+",
|
||||||
|
"+x",
|
||||||
|
"xt+",
|
||||||
|
"x+t",
|
||||||
|
"+xt",
|
||||||
|
"tx+",
|
||||||
|
"t+x",
|
||||||
|
"+tx",
|
||||||
|
]
|
||||||
|
OpenTextModeWriting: TypeAlias = Literal["w", "wt", "tw", "a", "at", "ta", "x", "xt", "tx"]
|
||||||
|
OpenTextModeReading: TypeAlias = Literal["r", "rt", "tr", "U", "rU", "Ur", "rtU", "rUt", "Urt", "trU", "tUr", "Utr"]
|
||||||
|
OpenTextMode: TypeAlias = OpenTextModeUpdating | OpenTextModeWriting | OpenTextModeReading
|
||||||
|
OpenBinaryModeUpdating: TypeAlias = Literal[
|
||||||
|
"rb+",
|
||||||
|
"r+b",
|
||||||
|
"+rb",
|
||||||
|
"br+",
|
||||||
|
"b+r",
|
||||||
|
"+br",
|
||||||
|
"wb+",
|
||||||
|
"w+b",
|
||||||
|
"+wb",
|
||||||
|
"bw+",
|
||||||
|
"b+w",
|
||||||
|
"+bw",
|
||||||
|
"ab+",
|
||||||
|
"a+b",
|
||||||
|
"+ab",
|
||||||
|
"ba+",
|
||||||
|
"b+a",
|
||||||
|
"+ba",
|
||||||
|
"xb+",
|
||||||
|
"x+b",
|
||||||
|
"+xb",
|
||||||
|
"bx+",
|
||||||
|
"b+x",
|
||||||
|
"+bx",
|
||||||
|
]
|
||||||
|
OpenBinaryModeWriting: TypeAlias = Literal["wb", "bw", "ab", "ba", "xb", "bx"]
|
||||||
|
OpenBinaryModeReading: TypeAlias = Literal["rb", "br", "rbU", "rUb", "Urb", "brU", "bUr", "Ubr"]
|
||||||
|
OpenBinaryMode: TypeAlias = OpenBinaryModeUpdating | OpenBinaryModeReading | OpenBinaryModeWriting
|
||||||
|
|
||||||
|
# stable
|
||||||
|
class HasFileno(Protocol):
|
||||||
|
def fileno(self) -> int: ...
|
||||||
|
|
||||||
|
FileDescriptor: TypeAlias = int # stable
|
||||||
|
FileDescriptorLike: TypeAlias = int | HasFileno # stable
|
||||||
|
FileDescriptorOrPath: TypeAlias = int | StrOrBytesPath
|
||||||
|
|
||||||
|
# stable
|
||||||
|
class SupportsRead(Protocol[_T_co]):
|
||||||
|
def read(self, __length: int = ...) -> _T_co: ...
|
||||||
|
|
||||||
|
# stable
|
||||||
|
class SupportsReadline(Protocol[_T_co]):
|
||||||
|
def readline(self, __length: int = ...) -> _T_co: ...
|
||||||
|
|
||||||
|
# stable
|
||||||
|
class SupportsNoArgReadline(Protocol[_T_co]):
|
||||||
|
def readline(self) -> _T_co: ...
|
||||||
|
|
||||||
|
# stable
|
||||||
|
class SupportsWrite(Protocol[_T_contra]):
|
||||||
|
def write(self, __s: _T_contra) -> object: ...
|
||||||
|
|
||||||
|
# Unfortunately PEP 688 does not allow us to distinguish read-only
|
||||||
|
# from writable buffers. We use these aliases for readability for now.
|
||||||
|
# Perhaps a future extension of the buffer protocol will allow us to
|
||||||
|
# distinguish these cases in the type system.
|
||||||
|
ReadOnlyBuffer: TypeAlias = Buffer # stable
|
||||||
|
# Anything that implements the read-write buffer interface.
|
||||||
|
WriteableBuffer: TypeAlias = Buffer
|
||||||
|
# Same as WriteableBuffer, but also includes read-only buffer types (like bytes).
|
||||||
|
ReadableBuffer: TypeAlias = Buffer # stable
|
||||||
|
|
||||||
|
class SliceableBuffer(Buffer, Protocol):
|
||||||
|
def __getitem__(self, __slice: slice) -> Sequence[int]: ...
|
||||||
|
|
||||||
|
class IndexableBuffer(Buffer, Protocol):
|
||||||
|
def __getitem__(self, __i: int) -> int: ...
|
||||||
|
|
||||||
|
class SupportsGetItemBuffer(SliceableBuffer, IndexableBuffer, Protocol):
|
||||||
|
def __contains__(self, __x: Any) -> bool: ...
|
||||||
|
@overload
|
||||||
|
def __getitem__(self, __slice: slice) -> Sequence[int]: ...
|
||||||
|
@overload
|
||||||
|
def __getitem__(self, __i: int) -> int: ...
|
||||||
|
|
||||||
|
class SizedBuffer(Sized, Buffer, Protocol): ...
|
||||||
|
|
||||||
|
# for compatibility with third-party stubs that may use this
|
||||||
|
_BufferWithLen: TypeAlias = SizedBuffer # not stable # noqa: Y047
|
||||||
|
|
||||||
|
ExcInfo: TypeAlias = tuple[type[BaseException], BaseException, TracebackType]
|
||||||
|
OptExcInfo: TypeAlias = ExcInfo | tuple[None, None, None]
|
||||||
|
|
||||||
|
# stable
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
from types import NoneType as NoneType
|
||||||
|
else:
|
||||||
|
# Used by type checkers for checks involving None (does not exist at runtime)
|
||||||
|
@final
|
||||||
|
class NoneType:
|
||||||
|
def __bool__(self) -> Literal[False]: ...
|
||||||
|
|
||||||
|
# This is an internal CPython type that is like, but subtly different from, a NamedTuple
|
||||||
|
# Subclasses of this type are found in multiple modules.
|
||||||
|
# In typeshed, `structseq` is only ever used as a mixin in combination with a fixed-length `Tuple`
|
||||||
|
# See discussion at #6546 & #6560
|
||||||
|
# `structseq` classes are unsubclassable, so are all decorated with `@final`.
|
||||||
|
class structseq(Generic[_T_co]):
|
||||||
|
n_fields: Final[int]
|
||||||
|
n_unnamed_fields: Final[int]
|
||||||
|
n_sequence_fields: Final[int]
|
||||||
|
# The first parameter will generally only take an iterable of a specific length.
|
||||||
|
# E.g. `os.uname_result` takes any iterable of length exactly 5.
|
||||||
|
#
|
||||||
|
# The second parameter will accept a dict of any kind without raising an exception,
|
||||||
|
# but only has any meaning if you supply it a dict where the keys are strings.
|
||||||
|
# https://github.com/python/typeshed/pull/6560#discussion_r767149830
|
||||||
|
def __new__(cls: type[Self], sequence: Iterable[_T_co], dict: dict[str, Any] = ...) -> Self: ...
|
||||||
|
|
||||||
|
# Superset of typing.AnyStr that also includes LiteralString
|
||||||
|
AnyOrLiteralStr = TypeVar("AnyOrLiteralStr", str, bytes, LiteralString) # noqa: Y001
|
||||||
|
|
||||||
|
# Represents when str or LiteralStr is acceptable. Useful for string processing
|
||||||
|
# APIs where literalness of return value depends on literalness of inputs
|
||||||
|
StrOrLiteralStr = TypeVar("StrOrLiteralStr", LiteralString, str) # noqa: Y001
|
||||||
|
|
||||||
|
# Objects suitable to be passed to sys.setprofile, threading.setprofile, and similar
|
||||||
|
ProfileFunction: TypeAlias = Callable[[FrameType, str, Any], object]
|
||||||
|
|
||||||
|
# Objects suitable to be passed to sys.settrace, threading.settrace, and similar
|
||||||
|
TraceFunction: TypeAlias = Callable[[FrameType, str, Any], TraceFunction | None]
|
||||||
|
|
||||||
|
# experimental
|
||||||
|
# Might not work as expected for pyright, see
|
||||||
|
# https://github.com/python/typeshed/pull/9362
|
||||||
|
# https://github.com/microsoft/pyright/issues/4339
|
||||||
|
class DataclassInstance(Protocol):
|
||||||
|
__dataclass_fields__: ClassVar[dict[str, Field[Any]]]
|
||||||
37
.vscode/Pico-W-Stub/stdlib/_typeshed/dbapi.pyi
vendored
Normal file
37
.vscode/Pico-W-Stub/stdlib/_typeshed/dbapi.pyi
vendored
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
# PEP 249 Database API 2.0 Types
|
||||||
|
# https://www.python.org/dev/peps/pep-0249/
|
||||||
|
|
||||||
|
from collections.abc import Mapping, Sequence
|
||||||
|
from typing import Any, Protocol
|
||||||
|
from typing_extensions import TypeAlias
|
||||||
|
|
||||||
|
DBAPITypeCode: TypeAlias = Any | None
|
||||||
|
# Strictly speaking, this should be a Sequence, but the type system does
|
||||||
|
# not support fixed-length sequences.
|
||||||
|
DBAPIColumnDescription: TypeAlias = tuple[str, DBAPITypeCode, int | None, int | None, int | None, int | None, bool | None]
|
||||||
|
|
||||||
|
class DBAPIConnection(Protocol):
|
||||||
|
def close(self) -> object: ...
|
||||||
|
def commit(self) -> object: ...
|
||||||
|
# optional:
|
||||||
|
# def rollback(self) -> Any: ...
|
||||||
|
def cursor(self) -> DBAPICursor: ...
|
||||||
|
|
||||||
|
class DBAPICursor(Protocol):
|
||||||
|
@property
|
||||||
|
def description(self) -> Sequence[DBAPIColumnDescription] | None: ...
|
||||||
|
@property
|
||||||
|
def rowcount(self) -> int: ...
|
||||||
|
# optional:
|
||||||
|
# def callproc(self, __procname: str, __parameters: Sequence[Any] = ...) -> Sequence[Any]: ...
|
||||||
|
def close(self) -> object: ...
|
||||||
|
def execute(self, __operation: str, __parameters: Sequence[Any] | Mapping[str, Any] = ...) -> object: ...
|
||||||
|
def executemany(self, __operation: str, __seq_of_parameters: Sequence[Sequence[Any]]) -> object: ...
|
||||||
|
def fetchone(self) -> Sequence[Any] | None: ...
|
||||||
|
def fetchmany(self, __size: int = ...) -> Sequence[Sequence[Any]]: ...
|
||||||
|
def fetchall(self) -> Sequence[Sequence[Any]]: ...
|
||||||
|
# optional:
|
||||||
|
# def nextset(self) -> None | Literal[True]: ...
|
||||||
|
arraysize: int
|
||||||
|
def setinputsizes(self, __sizes: Sequence[DBAPITypeCode | int | None]) -> object: ...
|
||||||
|
def setoutputsize(self, __size: int, __column: int = ...) -> object: ...
|
||||||
44
.vscode/Pico-W-Stub/stdlib/_typeshed/wsgi.pyi
vendored
Normal file
44
.vscode/Pico-W-Stub/stdlib/_typeshed/wsgi.pyi
vendored
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# Types to support PEP 3333 (WSGI)
|
||||||
|
#
|
||||||
|
# Obsolete since Python 3.11: Use wsgiref.types instead.
|
||||||
|
#
|
||||||
|
# See the README.md file in this directory for more information.
|
||||||
|
|
||||||
|
import sys
|
||||||
|
from _typeshed import OptExcInfo
|
||||||
|
from collections.abc import Callable, Iterable, Iterator
|
||||||
|
from typing import Any, Protocol
|
||||||
|
from typing_extensions import TypeAlias
|
||||||
|
|
||||||
|
class _Readable(Protocol):
|
||||||
|
def read(self, size: int = ...) -> bytes: ...
|
||||||
|
# Optional: def close(self) -> object: ...
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
from wsgiref.types import *
|
||||||
|
else:
|
||||||
|
# stable
|
||||||
|
class StartResponse(Protocol):
|
||||||
|
def __call__(
|
||||||
|
self, __status: str, __headers: list[tuple[str, str]], __exc_info: OptExcInfo | None = ...
|
||||||
|
) -> Callable[[bytes], object]: ...
|
||||||
|
|
||||||
|
WSGIEnvironment: TypeAlias = dict[str, Any] # stable
|
||||||
|
WSGIApplication: TypeAlias = Callable[[WSGIEnvironment, StartResponse], Iterable[bytes]] # stable
|
||||||
|
|
||||||
|
# WSGI input streams per PEP 3333, stable
|
||||||
|
class InputStream(Protocol):
|
||||||
|
def read(self, __size: int = ...) -> bytes: ...
|
||||||
|
def readline(self, __size: int = ...) -> bytes: ...
|
||||||
|
def readlines(self, __hint: int = ...) -> list[bytes]: ...
|
||||||
|
def __iter__(self) -> Iterator[bytes]: ...
|
||||||
|
|
||||||
|
# WSGI error streams per PEP 3333, stable
|
||||||
|
class ErrorStream(Protocol):
|
||||||
|
def flush(self) -> object: ...
|
||||||
|
def write(self, __s: str) -> object: ...
|
||||||
|
def writelines(self, __seq: list[str]) -> object: ...
|
||||||
|
|
||||||
|
# Optional file wrapper in wsgi.file_wrapper
|
||||||
|
class FileWrapper(Protocol):
|
||||||
|
def __call__(self, __file: _Readable, __block_size: int = ...) -> Iterable[bytes]: ...
|
||||||
9
.vscode/Pico-W-Stub/stdlib/_typeshed/xml.pyi
vendored
Normal file
9
.vscode/Pico-W-Stub/stdlib/_typeshed/xml.pyi
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# See the README.md file in this directory for more information.
|
||||||
|
|
||||||
|
from typing import Any, Protocol
|
||||||
|
|
||||||
|
# As defined https://docs.python.org/3/library/xml.dom.html#domimplementation-objects
|
||||||
|
class DOMImplementation(Protocol):
|
||||||
|
def hasFeature(self, feature: str, version: str | None) -> bool: ...
|
||||||
|
def createDocument(self, namespaceUri: str, qualifiedName: str, doctype: Any | None) -> Any: ...
|
||||||
|
def createDocumentType(self, qualifiedName: str, publicId: str, systemId: str) -> Any: ...
|
||||||
57
.vscode/Pico-W-Stub/stdlib/abc.pyi
vendored
Normal file
57
.vscode/Pico-W-Stub/stdlib/abc.pyi
vendored
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
import sys
|
||||||
|
from collections.abc import Callable
|
||||||
|
from typing import Any, TypeVar
|
||||||
|
|
||||||
|
import _typeshed
|
||||||
|
from _typeshed import SupportsWrite
|
||||||
|
from typing_extensions import Concatenate, Literal, ParamSpec
|
||||||
|
|
||||||
|
_T = TypeVar("_T")
|
||||||
|
_R_co = TypeVar("_R_co", covariant=True)
|
||||||
|
_FuncT = TypeVar("_FuncT", bound=Callable[..., Any])
|
||||||
|
_P = ParamSpec("_P")
|
||||||
|
|
||||||
|
# These definitions have special processing in mypy
|
||||||
|
class ABCMeta(type):
|
||||||
|
__abstractmethods__: frozenset[str]
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
def __new__(
|
||||||
|
__mcls: type[_typeshed.Self],
|
||||||
|
__name: str,
|
||||||
|
__bases: tuple[type, ...],
|
||||||
|
__namespace: dict[str, Any],
|
||||||
|
**kwargs: Any
|
||||||
|
) -> _typeshed.Self: ...
|
||||||
|
else:
|
||||||
|
def __new__(
|
||||||
|
mcls: type[_typeshed.Self],
|
||||||
|
name: str,
|
||||||
|
bases: tuple[type, ...],
|
||||||
|
namespace: dict[str, Any],
|
||||||
|
**kwargs: Any
|
||||||
|
) -> _typeshed.Self: ...
|
||||||
|
|
||||||
|
def __instancecheck__(cls: ABCMeta, instance: Any) -> bool: ...
|
||||||
|
def __subclasscheck__(cls: ABCMeta, subclass: type) -> bool: ...
|
||||||
|
def _dump_registry(cls: ABCMeta, file: SupportsWrite[str] | None = None) -> None: ...
|
||||||
|
def register(cls: ABCMeta, subclass: type[_T]) -> type[_T]: ...
|
||||||
|
|
||||||
|
def abstractmethod(funcobj: _FuncT) -> _FuncT: ...
|
||||||
|
|
||||||
|
class abstractclassmethod(classmethod[_T, _P, _R_co]): # type: ignore
|
||||||
|
__isabstractmethod__: Literal[True]
|
||||||
|
def __init__(self, callable: Callable[Concatenate[type[_T], _P], _R_co]) -> None: ... # type: ignore
|
||||||
|
|
||||||
|
class abstractstaticmethod(staticmethod[_P, _R_co]): # type: ignore
|
||||||
|
__isabstractmethod__: Literal[True]
|
||||||
|
def __init__(self, callable: Callable[_P, _R_co]) -> None: ... # type: ignore
|
||||||
|
|
||||||
|
class abstractproperty(property):
|
||||||
|
__isabstractmethod__: Literal[True]
|
||||||
|
|
||||||
|
class ABC(metaclass=ABCMeta): ...
|
||||||
|
|
||||||
|
def get_cache_token() -> object: ...
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
def update_abstractmethods(cls: type[_T]) -> type[_T]: ...
|
||||||
45
.vscode/Pico-W-Stub/stdlib/asyncio/__init__.pyi
vendored
Normal file
45
.vscode/Pico-W-Stub/stdlib/asyncio/__init__.pyi
vendored
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
import sys
|
||||||
|
from collections.abc import Awaitable, Coroutine, Generator
|
||||||
|
from typing import Any, TypeVar
|
||||||
|
|
||||||
|
from typing_extensions import TypeAlias
|
||||||
|
|
||||||
|
# As at runtime, this depends on all submodules defining __all__ accurately.
|
||||||
|
from .base_events import *
|
||||||
|
from .coroutines import *
|
||||||
|
from .events import *
|
||||||
|
from .futures import *
|
||||||
|
from .locks import *
|
||||||
|
from .protocols import *
|
||||||
|
from .queues import *
|
||||||
|
from .runners import *
|
||||||
|
from .streams import *
|
||||||
|
|
||||||
|
# from .subprocess import *
|
||||||
|
from .tasks import *
|
||||||
|
from .transports import *
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 8):
|
||||||
|
from .exceptions import *
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 9):
|
||||||
|
from .threads import *
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
from .taskgroups import *
|
||||||
|
from .timeouts import *
|
||||||
|
|
||||||
|
if sys.platform == "win32":
|
||||||
|
from .windows_events import *
|
||||||
|
else:
|
||||||
|
from .unix_events import *
|
||||||
|
|
||||||
|
_T = TypeVar("_T")
|
||||||
|
|
||||||
|
# Aliases imported by multiple submodules in typeshed
|
||||||
|
if sys.version_info >= (3, 12):
|
||||||
|
_AwaitableLike: TypeAlias = Awaitable[_T] # noqa: Y047
|
||||||
|
_CoroutineLike: TypeAlias = Coroutine[Any, Any, _T] # noqa: Y047
|
||||||
|
else:
|
||||||
|
_AwaitableLike: TypeAlias = Generator[Any, None, _T] | Awaitable[_T]
|
||||||
|
_CoroutineLike: TypeAlias = Generator[Any, None, _T] | Coroutine[Any, Any, _T]
|
||||||
521
.vscode/Pico-W-Stub/stdlib/asyncio/base_events.pyi
vendored
Normal file
521
.vscode/Pico-W-Stub/stdlib/asyncio/base_events.pyi
vendored
Normal file
@@ -0,0 +1,521 @@
|
|||||||
|
import ssl
|
||||||
|
import sys
|
||||||
|
from asyncio import _AwaitableLike, _CoroutineLike
|
||||||
|
from asyncio.events import AbstractEventLoop, AbstractServer, Handle, TimerHandle, _TaskFactory
|
||||||
|
from asyncio.futures import Future
|
||||||
|
from asyncio.protocols import BaseProtocol
|
||||||
|
from asyncio.tasks import Task
|
||||||
|
from asyncio.transports import (
|
||||||
|
BaseTransport,
|
||||||
|
DatagramTransport,
|
||||||
|
ReadTransport,
|
||||||
|
SubprocessTransport,
|
||||||
|
Transport,
|
||||||
|
WriteTransport,
|
||||||
|
)
|
||||||
|
from collections.abc import Callable, Iterable, Sequence
|
||||||
|
from contextvars import Context
|
||||||
|
from typing import IO, Any, TypeVar, overload
|
||||||
|
|
||||||
|
from _typeshed import FileDescriptorLike, ReadableBuffer, WriteableBuffer
|
||||||
|
from stdlib.socket import AddressFamily, SocketKind, _Address, _RetAddress, socket
|
||||||
|
from typing_extensions import Literal, TypeAlias
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 9):
|
||||||
|
__all__ = ("BaseEventLoop", "Server")
|
||||||
|
else:
|
||||||
|
__all__ = ("BaseEventLoop",)
|
||||||
|
|
||||||
|
_T = TypeVar("_T")
|
||||||
|
_ProtocolT = TypeVar("_ProtocolT", bound=BaseProtocol)
|
||||||
|
_Context: TypeAlias = dict[str, Any]
|
||||||
|
_ExceptionHandler: TypeAlias = Callable[[AbstractEventLoop, _Context], object]
|
||||||
|
_ProtocolFactory: TypeAlias = Callable[[], BaseProtocol]
|
||||||
|
_SSLContext: TypeAlias = bool | None | ssl.SSLContext # type: ignore[misc]
|
||||||
|
|
||||||
|
class Server(AbstractServer):
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
loop: AbstractEventLoop,
|
||||||
|
sockets: Iterable[socket],
|
||||||
|
protocol_factory: _ProtocolFactory,
|
||||||
|
ssl_context: _SSLContext,
|
||||||
|
backlog: int,
|
||||||
|
ssl_handshake_timeout: float | None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
) -> None: ...
|
||||||
|
else:
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
loop: AbstractEventLoop,
|
||||||
|
sockets: Iterable[socket],
|
||||||
|
protocol_factory: _ProtocolFactory,
|
||||||
|
ssl_context: _SSLContext,
|
||||||
|
backlog: int,
|
||||||
|
ssl_handshake_timeout: float | None,
|
||||||
|
) -> None: ...
|
||||||
|
|
||||||
|
def get_loop(self) -> AbstractEventLoop: ...
|
||||||
|
def is_serving(self) -> bool: ...
|
||||||
|
async def start_serving(self) -> None: ...
|
||||||
|
async def serve_forever(self) -> None: ...
|
||||||
|
if sys.version_info >= (3, 8):
|
||||||
|
@property
|
||||||
|
def sockets(self) -> tuple[socket, ...]: ...
|
||||||
|
else:
|
||||||
|
@property
|
||||||
|
def sockets(self) -> list[socket]: ...
|
||||||
|
|
||||||
|
def close(self) -> None: ...
|
||||||
|
async def wait_closed(self) -> None: ...
|
||||||
|
|
||||||
|
class BaseEventLoop(AbstractEventLoop):
|
||||||
|
def run_forever(self) -> None: ...
|
||||||
|
def run_until_complete(self, future: _AwaitableLike[_T]) -> _T: ...
|
||||||
|
def stop(self) -> None: ...
|
||||||
|
def is_running(self) -> bool: ...
|
||||||
|
def is_closed(self) -> bool: ...
|
||||||
|
def close(self) -> None: ...
|
||||||
|
async def shutdown_asyncgens(self) -> None: ...
|
||||||
|
# Methods scheduling callbacks. All these return Handles.
|
||||||
|
def call_soon(
|
||||||
|
self, callback: Callable[..., object], *args: Any, context: Context | None = None
|
||||||
|
) -> Handle: ...
|
||||||
|
def call_later(
|
||||||
|
self,
|
||||||
|
delay: float,
|
||||||
|
callback: Callable[..., object],
|
||||||
|
*args: Any,
|
||||||
|
context: Context | None = None,
|
||||||
|
) -> TimerHandle: ...
|
||||||
|
def call_at(
|
||||||
|
self,
|
||||||
|
when: float,
|
||||||
|
callback: Callable[..., object],
|
||||||
|
*args: Any,
|
||||||
|
context: Context | None = None,
|
||||||
|
) -> TimerHandle: ...
|
||||||
|
def time(self) -> float: ...
|
||||||
|
# Future methods
|
||||||
|
def create_future(self) -> Future[Any]: ...
|
||||||
|
# Tasks methods
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
def create_task(
|
||||||
|
self, coro: _CoroutineLike[_T], *, name: object = None, context: Context | None = None
|
||||||
|
) -> Task[_T]: ...
|
||||||
|
elif sys.version_info >= (3, 8):
|
||||||
|
def create_task(self, coro: _CoroutineLike[_T], *, name: object = None) -> Task[_T]: ...
|
||||||
|
else:
|
||||||
|
def create_task(self, coro: _CoroutineLike[_T]) -> Task[_T]: ...
|
||||||
|
|
||||||
|
def set_task_factory(self, factory: _TaskFactory | None) -> None: ...
|
||||||
|
def get_task_factory(self) -> _TaskFactory | None: ...
|
||||||
|
# Methods for interacting with threads
|
||||||
|
def call_soon_threadsafe(
|
||||||
|
self, callback: Callable[..., object], *args: Any, context: Context | None = None
|
||||||
|
) -> Handle: ...
|
||||||
|
def run_in_executor(
|
||||||
|
self, executor: Any, func: Callable[..., _T], *args: Any
|
||||||
|
) -> Future[_T]: ...
|
||||||
|
def set_default_executor(self, executor: Any) -> None: ...
|
||||||
|
# Network I/O methods returning Futures.
|
||||||
|
async def getaddrinfo(
|
||||||
|
self,
|
||||||
|
host: bytes | str | None,
|
||||||
|
port: bytes | str | int | None,
|
||||||
|
*,
|
||||||
|
family: int = 0,
|
||||||
|
type: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
) -> list[
|
||||||
|
tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int]]
|
||||||
|
]: ...
|
||||||
|
async def getnameinfo(
|
||||||
|
self, sockaddr: tuple[str, int] | tuple[str, int, int, int], flags: int = 0
|
||||||
|
) -> tuple[str, str]: ...
|
||||||
|
if sys.version_info >= (3, 12):
|
||||||
|
@overload
|
||||||
|
async def create_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
host: str = ...,
|
||||||
|
port: int = ...,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
sock: None = None,
|
||||||
|
local_addr: tuple[str, int] | None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
happy_eyeballs_delay: float | None = None,
|
||||||
|
interleave: int | None = None,
|
||||||
|
all_errors: bool = False,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
@overload
|
||||||
|
async def create_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
host: None = None,
|
||||||
|
port: None = None,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
sock: socket,
|
||||||
|
local_addr: None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
happy_eyeballs_delay: float | None = None,
|
||||||
|
interleave: int | None = None,
|
||||||
|
all_errors: bool = False,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
elif sys.version_info >= (3, 11):
|
||||||
|
@overload
|
||||||
|
async def create_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
host: str = ...,
|
||||||
|
port: int = ...,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
sock: None = None,
|
||||||
|
local_addr: tuple[str, int] | None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
happy_eyeballs_delay: float | None = None,
|
||||||
|
interleave: int | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
@overload
|
||||||
|
async def create_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
host: None = None,
|
||||||
|
port: None = None,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
sock: socket,
|
||||||
|
local_addr: None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
happy_eyeballs_delay: float | None = None,
|
||||||
|
interleave: int | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
elif sys.version_info >= (3, 8):
|
||||||
|
@overload
|
||||||
|
async def create_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
host: str = ...,
|
||||||
|
port: int = ...,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
sock: None = None,
|
||||||
|
local_addr: tuple[str, int] | None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
happy_eyeballs_delay: float | None = None,
|
||||||
|
interleave: int | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
@overload
|
||||||
|
async def create_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
host: None = None,
|
||||||
|
port: None = None,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
sock: socket,
|
||||||
|
local_addr: None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
happy_eyeballs_delay: float | None = None,
|
||||||
|
interleave: int | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
else:
|
||||||
|
@overload
|
||||||
|
async def create_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
host: str = ...,
|
||||||
|
port: int = ...,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
sock: None = None,
|
||||||
|
local_addr: tuple[str, int] | None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
@overload
|
||||||
|
async def create_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
host: None = None,
|
||||||
|
port: None = None,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
sock: socket,
|
||||||
|
local_addr: None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
@overload
|
||||||
|
async def create_server(
|
||||||
|
self,
|
||||||
|
protocol_factory: _ProtocolFactory,
|
||||||
|
host: str | Sequence[str] | None = None,
|
||||||
|
port: int = ...,
|
||||||
|
*,
|
||||||
|
family: int = ...,
|
||||||
|
flags: int = ...,
|
||||||
|
sock: None = None,
|
||||||
|
backlog: int = 100,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
reuse_address: bool | None = None,
|
||||||
|
reuse_port: bool | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
start_serving: bool = True,
|
||||||
|
) -> Server: ...
|
||||||
|
@overload
|
||||||
|
async def create_server(
|
||||||
|
self,
|
||||||
|
protocol_factory: _ProtocolFactory,
|
||||||
|
host: None = None,
|
||||||
|
port: None = None,
|
||||||
|
*,
|
||||||
|
family: int = ...,
|
||||||
|
flags: int = ...,
|
||||||
|
sock: socket = ...,
|
||||||
|
backlog: int = 100,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
reuse_address: bool | None = None,
|
||||||
|
reuse_port: bool | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
start_serving: bool = True,
|
||||||
|
) -> Server: ...
|
||||||
|
async def start_tls(
|
||||||
|
self,
|
||||||
|
transport: BaseTransport,
|
||||||
|
protocol: BaseProtocol,
|
||||||
|
sslcontext: ssl.SSLContext,
|
||||||
|
*,
|
||||||
|
server_side: bool = False,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
) -> Transport | None: ...
|
||||||
|
async def connect_accepted_socket(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
sock: socket,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
else:
|
||||||
|
@overload
|
||||||
|
async def create_server(
|
||||||
|
self,
|
||||||
|
protocol_factory: _ProtocolFactory,
|
||||||
|
host: str | Sequence[str] | None = None,
|
||||||
|
port: int = ...,
|
||||||
|
*,
|
||||||
|
family: int = ...,
|
||||||
|
flags: int = ...,
|
||||||
|
sock: None = None,
|
||||||
|
backlog: int = 100,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
reuse_address: bool | None = None,
|
||||||
|
reuse_port: bool | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
start_serving: bool = True,
|
||||||
|
) -> Server: ...
|
||||||
|
@overload
|
||||||
|
async def create_server(
|
||||||
|
self,
|
||||||
|
protocol_factory: _ProtocolFactory,
|
||||||
|
host: None = None,
|
||||||
|
port: None = None,
|
||||||
|
*,
|
||||||
|
family: int = ...,
|
||||||
|
flags: int = ...,
|
||||||
|
sock: socket = ...,
|
||||||
|
backlog: int = 100,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
reuse_address: bool | None = None,
|
||||||
|
reuse_port: bool | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
start_serving: bool = True,
|
||||||
|
) -> Server: ...
|
||||||
|
async def start_tls(
|
||||||
|
self,
|
||||||
|
transport: BaseTransport,
|
||||||
|
protocol: BaseProtocol,
|
||||||
|
sslcontext: ssl.SSLContext, # type: ignore[misc]
|
||||||
|
*,
|
||||||
|
server_side: bool = False,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
) -> Transport | None: ...
|
||||||
|
async def connect_accepted_socket(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
sock: socket,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
|
||||||
|
async def sock_sendfile(
|
||||||
|
self,
|
||||||
|
sock: socket,
|
||||||
|
file: IO[bytes],
|
||||||
|
offset: int = 0,
|
||||||
|
count: int | None = None,
|
||||||
|
*,
|
||||||
|
fallback: bool | None = True,
|
||||||
|
) -> int: ...
|
||||||
|
async def sendfile(
|
||||||
|
self,
|
||||||
|
transport: WriteTransport,
|
||||||
|
file: IO[bytes],
|
||||||
|
offset: int = 0,
|
||||||
|
count: int | None = None,
|
||||||
|
*,
|
||||||
|
fallback: bool = True,
|
||||||
|
) -> int: ...
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
async def create_datagram_endpoint( # type: ignore[override]
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
local_addr: tuple[str, int] | str | None = None,
|
||||||
|
remote_addr: tuple[str, int] | str | None = None,
|
||||||
|
*,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
reuse_port: bool | None = None,
|
||||||
|
allow_broadcast: bool | None = None,
|
||||||
|
sock: socket | None = None,
|
||||||
|
) -> tuple[DatagramTransport, _ProtocolT]: ...
|
||||||
|
else:
|
||||||
|
async def create_datagram_endpoint(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
local_addr: tuple[str, int] | str | None = None,
|
||||||
|
remote_addr: tuple[str, int] | str | None = None,
|
||||||
|
*,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
reuse_address: bool | None = ...,
|
||||||
|
reuse_port: bool | None = None,
|
||||||
|
allow_broadcast: bool | None = None,
|
||||||
|
sock: socket | None = None,
|
||||||
|
) -> tuple[DatagramTransport, _ProtocolT]: ...
|
||||||
|
# Pipes and subprocesses.
|
||||||
|
async def connect_read_pipe(
|
||||||
|
self, protocol_factory: Callable[[], _ProtocolT], pipe: Any
|
||||||
|
) -> tuple[ReadTransport, _ProtocolT]: ...
|
||||||
|
async def connect_write_pipe(
|
||||||
|
self, protocol_factory: Callable[[], _ProtocolT], pipe: Any
|
||||||
|
) -> tuple[WriteTransport, _ProtocolT]: ...
|
||||||
|
async def subprocess_shell(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
cmd: bytes | str,
|
||||||
|
*,
|
||||||
|
stdin: int | IO[Any] | None = -1,
|
||||||
|
stdout: int | IO[Any] | None = -1,
|
||||||
|
stderr: int | IO[Any] | None = -1,
|
||||||
|
universal_newlines: Literal[False] = False,
|
||||||
|
shell: Literal[True] = True,
|
||||||
|
bufsize: Literal[0] = 0,
|
||||||
|
encoding: None = None,
|
||||||
|
errors: None = None,
|
||||||
|
text: Literal[False, None] = None,
|
||||||
|
**kwargs: Any,
|
||||||
|
) -> tuple[SubprocessTransport, _ProtocolT]: ...
|
||||||
|
async def subprocess_exec(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
program: Any,
|
||||||
|
*args: Any,
|
||||||
|
stdin: int | IO[Any] | None = -1,
|
||||||
|
stdout: int | IO[Any] | None = -1,
|
||||||
|
stderr: int | IO[Any] | None = -1,
|
||||||
|
universal_newlines: Literal[False] = False,
|
||||||
|
shell: Literal[False] = False,
|
||||||
|
bufsize: Literal[0] = 0,
|
||||||
|
encoding: None = None,
|
||||||
|
errors: None = None,
|
||||||
|
**kwargs: Any,
|
||||||
|
) -> tuple[SubprocessTransport, _ProtocolT]: ...
|
||||||
|
def add_reader(
|
||||||
|
self, fd: FileDescriptorLike, callback: Callable[..., Any], *args: Any
|
||||||
|
) -> None: ...
|
||||||
|
def remove_reader(self, fd: FileDescriptorLike) -> bool: ...
|
||||||
|
def add_writer(
|
||||||
|
self, fd: FileDescriptorLike, callback: Callable[..., Any], *args: Any
|
||||||
|
) -> None: ...
|
||||||
|
def remove_writer(self, fd: FileDescriptorLike) -> bool: ...
|
||||||
|
# The sock_* methods (and probably some others) are not actually implemented on
|
||||||
|
# BaseEventLoop, only on subclasses. We list them here for now for convenience.
|
||||||
|
async def sock_recv(self, sock: socket, nbytes: int) -> bytes: ...
|
||||||
|
async def sock_recv_into(self, sock: socket, buf: WriteableBuffer) -> int: ...
|
||||||
|
async def sock_sendall(self, sock: socket, data: ReadableBuffer) -> None: ...
|
||||||
|
async def sock_connect(self, sock: socket, address: _Address) -> None: ...
|
||||||
|
async def sock_accept(self, sock: socket) -> tuple[socket, _RetAddress]: ...
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
async def sock_recvfrom(self, sock: socket, bufsize: int) -> tuple[bytes, _RetAddress]: ...
|
||||||
|
async def sock_recvfrom_into(
|
||||||
|
self, sock: socket, buf: WriteableBuffer, nbytes: int = 0
|
||||||
|
) -> tuple[int, _RetAddress]: ...
|
||||||
|
async def sock_sendto(
|
||||||
|
self, sock: socket, data: ReadableBuffer, address: _Address
|
||||||
|
) -> int: ...
|
||||||
|
# Signal handling.
|
||||||
|
def add_signal_handler(self, sig: int, callback: Callable[..., Any], *args: Any) -> None: ...
|
||||||
|
def remove_signal_handler(self, sig: int) -> bool: ...
|
||||||
|
# Error handlers.
|
||||||
|
def set_exception_handler(self, handler: _ExceptionHandler | None) -> None: ...
|
||||||
|
def get_exception_handler(self) -> _ExceptionHandler | None: ...
|
||||||
|
def default_exception_handler(self, context: _Context) -> None: ...
|
||||||
|
def call_exception_handler(self, context: _Context) -> None: ...
|
||||||
|
# Debug flag management.
|
||||||
|
def get_debug(self) -> bool: ...
|
||||||
|
def set_debug(self, enabled: bool) -> None: ...
|
||||||
|
if sys.version_info >= (3, 12):
|
||||||
|
async def shutdown_default_executor(self, timeout: float | None = None) -> None: ...
|
||||||
|
elif sys.version_info >= (3, 9):
|
||||||
|
async def shutdown_default_executor(self) -> None: ...
|
||||||
20
.vscode/Pico-W-Stub/stdlib/asyncio/base_futures.pyi
vendored
Normal file
20
.vscode/Pico-W-Stub/stdlib/asyncio/base_futures.pyi
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
from collections.abc import Callable, Sequence
|
||||||
|
from contextvars import Context
|
||||||
|
from typing import Any
|
||||||
|
from typing_extensions import Literal
|
||||||
|
|
||||||
|
from . import futures
|
||||||
|
|
||||||
|
__all__ = ()
|
||||||
|
|
||||||
|
# asyncio defines 'isfuture()' in base_futures.py and re-imports it in futures.py
|
||||||
|
# but it leads to circular import error in pytype tool.
|
||||||
|
# That's why the import order is reversed.
|
||||||
|
from .futures import isfuture as isfuture
|
||||||
|
|
||||||
|
_PENDING: Literal["PENDING"] # undocumented
|
||||||
|
_CANCELLED: Literal["CANCELLED"] # undocumented
|
||||||
|
_FINISHED: Literal["FINISHED"] # undocumented
|
||||||
|
|
||||||
|
def _format_callbacks(cb: Sequence[tuple[Callable[[futures.Future[Any]], None], Context]]) -> str: ... # undocumented
|
||||||
|
def _future_repr_info(future: futures.Future[Any]) -> list[str]: ... # undocumented
|
||||||
9
.vscode/Pico-W-Stub/stdlib/asyncio/base_tasks.pyi
vendored
Normal file
9
.vscode/Pico-W-Stub/stdlib/asyncio/base_tasks.pyi
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
from _typeshed import StrOrBytesPath
|
||||||
|
from types import FrameType
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from . import tasks
|
||||||
|
|
||||||
|
def _task_repr_info(task: tasks.Task[Any]) -> list[str]: ... # undocumented
|
||||||
|
def _task_get_stack(task: tasks.Task[Any], limit: int | None) -> list[FrameType]: ... # undocumented
|
||||||
|
def _task_print_stack(task: tasks.Task[Any], limit: int | None, file: StrOrBytesPath) -> None: ... # undocumented
|
||||||
20
.vscode/Pico-W-Stub/stdlib/asyncio/constants.pyi
vendored
Normal file
20
.vscode/Pico-W-Stub/stdlib/asyncio/constants.pyi
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import enum
|
||||||
|
import sys
|
||||||
|
from typing_extensions import Literal
|
||||||
|
|
||||||
|
LOG_THRESHOLD_FOR_CONNLOST_WRITES: Literal[5]
|
||||||
|
ACCEPT_RETRY_DELAY: Literal[1]
|
||||||
|
DEBUG_STACK_DEPTH: Literal[10]
|
||||||
|
SSL_HANDSHAKE_TIMEOUT: float
|
||||||
|
SENDFILE_FALLBACK_READBUFFER_SIZE: Literal[262144]
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
SSL_SHUTDOWN_TIMEOUT: float
|
||||||
|
FLOW_CONTROL_HIGH_WATER_SSL_READ: Literal[256]
|
||||||
|
FLOW_CONTROL_HIGH_WATER_SSL_WRITE: Literal[512]
|
||||||
|
if sys.version_info >= (3, 12):
|
||||||
|
THREAD_JOIN_TIMEOUT: Literal[300]
|
||||||
|
|
||||||
|
class _SendfileMode(enum.Enum):
|
||||||
|
UNSUPPORTED: int
|
||||||
|
TRY_NATIVE: int
|
||||||
|
FALLBACK: int
|
||||||
28
.vscode/Pico-W-Stub/stdlib/asyncio/coroutines.pyi
vendored
Normal file
28
.vscode/Pico-W-Stub/stdlib/asyncio/coroutines.pyi
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import sys
|
||||||
|
from collections.abc import Awaitable, Callable, Coroutine
|
||||||
|
from typing import Any, TypeVar, overload
|
||||||
|
from typing_extensions import ParamSpec, TypeGuard
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
__all__ = ("iscoroutinefunction", "iscoroutine")
|
||||||
|
else:
|
||||||
|
__all__ = ("coroutine", "iscoroutinefunction", "iscoroutine")
|
||||||
|
|
||||||
|
_T = TypeVar("_T")
|
||||||
|
_FunctionT = TypeVar("_FunctionT", bound=Callable[..., Any])
|
||||||
|
_P = ParamSpec("_P")
|
||||||
|
|
||||||
|
if sys.version_info < (3, 11):
|
||||||
|
def coroutine(func: _FunctionT) -> _FunctionT: ...
|
||||||
|
|
||||||
|
@overload
|
||||||
|
def iscoroutinefunction(func: Callable[..., Coroutine[Any, Any, Any]]) -> bool: ...
|
||||||
|
@overload
|
||||||
|
def iscoroutinefunction(func: Callable[_P, Awaitable[_T]]) -> TypeGuard[Callable[_P, Coroutine[Any, Any, _T]]]: ...
|
||||||
|
@overload
|
||||||
|
def iscoroutinefunction(func: Callable[_P, object]) -> TypeGuard[Callable[_P, Coroutine[Any, Any, Any]]]: ...
|
||||||
|
@overload
|
||||||
|
def iscoroutinefunction(func: object) -> TypeGuard[Callable[..., Coroutine[Any, Any, Any]]]: ...
|
||||||
|
|
||||||
|
# Can actually be a generator-style coroutine on Python 3.7
|
||||||
|
def iscoroutine(obj: object) -> TypeGuard[Coroutine[Any, Any, Any]]: ...
|
||||||
687
.vscode/Pico-W-Stub/stdlib/asyncio/events.pyi
vendored
Normal file
687
.vscode/Pico-W-Stub/stdlib/asyncio/events.pyi
vendored
Normal file
@@ -0,0 +1,687 @@
|
|||||||
|
import ssl
|
||||||
|
import sys
|
||||||
|
from abc import ABCMeta, abstractmethod
|
||||||
|
from collections.abc import Callable, Coroutine, Generator, Sequence
|
||||||
|
from contextvars import Context
|
||||||
|
from typing import IO, Any, Protocol, TypeVar, overload
|
||||||
|
|
||||||
|
from _typeshed import FileDescriptorLike, ReadableBuffer, StrPath, Unused, WriteableBuffer
|
||||||
|
from stdlib.socket import AddressFamily, SocketKind, _Address, _RetAddress, socket
|
||||||
|
from typing_extensions import Literal, Self, TypeAlias
|
||||||
|
|
||||||
|
from . import _AwaitableLike, _CoroutineLike
|
||||||
|
from .base_events import Server
|
||||||
|
from .futures import Future
|
||||||
|
from .protocols import BaseProtocol
|
||||||
|
from .tasks import Task
|
||||||
|
from .transports import (
|
||||||
|
BaseTransport,
|
||||||
|
DatagramTransport,
|
||||||
|
ReadTransport,
|
||||||
|
SubprocessTransport,
|
||||||
|
Transport,
|
||||||
|
WriteTransport,
|
||||||
|
)
|
||||||
|
from .unix_events import AbstractChildWatcher
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 8):
|
||||||
|
__all__ = (
|
||||||
|
"AbstractEventLoopPolicy",
|
||||||
|
"AbstractEventLoop",
|
||||||
|
"AbstractServer",
|
||||||
|
"Handle",
|
||||||
|
"TimerHandle",
|
||||||
|
"get_event_loop_policy",
|
||||||
|
"set_event_loop_policy",
|
||||||
|
"get_event_loop",
|
||||||
|
"set_event_loop",
|
||||||
|
"new_event_loop",
|
||||||
|
"get_child_watcher",
|
||||||
|
"set_child_watcher",
|
||||||
|
"_set_running_loop",
|
||||||
|
"get_running_loop",
|
||||||
|
"_get_running_loop",
|
||||||
|
)
|
||||||
|
|
||||||
|
else:
|
||||||
|
__all__ = (
|
||||||
|
"AbstractEventLoopPolicy",
|
||||||
|
"AbstractEventLoop",
|
||||||
|
"AbstractServer",
|
||||||
|
"Handle",
|
||||||
|
"TimerHandle",
|
||||||
|
"SendfileNotAvailableError",
|
||||||
|
"get_event_loop_policy",
|
||||||
|
"set_event_loop_policy",
|
||||||
|
"get_event_loop",
|
||||||
|
"set_event_loop",
|
||||||
|
"new_event_loop",
|
||||||
|
"get_child_watcher",
|
||||||
|
"set_child_watcher",
|
||||||
|
"_set_running_loop",
|
||||||
|
"get_running_loop",
|
||||||
|
"_get_running_loop",
|
||||||
|
)
|
||||||
|
|
||||||
|
_T = TypeVar("_T")
|
||||||
|
_ProtocolT = TypeVar("_ProtocolT", bound=BaseProtocol)
|
||||||
|
_Context: TypeAlias = dict[str, Any]
|
||||||
|
_ExceptionHandler: TypeAlias = Callable[[AbstractEventLoop, _Context], object]
|
||||||
|
_ProtocolFactory: TypeAlias = Callable[[], BaseProtocol]
|
||||||
|
_SSLContext: TypeAlias = bool | None | ssl.SSLContext # type: ignore
|
||||||
|
|
||||||
|
class _TaskFactory(Protocol):
|
||||||
|
def __call__(
|
||||||
|
self,
|
||||||
|
__loop: AbstractEventLoop,
|
||||||
|
__factory: Coroutine[Any, Any, _T] | Generator[Any, None, _T],
|
||||||
|
) -> Future[_T]: ...
|
||||||
|
|
||||||
|
class Handle:
|
||||||
|
_cancelled: bool
|
||||||
|
_args: Sequence[Any]
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
callback: Callable[..., object],
|
||||||
|
args: Sequence[Any],
|
||||||
|
loop: AbstractEventLoop,
|
||||||
|
context: Context | None = None,
|
||||||
|
) -> None: ...
|
||||||
|
def cancel(self) -> None: ...
|
||||||
|
def _run(self) -> None: ...
|
||||||
|
def cancelled(self) -> bool: ...
|
||||||
|
if sys.version_info >= (3, 12):
|
||||||
|
def get_context(self) -> Context: ...
|
||||||
|
|
||||||
|
class TimerHandle(Handle):
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
when: float,
|
||||||
|
callback: Callable[..., object],
|
||||||
|
args: Sequence[Any],
|
||||||
|
loop: AbstractEventLoop,
|
||||||
|
context: Context | None = None,
|
||||||
|
) -> None: ...
|
||||||
|
def __hash__(self) -> int: ...
|
||||||
|
def when(self) -> float: ...
|
||||||
|
def __lt__(self, other: TimerHandle) -> bool: ...
|
||||||
|
def __le__(self, other: TimerHandle) -> bool: ...
|
||||||
|
def __gt__(self, other: TimerHandle) -> bool: ...
|
||||||
|
def __ge__(self, other: TimerHandle) -> bool: ...
|
||||||
|
def __eq__(self, other: object) -> bool: ...
|
||||||
|
|
||||||
|
class AbstractServer:
|
||||||
|
@abstractmethod
|
||||||
|
def close(self) -> None: ...
|
||||||
|
async def __aenter__(self) -> Self: ...
|
||||||
|
async def __aexit__(self, *exc: Unused) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
def get_loop(self) -> AbstractEventLoop: ...
|
||||||
|
@abstractmethod
|
||||||
|
def is_serving(self) -> bool: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def start_serving(self) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def serve_forever(self) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def wait_closed(self) -> None: ...
|
||||||
|
|
||||||
|
class AbstractEventLoop:
|
||||||
|
slow_callback_duration: float
|
||||||
|
@abstractmethod
|
||||||
|
def run_forever(self) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
def run_until_complete(self, future: _AwaitableLike[_T]) -> _T: ...
|
||||||
|
@abstractmethod
|
||||||
|
def stop(self) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
def is_running(self) -> bool: ...
|
||||||
|
@abstractmethod
|
||||||
|
def is_closed(self) -> bool: ...
|
||||||
|
@abstractmethod
|
||||||
|
def close(self) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def shutdown_asyncgens(self) -> None: ...
|
||||||
|
# Methods scheduling callbacks. All these return Handles.
|
||||||
|
if sys.version_info >= (3, 9): # "context" added in 3.9.10/3.10.2
|
||||||
|
@abstractmethod
|
||||||
|
def call_soon(
|
||||||
|
self, callback: Callable[..., object], *args: Any, context: Context | None = None
|
||||||
|
) -> Handle: ...
|
||||||
|
@abstractmethod
|
||||||
|
def call_later(
|
||||||
|
self,
|
||||||
|
delay: float,
|
||||||
|
callback: Callable[..., object],
|
||||||
|
*args: Any,
|
||||||
|
context: Context | None = None,
|
||||||
|
) -> TimerHandle: ...
|
||||||
|
@abstractmethod
|
||||||
|
def call_at(
|
||||||
|
self,
|
||||||
|
when: float,
|
||||||
|
callback: Callable[..., object],
|
||||||
|
*args: Any,
|
||||||
|
context: Context | None = None,
|
||||||
|
) -> TimerHandle: ...
|
||||||
|
else:
|
||||||
|
@abstractmethod
|
||||||
|
def call_soon(self, callback: Callable[..., object], *args: Any) -> Handle: ...
|
||||||
|
@abstractmethod
|
||||||
|
def call_later(
|
||||||
|
self, delay: float, callback: Callable[..., object], *args: Any
|
||||||
|
) -> TimerHandle: ...
|
||||||
|
@abstractmethod
|
||||||
|
def call_at(
|
||||||
|
self, when: float, callback: Callable[..., object], *args: Any
|
||||||
|
) -> TimerHandle: ...
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def time(self) -> float: ...
|
||||||
|
# Future methods
|
||||||
|
@abstractmethod
|
||||||
|
def create_future(self) -> Future[Any]: ...
|
||||||
|
# Tasks methods
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
@abstractmethod
|
||||||
|
def create_task(
|
||||||
|
self,
|
||||||
|
coro: _CoroutineLike[_T],
|
||||||
|
*,
|
||||||
|
name: str | None = None,
|
||||||
|
context: Context | None = None,
|
||||||
|
) -> Task[_T]: ...
|
||||||
|
elif sys.version_info >= (3, 8):
|
||||||
|
@abstractmethod
|
||||||
|
def create_task(
|
||||||
|
self, coro: _CoroutineLike[_T], *, name: str | None = None
|
||||||
|
) -> Task[_T]: ...
|
||||||
|
else:
|
||||||
|
@abstractmethod
|
||||||
|
def create_task(self, coro: _CoroutineLike[_T]) -> Task[_T]: ...
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def set_task_factory(self, factory: _TaskFactory | None) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
def get_task_factory(self) -> _TaskFactory | None: ...
|
||||||
|
# Methods for interacting with threads
|
||||||
|
if sys.version_info >= (3, 9): # "context" added in 3.9.10/3.10.2
|
||||||
|
@abstractmethod
|
||||||
|
def call_soon_threadsafe(
|
||||||
|
self, callback: Callable[..., object], *args: Any, context: Context | None = None
|
||||||
|
) -> Handle: ...
|
||||||
|
else:
|
||||||
|
@abstractmethod
|
||||||
|
def call_soon_threadsafe(self, callback: Callable[..., object], *args: Any) -> Handle: ...
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def run_in_executor(
|
||||||
|
self, executor: Any, func: Callable[..., _T], *args: Any
|
||||||
|
) -> Future[_T]: ...
|
||||||
|
@abstractmethod
|
||||||
|
def set_default_executor(self, executor: Any) -> None: ...
|
||||||
|
# Network I/O methods returning Futures.
|
||||||
|
@abstractmethod
|
||||||
|
async def getaddrinfo(
|
||||||
|
self,
|
||||||
|
host: bytes | str | None,
|
||||||
|
port: bytes | str | int | None,
|
||||||
|
*,
|
||||||
|
family: int = 0,
|
||||||
|
type: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
) -> list[
|
||||||
|
tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int]]
|
||||||
|
]: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def getnameinfo(
|
||||||
|
self, sockaddr: tuple[str, int] | tuple[str, int, int, int], flags: int = 0
|
||||||
|
) -> tuple[str, str]: ...
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
@overload
|
||||||
|
@abstractmethod
|
||||||
|
async def create_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
host: str = ...,
|
||||||
|
port: int = ...,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
sock: None = None,
|
||||||
|
local_addr: tuple[str, int] | None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
happy_eyeballs_delay: float | None = None,
|
||||||
|
interleave: int | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
@overload
|
||||||
|
@abstractmethod
|
||||||
|
async def create_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
host: None = None,
|
||||||
|
port: None = None,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
sock: socket,
|
||||||
|
local_addr: None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
happy_eyeballs_delay: float | None = None,
|
||||||
|
interleave: int | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
elif sys.version_info >= (3, 8):
|
||||||
|
@overload
|
||||||
|
@abstractmethod
|
||||||
|
async def create_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
host: str = ...,
|
||||||
|
port: int = ...,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
sock: None = None,
|
||||||
|
local_addr: tuple[str, int] | None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
happy_eyeballs_delay: float | None = None,
|
||||||
|
interleave: int | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
@overload
|
||||||
|
@abstractmethod
|
||||||
|
async def create_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
host: None = None,
|
||||||
|
port: None = None,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
sock: socket,
|
||||||
|
local_addr: None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
happy_eyeballs_delay: float | None = None,
|
||||||
|
interleave: int | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
else:
|
||||||
|
@overload
|
||||||
|
@abstractmethod
|
||||||
|
async def create_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
host: str = ...,
|
||||||
|
port: int = ...,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
sock: None = None,
|
||||||
|
local_addr: tuple[str, int] | None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
@overload
|
||||||
|
@abstractmethod
|
||||||
|
async def create_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
host: None = None,
|
||||||
|
port: None = None,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
sock: socket,
|
||||||
|
local_addr: None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
@overload
|
||||||
|
@abstractmethod
|
||||||
|
async def create_server(
|
||||||
|
self,
|
||||||
|
protocol_factory: _ProtocolFactory,
|
||||||
|
host: str | Sequence[str] | None = None,
|
||||||
|
port: int = ...,
|
||||||
|
*,
|
||||||
|
family: int = ...,
|
||||||
|
flags: int = ...,
|
||||||
|
sock: None = None,
|
||||||
|
backlog: int = 100,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
reuse_address: bool | None = None,
|
||||||
|
reuse_port: bool | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
start_serving: bool = True,
|
||||||
|
) -> Server: ...
|
||||||
|
@overload
|
||||||
|
@abstractmethod
|
||||||
|
async def create_server(
|
||||||
|
self,
|
||||||
|
protocol_factory: _ProtocolFactory,
|
||||||
|
host: None = None,
|
||||||
|
port: None = None,
|
||||||
|
*,
|
||||||
|
family: int = ...,
|
||||||
|
flags: int = ...,
|
||||||
|
sock: socket = ...,
|
||||||
|
backlog: int = 100,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
reuse_address: bool | None = None,
|
||||||
|
reuse_port: bool | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
start_serving: bool = True,
|
||||||
|
) -> Server: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def start_tls(
|
||||||
|
self,
|
||||||
|
transport: WriteTransport,
|
||||||
|
protocol: BaseProtocol,
|
||||||
|
sslcontext: ssl.SSLContext,
|
||||||
|
*,
|
||||||
|
server_side: bool = False,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
) -> Transport | None: ...
|
||||||
|
async def create_unix_server(
|
||||||
|
self,
|
||||||
|
protocol_factory: _ProtocolFactory,
|
||||||
|
path: StrPath | None = None,
|
||||||
|
*,
|
||||||
|
sock: socket | None = None,
|
||||||
|
backlog: int = 100,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
start_serving: bool = True,
|
||||||
|
) -> Server: ...
|
||||||
|
else:
|
||||||
|
@overload
|
||||||
|
@abstractmethod
|
||||||
|
async def create_server(
|
||||||
|
self,
|
||||||
|
protocol_factory: _ProtocolFactory,
|
||||||
|
host: str | Sequence[str] | None = None,
|
||||||
|
port: int = ...,
|
||||||
|
*,
|
||||||
|
family: int = ...,
|
||||||
|
flags: int = ...,
|
||||||
|
sock: None = None,
|
||||||
|
backlog: int = 100,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
reuse_address: bool | None = None,
|
||||||
|
reuse_port: bool | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
start_serving: bool = True,
|
||||||
|
) -> Server: ...
|
||||||
|
@overload
|
||||||
|
@abstractmethod
|
||||||
|
async def create_server(
|
||||||
|
self,
|
||||||
|
protocol_factory: _ProtocolFactory,
|
||||||
|
host: None = None,
|
||||||
|
port: None = None,
|
||||||
|
*,
|
||||||
|
family: int = ...,
|
||||||
|
flags: int = ...,
|
||||||
|
sock: socket = ...,
|
||||||
|
backlog: int = 100,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
reuse_address: bool | None = None,
|
||||||
|
reuse_port: bool | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
start_serving: bool = True,
|
||||||
|
) -> Server: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def start_tls(
|
||||||
|
self,
|
||||||
|
transport: BaseTransport,
|
||||||
|
protocol: BaseProtocol,
|
||||||
|
sslcontext: ssl.SSLContext, # type: ignore
|
||||||
|
*,
|
||||||
|
server_side: bool = False,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
) -> Transport | None: ...
|
||||||
|
async def create_unix_server(
|
||||||
|
self,
|
||||||
|
protocol_factory: _ProtocolFactory,
|
||||||
|
path: StrPath | None = None,
|
||||||
|
*,
|
||||||
|
sock: socket | None = None,
|
||||||
|
backlog: int = 100,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
start_serving: bool = True,
|
||||||
|
) -> Server: ...
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
async def connect_accepted_socket(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
sock: socket,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
elif sys.version_info >= (3, 10):
|
||||||
|
async def connect_accepted_socket(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
sock: socket,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
async def create_unix_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
path: str | None = None,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
sock: socket | None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
else:
|
||||||
|
async def create_unix_connection(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
path: str | None = None,
|
||||||
|
*,
|
||||||
|
ssl: _SSLContext = None,
|
||||||
|
sock: socket | None = None,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
) -> tuple[Transport, _ProtocolT]: ...
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
async def sock_sendfile(
|
||||||
|
self,
|
||||||
|
sock: socket,
|
||||||
|
file: IO[bytes],
|
||||||
|
offset: int = 0,
|
||||||
|
count: int | None = None,
|
||||||
|
*,
|
||||||
|
fallback: bool | None = None,
|
||||||
|
) -> int: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def sendfile(
|
||||||
|
self,
|
||||||
|
transport: WriteTransport,
|
||||||
|
file: IO[bytes],
|
||||||
|
offset: int = 0,
|
||||||
|
count: int | None = None,
|
||||||
|
*,
|
||||||
|
fallback: bool = True,
|
||||||
|
) -> int: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def create_datagram_endpoint(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
local_addr: tuple[str, int] | str | None = None,
|
||||||
|
remote_addr: tuple[str, int] | str | None = None,
|
||||||
|
*,
|
||||||
|
family: int = 0,
|
||||||
|
proto: int = 0,
|
||||||
|
flags: int = 0,
|
||||||
|
reuse_address: bool | None = None,
|
||||||
|
reuse_port: bool | None = None,
|
||||||
|
allow_broadcast: bool | None = None,
|
||||||
|
sock: socket | None = None,
|
||||||
|
) -> tuple[DatagramTransport, _ProtocolT]: ...
|
||||||
|
# Pipes and subprocesses.
|
||||||
|
@abstractmethod
|
||||||
|
async def connect_read_pipe(
|
||||||
|
self, protocol_factory: Callable[[], _ProtocolT], pipe: Any
|
||||||
|
) -> tuple[ReadTransport, _ProtocolT]: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def connect_write_pipe(
|
||||||
|
self, protocol_factory: Callable[[], _ProtocolT], pipe: Any
|
||||||
|
) -> tuple[WriteTransport, _ProtocolT]: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def subprocess_shell(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
cmd: bytes | str,
|
||||||
|
*,
|
||||||
|
stdin: int | IO[Any] | None = -1,
|
||||||
|
stdout: int | IO[Any] | None = -1,
|
||||||
|
stderr: int | IO[Any] | None = -1,
|
||||||
|
universal_newlines: Literal[False] = False,
|
||||||
|
shell: Literal[True] = True,
|
||||||
|
bufsize: Literal[0] = 0,
|
||||||
|
encoding: None = None,
|
||||||
|
errors: None = None,
|
||||||
|
text: Literal[False, None] = ...,
|
||||||
|
**kwargs: Any,
|
||||||
|
) -> tuple[SubprocessTransport, _ProtocolT]: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def subprocess_exec(
|
||||||
|
self,
|
||||||
|
protocol_factory: Callable[[], _ProtocolT],
|
||||||
|
program: Any,
|
||||||
|
*args: Any,
|
||||||
|
stdin: int | IO[Any] | None = -1,
|
||||||
|
stdout: int | IO[Any] | None = -1,
|
||||||
|
stderr: int | IO[Any] | None = -1,
|
||||||
|
universal_newlines: Literal[False] = False,
|
||||||
|
shell: Literal[False] = False,
|
||||||
|
bufsize: Literal[0] = 0,
|
||||||
|
encoding: None = None,
|
||||||
|
errors: None = None,
|
||||||
|
**kwargs: Any,
|
||||||
|
) -> tuple[SubprocessTransport, _ProtocolT]: ...
|
||||||
|
@abstractmethod
|
||||||
|
def add_reader(
|
||||||
|
self, fd: FileDescriptorLike, callback: Callable[..., Any], *args: Any
|
||||||
|
) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
def remove_reader(self, fd: FileDescriptorLike) -> bool: ...
|
||||||
|
@abstractmethod
|
||||||
|
def add_writer(
|
||||||
|
self, fd: FileDescriptorLike, callback: Callable[..., Any], *args: Any
|
||||||
|
) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
def remove_writer(self, fd: FileDescriptorLike) -> bool: ...
|
||||||
|
# Completion based I/O methods returning Futures prior to 3.7
|
||||||
|
@abstractmethod
|
||||||
|
async def sock_recv(self, sock: socket, nbytes: int) -> bytes: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def sock_recv_into(self, sock: socket, buf: WriteableBuffer) -> int: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def sock_sendall(self, sock: socket, data: ReadableBuffer) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def sock_connect(self, sock: socket, address: _Address) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def sock_accept(self, sock: socket) -> tuple[socket, _RetAddress]: ...
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
@abstractmethod
|
||||||
|
async def sock_recvfrom(self, sock: socket, bufsize: int) -> tuple[bytes, _RetAddress]: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def sock_recvfrom_into(
|
||||||
|
self, sock: socket, buf: WriteableBuffer, nbytes: int = 0
|
||||||
|
) -> tuple[int, _RetAddress]: ...
|
||||||
|
@abstractmethod
|
||||||
|
async def sock_sendto(
|
||||||
|
self, sock: socket, data: ReadableBuffer, address: _Address
|
||||||
|
) -> int: ...
|
||||||
|
# Signal handling.
|
||||||
|
@abstractmethod
|
||||||
|
def add_signal_handler(
|
||||||
|
self, sig: int, callback: Callable[..., object], *args: Any
|
||||||
|
) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
def remove_signal_handler(self, sig: int) -> bool: ...
|
||||||
|
# Error handlers.
|
||||||
|
@abstractmethod
|
||||||
|
def set_exception_handler(self, handler: _ExceptionHandler | None) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
def get_exception_handler(self) -> _ExceptionHandler | None: ...
|
||||||
|
@abstractmethod
|
||||||
|
def default_exception_handler(self, context: _Context) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
def call_exception_handler(self, context: _Context) -> None: ...
|
||||||
|
# Debug flag management.
|
||||||
|
@abstractmethod
|
||||||
|
def get_debug(self) -> bool: ...
|
||||||
|
@abstractmethod
|
||||||
|
def set_debug(self, enabled: bool) -> None: ...
|
||||||
|
if sys.version_info >= (3, 9):
|
||||||
|
@abstractmethod
|
||||||
|
async def shutdown_default_executor(self) -> None: ...
|
||||||
|
|
||||||
|
class AbstractEventLoopPolicy:
|
||||||
|
@abstractmethod
|
||||||
|
def get_event_loop(self) -> AbstractEventLoop: ...
|
||||||
|
@abstractmethod
|
||||||
|
def set_event_loop(self, loop: AbstractEventLoop | None) -> None: ...
|
||||||
|
@abstractmethod
|
||||||
|
def new_event_loop(self) -> AbstractEventLoop: ...
|
||||||
|
# Child processes handling (Unix only).
|
||||||
|
@abstractmethod
|
||||||
|
def get_child_watcher(self) -> AbstractChildWatcher: ...
|
||||||
|
@abstractmethod
|
||||||
|
def set_child_watcher(self, watcher: AbstractChildWatcher) -> None: ...
|
||||||
|
|
||||||
|
class BaseDefaultEventLoopPolicy(AbstractEventLoopPolicy, metaclass=ABCMeta):
|
||||||
|
def get_event_loop(self) -> AbstractEventLoop: ...
|
||||||
|
def set_event_loop(self, loop: AbstractEventLoop | None) -> None: ...
|
||||||
|
def new_event_loop(self) -> AbstractEventLoop: ...
|
||||||
|
|
||||||
|
def get_event_loop_policy() -> AbstractEventLoopPolicy: ...
|
||||||
|
def set_event_loop_policy(policy: AbstractEventLoopPolicy | None) -> None: ...
|
||||||
|
def get_event_loop() -> AbstractEventLoop: ...
|
||||||
|
def set_event_loop(loop: AbstractEventLoop | None) -> None: ...
|
||||||
|
def new_event_loop() -> AbstractEventLoop: ...
|
||||||
|
def get_child_watcher() -> AbstractChildWatcher: ...
|
||||||
|
def set_child_watcher(watcher: AbstractChildWatcher) -> None: ...
|
||||||
|
def _set_running_loop(__loop: AbstractEventLoop | None) -> None: ...
|
||||||
|
def _get_running_loop() -> AbstractEventLoop: ...
|
||||||
|
def get_running_loop() -> AbstractEventLoop: ...
|
||||||
|
|
||||||
|
if sys.version_info < (3, 8):
|
||||||
|
class SendfileNotAvailableError(RuntimeError): ...
|
||||||
38
.vscode/Pico-W-Stub/stdlib/asyncio/exceptions.pyi
vendored
Normal file
38
.vscode/Pico-W-Stub/stdlib/asyncio/exceptions.pyi
vendored
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
__all__ = (
|
||||||
|
"BrokenBarrierError",
|
||||||
|
"CancelledError",
|
||||||
|
"InvalidStateError",
|
||||||
|
"TimeoutError",
|
||||||
|
"IncompleteReadError",
|
||||||
|
"LimitOverrunError",
|
||||||
|
"SendfileNotAvailableError",
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
__all__ = (
|
||||||
|
"CancelledError",
|
||||||
|
"InvalidStateError",
|
||||||
|
"TimeoutError",
|
||||||
|
"IncompleteReadError",
|
||||||
|
"LimitOverrunError",
|
||||||
|
"SendfileNotAvailableError",
|
||||||
|
)
|
||||||
|
|
||||||
|
class CancelledError(BaseException): ...
|
||||||
|
class TimeoutError(Exception): ...
|
||||||
|
class InvalidStateError(Exception): ...
|
||||||
|
class SendfileNotAvailableError(RuntimeError): ...
|
||||||
|
|
||||||
|
class IncompleteReadError(EOFError):
|
||||||
|
expected: int | None
|
||||||
|
partial: bytes
|
||||||
|
def __init__(self, partial: bytes, expected: int | None) -> None: ...
|
||||||
|
|
||||||
|
class LimitOverrunError(Exception):
|
||||||
|
consumed: int
|
||||||
|
def __init__(self, message: str, consumed: int) -> None: ...
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
class BrokenBarrierError(RuntimeError): ...
|
||||||
20
.vscode/Pico-W-Stub/stdlib/asyncio/format_helpers.pyi
vendored
Normal file
20
.vscode/Pico-W-Stub/stdlib/asyncio/format_helpers.pyi
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import functools
|
||||||
|
import traceback
|
||||||
|
from collections.abc import Iterable
|
||||||
|
from types import FrameType, FunctionType
|
||||||
|
from typing import Any, overload
|
||||||
|
from typing_extensions import TypeAlias
|
||||||
|
|
||||||
|
class _HasWrapper:
|
||||||
|
__wrapper__: _HasWrapper | FunctionType
|
||||||
|
|
||||||
|
_FuncType: TypeAlias = FunctionType | _HasWrapper | functools.partial[Any] | functools.partialmethod[Any]
|
||||||
|
|
||||||
|
@overload
|
||||||
|
def _get_function_source(func: _FuncType) -> tuple[str, int]: ...
|
||||||
|
@overload
|
||||||
|
def _get_function_source(func: object) -> tuple[str, int] | None: ...
|
||||||
|
def _format_callback_source(func: object, args: Iterable[Any]) -> str: ...
|
||||||
|
def _format_args_and_kwargs(args: Iterable[Any], kwargs: dict[str, Any]) -> str: ...
|
||||||
|
def _format_callback(func: object, args: Iterable[Any], kwargs: dict[str, Any], suffix: str = "") -> str: ...
|
||||||
|
def extract_stack(f: FrameType | None = None, limit: int | None = None) -> traceback.StackSummary: ...
|
||||||
66
.vscode/Pico-W-Stub/stdlib/asyncio/futures.pyi
vendored
Normal file
66
.vscode/Pico-W-Stub/stdlib/asyncio/futures.pyi
vendored
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
import sys
|
||||||
|
from collections.abc import Awaitable, Callable, Generator, Iterable
|
||||||
|
from concurrent.futures._base import Error, Future as _ConcurrentFuture
|
||||||
|
from typing import Any, TypeVar
|
||||||
|
from typing_extensions import Literal, Self, TypeGuard
|
||||||
|
|
||||||
|
from .events import AbstractEventLoop
|
||||||
|
|
||||||
|
if sys.version_info < (3, 8):
|
||||||
|
from concurrent.futures import CancelledError as CancelledError, TimeoutError as TimeoutError
|
||||||
|
|
||||||
|
class InvalidStateError(Error): ...
|
||||||
|
|
||||||
|
from contextvars import Context
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 9):
|
||||||
|
from types import GenericAlias
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 8):
|
||||||
|
__all__ = ("Future", "wrap_future", "isfuture")
|
||||||
|
else:
|
||||||
|
__all__ = ("CancelledError", "TimeoutError", "InvalidStateError", "Future", "wrap_future", "isfuture")
|
||||||
|
|
||||||
|
_T = TypeVar("_T")
|
||||||
|
|
||||||
|
# asyncio defines 'isfuture()' in base_futures.py and re-imports it in futures.py
|
||||||
|
# but it leads to circular import error in pytype tool.
|
||||||
|
# That's why the import order is reversed.
|
||||||
|
def isfuture(obj: object) -> TypeGuard[Future[Any]]: ...
|
||||||
|
|
||||||
|
class Future(Awaitable[_T], Iterable[_T]):
|
||||||
|
_state: str
|
||||||
|
@property
|
||||||
|
def _exception(self) -> BaseException | None: ...
|
||||||
|
_blocking: bool
|
||||||
|
@property
|
||||||
|
def _log_traceback(self) -> bool: ...
|
||||||
|
@_log_traceback.setter
|
||||||
|
def _log_traceback(self, val: Literal[False]) -> None: ...
|
||||||
|
_asyncio_future_blocking: bool # is a part of duck-typing contract for `Future`
|
||||||
|
def __init__(self, *, loop: AbstractEventLoop | None = ...) -> None: ...
|
||||||
|
def __del__(self) -> None: ...
|
||||||
|
def get_loop(self) -> AbstractEventLoop: ...
|
||||||
|
@property
|
||||||
|
def _callbacks(self) -> list[tuple[Callable[[Self], Any], Context]]: ...
|
||||||
|
def add_done_callback(self, __fn: Callable[[Self], object], *, context: Context | None = None) -> None: ...
|
||||||
|
if sys.version_info >= (3, 9):
|
||||||
|
def cancel(self, msg: Any | None = None) -> bool: ...
|
||||||
|
else:
|
||||||
|
def cancel(self) -> bool: ...
|
||||||
|
|
||||||
|
def cancelled(self) -> bool: ...
|
||||||
|
def done(self) -> bool: ...
|
||||||
|
def result(self) -> _T: ...
|
||||||
|
def exception(self) -> BaseException | None: ...
|
||||||
|
def remove_done_callback(self, __fn: Callable[[Self], object]) -> int: ...
|
||||||
|
def set_result(self, __result: _T) -> None: ...
|
||||||
|
def set_exception(self, __exception: type | BaseException) -> None: ...
|
||||||
|
def __iter__(self) -> Generator[Any, None, _T]: ...
|
||||||
|
def __await__(self) -> Generator[Any, None, _T]: ...
|
||||||
|
@property
|
||||||
|
def _loop(self) -> AbstractEventLoop: ...
|
||||||
|
if sys.version_info >= (3, 9):
|
||||||
|
def __class_getitem__(cls, item: Any) -> GenericAlias: ...
|
||||||
|
|
||||||
|
def wrap_future(future: _ConcurrentFuture[_T] | Future[_T], *, loop: AbstractEventLoop | None = None) -> Future[_T]: ...
|
||||||
116
.vscode/Pico-W-Stub/stdlib/asyncio/locks.pyi
vendored
Normal file
116
.vscode/Pico-W-Stub/stdlib/asyncio/locks.pyi
vendored
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
import enum
|
||||||
|
import sys
|
||||||
|
from _typeshed import Unused
|
||||||
|
from collections import deque
|
||||||
|
from collections.abc import Callable, Generator
|
||||||
|
from types import TracebackType
|
||||||
|
from typing import Any, TypeVar
|
||||||
|
from typing_extensions import Literal, Self
|
||||||
|
|
||||||
|
from .events import AbstractEventLoop
|
||||||
|
from .futures import Future
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
from .mixins import _LoopBoundMixin
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
__all__ = ("Lock", "Event", "Condition", "Semaphore", "BoundedSemaphore", "Barrier")
|
||||||
|
else:
|
||||||
|
__all__ = ("Lock", "Event", "Condition", "Semaphore", "BoundedSemaphore")
|
||||||
|
|
||||||
|
_T = TypeVar("_T")
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 9):
|
||||||
|
class _ContextManagerMixin:
|
||||||
|
async def __aenter__(self) -> None: ...
|
||||||
|
async def __aexit__(
|
||||||
|
self, exc_type: type[BaseException] | None, exc: BaseException | None, tb: TracebackType | None
|
||||||
|
) -> None: ...
|
||||||
|
|
||||||
|
else:
|
||||||
|
class _ContextManager:
|
||||||
|
def __init__(self, lock: Lock | Semaphore) -> None: ...
|
||||||
|
def __enter__(self) -> None: ...
|
||||||
|
def __exit__(self, *args: Unused) -> None: ...
|
||||||
|
|
||||||
|
class _ContextManagerMixin:
|
||||||
|
# Apparently this exists to *prohibit* use as a context manager.
|
||||||
|
# def __enter__(self) -> NoReturn: ... see: https://github.com/python/typing/issues/1043
|
||||||
|
# def __exit__(self, *args: Any) -> None: ...
|
||||||
|
def __iter__(self) -> Generator[Any, None, _ContextManager]: ...
|
||||||
|
def __await__(self) -> Generator[Any, None, _ContextManager]: ...
|
||||||
|
async def __aenter__(self) -> None: ...
|
||||||
|
async def __aexit__(
|
||||||
|
self, exc_type: type[BaseException] | None, exc: BaseException | None, tb: TracebackType | None
|
||||||
|
) -> None: ...
|
||||||
|
|
||||||
|
class Lock(_ContextManagerMixin):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
def __init__(self) -> None: ...
|
||||||
|
else:
|
||||||
|
def __init__(self, *, loop: AbstractEventLoop | None = None) -> None: ...
|
||||||
|
|
||||||
|
def locked(self) -> bool: ...
|
||||||
|
async def acquire(self) -> Literal[True]: ...
|
||||||
|
def release(self) -> None: ...
|
||||||
|
|
||||||
|
class Event:
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
def __init__(self) -> None: ...
|
||||||
|
else:
|
||||||
|
def __init__(self, *, loop: AbstractEventLoop | None = None) -> None: ...
|
||||||
|
|
||||||
|
def is_set(self) -> bool: ...
|
||||||
|
def set(self) -> None: ...
|
||||||
|
def clear(self) -> None: ...
|
||||||
|
async def wait(self) -> Literal[True]: ...
|
||||||
|
|
||||||
|
class Condition(_ContextManagerMixin):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
def __init__(self, lock: Lock | None = None) -> None: ...
|
||||||
|
else:
|
||||||
|
def __init__(self, lock: Lock | None = None, *, loop: AbstractEventLoop | None = None) -> None: ...
|
||||||
|
|
||||||
|
def locked(self) -> bool: ...
|
||||||
|
async def acquire(self) -> Literal[True]: ...
|
||||||
|
def release(self) -> None: ...
|
||||||
|
async def wait(self) -> Literal[True]: ...
|
||||||
|
async def wait_for(self, predicate: Callable[[], _T]) -> _T: ...
|
||||||
|
def notify(self, n: int = 1) -> None: ...
|
||||||
|
def notify_all(self) -> None: ...
|
||||||
|
|
||||||
|
class Semaphore(_ContextManagerMixin):
|
||||||
|
_value: int
|
||||||
|
_waiters: deque[Future[Any]] # type: ignore
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
def __init__(self, value: int = 1) -> None: ...
|
||||||
|
else:
|
||||||
|
def __init__(self, value: int = 1, *, loop: AbstractEventLoop | None = None) -> None: ...
|
||||||
|
|
||||||
|
def locked(self) -> bool: ...
|
||||||
|
async def acquire(self) -> Literal[True]: ...
|
||||||
|
def release(self) -> None: ...
|
||||||
|
def _wake_up_next(self) -> None: ...
|
||||||
|
|
||||||
|
class BoundedSemaphore(Semaphore): ...
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
class _BarrierState(enum.Enum): # undocumented
|
||||||
|
FILLING: str
|
||||||
|
DRAINING: str
|
||||||
|
RESETTING: str
|
||||||
|
BROKEN: str
|
||||||
|
|
||||||
|
class Barrier(_LoopBoundMixin):
|
||||||
|
def __init__(self, parties: int) -> None: ...
|
||||||
|
async def __aenter__(self) -> Self: ...
|
||||||
|
async def __aexit__(self, *args: Unused) -> None: ...
|
||||||
|
async def wait(self) -> int: ...
|
||||||
|
async def abort(self) -> None: ...
|
||||||
|
async def reset(self) -> None: ...
|
||||||
|
@property
|
||||||
|
def parties(self) -> int: ...
|
||||||
|
@property
|
||||||
|
def n_waiting(self) -> int: ...
|
||||||
|
@property
|
||||||
|
def broken(self) -> bool: ...
|
||||||
3
.vscode/Pico-W-Stub/stdlib/asyncio/log.pyi
vendored
Normal file
3
.vscode/Pico-W-Stub/stdlib/asyncio/log.pyi
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import logging
|
||||||
|
|
||||||
|
logger: logging.Logger
|
||||||
10
.vscode/Pico-W-Stub/stdlib/asyncio/mixins.pyi
vendored
Normal file
10
.vscode/Pico-W-Stub/stdlib/asyncio/mixins.pyi
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import sys
|
||||||
|
import threading
|
||||||
|
|
||||||
|
from typing_extensions import Never
|
||||||
|
|
||||||
|
_global_lock: threading.Lock # type: ignore
|
||||||
|
|
||||||
|
class _LoopBoundMixin:
|
||||||
|
if sys.version_info < (3, 11):
|
||||||
|
def __init__(self, *, loop: Never = ...) -> None: ...
|
||||||
74
.vscode/Pico-W-Stub/stdlib/asyncio/proactor_events.pyi
vendored
Normal file
74
.vscode/Pico-W-Stub/stdlib/asyncio/proactor_events.pyi
vendored
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
import sys
|
||||||
|
from collections.abc import Mapping
|
||||||
|
from socket import socket
|
||||||
|
from typing import Any, ClassVar, Protocol
|
||||||
|
from typing_extensions import Literal
|
||||||
|
|
||||||
|
from . import base_events, constants, events, futures, streams, transports
|
||||||
|
|
||||||
|
__all__ = ("BaseProactorEventLoop",)
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 8):
|
||||||
|
class _WarnCallbackProtocol(Protocol):
|
||||||
|
def __call__(
|
||||||
|
self, message: str, category: type[Warning] | None = ..., stacklevel: int = ..., source: Any | None = ...
|
||||||
|
) -> object: ...
|
||||||
|
|
||||||
|
class _ProactorBasePipeTransport(transports._FlowControlMixin, transports.BaseTransport):
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
loop: events.AbstractEventLoop,
|
||||||
|
sock: socket,
|
||||||
|
protocol: streams.StreamReaderProtocol,
|
||||||
|
waiter: futures.Future[Any] | None = None,
|
||||||
|
extra: Mapping[Any, Any] | None = None,
|
||||||
|
server: events.AbstractServer | None = None,
|
||||||
|
) -> None: ...
|
||||||
|
if sys.version_info >= (3, 8):
|
||||||
|
def __del__(self, _warn: _WarnCallbackProtocol = ...) -> None: ...
|
||||||
|
else:
|
||||||
|
def __del__(self) -> None: ...
|
||||||
|
|
||||||
|
class _ProactorReadPipeTransport(_ProactorBasePipeTransport, transports.ReadTransport):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
loop: events.AbstractEventLoop,
|
||||||
|
sock: socket,
|
||||||
|
protocol: streams.StreamReaderProtocol,
|
||||||
|
waiter: futures.Future[Any] | None = None,
|
||||||
|
extra: Mapping[Any, Any] | None = None,
|
||||||
|
server: events.AbstractServer | None = None,
|
||||||
|
buffer_size: int = 65536,
|
||||||
|
) -> None: ...
|
||||||
|
else:
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
loop: events.AbstractEventLoop,
|
||||||
|
sock: socket,
|
||||||
|
protocol: streams.StreamReaderProtocol,
|
||||||
|
waiter: futures.Future[Any] | None = None,
|
||||||
|
extra: Mapping[Any, Any] | None = None,
|
||||||
|
server: events.AbstractServer | None = None,
|
||||||
|
) -> None: ...
|
||||||
|
|
||||||
|
class _ProactorBaseWritePipeTransport(_ProactorBasePipeTransport, transports.WriteTransport): ...
|
||||||
|
class _ProactorWritePipeTransport(_ProactorBaseWritePipeTransport): ...
|
||||||
|
class _ProactorDuplexPipeTransport(_ProactorReadPipeTransport, _ProactorBaseWritePipeTransport, transports.Transport): ...
|
||||||
|
|
||||||
|
class _ProactorSocketTransport(_ProactorReadPipeTransport, _ProactorBaseWritePipeTransport, transports.Transport):
|
||||||
|
_sendfile_compatible: ClassVar[constants._SendfileMode]
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
loop: events.AbstractEventLoop,
|
||||||
|
sock: socket,
|
||||||
|
protocol: streams.StreamReaderProtocol,
|
||||||
|
waiter: futures.Future[Any] | None = None,
|
||||||
|
extra: Mapping[Any, Any] | None = None,
|
||||||
|
server: events.AbstractServer | None = None,
|
||||||
|
) -> None: ...
|
||||||
|
def _set_extra(self, sock: socket) -> None: ...
|
||||||
|
def can_write_eof(self) -> Literal[True]: ...
|
||||||
|
|
||||||
|
class BaseProactorEventLoop(base_events.BaseEventLoop):
|
||||||
|
def __init__(self, proactor: Any) -> None: ...
|
||||||
34
.vscode/Pico-W-Stub/stdlib/asyncio/protocols.pyi
vendored
Normal file
34
.vscode/Pico-W-Stub/stdlib/asyncio/protocols.pyi
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
from _typeshed import ReadableBuffer
|
||||||
|
from asyncio import transports
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
__all__ = ("BaseProtocol", "Protocol", "DatagramProtocol", "SubprocessProtocol", "BufferedProtocol")
|
||||||
|
|
||||||
|
class BaseProtocol:
|
||||||
|
def connection_made(self, transport: transports.BaseTransport) -> None: ...
|
||||||
|
def connection_lost(self, exc: Exception | None) -> None: ...
|
||||||
|
def pause_writing(self) -> None: ...
|
||||||
|
def resume_writing(self) -> None: ...
|
||||||
|
|
||||||
|
class Protocol(BaseProtocol):
|
||||||
|
def data_received(self, data: bytes) -> None: ...
|
||||||
|
def eof_received(self) -> bool | None: ...
|
||||||
|
|
||||||
|
class BufferedProtocol(BaseProtocol):
|
||||||
|
def get_buffer(self, sizehint: int) -> ReadableBuffer: ...
|
||||||
|
def buffer_updated(self, nbytes: int) -> None: ...
|
||||||
|
def eof_received(self) -> bool | None: ...
|
||||||
|
|
||||||
|
class DatagramProtocol(BaseProtocol):
|
||||||
|
def connection_made(self, transport: transports.DatagramTransport) -> None: ... # type: ignore[override]
|
||||||
|
# addr can be a tuple[int, int] for some unusual protocols like socket.AF_NETLINK.
|
||||||
|
# Use tuple[str | Any, int] to not cause typechecking issues on most usual cases.
|
||||||
|
# This could be improved by using tuple[AnyOf[str, int], int] if the AnyOf feature is accepted.
|
||||||
|
# See https://github.com/python/typing/issues/566
|
||||||
|
def datagram_received(self, data: bytes, addr: tuple[str | Any, int]) -> None: ...
|
||||||
|
def error_received(self, exc: Exception) -> None: ...
|
||||||
|
|
||||||
|
class SubprocessProtocol(BaseProtocol):
|
||||||
|
def pipe_data_received(self, fd: int, data: bytes) -> None: ...
|
||||||
|
def pipe_connection_lost(self, fd: int, exc: Exception | None) -> None: ...
|
||||||
|
def process_exited(self) -> None: ...
|
||||||
40
.vscode/Pico-W-Stub/stdlib/asyncio/queues.pyi
vendored
Normal file
40
.vscode/Pico-W-Stub/stdlib/asyncio/queues.pyi
vendored
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
import sys
|
||||||
|
from asyncio.events import AbstractEventLoop
|
||||||
|
from typing import Any, Generic, TypeVar
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 9):
|
||||||
|
from types import GenericAlias
|
||||||
|
|
||||||
|
__all__ = ("Queue", "PriorityQueue", "LifoQueue", "QueueFull", "QueueEmpty")
|
||||||
|
|
||||||
|
class QueueEmpty(Exception): ...
|
||||||
|
class QueueFull(Exception): ...
|
||||||
|
|
||||||
|
_T = TypeVar("_T")
|
||||||
|
|
||||||
|
class Queue(Generic[_T]):
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
def __init__(self, maxsize: int = 0) -> None: ...
|
||||||
|
else:
|
||||||
|
def __init__(self, maxsize: int = 0, *, loop: AbstractEventLoop | None = None) -> None: ...
|
||||||
|
|
||||||
|
def _init(self, maxsize: int) -> None: ...
|
||||||
|
def _get(self) -> _T: ...
|
||||||
|
def _put(self, item: _T) -> None: ...
|
||||||
|
def _format(self) -> str: ...
|
||||||
|
def qsize(self) -> int: ...
|
||||||
|
@property
|
||||||
|
def maxsize(self) -> int: ...
|
||||||
|
def empty(self) -> bool: ...
|
||||||
|
def full(self) -> bool: ...
|
||||||
|
async def put(self, item: _T) -> None: ...
|
||||||
|
def put_nowait(self, item: _T) -> None: ...
|
||||||
|
async def get(self) -> _T: ...
|
||||||
|
def get_nowait(self) -> _T: ...
|
||||||
|
async def join(self) -> None: ...
|
||||||
|
def task_done(self) -> None: ...
|
||||||
|
if sys.version_info >= (3, 9):
|
||||||
|
def __class_getitem__(cls, type: Any) -> GenericAlias: ...
|
||||||
|
|
||||||
|
class PriorityQueue(Queue[_T]): ...
|
||||||
|
class LifoQueue(Queue[_T]): ...
|
||||||
35
.vscode/Pico-W-Stub/stdlib/asyncio/runners.pyi
vendored
Normal file
35
.vscode/Pico-W-Stub/stdlib/asyncio/runners.pyi
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
import sys
|
||||||
|
from _typeshed import Unused
|
||||||
|
from collections.abc import Callable, Coroutine
|
||||||
|
from contextvars import Context
|
||||||
|
from typing import Any, TypeVar
|
||||||
|
from typing_extensions import Self, final
|
||||||
|
|
||||||
|
from .events import AbstractEventLoop
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
__all__ = ("Runner", "run")
|
||||||
|
else:
|
||||||
|
__all__ = ("run",)
|
||||||
|
_T = TypeVar("_T")
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
@final
|
||||||
|
class Runner:
|
||||||
|
def __init__(self, *, debug: bool | None = None, loop_factory: Callable[[], AbstractEventLoop] | None = None) -> None: ...
|
||||||
|
def __enter__(self) -> Self: ...
|
||||||
|
def __exit__(self, exc_type: Unused, exc_val: Unused, exc_tb: Unused) -> None: ...
|
||||||
|
def close(self) -> None: ...
|
||||||
|
def get_loop(self) -> AbstractEventLoop: ...
|
||||||
|
def run(self, coro: Coroutine[Any, Any, _T], *, context: Context | None = None) -> _T: ...
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 12):
|
||||||
|
def run(
|
||||||
|
main: Coroutine[Any, Any, _T], *, debug: bool | None = ..., loop_factory: Callable[[], AbstractEventLoop] | None = ...
|
||||||
|
) -> _T: ...
|
||||||
|
|
||||||
|
elif sys.version_info >= (3, 8):
|
||||||
|
def run(main: Coroutine[Any, Any, _T], *, debug: bool | None = None) -> _T: ...
|
||||||
|
|
||||||
|
else:
|
||||||
|
def run(main: Coroutine[Any, Any, _T], *, debug: bool = False) -> _T: ...
|
||||||
8
.vscode/Pico-W-Stub/stdlib/asyncio/selector_events.pyi
vendored
Normal file
8
.vscode/Pico-W-Stub/stdlib/asyncio/selector_events.pyi
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
import selectors
|
||||||
|
|
||||||
|
from . import base_events
|
||||||
|
|
||||||
|
__all__ = ("BaseSelectorEventLoop",)
|
||||||
|
|
||||||
|
class BaseSelectorEventLoop(base_events.BaseEventLoop):
|
||||||
|
def __init__(self, selector: selectors.BaseSelector | None = None) -> None: ...
|
||||||
176
.vscode/Pico-W-Stub/stdlib/asyncio/sslproto.pyi
vendored
Normal file
176
.vscode/Pico-W-Stub/stdlib/asyncio/sslproto.pyi
vendored
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
import sys
|
||||||
|
from collections import deque
|
||||||
|
from collections.abc import Callable
|
||||||
|
from enum import Enum
|
||||||
|
from typing import Any, ClassVar
|
||||||
|
|
||||||
|
import stdlib.ssl as ssl # type: ignore
|
||||||
|
from typing_extensions import Literal, TypeAlias
|
||||||
|
|
||||||
|
from . import constants, events, futures, protocols, transports
|
||||||
|
|
||||||
|
def _create_transport_context(
|
||||||
|
server_side: bool, server_hostname: str | None
|
||||||
|
) -> ssl.SSLContext: ...
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
SSLAgainErrors: tuple[type[ssl.SSLWantReadError], type[ssl.SSLSyscallError]]
|
||||||
|
|
||||||
|
class SSLProtocolState(Enum):
|
||||||
|
UNWRAPPED: str
|
||||||
|
DO_HANDSHAKE: str
|
||||||
|
WRAPPED: str
|
||||||
|
FLUSHING: str
|
||||||
|
SHUTDOWN: str
|
||||||
|
|
||||||
|
class AppProtocolState(Enum):
|
||||||
|
STATE_INIT: str
|
||||||
|
STATE_CON_MADE: str
|
||||||
|
STATE_EOF: str
|
||||||
|
STATE_CON_LOST: str
|
||||||
|
def add_flowcontrol_defaults(
|
||||||
|
high: int | None, low: int | None, kb: int
|
||||||
|
) -> tuple[int, int]: ...
|
||||||
|
|
||||||
|
else:
|
||||||
|
_UNWRAPPED: Literal["UNWRAPPED"]
|
||||||
|
_DO_HANDSHAKE: Literal["DO_HANDSHAKE"]
|
||||||
|
_WRAPPED: Literal["WRAPPED"]
|
||||||
|
_SHUTDOWN: Literal["SHUTDOWN"]
|
||||||
|
|
||||||
|
if sys.version_info < (3, 11):
|
||||||
|
class _SSLPipe:
|
||||||
|
max_size: ClassVar[int]
|
||||||
|
|
||||||
|
_context: ssl.SSLContext
|
||||||
|
_server_side: bool
|
||||||
|
_server_hostname: str | None
|
||||||
|
_state: str
|
||||||
|
_incoming: ssl.MemoryBIO
|
||||||
|
_outgoing: ssl.MemoryBIO
|
||||||
|
_sslobj: ssl.SSLObject | None
|
||||||
|
_need_ssldata: bool
|
||||||
|
_handshake_cb: Callable[[BaseException | None], None] | None
|
||||||
|
_shutdown_cb: Callable[[], None] | None
|
||||||
|
def __init__(
|
||||||
|
self, context: ssl.SSLContext, server_side: bool, server_hostname: str | None = None
|
||||||
|
) -> None: ...
|
||||||
|
@property
|
||||||
|
def context(self) -> ssl.SSLContext: ...
|
||||||
|
@property
|
||||||
|
def ssl_object(self) -> ssl.SSLObject | None: ...
|
||||||
|
@property
|
||||||
|
def need_ssldata(self) -> bool: ...
|
||||||
|
@property
|
||||||
|
def wrapped(self) -> bool: ...
|
||||||
|
def do_handshake(
|
||||||
|
self, callback: Callable[[BaseException | None], object] | None = None
|
||||||
|
) -> list[bytes]: ...
|
||||||
|
def shutdown(self, callback: Callable[[], object] | None = None) -> list[bytes]: ...
|
||||||
|
def feed_eof(self) -> None: ...
|
||||||
|
def feed_ssldata(
|
||||||
|
self, data: bytes, only_handshake: bool = False
|
||||||
|
) -> tuple[list[bytes], list[bytes]]: ...
|
||||||
|
def feed_appdata(self, data: bytes, offset: int = 0) -> tuple[list[bytes], int]: ...
|
||||||
|
|
||||||
|
class _SSLProtocolTransport(transports._FlowControlMixin, transports.Transport):
|
||||||
|
_sendfile_compatible: ClassVar[constants._SendfileMode]
|
||||||
|
|
||||||
|
_loop: events.AbstractEventLoop
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
_ssl_protocol: SSLProtocol | None
|
||||||
|
else:
|
||||||
|
_ssl_protocol: SSLProtocol
|
||||||
|
_closed: bool
|
||||||
|
def __init__(self, loop: events.AbstractEventLoop, ssl_protocol: SSLProtocol) -> None: ...
|
||||||
|
def get_extra_info(self, name: str, default: Any | None = None) -> dict[str, Any]: ...
|
||||||
|
@property
|
||||||
|
def _protocol_paused(self) -> bool: ...
|
||||||
|
def write(self, data: bytes | bytearray | memoryview) -> None: ...
|
||||||
|
def can_write_eof(self) -> Literal[False]: ...
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
def get_write_buffer_limits(self) -> tuple[int, int]: ...
|
||||||
|
def get_read_buffer_limits(self) -> tuple[int, int]: ...
|
||||||
|
def set_read_buffer_limits(
|
||||||
|
self, high: int | None = None, low: int | None = None
|
||||||
|
) -> None: ...
|
||||||
|
def get_read_buffer_size(self) -> int: ...
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
_SSLProtocolBase: TypeAlias = protocols.BufferedProtocol
|
||||||
|
else:
|
||||||
|
_SSLProtocolBase: TypeAlias = protocols.Protocol
|
||||||
|
|
||||||
|
class SSLProtocol(_SSLProtocolBase):
|
||||||
|
_server_side: bool
|
||||||
|
_server_hostname: str | None
|
||||||
|
_sslcontext: ssl.SSLContext
|
||||||
|
_extra: dict[str, Any]
|
||||||
|
_write_backlog: deque[tuple[bytes, int]] # type: ignore
|
||||||
|
_write_buffer_size: int
|
||||||
|
_waiter: futures.Future[Any]
|
||||||
|
_loop: events.AbstractEventLoop
|
||||||
|
_app_transport: _SSLProtocolTransport
|
||||||
|
_transport: transports.BaseTransport | None
|
||||||
|
_ssl_handshake_timeout: int | None
|
||||||
|
_app_protocol: protocols.BaseProtocol
|
||||||
|
_app_protocol_is_buffer: bool
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
max_size: ClassVar[int]
|
||||||
|
else:
|
||||||
|
_sslpipe: _SSLPipe | None
|
||||||
|
_session_established: bool
|
||||||
|
_call_connection_made: bool
|
||||||
|
_in_handshake: bool
|
||||||
|
_in_shutdown: bool
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
loop: events.AbstractEventLoop,
|
||||||
|
app_protocol: protocols.BaseProtocol,
|
||||||
|
sslcontext: ssl.SSLContext,
|
||||||
|
waiter: futures.Future[Any],
|
||||||
|
server_side: bool = False,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
call_connection_made: bool = True,
|
||||||
|
ssl_handshake_timeout: int | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
) -> None: ...
|
||||||
|
else:
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
loop: events.AbstractEventLoop,
|
||||||
|
app_protocol: protocols.BaseProtocol,
|
||||||
|
sslcontext: ssl.SSLContext,
|
||||||
|
waiter: futures.Future[Any],
|
||||||
|
server_side: bool = False,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
call_connection_made: bool = True,
|
||||||
|
ssl_handshake_timeout: int | None = None,
|
||||||
|
) -> None: ...
|
||||||
|
|
||||||
|
def _set_app_protocol(self, app_protocol: protocols.BaseProtocol) -> None: ...
|
||||||
|
def _wakeup_waiter(self, exc: BaseException | None = None) -> None: ...
|
||||||
|
def connection_lost(self, exc: BaseException | None) -> None: ...
|
||||||
|
def eof_received(self) -> None: ...
|
||||||
|
def _get_extra_info(self, name: str, default: Any | None = None) -> Any: ...
|
||||||
|
def _start_shutdown(self) -> None: ...
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
def _write_appdata(self, list_of_data: list[bytes]) -> None: ...
|
||||||
|
else:
|
||||||
|
def _write_appdata(self, data: bytes) -> None: ...
|
||||||
|
|
||||||
|
def _start_handshake(self) -> None: ...
|
||||||
|
def _check_handshake_timeout(self) -> None: ...
|
||||||
|
def _on_handshake_complete(self, handshake_exc: BaseException | None) -> None: ...
|
||||||
|
def _fatal_error(
|
||||||
|
self, exc: BaseException, message: str = "Fatal error on transport"
|
||||||
|
) -> None: ...
|
||||||
|
def _abort(self) -> None: ...
|
||||||
|
if sys.version_info >= (3, 11):
|
||||||
|
def get_buffer(self, n: int) -> memoryview: ...
|
||||||
|
else:
|
||||||
|
def _finalize(self) -> None: ...
|
||||||
|
def _process_write_backlog(self) -> None: ...
|
||||||
10
.vscode/Pico-W-Stub/stdlib/asyncio/staggered.pyi
vendored
Normal file
10
.vscode/Pico-W-Stub/stdlib/asyncio/staggered.pyi
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
from collections.abc import Awaitable, Callable, Iterable
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from . import events
|
||||||
|
|
||||||
|
__all__ = ("staggered_race",)
|
||||||
|
|
||||||
|
async def staggered_race(
|
||||||
|
coro_fns: Iterable[Callable[[], Awaitable[Any]]], delay: float | None, *, loop: events.AbstractEventLoop | None = None
|
||||||
|
) -> tuple[Any, int | None, list[Exception | None]]: ...
|
||||||
179
.vscode/Pico-W-Stub/stdlib/asyncio/streams.pyi
vendored
Normal file
179
.vscode/Pico-W-Stub/stdlib/asyncio/streams.pyi
vendored
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
import ssl
|
||||||
|
import sys
|
||||||
|
from _typeshed import StrPath
|
||||||
|
from collections.abc import AsyncIterator, Awaitable, Callable, Iterable, Sequence
|
||||||
|
from typing import Any
|
||||||
|
from typing_extensions import Self, SupportsIndex, TypeAlias
|
||||||
|
|
||||||
|
from . import events, protocols, transports
|
||||||
|
from .base_events import Server
|
||||||
|
|
||||||
|
if sys.platform == "win32":
|
||||||
|
if sys.version_info >= (3, 8):
|
||||||
|
__all__ = ("StreamReader", "StreamWriter", "StreamReaderProtocol", "open_connection", "start_server")
|
||||||
|
else:
|
||||||
|
__all__ = (
|
||||||
|
"StreamReader",
|
||||||
|
"StreamWriter",
|
||||||
|
"StreamReaderProtocol",
|
||||||
|
"open_connection",
|
||||||
|
"start_server",
|
||||||
|
"IncompleteReadError",
|
||||||
|
"LimitOverrunError",
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
if sys.version_info >= (3, 8):
|
||||||
|
__all__ = (
|
||||||
|
"StreamReader",
|
||||||
|
"StreamWriter",
|
||||||
|
"StreamReaderProtocol",
|
||||||
|
"open_connection",
|
||||||
|
"start_server",
|
||||||
|
"open_unix_connection",
|
||||||
|
"start_unix_server",
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
__all__ = (
|
||||||
|
"StreamReader",
|
||||||
|
"StreamWriter",
|
||||||
|
"StreamReaderProtocol",
|
||||||
|
"open_connection",
|
||||||
|
"start_server",
|
||||||
|
"IncompleteReadError",
|
||||||
|
"LimitOverrunError",
|
||||||
|
"open_unix_connection",
|
||||||
|
"start_unix_server",
|
||||||
|
)
|
||||||
|
|
||||||
|
_ClientConnectedCallback: TypeAlias = Callable[[StreamReader, StreamWriter], Awaitable[None] | None]
|
||||||
|
|
||||||
|
if sys.version_info < (3, 8):
|
||||||
|
class IncompleteReadError(EOFError):
|
||||||
|
expected: int | None
|
||||||
|
partial: bytes
|
||||||
|
def __init__(self, partial: bytes, expected: int | None) -> None: ...
|
||||||
|
|
||||||
|
class LimitOverrunError(Exception):
|
||||||
|
consumed: int
|
||||||
|
def __init__(self, message: str, consumed: int) -> None: ...
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
async def open_connection(
|
||||||
|
host: str | None = None,
|
||||||
|
port: int | str | None = None,
|
||||||
|
*,
|
||||||
|
limit: int = 65536,
|
||||||
|
ssl_handshake_timeout: float | None = ...,
|
||||||
|
**kwds: Any,
|
||||||
|
) -> tuple[StreamReader, StreamWriter]: ...
|
||||||
|
async def start_server(
|
||||||
|
client_connected_cb: _ClientConnectedCallback,
|
||||||
|
host: str | Sequence[str] | None = None,
|
||||||
|
port: int | str | None = None,
|
||||||
|
*,
|
||||||
|
limit: int = 65536,
|
||||||
|
ssl_handshake_timeout: float | None = ...,
|
||||||
|
**kwds: Any,
|
||||||
|
) -> Server: ...
|
||||||
|
|
||||||
|
else:
|
||||||
|
async def open_connection(
|
||||||
|
host: str | None = None,
|
||||||
|
port: int | str | None = None,
|
||||||
|
*,
|
||||||
|
loop: events.AbstractEventLoop | None = None,
|
||||||
|
limit: int = 65536,
|
||||||
|
ssl_handshake_timeout: float | None = ...,
|
||||||
|
**kwds: Any,
|
||||||
|
) -> tuple[StreamReader, StreamWriter]: ...
|
||||||
|
async def start_server(
|
||||||
|
client_connected_cb: _ClientConnectedCallback,
|
||||||
|
host: str | None = None,
|
||||||
|
port: int | str | None = None,
|
||||||
|
*,
|
||||||
|
loop: events.AbstractEventLoop | None = None,
|
||||||
|
limit: int = 65536,
|
||||||
|
ssl_handshake_timeout: float | None = ...,
|
||||||
|
**kwds: Any,
|
||||||
|
) -> Server: ...
|
||||||
|
|
||||||
|
if sys.platform != "win32":
|
||||||
|
if sys.version_info >= (3, 10):
|
||||||
|
async def open_unix_connection(
|
||||||
|
path: StrPath | None = None, *, limit: int = 65536, **kwds: Any
|
||||||
|
) -> tuple[StreamReader, StreamWriter]: ...
|
||||||
|
async def start_unix_server(
|
||||||
|
client_connected_cb: _ClientConnectedCallback, path: StrPath | None = None, *, limit: int = 65536, **kwds: Any
|
||||||
|
) -> Server: ...
|
||||||
|
else:
|
||||||
|
async def open_unix_connection(
|
||||||
|
path: StrPath | None = None, *, loop: events.AbstractEventLoop | None = None, limit: int = 65536, **kwds: Any
|
||||||
|
) -> tuple[StreamReader, StreamWriter]: ...
|
||||||
|
async def start_unix_server(
|
||||||
|
client_connected_cb: _ClientConnectedCallback,
|
||||||
|
path: StrPath | None = None,
|
||||||
|
*,
|
||||||
|
loop: events.AbstractEventLoop | None = None,
|
||||||
|
limit: int = 65536,
|
||||||
|
**kwds: Any,
|
||||||
|
) -> Server: ...
|
||||||
|
|
||||||
|
class FlowControlMixin(protocols.Protocol):
|
||||||
|
def __init__(self, loop: events.AbstractEventLoop | None = None) -> None: ...
|
||||||
|
|
||||||
|
class StreamReaderProtocol(FlowControlMixin, protocols.Protocol):
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
stream_reader: StreamReader,
|
||||||
|
client_connected_cb: _ClientConnectedCallback | None = None,
|
||||||
|
loop: events.AbstractEventLoop | None = None,
|
||||||
|
) -> None: ...
|
||||||
|
|
||||||
|
class StreamWriter:
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
transport: transports.WriteTransport,
|
||||||
|
protocol: protocols.BaseProtocol,
|
||||||
|
reader: StreamReader | None,
|
||||||
|
loop: events.AbstractEventLoop,
|
||||||
|
) -> None: ...
|
||||||
|
@property
|
||||||
|
def transport(self) -> transports.WriteTransport: ...
|
||||||
|
def write(self, data: bytes | bytearray | memoryview) -> None: ...
|
||||||
|
def writelines(self, data: Iterable[bytes | bytearray | memoryview]) -> None: ...
|
||||||
|
def write_eof(self) -> None: ...
|
||||||
|
def can_write_eof(self) -> bool: ...
|
||||||
|
def close(self) -> None: ...
|
||||||
|
def is_closing(self) -> bool: ...
|
||||||
|
async def wait_closed(self) -> None: ...
|
||||||
|
def get_extra_info(self, name: str, default: Any = None) -> Any: ...
|
||||||
|
async def drain(self) -> None: ...
|
||||||
|
if sys.version_info >= (3, 12):
|
||||||
|
async def start_tls(
|
||||||
|
self,
|
||||||
|
sslcontext: ssl.SSLContext,
|
||||||
|
*,
|
||||||
|
server_hostname: str | None = None,
|
||||||
|
ssl_handshake_timeout: float | None = None,
|
||||||
|
ssl_shutdown_timeout: float | None = None,
|
||||||
|
) -> None: ...
|
||||||
|
elif sys.version_info >= (3, 11):
|
||||||
|
async def start_tls(
|
||||||
|
self, sslcontext: ssl.SSLContext, *, server_hostname: str | None = None, ssl_handshake_timeout: float | None = None
|
||||||
|
) -> None: ...
|
||||||
|
|
||||||
|
class StreamReader(AsyncIterator[bytes]):
|
||||||
|
def __init__(self, limit: int = 65536, loop: events.AbstractEventLoop | None = None) -> None: ...
|
||||||
|
def exception(self) -> Exception: ...
|
||||||
|
def set_exception(self, exc: Exception) -> None: ...
|
||||||
|
def set_transport(self, transport: transports.BaseTransport) -> None: ...
|
||||||
|
def feed_eof(self) -> None: ...
|
||||||
|
def at_eof(self) -> bool: ...
|
||||||
|
def feed_data(self, data: Iterable[SupportsIndex]) -> None: ...
|
||||||
|
async def readline(self) -> bytes: ...
|
||||||
|
# Can be any buffer that supports len(); consider changing to a Protocol if PEP 688 is accepted
|
||||||
|
async def readuntil(self, separator: bytes | bytearray | memoryview = b"\n") -> bytes: ...
|
||||||
|
async def read(self, n: int = -1) -> bytes: ...
|
||||||
|
async def readexactly(self, n: int) -> bytes: ...
|
||||||
|
def __aiter__(self) -> Self: ...
|
||||||
|
async def __anext__(self) -> bytes: ...
|
||||||
20
.vscode/Pico-W-Stub/stdlib/asyncio/taskgroups.pyi
vendored
Normal file
20
.vscode/Pico-W-Stub/stdlib/asyncio/taskgroups.pyi
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import sys
|
||||||
|
from contextvars import Context
|
||||||
|
from types import TracebackType
|
||||||
|
from typing import TypeVar
|
||||||
|
from typing_extensions import Self
|
||||||
|
|
||||||
|
from . import _CoroutineLike
|
||||||
|
from .tasks import Task
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 12):
|
||||||
|
__all__ = ("TaskGroup",)
|
||||||
|
else:
|
||||||
|
__all__ = ["TaskGroup"]
|
||||||
|
|
||||||
|
_T = TypeVar("_T")
|
||||||
|
|
||||||
|
class TaskGroup:
|
||||||
|
async def __aenter__(self) -> Self: ...
|
||||||
|
async def __aexit__(self, et: type[BaseException] | None, exc: BaseException | None, tb: TracebackType | None) -> None: ...
|
||||||
|
def create_task(self, coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None) -> Task[_T]: ...
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user