@@ -40,38 +40,38 @@ def _sql(sql) -> str:
4040
4141
4242def test_tokenizer_renderers_cover_public_wrappers ():
43- assert tokenizer .unicode ( alias = "description_unicode" , lowercase = True , stemmer = "english" ). render () == (
44- "pdb.unicode_words(' alias= description_unicode, lowercase=true, stemmer= english')"
45- )
43+ assert tokenizer .unicode_words (
44+ options = { " alias" : " description_unicode" , " lowercase" : True , " stemmer" : " english" }
45+ ). render () == ( "pdb.unicode_words('alias=description_unicode,lowercase=true,stemmer=english')" )
4646 assert tokenizer .simple (
47- alias = " description_simple" , filters = [ "lowercase" , "stemmer" ], stemmer = "english"
47+ options = { "alias" : " description_simple" , "lowercase" : True , "stemmer" : "english" }
4848 ).render () == ("pdb.simple('alias=description_simple,lowercase=true,stemmer=english')" )
49- assert tokenizer .whitespace (alias = " description_whitespace" , named_args = { "positions" : True }).render () == (
49+ assert tokenizer .whitespace (options = { "alias" : " description_whitespace" , "positions" : True }).render () == (
5050 "pdb.whitespace('alias=description_whitespace,positions=true')"
5151 )
52- assert tokenizer .icu (alias = " description_icu" , filters = [ "lowercase" ] ).render () == (
52+ assert tokenizer .icu (options = { "alias" : " description_icu" , "lowercase" : True } ).render () == (
5353 "pdb.icu('alias=description_icu,lowercase=true')"
5454 )
55- assert tokenizer .chinese_compatible (alias = " description_cjk" ).render () == (
55+ assert tokenizer .chinese_compatible (options = { "alias" : " description_cjk"} ).render () == (
5656 "pdb.chinese_compatible('alias=description_cjk')"
5757 )
58- assert tokenizer .jieba (alias = " description_jieba" , filters = [ "lowercase" ] ).render () == (
58+ assert tokenizer .jieba (options = { "alias" : " description_jieba" , "lowercase" : True } ).render () == (
5959 "pdb.jieba('alias=description_jieba,lowercase=true')"
6060 )
61- assert tokenizer .literal (alias = " category_literal" ).render () == "pdb.literal('alias=category_literal')"
62- assert tokenizer .literal_normalized (alias = " category_exact" ).render () == (
61+ assert tokenizer .literal (options = { "alias" : " category_literal"} ).render () == "pdb.literal('alias=category_literal')"
62+ assert tokenizer .literal_normalized (options = { "alias" : " category_exact"} ).render () == (
6363 "pdb.literal_normalized('alias=category_exact')"
6464 )
65- assert tokenizer .ngram (alias = "description_ngram" , min_gram = 3 , max_gram = 8 , prefix_only = True ).render () == (
65+ assert tokenizer .ngram (3 , 8 , options = { "alias" : "description_ngram" , " prefix_only" : True } ).render () == (
6666 "pdb.ngram(3,8,'alias=description_ngram,prefix_only=true')"
6767 )
68- assert tokenizer .lindera ("japanese" , alias = " description_jp" ).render () == (
68+ assert tokenizer .lindera ("japanese" , options = { "alias" : " description_jp"} ).render () == (
6969 "pdb.lindera('japanese','alias=description_jp')"
7070 )
71- assert tokenizer .regex_pattern (r"(?i)\\bh\\w*" , alias = " description_regex" ).render () == (
71+ assert tokenizer .regex_pattern (r"(?i)\\bh\\w*" , options = { "alias" : " description_regex"} ).render () == (
7272 "pdb.regex_pattern('(?i)\\ \\ bh\\ \\ w*','alias=description_regex')"
7373 )
74- assert tokenizer .source_code (alias = " description_source_code" , named_args = { "ascii_folding" : True }).render () == (
74+ assert tokenizer .source_code (options = { "alias" : " description_source_code" , "ascii_folding" : True }).render () == (
7575 "pdb.source_code('alias=description_source_code,ascii_folding=true')"
7676 )
7777
@@ -80,8 +80,11 @@ def test_bm25_index_compile_with_tokenizers():
8080 idx = Index (
8181 "products_bm25_idx" ,
8282 BM25Field (products .c .id ),
83- BM25Field (products .c .description , tokenizer = tokenizer .unicode (lowercase = True , stemmer = "english" )),
84- BM25Field (products .c .category , tokenizer = tokenizer .literal_normalized (alias = "category_exact" )),
83+ BM25Field (
84+ products .c .description ,
85+ tokenizer = tokenizer .unicode_words (options = {"lowercase" : True , "stemmer" : "english" }),
86+ ),
87+ BM25Field (products .c .category , tokenizer = tokenizer .literal_normalized (options = {"alias" : "category_exact" })),
8588 postgresql_using = "bm25" ,
8689 postgresql_with = {"key_field" : "id" },
8790 )
@@ -97,7 +100,7 @@ def test_bm25_index_compile_unicode_omits_none_options():
97100 idx = Index (
98101 "products_bm25_idx" ,
99102 BM25Field (products .c .id ),
100- BM25Field (products .c .description , tokenizer = tokenizer .unicode ( lowercase = True )),
103+ BM25Field (products .c .description , tokenizer = tokenizer .unicode_words ( options = { "lowercase" : True } )),
101104 postgresql_using = "bm25" ,
102105 postgresql_with = {"key_field" : "id" },
103106 )
@@ -115,7 +118,9 @@ def test_bm25_index_compile_with_structured_tokenizer_config():
115118 BM25Field (products .c .id ),
116119 BM25Field (
117120 products .c .description ,
118- tokenizer = tokenizer .simple (filters = ["lowercase" , "stemmer" ], stemmer = "english" , alias = "description_simple" ),
121+ tokenizer = tokenizer .simple (
122+ options = {"alias" : "description_simple" , "lowercase" : True , "stemmer" : "english" }
123+ ),
119124 ),
120125 postgresql_using = "bm25" ,
121126 postgresql_with = {"key_field" : "id" },
@@ -134,7 +139,7 @@ def test_bm25_index_compile_with_tokenizer_positional_and_named_args():
134139 BM25Field (
135140 products .c .description ,
136141 tokenizer = tokenizer .ngram (
137- min_gram = 3 , max_gram = 8 , named_args = {"prefix_only " : True , "positions " : True }, alias = "description_ngram"
142+ 3 , 8 , options = {"alias " : "description_ngram" , "prefix_only " : True , "positions" : True }
138143 ),
139144 ),
140145 postgresql_using = "bm25" ,
@@ -151,7 +156,7 @@ def test_bm25_index_compile_lindera_wrapper():
151156 idx = Index (
152157 "products_bm25_lindera_idx" ,
153158 BM25Field (products .c .id ),
154- BM25Field (products .c .description , tokenizer = tokenizer .lindera ("japanese" , alias = " description_jp" )),
159+ BM25Field (products .c .description , tokenizer = tokenizer .lindera ("japanese" , options = { "alias" : " description_jp"} )),
155160 postgresql_using = "bm25" ,
156161 postgresql_with = {"key_field" : "id" },
157162 )
@@ -167,7 +172,8 @@ def test_bm25_index_compile_regex_pattern_wrapper():
167172 "products_bm25_regex_idx" ,
168173 BM25Field (products .c .id ),
169174 BM25Field (
170- products .c .description , tokenizer = tokenizer .regex_pattern (r"(?i)\\bh\\w*" , alias = "description_regex" )
175+ products .c .description ,
176+ tokenizer = tokenizer .regex_pattern (r"(?i)\\bh\\w*" , options = {"alias" : "description_regex" }),
171177 ),
172178 postgresql_using = "bm25" ,
173179 postgresql_with = {"key_field" : "id" },
@@ -185,7 +191,7 @@ def test_bm25_index_compile_json_key_with_tokenizer():
185191 BM25Field (products .c .id ),
186192 BM25Field (
187193 json_text (products .c .metadata , "color" ),
188- tokenizer = tokenizer .literal (alias = " metadata_color" ),
194+ tokenizer = tokenizer .literal (options = { "alias" : " metadata_color"} ),
189195 ),
190196 postgresql_using = "bm25" ,
191197 postgresql_with = {"key_field" : "id" },
@@ -203,11 +209,11 @@ def test_bm25_index_compile_multiple_json_keys():
203209 BM25Field (products .c .id ),
204210 BM25Field (
205211 json_text (products .c .metadata , "color" ),
206- tokenizer = tokenizer .literal (alias = " metadata_color" ),
212+ tokenizer = tokenizer .literal (options = { "alias" : " metadata_color"} ),
207213 ),
208214 BM25Field (
209215 json_text (products .c .metadata , "location" ),
210- tokenizer = tokenizer .literal (alias = " metadata_location" ),
216+ tokenizer = tokenizer .literal (options = { "alias" : " metadata_location"} ),
211217 ),
212218 postgresql_using = "bm25" ,
213219 postgresql_with = {"key_field" : "id" },
@@ -245,8 +251,8 @@ def test_duplicate_alias_validation_raises():
245251 idx = Index (
246252 "products_bm25_alias_idx" ,
247253 BM25Field (products .c .id ),
248- BM25Field (products .c .description , tokenizer = tokenizer .unicode ( alias = " description_alias" )),
249- BM25Field (products .c .category , tokenizer = tokenizer .literal (alias = " description_alias" )),
254+ BM25Field (products .c .description , tokenizer = tokenizer .unicode_words ( options = { "alias" : " description_alias"} )),
255+ BM25Field (products .c .category , tokenizer = tokenizer .literal (options = { "alias" : " description_alias"} )),
250256 postgresql_using = "bm25" ,
251257 postgresql_with = {"key_field" : "id" },
252258 )
@@ -296,7 +302,7 @@ def test_key_field_must_be_first_field():
296302def test_key_field_must_be_untokenized ():
297303 idx = Index (
298304 "products_bm25_key_tokenized_idx" ,
299- BM25Field (products .c .id , tokenizer = tokenizer .literal (alias = " id_alias" )),
305+ BM25Field (products .c .id , tokenizer = tokenizer .literal (options = { "alias" : " id_alias"} )),
300306 BM25Field (products .c .description ),
301307 postgresql_using = "bm25" ,
302308 postgresql_with = {"key_field" : "id" },
@@ -314,14 +320,14 @@ def test_extract_key_field_handles_normalized_indexdef():
314320def test_extract_bm25_field_list_parses_tokenizer_casts ():
315321 indexdef = (
316322 "CREATE INDEX idx ON public.products USING bm25 "
317- "(id, ((description)::pdb.unicode_words(lowercase=true)), "
318- "((category)::pdb.literal_normalized(alias=category_exact))) WITH (key_field=id)"
323+ "(id, ((description)::pdb.unicode_words(' lowercase=true' )), "
324+ "((category)::pdb.literal_normalized(' alias=category_exact' ))) WITH (key_field=id)"
319325 )
320326 parts = _extract_bm25_field_list (indexdef )
321327 assert parts == [
322328 "id" ,
323- "((description)::pdb.unicode_words(lowercase=true))" ,
324- "((category)::pdb.literal_normalized(alias=category_exact))" ,
329+ "((description)::pdb.unicode_words(' lowercase=true' ))" ,
330+ "((category)::pdb.literal_normalized(' alias=category_exact' ))" ,
325331 ]
326332 assert _extract_field_name (parts [0 ]) == "id"
327333 assert _extract_field_name (parts [1 ]) == "description"
0 commit comments