hussh


Namehussh JSON
Version 0.1.7 PyPI version JSON
download
home_pageNone
SummarySSH for Humans
upload_time2024-09-26 19:08:37
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords ssh ssh2 rust pyo3
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Hussh: SSH for humans.
[![image](https://img.shields.io/pypi/v/hussh.svg)](https://pypi.python.org/pypi/hussh)
[![image](https://img.shields.io/pypi/pyversions/hussh.svg)](https://pypi.python.org/pypi/hussh)
![PyPI - Wheel](https://img.shields.io/pypi/wheel/hussh)
[![Actions status](https://github.com/jacobcallahan/hussh/actions/workflows/build_and_test.yml/badge.svg)](https://github.com/jacobcallahan/hussh/actions)

Hussh (pronounced "hush") is a client-side ssh library that offers low level performance through a high level interface.

Hussh uses [pyo3](https://docs.rs/pyo3/latest/pyo3/) to create Python bindings around the [ssh2](https://docs.rs/ssh2/latest/ssh2/) library for Rust.

# Installation
```
pip install hussh
```

# QuickStart
Hussh currently just offers a `Connection` class as your primary interface.
```python
from hussh import Connection

conn = Connection(host="my.test.server", username="user", password="pass")
result = conn.execute("ls")
print(result.stdout)
```

That's it! One import and class instantion is all you need to:
- Execute commands
- Perform SCP actions
- Perform SFTP actions
- Get an interactive shell

# Why Hussh?
- 🔥 Blazingly fast!
- 🪶 Incredibly lightweight!
- 🧠 Super easy to use!

## Benchmarks
Hussh demonstrates the performance you'd expect from a low level ssh library.
Hussh is also much lighter weight in both total memory and memory allocations.

Local Server
![Local Server Benchmarks](benchmarks/local_server_bench.png)

Remote Server
![Remote Server Benchmarks](benchmarks/remote_server_bench.png)

### Try it for yourself!
Hussh's benchmark script are also open sourced in the `benchmarks` directory in this repository.
Clone the repo, follow the setup instructions, then let us know how it did!

# Authentication
You've already seen password-based authentication, but here it is again.
```python
conn = Connection(host="my.test.server", username="user", password="pass")

#  or leave out username and connect as root
conn = Connection(host="my.test.server", password="pass")
```

If you prefer key-based authentication, Hussh can do that as well.
```python
conn = Connection(host="my.test.server", private_key="~/.ssh/id_rsa")

# If your key is password protected, just use the password argument
conn = Connection(host="my.test.server", private_key="~/.ssh/id_rsa", password="pass")
```

Hussh can also do agent-based authentication, if you've already established it.
```python
conn = Connection("my.test.server")
```

# Executing commands
The most basic foundation of ssh libraries is the ability to execute commands against the remote host.
For Hussh, just use the `Connection` object's `execute` method.
```python
result = conn.execute("whoami")
print(result.stdout, result.stderr, result.status)
```
Each execute returns an `SSHResult` object with command's stdout, stderr, and status.

# SFTP
If you need to transfer files to/from the remote host, SFTP may be your best bet.

## Writing Files and Data
```python
# write a local file to the remote destination
conn.sftp_write(local_path="/path/to/my/file", remote_path="/dest/path/file")

# Write UTF-8 data to a remote file
conn.sftp_write_data(data="Hello there!", remote_path="/dest/path/file")
```

## Reading Files
```python
# You can copy a remote file to a local destination
conn.sftp_read(remote_path="/dest/path/file", local_path="/path/to/my/file")
# Or copy the remote file contents to a string
contents = conn.sftp_read(remote_path="/dest/path/file")
```

## Copy files from one connection to another
Hussh offers a shortcut that allows you to copy a file between two established connections.
```python
source_conn = Connection("my.first.server")
dest_conn = Connection("my.second.server", password="secret")
# Copy from source to destination
source_conn.remote_copy(source_path="/root/myfile.txt", dest_conn=dest_conn)
```
By default, if you don't pass in an alternate `dest_path`, Hussh will copy it to the same path as it came from on source.


# SCP
For remote servers that support SCP, Hussh can do that to.

## Writing Files and Data
```python
# write a local file to the remote destination
conn.scp_write(local_path="/path/to/my/file", remote_path="/dest/path/file")

# Write UTF-8 data to a remote file
conn.scp_write_data(data="Hello there!", remote_path="/dest/path/file")
```

## Reading Files
```python
# You can copy a remote file to a local destination
conn.scp_read(remote_path="/dest/path/file", local_path="/path/to/my/file")
# Or copy the remote file contents to a string
contents = conn.scp_read(remote_path="/dest/path/file")
```

# Tailing Files
Hussh offers a built-in method for tailing files on a `Connection` with the `tail` method.
```python
with conn.tail("/path/to/file.txt") as tf:
   # perform some actions or wait
   print(tf.read())  # at any time, you can read any unread contents
   # when you're done tailing, exit the context manager
print(tf.contents)
```

# Interactive Shell
If you need to keep a shell open to perform more complex interactions, you can get an `InteractiveShell` instance from the `Connection` class instance.
To use the interactive shell, it is recommended to use the `shell()` context manager from the `Connection` class.
You can send commands to the shell using the `send` method, then get the results from `result` when you exit the context manager.

```python
with conn.shell() as shell:
   shell.send("ls")
   shell.send("pwd")
   shell.send("whoami")

print(shell.result.stdout)
```
**Note:** The `read` method sends an EOF to the shell, so you won't be able to send more commands after calling `read`. If you want to send more commands, you would need to create a new `InteractiveShell` instance.

# Disclaimer
This is a VERY early project that should not be used in production code!
There isn't even proper exception handling, so try/except won't work.
With that said, try it out and let me know your thoughts!

# Future Features
- Proper exception handling
- Concurrent actions class
- Async Connection class
- Low level bindings
- Misc codebase improvements
- TBD...


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "hussh",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "ssh, ssh2, rust, pyo3",
    "author": null,
    "author_email": "Jacob J Callahan <jacob.callahan05@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/c8/ec/478952047be38d47691bd5d0f9810246d9cb4899a32c209674c0502fc279/hussh-0.1.7.tar.gz",
    "platform": null,
    "description": "# Hussh: SSH for humans.\n[![image](https://img.shields.io/pypi/v/hussh.svg)](https://pypi.python.org/pypi/hussh)\n[![image](https://img.shields.io/pypi/pyversions/hussh.svg)](https://pypi.python.org/pypi/hussh)\n![PyPI - Wheel](https://img.shields.io/pypi/wheel/hussh)\n[![Actions status](https://github.com/jacobcallahan/hussh/actions/workflows/build_and_test.yml/badge.svg)](https://github.com/jacobcallahan/hussh/actions)\n\nHussh (pronounced \"hush\") is a client-side ssh library that offers low level performance through a high level interface.\n\nHussh uses [pyo3](https://docs.rs/pyo3/latest/pyo3/) to create Python bindings around the [ssh2](https://docs.rs/ssh2/latest/ssh2/) library for Rust.\n\n# Installation\n```\npip install hussh\n```\n\n# QuickStart\nHussh currently just offers a `Connection` class as your primary interface.\n```python\nfrom hussh import Connection\n\nconn = Connection(host=\"my.test.server\", username=\"user\", password=\"pass\")\nresult = conn.execute(\"ls\")\nprint(result.stdout)\n```\n\nThat's it! One import and class instantion is all you need to:\n- Execute commands\n- Perform SCP actions\n- Perform SFTP actions\n- Get an interactive shell\n\n# Why Hussh?\n- \ud83d\udd25 Blazingly fast!\n- \ud83e\udeb6 Incredibly lightweight!\n- \ud83e\udde0 Super easy to use!\n\n## Benchmarks\nHussh demonstrates the performance you'd expect from a low level ssh library.\nHussh is also much lighter weight in both total memory and memory allocations.\n\nLocal Server\n![Local Server Benchmarks](benchmarks/local_server_bench.png)\n\nRemote Server\n![Remote Server Benchmarks](benchmarks/remote_server_bench.png)\n\n### Try it for yourself!\nHussh's benchmark script are also open sourced in the `benchmarks` directory in this repository.\nClone the repo, follow the setup instructions, then let us know how it did!\n\n# Authentication\nYou've already seen password-based authentication, but here it is again.\n```python\nconn = Connection(host=\"my.test.server\", username=\"user\", password=\"pass\")\n\n#  or leave out username and connect as root\nconn = Connection(host=\"my.test.server\", password=\"pass\")\n```\n\nIf you prefer key-based authentication, Hussh can do that as well.\n```python\nconn = Connection(host=\"my.test.server\", private_key=\"~/.ssh/id_rsa\")\n\n# If your key is password protected, just use the password argument\nconn = Connection(host=\"my.test.server\", private_key=\"~/.ssh/id_rsa\", password=\"pass\")\n```\n\nHussh can also do agent-based authentication, if you've already established it.\n```python\nconn = Connection(\"my.test.server\")\n```\n\n# Executing commands\nThe most basic foundation of ssh libraries is the ability to execute commands against the remote host.\nFor Hussh, just use the `Connection` object's `execute` method.\n```python\nresult = conn.execute(\"whoami\")\nprint(result.stdout, result.stderr, result.status)\n```\nEach execute returns an `SSHResult` object with command's stdout, stderr, and status.\n\n# SFTP\nIf you need to transfer files to/from the remote host, SFTP may be your best bet.\n\n## Writing Files and Data\n```python\n# write a local file to the remote destination\nconn.sftp_write(local_path=\"/path/to/my/file\", remote_path=\"/dest/path/file\")\n\n# Write UTF-8 data to a remote file\nconn.sftp_write_data(data=\"Hello there!\", remote_path=\"/dest/path/file\")\n```\n\n## Reading Files\n```python\n# You can copy a remote file to a local destination\nconn.sftp_read(remote_path=\"/dest/path/file\", local_path=\"/path/to/my/file\")\n# Or copy the remote file contents to a string\ncontents = conn.sftp_read(remote_path=\"/dest/path/file\")\n```\n\n## Copy files from one connection to another\nHussh offers a shortcut that allows you to copy a file between two established connections.\n```python\nsource_conn = Connection(\"my.first.server\")\ndest_conn = Connection(\"my.second.server\", password=\"secret\")\n# Copy from source to destination\nsource_conn.remote_copy(source_path=\"/root/myfile.txt\", dest_conn=dest_conn)\n```\nBy default, if you don't pass in an alternate `dest_path`, Hussh will copy it to the same path as it came from on source.\n\n\n# SCP\nFor remote servers that support SCP, Hussh can do that to.\n\n## Writing Files and Data\n```python\n# write a local file to the remote destination\nconn.scp_write(local_path=\"/path/to/my/file\", remote_path=\"/dest/path/file\")\n\n# Write UTF-8 data to a remote file\nconn.scp_write_data(data=\"Hello there!\", remote_path=\"/dest/path/file\")\n```\n\n## Reading Files\n```python\n# You can copy a remote file to a local destination\nconn.scp_read(remote_path=\"/dest/path/file\", local_path=\"/path/to/my/file\")\n# Or copy the remote file contents to a string\ncontents = conn.scp_read(remote_path=\"/dest/path/file\")\n```\n\n# Tailing Files\nHussh offers a built-in method for tailing files on a `Connection` with the `tail` method.\n```python\nwith conn.tail(\"/path/to/file.txt\") as tf:\n   # perform some actions or wait\n   print(tf.read())  # at any time, you can read any unread contents\n   # when you're done tailing, exit the context manager\nprint(tf.contents)\n```\n\n# Interactive Shell\nIf you need to keep a shell open to perform more complex interactions, you can get an `InteractiveShell` instance from the `Connection` class instance.\nTo use the interactive shell, it is recommended to use the `shell()` context manager from the `Connection` class.\nYou can send commands to the shell using the `send` method, then get the results from `result` when you exit the context manager.\n\n```python\nwith conn.shell() as shell:\n   shell.send(\"ls\")\n   shell.send(\"pwd\")\n   shell.send(\"whoami\")\n\nprint(shell.result.stdout)\n```\n**Note:** The `read` method sends an EOF to the shell, so you won't be able to send more commands after calling `read`. If you want to send more commands, you would need to create a new `InteractiveShell` instance.\n\n# Disclaimer\nThis is a VERY early project that should not be used in production code!\nThere isn't even proper exception handling, so try/except won't work.\nWith that said, try it out and let me know your thoughts!\n\n# Future Features\n- Proper exception handling\n- Concurrent actions class\n- Async Connection class\n- Low level bindings\n- Misc codebase improvements\n- TBD...\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "SSH for Humans",
    "version": "0.1.7",
    "project_urls": null,
    "split_keywords": [
        "ssh",
        " ssh2",
        " rust",
        " pyo3"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "12dae169acb5ce35ac289d61d2e157de8bd9e8d672ab4d90e7f1092e706fbaad",
                "md5": "347274807a24cc57856483ee791e56c9",
                "sha256": "2810b46b0344e20eafbeb853185f9f7f0289643ad8068105d386771c77448e73"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp310-cp310-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "347274807a24cc57856483ee791e56c9",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 372674,
            "upload_time": "2024-09-26T19:08:32",
            "upload_time_iso_8601": "2024-09-26T19:08:32.782401Z",
            "url": "https://files.pythonhosted.org/packages/12/da/e169acb5ce35ac289d61d2e157de8bd9e8d672ab4d90e7f1092e706fbaad/hussh-0.1.7-cp310-cp310-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f07b715e52a316f83f58fa0443173099ac70e25f9778345ea1f91c6d9d5039d3",
                "md5": "40322f3a051cc7a79069abae4235cc91",
                "sha256": "205a80189d02f8209ec4c2dc9357fa5d91b5a92d4bc686e2dfe4c16ae2ba26e1"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "40322f3a051cc7a79069abae4235cc91",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 364631,
            "upload_time": "2024-09-26T19:08:28",
            "upload_time_iso_8601": "2024-09-26T19:08:28.408052Z",
            "url": "https://files.pythonhosted.org/packages/f0/7b/715e52a316f83f58fa0443173099ac70e25f9778345ea1f91c6d9d5039d3/hussh-0.1.7-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e2556cb181220af10a363e81df8afe5e6efb5b592fea14d8c55d751803e20ef2",
                "md5": "c2fd71e7d4b72c4371c4af0b485e16a9",
                "sha256": "c3494f53f7f50a3149fb9ed163b295c3c525b24d9e8c5b19ee61e6e5188efa6a"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "c2fd71e7d4b72c4371c4af0b485e16a9",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 2220390,
            "upload_time": "2024-09-26T19:07:46",
            "upload_time_iso_8601": "2024-09-26T19:07:46.031459Z",
            "url": "https://files.pythonhosted.org/packages/e2/55/6cb181220af10a363e81df8afe5e6efb5b592fea14d8c55d751803e20ef2/hussh-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fae6eb273e7a6ea1c04fc49b792d3841fcb3bee8920c527e91735042b99f5eec",
                "md5": "dec229c262ee8a652e0d8f37e774e79c",
                "sha256": "1fcbff466a723ebb4d876e9025c0108a8fb1f292f84fb9c7f9ccbe2865dd6b70"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "dec229c262ee8a652e0d8f37e774e79c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 1596826,
            "upload_time": "2024-09-26T19:07:57",
            "upload_time_iso_8601": "2024-09-26T19:07:57.531433Z",
            "url": "https://files.pythonhosted.org/packages/fa/e6/eb273e7a6ea1c04fc49b792d3841fcb3bee8920c527e91735042b99f5eec/hussh-0.1.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a8928a264d5b366e3ac9563390636d641d1ee3c09e093e2299d49095c301f8d1",
                "md5": "01fcccab56939670a6cd39d6e1e4c659",
                "sha256": "2d5e9147aa626da91adf477ad3bdb6caf82b2a3a3bf9c4efbbbae3ac6690c434"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "01fcccab56939670a6cd39d6e1e4c659",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 1860281,
            "upload_time": "2024-09-26T19:08:08",
            "upload_time_iso_8601": "2024-09-26T19:08:08.887065Z",
            "url": "https://files.pythonhosted.org/packages/a8/92/8a264d5b366e3ac9563390636d641d1ee3c09e093e2299d49095c301f8d1/hussh-0.1.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7b30d68079dd9a0e5d3ca02b35adeb32520ec23e399c23acc781373bc3daebf2",
                "md5": "584f45d4801af0e53e509c8a5fbb0bfa",
                "sha256": "335cb9b874684168cee5762d979ad0dbced30026ac5a88947518a8f4673c0a5c"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "584f45d4801af0e53e509c8a5fbb0bfa",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 1916518,
            "upload_time": "2024-09-26T19:08:19",
            "upload_time_iso_8601": "2024-09-26T19:08:19.187153Z",
            "url": "https://files.pythonhosted.org/packages/7b/30/d68079dd9a0e5d3ca02b35adeb32520ec23e399c23acc781373bc3daebf2/hussh-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "df57799f9fd217be2048e1df03bc720c85dc1c30df519b0c443213c097aab0fc",
                "md5": "50d0e800384e5cf6c23f969ae972db06",
                "sha256": "18bbb6ac6f86fc58ebf66780dae115c7906bc3a1b8886a9f99c945f31e659527"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp310-none-win32.whl",
            "has_sig": false,
            "md5_digest": "50d0e800384e5cf6c23f969ae972db06",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 270580,
            "upload_time": "2024-09-26T19:08:44",
            "upload_time_iso_8601": "2024-09-26T19:08:44.800790Z",
            "url": "https://files.pythonhosted.org/packages/df/57/799f9fd217be2048e1df03bc720c85dc1c30df519b0c443213c097aab0fc/hussh-0.1.7-cp310-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2cb31d7391c6342128dcb513bcd626f28cf740639009c28d6248dd5eaaba496b",
                "md5": "76e1b5ebfede99a93dbb8ad802d4b8e6",
                "sha256": "939af37162d7841770cd77f21f486d0e513be3b809c8fba4215b9f5e390d63db"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp310-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "76e1b5ebfede99a93dbb8ad802d4b8e6",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 293884,
            "upload_time": "2024-09-26T19:08:38",
            "upload_time_iso_8601": "2024-09-26T19:08:38.793598Z",
            "url": "https://files.pythonhosted.org/packages/2c/b3/1d7391c6342128dcb513bcd626f28cf740639009c28d6248dd5eaaba496b/hussh-0.1.7-cp310-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "68ffb9e1226180b62fab1b33e5a421132f71d7e657e03a10334e8e8693321cf6",
                "md5": "9ec97769f7180ceff328e9bad53205ac",
                "sha256": "a999a1c594de24554f01b6aae33d165fa5581524ff159b80e6e2d554087a37bf"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp311-cp311-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9ec97769f7180ceff328e9bad53205ac",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 372786,
            "upload_time": "2024-09-26T19:08:33",
            "upload_time_iso_8601": "2024-09-26T19:08:33.933103Z",
            "url": "https://files.pythonhosted.org/packages/68/ff/b9e1226180b62fab1b33e5a421132f71d7e657e03a10334e8e8693321cf6/hussh-0.1.7-cp311-cp311-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "10a6c78c07960c68299c872ec177d0c5b0b8f543d2bfe8c619b24192bb680698",
                "md5": "f8d91c8aebf5b0a66d4321209e4d866a",
                "sha256": "e518d7690507878a6115d236a5a3bd011605e3d7ba12328f52102b62396a5ad0"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "f8d91c8aebf5b0a66d4321209e4d866a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 364465,
            "upload_time": "2024-09-26T19:08:29",
            "upload_time_iso_8601": "2024-09-26T19:08:29.455851Z",
            "url": "https://files.pythonhosted.org/packages/10/a6/c78c07960c68299c872ec177d0c5b0b8f543d2bfe8c619b24192bb680698/hussh-0.1.7-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "af1b052c264c600edc83ec8a66f6edd9249fefce0cd9240df3f8edc26c710829",
                "md5": "c2c7cd6f10b3f20d316b3fedd7422509",
                "sha256": "d4101b4f58264083e32130fce42e882cca43351f288cc97e4e8bbe54493aecce"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "c2c7cd6f10b3f20d316b3fedd7422509",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 2220341,
            "upload_time": "2024-09-26T19:07:47",
            "upload_time_iso_8601": "2024-09-26T19:07:47.425834Z",
            "url": "https://files.pythonhosted.org/packages/af/1b/052c264c600edc83ec8a66f6edd9249fefce0cd9240df3f8edc26c710829/hussh-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "08971421405144274ade5e20cd66e6f350c9c05e076d4d5803020ef697b4740d",
                "md5": "f7f1f881892500f8593f5663874ed364",
                "sha256": "74ccfdaf815c451e3f80fdb008128a90cf467b6f6bd4ce407bad43ce1fd1b8b6"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "f7f1f881892500f8593f5663874ed364",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1596651,
            "upload_time": "2024-09-26T19:07:58",
            "upload_time_iso_8601": "2024-09-26T19:07:58.725133Z",
            "url": "https://files.pythonhosted.org/packages/08/97/1421405144274ade5e20cd66e6f350c9c05e076d4d5803020ef697b4740d/hussh-0.1.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dc40fad89ae33a821dc17c7d3a71a177bcf82a0ed31290c0431ae66b1ba09a4d",
                "md5": "22c2ceca34f016510bb270c0ab4173d1",
                "sha256": "87ff14d8b269306ede6b672482518457954605e610082b0c70a0d86d2d0f0121"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "22c2ceca34f016510bb270c0ab4173d1",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1860050,
            "upload_time": "2024-09-26T19:08:10",
            "upload_time_iso_8601": "2024-09-26T19:08:10.195470Z",
            "url": "https://files.pythonhosted.org/packages/dc/40/fad89ae33a821dc17c7d3a71a177bcf82a0ed31290c0431ae66b1ba09a4d/hussh-0.1.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1808247630725db76b6dd487198860b922655e626d034473cf6aa4aa93d3ecac",
                "md5": "3815e4d401f652d99f343dcf1c177456",
                "sha256": "cc20829563f46a20fe2381852f74ae912bcf72cdc497bd2025d7f15ffc6fc29e"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3815e4d401f652d99f343dcf1c177456",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1916463,
            "upload_time": "2024-09-26T19:08:20",
            "upload_time_iso_8601": "2024-09-26T19:08:20.596974Z",
            "url": "https://files.pythonhosted.org/packages/18/08/247630725db76b6dd487198860b922655e626d034473cf6aa4aa93d3ecac/hussh-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f1a30525b0117e150652783deaab8f540e302e764ef09bb381ffdfc23a8d4650",
                "md5": "29b80566c3bb7ebe11329d9ea4015d7d",
                "sha256": "4b92c140185d3549fcd7a1d4f7af92bff1fa05ccc395453ed0dddf98cd8d564c"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp311-none-win32.whl",
            "has_sig": false,
            "md5_digest": "29b80566c3bb7ebe11329d9ea4015d7d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 271067,
            "upload_time": "2024-09-26T19:08:45",
            "upload_time_iso_8601": "2024-09-26T19:08:45.966886Z",
            "url": "https://files.pythonhosted.org/packages/f1/a3/0525b0117e150652783deaab8f540e302e764ef09bb381ffdfc23a8d4650/hussh-0.1.7-cp311-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a5d747a396f72530f4f2eefc7415fd7f1a8f4fe1a520bfd6c6e63b782941084f",
                "md5": "24ab0db79a82e2070330794f4805fde4",
                "sha256": "b780eca016eff3c214942209a983149397312aea0dd14673eedfc162b6966276"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp311-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "24ab0db79a82e2070330794f4805fde4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 293705,
            "upload_time": "2024-09-26T19:08:40",
            "upload_time_iso_8601": "2024-09-26T19:08:40.177530Z",
            "url": "https://files.pythonhosted.org/packages/a5/d7/47a396f72530f4f2eefc7415fd7f1a8f4fe1a520bfd6c6e63b782941084f/hussh-0.1.7-cp311-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "575965e1dce3656b217974c001c803848e8ba1e03669619d2859327a770f3eba",
                "md5": "2caf9b2fa4b51b2a85e5cc834ff05cae",
                "sha256": "cdf30a7d63f98f8d19db49fab03aa0892b52071c899f4080702b92fd88c7efc2"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp312-cp312-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2caf9b2fa4b51b2a85e5cc834ff05cae",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 372087,
            "upload_time": "2024-09-26T19:08:35",
            "upload_time_iso_8601": "2024-09-26T19:08:35.504834Z",
            "url": "https://files.pythonhosted.org/packages/57/59/65e1dce3656b217974c001c803848e8ba1e03669619d2859327a770f3eba/hussh-0.1.7-cp312-cp312-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8e619f236a7a3d736dbe445857b525f96d4c8c89a53cb832f6f68f0fd6091259",
                "md5": "8abcd33a446b9c10f23481b355e3045d",
                "sha256": "1f4b5b312961f251bc5cd77ddeed8f3e29b55a2d6ce92b50aab0ff2fbbc40da7"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8abcd33a446b9c10f23481b355e3045d",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 364063,
            "upload_time": "2024-09-26T19:08:30",
            "upload_time_iso_8601": "2024-09-26T19:08:30.511859Z",
            "url": "https://files.pythonhosted.org/packages/8e/61/9f236a7a3d736dbe445857b525f96d4c8c89a53cb832f6f68f0fd6091259/hussh-0.1.7-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "744053c74216e7e367341e5c3e3491ed98ace74e82dea230fdd0ee4cf443072e",
                "md5": "5f6c44e3af86f8857a9074f1d59a07a1",
                "sha256": "3d9df7097e16f67719cc2e9d9d352b68932ee980ce6c6f816fca597e2d58be35"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "5f6c44e3af86f8857a9074f1d59a07a1",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 2218990,
            "upload_time": "2024-09-26T19:07:49",
            "upload_time_iso_8601": "2024-09-26T19:07:49.111664Z",
            "url": "https://files.pythonhosted.org/packages/74/40/53c74216e7e367341e5c3e3491ed98ace74e82dea230fdd0ee4cf443072e/hussh-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a4460b1a8e3bf7e7dee97ecc82119ad6f0177bf5fb58db8fd2991f4ecabeac38",
                "md5": "267e69c0dbbe446c1ab74b5fec5810be",
                "sha256": "fa44421e82cac19f64aa15ed994949b0a8e50a03ec66cb154dce86e34c86ec4f"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "267e69c0dbbe446c1ab74b5fec5810be",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 1596505,
            "upload_time": "2024-09-26T19:08:00",
            "upload_time_iso_8601": "2024-09-26T19:08:00.212713Z",
            "url": "https://files.pythonhosted.org/packages/a4/46/0b1a8e3bf7e7dee97ecc82119ad6f0177bf5fb58db8fd2991f4ecabeac38/hussh-0.1.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1b976db4a7f8a338df37a89b625cefb38904b87f57d9d820341df053a59044f4",
                "md5": "e4d7a7e9eff81df6424168deac24f148",
                "sha256": "a797957d146e6748a66b017b5ef63f7aa775983a6946ab3b5c81561ca46c66f2"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "e4d7a7e9eff81df6424168deac24f148",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 1860378,
            "upload_time": "2024-09-26T19:08:11",
            "upload_time_iso_8601": "2024-09-26T19:08:11.649429Z",
            "url": "https://files.pythonhosted.org/packages/1b/97/6db4a7f8a338df37a89b625cefb38904b87f57d9d820341df053a59044f4/hussh-0.1.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0b7cded5db20902626cc1d2bef09d5dab87ec9323d1ddedf62012663d0ec82ea",
                "md5": "f68d33fb9efefc9eb4226af97fd525d2",
                "sha256": "9fc6fe3e8d7ee5ebea5c045786027bfde86dddb75dc167ad2640138323d9ba3c"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f68d33fb9efefc9eb4226af97fd525d2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 1916431,
            "upload_time": "2024-09-26T19:08:21",
            "upload_time_iso_8601": "2024-09-26T19:08:21.805156Z",
            "url": "https://files.pythonhosted.org/packages/0b/7c/ded5db20902626cc1d2bef09d5dab87ec9323d1ddedf62012663d0ec82ea/hussh-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d0ae5c9f9253b39542ccc982350792e88f3d0b70dd55673644237b3239a243e3",
                "md5": "807f3554b392c4e5396f57da114e5eeb",
                "sha256": "346ba33663840980425589112aa06faec1c13cef1fe4fcd462d83e338ff9c22e"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp312-none-win32.whl",
            "has_sig": false,
            "md5_digest": "807f3554b392c4e5396f57da114e5eeb",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 270559,
            "upload_time": "2024-09-26T19:08:47",
            "upload_time_iso_8601": "2024-09-26T19:08:47.455328Z",
            "url": "https://files.pythonhosted.org/packages/d0/ae/5c9f9253b39542ccc982350792e88f3d0b70dd55673644237b3239a243e3/hussh-0.1.7-cp312-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0b263682ada54743bbaba71cabd41cd811396674fd5ce1b47052cfc3bf4ffafd",
                "md5": "b64817b1abbed0178e0ab493a7f5ad2c",
                "sha256": "02d7a89c277b5546bc743664eec70ab52f31f93cdf688a9c555ba4e32ab46b9e"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp312-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "b64817b1abbed0178e0ab493a7f5ad2c",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 293173,
            "upload_time": "2024-09-26T19:08:41",
            "upload_time_iso_8601": "2024-09-26T19:08:41.315862Z",
            "url": "https://files.pythonhosted.org/packages/0b/26/3682ada54743bbaba71cabd41cd811396674fd5ce1b47052cfc3bf4ffafd/hussh-0.1.7-cp312-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f2e0fbda7174b7635389258832725f0a88f251be604e66069566752bf8d6f71d",
                "md5": "9ebfb0a12e7a1647e674fc5fdcd3f475",
                "sha256": "4eda5452359b1bdf118b00fc481362c293ec7bacc5ecbf9d4de5e758add7fe1d"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "9ebfb0a12e7a1647e674fc5fdcd3f475",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 2221844,
            "upload_time": "2024-09-26T19:07:50",
            "upload_time_iso_8601": "2024-09-26T19:07:50.343891Z",
            "url": "https://files.pythonhosted.org/packages/f2/e0/fbda7174b7635389258832725f0a88f251be604e66069566752bf8d6f71d/hussh-0.1.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "79a551419cb334c149efb5edb1876ae66f00bd74122e8995211b57ef81cf0d76",
                "md5": "6ad293e385c9a40405d79a22695798b0",
                "sha256": "ba51309bf67ef6d05c307b2e67e5632607cbf4c365f99b25d437959df983d05e"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "6ad293e385c9a40405d79a22695798b0",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1597234,
            "upload_time": "2024-09-26T19:08:01",
            "upload_time_iso_8601": "2024-09-26T19:08:01.699809Z",
            "url": "https://files.pythonhosted.org/packages/79/a5/51419cb334c149efb5edb1876ae66f00bd74122e8995211b57ef81cf0d76/hussh-0.1.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f34280551afe43e5acc8bce8396b37012d170929f701cb2c338f1a5de2b49b68",
                "md5": "39613ab1c63b756e99dafe62a75b54dd",
                "sha256": "4558e07cf5023f596c9e62baab1880b20e5fbfc2df4132db266f8395bb7ab159"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "39613ab1c63b756e99dafe62a75b54dd",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1861293,
            "upload_time": "2024-09-26T19:08:12",
            "upload_time_iso_8601": "2024-09-26T19:08:12.929824Z",
            "url": "https://files.pythonhosted.org/packages/f3/42/80551afe43e5acc8bce8396b37012d170929f701cb2c338f1a5de2b49b68/hussh-0.1.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a6240b7cb96043c5b7127f7c5ce0f82160aa0a41c9898bfaecd347106aa88512",
                "md5": "5b114def4d2483809247931ee18174db",
                "sha256": "eb24bcd2f017e49945032fc6f29f0b4f14af91e24b02396791134c4a352c47d1"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5b114def4d2483809247931ee18174db",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1918243,
            "upload_time": "2024-09-26T19:08:23",
            "upload_time_iso_8601": "2024-09-26T19:08:23.108943Z",
            "url": "https://files.pythonhosted.org/packages/a6/24/0b7cb96043c5b7127f7c5ce0f82160aa0a41c9898bfaecd347106aa88512/hussh-0.1.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7579f69db2142f3bff07a69274df2d3696256bf893faa58043baa8bfb9eb2d45",
                "md5": "e2aa091bdc52bdeadeaae593cea320ac",
                "sha256": "8e7788045200359b1f4ba5c256affaf12edab9343b8a0919b971acbf91afda28"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp38-none-win32.whl",
            "has_sig": false,
            "md5_digest": "e2aa091bdc52bdeadeaae593cea320ac",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 271188,
            "upload_time": "2024-09-26T19:08:48",
            "upload_time_iso_8601": "2024-09-26T19:08:48.530414Z",
            "url": "https://files.pythonhosted.org/packages/75/79/f69db2142f3bff07a69274df2d3696256bf893faa58043baa8bfb9eb2d45/hussh-0.1.7-cp38-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0c6410907a92990f68856fb3fcd2eefbedec85b062544180194cacea66597cc1",
                "md5": "6c413d97a52ca3fc16667ab5622b7718",
                "sha256": "ccc8b5d6af8e903ea9a8043ca1acae120f2d3a2c4ec518bc79c75da407572953"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp38-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6c413d97a52ca3fc16667ab5622b7718",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 294569,
            "upload_time": "2024-09-26T19:08:42",
            "upload_time_iso_8601": "2024-09-26T19:08:42.574880Z",
            "url": "https://files.pythonhosted.org/packages/0c/64/10907a92990f68856fb3fcd2eefbedec85b062544180194cacea66597cc1/hussh-0.1.7-cp38-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c8b8f48d0ea31a4fbc659053fc1f71ebfd97e0a816be82db07bae0100440d6fe",
                "md5": "07ee4960db8e7293504c99c848ecec35",
                "sha256": "5bdc3565c2c0d2c830e1a0bfc8e2eaeca86a2982ef801185b49c8cf7997c90f1"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp39-cp39-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "07ee4960db8e7293504c99c848ecec35",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 373581,
            "upload_time": "2024-09-26T19:08:36",
            "upload_time_iso_8601": "2024-09-26T19:08:36.642693Z",
            "url": "https://files.pythonhosted.org/packages/c8/b8/f48d0ea31a4fbc659053fc1f71ebfd97e0a816be82db07bae0100440d6fe/hussh-0.1.7-cp39-cp39-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2065a13a0eb36442f328803fd9c810654f673aac0f396ae8b11f965b2848ec0f",
                "md5": "4beeffa4e8ef7d678ec20c5db324594c",
                "sha256": "44fd6e1084b553b1993140e2c108884b149a908cd812bfcb426fe6b120c2c8e7"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "4beeffa4e8ef7d678ec20c5db324594c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 365569,
            "upload_time": "2024-09-26T19:08:31",
            "upload_time_iso_8601": "2024-09-26T19:08:31.668592Z",
            "url": "https://files.pythonhosted.org/packages/20/65/a13a0eb36442f328803fd9c810654f673aac0f396ae8b11f965b2848ec0f/hussh-0.1.7-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f4f87efa624f4869b30dea36455ba16138fca2d67d1718a8a0452bbc1ca5d28e",
                "md5": "5e9161118757a3040fbddb99b6c3004a",
                "sha256": "a4f75749f41ba4dde1a4dbccf7db4a492bb31e272855206cbfd71c4752a6a10d"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "5e9161118757a3040fbddb99b6c3004a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 2221865,
            "upload_time": "2024-09-26T19:07:52",
            "upload_time_iso_8601": "2024-09-26T19:07:52.160874Z",
            "url": "https://files.pythonhosted.org/packages/f4/f8/7efa624f4869b30dea36455ba16138fca2d67d1718a8a0452bbc1ca5d28e/hussh-0.1.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7519bc69e7e33d6fc183f6e4e910cc4635016713274f34ec8e5d400bbe65d7f4",
                "md5": "806384bcc0bac9cdf095de3ca3226c20",
                "sha256": "cc808f8f09a76bbd4fa6f44a7d60e42f6273f4bb6598b1ba469b57087052b97b"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "806384bcc0bac9cdf095de3ca3226c20",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1597307,
            "upload_time": "2024-09-26T19:08:03",
            "upload_time_iso_8601": "2024-09-26T19:08:03.025281Z",
            "url": "https://files.pythonhosted.org/packages/75/19/bc69e7e33d6fc183f6e4e910cc4635016713274f34ec8e5d400bbe65d7f4/hussh-0.1.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1073528b7e23c3185e1a047200f159ad936ca3f0dafc3021d77b4d0859681e93",
                "md5": "998e3e1471f980e1dbb5787ed5dab890",
                "sha256": "5ddae6e9d307279017ed2ab8c14fe6e3ce0e9a63e795acc0c0f5c8443cef831b"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "998e3e1471f980e1dbb5787ed5dab890",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1861548,
            "upload_time": "2024-09-26T19:08:14",
            "upload_time_iso_8601": "2024-09-26T19:08:14.176106Z",
            "url": "https://files.pythonhosted.org/packages/10/73/528b7e23c3185e1a047200f159ad936ca3f0dafc3021d77b4d0859681e93/hussh-0.1.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dfaf49a3daf27b70b164d78f757dd16fd1465fe053ee2fda67a35d15639e4f32",
                "md5": "af31b538dec8b20b6e05000324dc8409",
                "sha256": "b1f660cf4f5de4d1e31ea2e5505bc8cd4de294073f267fdc67e98f51d5512894"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "af31b538dec8b20b6e05000324dc8409",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1917840,
            "upload_time": "2024-09-26T19:08:24",
            "upload_time_iso_8601": "2024-09-26T19:08:24.330240Z",
            "url": "https://files.pythonhosted.org/packages/df/af/49a3daf27b70b164d78f757dd16fd1465fe053ee2fda67a35d15639e4f32/hussh-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "73b0fddaca50861756a7db1e052a73f159b1dfb710ae9e803065ec4f35b05f84",
                "md5": "36418337fbe1dbc8700373957bdf0ab2",
                "sha256": "359fb99a0a0314fac775c8fbca29ee8800a1cc17043d8720332c03603babde67"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp39-none-win32.whl",
            "has_sig": false,
            "md5_digest": "36418337fbe1dbc8700373957bdf0ab2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 271300,
            "upload_time": "2024-09-26T19:08:49",
            "upload_time_iso_8601": "2024-09-26T19:08:49.777715Z",
            "url": "https://files.pythonhosted.org/packages/73/b0/fddaca50861756a7db1e052a73f159b1dfb710ae9e803065ec4f35b05f84/hussh-0.1.7-cp39-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7ccbff9be2096a4201343d949709b6eb1ffc070438351b8f70c99ef3991a9c7d",
                "md5": "eab7014a88f590c6cbbb7cfdda0a542e",
                "sha256": "c2e8ec457f34a3fe15065d67371d9831829d44b14b962302f77c418d12cf0f81"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-cp39-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "eab7014a88f590c6cbbb7cfdda0a542e",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 294629,
            "upload_time": "2024-09-26T19:08:43",
            "upload_time_iso_8601": "2024-09-26T19:08:43.715793Z",
            "url": "https://files.pythonhosted.org/packages/7c/cb/ff9be2096a4201343d949709b6eb1ffc070438351b8f70c99ef3991a9c7d/hussh-0.1.7-cp39-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1d3015878ba7850cd044cdd5742fa83f5a36280bf32f34bcedf4e59c5706b552",
                "md5": "3d1659339ad0d7279a541366fa90c97e",
                "sha256": "10d61c490ab70e095f8c16144c300c4d900aab3628cac7f2accfc07f8987007d"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "3d1659339ad0d7279a541366fa90c97e",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 2221594,
            "upload_time": "2024-09-26T19:07:53",
            "upload_time_iso_8601": "2024-09-26T19:07:53.383518Z",
            "url": "https://files.pythonhosted.org/packages/1d/30/15878ba7850cd044cdd5742fa83f5a36280bf32f34bcedf4e59c5706b552/hussh-0.1.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "30f1e6ab016767cb105bc6361c8d9a9fbcbbf8badb25c82f681f0f7bb40cb2e7",
                "md5": "8f36a834ef52178dcc7099c132a0db02",
                "sha256": "8101b73065878ed7641555d0c1532ac2ed614943794e9bddb47ea072d847a5e4"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "8f36a834ef52178dcc7099c132a0db02",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 1597058,
            "upload_time": "2024-09-26T19:08:05",
            "upload_time_iso_8601": "2024-09-26T19:08:05.103255Z",
            "url": "https://files.pythonhosted.org/packages/30/f1/e6ab016767cb105bc6361c8d9a9fbcbbf8badb25c82f681f0f7bb40cb2e7/hussh-0.1.7-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b33fbc8a8861366dc96cbcbe900fd6dc075d34fd2de16c33919df976bdb483d0",
                "md5": "d6a30b4b38297bc331ffa408801d6fb5",
                "sha256": "ac7245f637175635807fda72716067fdcefdddf18b6e763a7943c76603faba8b"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "d6a30b4b38297bc331ffa408801d6fb5",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 1861116,
            "upload_time": "2024-09-26T19:08:15",
            "upload_time_iso_8601": "2024-09-26T19:08:15.396629Z",
            "url": "https://files.pythonhosted.org/packages/b3/3f/bc8a8861366dc96cbcbe900fd6dc075d34fd2de16c33919df976bdb483d0/hussh-0.1.7-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9ebdbd0e8fdfc3e74096b1f52259956943b26015ed7bc8b5a042f0a111313f57",
                "md5": "4461022b8deb393b3f4c7132a818da56",
                "sha256": "12d116441735dca42b89d556d66f86d4b9da7665c3d8e2e51c6eafbf598ac9c4"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4461022b8deb393b3f4c7132a818da56",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 1917381,
            "upload_time": "2024-09-26T19:08:25",
            "upload_time_iso_8601": "2024-09-26T19:08:25.879526Z",
            "url": "https://files.pythonhosted.org/packages/9e/bd/bd0e8fdfc3e74096b1f52259956943b26015ed7bc8b5a042f0a111313f57/hussh-0.1.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "20ca1c55f3a2a358275320e6159b39732734f7d91667abd9cf60044ff69ccc32",
                "md5": "470416413615cd96cee30256b09f79f3",
                "sha256": "5408234995bc7ba2fb321995bee56e3e58b8b83955bca6a2dcc3f6eda48c178d"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "470416413615cd96cee30256b09f79f3",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 2223224,
            "upload_time": "2024-09-26T19:07:54",
            "upload_time_iso_8601": "2024-09-26T19:07:54.609578Z",
            "url": "https://files.pythonhosted.org/packages/20/ca/1c55f3a2a358275320e6159b39732734f7d91667abd9cf60044ff69ccc32/hussh-0.1.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "facff690bac9da8137c5c82619e328a96034b30ae018232985f04825f8af02fc",
                "md5": "267282c58efbc1ee394f61d1dd23b89b",
                "sha256": "43d75355d67af8b84b9cf78e8fa7a1b6f26d3aad9bddb4d9c5b118b2af4c4786"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "267282c58efbc1ee394f61d1dd23b89b",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 1598038,
            "upload_time": "2024-09-26T19:08:06",
            "upload_time_iso_8601": "2024-09-26T19:08:06.395025Z",
            "url": "https://files.pythonhosted.org/packages/fa/cf/f690bac9da8137c5c82619e328a96034b30ae018232985f04825f8af02fc/hussh-0.1.7-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f0d914a55d35c7f9aba263c76d2a95af109a86ffe26afb8cc3a3ed6430c0001e",
                "md5": "8eb10687ba067d4da49d66e8b41e816a",
                "sha256": "20443870e31aa077af49d774dc4bbb8f298152fa4585823acdf9b370bf41562a"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "8eb10687ba067d4da49d66e8b41e816a",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 1862914,
            "upload_time": "2024-09-26T19:08:16",
            "upload_time_iso_8601": "2024-09-26T19:08:16.650111Z",
            "url": "https://files.pythonhosted.org/packages/f0/d9/14a55d35c7f9aba263c76d2a95af109a86ffe26afb8cc3a3ed6430c0001e/hussh-0.1.7-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "413bc997b18ea68656a4ab1b69f13b2a80c834370631bb90ab8c2240a149354b",
                "md5": "7a314758a0a716edc244bc25ca62fecb",
                "sha256": "0eb9ac62e0604db5a30082770536ef7943fa21ecb4250e8d2de2ec53449bf1b9"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "7a314758a0a716edc244bc25ca62fecb",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 2222803,
            "upload_time": "2024-09-26T19:07:55",
            "upload_time_iso_8601": "2024-09-26T19:07:55.893104Z",
            "url": "https://files.pythonhosted.org/packages/41/3b/c997b18ea68656a4ab1b69f13b2a80c834370631bb90ab8c2240a149354b/hussh-0.1.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7331788f0e970abdb7be459f683bfd1cb5431b80c94ed8aaa153ba1950dab37e",
                "md5": "fc8e0f345f056a625c6789f81c912726",
                "sha256": "b9fae4433992e2b071162069df2ff9146a18b9b7b9da8d0e445a0bd246cb05eb"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "fc8e0f345f056a625c6789f81c912726",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 1597819,
            "upload_time": "2024-09-26T19:08:07",
            "upload_time_iso_8601": "2024-09-26T19:08:07.662104Z",
            "url": "https://files.pythonhosted.org/packages/73/31/788f0e970abdb7be459f683bfd1cb5431b80c94ed8aaa153ba1950dab37e/hussh-0.1.7-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c5694403b12e67317c5689a3eecbaa943731e3e54d11d1906655f829bbfab030",
                "md5": "fc5589b765522542f3b361fca207b09b",
                "sha256": "b9fd0509dc2887628787bee75702ac489c9a65d8fa8d226f80721e2722bc42a9"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "fc5589b765522542f3b361fca207b09b",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 1862836,
            "upload_time": "2024-09-26T19:08:17",
            "upload_time_iso_8601": "2024-09-26T19:08:17.939690Z",
            "url": "https://files.pythonhosted.org/packages/c5/69/4403b12e67317c5689a3eecbaa943731e3e54d11d1906655f829bbfab030/hussh-0.1.7-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c0e94c2b536cc70fa1341b7c6a2d2f15b3a757c76e5f86976a901b5c27d603ff",
                "md5": "ba8aa36d6bbd85428ae15180b60e0c7e",
                "sha256": "0fd731aac245872b09cbdeecf78966d0613d94332177cb427c3f80ab398ea807"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ba8aa36d6bbd85428ae15180b60e0c7e",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 1919096,
            "upload_time": "2024-09-26T19:08:27",
            "upload_time_iso_8601": "2024-09-26T19:08:27.083217Z",
            "url": "https://files.pythonhosted.org/packages/c0/e9/4c2b536cc70fa1341b7c6a2d2f15b3a757c76e5f86976a901b5c27d603ff/hussh-0.1.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c8ec478952047be38d47691bd5d0f9810246d9cb4899a32c209674c0502fc279",
                "md5": "ab876b545b6ff9ceb03fde32a4a0889b",
                "sha256": "2736442abf2c34478244861c5ed28316a56dfb73fe801990dc0dd5ec76669aec"
            },
            "downloads": -1,
            "filename": "hussh-0.1.7.tar.gz",
            "has_sig": false,
            "md5_digest": "ab876b545b6ff9ceb03fde32a4a0889b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 534725,
            "upload_time": "2024-09-26T19:08:37",
            "upload_time_iso_8601": "2024-09-26T19:08:37.802559Z",
            "url": "https://files.pythonhosted.org/packages/c8/ec/478952047be38d47691bd5d0f9810246d9cb4899a32c209674c0502fc279/hussh-0.1.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-26 19:08:37",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "hussh"
}
        
Elapsed time: 0.36174s