[v2,2/2] dts: add paramiko to dependencies

Message ID 20230710162104.24425-7-jspewock@iol.unh.edu (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series Add DTS smoke tests |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/github-robot: build success github build: passed
ci/intel-Functional success Functional PASS
ci/iol-abi-testing success Testing PASS
ci/iol-unit-testing success Testing PASS
ci/iol-aarch-unit-testing success Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-unit-arm64-testing success Testing PASS

Commit Message

Jeremy Spewock July 10, 2023, 4:19 p.m. UTC
  From: Jeremy Spewock <jspewock@iol.unh.edu>

added paramiko to the dependency files

Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu>
---
 dts/poetry.lock    | 160 ++++++++++++++++++++++++++++++++++-----------
 dts/pyproject.toml |   1 +
 2 files changed, 124 insertions(+), 37 deletions(-)
  

Comments

Patrick Robb July 10, 2023, 10:09 p.m. UTC | #1
Tested-by: Patrick Robb <probb@iol.unh.edu>

On Mon, Jul 10, 2023 at 12:23 PM <jspewock@iol.unh.edu> wrote:

> From: Jeremy Spewock <jspewock@iol.unh.edu>
>
> added paramiko to the dependency files
>
> Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu>
> ---
>  dts/poetry.lock    | 160 ++++++++++++++++++++++++++++++++++-----------
>  dts/pyproject.toml |   1 +
>  2 files changed, 124 insertions(+), 37 deletions(-)
>
> diff --git a/dts/poetry.lock b/dts/poetry.lock
> index 0b2a007d..dfd9a240 100644
> --- a/dts/poetry.lock
> +++ b/dts/poetry.lock
> @@ -1,20 +1,33 @@
>  [[package]]
>  name = "attrs"
> -version = "22.1.0"
> +version = "23.1.0"
>  description = "Classes Without Boilerplate"
>  category = "main"
>  optional = false
> -python-versions = ">=3.5"
> +python-versions = ">=3.7"
>
>  [package.extras]
> -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest
> (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins",
> "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit",
> "cloudpickle"]
> -docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
> -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest
> (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins",
> "zope.interface", "cloudpickle"]
> -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler",
> "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins",
> "cloudpickle"]
> +cov = ["attrs", "coverage[toml] (>=5.3)"]
> +dev = ["attrs", "pre-commit"]
> +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page",
> "sphinxcontrib-towncrier", "towncrier", "zope-interface"]
> +tests = ["attrs", "zope-interface"]
> +tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)",
> "pympler", "pytest-mypy-plugins", "pytest-xdist", "pytest (>=4.3.0)"]
> +
> +[[package]]
> +name = "bcrypt"
> +version = "4.0.1"
> +description = "Modern password hashing for your software and your servers"
> +category = "main"
> +optional = false
> +python-versions = ">=3.6"
> +
> +[package.extras]
> +tests = ["pytest (>=3.2.1,!=3.3.0)"]
> +typecheck = ["mypy"]
>
>  [[package]]
>  name = "black"
> -version = "22.10.0"
> +version = "22.12.0"
>  description = "The uncompromising code formatter."
>  category = "dev"
>  optional = false
> @@ -33,6 +46,17 @@ d = ["aiohttp (>=3.7.4)"]
>  jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
>  uvloop = ["uvloop (>=0.15.2)"]
>
> +[[package]]
> +name = "cffi"
> +version = "1.15.1"
> +description = "Foreign Function Interface for Python calling C code."
> +category = "main"
> +optional = false
> +python-versions = "*"
> +
> +[package.dependencies]
> +pycparser = "*"
> +
>  [[package]]
>  name = "click"
>  version = "8.1.3"
> @@ -52,18 +76,39 @@ category = "dev"
>  optional = false
>  python-versions =
> "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
>
> +[[package]]
> +name = "cryptography"
> +version = "41.0.1"
> +description = "cryptography is a package which provides cryptographic
> recipes and primitives to Python developers."
> +category = "main"
> +optional = false
> +python-versions = ">=3.7"
> +
> +[package.dependencies]
> +cffi = ">=1.12"
> +
> +[package.extras]
> +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"]
> +docstest = ["pyenchant (>=1.6.11)", "twine (>=1.12.0)",
> "sphinxcontrib-spelling (>=4.0.1)"]
> +nox = ["nox"]
> +pep8test = ["black", "ruff", "mypy", "check-sdist"]
> +sdist = ["build"]
> +ssh = ["bcrypt (>=3.1.5)"]
> +test = ["pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov",
> "pytest-xdist", "pretend"]
> +test-randomorder = ["pytest-randomly"]
> +
>  [[package]]
>  name = "isort"
> -version = "5.10.1"
> +version = "5.12.0"
>  description = "A Python utility / library to sort Python imports."
>  category = "dev"
>  optional = false
> -python-versions = ">=3.6.1,<4.0"
> +python-versions = ">=3.8.0"
>
>  [package.extras]
> -pipfile_deprecated_finder = ["pipreqs", "requirementslib"]
> -requirements_deprecated_finder = ["pipreqs", "pip-api"]
> -colors = ["colorama (>=0.4.3,<0.5.0)"]
> +colors = ["colorama (>=0.4.3)"]
> +requirements-deprecated-finder = ["pip-api", "pipreqs"]
> +pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs",
> "requirementslib"]
>  plugins = ["setuptools"]
>
>  [[package]]
> @@ -87,7 +132,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*,
> !=3.3.*"
>
>  [[package]]
>  name = "jsonschema"
> -version = "4.17.0"
> +version = "4.17.3"
>  description = "An implementation of JSON Schema validation for Python"
>  category = "main"
>  optional = false
> @@ -129,15 +174,33 @@ reports = ["lxml"]
>
>  [[package]]
>  name = "mypy-extensions"
> -version = "0.4.3"
> -description = "Experimental type system extensions for programs checked
> with the mypy typechecker."
> +version = "1.0.0"
> +description = "Type system extensions for programs checked with the mypy
> type checker."
>  category = "dev"
>  optional = false
> -python-versions = "*"
> +python-versions = ">=3.5"
> +
> +[[package]]
> +name = "paramiko"
> +version = "3.2.0"
> +description = "SSH2 protocol library"
> +category = "main"
> +optional = false
> +python-versions = ">=3.6"
> +
> +[package.dependencies]
> +bcrypt = ">=3.2"
> +cryptography = ">=3.3"
> +pynacl = ">=1.5"
> +
> +[package.extras]
> +all = ["pyasn1 (>=0.1.7)", "invoke (>=2.0)", "gssapi (>=1.4.1)", "pywin32
> (>=2.1.8)"]
> +gssapi = ["pyasn1 (>=0.1.7)", "gssapi (>=1.4.1)", "pywin32 (>=2.1.8)"]
> +invoke = ["invoke (>=2.0)"]
>
>  [[package]]
>  name = "pathspec"
> -version = "0.10.1"
> +version = "0.11.1"
>  description = "Utility library for gitignore style pattern matching of
> file paths."
>  category = "dev"
>  optional = false
> @@ -156,15 +219,15 @@ ptyprocess = ">=0.5"
>
>  [[package]]
>  name = "platformdirs"
> -version = "2.5.2"
> -description = "A small Python module for determining appropriate
> platform-specific dirs, e.g. a \"user data dir\"."
> +version = "3.5.1"
> +description = "A small Python package for determining appropriate
> platform-specific dirs, e.g. a \"user data dir\"."
>  category = "dev"
>  optional = false
>  python-versions = ">=3.7"
>
>  [package.extras]
> -docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)",
> "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"]
> -test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)",
> "pytest (>=6)"]
> +docs = ["furo (>=2023.3.27)", "proselint (>=0.13)",
> "sphinx-autodoc-typehints (>=1.23,!=1.23.4)", "sphinx (>=6.2.1)"]
> +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest-cov (>=4)",
> "pytest-mock (>=3.10)", "pytest (>=7.3.1)"]
>
>  [[package]]
>  name = "ptyprocess"
> @@ -176,25 +239,33 @@ python-versions = "*"
>
>  [[package]]
>  name = "pycodestyle"
> -version = "2.9.1"
> +version = "2.10.0"
>  description = "Python style guide checker"
>  category = "dev"
>  optional = false
>  python-versions = ">=3.6"
>
> +[[package]]
> +name = "pycparser"
> +version = "2.21"
> +description = "C parser in Python"
> +category = "main"
> +optional = false
> +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
> +
>  [[package]]
>  name = "pydocstyle"
> -version = "6.1.1"
> +version = "6.3.0"
>  description = "Python docstring style checker"
>  category = "dev"
>  optional = false
>  python-versions = ">=3.6"
>
>  [package.dependencies]
> -snowballstemmer = "*"
> +snowballstemmer = ">=2.2.0"
>
>  [package.extras]
> -toml = ["toml"]
> +toml = ["tomli (>=1.2.3)"]
>
>  [[package]]
>  name = "pyflakes"
> @@ -228,9 +299,24 @@ tests = ["pytest (>=7.1.2)", "pytest-mypy",
> "eradicate (>=2.0.0)", "radon (>=5.1
>  toml = ["toml (>=0.10.2)"]
>  vulture = ["vulture"]
>
> +[[package]]
> +name = "pynacl"
> +version = "1.5.0"
> +description = "Python binding to the Networking and Cryptography (NaCl)
> library"
> +category = "main"
> +optional = false
> +python-versions = ">=3.6"
> +
> +[package.dependencies]
> +cffi = ">=1.4.1"
> +
> +[package.extras]
> +docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"]
> +tests = ["pytest (>=3.2.1,!=3.3.0)", "hypothesis (>=3.27.0)"]
> +
>  [[package]]
>  name = "pyrsistent"
> -version = "0.19.1"
> +version = "0.19.3"
>  description = "Persistent/Functional/Immutable data structures"
>  category = "main"
>  optional = false
> @@ -270,7 +356,7 @@ python-versions = ">=3.7"
>
>  [[package]]
>  name = "types-pyyaml"
> -version = "6.0.12.1"
> +version = "6.0.12.10"
>  description = "Typing stubs for PyYAML"
>  category = "main"
>  optional = false
> @@ -278,7 +364,7 @@ python-versions = "*"
>
>  [[package]]
>  name = "typing-extensions"
> -version = "4.4.0"
> +version = "4.6.2"
>  description = "Backported and Experimental Type Hints for Python 3.7+"
>  category = "dev"
>  optional = false
> @@ -299,13 +385,16 @@ jsonschema = ">=4,<5"
>  [metadata]
>  lock-version = "1.1"
>  python-versions = "^3.10"
> -content-hash =
> "a0f040b07fc6ce4deb0be078b9a88c2a465cb6bccb9e260a67e92c2403e2319f"
> +content-hash =
> "c119901b1c13b14adf9b53624430aff8720d9a3a180b028579b82c65d49474df"
>
>  [metadata.files]
>  attrs = []
> +bcrypt = []
>  black = []
> +cffi = []
>  click = []
>  colorama = []
> +cryptography = []
>  isort = []
>  jsonpatch = []
>  jsonpointer = []
> @@ -313,20 +402,17 @@ jsonschema = []
>  mccabe = []
>  mypy = []
>  mypy-extensions = []
> +paramiko = []
>  pathspec = []
> -pexpect = [
> -    {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash =
> "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"},
> -    {file = "pexpect-4.8.0.tar.gz", hash =
> "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"},
> -]
> -platformdirs = [
> -    {file = "platformdirs-2.5.2-py3-none-any.whl", hash =
> "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"},
> -    {file = "platformdirs-2.5.2.tar.gz", hash =
> "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"},
> -]
> +pexpect = []
> +platformdirs = []
>  ptyprocess = []
>  pycodestyle = []
> +pycparser = []
>  pydocstyle = []
>  pyflakes = []
>  pylama = []
> +pynacl = []
>  pyrsistent = []
>  pyyaml = []
>  snowballstemmer = []
> diff --git a/dts/pyproject.toml b/dts/pyproject.toml
> index a136c91e..928837cb 100644
> --- a/dts/pyproject.toml
> +++ b/dts/pyproject.toml
> @@ -13,6 +13,7 @@ pexpect = "^4.8.0"
>  warlock = "^2.0.1"
>  PyYAML = "^6.0"
>  types-PyYAML = "^6.0.8"
> +paramiko = "^3.1.0"
>
>  [tool.poetry.dev-dependencies]
>  mypy = "^0.961"
> --
> 2.41.0
>
>
  
Adam Hassick Aug. 18, 2023, 7:44 p.m. UTC | #2
Recheck-request: iol-unit-arm64-testing

This email is a test for our (in development) email based retesting
framework. Please ignore.

On Mon, Jul 10, 2023 at 12:23 PM <jspewock@iol.unh.edu> wrote:

> From: Jeremy Spewock <jspewock@iol.unh.edu>
>
> added paramiko to the dependency files
>
> Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu>
> ---
>  dts/poetry.lock    | 160 ++++++++++++++++++++++++++++++++++-----------
>  dts/pyproject.toml |   1 +
>  2 files changed, 124 insertions(+), 37 deletions(-)
>
> diff --git a/dts/poetry.lock b/dts/poetry.lock
> index 0b2a007d..dfd9a240 100644
> --- a/dts/poetry.lock
> +++ b/dts/poetry.lock
> @@ -1,20 +1,33 @@
>  [[package]]
>  name = "attrs"
> -version = "22.1.0"
> +version = "23.1.0"
>  description = "Classes Without Boilerplate"
>  category = "main"
>  optional = false
> -python-versions = ">=3.5"
> +python-versions = ">=3.7"
>
>  [package.extras]
> -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest
> (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins",
> "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit",
> "cloudpickle"]
> -docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
> -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest
> (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins",
> "zope.interface", "cloudpickle"]
> -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler",
> "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins",
> "cloudpickle"]
> +cov = ["attrs", "coverage[toml] (>=5.3)"]
> +dev = ["attrs", "pre-commit"]
> +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page",
> "sphinxcontrib-towncrier", "towncrier", "zope-interface"]
> +tests = ["attrs", "zope-interface"]
> +tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)",
> "pympler", "pytest-mypy-plugins", "pytest-xdist", "pytest (>=4.3.0)"]
> +
> +[[package]]
> +name = "bcrypt"
> +version = "4.0.1"
> +description = "Modern password hashing for your software and your servers"
> +category = "main"
> +optional = false
> +python-versions = ">=3.6"
> +
> +[package.extras]
> +tests = ["pytest (>=3.2.1,!=3.3.0)"]
> +typecheck = ["mypy"]
>
>  [[package]]
>  name = "black"
> -version = "22.10.0"
> +version = "22.12.0"
>  description = "The uncompromising code formatter."
>  category = "dev"
>  optional = false
> @@ -33,6 +46,17 @@ d = ["aiohttp (>=3.7.4)"]
>  jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
>  uvloop = ["uvloop (>=0.15.2)"]
>
> +[[package]]
> +name = "cffi"
> +version = "1.15.1"
> +description = "Foreign Function Interface for Python calling C code."
> +category = "main"
> +optional = false
> +python-versions = "*"
> +
> +[package.dependencies]
> +pycparser = "*"
> +
>  [[package]]
>  name = "click"
>  version = "8.1.3"
> @@ -52,18 +76,39 @@ category = "dev"
>  optional = false
>  python-versions =
> "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
>
> +[[package]]
> +name = "cryptography"
> +version = "41.0.1"
> +description = "cryptography is a package which provides cryptographic
> recipes and primitives to Python developers."
> +category = "main"
> +optional = false
> +python-versions = ">=3.7"
> +
> +[package.dependencies]
> +cffi = ">=1.12"
> +
> +[package.extras]
> +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"]
> +docstest = ["pyenchant (>=1.6.11)", "twine (>=1.12.0)",
> "sphinxcontrib-spelling (>=4.0.1)"]
> +nox = ["nox"]
> +pep8test = ["black", "ruff", "mypy", "check-sdist"]
> +sdist = ["build"]
> +ssh = ["bcrypt (>=3.1.5)"]
> +test = ["pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov",
> "pytest-xdist", "pretend"]
> +test-randomorder = ["pytest-randomly"]
> +
>  [[package]]
>  name = "isort"
> -version = "5.10.1"
> +version = "5.12.0"
>  description = "A Python utility / library to sort Python imports."
>  category = "dev"
>  optional = false
> -python-versions = ">=3.6.1,<4.0"
> +python-versions = ">=3.8.0"
>
>  [package.extras]
> -pipfile_deprecated_finder = ["pipreqs", "requirementslib"]
> -requirements_deprecated_finder = ["pipreqs", "pip-api"]
> -colors = ["colorama (>=0.4.3,<0.5.0)"]
> +colors = ["colorama (>=0.4.3)"]
> +requirements-deprecated-finder = ["pip-api", "pipreqs"]
> +pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs",
> "requirementslib"]
>  plugins = ["setuptools"]
>
>  [[package]]
> @@ -87,7 +132,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*,
> !=3.3.*"
>
>  [[package]]
>  name = "jsonschema"
> -version = "4.17.0"
> +version = "4.17.3"
>  description = "An implementation of JSON Schema validation for Python"
>  category = "main"
>  optional = false
> @@ -129,15 +174,33 @@ reports = ["lxml"]
>
>  [[package]]
>  name = "mypy-extensions"
> -version = "0.4.3"
> -description = "Experimental type system extensions for programs checked
> with the mypy typechecker."
> +version = "1.0.0"
> +description = "Type system extensions for programs checked with the mypy
> type checker."
>  category = "dev"
>  optional = false
> -python-versions = "*"
> +python-versions = ">=3.5"
> +
> +[[package]]
> +name = "paramiko"
> +version = "3.2.0"
> +description = "SSH2 protocol library"
> +category = "main"
> +optional = false
> +python-versions = ">=3.6"
> +
> +[package.dependencies]
> +bcrypt = ">=3.2"
> +cryptography = ">=3.3"
> +pynacl = ">=1.5"
> +
> +[package.extras]
> +all = ["pyasn1 (>=0.1.7)", "invoke (>=2.0)", "gssapi (>=1.4.1)", "pywin32
> (>=2.1.8)"]
> +gssapi = ["pyasn1 (>=0.1.7)", "gssapi (>=1.4.1)", "pywin32 (>=2.1.8)"]
> +invoke = ["invoke (>=2.0)"]
>
>  [[package]]
>  name = "pathspec"
> -version = "0.10.1"
> +version = "0.11.1"
>  description = "Utility library for gitignore style pattern matching of
> file paths."
>  category = "dev"
>  optional = false
> @@ -156,15 +219,15 @@ ptyprocess = ">=0.5"
>
>  [[package]]
>  name = "platformdirs"
> -version = "2.5.2"
> -description = "A small Python module for determining appropriate
> platform-specific dirs, e.g. a \"user data dir\"."
> +version = "3.5.1"
> +description = "A small Python package for determining appropriate
> platform-specific dirs, e.g. a \"user data dir\"."
>  category = "dev"
>  optional = false
>  python-versions = ">=3.7"
>
>  [package.extras]
> -docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)",
> "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"]
> -test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)",
> "pytest (>=6)"]
> +docs = ["furo (>=2023.3.27)", "proselint (>=0.13)",
> "sphinx-autodoc-typehints (>=1.23,!=1.23.4)", "sphinx (>=6.2.1)"]
> +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest-cov (>=4)",
> "pytest-mock (>=3.10)", "pytest (>=7.3.1)"]
>
>  [[package]]
>  name = "ptyprocess"
> @@ -176,25 +239,33 @@ python-versions = "*"
>
>  [[package]]
>  name = "pycodestyle"
> -version = "2.9.1"
> +version = "2.10.0"
>  description = "Python style guide checker"
>  category = "dev"
>  optional = false
>  python-versions = ">=3.6"
>
> +[[package]]
> +name = "pycparser"
> +version = "2.21"
> +description = "C parser in Python"
> +category = "main"
> +optional = false
> +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
> +
>  [[package]]
>  name = "pydocstyle"
> -version = "6.1.1"
> +version = "6.3.0"
>  description = "Python docstring style checker"
>  category = "dev"
>  optional = false
>  python-versions = ">=3.6"
>
>  [package.dependencies]
> -snowballstemmer = "*"
> +snowballstemmer = ">=2.2.0"
>
>  [package.extras]
> -toml = ["toml"]
> +toml = ["tomli (>=1.2.3)"]
>
>  [[package]]
>  name = "pyflakes"
> @@ -228,9 +299,24 @@ tests = ["pytest (>=7.1.2)", "pytest-mypy",
> "eradicate (>=2.0.0)", "radon (>=5.1
>  toml = ["toml (>=0.10.2)"]
>  vulture = ["vulture"]
>
> +[[package]]
> +name = "pynacl"
> +version = "1.5.0"
> +description = "Python binding to the Networking and Cryptography (NaCl)
> library"
> +category = "main"
> +optional = false
> +python-versions = ">=3.6"
> +
> +[package.dependencies]
> +cffi = ">=1.4.1"
> +
> +[package.extras]
> +docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"]
> +tests = ["pytest (>=3.2.1,!=3.3.0)", "hypothesis (>=3.27.0)"]
> +
>  [[package]]
>  name = "pyrsistent"
> -version = "0.19.1"
> +version = "0.19.3"
>  description = "Persistent/Functional/Immutable data structures"
>  category = "main"
>  optional = false
> @@ -270,7 +356,7 @@ python-versions = ">=3.7"
>
>  [[package]]
>  name = "types-pyyaml"
> -version = "6.0.12.1"
> +version = "6.0.12.10"
>  description = "Typing stubs for PyYAML"
>  category = "main"
>  optional = false
> @@ -278,7 +364,7 @@ python-versions = "*"
>
>  [[package]]
>  name = "typing-extensions"
> -version = "4.4.0"
> +version = "4.6.2"
>  description = "Backported and Experimental Type Hints for Python 3.7+"
>  category = "dev"
>  optional = false
> @@ -299,13 +385,16 @@ jsonschema = ">=4,<5"
>  [metadata]
>  lock-version = "1.1"
>  python-versions = "^3.10"
> -content-hash =
> "a0f040b07fc6ce4deb0be078b9a88c2a465cb6bccb9e260a67e92c2403e2319f"
> +content-hash =
> "c119901b1c13b14adf9b53624430aff8720d9a3a180b028579b82c65d49474df"
>
>  [metadata.files]
>  attrs = []
> +bcrypt = []
>  black = []
> +cffi = []
>  click = []
>  colorama = []
> +cryptography = []
>  isort = []
>  jsonpatch = []
>  jsonpointer = []
> @@ -313,20 +402,17 @@ jsonschema = []
>  mccabe = []
>  mypy = []
>  mypy-extensions = []
> +paramiko = []
>  pathspec = []
> -pexpect = [
> -    {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash =
> "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"},
> -    {file = "pexpect-4.8.0.tar.gz", hash =
> "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"},
> -]
> -platformdirs = [
> -    {file = "platformdirs-2.5.2-py3-none-any.whl", hash =
> "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"},
> -    {file = "platformdirs-2.5.2.tar.gz", hash =
> "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"},
> -]
> +pexpect = []
> +platformdirs = []
>  ptyprocess = []
>  pycodestyle = []
> +pycparser = []
>  pydocstyle = []
>  pyflakes = []
>  pylama = []
> +pynacl = []
>  pyrsistent = []
>  pyyaml = []
>  snowballstemmer = []
> diff --git a/dts/pyproject.toml b/dts/pyproject.toml
> index a136c91e..928837cb 100644
> --- a/dts/pyproject.toml
> +++ b/dts/pyproject.toml
> @@ -13,6 +13,7 @@ pexpect = "^4.8.0"
>  warlock = "^2.0.1"
>  PyYAML = "^6.0"
>  types-PyYAML = "^6.0.8"
> +paramiko = "^3.1.0"
>
>  [tool.poetry.dev-dependencies]
>  mypy = "^0.961"
> --
> 2.41.0
>
>
  

Patch

diff --git a/dts/poetry.lock b/dts/poetry.lock
index 0b2a007d..dfd9a240 100644
--- a/dts/poetry.lock
+++ b/dts/poetry.lock
@@ -1,20 +1,33 @@ 
 [[package]]
 name = "attrs"
-version = "22.1.0"
+version = "23.1.0"
 description = "Classes Without Boilerplate"
 category = "main"
 optional = false
-python-versions = ">=3.5"
+python-versions = ">=3.7"
 
 [package.extras]
-dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"]
-docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
-tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"]
-tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"]
+cov = ["attrs", "coverage[toml] (>=5.3)"]
+dev = ["attrs", "pre-commit"]
+docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"]
+tests = ["attrs", "zope-interface"]
+tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest-mypy-plugins", "pytest-xdist", "pytest (>=4.3.0)"]
+
+[[package]]
+name = "bcrypt"
+version = "4.0.1"
+description = "Modern password hashing for your software and your servers"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+tests = ["pytest (>=3.2.1,!=3.3.0)"]
+typecheck = ["mypy"]
 
 [[package]]
 name = "black"
-version = "22.10.0"
+version = "22.12.0"
 description = "The uncompromising code formatter."
 category = "dev"
 optional = false
@@ -33,6 +46,17 @@  d = ["aiohttp (>=3.7.4)"]
 jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
 uvloop = ["uvloop (>=0.15.2)"]
 
+[[package]]
+name = "cffi"
+version = "1.15.1"
+description = "Foreign Function Interface for Python calling C code."
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+pycparser = "*"
+
 [[package]]
 name = "click"
 version = "8.1.3"
@@ -52,18 +76,39 @@  category = "dev"
 optional = false
 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
 
+[[package]]
+name = "cryptography"
+version = "41.0.1"
+description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+cffi = ">=1.12"
+
+[package.extras]
+docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"]
+docstest = ["pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
+nox = ["nox"]
+pep8test = ["black", "ruff", "mypy", "check-sdist"]
+sdist = ["build"]
+ssh = ["bcrypt (>=3.1.5)"]
+test = ["pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist", "pretend"]
+test-randomorder = ["pytest-randomly"]
+
 [[package]]
 name = "isort"
-version = "5.10.1"
+version = "5.12.0"
 description = "A Python utility / library to sort Python imports."
 category = "dev"
 optional = false
-python-versions = ">=3.6.1,<4.0"
+python-versions = ">=3.8.0"
 
 [package.extras]
-pipfile_deprecated_finder = ["pipreqs", "requirementslib"]
-requirements_deprecated_finder = ["pipreqs", "pip-api"]
-colors = ["colorama (>=0.4.3,<0.5.0)"]
+colors = ["colorama (>=0.4.3)"]
+requirements-deprecated-finder = ["pip-api", "pipreqs"]
+pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"]
 plugins = ["setuptools"]
 
 [[package]]
@@ -87,7 +132,7 @@  python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
 [[package]]
 name = "jsonschema"
-version = "4.17.0"
+version = "4.17.3"
 description = "An implementation of JSON Schema validation for Python"
 category = "main"
 optional = false
@@ -129,15 +174,33 @@  reports = ["lxml"]
 
 [[package]]
 name = "mypy-extensions"
-version = "0.4.3"
-description = "Experimental type system extensions for programs checked with the mypy typechecker."
+version = "1.0.0"
+description = "Type system extensions for programs checked with the mypy type checker."
 category = "dev"
 optional = false
-python-versions = "*"
+python-versions = ">=3.5"
+
+[[package]]
+name = "paramiko"
+version = "3.2.0"
+description = "SSH2 protocol library"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+bcrypt = ">=3.2"
+cryptography = ">=3.3"
+pynacl = ">=1.5"
+
+[package.extras]
+all = ["pyasn1 (>=0.1.7)", "invoke (>=2.0)", "gssapi (>=1.4.1)", "pywin32 (>=2.1.8)"]
+gssapi = ["pyasn1 (>=0.1.7)", "gssapi (>=1.4.1)", "pywin32 (>=2.1.8)"]
+invoke = ["invoke (>=2.0)"]
 
 [[package]]
 name = "pathspec"
-version = "0.10.1"
+version = "0.11.1"
 description = "Utility library for gitignore style pattern matching of file paths."
 category = "dev"
 optional = false
@@ -156,15 +219,15 @@  ptyprocess = ">=0.5"
 
 [[package]]
 name = "platformdirs"
-version = "2.5.2"
-description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
+version = "3.5.1"
+description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
 category = "dev"
 optional = false
 python-versions = ">=3.7"
 
 [package.extras]
-docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"]
-test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytest (>=6)"]
+docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)", "sphinx (>=6.2.1)"]
+test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "pytest (>=7.3.1)"]
 
 [[package]]
 name = "ptyprocess"
