SamiKoen Claude commited on
Commit
032ddaf
·
1 Parent(s): 7b80b3d

fix: Fix Turkish char normalization order in all files

Browse files

- Must normalize BEFORE lower() to handle İ→i correctly
- Fixed in: warehouse_stock_finder, smart_warehouse_complete, smart_warehouse_whatsapp
- Added all Turkish uppercase chars to maps

Without this fix, 'MARLİN' would become 'marlin' and İ would be lost.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>

__pycache__/warehouse_stock_finder.cpython-312.pyc ADDED
Binary file (4.19 kB). View file
 
smart_warehouse_complete.py CHANGED
@@ -18,15 +18,19 @@ def get_product_price_and_link(product_name, variant=None):
18
 
19
  root = ET.fromstring(response.content)
20
 
21
- # Normalize search terms
22
- search_name = product_name.lower()
23
- search_variant = variant.lower() if variant else ""
24
 
25
- # Turkish character normalization
26
- tr_map = {'ı': 'i', 'ğ': 'g', 'ü': 'u', 'ş': 's', 'ö': 'o', 'ç': 'c'}
 
27
  for tr, en in tr_map.items():
28
- search_name = search_name.replace(tr, en)
29
- search_variant = search_variant.replace(tr, en)
 
 
 
 
30
 
31
  best_match = None
32
  best_score = 0
 
18
 
19
  root = ET.fromstring(response.content)
20
 
21
+ # Turkish character normalization FIRST (before lower)
22
+ tr_map = {'İ': 'i', 'I': 'i', 'ı': 'i', 'Ğ': 'g', 'ğ': 'g', 'Ü': 'u', 'ü': 'u', 'Ş': 's', 'ş': 's', 'Ö': 'o', 'ö': 'o', 'Ç': 'c', 'ç': 'c'}
 
23
 
24
+ # Apply normalization to original
25
+ search_name_norm = product_name
26
+ search_variant_norm = variant if variant else ""
27
  for tr, en in tr_map.items():
28
+ search_name_norm = search_name_norm.replace(tr, en)
29
+ search_variant_norm = search_variant_norm.replace(tr, en)
30
+
31
+ # Now lowercase
32
+ search_name = search_name_norm.lower()
33
+ search_variant = search_variant_norm.lower()
34
 
35
  best_match = None
36
  best_score = 0
smart_warehouse_whatsapp.py CHANGED
@@ -17,15 +17,19 @@ def get_product_price_and_link(product_name, variant=None):
17
 
18
  root = ET.fromstring(response.content)
19
 
20
- # Normalize search terms
21
- search_name = product_name.lower()
22
- search_variant = variant.lower() if variant else ""
23
 
24
- # Turkish character normalization
25
- tr_map = {'ı': 'i', 'ğ': 'g', 'ü': 'u', 'ş': 's', 'ö': 'o', 'ç': 'c'}
 
26
  for tr, en in tr_map.items():
27
- search_name = search_name.replace(tr, en)
28
- search_variant = search_variant.replace(tr, en)
 
 
 
 
29
 
30
  best_match = None
31
  best_score = 0
 
17
 
18
  root = ET.fromstring(response.content)
19
 
20
+ # Turkish character normalization FIRST (before lower)
21
+ tr_map = {'İ': 'i', 'I': 'i', 'ı': 'i', 'Ğ': 'g', 'ğ': 'g', 'Ü': 'u', 'ü': 'u', 'Ş': 's', 'ş': 's', 'Ö': 'o', 'ö': 'o', 'Ç': 'c', 'ç': 'c'}
 
22
 
23
+ # Apply normalization to original
24
+ search_name_norm = product_name
25
+ search_variant_norm = variant if variant else ""
26
  for tr, en in tr_map.items():
27
+ search_name_norm = search_name_norm.replace(tr, en)
28
+ search_variant_norm = search_variant_norm.replace(tr, en)
29
+
30
+ # Now lowercase
31
+ search_name = search_name_norm.lower()
32
+ search_variant = search_variant_norm.lower()
33
 
34
  best_match = None
35
  best_score = 0
warehouse_stock_finder.py CHANGED
@@ -13,10 +13,12 @@ def get_warehouse_stock(product_name):
13
 
14
  # Turkish normalize
15
  def normalize(text):
16
- tr_map = {'ı': 'i', 'ğ': 'g', 'ü': 'u', 'ş': 's', 'ö': 'o', 'ç': 'c', 'İ': 'i', 'I': 'i'}
17
- text = text.lower()
18
  for tr, en in tr_map.items():
19
  text = text.replace(tr, en)
 
 
20
  return text
21
 
22
  # Parse query
 
13
 
14
  # Turkish normalize
15
  def normalize(text):
16
+ tr_map = {'İ': 'i', 'I': 'i', 'ı': 'i', 'Ğ': 'g', 'ğ': 'g', 'Ü': 'u', 'ü': 'u', 'Ş': 's', 'ş': 's', 'Ö': 'o', 'ö': 'o', 'Ç': 'c', 'ç': 'c'}
17
+ # FIRST normalize Turkish chars
18
  for tr, en in tr_map.items():
19
  text = text.replace(tr, en)
20
+ # THEN lowercase
21
+ text = text.lower()
22
  return text
23
 
24
  # Parse query