from typing import AsyncGenerator, Dict, List, Optional
def demux(mapping: Dict[int, "HydroflowSink"]) -> "HydroflowSink": ...
def null() -> "HydroflowNull": ...
class HydroflowSource(object):
def send_to(self, other: HydroflowSink) -> None: ...
def tagged(self, tag: int) -> "HydroflowSource": ...
class HydroflowSink(object):
pass
class Deployment(object):
def __init__(self) -> None: ...
def Localhost(self) -> "LocalhostHost": ...
def GcpComputeEngineHost(self, project: str, machine_type: str, image: str, region: str, network: "GcpNetwork", user: Optional[str] = None) -> "GcpComputeEngineHost": ...
def CustomService(self, on: "Host", external_ports: List[int]) -> "CustomService": ...
def HydroflowCrate(self, src: str, on: "Host", bin: Optional[str] = None, example: Optional[str] = None, profile: Optional[str] = None, features: Optional[List[str]] = None, args: Optional[List[str]] = None, display_id: Optional[str] = None, external_ports: Optional[List[int]] = None) -> "HydroflowCrate": ...
async def deploy(self): ...
async def start(self): ...
class Host(object):
pass
class LocalhostHost(Host):
def client_only() -> "LocalhostHost": ...
class GcpNetwork(object):
def __init__(self, project: str, existing: Optional[str] = None) -> None: ...
class GcpComputeEngineHost(Host):
internal_ip: str
external_ip: Optional[str]
ssh_key_path: str
class Service(object):
async def stop(self) -> None: ...
class CustomService(Service):
def client_port(self) -> "CustomServicePort": ...
class CustomServicePort(HydroflowSource, HydroflowSink):
async def server_port(self) -> ServerPort: ...
class HydroflowCrate(Service):
ports: HydroflowCratePorts
async def stdout(self) -> AsyncGenerator[str, None]: ...
async def stderr(self) -> AsyncGenerator[str, None]: ...
async def exit_code(self) -> int: ...
class HydroflowCratePorts(object):
def __getattribute__(self, __name: str) -> HydroflowCratePort: ...
class HydroflowCratePort(HydroflowSource, HydroflowSink):
def merge(self) -> "HydroflowCratePort": ...
class HydroflowNull(HydroflowSource, HydroflowSink):
pass
class ServerPort(object):
def json() -> object: ...
async def into_sink() -> "PythonSink": ...
async def into_source() -> "PythonStream": ...
class PythonSink(object):
async def send(self, data: bytes) -> None: ...
class PythonStream(object):
async def next(self) -> Optional[bytes]: ...