From 4659885cda26bdab74a1288bfbd45b2f24d04d15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saugat=20Pachhai=20=28=E0=A4=B8=E0=A5=8C=E0=A4=97=E0=A4=BE?= =?UTF-8?q?=E0=A4=A4=29?= Date: Tue, 14 Dec 2021 20:41:59 +0545 Subject: [PATCH 1/2] make type imports lazy --- .../git/backend/dulwich/asyncssh_vendor.py | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/scmrepo/git/backend/dulwich/asyncssh_vendor.py b/scmrepo/git/backend/dulwich/asyncssh_vendor.py index dddbfb83..ae881a50 100644 --- a/scmrepo/git/backend/dulwich/asyncssh_vendor.py +++ b/scmrepo/git/backend/dulwich/asyncssh_vendor.py @@ -1,18 +1,20 @@ """asyncssh SSH vendor for Dulwich.""" import asyncio -from typing import List, Optional +from typing import TYPE_CHECKING, List, Optional -from asyncssh.connection import SSHClientConnection, SSHConnection -from asyncssh.process import SSHClientProcess -from asyncssh.stream import SSHReader from dulwich.client import SSHVendor from scmrepo.asyn import BaseAsyncObject, sync_wrapper +if TYPE_CHECKING: + from asyncssh.connection import SSHClientConnection, SSHConnection + from asyncssh.process import SSHClientProcess + from asyncssh.stream import SSHReader + class _StderrWrapper: def __init__( - self, stderr: SSHReader, loop: asyncio.AbstractEventLoop + self, stderr: "SSHReader", loop: asyncio.AbstractEventLoop ) -> None: self.stderr = stderr self.loop = loop @@ -34,10 +36,12 @@ async def _read(self, n: Optional[int] = None) -> bytes: class AsyncSSHWrapper(BaseAsyncObject): - def __init__(self, conn: SSHConnection, proc: SSHClientProcess, **kwargs): + def __init__( + self, conn: "SSHConnection", proc: "SSHClientProcess", **kwargs + ): super().__init__(**kwargs) - self.conn: SSHClientConnection = conn - self.proc: SSHClientProcess = proc + self.conn: "SSHClientConnection" = conn + self.proc: "SSHClientProcess" = proc self.stderr = _StderrWrapper(proc.stderr, self.loop) def can_read(self) -> bool: @@ -142,7 +146,7 @@ async def _run_command( MSG_USERAUTH_PK_OK ] = _process_public_key_ok_gh - conn: SSHClientConnection = await asyncssh.connect( + conn: "SSHClientConnection" = await asyncssh.connect( host, port=port if port is not None else (), username=username if username is not None else (), @@ -152,7 +156,7 @@ async def _run_command( known_hosts=None, encoding=None, ) - proc: SSHClientProcess = await conn.create_process( + proc: "SSHClientProcess" = await conn.create_process( command, encoding=None ) return AsyncSSHWrapper(conn, proc) From aa25a9af1ad73edf691e490d7f05d0ed731864ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saugat=20Pachhai=20=28=E0=A4=B8=E0=A5=8C=E0=A4=97=E0=A4=BE?= =?UTF-8?q?=E0=A4=A4=29?= Date: Tue, 14 Dec 2021 20:42:23 +0545 Subject: [PATCH 2/2] bump to 0.0.6 --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 78e22e05..1de49b09 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,7 +1,7 @@ [metadata] description = SCM wrapper and fsspec filesystem for Git for use in DVC name = scmrepo -version = 0.0.5 +version = 0.0.6 long_description = file: README.md long_description_content_type = text/markdown license = Apache License 2.0