summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-10 09:59:20 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-10 09:59:20 +0000
commit3ff92f1ecd0a05ac5ca8022a1253bf0d6dd0cbea (patch)
tree5b675188679c431fd7de0924876ef5306a077197
parent8d39f243bde73bcba7d215e4ddca0fa3a1844bf0 (diff)
automatic import of python-django-rgd
-rw-r--r--.gitignore1
-rw-r--r--python-django-rgd.spec451
-rw-r--r--sources1
3 files changed, 453 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..0037465 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/django-rgd-0.3.11.tar.gz
diff --git a/python-django-rgd.spec b/python-django-rgd.spec
new file mode 100644
index 0000000..23cd4b2
--- /dev/null
+++ b/python-django-rgd.spec
@@ -0,0 +1,451 @@
+%global _empty_manifest_terminate_build 0
+Name: python-django-rgd
+Version: 0.3.11
+Release: 1
+Summary: please add a summary manually as the author left a blank one
+License: Apache 2.0
+URL: https://github.com/ResonantGeoData/ResonantGeoData
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/94/61/44175e6e0b6269d8ef424d12abd57d30fb65d53cae1b792199ab6727efb5/django-rgd-0.3.11.tar.gz
+BuildArch: noarch
+
+Requires: python3-boto3
+Requires: python3-celery
+Requires: python3-django
+Requires: python3-django-allauth
+Requires: python3-django-click
+Requires: python3-django-crum
+Requires: python3-django-extensions
+Requires: python3-django-filter
+Requires: python3-django-girder-utils
+Requires: python3-django-model-utils
+Requires: python3-django-oauth-toolkit
+Requires: python3-django-s3-file-field[minio]
+Requires: python3-djangorestframework
+Requires: python3-drf-yasg
+Requires: python3-filelock
+Requires: python3-flower
+Requires: python3-GDAL
+Requires: python3-pooch
+Requires: python3-psutil
+Requires: python3-psycopg2
+Requires: python3-magic
+Requires: python3-typing-extensions
+Requires: python3-django-composed-configuration[dev]
+Requires: python3-django-configurations[database,email]
+Requires: python3-django-cache-url
+Requires: python3-redis
+Requires: python3-numpy
+Requires: python3-simple-httpfs
+
+%description
+[![logo](https://raw.githubusercontent.com/ResonantGeoData/ResonantGeoData/main/logos/RGD_Logo.png)](https://github.com/ResonantGeoData/ResonantGeoData/)
+
+# Resonant GeoData Core Application
+
+[![Kitware](https://img.shields.io/badge/Made%20by-Kitware-blue)](https://www.kitware.com/)
+[![PyPI](https://img.shields.io/pypi/v/django-rgd.svg?logo=python&logoColor=white)](https://pypi.org/project/django-rgd/)
+
+The core Resonant GeoData (RGD) app containing file and permissions management
+as well as spatial models. Each of the other RGD apps depend on the core
+functionality built here.
+
+
+## Installation
+
+```
+pip install --find-links https://girder.github.io/large_image_wheels django-rgd
+```
+
+It is necessary to use a postgis database with the RGD apps. To do so, set your
+database ENGINE to `django.contrib.gis.db.backends.postgis`.
+
+Add RGD to your `INSTALLED_APPS`:
+
+```py
+INSTALLED_APPS += [
+ 'django.contrib.gis',
+ 'rgd',
+]
+
+MIDDLEWARE += ('crum.CurrentRequestUserMiddleware',)
+
+REST_FRAMEWORK['DEFAULT_AUTHENTICATION_CLASSES'] += ('rest_framework.authentication.TokenAuthentication',)
+
+# doesn't have to use girder_utils if downstream projects don't have it installed, but this must be set to *something* valid to enable pagination in the API
+REST_FRAMEWORK['DEFAULT_PAGINATION_CLASS'] = 'girder_utils.rest_framework.BoundedLimitOffsetPagination'
+
+REST_FRAMEWORK['PAGE_SIZE'] = 100 # or whatever default pagination size you want
+```
+
+(note that RGD requires [`django-crum`](https://django-crum.readthedocs.io/en/latest/) middleware.)
+
+It is also necessary to configure GDAL in your project settings:
+
+```py
+try:
+ import re
+
+ import osgeo
+
+ libsdir = os.path.join(os.path.dirname(os.path.dirname(osgeo._gdal.__file__)), 'GDAL.libs')
+ libs = {re.split(r'-|\.', name)[0]: os.path.join(libsdir, name) for name in os.listdir(libsdir)}
+ GDAL_LIBRARY_PATH = libs['libgdal']
+ GEOS_LIBRARY_PATH = libs['libgeos_c']
+except Exception:
+ pass
+```
+
+## Configurations
+
+The RGD core app has a few optional settings:
+
+- `RGD_GLOBAL_READ_ACCESS`: option to give all users access to files that lack permissions (otherwise only admin users can access these files)
+- `RGD_FILE_FIELD_PREFIX`: the path prefix when uploading files to the project's S3 storage.
+- `RGD_AUTO_APPROVE_SIGN_UP`: automatically approve all user sign ups.
+- `RGD_AUTO_COMPUTE_CHECKSUMS`: automatically compute checksums for all ChecksumFile records (default False)
+- `RGD_TEMP_DIR`: A temporary directory for working files
+- `RGD_TARGET_AVAILABLE_CACHE`: The target free space to remain for the cache in Gigabytes (default 2).
+- `RGD_REST_CACHE_TIMEOUT`: the time in seconds for the REST views cache (for endpoints that are cached).
+- `RGD_SIGNED_URL_TTL`: The time in seconds for which URL signatures are valid (defaults to 24 hours).
+- `RGD_SIGNED_URL_QUERY_PARAM`: The signature querystring variable name (defaults to `signature`).
+- `RGD_DEBUG_LOGS`: enable debug level logging for RGD (default True)
+
+
+## Models
+
+- `ChecksumFile`: the central file storage model. Supports uploaded files, S3 URLs, and http URLS.
+- `Collection` and `CollectionPermission`: for grouping files and controlling permission groups on those groups.
+- `SpatialEntry`: the core model for indexing spatial metadata. This is intended to be inherited from but also provides a robust search filter.
+- `SpatialAsset`: a simple spatial model for registering any collection of files with manually inputted spatial metadata.
+- `WhitelistedEmail`: a model for pre-approving users for sign up.
+
+
+The core RGD app is intended to be inherited from for developing domain-specific
+geospatial models. For instance, we will demo the implementation of the simple
+`SpatialAsset` model shipped in this app.
+
+We can develop a new model on top of `django-rgd` through the inheritting the
+core `SpatialEntry` model and using a few mixin classes from `django-rgd`. This
+new model will represent a collection of files with some spatial reference.
+
+```py
+from django_extensions.db.models import TimeStampedModel
+from rgd.models import ChecksumFile, SpatialEntry
+
+
+class SpatialAsset(SpatialEntry, TimeStampedModel):
+ """Any spatially referenced file set."""
+ files = models.ManyToManyField(ChecksumFile, related_name='+')
+```
+
+Just like that, you now have a way to associate a set of files to any geospatial
+location. To populate data in this model, first create `ChecksumFile` records,
+then create a new `SpatialAsset` populating the fields defined from
+`SpatialEntry`: `acquisition_date`, `footprint`, `outline`, and `instrumentation`.
+
+
+## Management Commands
+
+The core app has two management commands:
+
+- `rgd_s3_files`: used to ingest `ChecksumFile`s from S3 or
+Google Cloud storage.
+- `whitelist_email`: pre-approve users for sign-up.
+
+Use the `--help` option for more details.
+
+
+
+
+%package -n python3-django-rgd
+Summary: please add a summary manually as the author left a blank one
+Provides: python-django-rgd
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-django-rgd
+[![logo](https://raw.githubusercontent.com/ResonantGeoData/ResonantGeoData/main/logos/RGD_Logo.png)](https://github.com/ResonantGeoData/ResonantGeoData/)
+
+# Resonant GeoData Core Application
+
+[![Kitware](https://img.shields.io/badge/Made%20by-Kitware-blue)](https://www.kitware.com/)
+[![PyPI](https://img.shields.io/pypi/v/django-rgd.svg?logo=python&logoColor=white)](https://pypi.org/project/django-rgd/)
+
+The core Resonant GeoData (RGD) app containing file and permissions management
+as well as spatial models. Each of the other RGD apps depend on the core
+functionality built here.
+
+
+## Installation
+
+```
+pip install --find-links https://girder.github.io/large_image_wheels django-rgd
+```
+
+It is necessary to use a postgis database with the RGD apps. To do so, set your
+database ENGINE to `django.contrib.gis.db.backends.postgis`.
+
+Add RGD to your `INSTALLED_APPS`:
+
+```py
+INSTALLED_APPS += [
+ 'django.contrib.gis',
+ 'rgd',
+]
+
+MIDDLEWARE += ('crum.CurrentRequestUserMiddleware',)
+
+REST_FRAMEWORK['DEFAULT_AUTHENTICATION_CLASSES'] += ('rest_framework.authentication.TokenAuthentication',)
+
+# doesn't have to use girder_utils if downstream projects don't have it installed, but this must be set to *something* valid to enable pagination in the API
+REST_FRAMEWORK['DEFAULT_PAGINATION_CLASS'] = 'girder_utils.rest_framework.BoundedLimitOffsetPagination'
+
+REST_FRAMEWORK['PAGE_SIZE'] = 100 # or whatever default pagination size you want
+```
+
+(note that RGD requires [`django-crum`](https://django-crum.readthedocs.io/en/latest/) middleware.)
+
+It is also necessary to configure GDAL in your project settings:
+
+```py
+try:
+ import re
+
+ import osgeo
+
+ libsdir = os.path.join(os.path.dirname(os.path.dirname(osgeo._gdal.__file__)), 'GDAL.libs')
+ libs = {re.split(r'-|\.', name)[0]: os.path.join(libsdir, name) for name in os.listdir(libsdir)}
+ GDAL_LIBRARY_PATH = libs['libgdal']
+ GEOS_LIBRARY_PATH = libs['libgeos_c']
+except Exception:
+ pass
+```
+
+## Configurations
+
+The RGD core app has a few optional settings:
+
+- `RGD_GLOBAL_READ_ACCESS`: option to give all users access to files that lack permissions (otherwise only admin users can access these files)
+- `RGD_FILE_FIELD_PREFIX`: the path prefix when uploading files to the project's S3 storage.
+- `RGD_AUTO_APPROVE_SIGN_UP`: automatically approve all user sign ups.
+- `RGD_AUTO_COMPUTE_CHECKSUMS`: automatically compute checksums for all ChecksumFile records (default False)
+- `RGD_TEMP_DIR`: A temporary directory for working files
+- `RGD_TARGET_AVAILABLE_CACHE`: The target free space to remain for the cache in Gigabytes (default 2).
+- `RGD_REST_CACHE_TIMEOUT`: the time in seconds for the REST views cache (for endpoints that are cached).
+- `RGD_SIGNED_URL_TTL`: The time in seconds for which URL signatures are valid (defaults to 24 hours).
+- `RGD_SIGNED_URL_QUERY_PARAM`: The signature querystring variable name (defaults to `signature`).
+- `RGD_DEBUG_LOGS`: enable debug level logging for RGD (default True)
+
+
+## Models
+
+- `ChecksumFile`: the central file storage model. Supports uploaded files, S3 URLs, and http URLS.
+- `Collection` and `CollectionPermission`: for grouping files and controlling permission groups on those groups.
+- `SpatialEntry`: the core model for indexing spatial metadata. This is intended to be inherited from but also provides a robust search filter.
+- `SpatialAsset`: a simple spatial model for registering any collection of files with manually inputted spatial metadata.
+- `WhitelistedEmail`: a model for pre-approving users for sign up.
+
+
+The core RGD app is intended to be inherited from for developing domain-specific
+geospatial models. For instance, we will demo the implementation of the simple
+`SpatialAsset` model shipped in this app.
+
+We can develop a new model on top of `django-rgd` through the inheritting the
+core `SpatialEntry` model and using a few mixin classes from `django-rgd`. This
+new model will represent a collection of files with some spatial reference.
+
+```py
+from django_extensions.db.models import TimeStampedModel
+from rgd.models import ChecksumFile, SpatialEntry
+
+
+class SpatialAsset(SpatialEntry, TimeStampedModel):
+ """Any spatially referenced file set."""
+ files = models.ManyToManyField(ChecksumFile, related_name='+')
+```
+
+Just like that, you now have a way to associate a set of files to any geospatial
+location. To populate data in this model, first create `ChecksumFile` records,
+then create a new `SpatialAsset` populating the fields defined from
+`SpatialEntry`: `acquisition_date`, `footprint`, `outline`, and `instrumentation`.
+
+
+## Management Commands
+
+The core app has two management commands:
+
+- `rgd_s3_files`: used to ingest `ChecksumFile`s from S3 or
+Google Cloud storage.
+- `whitelist_email`: pre-approve users for sign-up.
+
+Use the `--help` option for more details.
+
+
+
+
+%package help
+Summary: Development documents and examples for django-rgd
+Provides: python3-django-rgd-doc
+%description help
+[![logo](https://raw.githubusercontent.com/ResonantGeoData/ResonantGeoData/main/logos/RGD_Logo.png)](https://github.com/ResonantGeoData/ResonantGeoData/)
+
+# Resonant GeoData Core Application
+
+[![Kitware](https://img.shields.io/badge/Made%20by-Kitware-blue)](https://www.kitware.com/)
+[![PyPI](https://img.shields.io/pypi/v/django-rgd.svg?logo=python&logoColor=white)](https://pypi.org/project/django-rgd/)
+
+The core Resonant GeoData (RGD) app containing file and permissions management
+as well as spatial models. Each of the other RGD apps depend on the core
+functionality built here.
+
+
+## Installation
+
+```
+pip install --find-links https://girder.github.io/large_image_wheels django-rgd
+```
+
+It is necessary to use a postgis database with the RGD apps. To do so, set your
+database ENGINE to `django.contrib.gis.db.backends.postgis`.
+
+Add RGD to your `INSTALLED_APPS`:
+
+```py
+INSTALLED_APPS += [
+ 'django.contrib.gis',
+ 'rgd',
+]
+
+MIDDLEWARE += ('crum.CurrentRequestUserMiddleware',)
+
+REST_FRAMEWORK['DEFAULT_AUTHENTICATION_CLASSES'] += ('rest_framework.authentication.TokenAuthentication',)
+
+# doesn't have to use girder_utils if downstream projects don't have it installed, but this must be set to *something* valid to enable pagination in the API
+REST_FRAMEWORK['DEFAULT_PAGINATION_CLASS'] = 'girder_utils.rest_framework.BoundedLimitOffsetPagination'
+
+REST_FRAMEWORK['PAGE_SIZE'] = 100 # or whatever default pagination size you want
+```
+
+(note that RGD requires [`django-crum`](https://django-crum.readthedocs.io/en/latest/) middleware.)
+
+It is also necessary to configure GDAL in your project settings:
+
+```py
+try:
+ import re
+
+ import osgeo
+
+ libsdir = os.path.join(os.path.dirname(os.path.dirname(osgeo._gdal.__file__)), 'GDAL.libs')
+ libs = {re.split(r'-|\.', name)[0]: os.path.join(libsdir, name) for name in os.listdir(libsdir)}
+ GDAL_LIBRARY_PATH = libs['libgdal']
+ GEOS_LIBRARY_PATH = libs['libgeos_c']
+except Exception:
+ pass
+```
+
+## Configurations
+
+The RGD core app has a few optional settings:
+
+- `RGD_GLOBAL_READ_ACCESS`: option to give all users access to files that lack permissions (otherwise only admin users can access these files)
+- `RGD_FILE_FIELD_PREFIX`: the path prefix when uploading files to the project's S3 storage.
+- `RGD_AUTO_APPROVE_SIGN_UP`: automatically approve all user sign ups.
+- `RGD_AUTO_COMPUTE_CHECKSUMS`: automatically compute checksums for all ChecksumFile records (default False)
+- `RGD_TEMP_DIR`: A temporary directory for working files
+- `RGD_TARGET_AVAILABLE_CACHE`: The target free space to remain for the cache in Gigabytes (default 2).
+- `RGD_REST_CACHE_TIMEOUT`: the time in seconds for the REST views cache (for endpoints that are cached).
+- `RGD_SIGNED_URL_TTL`: The time in seconds for which URL signatures are valid (defaults to 24 hours).
+- `RGD_SIGNED_URL_QUERY_PARAM`: The signature querystring variable name (defaults to `signature`).
+- `RGD_DEBUG_LOGS`: enable debug level logging for RGD (default True)
+
+
+## Models
+
+- `ChecksumFile`: the central file storage model. Supports uploaded files, S3 URLs, and http URLS.
+- `Collection` and `CollectionPermission`: for grouping files and controlling permission groups on those groups.
+- `SpatialEntry`: the core model for indexing spatial metadata. This is intended to be inherited from but also provides a robust search filter.
+- `SpatialAsset`: a simple spatial model for registering any collection of files with manually inputted spatial metadata.
+- `WhitelistedEmail`: a model for pre-approving users for sign up.
+
+
+The core RGD app is intended to be inherited from for developing domain-specific
+geospatial models. For instance, we will demo the implementation of the simple
+`SpatialAsset` model shipped in this app.
+
+We can develop a new model on top of `django-rgd` through the inheritting the
+core `SpatialEntry` model and using a few mixin classes from `django-rgd`. This
+new model will represent a collection of files with some spatial reference.
+
+```py
+from django_extensions.db.models import TimeStampedModel
+from rgd.models import ChecksumFile, SpatialEntry
+
+
+class SpatialAsset(SpatialEntry, TimeStampedModel):
+ """Any spatially referenced file set."""
+ files = models.ManyToManyField(ChecksumFile, related_name='+')
+```
+
+Just like that, you now have a way to associate a set of files to any geospatial
+location. To populate data in this model, first create `ChecksumFile` records,
+then create a new `SpatialAsset` populating the fields defined from
+`SpatialEntry`: `acquisition_date`, `footprint`, `outline`, and `instrumentation`.
+
+
+## Management Commands
+
+The core app has two management commands:
+
+- `rgd_s3_files`: used to ingest `ChecksumFile`s from S3 or
+Google Cloud storage.
+- `whitelist_email`: pre-approve users for sign-up.
+
+Use the `--help` option for more details.
+
+
+
+
+%prep
+%autosetup -n django-rgd-0.3.11
+
+%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-rgd -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.3.11-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..00df895
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+9bbf5410b74098e7b95287228107962e django-rgd-0.3.11.tar.gz