From b78fb13bb17478f22cbc38dc192d27eacd7ac66b Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Mon, 15 May 2023 08:56:12 +0000 Subject: automatic import of python-django-csv-export-view --- .gitignore | 1 + python-django-csv-export-view.spec | 628 +++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 630 insertions(+) create mode 100644 python-django-csv-export-view.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..ac8a634 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/django-csv-export-view-2.0.0.tar.gz diff --git a/python-django-csv-export-view.spec b/python-django-csv-export-view.spec new file mode 100644 index 0000000..350a19b --- /dev/null +++ b/python-django-csv-export-view.spec @@ -0,0 +1,628 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-csv-export-view +Version: 2.0.0 +Release: 1 +Summary: Django class-based view for CSV exports +License: BSD +URL: https://github.com/benkonrath/django-csv-export-view +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/f5/4e/97f1272f973cbe8244f0a65a255f99e5649d33884f81e673996ec0982749/django-csv-export-view-2.0.0.tar.gz +BuildArch: noarch + +Requires: python3-django + +%description +# django-csv-export-view + +A Django class-based view for CSV export. + +![Build Status](https://github.com/benkonrath/django-csv-export-view/actions/workflows/tests.yml/badge.svg) + +## Features + +* Easy CSV exports by setting a Django `model` and a `fields` or `exclude` iterable +* Works with existing class-based view mixins for access control +* Generates Microsoft Excel friendly CSV by default +* Proper HTTP headers set for CSV +* Easy to override defaults as needed +* Easy integration into Django Admin + +## Installation + +`pip install django-csv-export-view` + +## Quick Start + +Examples: +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = ("field", "related", "property") + + # When using related fields you will likely want to override get_queryset() use select_related() or prefetch_related(). + def get_queryset(self): + return super().get_queryset().select_related("related") + OR + return super().get_queryset().prefetch_related("related") +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = ("field", "related__field", "property") +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + exclude = ("id",) + + def get_queryset(self): + queryset = super().get_queryset() + return queryset.exclude(deleted=True) +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + + def get_fields(self, queryset): + fields = ["username", "email"] + if self.request.user.is_superuser: + fields.append("birth_date") + return fields +``` + +`fields` / `exclude`: An iterable of field names and properties. You cannot set both `fields` and `exclude`. +`fields` can also be `"__all__"` to export all fields. Model properties are not included when `"__all__"` is used. +Related field can be used with `__`. Override `get_fields(self, queryset)` for custom behaviour not supported by the +default logic. + +`model`: The model to use for the CSV export queryset. Override `get_queryset()` if you need a custom queryset. + +## Further Customization + +Examples: +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" + header = False + specify_separator = False + filename = "data-export.csv" +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" + verbose_names = False +``` +```python +from django.utils import timezone +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" + + def get_filename(self, queryset): + return "data-export-{!s}.csv".format(timezone.now()) +``` + +`header` - *boolean* - Default: `True` +Whether to include the header in the CSV. + +`filename` - *string* - Default: Dasherized version of `verbose_name_plural` from `queryset.model`. +Override `get_filename(self, queryset)` if a dynamic filename is required. + +`specify_separator` - *boolean* - Default: `True` +Whether to include `sep=` as the first line of the CSV file. This is useful for generating Microsoft +Excel friendly CSV. + +`verbose_names` - *boolean* - Default: `True` +Whether to use capitalized verbose column names in the header of the CSV file. If `False`, field names are used +instead. + +## CSV Writer Options + +Example: +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" + + def get_csv_writer_fmtparams(self): + fmtparams = super().get_csv_writer_fmtparams() + fmtparams["delimiter"] = "|" + return fmtparams +``` + +Override `get_csv_writer_fmtparams(self)` and return a dictionary of csv write format parameters. Default format +parameters are: dialect="excel" and quoting=csv.QUOTE_ALL. See all available options in the Python docs: + +https://docs.python.org/3.9/library/csv.html#csv.writer + +## Django Admin Integration + +Example: +```python +from django.contrib import admin +from csv_export.views import CSVExportView +from .models import MyModel + +@admin.register(MyModel) +class DataAdmin(admin.ModelAdmin): + actions = ("export_data_csv",) + + def export_data_csv(self, request, queryset): + view = CSVExportView(queryset=queryset, fields="__all__") + return view.get(request) + + export_data_csv.short_description = "Export CSV for selected Data records" +``` + +## Contributions + +Pull requests are happily accepted. + +## Alternatives + +https://github.com/django-import-export/django-import-export/ + +https://github.com/mjumbewu/django-rest-framework-csv + + +%package -n python3-django-csv-export-view +Summary: Django class-based view for CSV exports +Provides: python-django-csv-export-view +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-csv-export-view +# django-csv-export-view + +A Django class-based view for CSV export. + +![Build Status](https://github.com/benkonrath/django-csv-export-view/actions/workflows/tests.yml/badge.svg) + +## Features + +* Easy CSV exports by setting a Django `model` and a `fields` or `exclude` iterable +* Works with existing class-based view mixins for access control +* Generates Microsoft Excel friendly CSV by default +* Proper HTTP headers set for CSV +* Easy to override defaults as needed +* Easy integration into Django Admin + +## Installation + +`pip install django-csv-export-view` + +## Quick Start + +Examples: +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = ("field", "related", "property") + + # When using related fields you will likely want to override get_queryset() use select_related() or prefetch_related(). + def get_queryset(self): + return super().get_queryset().select_related("related") + OR + return super().get_queryset().prefetch_related("related") +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = ("field", "related__field", "property") +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + exclude = ("id",) + + def get_queryset(self): + queryset = super().get_queryset() + return queryset.exclude(deleted=True) +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + + def get_fields(self, queryset): + fields = ["username", "email"] + if self.request.user.is_superuser: + fields.append("birth_date") + return fields +``` + +`fields` / `exclude`: An iterable of field names and properties. You cannot set both `fields` and `exclude`. +`fields` can also be `"__all__"` to export all fields. Model properties are not included when `"__all__"` is used. +Related field can be used with `__`. Override `get_fields(self, queryset)` for custom behaviour not supported by the +default logic. + +`model`: The model to use for the CSV export queryset. Override `get_queryset()` if you need a custom queryset. + +## Further Customization + +Examples: +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" + header = False + specify_separator = False + filename = "data-export.csv" +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" + verbose_names = False +``` +```python +from django.utils import timezone +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" + + def get_filename(self, queryset): + return "data-export-{!s}.csv".format(timezone.now()) +``` + +`header` - *boolean* - Default: `True` +Whether to include the header in the CSV. + +`filename` - *string* - Default: Dasherized version of `verbose_name_plural` from `queryset.model`. +Override `get_filename(self, queryset)` if a dynamic filename is required. + +`specify_separator` - *boolean* - Default: `True` +Whether to include `sep=` as the first line of the CSV file. This is useful for generating Microsoft +Excel friendly CSV. + +`verbose_names` - *boolean* - Default: `True` +Whether to use capitalized verbose column names in the header of the CSV file. If `False`, field names are used +instead. + +## CSV Writer Options + +Example: +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" + + def get_csv_writer_fmtparams(self): + fmtparams = super().get_csv_writer_fmtparams() + fmtparams["delimiter"] = "|" + return fmtparams +``` + +Override `get_csv_writer_fmtparams(self)` and return a dictionary of csv write format parameters. Default format +parameters are: dialect="excel" and quoting=csv.QUOTE_ALL. See all available options in the Python docs: + +https://docs.python.org/3.9/library/csv.html#csv.writer + +## Django Admin Integration + +Example: +```python +from django.contrib import admin +from csv_export.views import CSVExportView +from .models import MyModel + +@admin.register(MyModel) +class DataAdmin(admin.ModelAdmin): + actions = ("export_data_csv",) + + def export_data_csv(self, request, queryset): + view = CSVExportView(queryset=queryset, fields="__all__") + return view.get(request) + + export_data_csv.short_description = "Export CSV for selected Data records" +``` + +## Contributions + +Pull requests are happily accepted. + +## Alternatives + +https://github.com/django-import-export/django-import-export/ + +https://github.com/mjumbewu/django-rest-framework-csv + + +%package help +Summary: Development documents and examples for django-csv-export-view +Provides: python3-django-csv-export-view-doc +%description help +# django-csv-export-view + +A Django class-based view for CSV export. + +![Build Status](https://github.com/benkonrath/django-csv-export-view/actions/workflows/tests.yml/badge.svg) + +## Features + +* Easy CSV exports by setting a Django `model` and a `fields` or `exclude` iterable +* Works with existing class-based view mixins for access control +* Generates Microsoft Excel friendly CSV by default +* Proper HTTP headers set for CSV +* Easy to override defaults as needed +* Easy integration into Django Admin + +## Installation + +`pip install django-csv-export-view` + +## Quick Start + +Examples: +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = ("field", "related", "property") + + # When using related fields you will likely want to override get_queryset() use select_related() or prefetch_related(). + def get_queryset(self): + return super().get_queryset().select_related("related") + OR + return super().get_queryset().prefetch_related("related") +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = ("field", "related__field", "property") +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + exclude = ("id",) + + def get_queryset(self): + queryset = super().get_queryset() + return queryset.exclude(deleted=True) +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + + def get_fields(self, queryset): + fields = ["username", "email"] + if self.request.user.is_superuser: + fields.append("birth_date") + return fields +``` + +`fields` / `exclude`: An iterable of field names and properties. You cannot set both `fields` and `exclude`. +`fields` can also be `"__all__"` to export all fields. Model properties are not included when `"__all__"` is used. +Related field can be used with `__`. Override `get_fields(self, queryset)` for custom behaviour not supported by the +default logic. + +`model`: The model to use for the CSV export queryset. Override `get_queryset()` if you need a custom queryset. + +## Further Customization + +Examples: +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" + header = False + specify_separator = False + filename = "data-export.csv" +``` +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" + verbose_names = False +``` +```python +from django.utils import timezone +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" + + def get_filename(self, queryset): + return "data-export-{!s}.csv".format(timezone.now()) +``` + +`header` - *boolean* - Default: `True` +Whether to include the header in the CSV. + +`filename` - *string* - Default: Dasherized version of `verbose_name_plural` from `queryset.model`. +Override `get_filename(self, queryset)` if a dynamic filename is required. + +`specify_separator` - *boolean* - Default: `True` +Whether to include `sep=` as the first line of the CSV file. This is useful for generating Microsoft +Excel friendly CSV. + +`verbose_names` - *boolean* - Default: `True` +Whether to use capitalized verbose column names in the header of the CSV file. If `False`, field names are used +instead. + +## CSV Writer Options + +Example: +```python +from csv_export.views import CSVExportView +from .models import MyModel + +class DataExportView(CSVExportView): + model = MyModel + fields = "__all__" + + def get_csv_writer_fmtparams(self): + fmtparams = super().get_csv_writer_fmtparams() + fmtparams["delimiter"] = "|" + return fmtparams +``` + +Override `get_csv_writer_fmtparams(self)` and return a dictionary of csv write format parameters. Default format +parameters are: dialect="excel" and quoting=csv.QUOTE_ALL. See all available options in the Python docs: + +https://docs.python.org/3.9/library/csv.html#csv.writer + +## Django Admin Integration + +Example: +```python +from django.contrib import admin +from csv_export.views import CSVExportView +from .models import MyModel + +@admin.register(MyModel) +class DataAdmin(admin.ModelAdmin): + actions = ("export_data_csv",) + + def export_data_csv(self, request, queryset): + view = CSVExportView(queryset=queryset, fields="__all__") + return view.get(request) + + export_data_csv.short_description = "Export CSV for selected Data records" +``` + +## Contributions + +Pull requests are happily accepted. + +## Alternatives + +https://github.com/django-import-export/django-import-export/ + +https://github.com/mjumbewu/django-rest-framework-csv + + +%prep +%autosetup -n django-csv-export-view-2.0.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-django-csv-export-view -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot - 2.0.0-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..056f4d8 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +3143712f0e304b0cc5690decc6d7ccfa django-csv-export-view-2.0.0.tar.gz -- cgit v1.2.3