diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-10 09:59:20 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-10 09:59:20 +0000 |
commit | 3ff92f1ecd0a05ac5ca8022a1253bf0d6dd0cbea (patch) | |
tree | 5b675188679c431fd7de0924876ef5306a077197 | |
parent | 8d39f243bde73bcba7d215e4ddca0fa3a1844bf0 (diff) |
automatic import of python-django-rgd
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-django-rgd.spec | 451 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 453 insertions, 0 deletions
@@ -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 +[](https://github.com/ResonantGeoData/ResonantGeoData/) + +# Resonant GeoData Core Application + +[](https://www.kitware.com/) +[](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 +[](https://github.com/ResonantGeoData/ResonantGeoData/) + +# Resonant GeoData Core Application + +[](https://www.kitware.com/) +[](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 +[](https://github.com/ResonantGeoData/ResonantGeoData/) + +# Resonant GeoData Core Application + +[](https://www.kitware.com/) +[](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 @@ -0,0 +1 @@ +9bbf5410b74098e7b95287228107962e django-rgd-0.3.11.tar.gz |