<p align="center">
<a href="https://pypi.python.org/pypi/swmclient" alt="Latest package version">
<img src="https://img.shields.io/pypi/v/swmclient.svg" />
</a>
<a href="https://pypi.python.org/pypi/swmclient" alt="Python version">
<img src="https://img.shields.io/pypi/pyversions/swmclient.svg" />
</a>
<a href="https://pypi.python.org/pypi/swmclient" alt="Package status">
<img src="https://img.shields.io/pypi/status/swmclient.svg" />
</a>
<a href="https://github.com/openworkload/swm-python-client/blob/master/LICENSE" alt="License">
<img src="https://img.shields.io/github/license/openworkload/swm-python-client" />
</a>
</p>
Python bindings for swm-core REST API
======================================
# Description
Sky Port is an universal bus between user software and compute resources.
It can also be considered as a transportation layer between workload producers
and compute resource providers. Sky Port makes it easy to connect user software
to different cloud resources.
The current python package represents a wrapper around client REST API of the core
component of Sky Port -- [core daemon](https://github.com/openworkload/swm-core).
The package provides classes and data structures that can be used in python programs
in order to communicate with swm-core. Such communication is useful when Sky Port
terminals are built (see [JupyterLab terminal](https://github.com/openworkload/swm-jupyter-term)
as an example).
# Build
## Requirements:
1) Use swm-core dev container or install manually:
```bash
sudo apt-get install python3-all-dev
sudo apt install python3-pip
pip3 install pip-tools setuptools virtualenv
```
Note: Python 3.10 is required.
2) Install the project dependencies with virtualenv
```bash
make prepare-venv
```
## Run code autoformatting and validation tools:
```bash
make format
make check
```
## Run unit tests:
```bash
make test
```
## Build pip package and upload to pypi.org:
```bash
. .venv/bin/activate
make clean
make package
make upload
```
# Setup
The latest stable version of the package is uploaded to [PyPi](https://pypi.org/project/swmclient).
## Installation from PyPi:
```bash
python3 -m pip install --user swmclient
```
## Remove installed package:
```bash
python3 -m pip uninstall swmclient
```
# Contributing
We appreciate all contributions. If you are planning to contribute back bug-fixes, please do so
without any further discussion. If you plan to contribute new features, utility functions or extensions,
please first open an issue and discuss the feature with us.
# License
We use a shared copyright model that enables all contributors to maintain the copyright on their contributions.
This software is licensed under the BSD-3-Clause license.
Raw data
{
"_id": null,
"home_page": null,
"name": "swmclient",
"maintainer": null,
"docs_url": null,
"requires_python": "~=3.10",
"maintainer_email": null,
"keywords": "hpc, high performance computing, cloud, cloud computing, open workload, sky port",
"author": null,
"author_email": "Taras Shapovalov <taras@iclouds.net>",
"download_url": "https://files.pythonhosted.org/packages/d5/6c/344778e9ea099330856a306fa67a9fc30baa169b3b3a6ebf198125ddb378/swmclient-0.1.7.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <a href=\"https://pypi.python.org/pypi/swmclient\" alt=\"Latest package version\">\n <img src=\"https://img.shields.io/pypi/v/swmclient.svg\" />\n </a>\n <a href=\"https://pypi.python.org/pypi/swmclient\" alt=\"Python version\">\n <img src=\"https://img.shields.io/pypi/pyversions/swmclient.svg\" />\n </a>\n <a href=\"https://pypi.python.org/pypi/swmclient\" alt=\"Package status\">\n <img src=\"https://img.shields.io/pypi/status/swmclient.svg\" />\n </a>\n <a href=\"https://github.com/openworkload/swm-python-client/blob/master/LICENSE\" alt=\"License\">\n <img src=\"https://img.shields.io/github/license/openworkload/swm-python-client\" />\n </a>\n</p>\n\n\nPython bindings for swm-core REST API\n======================================\n\n# Description\n\nSky Port is an universal bus between user software and compute resources.\nIt can also be considered as a transportation layer between workload producers\nand compute resource providers. Sky Port makes it easy to connect user software\nto different cloud resources.\n\nThe current python package represents a wrapper around client REST API of the core\ncomponent of Sky Port -- [core daemon](https://github.com/openworkload/swm-core).\nThe package provides classes and data structures that can be used in python programs \nin order to communicate with swm-core. Such communication is useful when Sky Port\nterminals are built (see [JupyterLab terminal](https://github.com/openworkload/swm-jupyter-term)\nas an example).\n\n# Build\n\n## Requirements:\n\n1) Use swm-core dev container or install manually:\n```bash\nsudo apt-get install python3-all-dev\nsudo apt install python3-pip\n\npip3 install pip-tools setuptools virtualenv\n```\n\nNote: Python 3.10 is required.\n\n2) Install the project dependencies with virtualenv\n```bash\nmake prepare-venv\n```\n\n## Run code autoformatting and validation tools:\n```bash\nmake format\nmake check\n```\n\n## Run unit tests:\n```bash\nmake test\n```\n\n## Build pip package and upload to pypi.org:\n\n```bash\n. .venv/bin/activate\nmake clean\nmake package\nmake upload\n```\n\n\n# Setup\n\nThe latest stable version of the package is uploaded to [PyPi](https://pypi.org/project/swmclient).\n\n## Installation from PyPi:\n```bash\npython3 -m pip install --user swmclient\n```\n\n## Remove installed package:\n```bash\npython3 -m pip uninstall swmclient\n```\n\n\n# Contributing\n\nWe appreciate all contributions. If you are planning to contribute back bug-fixes, please do so\nwithout any further discussion. If you plan to contribute new features, utility functions or extensions,\nplease first open an issue and discuss the feature with us.\n\n# License\n\nWe use a shared copyright model that enables all contributors to maintain the copyright on their contributions.\n\nThis software is licensed under the BSD-3-Clause license.\n",
"bugtrack_url": null,
"license": "BSD 3-Clause License",
"summary": "Python bindings for swm-core user REST API",
"version": "0.1.7",
"project_urls": {
"Distribution": "https://pypi.org/project/swmclient",
"Documentation": "https://openworkload.org",
"Homepage": "https://openworkload.org",
"Issues": "https://github.com/openworkload/swm-python-client/issues",
"Repository": "https://github.com/openworkload/swm-python-client",
"Tests": "https://github.com/openworkload/swm-python-client/tree/master/test"
},
"split_keywords": [
"hpc",
" high performance computing",
" cloud",
" cloud computing",
" open workload",
" sky port"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "076206e2831bfd4d0823d7e14cf45441a1e67befcc4288bd72cc30ef89ff669e",
"md5": "47d4e47535c0db5a9a9b9838c269d083",
"sha256": "bd59f4a9699bb436cfd4f2abcbf6d9c0dc6fe41bce517ccf75186320886c92c0"
},
"downloads": -1,
"filename": "swmclient-0.1.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "47d4e47535c0db5a9a9b9838c269d083",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.10",
"size": 40985,
"upload_time": "2025-08-10T18:24:24",
"upload_time_iso_8601": "2025-08-10T18:24:24.253255Z",
"url": "https://files.pythonhosted.org/packages/07/62/06e2831bfd4d0823d7e14cf45441a1e67befcc4288bd72cc30ef89ff669e/swmclient-0.1.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d56c344778e9ea099330856a306fa67a9fc30baa169b3b3a6ebf198125ddb378",
"md5": "1870bc2226167cfcdd0e4dba6fe3b0fb",
"sha256": "76da518962435590eb15d7ddd38ff3f99909632a3a1ef00a26e99e61d6bdca4f"
},
"downloads": -1,
"filename": "swmclient-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "1870bc2226167cfcdd0e4dba6fe3b0fb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.10",
"size": 26554,
"upload_time": "2025-08-10T18:24:25",
"upload_time_iso_8601": "2025-08-10T18:24:25.489097Z",
"url": "https://files.pythonhosted.org/packages/d5/6c/344778e9ea099330856a306fa67a9fc30baa169b3b3a6ebf198125ddb378/swmclient-0.1.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-10 18:24:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "openworkload",
"github_project": "swm-python-client",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "anyio",
"specs": [
[
"==",
"3.6.2"
]
]
},
{
"name": "attrs",
"specs": [
[
"==",
"23.1.0"
]
]
},
{
"name": "autoflake",
"specs": [
[
"==",
"1.4"
]
]
},
{
"name": "bandit",
"specs": [
[
"==",
"1.7.5"
]
]
},
{
"name": "black",
"specs": [
[
"==",
"21.11b1"
]
]
},
{
"name": "bleach",
"specs": [
[
"==",
"4.1.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2021.10.8"
]
]
},
{
"name": "cffi",
"specs": [
[
"==",
"1.15.0"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"2.0.7"
]
]
},
{
"name": "click",
"specs": [
[
"==",
"8.0.3"
]
]
},
{
"name": "colorama",
"specs": [
[
"==",
"0.4.4"
]
]
},
{
"name": "cryptography",
"specs": [
[
"==",
"35.0.0"
]
]
},
{
"name": "docutils",
"specs": [
[
"==",
"0.18"
]
]
},
{
"name": "gitdb",
"specs": [
[
"==",
"4.0.10"
]
]
},
{
"name": "gitpython",
"specs": [
[
"==",
"3.1.32"
]
]
},
{
"name": "h11",
"specs": [
[
"==",
"0.14.0"
]
]
},
{
"name": "httpcore",
"specs": [
[
"==",
"0.16.2"
]
]
},
{
"name": "httpx",
"specs": [
[
"==",
"0.23.1"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.3"
]
]
},
{
"name": "importlib-metadata",
"specs": [
[
"==",
"4.8.2"
]
]
},
{
"name": "isort",
"specs": [
[
"==",
"5.10.1"
]
]
},
{
"name": "jeepney",
"specs": [
[
"==",
"0.7.1"
]
]
},
{
"name": "jinja2",
"specs": [
[
"==",
"3.1.2"
]
]
},
{
"name": "keyring",
"specs": [
[
"==",
"23.2.1"
]
]
},
{
"name": "markdown-it-py",
"specs": [
[
"==",
"3.0.0"
]
]
},
{
"name": "markupsafe",
"specs": [
[
"==",
"2.1.3"
]
]
},
{
"name": "mdurl",
"specs": [
[
"==",
"0.1.2"
]
]
},
{
"name": "mypy",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "mypy-extensions",
"specs": [
[
"==",
"0.4.3"
]
]
},
{
"name": "openapi-python-client",
"specs": [
[
"==",
"0.13.4"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"21.3"
]
]
},
{
"name": "pathspec",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "pbr",
"specs": [
[
"==",
"5.11.1"
]
]
},
{
"name": "pkginfo",
"specs": [
[
"==",
"1.8.1"
]
]
},
{
"name": "platformdirs",
"specs": [
[
"==",
"2.4.0"
]
]
},
{
"name": "pycparser",
"specs": [
[
"==",
"2.21"
]
]
},
{
"name": "pydantic",
"specs": [
[
"==",
"1.9.2"
]
]
},
{
"name": "pyflakes",
"specs": [
[
"==",
"2.4.0"
]
]
},
{
"name": "pygments",
"specs": [
[
"==",
"2.16.1"
]
]
},
{
"name": "pyparsing",
"specs": [
[
"==",
"3.0.6"
]
]
},
{
"name": "python-dateutil",
"specs": [
[
"==",
"2.8.2"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0.1"
]
]
},
{
"name": "readme-renderer",
"specs": [
[
"==",
"30.0"
]
]
},
{
"name": "regex",
"specs": [
[
"==",
"2021.11.10"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.26.0"
]
]
},
{
"name": "requests-toolbelt",
"specs": [
[
"==",
"0.9.1"
]
]
},
{
"name": "rfc3986",
"specs": [
[
"==",
"1.5.0"
]
]
},
{
"name": "rich",
"specs": [
[
"==",
"13.5.2"
]
]
},
{
"name": "ruff",
"specs": [
[
"==",
"0.0.264"
]
]
},
{
"name": "secretstorage",
"specs": [
[
"==",
"3.3.1"
]
]
},
{
"name": "shellingham",
"specs": [
[
"==",
"1.5.3"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "smmap",
"specs": [
[
"==",
"5.0.0"
]
]
},
{
"name": "sniffio",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "stevedore",
"specs": [
[
"==",
"5.1.0"
]
]
},
{
"name": "tomli",
"specs": [
[
"==",
"1.2.2"
]
]
},
{
"name": "tqdm",
"specs": [
[
"==",
"4.62.3"
]
]
},
{
"name": "twine",
"specs": [
[
"==",
"3.6.0"
]
]
},
{
"name": "typer",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.0.0"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"1.26.7"
]
]
},
{
"name": "webencodings",
"specs": [
[
"==",
"0.5.1"
]
]
},
{
"name": "wheel",
"specs": [
[
"==",
"0.37.0"
]
]
},
{
"name": "zipp",
"specs": [
[
"==",
"3.6.0"
]
]
}
],
"lcname": "swmclient"
}