{
"info": {
"author": "Eero Paukkonen",
"author_email": "eero.paukkonen@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"Framework :: Django",
"Framework :: Django :: 1.10",
"Framework :: Django :: 1.8",
"Framework :: Django :: 1.9",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7"
],
"description": "========================\r\ndjango_celery_async_view\r\n========================\r\n\r\n.. image:: https://travis-ci.org/EeroPaukkonen/django_celery_async_view.svg?branch=master\r\n :target: https://travis-ci.org/EeroPaukkonen/django_celery_async_view\r\n\r\n.. image:: https://codecov.io/gh/EeroPaukkonen/django_celery_async_view/branch/master/graph/badge.svg\r\n :target: https://codecov.io/gh/EeroPaukkonen/django_celery_async_view\r\n\r\nAsynchronously load view or download file in django.\r\nThis is done by rendering view or creating file in celery task and polling it in javascript.\r\n\r\n-------------\r\nDocumentation\r\n-------------\r\n\r\nThe full documentation is at https://django_celery_async_view.readthedocs.io.\r\n\r\n----------\r\nQuickstart\r\n----------\r\n\r\nInstall django_celery_async_view::\r\n\r\n pip install django_celery_async_view\r\n\r\nAdd it to your `INSTALLED_APPS`:\r\n\r\n.. code-block:: python\r\n\r\n INSTALLED_APPS = (\r\n ...\r\n 'django_celery_async_view',\r\n ...\r\n )\r\n\r\nFeatures\r\n========\r\n\r\nThis package includes two separate features: AsyncView and AsyncDownload.\r\n\r\nAsyncView\r\n---------\r\nexample_app.views.py\r\n\r\n.. code-block:: python\r\n\r\n class ExampleView(AsyncDownloadView):\r\n task = example_view_task\r\n\r\nexample_app.tasks.py\r\n\r\n.. code-block:: python\r\n\r\n @shared_task\r\n def example_view_task(user_id):\r\n return AsyncViewReturnHTML().run(\r\n user_id=user_id,\r\n html_string=create_html_example(...)\r\n )\r\n\r\nexample_download_page.html\r\n\r\n.. code-block:: html\r\n\r\n \r\n \r\n \r\n \r\n\r\nAsyncDownload\r\n-------------\r\n\r\nexample_app.views.py\r\n\r\n.. code-block:: python\r\n\r\n class ExampleDownloadView(AsyncDownloadView):\r\n task = my_download_task\r\n\r\nexample_async_page.html\r\n\r\n.. code-block:: html\r\n\r\n \r\n\r\n \r\n\r\nexample_app.tasks.py\r\n\r\n.. code-block:: python\r\n\r\n @shared_task\r\n def example_download_task(*args, **kwargs):\r\n return MyDownloadCreateFile().run(*args, **kwargs)\r\n\r\n class ExampleDownloadCreateFile(AbstractAsyncDownloadCreateFile):\r\n def create_file(self, some_arg):\r\n # do stuff to create:\r\n # file_content, filename, mimetype\r\n return file_content, filename, mimetype\r\n\r\nexample_download_page.html\r\n\r\n.. code-block:: html\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\nConfigurations\r\n==============\r\n\r\nsettings.py\r\n\r\n.. code-block:: python\r\n\r\n ASYNC_VIEW_TEMP_FILE_DURATION_MS = 10 * 60 * 1000 # 10min\r\n\r\n-----------------------\r\nRunning Example Project\r\n-----------------------\r\n\r\nRequires redis.\r\nDoes not require postgres (tests require postgres)\r\n\r\n::\r\n\r\n # setup\r\n # install redis\r\n cd example\r\n virtualenv venv\r\n source venv/bin/activate\r\n pip install -r requirements.txt\r\n python manage.py migrate\r\n\r\n # run:\r\n # run redis (if not running)\r\n celery worker -A example\r\n python manage.py runserver\r\n\r\n\r\n-------------\r\nRunning Tests\r\n-------------\r\n\r\nTests are run against example project?\r\nTests require postgres and\r\n\r\n A) env var POSTGRES_PASSWORD set\r\n B) or no postgres server authentication\r\n\r\n::\r\n\r\n virtualenv venv\r\n source venv/bin/activate\r\n (myenv) $ pip install tox\r\n (myenv) $ tox\r\n\r\n-----------\r\nDevelopment\r\n-----------\r\n\r\nWhat needs to be fixed for Python3 support\r\n==========================================\r\n\r\n1) copy celerytest project and set celerytest.__init__ imports to absolute\r\n\r\n::\r\n\r\n celerytest.__init__.py:1: in \r\n from config import CELERY_TEST_CONFIG, CELERY_TEST_CONFIG_MEMORY\r\n ImportError: No module named 'config'\r\n\r\n2) AsyncResult(task_id).wait(timeout=5, interval=0.5) and possibly result.get() will break.\r\n\r\n::\r\n\r\n example\\example\\tests\\test_async_views.py:50: in phase3\r\n example_view_task.AsyncResult(task_id).wait(timeout=5, interval=0.5)\r\n\r\n if meta:\r\n self._maybe_set_cache(meta)\r\n status = meta['status']\r\n if status in PROPAGATE_STATES and propagate:\r\n > raise meta['result']\r\n E TypeError: exceptions must derive from BaseException\r\n\r\n celery\\result.py:175: TypeError\r\n\r\n\r\nCredits\r\n-------\r\n\r\nTools used in rendering this package:\r\n\r\n* Cookiecutter_\r\n* `cookiecutter-djangopackage`_\r\n\r\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\r\n.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage\r\n\r\n\r\n\r\n\r\nHistory\r\n-------\r\n\r\n0.1.0 (2017-11-14)\r\n++++++++++++++++++\r\n\r\n* First release on PyPI.\r\n\r\n\r\n",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/EeroPaukkonen/django_celery_async_view",
"keywords": "django_celery_async_view,django,celery",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "django-celery-async-view",
"package_url": "https://pypi.org/project/django-celery-async-view/",
"platform": "",
"project_url": "https://pypi.org/project/django-celery-async-view/",
"project_urls": {
"Homepage": "https://github.com/EeroPaukkonen/django_celery_async_view"
},
"release_url": "https://pypi.org/project/django-celery-async-view/0.1.0/",
"requires_dist": [
"django-db-file-storage (==0.4.3)"
],
"requires_python": "",
"summary": "Asynchronously load view or download file in django.",
"version": "0.1.0"
},
"last_serial": 3334271,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "747419e45f30f6839f962bf164f22aad",
"sha256": "3e6a311409e86a5a42de73aae90c7f40f03005827a6aa1151f81414fdd0f2e1e"
},
"downloads": -1,
"filename": "django_celery_async_view-0.1.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "747419e45f30f6839f962bf164f22aad",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 15130,
"upload_time": "2017-11-15T07:07:57",
"url": "https://files.pythonhosted.org/packages/4c/69/df17f06d313265c17e45e30f6a1d8e1e7857846bd71c44ffc6e8da4acec9/django_celery_async_view-0.1.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "730458af0f2d78e81cbfff897624eb23",
"sha256": "a4b520dc578c97f4a830b5c68daf21192990a7b36c8c0ae2c0a73baa95be08ec"
},
"downloads": -1,
"filename": "django_celery_async_view-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "730458af0f2d78e81cbfff897624eb23",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13077,
"upload_time": "2017-11-15T07:07:59",
"url": "https://files.pythonhosted.org/packages/00/a1/9166f7ed680176b7349cad6f7a710ee74bedf81970cc3ea611ab0994680f/django_celery_async_view-0.1.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "747419e45f30f6839f962bf164f22aad",
"sha256": "3e6a311409e86a5a42de73aae90c7f40f03005827a6aa1151f81414fdd0f2e1e"
},
"downloads": -1,
"filename": "django_celery_async_view-0.1.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "747419e45f30f6839f962bf164f22aad",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 15130,
"upload_time": "2017-11-15T07:07:57",
"url": "https://files.pythonhosted.org/packages/4c/69/df17f06d313265c17e45e30f6a1d8e1e7857846bd71c44ffc6e8da4acec9/django_celery_async_view-0.1.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "730458af0f2d78e81cbfff897624eb23",
"sha256": "a4b520dc578c97f4a830b5c68daf21192990a7b36c8c0ae2c0a73baa95be08ec"
},
"downloads": -1,
"filename": "django_celery_async_view-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "730458af0f2d78e81cbfff897624eb23",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13077,
"upload_time": "2017-11-15T07:07:59",
"url": "https://files.pythonhosted.org/packages/00/a1/9166f7ed680176b7349cad6f7a710ee74bedf81970cc3ea611ab0994680f/django_celery_async_view-0.1.0.tar.gz"
}
]
}