{ "info": { "author": "Ionata Digital", "author_email": "webmaster@ionata.com.au", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "django-csv-utils - Tools for working with CSV data in Django\n============================================================\n\nContains helpers for CSV interaction.\n\nThere are two primary uses:\n\n* Running an import command with a list of importers\n* Exporting a streaming CSV response export\n\nExample import:\n---------------\n\n.. code:: python\n\n from django_csv_utils import CSVImportException, ImportCommand, Importer\n from users.models import User\n\n\n class UserImporter(Importer):\n \"\"\"Imports User objects from a CSV.\"\"\"\n header = [\n \"first_name\",\n \"last_name\",\n \"email\",\n ]\n\n def import_row(self, row):\n errors = []\n first_name = row.get(\"first_name\", \"\")\n last_name = row.get(\"last_name\", \"\")\n email = self.get_str_errblank(row, \"email\", errors).lower()\n if User.objects.filter(email=email).exists():\n errors.append(\"The email {} is already in use\".format(email))\n if errors:\n raise CSVImportException(', '.join([str(e) for e in errors]))\n new_user = User.objects.create(\n email=email, first_name=first_name, last_name=last_name)\n return \"Imported {0}\".format(new_user.get_full_name())\n\n\n class Command(ImportCommand):\n imports = {'users': UserImporter}\n\n\nExample StreamingHTTPResponse:\n------------------------------\n\n.. code:: python\n\n from django_csv_utils import StreamingCSVView\n from users.models import User\n\n\n class UserCSVView(StreamingCSVView):\n \"\"\"Give the list of users.\"\"\"\n header = [\n 'fist_name',\n 'last_name',\n 'email',\n ]\n\n def get_queryset(self):\n \"\"\"Return the right list of users.\"\"\"\n return User.objects.filter(is_active=True, is_superuser=False)\n\n def get_row(self, item):\n return (\n item.first_name,\n item.last_name,\n item.email,\n )\n\n\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/ionata/django-csv-utils", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "django-csv-utils", "package_url": "https://pypi.org/project/django-csv-utils/", "platform": "", "project_url": "https://pypi.org/project/django-csv-utils/", "project_urls": { "Homepage": "https://github.com/ionata/django-csv-utils" }, "release_url": "https://pypi.org/project/django-csv-utils/1.0.2/", "requires_dist": [ "django (>=1.8.0)" ], "requires_python": "", "summary": "Utilities for working with CSVs in Django", "version": "1.0.2" }, "last_serial": 3411775, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "4e1f942713e33ea6e9605244c269143d", "sha256": "f2c5ebbfc26ddca1b818886f625a354470b7b23dc73fa26e11e10d68882a120d" }, "downloads": -1, "filename": "django-csv-utils-1.0.1.tar.gz", "has_sig": false, "md5_digest": "4e1f942713e33ea6e9605244c269143d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4952, "upload_time": "2017-01-10T04:39:16", "url": "https://files.pythonhosted.org/packages/e6/4b/1574de0c9a687ab8b9f41a1017fa6e75684c0d2c35e9a5ce7b4175ca794c/django-csv-utils-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "87c0ee3582ca390678af50166f29ec15", "sha256": "b417b377e442c5ff9e28d9c658feb43c1d26743e719f096e188e95f34e99a04d" }, "downloads": -1, "filename": "django_csv_utils-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "87c0ee3582ca390678af50166f29ec15", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8047, "upload_time": "2017-12-13T02:02:10", "url": "https://files.pythonhosted.org/packages/a8/56/14170511e7703754cacbdd7cc4dbabfae8498999ea910d6579b54536bd7a/django_csv_utils-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cec20c1dfcc34861d0a3504b54ab2531", "sha256": "db5f71be39ac863de8735848dd8e0e37a974e19f6c5ee70a824a1f33960d8645" }, "downloads": -1, "filename": "django-csv-utils-1.0.2.tar.gz", "has_sig": false, "md5_digest": "cec20c1dfcc34861d0a3504b54ab2531", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5872, "upload_time": "2017-12-13T02:02:13", "url": "https://files.pythonhosted.org/packages/15/7f/af938dc85f149faa818749c6bc13982e15dc3013cb8482eccfc2918993aa/django-csv-utils-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "87c0ee3582ca390678af50166f29ec15", "sha256": "b417b377e442c5ff9e28d9c658feb43c1d26743e719f096e188e95f34e99a04d" }, "downloads": -1, "filename": "django_csv_utils-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "87c0ee3582ca390678af50166f29ec15", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8047, "upload_time": "2017-12-13T02:02:10", "url": "https://files.pythonhosted.org/packages/a8/56/14170511e7703754cacbdd7cc4dbabfae8498999ea910d6579b54536bd7a/django_csv_utils-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cec20c1dfcc34861d0a3504b54ab2531", "sha256": "db5f71be39ac863de8735848dd8e0e37a974e19f6c5ee70a824a1f33960d8645" }, "downloads": -1, "filename": "django-csv-utils-1.0.2.tar.gz", "has_sig": false, "md5_digest": "cec20c1dfcc34861d0a3504b54ab2531", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5872, "upload_time": "2017-12-13T02:02:13", "url": "https://files.pythonhosted.org/packages/15/7f/af938dc85f149faa818749c6bc13982e15dc3013cb8482eccfc2918993aa/django-csv-utils-1.0.2.tar.gz" } ] }