{ "info": { "author": "b3j0f", "author_email": "jlabejof@yahoo.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: French", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.0", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development", "Topic :: Utilities" ], "description": "Description\n===========\n\nThis system is dedicated to help to synchronize data of resources.\n\n.. image:: https://img.shields.io/pypi/l/b3j0f.sync.svg\n :target: https://pypi.python.org/pypi/b3j0f.sync/\n :alt: License\n\n.. image:: https://img.shields.io/pypi/status/b3j0f.sync.svg\n :target: https://pypi.python.org/pypi/b3j0f.sync/\n :alt: Development Status\n\n.. image:: https://img.shields.io/pypi/v/b3j0f.sync.svg\n :target: https://pypi.python.org/pypi/b3j0f.sync/\n :alt: Latest release\n\n.. image:: https://img.shields.io/pypi/pyversions/b3j0f.sync.svg\n :target: https://pypi.python.org/pypi/b3j0f.sync/\n :alt: Supported Python versions\n\n.. image:: https://img.shields.io/pypi/implementation/b3j0f.sync.svg\n :target: https://pypi.python.org/pypi/b3j0f.sync/\n :alt: Supported Python implementations\n\n.. image:: https://img.shields.io/pypi/wheel/b3j0f.sync.svg\n :target: https://travis-ci.org/b3j0f/sync\n :alt: Download format\n\n.. image:: https://travis-ci.org/b3j0f/sync.svg?branch=master\n :target: https://travis-ci.org/b3j0f/sync\n :alt: Build status\n\n.. image:: https://coveralls.io/repos/b3j0f/sync/badge.png\n :target: https://coveralls.io/r/b3j0f/sync\n :alt: Code test coverage\n\n.. image:: https://img.shields.io/pypi/dm/b3j0f.sync.svg\n :target: https://pypi.python.org/pypi/b3j0f.sync/\n :alt: Downloads\n\n.. image:: https://readthedocs.org/projects/b3j0fsync/badge/?version=master\n :target: https://readthedocs.org/projects/b3j0fsync/?badge=master\n :alt: Documentation Status\n\n.. image:: https://landscape.io/github/b3j0f/sync/master/landscape.svg?style=flat\n :target: https://landscape.io/github/b3j0f/sync/master\n :alt: Code Health\n\nLinks\n=====\n\n- `Homepage`_\n- `PyPI`_\n- `Documentation`_\n\nInstallation\n============\n\npip install b3j0f.sync\n\nFeatures\n========\n\nThe global architecture is composed of four classes:\n\n- Synchronizer: class which is linked to several stores in order to propagate data CRUD operations on these last ones.\n- Store: class which represents a set of data, and uses one Accessor per data type in order to access to self data.\n- Accessor: class which permits to access and create data.\n- Data: specific to an accessor, it is the abstraction class used to exchange data information among stores.\n\nTherefore, one Store can be used by several synchronizers, and one Accessor can be used by several Stores.\n\nThe Synchronizer and the Store are configurables (see `b3j0f.conf`_). Configuration files are installed in the ``~/etc/`` directory.\n\nIf you want to specialize this system to your own needs, you have to extend abstract classes with implementation of 6 CRUD methods for the Accessor.\n\nThe system does not use semantical mechanisms, therefore, the system is in a **best effort** mode instead to be exhaustive.\n\nExamples\n--------\n\n- `b3j0f.dmts`_: development management tool synchronizer.\n\nLimitations\n===========\n\nName limitation\n---------------\n\nIn order to ensure data consistency among several stores, the system choose to find any data from its name and context name (aka, name of embedding data).\n\nTherefore, this system is not able to synchronize data which are of the same type of other data, in the same context, and with the same name.\n\nPerspectives\n============\n\n- break the `name limitation`_ with a store dedicated to ensure correspondance between store data ids.\n- use a data id of type int instead of type str, for memory reasons.\n- wait feedbacks during 6 months before passing it to a stable version.\n- Cython implementation.\n\nDonation\n========\n\n.. image:: https://cdn.rawgit.com/gratipay/gratipay-badge/2.3.0/dist/gratipay.png\n :target: https://gratipay.com/b3j0f/\n :alt: I'm grateful for gifts, but don't have a specific funding goal.\n\n.. _Homepage: https://github.com/b3j0f/sync\n.. _Documentation: http://b3j0fsync.readthedocs.org/en/master/\n.. _PyPI: https://pypi.python.org/pypi/b3j0f.sync/\n\n.. _`b3j0f.conf`: https://github.com/b3j0f/conf\n.. _`b3j0f.dmts`: https://github.com/b3j0f/dmts", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/b3j0f/sync", "keywords": "utils,tools,development,synchronizer,design pattern,sync,observer,model,interoperability", "license": "MIT License", "maintainer": null, "maintainer_email": null, "name": "b3j0f.sync", "package_url": "https://pypi.org/project/b3j0f.sync/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/b3j0f.sync/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/b3j0f/sync" }, "release_url": "https://pypi.org/project/b3j0f.sync/0.0.3/", "requires_dist": null, "requires_python": null, "summary": "Synchronizer design pattern library", "version": "0.0.3" }, "last_serial": 1748183, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "8468d6a54e85cb7bfba5b99af8e926d5", "sha256": "2828a2dfbaa0e09e76f35bb9a2854bb983f9406f9911388bfd07791485c5f5f1" }, "downloads": -1, "filename": "b3j0f.sync-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8468d6a54e85cb7bfba5b99af8e926d5", "packagetype": "bdist_wheel", "python_version": "2.6", "requires_python": null, "size": 25169, "upload_time": "2015-09-29T13:08:53", "url": "https://files.pythonhosted.org/packages/fb/17/e72647a66b45210cc0125e4a89e309aa4463ba49fb9778ad3fbecd5ffdf0/b3j0f.sync-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7aa9700d97bfa1ff37f879ee0a3c389a", "sha256": "b650549c78b997a3ce1d232a07be89e7a8ee55d9375ca91546a8c738c1b76dfc" }, "downloads": -1, "filename": "b3j0f.sync-0.0.1.tar.gz", "has_sig": false, "md5_digest": "7aa9700d97bfa1ff37f879ee0a3c389a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13720, "upload_time": "2015-09-29T13:08:48", "url": "https://files.pythonhosted.org/packages/c4/19/748bb651b545cf0fa1606c0279eb7135ea641195cbc818fa7ae56d1d6e56/b3j0f.sync-0.0.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "16e711ad0af5e83efe26d0d1321d1d19", "sha256": "ca70f9d2da9687861384b6a203327eb2698d6b50e116215f20a60c5425c38f10" }, "downloads": -1, "filename": "b3j0f.sync-0.0.1.zip", "has_sig": false, "md5_digest": "16e711ad0af5e83efe26d0d1321d1d19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28445, "upload_time": "2015-09-29T13:08:43", "url": "https://files.pythonhosted.org/packages/fc/cf/cb804acc2e34cbbe492fed8c613bae34bf6e22f339143f700d907fad48f0/b3j0f.sync-0.0.1.zip" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "2cbf724e8cf26d36d521f2ed06ea5e71", "sha256": "c13271674ab358bc27567093bd9ae3921664622b7e9b26199b6b0256a96e4c74" }, "downloads": -1, "filename": "b3j0f.sync-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2cbf724e8cf26d36d521f2ed06ea5e71", "packagetype": "bdist_wheel", "python_version": "2.6", "requires_python": null, "size": 26334, "upload_time": "2015-09-30T00:51:14", "url": "https://files.pythonhosted.org/packages/4d/a5/11a98b1b55050ab0b885f14b48b21471ac68b5697ab319f95a11f9f0e93f/b3j0f.sync-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "55d1a18826c2ae0b9970de5e0a255932", "sha256": "77d97d02db5d16b30b95c694bf3c00d3188b80e0870435fc6536167c3dfbf0e0" }, "downloads": -1, "filename": "b3j0f.sync-0.0.2.tar.gz", "has_sig": false, "md5_digest": "55d1a18826c2ae0b9970de5e0a255932", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14614, "upload_time": "2015-09-30T00:51:09", "url": "https://files.pythonhosted.org/packages/6e/dc/267c6324e834c2b27857d8f384f3fd98f5db6bdcdb657cf31fd54098604f/b3j0f.sync-0.0.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "50e76202b5f36bff845932ba235edb00", "sha256": "e8e40a818d63c18b3c10a00eb47293eb757742a33fd4992be844c89a40c63eba" }, "downloads": -1, "filename": "b3j0f.sync-0.0.2.zip", "has_sig": false, "md5_digest": "50e76202b5f36bff845932ba235edb00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29882, "upload_time": "2015-09-30T00:51:01", "url": "https://files.pythonhosted.org/packages/bd/04/d8aef1bbc3c3f8c9ce89c9b40d840775695a7531f93d2f6869fe888783f3/b3j0f.sync-0.0.2.zip" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "3963fab78f5cffc1767fb1185c775887", "sha256": "a79495b2fae46e4da90f580a17e30f3e1644dbac04ac2fac325d076e767dd7d8" }, "downloads": -1, "filename": "b3j0f.sync-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3963fab78f5cffc1767fb1185c775887", "packagetype": "bdist_wheel", "python_version": "2.6", "requires_python": null, "size": 28695, "upload_time": "2015-10-02T01:39:16", "url": "https://files.pythonhosted.org/packages/72/81/86b454499a3141456a570c0a1190662849021f3e660379c447ab779c2459/b3j0f.sync-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c73b43ff212262793af8e321fa402333", "sha256": "2a2db6756bddb160702fd8507e9b2469bb22529cf6db763fda085a2c8b55d8af" }, "downloads": -1, "filename": "b3j0f.sync-0.0.3.tar.gz", "has_sig": false, "md5_digest": "c73b43ff212262793af8e321fa402333", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15696, "upload_time": "2015-10-02T01:39:11", "url": "https://files.pythonhosted.org/packages/bb/63/47064641e15089d30c775cd83821df981cadace6e75ada38d10a315396bd/b3j0f.sync-0.0.3.tar.gz" }, { "comment_text": "", "digests": { "md5": "4a4a060b7ccda0a309dbf5fc50e538e2", "sha256": "77f57dd69ac0bbafcef199402d4286513ce704efc08a28cce1b962ff8d037069" }, "downloads": -1, "filename": "b3j0f.sync-0.0.3.zip", "has_sig": false, "md5_digest": "4a4a060b7ccda0a309dbf5fc50e538e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32333, "upload_time": "2015-10-02T01:39:06", "url": "https://files.pythonhosted.org/packages/0a/3b/3c676b967449918b24790fc0240062d225bda876a181c8ea21da320bc92a/b3j0f.sync-0.0.3.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3963fab78f5cffc1767fb1185c775887", "sha256": "a79495b2fae46e4da90f580a17e30f3e1644dbac04ac2fac325d076e767dd7d8" }, "downloads": -1, "filename": "b3j0f.sync-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3963fab78f5cffc1767fb1185c775887", "packagetype": "bdist_wheel", "python_version": "2.6", "requires_python": null, "size": 28695, "upload_time": "2015-10-02T01:39:16", "url": "https://files.pythonhosted.org/packages/72/81/86b454499a3141456a570c0a1190662849021f3e660379c447ab779c2459/b3j0f.sync-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c73b43ff212262793af8e321fa402333", "sha256": "2a2db6756bddb160702fd8507e9b2469bb22529cf6db763fda085a2c8b55d8af" }, "downloads": -1, "filename": "b3j0f.sync-0.0.3.tar.gz", "has_sig": false, "md5_digest": "c73b43ff212262793af8e321fa402333", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15696, "upload_time": "2015-10-02T01:39:11", "url": "https://files.pythonhosted.org/packages/bb/63/47064641e15089d30c775cd83821df981cadace6e75ada38d10a315396bd/b3j0f.sync-0.0.3.tar.gz" }, { "comment_text": "", "digests": { "md5": "4a4a060b7ccda0a309dbf5fc50e538e2", "sha256": "77f57dd69ac0bbafcef199402d4286513ce704efc08a28cce1b962ff8d037069" }, "downloads": -1, "filename": "b3j0f.sync-0.0.3.zip", "has_sig": false, "md5_digest": "4a4a060b7ccda0a309dbf5fc50e538e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32333, "upload_time": "2015-10-02T01:39:06", "url": "https://files.pythonhosted.org/packages/0a/3b/3c676b967449918b24790fc0240062d225bda876a181c8ea21da320bc92a/b3j0f.sync-0.0.3.zip" } ] }