%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.aliyun.com/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 Jun 08 2023 Python_Bot - 1.0.4-1 - Package Spec generated