hydro_cli 0.13.0

Hydro Deploy Command Line Interface
Documentation
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]: ...