From e19297f18551f6d17041bc2d46c4ec60914bbd9b Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Thu, 18 May 2023 07:40:55 +0000 Subject: automatic import of python-django-fast-paginator --- .gitignore | 1 + python-django-fast-paginator.spec | 288 ++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 290 insertions(+) create mode 100644 python-django-fast-paginator.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..86b75be 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/django-fast-paginator-1.0.4.tar.gz diff --git a/python-django-fast-paginator.spec b/python-django-fast-paginator.spec new file mode 100644 index 0000000..8cd9f2f --- /dev/null +++ b/python-django-fast-paginator.spec @@ -0,0 +1,288 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-fast-paginator +Version: 1.0.4 +Release: 1 +Summary: A Django app to paginate querysets faster. +License: MIT +URL: https://github.com/bilbeyt/django-fast-pagination +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/e8/6e/1239568717b0a264e941b01bce4bdfcde3d369bd689e3fde4fdac4691801/django-fast-paginator-1.0.4.tar.gz +BuildArch: noarch + + +%description +![Issues](https://img.shields.io/github/issues/bilbeyt/django-fast-pagination) +![Forks](https://img.shields.io/github/forks/bilbeyt/django-fast-pagination) +![Stars](https://img.shields.io/github/stars/bilbeyt/django-fast-pagination) +![License](https://img.shields.io/github/license/bilbeyt/django-fast-pagination) +![Twitter](https://img.shields.io/twitter/url?url=https%3A%2F%2Fgithub.com%2Fbilbeyt%2Fdjango-fast-pagination) + + +## Fast Paginator for Django +Simple speedy pagination over your large database tables. + +## Features + +**Simple Integration** + +FastPaginator API is compatible with Django's built-in pagination library. Only change your import statements then you're ready. + +**Better SQL Queries** + +Django's built-in pagination system builds SQL queries that have offset and limit clauses. FastPagination does not use them. + +**Built-in Cache System** + +FastPaginator has a built-in cache system. It does not cache QuerySets but caches primary keys of object lists. This provides speedup for pagination progress. + +## Quick Start + +1. Add "fast_pagination" to your INSTALLED_APPS setting like this: +```python + INSTALLED_APPS = [ + ... + 'fast_pagination' + ] +``` +2. In Django settings, you can set FAST_PAGINATION_TIMEOUT variable to invalidate cache. Default value is 1 hour. +3. In Django settings, you can set FAST_PAGINATION_PREFIX variable to use in cache keys. Default values is 'fastpagination'. +4. Import FastPaginator like this: +```python + from fast_pagination.helpers import FastPaginator +``` +5. Then, you are ready. All you have to do is give your queryset and number of entries when creating FastPaginator object. + +## To Run Tests + +1. Create a dummy project. +2. Run following command. +```python +./manage.py test fast_pagination.tests +``` + +## Benchmark + +This benchmark is executed on Postgres9.6 with a table that has 1000000 rows, and fetched only one field. Results can be seen below. + +| Paginator | Min | Max | Mean | StdDev | Median | +|---------------|------------------|------------------|------------------|---------------|------------------| +| Django | 93.5535 (1.53) | 95.7217 (1.54) | 94.7340 (1.53) | 0.9755 (2.32) | 94.9046 (1.54) | +| FastPaginator | 61.1488 (1.0) | 62.3316 (1.0) | 61.7489 (1.0) | 0.4205 (1.0) | 61.7649 (1.0) | + + +You can also run benchmark tests following instructions: + +1. Run migrations if app needs using +```bash +./manage.py migrate +``` +2. Call generate_users command from command line using +```bash +./manage.py generate_users 1000000 +``` +3. Run tests using +```bash +pytest fast_pagination/tests.py +``` + +%package -n python3-django-fast-paginator +Summary: A Django app to paginate querysets faster. +Provides: python-django-fast-paginator +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-fast-paginator +![Issues](https://img.shields.io/github/issues/bilbeyt/django-fast-pagination) +![Forks](https://img.shields.io/github/forks/bilbeyt/django-fast-pagination) +![Stars](https://img.shields.io/github/stars/bilbeyt/django-fast-pagination) +![License](https://img.shields.io/github/license/bilbeyt/django-fast-pagination) +![Twitter](https://img.shields.io/twitter/url?url=https%3A%2F%2Fgithub.com%2Fbilbeyt%2Fdjango-fast-pagination) + + +## Fast Paginator for Django +Simple speedy pagination over your large database tables. + +## Features + +**Simple Integration** + +FastPaginator API is compatible with Django's built-in pagination library. Only change your import statements then you're ready. + +**Better SQL Queries** + +Django's built-in pagination system builds SQL queries that have offset and limit clauses. FastPagination does not use them. + +**Built-in Cache System** + +FastPaginator has a built-in cache system. It does not cache QuerySets but caches primary keys of object lists. This provides speedup for pagination progress. + +## Quick Start + +1. Add "fast_pagination" to your INSTALLED_APPS setting like this: +```python + INSTALLED_APPS = [ + ... + 'fast_pagination' + ] +``` +2. In Django settings, you can set FAST_PAGINATION_TIMEOUT variable to invalidate cache. Default value is 1 hour. +3. In Django settings, you can set FAST_PAGINATION_PREFIX variable to use in cache keys. Default values is 'fastpagination'. +4. Import FastPaginator like this: +```python + from fast_pagination.helpers import FastPaginator +``` +5. Then, you are ready. All you have to do is give your queryset and number of entries when creating FastPaginator object. + +## To Run Tests + +1. Create a dummy project. +2. Run following command. +```python +./manage.py test fast_pagination.tests +``` + +## Benchmark + +This benchmark is executed on Postgres9.6 with a table that has 1000000 rows, and fetched only one field. Results can be seen below. + +| Paginator | Min | Max | Mean | StdDev | Median | +|---------------|------------------|------------------|------------------|---------------|------------------| +| Django | 93.5535 (1.53) | 95.7217 (1.54) | 94.7340 (1.53) | 0.9755 (2.32) | 94.9046 (1.54) | +| FastPaginator | 61.1488 (1.0) | 62.3316 (1.0) | 61.7489 (1.0) | 0.4205 (1.0) | 61.7649 (1.0) | + + +You can also run benchmark tests following instructions: + +1. Run migrations if app needs using +```bash +./manage.py migrate +``` +2. Call generate_users command from command line using +```bash +./manage.py generate_users 1000000 +``` +3. Run tests using +```bash +pytest fast_pagination/tests.py +``` + +%package help +Summary: Development documents and examples for django-fast-paginator +Provides: python3-django-fast-paginator-doc +%description help +![Issues](https://img.shields.io/github/issues/bilbeyt/django-fast-pagination) +![Forks](https://img.shields.io/github/forks/bilbeyt/django-fast-pagination) +![Stars](https://img.shields.io/github/stars/bilbeyt/django-fast-pagination) +![License](https://img.shields.io/github/license/bilbeyt/django-fast-pagination) +![Twitter](https://img.shields.io/twitter/url?url=https%3A%2F%2Fgithub.com%2Fbilbeyt%2Fdjango-fast-pagination) + + +## Fast Paginator for Django +Simple speedy pagination over your large database tables. + +## Features + +**Simple Integration** + +FastPaginator API is compatible with Django's built-in pagination library. Only change your import statements then you're ready. + +**Better SQL Queries** + +Django's built-in pagination system builds SQL queries that have offset and limit clauses. FastPagination does not use them. + +**Built-in Cache System** + +FastPaginator has a built-in cache system. It does not cache QuerySets but caches primary keys of object lists. This provides speedup for pagination progress. + +## Quick Start + +1. Add "fast_pagination" to your INSTALLED_APPS setting like this: +```python + INSTALLED_APPS = [ + ... + 'fast_pagination' + ] +``` +2. In Django settings, you can set FAST_PAGINATION_TIMEOUT variable to invalidate cache. Default value is 1 hour. +3. In Django settings, you can set FAST_PAGINATION_PREFIX variable to use in cache keys. Default values is 'fastpagination'. +4. Import FastPaginator like this: +```python + from fast_pagination.helpers import FastPaginator +``` +5. Then, you are ready. All you have to do is give your queryset and number of entries when creating FastPaginator object. + +## To Run Tests + +1. Create a dummy project. +2. Run following command. +```python +./manage.py test fast_pagination.tests +``` + +## Benchmark + +This benchmark is executed on Postgres9.6 with a table that has 1000000 rows, and fetched only one field. Results can be seen below. + +| Paginator | Min | Max | Mean | StdDev | Median | +|---------------|------------------|------------------|------------------|---------------|------------------| +| Django | 93.5535 (1.53) | 95.7217 (1.54) | 94.7340 (1.53) | 0.9755 (2.32) | 94.9046 (1.54) | +| FastPaginator | 61.1488 (1.0) | 62.3316 (1.0) | 61.7489 (1.0) | 0.4205 (1.0) | 61.7649 (1.0) | + + +You can also run benchmark tests following instructions: + +1. Run migrations if app needs using +```bash +./manage.py migrate +``` +2. Call generate_users command from command line using +```bash +./manage.py generate_users 1000000 +``` +3. Run tests using +```bash +pytest fast_pagination/tests.py +``` + +%prep +%autosetup -n django-fast-paginator-1.0.4 + +%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-fast-paginator -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu May 18 2023 Python_Bot - 1.0.4-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..f7a0ab7 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +ef443a101dd82952c419f530881bf99e django-fast-paginator-1.0.4.tar.gz -- cgit v1.2.3