Skip to main content

Declarative external resources with implicit deployment

Project description

Declarative resources with implicit deployment

This package provide classes that allow to setup external resources (utilities, python packages, executables etc.) that will be deployed as they are used. In most cases data should be on the web and it will be deployed and cached locally on only first usage.

There are several examples in test/ folder and getpack.library module already defined and useable. But main intention is to provide framework for declarative setup of any resource and work with it without care of deployment.

from getpack.resource import WebResource
class Example(WebResource):
    version = '0.1'
    archive_url = 'https://example.com/example-0.1.zip'

then it would be used:

import subprocess
subprocess.call(Example()().path / 'example.exe')

Second round braces required to actually make an effect from resource and first round braces used to initialize resource class, that would produce resource descriptions on the fly like follows:

Example(version='0.2', archive_url='https://Example.com/example-0.2.zip')

You may experiment with following working snippet and try to change PySide2 version:

python -c "import getpack.library;getpack.library.PySide2(version='5.14.1')(); import PySide2.QtWidgets; app=PySide2.QtWidgets.QApplication(); w=PySide2.QtWidgets.QPushButton(PySide2.__version__); w.clicked.connect(w.close); w.show(); app.exec_()"

TODO

  • Utilize requirements.txt to reproduce both development and production environments.

Testings

For linux testing with Docker, run: docker build -t test . && docker run -it --rm test pytest .

Environs

  • GETPACK_RETRIES - int, number of general retries, used for renaming and removing temporary folders
  • GETPACK_BACKOFF - float, delay between retires
  • GETPACK_ROOT - str, default root folder for all resources

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

getpack-0.5.2-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file getpack-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: getpack-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.13

File hashes

Hashes for getpack-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 43019a791b2ed7f30fad726025e7bde2714a7dd2ba1025e666303f1365e824e0
MD5 c11e44f65a0b76a639bb81cf842d6c48
BLAKE2b-256 25bb6bba0786ec0ce958b1d6fdfb9f864f339e57ea2dd315e4b7e83629543c96

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page