{ "info": { "author": "Alberto Donato", "author_email": "alberto.donato@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", "Programming Language :: Python :: 3 :: Only", "Topic :: System :: Archiving :: Packaging" ], "description": "snap-helpers - Interact with the Snap system within a Snap\n==========================================================\n\n|Latest Version| |Build Status| |Coverage Status| |Documentation Status|\n\n\nA Python library to interact with snap configuration and properties from inside a snap.\n\nIt exposes a top-level ``snaphelpers.Snap`` object which provides access to:\n\n- snap details:\n\n .. code:: python\n\n >>> snap = snaphelpers.Snap()\n >>> snap.name\n 'testapp'\n >>> snap.instance_name\n 'testapp'\n >>> snap.version\n '0+git.fdf80cd'\n >>> snap.revision\n 'x1'\n\n- paths:\n\n .. code:: python\n\n >>> snap.paths.common\n PosixPath('/var/snap/testapp/common')\n >>> snap.paths.data\n PosixPath('/var/snap/testapp/x1')\n >>> snap.paths.snap\n PosixPath('/snap/testapp/x1')\n >>> snap.paths.user_common\n PosixPath('/home/ack/snap/testapp/common')\n >>> snap.paths.user_data\n PosixPath('/home/ack/snap/testapp/x1')\n\n- snap-related environment variables:\n\n .. code:: python\n\n >>> pprint.pprint(dict(snap.environ))\n {'ARCH': 'amd64',\n 'COMMON': '/var/snap/testapp/common',\n 'CONTEXT': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890',\n 'COOKIE': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890',\n 'DATA': '/var/snap/testapp/x1',\n 'INSTANCE_KEY': '',\n 'INSTANCE_NAME': 'testapp',\n 'LIBRARY_PATH': '/var/lib/snapd/lib/gl:/var/lib/snapd/lib/gl32:/var/lib/snapd/void',\n 'NAME': 'testapp',\n 'REEXEC': '',\n 'REVISION': 'x1',\n 'SNAP': '/snap/testapp/x1',\n 'USER_COMMON': '/home/ack/snap/testapp/common',\n 'USER_DATA': '/home/ack/snap/testapp/x1',\n 'VERSION': '0+git.fdf80cd'}\n >>> snap.environ.ARCH\n 'amd64'\n\n- configuration options:\n\n .. code:: python\n\n >>> snap.config.set({'foo.bar': 'baz', 'asdf': 3}) # this needs to be run as root\n >>> options = snap.config.get_options('foo', 'asdf')\n >>> options['foo']\n {'bar': 'baz'}\n >>> options['foo.bar']\n 'baz'\n >>> options['asdf']\n 3\n >>> options.as_dict()\n {'asdf': 3, 'foo': {'bar': 'baz'}}\n\n\n- setting snap health status, along with message and optional status code:\n\n .. code:: python\n\n >>> snap.health.okay()\n >>> snap.health.waiting('foo must happen first', code='wait-foo')\n\n Health status (when different from ``okay``) is visible from the ``snap``\n CLI::\n\n $ snap info snap-helpers\n name: snap-helpers\n summary: Test snap for snap-helpers\n health:\n status: waiting\n message: foo must happen first\n code: wait-foo\n checked: today at 16:23 CEST\n\n\nHook helpers\n------------\n\nThe library provides helpers to reduce boilerplate when setting up hooks for the snap.\n\nHooks can be defined by simply registering functions to be called as hooks via\n``entry_points`` in the application ``setup.py``:\n\n.. code:: python\n\n setup(\n # ...\n entry_points={\n 'snaphelpers.hooks': [\n 'configure = testapp:configure_hook',\n 'install = testapp:install_hook'\n ]\n }\n )\n\nHook functions are called with a ``Snap`` object as argument:\n\n.. code:: python\n\n def install_hook(snap: snaphelpers.Snap):\n # ...\n\n\n def configure_hook(snap: snaphelpers.Snap):\n # ...\n\n\n``snap-helpers`` will take care of the hooks plumbing (i.e. creating hook files\nin ``$SNAP/snap/hooks``).\n\n\nTesting with the snap\n---------------------\n\nThe ``snap-helpers`` snap provides a way to easily test code using the library in\na real snap environment with strict confinement.\n\nIt provides the ``python`` and ``ipython`` commands:\n\n.. code::\n\n $ snap-helpers.python -c 'from pprint import pprint; import snaphelpers; pprint(dict(snaphelpers.SnapEnviron()))'\n {'ARCH': 'amd64',\n 'COMMON': '/var/snap/snap-helpers/common',\n 'CONTEXT': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890',\n 'COOKIE': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890',\n 'DATA': '/var/snap/snap-helpers/x1',\n 'INSTANCE_KEY': '',\n 'INSTANCE_NAME': 'snap-helpers',\n 'LIBRARY_PATH': '/var/lib/snapd/lib/gl:/var/lib/snapd/lib/gl32:/var/lib/snapd/void',\n 'NAME': 'snap-helpers',\n 'REEXEC': '',\n 'REVISION': 'x1',\n 'SNAP': '/snap/snap-helpers/x1',\n 'USER_COMMON': '/home/ack/snap/snap-helpers/common',\n 'USER_DATA': '/home/ack/snap/snap-helpers/x1',\n 'VERSION': '0+git.26e1e9d'}\n\nThe snap can be built and installed as follows:\n\n.. code:: shell\n\n $ snapcraft\n $ sudo snap install --dangerous snap-helpers_*.snap\n\n\nInstallation\n------------\n\n``snap-helpers`` can be installed from PyPI_.\n\nRun:\n\n.. code:: shell\n\n $ pip install snap-helpers\n\n\nDocumentation\n-------------\n\nFull documentation is available on ReadTheDocs_.\n\n\n.. _PyPI: https://pypi.org/\n.. _ReadTheDocs: https://snap-helpers.readthedocs.io/en/latest/\n\n.. |Latest Version| image:: https://img.shields.io/pypi/v/snap-helpers.svg\n :target: https://pypi.python.org/pypi/snap-helpers\n.. |Build Status| image:: https://img.shields.io/travis/albertodonato/snap-helpers.svg\n :target: https://travis-ci.com/albertodonato/snap-helpers\n.. |Coverage Status| image:: https://img.shields.io/codecov/c/github/albertodonato/snap-helpers/master.svg\n :target: https://codecov.io/gh/albertodonato/snap-helpers\n.. |Documentation Status| image:: https://readthedocs.org/projects/snap-helpers/badge/?version=stable\n :target: https://snap-helpers.readthedocs.io/en/stable/?badge=stable", "description_content_type": "", "docs_url": null, "download_url": "https://pypi.org/project/snap-helpers/#files", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/albertodonato/snap-helpers", "keywords": "snap snappy snapcraft", "license": "LGPLv3+", "maintainer": "Alberto Donato", "maintainer_email": "alberto.donato@gmail.com", "name": "snap-helpers", "package_url": "https://pypi.org/project/snap-helpers/", "platform": "", "project_url": "https://pypi.org/project/snap-helpers/", "project_urls": { "Download": "https://pypi.org/project/snap-helpers/#files", "Homepage": "https://github.com/albertodonato/snap-helpers" }, "release_url": "https://pypi.org/project/snap-helpers/0.1.6/", "requires_dist": null, "requires_python": "", "summary": "Helpers for interacting with the Snap system within a Snap", "version": "0.1.6" }, "last_serial": 5852690, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "c852d47b92418d196ae6241977ec7719", "sha256": "0e30849d6cab35cacbd00e8180ea4bd0dffb0fb39e150bd6a168a4798303027a" }, "downloads": -1, "filename": "snap-helpers-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c852d47b92418d196ae6241977ec7719", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16052, "upload_time": "2019-03-09T14:46:36", "url": "https://files.pythonhosted.org/packages/6c/1f/bce769d1e3cc07a9519737d207b7e7f3bca472243bcce4acd307ab1910ca/snap-helpers-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "ae502ebf1b44b7f682e013f0b2c5e698", "sha256": "a64002306ff41dc6f1fade7a0ac2b080ddd63ed57cf593f7ad49f7f17e014246" }, "downloads": -1, "filename": "snap-helpers-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ae502ebf1b44b7f682e013f0b2c5e698", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17723, "upload_time": "2019-03-10T18:10:47", "url": "https://files.pythonhosted.org/packages/c7/cb/fbca46075b5df3d0af79024242b2eb76037aa5140cfc2d11af4781f35017/snap-helpers-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "e1b61ba4423e4ccb86a647c49be15b94", "sha256": "9aca540ab361bd19cc899aa89e823dc3e8ee13aa41eb3185a9ac8b78da612a9b" }, "downloads": -1, "filename": "snap-helpers-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e1b61ba4423e4ccb86a647c49be15b94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17858, "upload_time": "2019-03-12T16:07:41", "url": "https://files.pythonhosted.org/packages/d8/72/c279eb863188acf93848243674936c6ca320f83805be93daf68658822583/snap-helpers-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a4503720f6804d09564bedab40144227", "sha256": "cd43ebc66a7b709b45d175d4a13f17d2e183337d7b5a5a8945e0a5d0b879f027" }, "downloads": -1, "filename": "snap-helpers-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a4503720f6804d09564bedab40144227", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18046, "upload_time": "2019-03-14T11:43:21", "url": "https://files.pythonhosted.org/packages/58/54/4edb7e702b519b2afadffb61e0aa781a3683c48d2656fa90b355cb3b4515/snap-helpers-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "85c7b69bbe49bc978726486f63ece368", "sha256": "b1b1fcf6e32aa234dc2e4b66dfd309d8aea539f044ca70f390ff1437c65ed319" }, "downloads": -1, "filename": "snap-helpers-0.1.3.tar.gz", "has_sig": false, "md5_digest": "85c7b69bbe49bc978726486f63ece368", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16243, "upload_time": "2019-04-29T07:26:46", "url": "https://files.pythonhosted.org/packages/1f/19/e3b624582ee730a8b67b7f4ecc252912b74c9cc66cfe85f0c1358bbebee2/snap-helpers-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "77344a9200d64085253bebb806987aa9", "sha256": "43262fc85863280b3b7a3ddb9626e76f86ae4589dd7f5510636cd982ae2776d9" }, "downloads": -1, "filename": "snap-helpers-0.1.4.tar.gz", "has_sig": false, "md5_digest": "77344a9200d64085253bebb806987aa9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16176, "upload_time": "2019-04-29T08:22:52", "url": "https://files.pythonhosted.org/packages/01/f3/5edbaa4ff322d37b2f3050fa4f07cb3cc8aff89a81de9b217daf18e079ca/snap-helpers-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "00e8267d5ff643d2594d6bd2ec84421f", "sha256": "dbcf4310b0a379f76ecb254990b7bf08714a8560cc84b5a7ac7933807e3a0acf" }, "downloads": -1, "filename": "snap-helpers-0.1.5.tar.gz", "has_sig": false, "md5_digest": "00e8267d5ff643d2594d6bd2ec84421f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16232, "upload_time": "2019-04-29T08:30:20", "url": "https://files.pythonhosted.org/packages/14/35/fd3f6f99608fada7e4946e3879545f99bf5ae91ebb3e9331da432c026df8/snap-helpers-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "bd2a6515e224a0ee46857d01f52dc290", "sha256": "bced67503c36854ed656bc9c9e002b5da4e1cc74da3c865bbcdce54680130489" }, "downloads": -1, "filename": "snap-helpers-0.1.6.tar.gz", "has_sig": false, "md5_digest": "bd2a6515e224a0ee46857d01f52dc290", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17573, "upload_time": "2019-09-18T21:42:23", "url": "https://files.pythonhosted.org/packages/97/de/7d1aadb0dd37a6257fd6266511494ff309c51b975b34315b0e348995c6bf/snap-helpers-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bd2a6515e224a0ee46857d01f52dc290", "sha256": "bced67503c36854ed656bc9c9e002b5da4e1cc74da3c865bbcdce54680130489" }, "downloads": -1, "filename": "snap-helpers-0.1.6.tar.gz", "has_sig": false, "md5_digest": "bd2a6515e224a0ee46857d01f52dc290", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17573, "upload_time": "2019-09-18T21:42:23", "url": "https://files.pythonhosted.org/packages/97/de/7d1aadb0dd37a6257fd6266511494ff309c51b975b34315b0e348995c6bf/snap-helpers-0.1.6.tar.gz" } ] }