diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-15 08:54:06 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 08:54:06 +0000 |
commit | 000a2be3f9ebfdeec295d77c188a9c8da60c1454 (patch) | |
tree | a0d6262483f6966124093598fa4f30ea44146e9c | |
parent | d8ae2137e98310478c210399b9780a974307be59 (diff) |
automatic import of python-lucyfer
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-lucyfer.spec | 343 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 345 insertions, 0 deletions
@@ -0,0 +1 @@ +/lucyfer-0.7.0.tar.gz diff --git a/python-lucyfer.spec b/python-lucyfer.spec new file mode 100644 index 0000000..d905efb --- /dev/null +++ b/python-lucyfer.spec @@ -0,0 +1,343 @@ +%global _empty_manifest_terminate_build 0 +Name: python-lucyfer +Version: 0.7.0 +Release: 1 +Summary: Lucene search for DRF and elasticsearch-dsl +License: MIT License +URL: https://github.com/ncopiy/django_lucy +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/ad/9f/04659f7d056fbc03448611720bfb978ae59a6911f5e0ac72f6b6aa81eee2/lucyfer-0.7.0.tar.gz +BuildArch: noarch + +Requires: python3-lucyparser +Requires: python3-Django +Requires: python3-djangorestframework +Requires: python3-elasticsearch-dsl + +%description +# Lucene way search in django +#### ("Django" AND "DRF") OR "Elasticserach-DSL" + +_________________ + +## Installation + +Only for Django with DRF: + +``` +pip install lucyfer +``` + +For Django with DRF and Elasticsearch-dsl: + +``` +pip install lucyfer[full] +``` + +## Dependencies + +| | lucyfer | lucyfer[full] | +|---------------------------|---------|-------| +| lucyparser | + | + | +| Django | + | + | +| djangorestframework | + | + | +| elasticsearch-dsl | - | + | + + +## Usage Example +________________ +Create your search backend class: + +```python +from lucyfer.backend import LuceneSearchFilter, DjangoLuceneSearchFilterMixin, ElasticLuceneSearchFilterMixin + + +class SearchBackend(DjangoLuceneSearchFilterMixin, ElasticLuceneSearchFilterMixin, LuceneSearchFilter): + pass +``` + +Copy reference to `SearchBackend` class and include it in `DEFAULT_FILTER_BACKENDS` in `settings.py` instead of default search backend: + +```python +REST_FRAMEWORK = { + 'DEFAULT_FILTER_BACKENDS': ('path.to.SearchBackend',) +} +``` + +Create `searchsets.py` file in your django-application and fill it: +```python +from lucyfer.searchset import DjangoSearchSet +from lucyfer.searchset.fields.django import DjangoCharField + +from .models import MyModel + + +class MyModelSearchSet(DjangoSearchSet): + some_field = DjangoCharField(sources=["another_field__name"], exclude_sources_from_mapping=True) + + class Meta: + model = MyModel + + fields_to_exclude_from_mapping = ['field_to_exclude_from_mapping', ] + +``` + +Include searchset class in your `ModelViewSet`: +```python +from rest_framework.viewsets import ModelViewSet + +from .searchsets import MyModelSearchSet + + +class MyModelViewSet(ModelViewSet): + search_class = MyModelSearchSet +``` + +You have to save `search_fields` in your `ModelViewSet` if you want to save custom search possibility. + +Now you can use lucene-way syntax for your view. + + +Tests execution: +``` +pytest tests/test_* -c tests/pytest.ini +``` + + + + +%package -n python3-lucyfer +Summary: Lucene search for DRF and elasticsearch-dsl +Provides: python-lucyfer +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-lucyfer +# Lucene way search in django +#### ("Django" AND "DRF") OR "Elasticserach-DSL" + +_________________ + +## Installation + +Only for Django with DRF: + +``` +pip install lucyfer +``` + +For Django with DRF and Elasticsearch-dsl: + +``` +pip install lucyfer[full] +``` + +## Dependencies + +| | lucyfer | lucyfer[full] | +|---------------------------|---------|-------| +| lucyparser | + | + | +| Django | + | + | +| djangorestframework | + | + | +| elasticsearch-dsl | - | + | + + +## Usage Example +________________ +Create your search backend class: + +```python +from lucyfer.backend import LuceneSearchFilter, DjangoLuceneSearchFilterMixin, ElasticLuceneSearchFilterMixin + + +class SearchBackend(DjangoLuceneSearchFilterMixin, ElasticLuceneSearchFilterMixin, LuceneSearchFilter): + pass +``` + +Copy reference to `SearchBackend` class and include it in `DEFAULT_FILTER_BACKENDS` in `settings.py` instead of default search backend: + +```python +REST_FRAMEWORK = { + 'DEFAULT_FILTER_BACKENDS': ('path.to.SearchBackend',) +} +``` + +Create `searchsets.py` file in your django-application and fill it: +```python +from lucyfer.searchset import DjangoSearchSet +from lucyfer.searchset.fields.django import DjangoCharField + +from .models import MyModel + + +class MyModelSearchSet(DjangoSearchSet): + some_field = DjangoCharField(sources=["another_field__name"], exclude_sources_from_mapping=True) + + class Meta: + model = MyModel + + fields_to_exclude_from_mapping = ['field_to_exclude_from_mapping', ] + +``` + +Include searchset class in your `ModelViewSet`: +```python +from rest_framework.viewsets import ModelViewSet + +from .searchsets import MyModelSearchSet + + +class MyModelViewSet(ModelViewSet): + search_class = MyModelSearchSet +``` + +You have to save `search_fields` in your `ModelViewSet` if you want to save custom search possibility. + +Now you can use lucene-way syntax for your view. + + +Tests execution: +``` +pytest tests/test_* -c tests/pytest.ini +``` + + + + +%package help +Summary: Development documents and examples for lucyfer +Provides: python3-lucyfer-doc +%description help +# Lucene way search in django +#### ("Django" AND "DRF") OR "Elasticserach-DSL" + +_________________ + +## Installation + +Only for Django with DRF: + +``` +pip install lucyfer +``` + +For Django with DRF and Elasticsearch-dsl: + +``` +pip install lucyfer[full] +``` + +## Dependencies + +| | lucyfer | lucyfer[full] | +|---------------------------|---------|-------| +| lucyparser | + | + | +| Django | + | + | +| djangorestframework | + | + | +| elasticsearch-dsl | - | + | + + +## Usage Example +________________ +Create your search backend class: + +```python +from lucyfer.backend import LuceneSearchFilter, DjangoLuceneSearchFilterMixin, ElasticLuceneSearchFilterMixin + + +class SearchBackend(DjangoLuceneSearchFilterMixin, ElasticLuceneSearchFilterMixin, LuceneSearchFilter): + pass +``` + +Copy reference to `SearchBackend` class and include it in `DEFAULT_FILTER_BACKENDS` in `settings.py` instead of default search backend: + +```python +REST_FRAMEWORK = { + 'DEFAULT_FILTER_BACKENDS': ('path.to.SearchBackend',) +} +``` + +Create `searchsets.py` file in your django-application and fill it: +```python +from lucyfer.searchset import DjangoSearchSet +from lucyfer.searchset.fields.django import DjangoCharField + +from .models import MyModel + + +class MyModelSearchSet(DjangoSearchSet): + some_field = DjangoCharField(sources=["another_field__name"], exclude_sources_from_mapping=True) + + class Meta: + model = MyModel + + fields_to_exclude_from_mapping = ['field_to_exclude_from_mapping', ] + +``` + +Include searchset class in your `ModelViewSet`: +```python +from rest_framework.viewsets import ModelViewSet + +from .searchsets import MyModelSearchSet + + +class MyModelViewSet(ModelViewSet): + search_class = MyModelSearchSet +``` + +You have to save `search_fields` in your `ModelViewSet` if you want to save custom search possibility. + +Now you can use lucene-way syntax for your view. + + +Tests execution: +``` +pytest tests/test_* -c tests/pytest.ini +``` + + + + +%prep +%autosetup -n lucyfer-0.7.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-lucyfer -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.7.0-1 +- Package Spec generated @@ -0,0 +1 @@ +f5b5d77cec9dd92d710049d0a2ddcfb9 lucyfer-0.7.0.tar.gz |