Repository: interlegis/sapl

Issue:
Remover referências a Whoosh e textract do código do SAPL
O SAPL não vai suportar mais o textract nem o Whoosh. Ainda restam referências a ele, particularmente em search_indices e settings.

## Comportamento Esperado
Remover essas dependências do projeto SAPL

## Comportamento Atual
Existem referências "mortas" a essas libs no projeto. Os métodos que usam essas funções devem ser removidos.

## Seu Ambiente
<!--- Inclua detalhes relevantes sobre o ambiente em que você presenciou/experienciou o bug. -->
* Versão usada (_Release_): 3.1.148
* Nome e versão do navegador: Chrome
* Nome e versão do Sistema Operacional (desktop ou mobile): Linux
* Link para o seu projeto (Caso de fork deste projeto):



Discussion:

Resolving patch:
diff --git a/sapl/base/search_indexes.py b/sapl/base/search_indexes.py
--- a/sapl/base/search_indexes.py
+++ b/sapl/base/search_indexes.py
@@ -1,5 +1,4 @@
 import os.path
-import textract
 import logging
 
 from django.db.models import F, Q, Value
@@ -11,7 +10,6 @@
 from haystack.fields import CharField
 from haystack.indexes import SearchIndex
 from haystack.utils import get_model_ct_tuple
-from textract.exceptions import ExtensionNotSupported
 
 from sapl.compilacao.models import (STATUS_TA_IMMUTABLE_PUBLIC,
                                     STATUS_TA_PUBLIC, Dispositivo)
@@ -49,19 +47,6 @@ def solr_extraction(self, arquivo):
             data = ''
         return data
 
-    def whoosh_extraction(self, arquivo):
-
-        if arquivo.path.endswith('html') or arquivo.path.endswith('xml'):
-            with open(arquivo.path, 'r', encoding="utf8", errors='ignore') as f:
-                content = ' '.join(f.read())
-                return RemoveTag(content)
-
-        else:
-            return textract.process(
-                arquivo.path,
-                language='pt-br').decode('utf-8').replace('\n', ' ').replace(
-                '\t', ' ')
-
     def print_error(self, arquivo, error):
         msg = 'Erro inesperado processando arquivo %s erro: %s' % (
             arquivo.path, error)
@@ -80,20 +65,6 @@ def file_extractor(self, arquivo):
             except Exception as err:
                 print(str(err))
                 self.print_error(arquivo, err)
-
-        # Em ambiente de DEV utiliza-se o Whoosh
-        # Como ele não possui extração, faz-se uso do textract
-        else:
-            try:
-                self.logger.debug("Tentando whoosh_extraction no arquivo {}".format(arquivo.path))
-                return self.whoosh_extraction(arquivo)
-                self.print_error(arquivo)
-            except ExtensionNotSupported as err:
-                print(str(err))
-                self.logger.error(str(err))
-            except Exception as err:
-                print(str(err))
-                self.print_error(arquivo, str(err))
         return ''
 
     def ta_extractor(self, value):
diff --git a/sapl/settings.py b/sapl/settings.py
--- a/sapl/settings.py
+++ b/sapl/settings.py
@@ -95,7 +95,6 @@
     'reversion_compare',
 
     'haystack',
-    'whoosh',
     'speedinfo',
 
     'webpack_loader',
@@ -106,8 +105,8 @@
 # Desabilita a indexação textual até encontramos uma solução para a issue
 # https://github.com/interlegis/sapl/issues/2055
 HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.BaseSignalProcessor'  # Disable auto index
-SEARCH_BACKEND = 'haystack.backends.whoosh_backend.WhooshEngine'
-SEARCH_URL = ('PATH', PROJECT_DIR.child('whoosh'))
+SEARCH_BACKEND = ''
+SEARCH_URL = ['','']
 
 # SOLR
 USE_SOLR = config('USE_SOLR', cast=bool, default=False)
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -36,10 +36,7 @@
     'unipath==1.1',
     'WeasyPrint==44',
     'gunicorn==19.9.0',
-
-    'textract==1.5.0',
     'pysolr==3.6.0',
-    'whoosh==2.7.4',
 
     # 'git+git://github.com/interlegis/trml2pdf.git',
     # 'git+git://github.com/interlegis/django-admin-bootstrapped',


Test patch: