%global _empty_manifest_terminate_build 0 Name: python-Collectfast Version: 2.2.0 Release: 1 Summary: A Faster Collectstatic License: MIT License URL: https://github.com/antonagestam/collectfast/ Source0: https://mirrors.nju.edu.cn/pypi/web/packages/b0/6f/f648a790c833d50a19c66143a1cea10e5c7768d0d2599a04357d04a9845c/Collectfast-2.2.0.tar.gz BuildArch: noarch Requires: python3-Django Requires: python3-django-storages Requires: python3-typing-extensions %description collectfast.strategies.boto3.Boto3Strategy|storages.backends.s3boto3.S3Boto3Storage collectfast.strategies.gcloud.GoogleCloudStrategy|storages.backends.gcloud.GoogleCloudStorage collectfast.strategies.filesystem.FileSystemStrategy|django.core.files.storage.FileSystemStorage Custom strategies can also be made for backends not listed above by implementing the `collectfast.strategies.Strategy` ABC. ## Usage Collectfast overrides Django's builtin `collectstatic` command so just run `python manage.py collectstatic` as normal. You can disable Collectfast by using the `--disable-collectfast` option or by setting `COLLECTFAST_ENABLED = False` in your settings file. ### Setting Up a Dedicated Cache Backend It's recommended to setup a dedicated cache backend for Collectfast. Every time Collectfast does not find a lookup for a file in the cache it will trigger a lookup to the storage backend, so it's recommended to have a fairly high `TIMEOUT` setting. Configure your dedicated cache with the `COLLECTFAST_CACHE` setting: ```python CACHES = { 'default': { # Your default cache }, 'collectfast': { # Your dedicated Collectfast cache }, } COLLECTFAST_CACHE = 'collectfast' ``` If `COLLECTFAST_CACHE` isn't set, the `default` cache will be used. **Note:** Collectfast will never clean the cache of obsolete files. To clean out the entire cache, use `cache.clear()`. [See docs for Django's cache framework][django-cache]. **Note:** We recommend you to set the `MAX_ENTRIES` setting if you have more than 300 static files, see [#47][issue-47]. [django-cache]: https://docs.djangoproject.com/en/stable/topics/cache/ [issue-47]: https://github.com/antonagestam/collectfast/issues/47 ### Enable Parallel Uploads The parallelization feature enables parallel file uploads using Python's `concurrent.futures` module. Enable it by setting the `COLLECTFAST_THREADS` setting. To enable parallel uploads, a dedicated cache backend must be setup and it must use a backend that is thread-safe, i.e. something other than Django's default LocMemCache. ```python COLLECTFAST_THREADS = 20 ``` ## Debugging By default, Collectfast will suppress any exceptions that happens when copying and let Django's `collectstatic` handle it. To debug those suppressed errors you can set `COLLECTFAST_DEBUG = True` in your Django settings file. ## Contribution Please feel free to contribute by using issues and pull requests. Discussion is open and welcome. ### Testing The test suite is built to run against live S3 and GCloud buckets. You can disable live tests by setting `SKIP_LIVE_TESTS=true` or running `make test-skip-live`. To run live tests locally you need to provide API credentials to test against. Add the credentials to a file named `storage-credentials` in the root of the project directory: ```bash export AWS_ACCESS_KEY_ID='...' export AWS_SECRET_ACCESS_KEY='...' export GCLOUD_CREDENTIALS='{...}' # Google Cloud credentials as JSON ``` Install test dependencies and target Django version: ```bash python3 -m pip install -r test-requirements.txt python3 -m pip install django==2.2 ``` Run test suite: ```bash make test ``` Code quality tools are broken out from test requirements because some of them only install on Python >= 3.7. ```bash python3 -m pip install -r lint-requirements.txt ``` Run linters and static type check: ```bash make lint ``` ## License Collectfast is licensed under the MIT License, see LICENSE file for more information. %package -n python3-Collectfast Summary: A Faster Collectstatic Provides: python-Collectfast BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-Collectfast collectfast.strategies.boto3.Boto3Strategy|storages.backends.s3boto3.S3Boto3Storage collectfast.strategies.gcloud.GoogleCloudStrategy|storages.backends.gcloud.GoogleCloudStorage collectfast.strategies.filesystem.FileSystemStrategy|django.core.files.storage.FileSystemStorage Custom strategies can also be made for backends not listed above by implementing the `collectfast.strategies.Strategy` ABC. ## Usage Collectfast overrides Django's builtin `collectstatic` command so just run `python manage.py collectstatic` as normal. You can disable Collectfast by using the `--disable-collectfast` option or by setting `COLLECTFAST_ENABLED = False` in your settings file. ### Setting Up a Dedicated Cache Backend It's recommended to setup a dedicated cache backend for Collectfast. Every time Collectfast does not find a lookup for a file in the cache it will trigger a lookup to the storage backend, so it's recommended to have a fairly high `TIMEOUT` setting. Configure your dedicated cache with the `COLLECTFAST_CACHE` setting: ```python CACHES = { 'default': { # Your default cache }, 'collectfast': { # Your dedicated Collectfast cache }, } COLLECTFAST_CACHE = 'collectfast' ``` If `COLLECTFAST_CACHE` isn't set, the `default` cache will be used. **Note:** Collectfast will never clean the cache of obsolete files. To clean out the entire cache, use `cache.clear()`. [See docs for Django's cache framework][django-cache]. **Note:** We recommend you to set the `MAX_ENTRIES` setting if you have more than 300 static files, see [#47][issue-47]. [django-cache]: https://docs.djangoproject.com/en/stable/topics/cache/ [issue-47]: https://github.com/antonagestam/collectfast/issues/47 ### Enable Parallel Uploads The parallelization feature enables parallel file uploads using Python's `concurrent.futures` module. Enable it by setting the `COLLECTFAST_THREADS` setting. To enable parallel uploads, a dedicated cache backend must be setup and it must use a backend that is thread-safe, i.e. something other than Django's default LocMemCache. ```python COLLECTFAST_THREADS = 20 ``` ## Debugging By default, Collectfast will suppress any exceptions that happens when copying and let Django's `collectstatic` handle it. To debug those suppressed errors you can set `COLLECTFAST_DEBUG = True` in your Django settings file. ## Contribution Please feel free to contribute by using issues and pull requests. Discussion is open and welcome. ### Testing The test suite is built to run against live S3 and GCloud buckets. You can disable live tests by setting `SKIP_LIVE_TESTS=true` or running `make test-skip-live`. To run live tests locally you need to provide API credentials to test against. Add the credentials to a file named `storage-credentials` in the root of the project directory: ```bash export AWS_ACCESS_KEY_ID='...' export AWS_SECRET_ACCESS_KEY='...' export GCLOUD_CREDENTIALS='{...}' # Google Cloud credentials as JSON ``` Install test dependencies and target Django version: ```bash python3 -m pip install -r test-requirements.txt python3 -m pip install django==2.2 ``` Run test suite: ```bash make test ``` Code quality tools are broken out from test requirements because some of them only install on Python >= 3.7. ```bash python3 -m pip install -r lint-requirements.txt ``` Run linters and static type check: ```bash make lint ``` ## License Collectfast is licensed under the MIT License, see LICENSE file for more information. %package help Summary: Development documents and examples for Collectfast Provides: python3-Collectfast-doc %description help collectfast.strategies.boto3.Boto3Strategy|storages.backends.s3boto3.S3Boto3Storage collectfast.strategies.gcloud.GoogleCloudStrategy|storages.backends.gcloud.GoogleCloudStorage collectfast.strategies.filesystem.FileSystemStrategy|django.core.files.storage.FileSystemStorage Custom strategies can also be made for backends not listed above by implementing the `collectfast.strategies.Strategy` ABC. ## Usage Collectfast overrides Django's builtin `collectstatic` command so just run `python manage.py collectstatic` as normal. You can disable Collectfast by using the `--disable-collectfast` option or by setting `COLLECTFAST_ENABLED = False` in your settings file. ### Setting Up a Dedicated Cache Backend It's recommended to setup a dedicated cache backend for Collectfast. Every time Collectfast does not find a lookup for a file in the cache it will trigger a lookup to the storage backend, so it's recommended to have a fairly high `TIMEOUT` setting. Configure your dedicated cache with the `COLLECTFAST_CACHE` setting: ```python CACHES = { 'default': { # Your default cache }, 'collectfast': { # Your dedicated Collectfast cache }, } COLLECTFAST_CACHE = 'collectfast' ``` If `COLLECTFAST_CACHE` isn't set, the `default` cache will be used. **Note:** Collectfast will never clean the cache of obsolete files. To clean out the entire cache, use `cache.clear()`. [See docs for Django's cache framework][django-cache]. **Note:** We recommend you to set the `MAX_ENTRIES` setting if you have more than 300 static files, see [#47][issue-47]. [django-cache]: https://docs.djangoproject.com/en/stable/topics/cache/ [issue-47]: https://github.com/antonagestam/collectfast/issues/47 ### Enable Parallel Uploads The parallelization feature enables parallel file uploads using Python's `concurrent.futures` module. Enable it by setting the `COLLECTFAST_THREADS` setting. To enable parallel uploads, a dedicated cache backend must be setup and it must use a backend that is thread-safe, i.e. something other than Django's default LocMemCache. ```python COLLECTFAST_THREADS = 20 ``` ## Debugging By default, Collectfast will suppress any exceptions that happens when copying and let Django's `collectstatic` handle it. To debug those suppressed errors you can set `COLLECTFAST_DEBUG = True` in your Django settings file. ## Contribution Please feel free to contribute by using issues and pull requests. Discussion is open and welcome. ### Testing The test suite is built to run against live S3 and GCloud buckets. You can disable live tests by setting `SKIP_LIVE_TESTS=true` or running `make test-skip-live`. To run live tests locally you need to provide API credentials to test against. Add the credentials to a file named `storage-credentials` in the root of the project directory: ```bash export AWS_ACCESS_KEY_ID='...' export AWS_SECRET_ACCESS_KEY='...' export GCLOUD_CREDENTIALS='{...}' # Google Cloud credentials as JSON ``` Install test dependencies and target Django version: ```bash python3 -m pip install -r test-requirements.txt python3 -m pip install django==2.2 ``` Run test suite: ```bash make test ``` Code quality tools are broken out from test requirements because some of them only install on Python >= 3.7. ```bash python3 -m pip install -r lint-requirements.txt ``` Run linters and static type check: ```bash make lint ``` ## License Collectfast is licensed under the MIT License, see LICENSE file for more information. %prep %autosetup -n Collectfast-2.2.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-Collectfast -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Sun Apr 23 2023 Python_Bot - 2.2.0-1 - Package Spec generated