{ "info": { "author": "Eric Goller", "author_email": "eric.goller@ninjaduck.solutions", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4" ], "description": "===============================\nhamster-dbus\n===============================\n\nA dbus interface to ``hamster-lib``.\n\n* Free software: GPL3\n* Documentation: https://hamster-dbus.readthedocs.org.\n\n\nHow to use\n-----------\n\n``hamster-dbus`` provides two very different but related functionalities.\n\n1. ``hamster_dbus.objects`` provides several dbus object subclasses that can\n be used to export services over dbus that in effect expose ``hamster-lib``\n to over dbus.\n\n2. ``hamster_dbus.storage`` contains ``DBusStore`` which can be used as a valid\n backend for ``hamster-lib`` that can communicate with the objects defined in\n ``hamster_dbus.objects``. This means any client that supports\n ``hamster-lib`` can use this backend (instead of the default SQLAlchemy one\n for example) to easily make their clients use an available dbus service\n instead of handling the backend functionality itself via SQLAlchemy.\n\nThese two aspects are independent of each other but are two opposing sides\n(server and client of sorts) of the same medal.\n\nOn top of this, a primitive example dbus-service executeable\n(``hamster_dbus_service.py``) has been included that can be used to get a\nminimal hamster-dbus service running in no time.\n\nTesting & Coverage\n-------------------\n\nThe ``hamster-dbus`` project strives to provide maintainable, well documented\nand tested code. To this end we do provide a basic test suite that is actively\nmaintained and aims to provide >90% coverage.\nUnfortunately we currently lack the insight into glib/dbus best practices with\nregards to testing and our current ``pytest`` based solution does only somewhat\nwork. The main problem is providing an isolated environment for actual unit\ntesting (not integration tests).\nThe way we handle things right now is by providing a dedicated fixture that\nlaunches a separate session bus in a new process that our \"objects to be\ntested\" get hooked into. While this works most of the time there are two\npractical issues here (besides not being proper unit tests):\n\n1. You may see an error like this when running the test suite::\n\n [xcb] Unknown sequence number while processing queue\n [xcb] Most likely this is a multi-threaded client and XInitThreads has not \\\n been called\n [xcb] Aborting, sorry about that.\n\n Whilst we do not really understand whats going on this is most likely due\n to the fact that the new spawned session bus process is seperate from the\n actual main look.\n\n2. ``coverage`` will report most of the \"object\" code as untested despite\n various tests executing their methods. This may be because those methods are\n \"shadowed\" by the ``@method`` decorator. Again, we lack the insight to deal\n with this right now.\n\nSo if you have any hints, pointers or even PRs that can help us improving our\ntest setup we would be most grateful! Until then we will not be able to\nautomatically run the test suite on a CI server which greatly limits our QA :(\n\nTo run the test suite locally, just execute the following within your\nvirtualenv (after ``make develop``)::\n\n make test\n\nSidenote About Testing Signals\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nSo far we have not managed to establish a proper way of testing signals.\nIn order to manually check if they are emitted as expected you may use the\nfollowing (``dbus-monitor`` needs to be installed)::\n\n dbus-monitor \"type='signal',sender='org.projecthamster.HamsterDBus',interface='org.projecthamster.HamsterDBus1'\n\n\nCredits\n---------\n\nTools used in rendering this package:\n\n* Cookiecutter_\n* `cookiecutter-pypackage`_\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n\n\n\n\nHistory\n-------\n\n0.10.0 (2016-04-26)\n---------------------\n\n* First release on PyPI.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/elbenfreund/hamster-dbus", "keywords": "hamster-dbus", "license": "GPL3", "maintainer": "", "maintainer_email": "", "name": "hamster-dbus", "package_url": "https://pypi.org/project/hamster-dbus/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/hamster-dbus/", "project_urls": { "Homepage": "https://github.com/elbenfreund/hamster-dbus" }, "release_url": "https://pypi.org/project/hamster-dbus/0.10.0/", "requires_dist": null, "requires_python": "", "summary": "A dbus interface to hamster-lib.", "version": "0.10.0" }, "last_serial": 2920282, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "93fdd5fa8a519fbbb1f1fc2be02cf431", "sha256": "47752a047e7f8245120bc72dc1bc73248e84c1f7608bf1086419ce068f4a558c" }, "downloads": -1, "filename": "hamster_dbus-0.10.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "93fdd5fa8a519fbbb1f1fc2be02cf431", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19196, "upload_time": "2017-06-02T13:47:16", "url": "https://files.pythonhosted.org/packages/b9/56/8e84d9f440cd5225cb566a04d9be2a56328630d20127ad4bf5f865f33478/hamster_dbus-0.10.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f324eea42a2de9751814b25122b4935", "sha256": "e674e0392ef021d1544f6c50b9769169db7128596d3f653a35caa62b557a0507" }, "downloads": -1, "filename": "hamster-dbus-0.10.0.tar.gz", "has_sig": true, "md5_digest": "3f324eea42a2de9751814b25122b4935", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45532, "upload_time": "2017-06-02T13:47:19", "url": "https://files.pythonhosted.org/packages/04/eb/4d4a0d90a4a3541133f2847adb495725bfb552cf8f7d227c5bc9aa536d01/hamster-dbus-0.10.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "93fdd5fa8a519fbbb1f1fc2be02cf431", "sha256": "47752a047e7f8245120bc72dc1bc73248e84c1f7608bf1086419ce068f4a558c" }, "downloads": -1, "filename": "hamster_dbus-0.10.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "93fdd5fa8a519fbbb1f1fc2be02cf431", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19196, "upload_time": "2017-06-02T13:47:16", "url": "https://files.pythonhosted.org/packages/b9/56/8e84d9f440cd5225cb566a04d9be2a56328630d20127ad4bf5f865f33478/hamster_dbus-0.10.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f324eea42a2de9751814b25122b4935", "sha256": "e674e0392ef021d1544f6c50b9769169db7128596d3f653a35caa62b557a0507" }, "downloads": -1, "filename": "hamster-dbus-0.10.0.tar.gz", "has_sig": true, "md5_digest": "3f324eea42a2de9751814b25122b4935", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45532, "upload_time": "2017-06-02T13:47:19", "url": "https://files.pythonhosted.org/packages/04/eb/4d4a0d90a4a3541133f2847adb495725bfb552cf8f7d227c5bc9aa536d01/hamster-dbus-0.10.0.tar.gz" } ] }