sesiweb


Namesesiweb JSON
Version 0.1.1 PyPI version JSON
download
home_page
SummaryUnofficial driver for the SideFX Web API
upload_time2023-06-13 12:41:28
maintainer
docs_urlNone
author
requires_python>=3.7
licenseMIT License Copyright (c) 2023 Aaron Smith Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords sidefx houdini sesi
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # <img src="https://static.sidefx.com/images/apple-touch-icon.png" width="25" height="25" alt="Hbuild Logo"> sesiweb

[![](https://img.shields.io/pypi/v/sesiweb.svg?maxAge=3600)](https://pypi.org/project/sesiweb/)
![Test](https://github.com/aaronsmithtv/sesiweb/actions/workflows/test.yml/badge.svg)

sesiweb is a Python module used as a synchronous driver for the SideFX Web API. It provides a simple interface to interact with the API and obtain data about Houdini product builds.

Inputs are validated with Pydantic, and methods in sesiweb provide additional lookup functionality, exceptions, and models.

## Table of Contents

- [Installation](#installation)
- [Daily Build Listing](#daily-build-listing)
- [Acquiring a Build Download](#acquiring-a-build-download)
- [License](#license)

## Installation

You can install sesiweb via pip:

```shell
pip install --upgrade sesiweb
```

*Note: sesiweb is intended for Python 3, as it supports several modern Python features.*

## Daily Build Listing

To use sesiweb, you need to provide your SideFX API credentials:

```python
from sesiweb import SesiWeb

sesi_secret = "your_secret_key"
sesi_id = "your_client_id"

sw = SesiWeb(sesi_secret, sesi_id)
```

Once you have created an instance of SesiWeb, you can call its methods to retrieve data. For example, `get_latest_builds` will return a list of the `DailyBuild` object:


```python
# Get the most recent Houdini product builds
build = {"product": "houdini", "platform": "linux", "version": "19.5"}
latest_builds = sw.get_latest_builds(build)

print(latest_builds)
```

This will return:

```shell
[DailyBuild(product='houdini', platform='linux_x86_64_gcc9.3', version='19.5', build='569', date='2023/03/29', release='gold', status='good'), DailyBuild(...
```

You can also filter builds with the `prodfilter` arg:

```python
buildfilter = {"status": "good", "release": "gold"}

latest_builds = sw.get_latest_builds(
    prodinfo=build,
    prodfilter=buildfilter
)
```

For more information on the SideFX Web API and the returned results you can filter by, refer to the [SideFX Web API documentation](https://www.sidefx.com/docs/api/).

## Acquiring a Build Download

Using sesiweb and Pydantic, you can also transform a `DailyBuild` object into a `ProductBuild` object, which is a required input for acquiring a download URL.

In the script below, the single latest daily development build (irrespective of version number) is acquired using `get_latest_build`. `get_build_download` is then used to return the download metadata for that build:

```python
from sesiweb import SesiWeb
from sesiweb.model.service import ProductBuild

sesi_secret = "your_secret_key"
sesi_id = "your_client_id"

sw = SesiWeb(sesi_secret, sesi_id)

# Get the most recent Houdini product builds
build = {"product": "houdini", "platform": "linux"}

# Get the latest Houdini build
build = sw.get_latest_build(prodinfo=build, only_production=False)

# Get the download URL, filename and hash of the build
build_dl = sw.get_build_download(
	prodinfo=ProductBuild(**build.dict())
)

print(build_dl)
```

This will return a `BuildDownloadModel` object containing a download URL, build filename, and hash:

```shell
download_url=AnyUrl('https://gjvnth38g.cloudfront.net/download/download-build/456223/cdn/?Expires=166636236...
```

For an example of using this metadata in a purpose suitable for a production environment, see [autobuild.py](https://github.com/aaronsmithtv/Houdini-Docker/blob/main/hbuild/autobuild.py) in [Houdini-Docker](https://github.com/aaronsmithtv/Houdini-Docker); Where sesiweb build data is used to construct a Docker image using a custom Houdini installation process.

## License

sesiweb is licensed under the MIT License. See [LICENSE](LICENSE) for more information.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "sesiweb",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "sidefx,houdini,sesi",
    "author": "",
    "author_email": "Aaron Smith <aaron@aaronsmith.tv>",
    "download_url": "https://files.pythonhosted.org/packages/8c/1d/620148c7bfd1137a4a8966585bc42ad1738729d92c52d420e9333d7cf45e/sesiweb-0.1.1.tar.gz",
    "platform": null,
    "description": "# <img src=\"https://static.sidefx.com/images/apple-touch-icon.png\" width=\"25\" height=\"25\" alt=\"Hbuild Logo\"> sesiweb\n\n[![](https://img.shields.io/pypi/v/sesiweb.svg?maxAge=3600)](https://pypi.org/project/sesiweb/)\n![Test](https://github.com/aaronsmithtv/sesiweb/actions/workflows/test.yml/badge.svg)\n\nsesiweb is a Python module used as a synchronous driver for the SideFX Web API. It provides a simple interface to interact with the API and obtain data about Houdini product builds.\n\nInputs are validated with Pydantic, and methods in sesiweb provide additional lookup functionality, exceptions, and models.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Daily Build Listing](#daily-build-listing)\n- [Acquiring a Build Download](#acquiring-a-build-download)\n- [License](#license)\n\n## Installation\n\nYou can install sesiweb via pip:\n\n```shell\npip install --upgrade sesiweb\n```\n\n*Note: sesiweb is intended for Python 3, as it supports several modern Python features.*\n\n## Daily Build Listing\n\nTo use sesiweb, you need to provide your SideFX API credentials:\n\n```python\nfrom sesiweb import SesiWeb\n\nsesi_secret = \"your_secret_key\"\nsesi_id = \"your_client_id\"\n\nsw = SesiWeb(sesi_secret, sesi_id)\n```\n\nOnce you have created an instance of SesiWeb, you can call its methods to retrieve data. For example, `get_latest_builds` will return a list of the `DailyBuild` object:\n\n\n```python\n# Get the most recent Houdini product builds\nbuild = {\"product\": \"houdini\", \"platform\": \"linux\", \"version\": \"19.5\"}\nlatest_builds = sw.get_latest_builds(build)\n\nprint(latest_builds)\n```\n\nThis will return:\n\n```shell\n[DailyBuild(product='houdini', platform='linux_x86_64_gcc9.3', version='19.5', build='569', date='2023/03/29', release='gold', status='good'), DailyBuild(...\n```\n\nYou can also filter builds with the `prodfilter` arg:\n\n```python\nbuildfilter = {\"status\": \"good\", \"release\": \"gold\"}\n\nlatest_builds = sw.get_latest_builds(\n    prodinfo=build,\n    prodfilter=buildfilter\n)\n```\n\nFor more information on the SideFX Web API and the returned results you can filter by, refer to the [SideFX Web API documentation](https://www.sidefx.com/docs/api/).\n\n## Acquiring a Build Download\n\nUsing sesiweb and Pydantic, you can also transform a `DailyBuild` object into a `ProductBuild` object, which is a required input for acquiring a download URL.\n\nIn the script below, the single latest daily development build (irrespective of version number) is acquired using `get_latest_build`. `get_build_download` is then used to return the download metadata for that build:\n\n```python\nfrom sesiweb import SesiWeb\nfrom sesiweb.model.service import ProductBuild\n\nsesi_secret = \"your_secret_key\"\nsesi_id = \"your_client_id\"\n\nsw = SesiWeb(sesi_secret, sesi_id)\n\n# Get the most recent Houdini product builds\nbuild = {\"product\": \"houdini\", \"platform\": \"linux\"}\n\n# Get the latest Houdini build\nbuild = sw.get_latest_build(prodinfo=build, only_production=False)\n\n# Get the download URL, filename and hash of the build\nbuild_dl = sw.get_build_download(\n\tprodinfo=ProductBuild(**build.dict())\n)\n\nprint(build_dl)\n```\n\nThis will return a `BuildDownloadModel` object containing a download URL, build filename, and hash:\n\n```shell\ndownload_url=AnyUrl('https://gjvnth38g.cloudfront.net/download/download-build/456223/cdn/?Expires=166636236...\n```\n\nFor an example of using this metadata in a purpose suitable for a production environment, see [autobuild.py](https://github.com/aaronsmithtv/Houdini-Docker/blob/main/hbuild/autobuild.py) in [Houdini-Docker](https://github.com/aaronsmithtv/Houdini-Docker); Where sesiweb build data is used to construct a Docker image using a custom Houdini installation process.\n\n## License\n\nsesiweb is licensed under the MIT License. See [LICENSE](LICENSE) for more information.\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2023 Aaron Smith  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
    "summary": "Unofficial driver for the SideFX Web API",
    "version": "0.1.1",
    "project_urls": {
        "Bug Reports": "https://github.com/aaronsmithtv/issues",
        "Homepage": "https://github.com/aaronsmithtv/sesiweb",
        "Source": "https://github.com/aaronsmithtv/sesiweb/"
    },
    "split_keywords": [
        "sidefx",
        "houdini",
        "sesi"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b637e16bb0126337362ed96b65e142fb1c72dac5529e96ede1f91943bcf61d71",
                "md5": "07a75e4a8237a19f8117e913c5ad4751",
                "sha256": "f05aa1f7744f6409f2a60bea7f43ecf436fe8e181de8f27af963d6b12655fe9d"
            },
            "downloads": -1,
            "filename": "sesiweb-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "07a75e4a8237a19f8117e913c5ad4751",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 10142,
            "upload_time": "2023-06-13T12:41:26",
            "upload_time_iso_8601": "2023-06-13T12:41:26.794158Z",
            "url": "https://files.pythonhosted.org/packages/b6/37/e16bb0126337362ed96b65e142fb1c72dac5529e96ede1f91943bcf61d71/sesiweb-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8c1d620148c7bfd1137a4a8966585bc42ad1738729d92c52d420e9333d7cf45e",
                "md5": "317dad307184e32685ae948bbaf0adf8",
                "sha256": "a5c381448cc060e922ed49f9a07d16100460b677f3c12d8bac792549720ba8cc"
            },
            "downloads": -1,
            "filename": "sesiweb-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "317dad307184e32685ae948bbaf0adf8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 11211,
            "upload_time": "2023-06-13T12:41:28",
            "upload_time_iso_8601": "2023-06-13T12:41:28.055463Z",
            "url": "https://files.pythonhosted.org/packages/8c/1d/620148c7bfd1137a4a8966585bc42ad1738729d92c52d420e9333d7cf45e/sesiweb-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-13 12:41:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "aaronsmithtv",
    "github_project": "issues",
    "github_not_found": true,
    "lcname": "sesiweb"
}
        
Elapsed time: 0.07903s