Remove generated files
This commit is contained in:
28
.vscode/Pico-W-Stub/__builtins__.pyi
vendored
28
.vscode/Pico-W-Stub/__builtins__.pyi
vendored
@@ -1,28 +0,0 @@
|
||||
"""Allows for type checking of Micropython specific builtins by pyright and pylance.
|
||||
"""
|
||||
|
||||
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.
|
||||
"""
|
||||
...
|
||||
55
.vscode/Pico-W-Stub/_asyncio.pyi
vendored
55
.vscode/Pico-W-Stub/_asyncio.pyi
vendored
@@ -1,55 +0,0 @@
|
||||
"""
|
||||
Asynchronous I/O scheduler for writing concurrent code.
|
||||
|
||||
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/asyncio.html
|
||||
|
||||
CPython module:
|
||||
`asyncio `<https://docs.python.org/3.8/library/asyncio.html>
|
||||
|
||||
Example::
|
||||
|
||||
import asyncio
|
||||
|
||||
async def blink(led, period_ms):
|
||||
while True:
|
||||
led.on()
|
||||
await asyncio.sleep_ms(5)
|
||||
led.off()
|
||||
await asyncio.sleep_ms(period_ms)
|
||||
|
||||
async def main(led1, led2):
|
||||
asyncio.create_task(blink(led1, 700))
|
||||
asyncio.create_task(blink(led2, 400))
|
||||
await asyncio.sleep_ms(10_000)
|
||||
|
||||
# Running on a pyboard
|
||||
from pyb import LED
|
||||
asyncio.run(main(LED(1), LED(2)))
|
||||
|
||||
# Running on a generic board
|
||||
from machine import Pin
|
||||
asyncio.run(main(Pin(1), Pin(2)))
|
||||
|
||||
Core functions
|
||||
--------------
|
||||
"""
|
||||
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||
from typing import Any, Coroutine, List, Tuple
|
||||
|
||||
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:
|
||||
"""
|
||||
This object wraps a coroutine into a running task. Tasks can be waited on
|
||||
using ``await task``, which will wait for the task to complete and return
|
||||
the return value of the task.
|
||||
|
||||
Tasks should not be created directly, rather use `create_task` to create them.
|
||||
"""
|
||||
|
||||
def __init__(self) -> None: ...
|
||||
4
.vscode/Pico-W-Stub/_boot.pyi
vendored
4
.vscode/Pico-W-Stub/_boot.pyi
vendored
@@ -1,4 +0,0 @@
|
||||
from _typeshed import Incomplete
|
||||
|
||||
bdev: Incomplete
|
||||
vfs: Incomplete
|
||||
4
.vscode/Pico-W-Stub/_boot_fat.pyi
vendored
4
.vscode/Pico-W-Stub/_boot_fat.pyi
vendored
@@ -1,4 +0,0 @@
|
||||
from _typeshed import Incomplete
|
||||
|
||||
bdev: Incomplete
|
||||
vfs: Incomplete
|
||||
8
.vscode/Pico-W-Stub/_onewire.pyi
vendored
8
.vscode/Pico-W-Stub/_onewire.pyi
vendored
@@ -1,8 +0,0 @@
|
||||
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: ...
|
||||
256
.vscode/Pico-W-Stub/_rp2.pyi
vendored
256
.vscode/Pico-W-Stub/_rp2.pyi
vendored
@@ -1,256 +0,0 @@
|
||||
"""
|
||||
Functionality specific to the RP2.
|
||||
|
||||
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/rp2.html
|
||||
|
||||
The ``rp2`` module contains functions and classes specific to the RP2040, as
|
||||
used in the Raspberry Pi Pico.
|
||||
|
||||
See the `RP2040 Python datasheet
|
||||
<https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf>`_
|
||||
for more information, and `pico-micropython-examples
|
||||
<https://github.com/raspberrypi/pico-micropython-examples/tree/master/pio>`_
|
||||
for example code.
|
||||
"""
|
||||
from _typeshed import Incomplete, Incomplete as Incomplete
|
||||
from typing import Any, Optional
|
||||
|
||||
def country(*args, **kwargs) -> Incomplete: ...
|
||||
def bootsel_button() -> Incomplete:
|
||||
"""
|
||||
Temporarily turns the QSPI_SS pin into an input and reads its value,
|
||||
returning 1 for low and 0 for high.
|
||||
On a typical RP2040 board with a BOOTSEL button, a return value of 1
|
||||
indicates that the button is pressed.
|
||||
|
||||
Since this function temporarily disables access to the external flash
|
||||
memory, it also temporarily disables interrupts and the other core to
|
||||
prevent them from trying to execute code from flash.
|
||||
"""
|
||||
...
|
||||
|
||||
class Flash:
|
||||
"""
|
||||
Gets the singleton object for accessing the SPI flash memory.
|
||||
"""
|
||||
|
||||
def readblocks(self, block_num, buf, offset: Optional[int] = 0) -> Incomplete: ...
|
||||
def writeblocks(self, block_num, buf, offset: Optional[int] = 0) -> Incomplete: ...
|
||||
def ioctl(self, cmd, arg) -> Incomplete:
|
||||
"""
|
||||
These methods implement the simple and extended
|
||||
:ref:`block protocol <block-device-interface>` defined by
|
||||
:class:`os.AbstractBlockDev`.
|
||||
"""
|
||||
...
|
||||
def __init__(self) -> None: ...
|
||||
|
||||
class PIO:
|
||||
"""
|
||||
Gets the PIO instance numbered *id*. The RP2040 has two PIO instances,
|
||||
numbered 0 and 1.
|
||||
|
||||
Raises a ``ValueError`` if any other argument is provided.
|
||||
"""
|
||||
|
||||
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, id, program, *args, **kwargs) -> Incomplete:
|
||||
"""
|
||||
Gets the state machine numbered *id*. On the RP2040, each PIO instance has
|
||||
four state machines, numbered 0 to 3.
|
||||
|
||||
Optionally initialize it with a *program*: see `StateMachine.init`.
|
||||
|
||||
>>> rp2.PIO(1).state_machine(3)
|
||||
StateMachine(7)
|
||||
"""
|
||||
...
|
||||
def remove_program(self, program: Optional[Any] = None) -> None:
|
||||
"""
|
||||
Remove *program* from the instruction memory of this PIO instance.
|
||||
|
||||
If no program is provided, it removes all programs.
|
||||
|
||||
It is not an error to remove a program which has already been removed.
|
||||
"""
|
||||
...
|
||||
def irq(self, handler=None, trigger=IRQ_SM0, hard=False) -> Incomplete:
|
||||
"""
|
||||
Returns the IRQ object for this PIO instance.
|
||||
|
||||
MicroPython only uses IRQ 0 on each PIO instance. IRQ 1 is not available.
|
||||
|
||||
Optionally configure it.
|
||||
"""
|
||||
...
|
||||
def add_program(self, program) -> Incomplete:
|
||||
"""
|
||||
Add the *program* to the instruction memory of this PIO instance.
|
||||
|
||||
The amount of memory available for programs on each PIO instance is
|
||||
limited. If there isn't enough space left in the PIO's program memory
|
||||
this method will raise ``OSError(ENOMEM)``.
|
||||
"""
|
||||
...
|
||||
def __init__(self, id) -> None: ...
|
||||
|
||||
class StateMachine:
|
||||
"""
|
||||
Get the state machine numbered *id*. The RP2040 has two identical PIO
|
||||
instances, each with 4 state machines: so there are 8 state machines in
|
||||
total, numbered 0 to 7.
|
||||
|
||||
Optionally initialize it with the given program *program*: see
|
||||
`StateMachine.init`.
|
||||
"""
|
||||
|
||||
def irq(self, handler=None, trigger=0 | 1, hard=False) -> Incomplete:
|
||||
"""
|
||||
Returns the IRQ object for the given StateMachine.
|
||||
|
||||
Optionally configure it.
|
||||
"""
|
||||
...
|
||||
def put(self, value, shift=0) -> Incomplete:
|
||||
"""
|
||||
Push words onto the state machine's TX FIFO.
|
||||
|
||||
*value* can be an integer, an array of type ``B``, ``H`` or ``I``, or a
|
||||
`bytearray`.
|
||||
|
||||
This method will block until all words have been written to the FIFO. If
|
||||
the FIFO is, or becomes, full, the method will block until the state machine
|
||||
pulls enough words to complete the write.
|
||||
|
||||
Each word is first shifted left by *shift* bits, i.e. the state machine
|
||||
receives ``word << shift``.
|
||||
"""
|
||||
...
|
||||
def restart(self) -> Incomplete:
|
||||
"""
|
||||
Restarts the state machine and jumps to the beginning of the program.
|
||||
|
||||
This method clears the state machine's internal state using the RP2040's
|
||||
``SM_RESTART`` register. This includes:
|
||||
|
||||
- input and output shift counters
|
||||
- the contents of the input shift register
|
||||
- the delay counter
|
||||
- the waiting-on-IRQ state
|
||||
- a stalled instruction run using `StateMachine.exec()`
|
||||
"""
|
||||
...
|
||||
def rx_fifo(self) -> int:
|
||||
"""
|
||||
Returns the number of words in the state machine's RX FIFO. A value of 0
|
||||
indicates the FIFO is empty.
|
||||
|
||||
Useful for checking if data is waiting to be read, before calling
|
||||
`StateMachine.get()`.
|
||||
"""
|
||||
...
|
||||
def tx_fifo(self) -> int:
|
||||
"""
|
||||
Returns the number of words in the state machine's TX FIFO. A value of 0
|
||||
indicates the FIFO is empty.
|
||||
|
||||
Useful for checking if there is space to push another word using
|
||||
`StateMachine.put()`.
|
||||
"""
|
||||
...
|
||||
def init(
|
||||
self,
|
||||
program,
|
||||
freq=-1,
|
||||
*,
|
||||
in_base=None,
|
||||
out_base=None,
|
||||
set_base=None,
|
||||
jmp_pin=None,
|
||||
sideset_base=None,
|
||||
in_shiftdir=None,
|
||||
out_shiftdir=None,
|
||||
push_thresh=None,
|
||||
pull_thresh=None,
|
||||
) -> None:
|
||||
"""
|
||||
Configure the state machine instance to run the given *program*.
|
||||
|
||||
The program is added to the instruction memory of this PIO instance. If the
|
||||
instruction memory already contains this program, then its offset is
|
||||
re-used so as to save on instruction memory.
|
||||
|
||||
- *freq* is the frequency in Hz to run the state machine at. Defaults to
|
||||
the system clock frequency.
|
||||
|
||||
The clock divider is computed as ``system clock frequency / freq``, so
|
||||
there can be slight rounding errors.
|
||||
|
||||
The minimum possible clock divider is one 65536th of the system clock: so
|
||||
at the default system clock frequency of 125MHz, the minimum value of
|
||||
*freq* is ``1908``. To run state machines at slower frequencies, you'll
|
||||
need to reduce the system clock speed with `machine.freq()`.
|
||||
- *in_base* is the first pin to use for ``in()`` instructions.
|
||||
- *out_base* is the first pin to use for ``out()`` instructions.
|
||||
- *set_base* is the first pin to use for ``set()`` instructions.
|
||||
- *jmp_pin* is the first pin to use for ``jmp(pin, ...)`` instructions.
|
||||
- *sideset_base* is the first pin to use for side-setting.
|
||||
- *in_shiftdir* is the direction the ISR will shift, either
|
||||
`PIO.SHIFT_LEFT` or `PIO.SHIFT_RIGHT`.
|
||||
- *out_shiftdir* is the direction the OSR will shift, either
|
||||
`PIO.SHIFT_LEFT` or `PIO.SHIFT_RIGHT`.
|
||||
- *push_thresh* is the threshold in bits before auto-push or conditional
|
||||
re-pushing is triggered.
|
||||
- *pull_thresh* is the threshold in bits before auto-pull or conditional
|
||||
re-pulling is triggered.
|
||||
"""
|
||||
...
|
||||
def exec(self, instr) -> Incomplete:
|
||||
"""
|
||||
Execute a single PIO instruction.
|
||||
|
||||
If *instr* is a string then uses `asm_pio_encode` to encode the instruction
|
||||
from the given string.
|
||||
|
||||
>>> sm.exec("set(0, 1)")
|
||||
|
||||
If *instr* is an integer then it is treated as an already encoded PIO
|
||||
machine code instruction to be executed.
|
||||
|
||||
>>> sm.exec(rp2.asm_pio_encode("out(y, 8)", 0))
|
||||
"""
|
||||
...
|
||||
def get(self, buf=None, shift=0) -> Incomplete:
|
||||
"""
|
||||
Pull a word from the state machine's RX FIFO.
|
||||
|
||||
If the FIFO is empty, it blocks until data arrives (i.e. the state machine
|
||||
pushes a word).
|
||||
|
||||
The value is shifted right by *shift* bits before returning, i.e. the
|
||||
return value is ``word >> shift``.
|
||||
"""
|
||||
...
|
||||
def active(self, value: Optional[Any] = None) -> Incomplete:
|
||||
"""
|
||||
Gets or sets whether the state machine is currently running.
|
||||
|
||||
>>> sm.active()
|
||||
True
|
||||
>>> sm.active(0)
|
||||
False
|
||||
"""
|
||||
...
|
||||
def __init__(self, id, program, *args, **kwargs) -> None: ...
|
||||
25
.vscode/Pico-W-Stub/_thread.pyi
vendored
25
.vscode/Pico-W-Stub/_thread.pyi
vendored
@@ -1,25 +0,0 @@
|
||||
"""
|
||||
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
15
.vscode/Pico-W-Stub/aioble/__init__.pyi
vendored
@@ -1,15 +0,0 @@
|
||||
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
71
.vscode/Pico-W-Stub/aioble/central.pyi
vendored
@@ -1,71 +0,0 @@
|
||||
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) -> str: ...
|
||||
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
100
.vscode/Pico-W-Stub/aioble/client.pyi
vendored
@@ -1,100 +0,0 @@
|
||||
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) -> str: ...
|
||||
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) -> str: ...
|
||||
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) -> str: ...
|
||||
def _connection(self): ...
|
||||
def _start_discovery(characteristic, uuid: Incomplete | None = ...) -> None: ...
|
||||
23
.vscode/Pico-W-Stub/aioble/core.pyi
vendored
23
.vscode/Pico-W-Stub/aioble/core.pyi
vendored
@@ -1,23 +0,0 @@
|
||||
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
|
||||
64
.vscode/Pico-W-Stub/aioble/device.pyi
vendored
64
.vscode/Pico-W-Stub/aioble/device.pyi
vendored
@@ -1,64 +0,0 @@
|
||||
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: type[BaseException] | None, exc_val: BaseException | None, exc_traceback: types.TracebackType | None
|
||||
) -> 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) -> str: ...
|
||||
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
39
.vscode/Pico-W-Stub/aioble/l2cap.pyi
vendored
@@ -1,39 +0,0 @@
|
||||
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
43
.vscode/Pico-W-Stub/aioble/peripheral.pyi
vendored
@@ -1,43 +0,0 @@
|
||||
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
26
.vscode/Pico-W-Stub/aioble/security.pyi
vendored
@@ -1,26 +0,0 @@
|
||||
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
100
.vscode/Pico-W-Stub/aioble/server.pyi
vendored
@@ -1,100 +0,0 @@
|
||||
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
33
.vscode/Pico-W-Stub/array.pyi
vendored
@@ -1,33 +0,0 @@
|
||||
"""
|
||||
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(List):
|
||||
"""
|
||||
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
7
.vscode/Pico-W-Stub/asyncio/__init__.pyi
vendored
@@ -1,7 +0,0 @@
|
||||
from .core import *
|
||||
from _typeshed import Incomplete
|
||||
|
||||
__version__: Incomplete
|
||||
_attrs: Incomplete
|
||||
|
||||
def __getattr__(attr): ...
|
||||
52
.vscode/Pico-W-Stub/asyncio/core.pyi
vendored
52
.vscode/Pico-W-Stub/asyncio/core.pyi
vendored
@@ -1,52 +0,0 @@
|
||||
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
21
.vscode/Pico-W-Stub/asyncio/event.pyi
vendored
@@ -1,21 +0,0 @@
|
||||
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
13
.vscode/Pico-W-Stub/asyncio/funcs.pyi
vendored
@@ -1,13 +0,0 @@
|
||||
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
13
.vscode/Pico-W-Stub/asyncio/lock.pyi
vendored
@@ -1,13 +0,0 @@
|
||||
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
36
.vscode/Pico-W-Stub/asyncio/stream.pyi
vendored
@@ -1,36 +0,0 @@
|
||||
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, Incomplete, 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
46
.vscode/Pico-W-Stub/binascii.pyi
vendored
@@ -1,46 +0,0 @@
|
||||
"""
|
||||
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
592
.vscode/Pico-W-Stub/bluetooth.pyi
vendored
@@ -1,592 +0,0 @@
|
||||
"""
|
||||
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
72
.vscode/Pico-W-Stub/cmath.pyi
vendored
@@ -1,72 +0,0 @@
|
||||
"""
|
||||
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
105
.vscode/Pico-W-Stub/collections.pyi
vendored
@@ -1,105 +0,0 @@
|
||||
"""
|
||||
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
42
.vscode/Pico-W-Stub/cryptolib.pyi
vendored
@@ -1,42 +0,0 @@
|
||||
"""
|
||||
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
76
.vscode/Pico-W-Stub/deflate.pyi
vendored
@@ -1,76 +0,0 @@
|
||||
"""
|
||||
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
15
.vscode/Pico-W-Stub/dht.pyi
vendored
@@ -1,15 +0,0 @@
|
||||
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
15
.vscode/Pico-W-Stub/ds18x20.pyi
vendored
@@ -1,15 +0,0 @@
|
||||
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
36
.vscode/Pico-W-Stub/errno.pyi
vendored
@@ -1,36 +0,0 @@
|
||||
"""
|
||||
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
142
.vscode/Pico-W-Stub/framebuf.pyi
vendored
@@ -1,142 +0,0 @@
|
||||
"""
|
||||
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
75
.vscode/Pico-W-Stub/gc.pyi
vendored
@@ -1,75 +0,0 @@
|
||||
"""
|
||||
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
45
.vscode/Pico-W-Stub/hashlib.pyi
vendored
@@ -1,45 +0,0 @@
|
||||
"""
|
||||
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
35
.vscode/Pico-W-Stub/heapq.pyi
vendored
@@ -1,35 +0,0 @@
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
...
|
||||
128
.vscode/Pico-W-Stub/io.pyi
vendored
128
.vscode/Pico-W-Stub/io.pyi
vendored
@@ -1,128 +0,0 @@
|
||||
"""
|
||||
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.
|
||||
|
||||
Conceptual hierarchy
|
||||
--------------------
|
||||
|
||||
Difference to CPython
|
||||
|
||||
Conceptual hierarchy of stream base classes is simplified in MicroPython,
|
||||
as described in this section.
|
||||
|
||||
(Abstract) base stream classes, which serve as a foundation for behaviour
|
||||
of all the concrete classes, adhere to few dichotomies (pair-wise
|
||||
classifications) in CPython. In MicroPython, they are somewhat simplified
|
||||
and made implicit to achieve higher efficiencies and save resources.
|
||||
|
||||
An important dichotomy in CPython is unbuffered vs buffered streams. In
|
||||
MicroPython, all streams are currently unbuffered. This is because all
|
||||
modern OSes, and even many RTOSes and filesystem drivers already perform
|
||||
buffering on their side. Adding another layer of buffering is counter-
|
||||
productive (an issue known as "bufferbloat") and takes precious memory.
|
||||
Note that there still cases where buffering may be useful, so we may
|
||||
introduce optional buffering support at a later time.
|
||||
|
||||
But in CPython, another important dichotomy is tied with "bufferedness" -
|
||||
it's whether a stream may incur short read/writes or not. A short read
|
||||
is when a user asks e.g. 10 bytes from a stream, but gets less, similarly
|
||||
for writes. In CPython, unbuffered streams are automatically short
|
||||
operation susceptible, while buffered are guarantee against them. The
|
||||
no short read/writes is an important trait, as it allows to develop
|
||||
more concise and efficient programs - something which is highly desirable
|
||||
for MicroPython. So, while MicroPython doesn't support buffered streams,
|
||||
it still provides for no-short-operations streams. Whether there will
|
||||
be short operations or not depends on each particular class' needs, but
|
||||
developers are strongly advised to favour no-short-operations behaviour
|
||||
for the reasons stated above. For example, MicroPython sockets are
|
||||
guaranteed to avoid short read/writes. Actually, at this time, there is
|
||||
no example of a short-operations stream class in the core, and one would
|
||||
be a port-specific class, where such a need is governed by hardware
|
||||
peculiarities.
|
||||
|
||||
The no-short-operations behaviour gets tricky in case of non-blocking
|
||||
streams, blocking vs non-blocking behaviour being another CPython dichotomy,
|
||||
fully supported by MicroPython. Non-blocking streams never wait for
|
||||
data either to arrive or be written - they read/write whatever possible,
|
||||
or signal lack of data (or ability to write data). Clearly, this conflicts
|
||||
with "no-short-operations" policy, and indeed, a case of non-blocking
|
||||
buffered (and this no-short-ops) streams is convoluted in CPython - in
|
||||
some places, such combination is prohibited, in some it's undefined or
|
||||
just not documented, in some cases it raises verbose exceptions. The
|
||||
matter is much simpler in MicroPython: non-blocking stream are important
|
||||
for efficient asynchronous operations, so this property prevails on
|
||||
the "no-short-ops" one. So, while blocking streams will avoid short
|
||||
reads/writes whenever possible (the only case to get a short read is
|
||||
if end of file is reached, or in case of error (but errors don't
|
||||
return short data, but raise exceptions)), non-blocking streams may
|
||||
produce short data to avoid blocking the operation.
|
||||
|
||||
The final dichotomy is binary vs text streams. MicroPython of course
|
||||
supports these, but while in CPython text streams are inherently
|
||||
buffered, they aren't in MicroPython. (Indeed, that's one of the cases
|
||||
for which we may introduce buffering support.)
|
||||
|
||||
Note that for efficiency, MicroPython doesn't provide abstract base
|
||||
classes corresponding to the hierarchy above, and it's not possible
|
||||
to implement, or subclass, a stream class in pure Python.
|
||||
"""
|
||||
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
47
.vscode/Pico-W-Stub/json.pyi
vendored
@@ -1,47 +0,0 @@
|
||||
"""
|
||||
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
39
.vscode/Pico-W-Stub/lwip.pyi
vendored
@@ -1,39 +0,0 @@
|
||||
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
1193
.vscode/Pico-W-Stub/machine.pyi
vendored
File diff suppressed because it is too large
Load Diff
257
.vscode/Pico-W-Stub/math.pyi
vendored
257
.vscode/Pico-W-Stub/math.pyi
vendored
@@ -1,257 +0,0 @@
|
||||
"""
|
||||
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``.
|
||||
"""
|
||||
...
|
||||
222
.vscode/Pico-W-Stub/micropython.pyi
vendored
222
.vscode/Pico-W-Stub/micropython.pyi
vendored
@@ -1,222 +0,0 @@
|
||||
"""
|
||||
Access and control MicroPython internals.
|
||||
|
||||
MicroPython module: https://docs.micropython.org/en/latest/library/micropython.html
|
||||
"""
|
||||
|
||||
# source version: v1_21_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:
|
||||
"""
|
||||
Lock 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 heap_unlock() -> int:
|
||||
"""
|
||||
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 heap_locked() -> bool:
|
||||
"""
|
||||
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 +0,0 @@
|
||||
pip
|
||||
@@ -1,239 +0,0 @@
|
||||
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.
|
||||
|
||||
= = = = =
|
||||
@@ -1,39 +0,0 @@
|
||||
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
|
||||
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
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
|
||||
@@ -1,4 +0,0 @@
|
||||
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
15
.vscode/Pico-W-Stub/mip/__init__.pyi
vendored
@@ -1,15 +0,0 @@
|
||||
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: ...
|
||||
58
.vscode/Pico-W-Stub/neopixel.pyi
vendored
58
.vscode/Pico-W-Stub/neopixel.pyi
vendored
@@ -1,58 +0,0 @@
|
||||
"""
|
||||
Control of WS2812 / NeoPixel LEDs.
|
||||
|
||||
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/neopixel.html
|
||||
|
||||
This module provides a driver for WS2818 / NeoPixel LEDs.
|
||||
|
||||
``Note:`` This module is only included by default on the ESP8266, ESP32 and RP2
|
||||
ports. On STM32 / Pyboard and others, you can either install the
|
||||
``neopixel`` package using :term:`mip`, or you can download the module
|
||||
directly from :term:`micropython-lib` and copy it to the filesystem.
|
||||
"""
|
||||
from _typeshed import Incomplete
|
||||
from typing import Tuple
|
||||
|
||||
class NeoPixel:
|
||||
"""
|
||||
Construct an NeoPixel object. The parameters are:
|
||||
|
||||
- *pin* is a machine.Pin instance.
|
||||
- *n* is the number of LEDs in the strip.
|
||||
- *bpp* is 3 for RGB LEDs, and 4 for RGBW LEDs.
|
||||
- *timing* is 0 for 400KHz, and 1 for 800kHz LEDs (most are 800kHz).
|
||||
"""
|
||||
|
||||
ORDER: Incomplete
|
||||
pin: Incomplete
|
||||
n: Incomplete
|
||||
bpp: Incomplete
|
||||
buf: Incomplete
|
||||
timing: Incomplete
|
||||
def __init__(self, pin, n, *, bpp=3, timing=1) -> None: ...
|
||||
def __len__(self) -> int:
|
||||
"""
|
||||
Returns the number of LEDs in the strip.
|
||||
"""
|
||||
...
|
||||
def __setitem__(self, index, val) -> None:
|
||||
"""
|
||||
Set the pixel at *index* to the value, which is an RGB/RGBW tuple.
|
||||
"""
|
||||
...
|
||||
def __getitem__(self, index) -> Tuple:
|
||||
"""
|
||||
Returns the pixel at *index* as an RGB/RGBW tuple.
|
||||
"""
|
||||
...
|
||||
def fill(self, pixel) -> None:
|
||||
"""
|
||||
Sets the value of all pixels to the specified *pixel* value (i.e. an
|
||||
RGB/RGBW tuple).
|
||||
"""
|
||||
...
|
||||
def write(self) -> None:
|
||||
"""
|
||||
Writes the current pixel data to the strip.
|
||||
"""
|
||||
...
|
||||
184
.vscode/Pico-W-Stub/network.pyi
vendored
184
.vscode/Pico-W-Stub/network.pyi
vendored
@@ -1,184 +0,0 @@
|
||||
"""
|
||||
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
5
.vscode/Pico-W-Stub/ntptime.pyi
vendored
@@ -1,5 +0,0 @@
|
||||
host: str
|
||||
timeout: int
|
||||
|
||||
def time(): ...
|
||||
def settime() -> None: ...
|
||||
21
.vscode/Pico-W-Stub/onewire.pyi
vendored
21
.vscode/Pico-W-Stub/onewire.pyi
vendored
@@ -1,21 +0,0 @@
|
||||
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
253
.vscode/Pico-W-Stub/os.pyi
vendored
@@ -1,253 +0,0 @@
|
||||
"""
|
||||
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
43
.vscode/Pico-W-Stub/platform.pyi
vendored
@@ -1,43 +0,0 @@
|
||||
"""
|
||||
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
84
.vscode/Pico-W-Stub/random.pyi
vendored
@@ -1,84 +0,0 @@
|
||||
"""
|
||||
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
16
.vscode/Pico-W-Stub/requests.pyi
vendored
@@ -1,16 +0,0 @@
|
||||
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
31
.vscode/Pico-W-Stub/requests/__init__.pyi
vendored
@@ -1,31 +0,0 @@
|
||||
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): ...
|
||||
132
.vscode/Pico-W-Stub/rp2.pyi
vendored
132
.vscode/Pico-W-Stub/rp2.pyi
vendored
@@ -1,132 +0,0 @@
|
||||
"""
|
||||
Functionality specific to the RP2.
|
||||
|
||||
MicroPython module: https://docs.micropython.org/en/v1.21.0/library/rp2.html
|
||||
|
||||
The ``rp2`` module contains functions and classes specific to the RP2040, as
|
||||
used in the Raspberry Pi Pico.
|
||||
|
||||
See the `RP2040 Python datasheet
|
||||
<https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf>`_
|
||||
for more information, and `pico-micropython-examples
|
||||
<https://github.com/raspberrypi/pico-micropython-examples/tree/master/pio>`_
|
||||
for example code.
|
||||
"""
|
||||
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(
|
||||
*,
|
||||
out_init=None,
|
||||
set_init=None,
|
||||
sideset_init=None,
|
||||
in_shiftdir=0,
|
||||
out_shiftdir=0,
|
||||
autopush=False,
|
||||
autopull=False,
|
||||
push_thresh=32,
|
||||
pull_thresh=32,
|
||||
fifo_join=PIO.JOIN_NONE,
|
||||
) -> Incomplete:
|
||||
"""
|
||||
Assemble a PIO program.
|
||||
|
||||
The following parameters control the initial state of the GPIO pins, as one
|
||||
of `PIO.IN_LOW`, `PIO.IN_HIGH`, `PIO.OUT_LOW` or `PIO.OUT_HIGH`. If the
|
||||
program uses more than one pin, provide a tuple, e.g.
|
||||
``out_init=(PIO.OUT_LOW, PIO.OUT_LOW)``.
|
||||
|
||||
- *out_init* configures the pins used for ``out()`` instructions.
|
||||
- *set_init* configures the pins used for ``set()`` instructions. There can
|
||||
be at most 5.
|
||||
- *sideset_init* configures the pins used side-setting. There can be at
|
||||
most 5.
|
||||
|
||||
The following parameters are used by default, but can be overridden in
|
||||
`StateMachine.init()`:
|
||||
|
||||
- *in_shiftdir* is the default direction the ISR will shift, either
|
||||
`PIO.SHIFT_LEFT` or `PIO.SHIFT_RIGHT`.
|
||||
- *out_shiftdir* is the default direction the OSR will shift, either
|
||||
`PIO.SHIFT_LEFT` or `PIO.SHIFT_RIGHT`.
|
||||
- *push_thresh* is the threshold in bits before auto-push or conditional
|
||||
re-pushing is triggered.
|
||||
- *pull_thresh* is the threshold in bits before auto-pull or conditional
|
||||
re-pulling is triggered.
|
||||
|
||||
The remaining parameters are:
|
||||
|
||||
- *autopush* configures whether auto-push is enabled.
|
||||
- *autopull* configures whether auto-pull is enabled.
|
||||
- *fifo_join* configures whether the 4-word TX and RX FIFOs should be
|
||||
combined into a single 8-word FIFO for one direction only. The options
|
||||
are `PIO.JOIN_NONE`, `PIO.JOIN_RX` and `PIO.JOIN_TX`.
|
||||
"""
|
||||
...
|
||||
|
||||
def asm_pio_encode(instr, sideset_count, sideset_opt=False) -> Incomplete:
|
||||
"""
|
||||
Assemble a single PIO instruction. You usually want to use `asm_pio()`
|
||||
instead.
|
||||
|
||||
>>> rp2.asm_pio_encode("set(0, 1)", 0)
|
||||
57345
|
||||
"""
|
||||
...
|
||||
103
.vscode/Pico-W-Stub/select.pyi
vendored
103
.vscode/Pico-W-Stub/select.pyi
vendored
@@ -1,103 +0,0 @@
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
...
|
||||
316
.vscode/Pico-W-Stub/socket.pyi
vendored
316
.vscode/Pico-W-Stub/socket.pyi
vendored
@@ -1,316 +0,0 @@
|
||||
"""
|
||||
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.
|
||||
|
||||
Socket address format(s)
|
||||
------------------------
|
||||
|
||||
The native socket address format of the ``socket`` module is an opaque data type
|
||||
returned by `getaddrinfo` function, which must be used to resolve textual address
|
||||
(including numeric addresses)::
|
||||
|
||||
sockaddr = socket.getaddrinfo('www.micropython.org', 80)[0][-1]
|
||||
# You must use getaddrinfo() even for numeric addresses
|
||||
sockaddr = socket.getaddrinfo('127.0.0.1', 80)[0][-1]
|
||||
# Now you can use that address
|
||||
sock.connect(sockaddr)
|
||||
|
||||
Using `getaddrinfo` is the most efficient (both in terms of memory and processing
|
||||
power) and portable way to work with addresses.
|
||||
|
||||
However, ``socket`` module (note the difference with native MicroPython
|
||||
``socket`` module described here) provides CPython-compatible way to specify
|
||||
addresses using tuples, as described below. Note that depending on a
|
||||
:term:`MicroPython port`, ``socket`` module can be builtin or need to be
|
||||
installed from `micropython-lib` (as in the case of :term:`MicroPython Unix port`),
|
||||
and some ports still accept only numeric addresses in the tuple format,
|
||||
and require to use `getaddrinfo` function to resolve domain names.
|
||||
|
||||
Summing up:
|
||||
|
||||
* Always use `getaddrinfo` when writing portable applications.
|
||||
* Tuple addresses described below can be used as a shortcut for
|
||||
quick hacks and interactive use, if your port supports them.
|
||||
|
||||
Tuple address format for ``socket`` module:
|
||||
|
||||
* IPv4: *(ipv4_address, port)*, where *ipv4_address* is a string with
|
||||
dot-notation numeric IPv4 address, e.g. ``"8.8.8.8"``, and *port* is and
|
||||
integer port number in the range 1-65535. Note the domain names are not
|
||||
accepted as *ipv4_address*, they should be resolved first using
|
||||
`socket.getaddrinfo()`.
|
||||
* IPv6: *(ipv6_address, port, flowinfo, scopeid)*, where *ipv6_address*
|
||||
is a string with colon-notation numeric IPv6 address, e.g. ``"2001:db8::1"``,
|
||||
and *port* is an integer port number in the range 1-65535. *flowinfo*
|
||||
must be 0. *scopeid* is the interface scope identifier for link-local
|
||||
addresses. Note the domain names are not accepted as *ipv6_address*,
|
||||
they should be resolved first using `socket.getaddrinfo()`. Availability
|
||||
of IPv6 support depends on a :term:`MicroPython port`.
|
||||
"""
|
||||
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
74
.vscode/Pico-W-Stub/ssl.pyi
vendored
@@ -1,74 +0,0 @@
|
||||
"""
|
||||
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
36
.vscode/Pico-W-Stub/stdlib/__future__.pyi
vendored
@@ -1,36 +0,0 @@
|
||||
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
573
.vscode/Pico-W-Stub/stdlib/_ast.pyi
vendored
@@ -1,573 +0,0 @@
|
||||
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
136
.vscode/Pico-W-Stub/stdlib/_codecs.pyi
vendored
@@ -1,136 +0,0 @@
|
||||
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
81
.vscode/Pico-W-Stub/stdlib/_collections_abc.pyi
vendored
@@ -1,81 +0,0 @@
|
||||
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
281
.vscode/Pico-W-Stub/stdlib/_decimal.pyi
vendored
@@ -1,281 +0,0 @@
|
||||
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
318
.vscode/Pico-W-Stub/stdlib/_typeshed/__init__.pyi
vendored
@@ -1,318 +0,0 @@
|
||||
# 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
37
.vscode/Pico-W-Stub/stdlib/_typeshed/dbapi.pyi
vendored
@@ -1,37 +0,0 @@
|
||||
# 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
44
.vscode/Pico-W-Stub/stdlib/_typeshed/wsgi.pyi
vendored
@@ -1,44 +0,0 @@
|
||||
# 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
9
.vscode/Pico-W-Stub/stdlib/_typeshed/xml.pyi
vendored
@@ -1,9 +0,0 @@
|
||||
# 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
57
.vscode/Pico-W-Stub/stdlib/abc.pyi
vendored
@@ -1,57 +0,0 @@
|
||||
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
45
.vscode/Pico-W-Stub/stdlib/asyncio/__init__.pyi
vendored
@@ -1,45 +0,0 @@
|
||||
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
521
.vscode/Pico-W-Stub/stdlib/asyncio/base_events.pyi
vendored
@@ -1,521 +0,0 @@
|
||||
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: ...
|
||||
@@ -1,20 +0,0 @@
|
||||
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
|
||||
@@ -1,9 +0,0 @@
|
||||
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
20
.vscode/Pico-W-Stub/stdlib/asyncio/constants.pyi
vendored
@@ -1,20 +0,0 @@
|
||||
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
|
||||
@@ -1,28 +0,0 @@
|
||||
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
687
.vscode/Pico-W-Stub/stdlib/asyncio/events.pyi
vendored
@@ -1,687 +0,0 @@
|
||||
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): ...
|
||||
@@ -1,38 +0,0 @@
|
||||
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): ...
|
||||
@@ -1,20 +0,0 @@
|
||||
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
66
.vscode/Pico-W-Stub/stdlib/asyncio/futures.pyi
vendored
@@ -1,66 +0,0 @@
|
||||
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
116
.vscode/Pico-W-Stub/stdlib/asyncio/locks.pyi
vendored
@@ -1,116 +0,0 @@
|
||||
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
3
.vscode/Pico-W-Stub/stdlib/asyncio/log.pyi
vendored
@@ -1,3 +0,0 @@
|
||||
import logging
|
||||
|
||||
logger: logging.Logger
|
||||
10
.vscode/Pico-W-Stub/stdlib/asyncio/mixins.pyi
vendored
10
.vscode/Pico-W-Stub/stdlib/asyncio/mixins.pyi
vendored
@@ -1,10 +0,0 @@
|
||||
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: ...
|
||||
@@ -1,74 +0,0 @@
|
||||
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
34
.vscode/Pico-W-Stub/stdlib/asyncio/protocols.pyi
vendored
@@ -1,34 +0,0 @@
|
||||
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
40
.vscode/Pico-W-Stub/stdlib/asyncio/queues.pyi
vendored
@@ -1,40 +0,0 @@
|
||||
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
35
.vscode/Pico-W-Stub/stdlib/asyncio/runners.pyi
vendored
@@ -1,35 +0,0 @@
|
||||
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: ...
|
||||
@@ -1,8 +0,0 @@
|
||||
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
176
.vscode/Pico-W-Stub/stdlib/asyncio/sslproto.pyi
vendored
@@ -1,176 +0,0 @@
|
||||
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
10
.vscode/Pico-W-Stub/stdlib/asyncio/staggered.pyi
vendored
@@ -1,10 +0,0 @@
|
||||
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
179
.vscode/Pico-W-Stub/stdlib/asyncio/streams.pyi
vendored
@@ -1,179 +0,0 @@
|
||||
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: ...
|
||||
@@ -1,20 +0,0 @@
|
||||
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]: ...
|
||||
348
.vscode/Pico-W-Stub/stdlib/asyncio/tasks.pyi
vendored
348
.vscode/Pico-W-Stub/stdlib/asyncio/tasks.pyi
vendored
@@ -1,348 +0,0 @@
|
||||
import concurrent.futures
|
||||
import sys
|
||||
from collections.abc import Awaitable, Coroutine, Generator, Iterable, Iterator
|
||||
from types import FrameType
|
||||
from typing import Any, Generic, TextIO, TypeVar, overload
|
||||
from typing_extensions import Literal, TypeAlias
|
||||
|
||||
from . import _CoroutineLike
|
||||
from .events import AbstractEventLoop
|
||||
from .futures import Future
|
||||
|
||||
if sys.version_info >= (3, 9):
|
||||
from types import GenericAlias
|
||||
if sys.version_info >= (3, 11):
|
||||
from contextvars import Context
|
||||
|
||||
__all__ = (
|
||||
"Task",
|
||||
"create_task",
|
||||
"FIRST_COMPLETED",
|
||||
"FIRST_EXCEPTION",
|
||||
"ALL_COMPLETED",
|
||||
"wait",
|
||||
"wait_for",
|
||||
"as_completed",
|
||||
"sleep",
|
||||
"gather",
|
||||
"shield",
|
||||
"ensure_future",
|
||||
"run_coroutine_threadsafe",
|
||||
"current_task",
|
||||
"all_tasks",
|
||||
"_register_task",
|
||||
"_unregister_task",
|
||||
"_enter_task",
|
||||
"_leave_task",
|
||||
)
|
||||
|
||||
_T = TypeVar("_T")
|
||||
_T_co = TypeVar("_T_co", covariant=True)
|
||||
_T1 = TypeVar("_T1")
|
||||
_T2 = TypeVar("_T2")
|
||||
_T3 = TypeVar("_T3")
|
||||
_T4 = TypeVar("_T4")
|
||||
_T5 = TypeVar("_T5")
|
||||
_FT = TypeVar("_FT", bound=Future[Any])
|
||||
_FutureLike: TypeAlias = Future[_T] | Generator[Any, None, _T] | Awaitable[_T]
|
||||
_TaskYieldType: TypeAlias = Future[object] | None
|
||||
|
||||
FIRST_COMPLETED = concurrent.futures.FIRST_COMPLETED
|
||||
FIRST_EXCEPTION = concurrent.futures.FIRST_EXCEPTION
|
||||
ALL_COMPLETED = concurrent.futures.ALL_COMPLETED
|
||||
|
||||
if sys.version_info >= (3, 10):
|
||||
def as_completed(fs: Iterable[_FutureLike[_T]], *, timeout: float | None = None) -> Iterator[Future[_T]]: ...
|
||||
|
||||
else:
|
||||
def as_completed(
|
||||
fs: Iterable[_FutureLike[_T]], *, loop: AbstractEventLoop | None = None, timeout: float | None = None
|
||||
) -> Iterator[Future[_T]]: ...
|
||||
|
||||
@overload
|
||||
def ensure_future(coro_or_future: _FT, *, loop: AbstractEventLoop | None = None) -> _FT: ... # type: ignore[misc]
|
||||
@overload
|
||||
def ensure_future(coro_or_future: Awaitable[_T], *, loop: AbstractEventLoop | None = None) -> Task[_T]: ...
|
||||
|
||||
# `gather()` actually returns a list with length equal to the number
|
||||
# of tasks passed; however, Tuple is used similar to the annotation for
|
||||
# zip() because typing does not support variadic type variables. See
|
||||
# typing PR #1550 for discussion.
|
||||
#
|
||||
# The many type: ignores here are because the overloads overlap,
|
||||
# but having overlapping overloads is the only way to get acceptable type inference in all edge cases.
|
||||
if sys.version_info >= (3, 10):
|
||||
@overload
|
||||
def gather(__coro_or_future1: _FutureLike[_T1], *, return_exceptions: Literal[False] = False) -> Future[tuple[_T1]]: ... # type: ignore[misc]
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1], __coro_or_future2: _FutureLike[_T2], *, return_exceptions: Literal[False] = False
|
||||
) -> Future[tuple[_T1, _T2]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1],
|
||||
__coro_or_future2: _FutureLike[_T2],
|
||||
__coro_or_future3: _FutureLike[_T3],
|
||||
*,
|
||||
return_exceptions: Literal[False] = False,
|
||||
) -> Future[tuple[_T1, _T2, _T3]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1],
|
||||
__coro_or_future2: _FutureLike[_T2],
|
||||
__coro_or_future3: _FutureLike[_T3],
|
||||
__coro_or_future4: _FutureLike[_T4],
|
||||
*,
|
||||
return_exceptions: Literal[False] = False,
|
||||
) -> Future[tuple[_T1, _T2, _T3, _T4]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1],
|
||||
__coro_or_future2: _FutureLike[_T2],
|
||||
__coro_or_future3: _FutureLike[_T3],
|
||||
__coro_or_future4: _FutureLike[_T4],
|
||||
__coro_or_future5: _FutureLike[_T5],
|
||||
*,
|
||||
return_exceptions: Literal[False] = False,
|
||||
) -> Future[tuple[_T1, _T2, _T3, _T4, _T5]]: ...
|
||||
@overload
|
||||
def gather(__coro_or_future1: _FutureLike[_T1], *, return_exceptions: bool) -> Future[tuple[_T1 | BaseException]]: ... # type: ignore[misc]
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1], __coro_or_future2: _FutureLike[_T2], *, return_exceptions: bool
|
||||
) -> Future[tuple[_T1 | BaseException, _T2 | BaseException]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1],
|
||||
__coro_or_future2: _FutureLike[_T2],
|
||||
__coro_or_future3: _FutureLike[_T3],
|
||||
*,
|
||||
return_exceptions: bool,
|
||||
) -> Future[tuple[_T1 | BaseException, _T2 | BaseException, _T3 | BaseException]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1],
|
||||
__coro_or_future2: _FutureLike[_T2],
|
||||
__coro_or_future3: _FutureLike[_T3],
|
||||
__coro_or_future4: _FutureLike[_T4],
|
||||
*,
|
||||
return_exceptions: bool,
|
||||
) -> Future[tuple[_T1 | BaseException, _T2 | BaseException, _T3 | BaseException, _T4 | BaseException]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1],
|
||||
__coro_or_future2: _FutureLike[_T2],
|
||||
__coro_or_future3: _FutureLike[_T3],
|
||||
__coro_or_future4: _FutureLike[_T4],
|
||||
__coro_or_future5: _FutureLike[_T5],
|
||||
*,
|
||||
return_exceptions: bool,
|
||||
) -> Future[
|
||||
tuple[_T1 | BaseException, _T2 | BaseException, _T3 | BaseException, _T4 | BaseException, _T5 | BaseException]
|
||||
]: ...
|
||||
@overload
|
||||
def gather(*coros_or_futures: _FutureLike[Any], return_exceptions: bool = False) -> Future[list[Any]]: ...
|
||||
|
||||
else:
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1], *, loop: AbstractEventLoop | None = None, return_exceptions: Literal[False] = False
|
||||
) -> Future[tuple[_T1]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1],
|
||||
__coro_or_future2: _FutureLike[_T2],
|
||||
*,
|
||||
loop: AbstractEventLoop | None = None,
|
||||
return_exceptions: Literal[False] = False,
|
||||
) -> Future[tuple[_T1, _T2]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1],
|
||||
__coro_or_future2: _FutureLike[_T2],
|
||||
__coro_or_future3: _FutureLike[_T3],
|
||||
*,
|
||||
loop: AbstractEventLoop | None = None,
|
||||
return_exceptions: Literal[False] = False,
|
||||
) -> Future[tuple[_T1, _T2, _T3]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1],
|
||||
__coro_or_future2: _FutureLike[_T2],
|
||||
__coro_or_future3: _FutureLike[_T3],
|
||||
__coro_or_future4: _FutureLike[_T4],
|
||||
*,
|
||||
loop: AbstractEventLoop | None = None,
|
||||
return_exceptions: Literal[False] = False,
|
||||
) -> Future[tuple[_T1, _T2, _T3, _T4]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1],
|
||||
__coro_or_future2: _FutureLike[_T2],
|
||||
__coro_or_future3: _FutureLike[_T3],
|
||||
__coro_or_future4: _FutureLike[_T4],
|
||||
__coro_or_future5: _FutureLike[_T5],
|
||||
*,
|
||||
loop: AbstractEventLoop | None = None,
|
||||
return_exceptions: Literal[False] = False,
|
||||
) -> Future[tuple[_T1, _T2, _T3, _T4, _T5]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1], *, loop: AbstractEventLoop | None = None, return_exceptions: bool
|
||||
) -> Future[tuple[_T1 | BaseException]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1],
|
||||
__coro_or_future2: _FutureLike[_T2],
|
||||
*,
|
||||
loop: AbstractEventLoop | None = None,
|
||||
return_exceptions: bool,
|
||||
) -> Future[tuple[_T1 | BaseException, _T2 | BaseException]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1],
|
||||
__coro_or_future2: _FutureLike[_T2],
|
||||
__coro_or_future3: _FutureLike[_T3],
|
||||
*,
|
||||
loop: AbstractEventLoop | None = None,
|
||||
return_exceptions: bool,
|
||||
) -> Future[tuple[_T1 | BaseException, _T2 | BaseException, _T3 | BaseException]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1],
|
||||
__coro_or_future2: _FutureLike[_T2],
|
||||
__coro_or_future3: _FutureLike[_T3],
|
||||
__coro_or_future4: _FutureLike[_T4],
|
||||
*,
|
||||
loop: AbstractEventLoop | None = None,
|
||||
return_exceptions: bool,
|
||||
) -> Future[tuple[_T1 | BaseException, _T2 | BaseException, _T3 | BaseException, _T4 | BaseException]]: ...
|
||||
@overload
|
||||
def gather( # type: ignore[misc]
|
||||
__coro_or_future1: _FutureLike[_T1],
|
||||
__coro_or_future2: _FutureLike[_T2],
|
||||
__coro_or_future3: _FutureLike[_T3],
|
||||
__coro_or_future4: _FutureLike[_T4],
|
||||
__coro_or_future5: _FutureLike[_T5],
|
||||
*,
|
||||
loop: AbstractEventLoop | None = None,
|
||||
return_exceptions: bool,
|
||||
) -> Future[
|
||||
tuple[_T1 | BaseException, _T2 | BaseException, _T3 | BaseException, _T4 | BaseException, _T5 | BaseException]
|
||||
]: ...
|
||||
@overload
|
||||
def gather(
|
||||
*coros_or_futures: _FutureLike[Any], loop: AbstractEventLoop | None = None, return_exceptions: bool = False
|
||||
) -> Future[list[Any]]: ...
|
||||
|
||||
def run_coroutine_threadsafe(coro: _FutureLike[_T], loop: AbstractEventLoop) -> concurrent.futures.Future[_T]: ...
|
||||
|
||||
if sys.version_info >= (3, 10):
|
||||
def shield(arg: _FutureLike[_T]) -> Future[_T]: ...
|
||||
@overload
|
||||
async def sleep(delay: float) -> None: ...
|
||||
@overload
|
||||
async def sleep(delay: float, result: _T) -> _T: ...
|
||||
@overload
|
||||
async def wait(fs: Iterable[_FT], *, timeout: float | None = None, return_when: str = "ALL_COMPLETED") -> tuple[set[_FT], set[_FT]]: ... # type: ignore[misc]
|
||||
@overload
|
||||
async def wait(
|
||||
fs: Iterable[Awaitable[_T]], *, timeout: float | None = None, return_when: str = "ALL_COMPLETED"
|
||||
) -> tuple[set[Task[_T]], set[Task[_T]]]: ...
|
||||
async def wait_for(fut: _FutureLike[_T], timeout: float | None) -> _T: ...
|
||||
|
||||
else:
|
||||
def shield(arg: _FutureLike[_T], *, loop: AbstractEventLoop | None = None) -> Future[_T]: ...
|
||||
@overload
|
||||
async def sleep(delay: float, *, loop: AbstractEventLoop | None = None) -> None: ...
|
||||
@overload
|
||||
async def sleep(delay: float, result: _T, *, loop: AbstractEventLoop | None = None) -> _T: ...
|
||||
@overload
|
||||
async def wait( # type: ignore[misc]
|
||||
fs: Iterable[_FT],
|
||||
*,
|
||||
loop: AbstractEventLoop | None = None,
|
||||
timeout: float | None = None,
|
||||
return_when: str = "ALL_COMPLETED",
|
||||
) -> tuple[set[_FT], set[_FT]]: ...
|
||||
@overload
|
||||
async def wait(
|
||||
fs: Iterable[Awaitable[_T]],
|
||||
*,
|
||||
loop: AbstractEventLoop | None = None,
|
||||
timeout: float | None = None,
|
||||
return_when: str = "ALL_COMPLETED",
|
||||
) -> tuple[set[Task[_T]], set[Task[_T]]]: ...
|
||||
async def wait_for(fut: _FutureLike[_T], timeout: float | None, *, loop: AbstractEventLoop | None = None) -> _T: ...
|
||||
|
||||
if sys.version_info >= (3, 12):
|
||||
_TaskCompatibleCoro: TypeAlias = Coroutine[Any, Any, _T_co]
|
||||
else:
|
||||
_TaskCompatibleCoro: TypeAlias = Generator[_TaskYieldType, None, _T_co] | Awaitable[_T_co]
|
||||
|
||||
# mypy and pyright complain that a subclass of an invariant class shouldn't be covariant.
|
||||
# While this is true in general, here it's sort-of okay to have a covariant subclass,
|
||||
# since the only reason why `asyncio.Future` is invariant is the `set_result()` method,
|
||||
# and `asyncio.Task.set_result()` always raises.
|
||||
class Task(Future[_T_co], Generic[_T_co]): # type: ignore[type-var] # pyright: ignore[reportGeneralTypeIssues]
|
||||
if sys.version_info >= (3, 12):
|
||||
def __init__(
|
||||
self,
|
||||
coro: _TaskCompatibleCoro[_T_co],
|
||||
*,
|
||||
loop: AbstractEventLoop = ...,
|
||||
name: str | None = ...,
|
||||
context: Context | None = None,
|
||||
eager_start: bool = False,
|
||||
) -> None: ...
|
||||
elif sys.version_info >= (3, 11):
|
||||
def __init__(
|
||||
self,
|
||||
coro: _TaskCompatibleCoro[_T_co],
|
||||
*,
|
||||
loop: AbstractEventLoop = ...,
|
||||
name: str | None = ...,
|
||||
context: Context | None = None,
|
||||
) -> None: ...
|
||||
elif sys.version_info >= (3, 8):
|
||||
def __init__(
|
||||
self, coro: _TaskCompatibleCoro[_T_co], *, loop: AbstractEventLoop = ..., name: str | None = ...
|
||||
) -> None: ...
|
||||
else:
|
||||
def __init__(self, coro: _TaskCompatibleCoro[_T_co], *, loop: AbstractEventLoop = ...) -> None: ...
|
||||
if sys.version_info >= (3, 8):
|
||||
def get_coro(self) -> _TaskCompatibleCoro[_T_co]: ...
|
||||
def get_name(self) -> str: ...
|
||||
def set_name(self, __value: object) -> None: ...
|
||||
if sys.version_info >= (3, 12):
|
||||
def get_context(self) -> Context: ...
|
||||
|
||||
def get_stack(self, *, limit: int | None = None) -> list[FrameType]: ...
|
||||
def print_stack(self, *, limit: int | None = None, file: TextIO | None = None) -> None: ...
|
||||
if sys.version_info >= (3, 11):
|
||||
def cancelling(self) -> int: ...
|
||||
def uncancel(self) -> int: ...
|
||||
if sys.version_info < (3, 9):
|
||||
@classmethod
|
||||
def current_task(cls, loop: AbstractEventLoop | None = None) -> Task[Any] | None: ...
|
||||
@classmethod
|
||||
def all_tasks(cls, loop: AbstractEventLoop | None = None) -> set[Task[Any]]: ...
|
||||
if sys.version_info >= (3, 9):
|
||||
def __class_getitem__(cls, item: Any) -> GenericAlias: ...
|
||||
|
||||
def all_tasks(loop: AbstractEventLoop | None = None) -> set[Task[Any]]: ...
|
||||
|
||||
if sys.version_info >= (3, 11):
|
||||
def create_task(coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None) -> Task[_T]: ...
|
||||
|
||||
elif sys.version_info >= (3, 8):
|
||||
def create_task(coro: _CoroutineLike[_T], *, name: str | None = None) -> Task[_T]: ...
|
||||
|
||||
else:
|
||||
def create_task(coro: _CoroutineLike[_T]) -> Task[_T]: ...
|
||||
|
||||
def current_task(loop: AbstractEventLoop | None = None) -> Task[Any] | None: ...
|
||||
def _enter_task(loop: AbstractEventLoop, task: Task[Any]) -> None: ...
|
||||
def _leave_task(loop: AbstractEventLoop, task: Task[Any]) -> None: ...
|
||||
def _register_task(task: Task[Any]) -> None: ...
|
||||
def _unregister_task(task: Task[Any]) -> None: ...
|
||||
@@ -1,9 +0,0 @@
|
||||
from collections.abc import Callable
|
||||
from typing import TypeVar
|
||||
from typing_extensions import ParamSpec
|
||||
|
||||
__all__ = ("to_thread",)
|
||||
_P = ParamSpec("_P")
|
||||
_R = TypeVar("_R")
|
||||
|
||||
async def to_thread(__func: Callable[_P, _R], *args: _P.args, **kwargs: _P.kwargs) -> _R: ...
|
||||
18
.vscode/Pico-W-Stub/stdlib/asyncio/timeouts.pyi
vendored
18
.vscode/Pico-W-Stub/stdlib/asyncio/timeouts.pyi
vendored
@@ -1,18 +0,0 @@
|
||||
from types import TracebackType
|
||||
from typing_extensions import Self, final
|
||||
|
||||
__all__ = ("Timeout", "timeout", "timeout_at")
|
||||
|
||||
@final
|
||||
class Timeout:
|
||||
def __init__(self, when: float | None) -> None: ...
|
||||
def when(self) -> float | None: ...
|
||||
def reschedule(self, when: float | None) -> None: ...
|
||||
def expired(self) -> bool: ...
|
||||
async def __aenter__(self) -> Self: ...
|
||||
async def __aexit__(
|
||||
self, exc_type: type[BaseException] | None, exc_val: BaseException | None, exc_tb: TracebackType | None
|
||||
) -> None: ...
|
||||
|
||||
def timeout(delay: float | None) -> Timeout: ...
|
||||
def timeout_at(when: float | None) -> Timeout: ...
|
||||
@@ -1,47 +0,0 @@
|
||||
from asyncio.events import AbstractEventLoop
|
||||
from asyncio.protocols import BaseProtocol
|
||||
from collections.abc import Iterable, Mapping
|
||||
from stdlib.socket import _Address
|
||||
from typing import Any
|
||||
|
||||
__all__ = ("BaseTransport", "ReadTransport", "WriteTransport", "Transport", "DatagramTransport", "SubprocessTransport")
|
||||
|
||||
class BaseTransport:
|
||||
def __init__(self, extra: Mapping[str, Any] | None = None) -> None: ...
|
||||
def get_extra_info(self, name: str, default: Any = None) -> Any: ...
|
||||
def is_closing(self) -> bool: ...
|
||||
def close(self) -> None: ...
|
||||
def set_protocol(self, protocol: BaseProtocol) -> None: ...
|
||||
def get_protocol(self) -> BaseProtocol: ...
|
||||
|
||||
class ReadTransport(BaseTransport):
|
||||
def is_reading(self) -> bool: ...
|
||||
def pause_reading(self) -> None: ...
|
||||
def resume_reading(self) -> None: ...
|
||||
|
||||
class WriteTransport(BaseTransport):
|
||||
def set_write_buffer_limits(self, high: int | None = None, low: int | None = None) -> None: ...
|
||||
def get_write_buffer_size(self) -> int: ...
|
||||
def get_write_buffer_limits(self) -> tuple[int, int]: ...
|
||||
def write(self, data: bytes | bytearray | memoryview) -> None: ...
|
||||
def writelines(self, list_of_data: Iterable[bytes | bytearray | memoryview]) -> None: ...
|
||||
def write_eof(self) -> None: ...
|
||||
def can_write_eof(self) -> bool: ...
|
||||
def abort(self) -> None: ...
|
||||
|
||||
class Transport(ReadTransport, WriteTransport): ...
|
||||
|
||||
class DatagramTransport(BaseTransport):
|
||||
def sendto(self, data: bytes | bytearray | memoryview, addr: _Address | None = None) -> None: ...
|
||||
def abort(self) -> None: ...
|
||||
|
||||
class SubprocessTransport(BaseTransport):
|
||||
def get_pid(self) -> int: ...
|
||||
def get_returncode(self) -> int | None: ...
|
||||
def get_pipe_transport(self, fd: int) -> BaseTransport | None: ...
|
||||
def send_signal(self, signal: int) -> None: ...
|
||||
def terminate(self) -> None: ...
|
||||
def kill(self) -> None: ...
|
||||
|
||||
class _FlowControlMixin(Transport):
|
||||
def __init__(self, extra: Mapping[str, Any] | None = None, loop: AbstractEventLoop | None = None) -> None: ...
|
||||
122
.vscode/Pico-W-Stub/stdlib/asyncio/trsock.pyi
vendored
122
.vscode/Pico-W-Stub/stdlib/asyncio/trsock.pyi
vendored
@@ -1,122 +0,0 @@
|
||||
import sys
|
||||
from builtins import type as Type # alias to avoid name clashes with property named "type"
|
||||
from collections.abc import Iterable
|
||||
from types import TracebackType
|
||||
from typing import Any, BinaryIO, NoReturn, overload
|
||||
|
||||
import stdlib.socket as socket
|
||||
from _typeshed import ReadableBuffer
|
||||
from typing_extensions import TypeAlias
|
||||
|
||||
# These are based in socket, maybe move them out into _typeshed.pyi or such
|
||||
_Address: TypeAlias = socket._Address
|
||||
_RetAddress: TypeAlias = Any
|
||||
_WriteBuffer: TypeAlias = bytearray | memoryview
|
||||
_CMSG: TypeAlias = tuple[int, int, bytes]
|
||||
|
||||
class TransportSocket:
|
||||
def __init__(self, sock: socket.socket) -> None: ...
|
||||
@property
|
||||
def family(self) -> int: ...
|
||||
@property
|
||||
def type(self) -> int: ...
|
||||
@property
|
||||
def proto(self) -> int: ...
|
||||
def __getstate__(self) -> NoReturn: ...
|
||||
def fileno(self) -> int: ...
|
||||
def dup(self) -> socket.socket: ...
|
||||
def get_inheritable(self) -> bool: ...
|
||||
def shutdown(self, how: int) -> None: ...
|
||||
@overload
|
||||
def getsockopt(self, level: int, optname: int) -> int: ...
|
||||
@overload
|
||||
def getsockopt(self, level: int, optname: int, buflen: int) -> bytes: ...
|
||||
@overload
|
||||
def setsockopt(self, level: int, optname: int, value: int | ReadableBuffer) -> None: ...
|
||||
@overload
|
||||
def setsockopt(self, level: int, optname: int, value: None, optlen: int) -> None: ...
|
||||
def getpeername(self) -> _RetAddress: ...
|
||||
def getsockname(self) -> _RetAddress: ...
|
||||
def getsockbyname(
|
||||
self,
|
||||
) -> NoReturn: ... # This method doesn't exist on socket, yet is passed through?
|
||||
def settimeout(self, value: float | None) -> None: ...
|
||||
def gettimeout(self) -> float | None: ...
|
||||
def setblocking(self, flag: bool) -> None: ...
|
||||
if sys.version_info < (3, 11):
|
||||
def _na(self, what: str) -> None: ...
|
||||
def accept(self) -> tuple[socket.socket, _RetAddress]: ...
|
||||
def connect(self, address: _Address) -> None: ...
|
||||
def connect_ex(self, address: _Address) -> int: ...
|
||||
def bind(self, address: _Address) -> None: ...
|
||||
if sys.platform == "win32":
|
||||
def ioctl(self, control: int, option: int | tuple[int, int, int] | bool) -> None: ...
|
||||
else:
|
||||
def ioctl(
|
||||
self, control: int, option: int | tuple[int, int, int] | bool
|
||||
) -> NoReturn: ...
|
||||
|
||||
def listen(self, __backlog: int = ...) -> None: ...
|
||||
def makefile(self) -> BinaryIO: ...
|
||||
def sendfile(self, file: BinaryIO, offset: int = ..., count: int | None = ...) -> int: ...
|
||||
def close(self) -> None: ...
|
||||
def detach(self) -> int: ...
|
||||
if sys.platform == "linux":
|
||||
def sendmsg_afalg(
|
||||
self,
|
||||
msg: Iterable[ReadableBuffer] = ...,
|
||||
*,
|
||||
op: int,
|
||||
iv: Any = ...,
|
||||
assoclen: int = ...,
|
||||
flags: int = ...
|
||||
) -> int: ...
|
||||
else:
|
||||
def sendmsg_afalg(
|
||||
self,
|
||||
msg: Iterable[ReadableBuffer] = ...,
|
||||
*,
|
||||
op: int,
|
||||
iv: Any = ...,
|
||||
assoclen: int = ...,
|
||||
flags: int = ...
|
||||
) -> NoReturn: ...
|
||||
|
||||
def sendmsg(
|
||||
self,
|
||||
__buffers: Iterable[ReadableBuffer],
|
||||
__ancdata: Iterable[_CMSG] = ...,
|
||||
__flags: int = ...,
|
||||
__address: _Address = ...,
|
||||
) -> int: ...
|
||||
@overload
|
||||
def sendto(self, data: ReadableBuffer, address: _Address) -> int: ...
|
||||
@overload
|
||||
def sendto(self, data: ReadableBuffer, flags: int, address: _Address) -> int: ...
|
||||
def send(self, data: ReadableBuffer, flags: int = ...) -> int: ...
|
||||
def sendall(self, data: ReadableBuffer, flags: int = ...) -> None: ...
|
||||
def set_inheritable(self, inheritable: bool) -> None: ...
|
||||
if sys.platform == "win32":
|
||||
def share(self, process_id: int) -> bytes: ...
|
||||
else:
|
||||
def share(self, process_id: int) -> NoReturn: ...
|
||||
|
||||
def recv_into(self, buffer: _WriteBuffer, nbytes: int = ..., flags: int = ...) -> int: ...
|
||||
def recvfrom_into(
|
||||
self, buffer: _WriteBuffer, nbytes: int = ..., flags: int = ...
|
||||
) -> tuple[int, _RetAddress]: ...
|
||||
def recvmsg_into(
|
||||
self, __buffers: Iterable[_WriteBuffer], __ancbufsize: int = ..., __flags: int = ...
|
||||
) -> tuple[int, list[_CMSG], int, Any]: ...
|
||||
def recvmsg(
|
||||
self, __bufsize: int, __ancbufsize: int = ..., __flags: int = ...
|
||||
) -> tuple[bytes, list[_CMSG], int, Any]: ...
|
||||
def recvfrom(self, bufsize: int, flags: int = ...) -> tuple[bytes, _RetAddress]: ...
|
||||
def recv(self, bufsize: int, flags: int = ...) -> bytes: ...
|
||||
def __enter__(self) -> socket.socket: ...
|
||||
def __exit__(
|
||||
self,
|
||||
exc_type: Type[BaseException] | None,
|
||||
exc_val: BaseException | None,
|
||||
exc_tb: TracebackType | None,
|
||||
) -> None: ...
|
||||
127
.vscode/Pico-W-Stub/stdlib/asyncio/unix_events.pyi
vendored
127
.vscode/Pico-W-Stub/stdlib/asyncio/unix_events.pyi
vendored
@@ -1,127 +0,0 @@
|
||||
import sys
|
||||
import types
|
||||
from abc import ABCMeta, abstractmethod
|
||||
from collections.abc import Callable
|
||||
from typing import Any
|
||||
from typing_extensions import Literal, Self
|
||||
|
||||
from .events import AbstractEventLoop, BaseDefaultEventLoopPolicy
|
||||
from .selector_events import BaseSelectorEventLoop
|
||||
|
||||
# This is also technically not available on Win,
|
||||
# but other parts of typeshed need this definition.
|
||||
# So, it is special cased.
|
||||
class AbstractChildWatcher:
|
||||
@abstractmethod
|
||||
def add_child_handler(self, pid: int, callback: Callable[..., object], *args: Any) -> None: ...
|
||||
@abstractmethod
|
||||
def remove_child_handler(self, pid: int) -> bool: ...
|
||||
@abstractmethod
|
||||
def attach_loop(self, loop: AbstractEventLoop | None) -> None: ...
|
||||
@abstractmethod
|
||||
def close(self) -> None: ...
|
||||
@abstractmethod
|
||||
def __enter__(self) -> Self: ...
|
||||
@abstractmethod
|
||||
def __exit__(self, typ: type[BaseException] | None, exc: BaseException | None, tb: types.TracebackType | None) -> None: ...
|
||||
if sys.version_info >= (3, 8):
|
||||
@abstractmethod
|
||||
def is_active(self) -> bool: ...
|
||||
|
||||
if sys.platform != "win32":
|
||||
if sys.version_info >= (3, 9):
|
||||
__all__ = (
|
||||
"SelectorEventLoop",
|
||||
"AbstractChildWatcher",
|
||||
"SafeChildWatcher",
|
||||
"FastChildWatcher",
|
||||
"PidfdChildWatcher",
|
||||
"MultiLoopChildWatcher",
|
||||
"ThreadedChildWatcher",
|
||||
"DefaultEventLoopPolicy",
|
||||
)
|
||||
elif sys.version_info >= (3, 8):
|
||||
__all__ = (
|
||||
"SelectorEventLoop",
|
||||
"AbstractChildWatcher",
|
||||
"SafeChildWatcher",
|
||||
"FastChildWatcher",
|
||||
"MultiLoopChildWatcher",
|
||||
"ThreadedChildWatcher",
|
||||
"DefaultEventLoopPolicy",
|
||||
)
|
||||
else:
|
||||
__all__ = ("SelectorEventLoop", "AbstractChildWatcher", "SafeChildWatcher", "FastChildWatcher", "DefaultEventLoopPolicy")
|
||||
|
||||
# Doesn't actually have ABCMeta metaclass at runtime, but mypy complains if we don't have it in the stub.
|
||||
# See discussion in #7412
|
||||
class BaseChildWatcher(AbstractChildWatcher, metaclass=ABCMeta):
|
||||
def close(self) -> None: ...
|
||||
if sys.version_info >= (3, 8):
|
||||
def is_active(self) -> bool: ...
|
||||
|
||||
def attach_loop(self, loop: AbstractEventLoop | None) -> None: ...
|
||||
|
||||
class SafeChildWatcher(BaseChildWatcher):
|
||||
def __enter__(self) -> Self: ...
|
||||
def __exit__(self, a: type[BaseException] | None, b: BaseException | None, c: types.TracebackType | None) -> None: ...
|
||||
def add_child_handler(self, pid: int, callback: Callable[..., object], *args: Any) -> None: ...
|
||||
def remove_child_handler(self, pid: int) -> bool: ...
|
||||
|
||||
class FastChildWatcher(BaseChildWatcher):
|
||||
def __enter__(self) -> Self: ...
|
||||
def __exit__(self, a: type[BaseException] | None, b: BaseException | None, c: types.TracebackType | None) -> None: ...
|
||||
def add_child_handler(self, pid: int, callback: Callable[..., object], *args: Any) -> None: ...
|
||||
def remove_child_handler(self, pid: int) -> bool: ...
|
||||
|
||||
class _UnixSelectorEventLoop(BaseSelectorEventLoop): ...
|
||||
|
||||
class _UnixDefaultEventLoopPolicy(BaseDefaultEventLoopPolicy):
|
||||
def get_child_watcher(self) -> AbstractChildWatcher: ...
|
||||
def set_child_watcher(self, watcher: AbstractChildWatcher | None) -> None: ...
|
||||
SelectorEventLoop = _UnixSelectorEventLoop
|
||||
|
||||
DefaultEventLoopPolicy = _UnixDefaultEventLoopPolicy
|
||||
|
||||
if sys.version_info >= (3, 8):
|
||||
from typing import Protocol
|
||||
|
||||
class _Warn(Protocol):
|
||||
def __call__(
|
||||
self, message: str, category: type[Warning] | None = ..., stacklevel: int = ..., source: Any | None = ...
|
||||
) -> object: ...
|
||||
|
||||
class MultiLoopChildWatcher(AbstractChildWatcher):
|
||||
def is_active(self) -> bool: ...
|
||||
def close(self) -> None: ...
|
||||
def __enter__(self) -> Self: ...
|
||||
def __exit__(
|
||||
self, exc_type: type[BaseException] | None, exc_val: BaseException | None, exc_tb: types.TracebackType | None
|
||||
) -> None: ...
|
||||
def add_child_handler(self, pid: int, callback: Callable[..., object], *args: Any) -> None: ...
|
||||
def remove_child_handler(self, pid: int) -> bool: ...
|
||||
def attach_loop(self, loop: AbstractEventLoop | None) -> None: ...
|
||||
|
||||
class ThreadedChildWatcher(AbstractChildWatcher):
|
||||
def is_active(self) -> Literal[True]: ...
|
||||
def close(self) -> None: ...
|
||||
def __enter__(self) -> Self: ...
|
||||
def __exit__(
|
||||
self, exc_type: type[BaseException] | None, exc_val: BaseException | None, exc_tb: types.TracebackType | None
|
||||
) -> None: ...
|
||||
def __del__(self, _warn: _Warn = ...) -> None: ...
|
||||
def add_child_handler(self, pid: int, callback: Callable[..., object], *args: Any) -> None: ...
|
||||
def remove_child_handler(self, pid: int) -> bool: ...
|
||||
def attach_loop(self, loop: AbstractEventLoop | None) -> None: ...
|
||||
|
||||
if sys.version_info >= (3, 9):
|
||||
class PidfdChildWatcher(AbstractChildWatcher):
|
||||
def __enter__(self) -> Self: ...
|
||||
def __exit__(
|
||||
self, exc_type: type[BaseException] | None, exc_val: BaseException | None, exc_tb: types.TracebackType | None
|
||||
) -> None: ...
|
||||
def is_active(self) -> bool: ...
|
||||
def close(self) -> None: ...
|
||||
def attach_loop(self, loop: AbstractEventLoop | None) -> None: ...
|
||||
def add_child_handler(self, pid: int, callback: Callable[..., object], *args: Any) -> None: ...
|
||||
def remove_child_handler(self, pid: int) -> bool: ...
|
||||
1958
.vscode/Pico-W-Stub/stdlib/builtins.pyi
vendored
1958
.vscode/Pico-W-Stub/stdlib/builtins.pyi
vendored
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user