{ "info": { "author": "G.Ted", "author_email": "gted221@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "===========\ngblackboard\n===========\n\n\n.. image:: https://img.shields.io/pypi/v/gblackboard.svg\n :target: https://pypi.python.org/pypi/gblackboard\n\n.. image:: https://img.shields.io/travis/GTedHa/gblackboard.svg\n :target: https://travis-ci.org/GTedHa/gblackboard\n\n.. image:: https://readthedocs.org/projects/gblackboard/badge/?version=latest\n :target: https://gblackboard.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n\n\n\nBlackboard pattern implementation\n\n\n* Free software: MIT license\n* Documentation: https://gblackboard.readthedocs.io.\n* Repository: https://github.com/GTedHa/gblackboard\n\n\nFeatures\n-------\n\n* To be updated\n* Refer to 'Usage'\n\n\nUsage\n-------\n\nTo use gblackboard in a project:\n\n- basic usage::\n\n.. code-block:: python\n\n from gblackboard import Blackboard\n from gblackboard import SupportedMemoryType\n\n blackboard = Blackboard(SupportedMemoryType.DICTIONARY)\n # Set a key-value data;\n # `set` method should be called only once for a key.\n # It's a kind of initialization for data.\n blackboard.set('key', 'value')\n # Retrieve data with key.\n value = blackboard.get('key')\n # Update data with new value;\n # `update` method should be called\n # after `set` method called for a key.\n blackboard.update('key', 'new_value')\n # Delete data from blackboard with key.\n blackboard.drop('key')\n # Clear all data in blackboard.\n blackboard.clear()\n\n\n- observer::\n\n.. code-block:: python\n\n from gblackboard import Blackboard\n from gblackboard import SupportedMemoryType\n\n def callback(data):\n print(data)\n\n blackboard = Blackboard(SupportedMemoryType.DICTIONARY)\n blackboard.set('key', 'value')\n # Register `callback` function as a callback.\n blackboard.register_callback('key', callback)\n # Update data;\n # `callback` function will be called during `update`,\n # and `new_value` will passed to `callback` function.\n blackboard.update('key', 'new_value')\n\n\n- complex data::\n\n.. code-block:: python\n\n from gblackboard import Blackboard\n from gblackboard import SupportedMemoryType\n\n import datetime as dt\n\n class User(object):\n\n def __init__(self, name, email):\n self.name = name\n self.email = email\n self.created_at = dt.datetime.now()\n\n def __repr__(self):\n return ''.format(self=self)\n\n blackboard = Blackboard(SupportedMemoryType.DICTIONARY)\n\n # You can also store customized class objects in blackboard.\n blackboard.set('user', User(\"G.Ted\", \"gted221@gmail.com\"))\n user = blackboard.get('user')\n print(user)\n # will be printed.\n\n # List of complex objects is also supported.\n blackboard.set('users',\n [\n User(\"User1\", \"user1@gblackboard.com\"),\n User(\"User2\", \"user2@gblackboard.com\"),\n ]\n )\n users = blackboard.get('users')\n print(users)\n # [, ] will be printed.\n\n\n- save & load::\n\n.. code-block:: python\n\n from gblackboard import Blackboard\n from gblackboard import SupportedMemoryType\n\n import datetime as dt\n\n class User(object):\n\n def __init__(self, name, email):\n self.name = name\n self.email = email\n self.created_at = dt.datetime.now()\n\n def __repr__(self):\n return ''.format(self=self)\n\n blackboard = Blackboard(SupportedMemoryType.DICTIONARY)\n # Store sample data\n blackboard.set('user', User(\"G.Ted\", \"gted221@gmail.com\"))\n # Save current blackboard contents as file.\n blackboard.save()\n # Close current blackboard;\n # this means clear all data in blackboard\n blackboard.close()\n # ------------------------------------------------------------\n blackboard = Blackboard(SupportedMemoryType.DICTIONARY)\n # Load saved blackboard contents from files.\n blackboard.load()\n user = blackboard.get('user')\n print(user)\n # will be printed.\n\n\nTODO\n-------\n\n* `Save & Load` on subprocess\n* Validation for Redis configurations\n* Print blackboard contents for debugging\n\n\nCredits\n-------\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n\n\n=======\nHistory\n=======\n\n0.1.0 (2019-01-24)\n------------------\n\n* First commit on GitHub.\n\n\n0.1.1 (2019-01-30)\n------------------\n\n* Add fakeredis for test\n\n\n0.2.0 (2019-02-16)\n------------------\n\n* Eliminates the limitations of supported data types.\n* Change object serialization method for storing data from JSON serialization method using marshmallow (external)\n library to serialization method using pickle library.\n* Replace CRUD methods of redis with Hash-CRUD methods\n - set(key, value) -> hset('gblackboard', key, value)\n - get(key) -> hget('gblackboard', key)\n - delete(key) -> hdel('gblackboard', key)\n - exists(key) -> hexists('gblackboard', key)\n* Remove useless setup() step and mem_ready status\n* Add raise_conn_error (raise 'connection error') decorator for RedisWrapper CRUD methods\n* Add save & load features\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/GTedHa/gblackboard", "keywords": "gblackboard", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "gblackboard", "package_url": "https://pypi.org/project/gblackboard/", "platform": "", "project_url": "https://pypi.org/project/gblackboard/", "project_urls": { "Homepage": "https://github.com/GTedHa/gblackboard" }, "release_url": "https://pypi.org/project/gblackboard/0.2.2/", "requires_dist": [ "Click (>=6.0)", "redis (>=3.0.0)" ], "requires_python": "", "summary": "Blackboard pattern implementation", "version": "0.2.2" }, "last_serial": 4923618, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "87d0565e50af8929d4fef0a645b310d0", "sha256": "80be60173c092fe3985872662d9c037f85b6639a19ce7fae8c13448e468e8ddb" }, "downloads": -1, "filename": "gblackboard-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "87d0565e50af8929d4fef0a645b310d0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10385, "upload_time": "2019-01-30T15:40:49", "url": "https://files.pythonhosted.org/packages/4d/04/b36f449a1ba4a621ff507ef3b16777372056b07ccd4f7e857b09802af82b/gblackboard-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15b6d2312c8a21392929b81d4ded3359", "sha256": "e73adcc746fa3a9cb699af2e606ae27b5c25b3c9ba0023f9496312ebd0a330d8" }, "downloads": -1, "filename": "gblackboard-0.1.1.tar.gz", "has_sig": false, "md5_digest": "15b6d2312c8a21392929b81d4ded3359", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22455, "upload_time": "2019-01-30T15:40:51", "url": "https://files.pythonhosted.org/packages/3a/97/483a68a0961d6604cb89048ebe20daba229bcb78145bc0eb8ce780da2958/gblackboard-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "e271c88c1f8c5edfcfe00a7eed4882f1", "sha256": "3593a16680633d2e445a540163816b9a9ee4de1762b6fc5add441b7770ec4722" }, "downloads": -1, "filename": "gblackboard-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e271c88c1f8c5edfcfe00a7eed4882f1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10373, "upload_time": "2019-02-16T03:20:03", "url": "https://files.pythonhosted.org/packages/d2/12/706995fa4123b7a3d8dfd0397469a927da4b168331bc1d74f85977191e7c/gblackboard-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6a89eefeeab0ac25cf21975be4ba81f", "sha256": "9632eb199d7ce21185172d3d0b906487a7d0c91cae25a06ca839dc9a4f768500" }, "downloads": -1, "filename": "gblackboard-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b6a89eefeeab0ac25cf21975be4ba81f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17681, "upload_time": "2019-02-16T03:20:04", "url": "https://files.pythonhosted.org/packages/ce/6b/c8a18c035baefdfaa8e35cf630dbad8a3c10637c512e34601359e032412f/gblackboard-0.2.0.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "6f950e375458f696340eb35096070e45", "sha256": "359e86fc010fe528602169b7b96ca3234fab706602a12ae801cb60ce0eef61db" }, "downloads": -1, "filename": "gblackboard-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6f950e375458f696340eb35096070e45", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10319, "upload_time": "2019-03-11T05:12:54", "url": "https://files.pythonhosted.org/packages/b2/71/6f16bcbf3c948f9c2ecc29eb8443920a8231c3aa69ee0201c2512424f499/gblackboard-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9813867b722482bb65b93446eeb7b1b2", "sha256": "16d1d7006c6126c18d1457d3bc6d475b3058f8522bf0d5b618c834ce7b23d9a2" }, "downloads": -1, "filename": "gblackboard-0.2.2.tar.gz", "has_sig": false, "md5_digest": "9813867b722482bb65b93446eeb7b1b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17654, "upload_time": "2019-03-11T05:12:55", "url": "https://files.pythonhosted.org/packages/ec/09/ffb3a1ebfe02f2f8219f34b6f8b93fd9014b8fc62453741e7673d6a13b5b/gblackboard-0.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6f950e375458f696340eb35096070e45", "sha256": "359e86fc010fe528602169b7b96ca3234fab706602a12ae801cb60ce0eef61db" }, "downloads": -1, "filename": "gblackboard-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6f950e375458f696340eb35096070e45", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10319, "upload_time": "2019-03-11T05:12:54", "url": "https://files.pythonhosted.org/packages/b2/71/6f16bcbf3c948f9c2ecc29eb8443920a8231c3aa69ee0201c2512424f499/gblackboard-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9813867b722482bb65b93446eeb7b1b2", "sha256": "16d1d7006c6126c18d1457d3bc6d475b3058f8522bf0d5b618c834ce7b23d9a2" }, "downloads": -1, "filename": "gblackboard-0.2.2.tar.gz", "has_sig": false, "md5_digest": "9813867b722482bb65b93446eeb7b1b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17654, "upload_time": "2019-03-11T05:12:55", "url": "https://files.pythonhosted.org/packages/ec/09/ffb3a1ebfe02f2f8219f34b6f8b93fd9014b8fc62453741e7673d6a13b5b/gblackboard-0.2.2.tar.gz" } ] }