@@ -176,25 +239,33 @@  python-versions = "*"
 
 [[package]]
 name = "pycodestyle"
-version = "2.9.1"
+version = "2.10.0"
 description = "Python style guide checker"
 category = "dev"
 optional = false
 python-versions = ">=3.6"
 
+[[package]]
+name = "pycparser"
+version = "2.21"
+description = "C parser in Python"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
 [[package]]
 name = "pydocstyle"
-version = "6.1.1"
+version = "6.3.0"
 description = "Python docstring style checker"
 category = "dev"
 optional = false
 python-versions = ">=3.6"
 
 [package.dependencies]
-snowballstemmer = "*"
+snowballstemmer = ">=2.2.0"
 
 [package.extras]
-toml = ["toml"]
+toml = ["tomli (>=1.2.3)"]
 
 [[package]]
 name = "pyflakes"
@@ -228,9 +299,24 @@  tests = ["pytest (>=7.1.2)", "pytest-mypy", "eradicate (>=2.0.0)", "radon (>=5.1
 toml = ["toml (>=0.10.2)"]
 vulture = ["vulture"]
 
+[[package]]
+name = "pynacl"
+version = "1.5.0"
+description = "Python binding to the Networking and Cryptography (NaCl) library"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+cffi = ">=1.4.1"
+
+[package.extras]
+docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"]
+tests = ["pytest (>=3.2.1,!=3.3.0)", "hypothesis (>=3.27.0)"]
+
 [[package]]
 name = "pyrsistent"
-version = "0.19.1"
+version = "0.19.3"
 description = "Persistent/Functional/Immutable data structures"
 category = "main"
 optional = false
@@ -270,7 +356,7 @@  python-versions = ">=3.7"
 
 [[package]]
 name = "types-pyyaml"
-version = "6.0.12.1"
+version = "6.0.12.10"
 description = "Typing stubs for PyYAML"
 category = "main"
 optional = false
@@ -278,7 +364,7 @@  python-versions = "*"
 
 [[package]]
 name = "typing-extensions"
-version = "4.4.0"
+version = "4.6.2"
 description = "Backported and Experimental Type Hints for Python 3.7+"
 category = "dev"
 optional = false
@@ -299,13 +385,16 @@  jsonschema = ">=4,<5"
 [metadata]
 lock-version = "1.1"
 python-versions = "^3.10"
-content-hash = "a0f040b07fc6ce4deb0be078b9a88c2a465cb6bccb9e260a67e92c2403e2319f"
+content-hash = "c119901b1c13b14adf9b53624430aff8720d9a3a180b028579b82c65d49474df"
 
 [metadata.files]
 attrs = []
+bcrypt = []
 black = []
+cffi = []
 click = []
 colorama = []
+cryptography = []
 isort = []
 jsonpatch = []
 jsonpointer = []
@@ -313,20 +402,17 @@  jsonschema = []
 mccabe = []
 mypy = []
 mypy-extensions = []
+paramiko = []
 pathspec = []
-pexpect = [
-    {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"},
-    {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"},
-]
-platformdirs = [
-    {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"},
-    {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"},
-]
+pexpect = []
+platformdirs = []
 ptyprocess = []
 pycodestyle = []
+pycparser = []
 pydocstyle = []
 pyflakes = []
 pylama = []
+pynacl = []
 pyrsistent = []
 pyyaml = []
 snowballstemmer = []
diff --git a/dts/pyproject.toml b/dts/pyproject.toml
index a136c91e..928837cb 100644
--- a/dts/pyproject.toml
+++ b/dts/pyproject.toml
@@ -13,6 +13,7 @@  pexpect = "^4.8.0"
 warlock = "^2.0.1"
 PyYAML = "^6.0"
 types-PyYAML = "^6.0.8"
+paramiko = "^3.1.0"
 
 [tool.poetry.dev-dependencies]
 mypy = "^0.961"