1""" 2 sphinx.search.sv 3 ~~~~~~~~~~~~~~~~ 4 5 Swedish search language: includes the JS Swedish stemmer. 6 7 :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. 8 :license: BSD, see LICENSE for details. 9""" 10 11from typing import Dict 12 13import snowballstemmer 14 15from sphinx.search import SearchLanguage, parse_stop_word 16 17swedish_stopwords = parse_stop_word(''' 18| source: http://snowball.tartarus.org/algorithms/swedish/stop.txt 19och | and 20det | it, this/that 21att | to (with infinitive) 22i | in, at 23en | a 24jag | I 25hon | she 26som | who, that 27han | he 28på | on 29den | it, this/that 30med | with 31var | where, each 32sig | him(self) etc 33för | for 34så | so (also: seed) 35till | to 36är | is 37men | but 38ett | a 39om | if; around, about 40hade | had 41de | they, these/those 42av | of 43icke | not, no 44mig | me 45du | you 46henne | her 47då | then, when 48sin | his 49nu | now 50har | have 51inte | inte någon = no one 52hans | his 53honom | him 54skulle | 'sake' 55hennes | her 56där | there 57min | my 58man | one (pronoun) 59ej | nor 60vid | at, by, on (also: vast) 61kunde | could 62något | some etc 63från | from, off 64ut | out 65när | when 66efter | after, behind 67upp | up 68vi | we 69dem | them 70vara | be 71vad | what 72över | over 73än | than 74dig | you 75kan | can 76sina | his 77här | here 78ha | have 79mot | towards 80alla | all 81under | under (also: wonder) 82någon | some etc 83eller | or (else) 84allt | all 85mycket | much 86sedan | since 87ju | why 88denna | this/that 89själv | myself, yourself etc 90detta | this/that 91åt | to 92utan | without 93varit | was 94hur | how 95ingen | no 96mitt | my 97ni | you 98bli | to be, become 99blev | from bli 100oss | us 101din | thy 102dessa | these/those 103några | some etc 104deras | their 105blir | from bli 106mina | my 107samma | (the) same 108vilken | who, that 109er | you, your 110sådan | such a 111vår | our 112blivit | from bli 113dess | its 114inom | within 115mellan | between 116sådant | such a 117varför | why 118varje | each 119vilka | who, that 120ditt | thy 121vem | who 122vilket | who, that 123sitta | his 124sådana | such a 125vart | each 126dina | thy 127vars | whose 128vårt | our 129våra | our 130ert | your 131era | your 132vilkas | whose 133''') 134 135 136class SearchSwedish(SearchLanguage): 137 lang = 'sv' 138 language_name = 'Swedish' 139 js_stemmer_rawcode = 'swedish-stemmer.js' 140 stopwords = swedish_stopwords 141 142 def init(self, options: Dict) -> None: 143 self.stemmer = snowballstemmer.stemmer('swedish') 144 145 def stem(self, word: str) -> str: 146 return self.stemmer.stemWord(word.lower()) 147