{ "info": { "author": "Erik van Widenfelt", "author_email": "ew2789@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "|pypi| |travis| |coverage|\n\ndjango-collect-offline-files\n----------------------------\n\nTransfer ``django_collect_offline`` transactions as files using SFTP over an SSH connection.\n\nData flows from client to server where a server is either a node server or the central server.\n\nsee also ``django_collect_offline``.\n\n\nUsage\n=====\n\nOn the client:\n\n.. code-block:: bash\n\n python manage.py export_transactions\n\n\nOn the server or receiving host:\n\n.. code-block:: bash\n\n python manage.py incoming_observer\n\n python manage.py deserialize_observer\n\n\n**FileQueueObservers**\n\n\nTwo FileQueueObservers do the work using use ``watchdog`` observers; ``IncomingTransactionsFileQueueObserver`` and ``DeserializeTransactionsFileQueueObserver``. They are called using management commands:\n\n.. code-block:: bash\n\n python manage.py incoming_observer\n\nand\n\n.. code-block:: bash\n\n python manage.py deserialize_observer\n\n**IncomingTransactionsFileQueueObserver**\n\n\nThe client exports data to JSON and sends to the server. Using ``TransactionExporter``, data is exported into a JSON file from ``django_collect_offline.models.OutgoingTransaction`` on the client and sent to the server using ``TransactionFileSender``.\n\nOnce a file is sent to the server, the ``IncomingTransactionsFileQueueObserver`` detects it and adds the filename to the queue (``IncomingTransactionsFileQueue``). \n\n**DeserializeTransactionsFileQueue**\n\n\nProcessed files in the queue ``IncomingTransactionsFileQueue`` are moved to the pending folder watched by ``DeserializeTransactionsFileQueueObserver``.and added to the its queue, ``DeserializeTransactionsFileQueue``. \n\n\nProcessing queue items / filenames\n==================================\n\nEach queue has a processor, (see ``process_queue``). The processor calls the ``next_task`` method for each item in the queue in FIFO order infinitely or until it gets a ``None`` item.\n\n\n\n.. |pypi| image:: https://img.shields.io/pypi/v/django-collect-offline-files.svg\n :target: https://pypi.python.org/pypi/django-collect-offline-files\n\n.. |travis| image:: https://travis-ci.org/erikvw/django-collect-offline-files.svg?branch=develop\n :target: https://travis-ci.org/erikvw/django-collect-offline-files\n\n.. |coverage| image:: https://coveralls.io/repos/github/erikvw/django-collect-offline-files/badge.svg?branch=develop\n :target: https://coveralls.io/github/erikvw/django-collect-offline-files?branch=develop\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/erikvw/django-collect-offline-files", "keywords": "django data offline-use", "license": "GPL license, see LICENSE", "maintainer": "", "maintainer_email": "", "name": "django-collect-offline-files", "package_url": "https://pypi.org/project/django-collect-offline-files/", "platform": "", "project_url": "https://pypi.org/project/django-collect-offline-files/", "project_urls": { "Homepage": "https://github.com/erikvw/django-collect-offline-files" }, "release_url": "https://pypi.org/project/django-collect-offline-files/0.1.25/", "requires_dist": [ "djangorestframework", "django-cors-headers", "requests", "paramiko", "hurry.filesize", "watchdog", "django-collect-offline", "edc-device", "edc-identifier" ], "requires_python": "", "summary": "Add file-based data transfer to server for offline-use", "version": "0.1.25" }, "last_serial": 5230480, "releases": { "0.1.18": [ { "comment_text": "", "digests": { "md5": "bda98e7114230e6f6a57f4762e20729d", "sha256": "24efbd09b6e66bf0efd7e15005aff903c57be5ad15716e93c8711c2fc40e6675" }, "downloads": -1, "filename": "django-collect-offline-files-0.1.18.macosx-10.13-x86_64.tar.gz", "has_sig": false, "md5_digest": "bda98e7114230e6f6a57f4762e20729d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76741, "upload_time": "2018-07-20T17:31:04", "url": "https://files.pythonhosted.org/packages/1f/59/8d82ccc0850bf036078c90d7f9b3335aeeeef7ae07caab956096ffe6e414/django-collect-offline-files-0.1.18.macosx-10.13-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "7d4d447d9db4e287f1ffb767a5406447", "sha256": "25d620876fcaeb9a9d5fa0a5c686265dcc7cd7b8c3c61412534e9a05ca685586" }, "downloads": -1, "filename": "django_collect_offline_files-0.1.18-py3-none-any.whl", "has_sig": false, "md5_digest": "7d4d447d9db4e287f1ffb767a5406447", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51895, "upload_time": "2018-07-20T17:31:02", "url": "https://files.pythonhosted.org/packages/5a/e4/12dcbb7bf305f6f396557ad4f2615a7b6a539d7fc70dbc03147b239ffb55/django_collect_offline_files-0.1.18-py3-none-any.whl" } ], "0.1.19": [ { "comment_text": "", "digests": { "md5": "2f0d6b98a5f150ae3e9f6fe21823b323", "sha256": "40d7d8ae3aaa754e0fcb8fd405c9d8db356b7f8e06edb666e430ef76ea7ab0fb" }, "downloads": -1, "filename": "django-collect-offline-files-0.1.19.macosx-10.13-x86_64.tar.gz", "has_sig": false, "md5_digest": "2f0d6b98a5f150ae3e9f6fe21823b323", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77263, "upload_time": "2018-08-01T01:16:25", "url": "https://files.pythonhosted.org/packages/31/99/fc5a52e06cd10a3996de9328dda5d6cf48cfed5a0c07c0bd581942b88fc4/django-collect-offline-files-0.1.19.macosx-10.13-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "94f7d9d214129f926d66d1076e305bb2", "sha256": "2a3f0655363c841c164ff37a8c0fb41b8fefbed1258b603cecb60e5b5aaf20ff" }, "downloads": -1, "filename": "django_collect_offline_files-0.1.19-py3-none-any.whl", "has_sig": false, "md5_digest": "94f7d9d214129f926d66d1076e305bb2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 52505, "upload_time": "2018-08-01T01:16:23", "url": "https://files.pythonhosted.org/packages/99/f4/1b1b4879a316d7a9f9cea7502d4d12afe52f329ae17ec20214e881703cab/django_collect_offline_files-0.1.19-py3-none-any.whl" } ], "0.1.20": [ { "comment_text": "", "digests": { "md5": "035f4c56f04b6acbb6b8b541ec4263b9", "sha256": "37b8003ca0cb46e31b9ae63a3915d185f350ac0b9f92c9d62b9f5469a9b3fb3a" }, "downloads": -1, "filename": "django-collect-offline-files-0.1.20.macosx-10.13-x86_64.tar.gz", "has_sig": false, "md5_digest": "035f4c56f04b6acbb6b8b541ec4263b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77633, "upload_time": "2018-08-02T00:27:23", "url": "https://files.pythonhosted.org/packages/16/02/0825edb0a759d008399d9e243912336495aab413df64db9179ccfc329793/django-collect-offline-files-0.1.20.macosx-10.13-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "68ebe6c0c6c74622ba24c488b2438ca4", "sha256": "1c8df558ace9555ee6f56d1e69529e2a520e1c98f26f42eebb6a95d687aa5c88" }, "downloads": -1, "filename": "django_collect_offline_files-0.1.20-py3-none-any.whl", "has_sig": false, "md5_digest": "68ebe6c0c6c74622ba24c488b2438ca4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 53034, "upload_time": "2018-08-02T00:27:20", "url": "https://files.pythonhosted.org/packages/8e/c7/857c55de0d525f5ea50bd7fe1a3c2afdc290e2c9f6508da29c6a67aa5da3/django_collect_offline_files-0.1.20-py3-none-any.whl" } ], "0.1.21": [ { "comment_text": "", "digests": { "md5": "c404899179d50bcebf453dac3c268d22", "sha256": "fc4e601fb098e55104e24136345d71edb4a349cc21fb7c8c4dca76ff678a360b" }, "downloads": -1, "filename": "django-collect-offline-files-0.1.21.macosx-10.13-x86_64.tar.gz", "has_sig": false, "md5_digest": "c404899179d50bcebf453dac3c268d22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77651, "upload_time": "2018-08-07T21:53:44", "url": "https://files.pythonhosted.org/packages/50/84/d78549cc806bb5eeda135b74bae67ecb1fba94979bc87131dab1ec2e7fa0/django-collect-offline-files-0.1.21.macosx-10.13-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "397751ce255d975fb0f5a5fd0da8f5e0", "sha256": "f71efd8fb39e9fe85eb311b354d0dc2c47b288331fdbfe43ff8ab70c8d43598f" }, "downloads": -1, "filename": "django_collect_offline_files-0.1.21-py3-none-any.whl", "has_sig": false, "md5_digest": "397751ce255d975fb0f5a5fd0da8f5e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 53081, "upload_time": "2018-08-07T21:53:43", "url": "https://files.pythonhosted.org/packages/78/45/77ba23643b6f286342c08e7b5823728bc4db42e2fd550b18d492ed2314fe/django_collect_offline_files-0.1.21-py3-none-any.whl" } ], "0.1.22": [ { "comment_text": "", "digests": { "md5": "98a1550bed974e0f2b814610ec987d9e", "sha256": "cbf0d8abdf52180905bb6a6b778ccb25565e7b9d23a8ad6f6ca855253eac613b" }, "downloads": -1, "filename": "django_collect_offline_files-0.1.22-py3-none-any.whl", "has_sig": false, "md5_digest": "98a1550bed974e0f2b814610ec987d9e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 65931, "upload_time": "2019-03-04T17:43:12", "url": "https://files.pythonhosted.org/packages/ac/d4/7fcb25f8a12653e2f89962bc3dbcced2b9fd92346ab7c6d49b90dcf2a33a/django_collect_offline_files-0.1.22-py3-none-any.whl" } ], "0.1.23": [ { "comment_text": "", "digests": { "md5": "c0947b5cb552376d20850a7b107e5ff6", "sha256": "4bb94ddcee6f278424d57ef3e24e5074e24c911a2715bcd44e525d13499c8052" }, "downloads": -1, "filename": "django_collect_offline_files-0.1.23-py3-none-any.whl", "has_sig": false, "md5_digest": "c0947b5cb552376d20850a7b107e5ff6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 66684, "upload_time": "2019-03-12T15:49:55", "url": "https://files.pythonhosted.org/packages/e4/e5/baba0276fda56b6d2090c1e5c5a918ff82384eef6c21c4d4e610d2c53bda/django_collect_offline_files-0.1.23-py3-none-any.whl" } ], "0.1.24": [ { "comment_text": "", "digests": { "md5": "62944083a9a3cc77311bdff308bae1df", "sha256": "ca4f5a17acdc96cb14e9eab6d011f0c1258f9e2a026db5715445be4d62df4abe" }, "downloads": -1, "filename": "django_collect_offline_files-0.1.24-py3-none-any.whl", "has_sig": false, "md5_digest": "62944083a9a3cc77311bdff308bae1df", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 66436, "upload_time": "2019-04-08T04:17:44", "url": "https://files.pythonhosted.org/packages/ff/ae/2125c435b5841a5efd83ffbe43520e9fe4e04e68baf59f6df5139b9c8d8a/django_collect_offline_files-0.1.24-py3-none-any.whl" } ], "0.1.25": [ { "comment_text": "", "digests": { "md5": "5bb68dd53e26cd9b255cc2563039fe41", "sha256": "42da0d56927453b4752514b94a2fab21f16ceafe757bb9bc4b8546f0bbbbe193" }, "downloads": -1, "filename": "django_collect_offline_files-0.1.25-py3-none-any.whl", "has_sig": false, "md5_digest": "5bb68dd53e26cd9b255cc2563039fe41", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 64292, "upload_time": "2019-05-06T03:00:08", "url": "https://files.pythonhosted.org/packages/b5/45/6f22523e65900b964b18cb39f7c872fa1548d1fbcc938cc8493974ae7d08/django_collect_offline_files-0.1.25-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5bb68dd53e26cd9b255cc2563039fe41", "sha256": "42da0d56927453b4752514b94a2fab21f16ceafe757bb9bc4b8546f0bbbbe193" }, "downloads": -1, "filename": "django_collect_offline_files-0.1.25-py3-none-any.whl", "has_sig": false, "md5_digest": "5bb68dd53e26cd9b255cc2563039fe41", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 64292, "upload_time": "2019-05-06T03:00:08", "url": "https://files.pythonhosted.org/packages/b5/45/6f22523e65900b964b18cb39f7c872fa1548d1fbcc938cc8493974ae7d08/django_collect_offline_files-0.1.25-py3-none-any.whl" } ] }