summaryrefslogtreecommitdiff
path: root/python-collectfast.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-10 21:11:11 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-10 21:11:11 +0000
commite9c9688ccb3d7cd205dbd4538b96a35306e7189c (patch)
tree4c87cb34f6bfb56bec0de7d6213a877cf5e81141 /python-collectfast.spec
parenteda3e4a3e8ed8ffbf70d221afe76fd84a652fa55 (diff)
automatic import of python-collectfast
Diffstat (limited to 'python-collectfast.spec')
-rw-r--r--python-collectfast.spec324
1 files changed, 324 insertions, 0 deletions
diff --git a/python-collectfast.spec b/python-collectfast.spec
new file mode 100644
index 0000000..63dd0ed
--- /dev/null
+++ b/python-collectfast.spec
@@ -0,0 +1,324 @@
+%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
+* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 2.2.0-1
+- Package Spec generated