vikramvasudevan commited on
Commit
90dc9aa
·
verified ·
1 Parent(s): b11b469

Upload folder using huggingface_hub

Browse files
config.py CHANGED
@@ -2,7 +2,7 @@ from metadata import MetadataWhereClause
2
  from typing import List, Dict
3
 
4
  from modules.config import scripture_configurations
5
- from modules.transliterator import fn_transliterate
6
 
7
 
8
  class SanatanConfig:
 
2
  from typing import List, Dict
3
 
4
  from modules.config import scripture_configurations
5
+ from modules.languages.transliterator import fn_transliterate
6
 
7
 
8
  class SanatanConfig:
modules/languages/constants.py ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ LANGUAGES = [
2
+ {
3
+ "code": "en",
4
+ "name": "English",
5
+ "native_name": "English",
6
+ "aksharamukha_name": "ISO",
7
+ },
8
+ {
9
+ "code": "hi",
10
+ "name": "Hindi",
11
+ "native_name": "हिन्दी",
12
+ "aksharamukha_name": "Devanagari",
13
+ },
14
+ {
15
+ "code": "bn",
16
+ "name": "Bengali",
17
+ "native_name": "বাংলা",
18
+ "aksharamukha_name": "Bengali",
19
+ },
20
+ {
21
+ "code": "ta",
22
+ "name": "Tamil",
23
+ "native_name": "தமிழ்",
24
+ "aksharamukha_name": "Tamil",
25
+ },
26
+ {
27
+ "code": "te",
28
+ "name": "Telugu",
29
+ "native_name": "తెలుగు",
30
+ "aksharamukha_name": "Telugu",
31
+ },
32
+ {
33
+ "code": "kn",
34
+ "name": "Kannada",
35
+ "native_name": "ಕನ್ನಡ",
36
+ "aksharamukha_name": "Kannada",
37
+ },
38
+ {
39
+ "code": "ml",
40
+ "name": "Malayalam",
41
+ "native_name": "മലയാളം",
42
+ "aksharamukha_name": "Malayalam",
43
+ },
44
+ {
45
+ "code": "gu",
46
+ "name": "Gujarati",
47
+ "native_name": "ગુજરાતી",
48
+ "aksharamukha_name": "Gujarati",
49
+ },
50
+ {
51
+ "code": "gr",
52
+ "name": "Grantha",
53
+ "native_name": "𑌗𑍍𑌰𑌨𑍍𑌥",
54
+ "aksharamukha_name": "Grantha",
55
+ },
56
+ {
57
+ "code": "pa",
58
+ "name": "Punjabi",
59
+ "native_name": "ਪੰਜਾਬੀ",
60
+ "aksharamukha_name": "Gurmukhi",
61
+ },
62
+ {
63
+ "code": "as",
64
+ "name": "Assamese",
65
+ "native_name": "অসমীয়া",
66
+ "aksharamukha_name": "Bengali",
67
+ },
68
+ ]
modules/languages/get_v2.py ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pycountry
2
+
3
+ from modules.languages.constants import LANGUAGES
4
+
5
+ async def handle_fetch_languages_v2():
6
+ """
7
+ Returns a single list of language objects.
8
+ display_name = aksharamukha_name if requested, else native_name
9
+ """
10
+ languages = []
11
+
12
+ for lang_info in LANGUAGES:
13
+ # Attempt to fetch English name from pycountry if available
14
+ code = lang_info["code"]
15
+ # py_lang = pycountry.languages.get(alpha_2=code) or pycountry.languages.get(alpha_3=code)
16
+ # english_name = py_lang.name if py_lang else lang_info.get("native_name", code)
17
+
18
+ languages.append(
19
+ {
20
+ "code": code,
21
+ "name": lang_info.get("name"),
22
+ "native_name": lang_info.get("native_name"),
23
+ "aksharamukha_name": lang_info.get("aksharamukha_name"),
24
+ }
25
+ )
26
+
27
+ # Sort alphabetically by English name
28
+ languages.sort(key=lambda x: x["name"])
29
+
30
+ return languages
modules/languages/transliterator.py ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from modules.languages.constants import LANGUAGES
2
+
3
+
4
+ def fn_transliterate(input_text: str, input_language: str = 'autodetect') -> dict:
5
+ """
6
+ Transliterate `input_text` from `input_language` into all target scripts
7
+ defined in LANGUAGES array. Returns a dict mapping language code to
8
+ transliterated text.
9
+ """
10
+ try:
11
+ from aksharamukha import transliterate
12
+
13
+ # Dynamically build target scripts from LANGUAGES
14
+ target_scripts = {lang["code"]: lang["aksharamukha_name"] for lang in LANGUAGES}
15
+
16
+ output = {}
17
+ for code, script_name in target_scripts.items():
18
+ transliterated_text = transliterate.process(input_language, script_name, input_text)
19
+ output[code] = transliterated_text
20
+
21
+ return output
22
+
23
+ except Exception as e:
24
+ print(f"Error transliterating '{input_text[:30]}...': {e}")
25
+ # Fallback: return input text for all languages
26
+ return {lang["code"]: input_text for lang in LANGUAGES}
server.py CHANGED
@@ -15,6 +15,7 @@ from metadata import MetadataWhereClause
15
  from modules.audio.model import AudioRequest, AudioType
16
  from modules.audio.service import svc_get_audio_urls, svc_get_indices_with_audio
17
  from modules.config.categories import get_scripture_categories
 
18
  from modules.quiz.answer_validator import validate_answer
19
  from modules.quiz.models import Question
20
  from modules.quiz.quiz_helper import generate_question
@@ -118,6 +119,12 @@ async def handle_fetch_languages():
118
  languages.sort(key=lambda x: x["name"])
119
  return languages
120
 
 
 
 
 
 
 
121
 
122
  @router.post("/greet")
123
  async def handle_greet(msg: Message):
@@ -538,7 +545,7 @@ def route_get_scripture_categories():
538
 
539
 
540
  @router.get("/donation/products")
541
- def route_get_donation_product_ids(include_tests: bool = True):
542
  products = [
543
  {"id": "donation_unit_0100"},
544
  {"id": "donation_unit_0500"},
 
15
  from modules.audio.model import AudioRequest, AudioType
16
  from modules.audio.service import svc_get_audio_urls, svc_get_indices_with_audio
17
  from modules.config.categories import get_scripture_categories
18
+ from modules.languages.get_v2 import handle_fetch_languages_v2
19
  from modules.quiz.answer_validator import validate_answer
20
  from modules.quiz.models import Question
21
  from modules.quiz.quiz_helper import generate_question
 
119
  languages.sort(key=lambda x: x["name"])
120
  return languages
121
 
122
+ @router.get("/languages_v2")
123
+ async def fn_handle_fetch_languages_v2():
124
+ val = await handle_fetch_languages_v2()
125
+ return val
126
+
127
+
128
 
129
  @router.post("/greet")
130
  async def handle_greet(msg: Message):
 
545
 
546
 
547
  @router.get("/donation/products")
548
+ def route_get_donation_product_ids(include_tests: bool = False):
549
  products = [
550
  {"id": "donation_unit_0100"},
551
  {"id": "donation_unit_0500"},