Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/django/contrib/postgres/lookups.py: 85%

42 statements  

« prev     ^ index     » next       coverage.py v6.4.4, created at 2023-07-17 14:22 -0600

1from django.db.models import Transform 

2from django.db.models.lookups import PostgresOperatorLookup 

3 

4from .search import SearchVector, SearchVectorExact, SearchVectorField 

5 

6 

7class DataContains(PostgresOperatorLookup): 

8 lookup_name = "contains" 

9 postgres_operator = "@>" 

10 

11 

12class ContainedBy(PostgresOperatorLookup): 

13 lookup_name = "contained_by" 

14 postgres_operator = "<@" 

15 

16 

17class Overlap(PostgresOperatorLookup): 

18 lookup_name = "overlap" 

19 postgres_operator = "&&" 

20 

21 

22class HasKey(PostgresOperatorLookup): 

23 lookup_name = "has_key" 

24 postgres_operator = "?" 

25 prepare_rhs = False 

26 

27 

28class HasKeys(PostgresOperatorLookup): 

29 lookup_name = "has_keys" 

30 postgres_operator = "?&" 

31 

32 def get_prep_lookup(self): 

33 return [str(item) for item in self.rhs] 

34 

35 

36class HasAnyKeys(HasKeys): 

37 lookup_name = "has_any_keys" 

38 postgres_operator = "?|" 

39 

40 

41class Unaccent(Transform): 

42 bilateral = True 

43 lookup_name = "unaccent" 

44 function = "UNACCENT" 

45 

46 

47class SearchLookup(SearchVectorExact): 

48 lookup_name = "search" 

49 

50 def process_lhs(self, qn, connection): 

51 if not isinstance(self.lhs.output_field, SearchVectorField): 

52 config = getattr(self.rhs, "config", None) 

53 self.lhs = SearchVector(self.lhs, config=config) 

54 lhs, lhs_params = super().process_lhs(qn, connection) 

55 return lhs, lhs_params 

56 

57 

58class TrigramSimilar(PostgresOperatorLookup): 

59 lookup_name = "trigram_similar" 

60 postgres_operator = "%%" 

61 

62 

63class TrigramWordSimilar(PostgresOperatorLookup): 

64 lookup_name = "trigram_word_similar" 

65 postgres_operator = "%%>"