vikramvasudevan commited on
Commit
3772fe4
·
verified ·
1 Parent(s): 7608d93

Upload folder using huggingface_hub

Browse files
Files changed (3) hide show
  1. config.py +21 -2
  2. db.py +28 -0
  3. modules/kamba_ramayanam_helper.py +158 -0
config.py CHANGED
@@ -1,6 +1,11 @@
1
  from metadata import MetadataWhereClause
2
  from typing import List, Dict
3
 
 
 
 
 
 
4
  import nalayiram_helper
5
 
6
 
@@ -252,7 +257,7 @@ class SanatanConfig:
252
  "field_mapping": {
253
  "text": "pasuram_ta",
254
  "title": lambda doc: f"{doc.get('prabandham_name','')} {doc.get('chapter','')}-{doc.get('decade','')}:{doc.get('position_in_chapter','')}",
255
- "location" : "divya_desams",
256
  "word_by_word_native": "wbw_ta",
257
  "unit_index": "verse",
258
  "transliteration": "pasuram_en",
@@ -456,6 +461,8 @@ class SanatanConfig:
456
  "datatype": "str",
457
  "description": "The name of the Kandam or the chapter.",
458
  "show_as_filter": True,
 
 
459
  },
460
  {
461
  "name": "padalam_en",
@@ -463,12 +470,17 @@ class SanatanConfig:
463
  "datatype": "str",
464
  "description": "The name of the Padalam (Episode) in English.",
465
  "show_as_filter": True,
 
 
466
  },
467
  {
468
  "name": "padalam_ta",
469
  "label": "Padalam name in Tamil",
470
  "datatype": "str",
471
  "description": "The name of the Padalam (Episode) in Tamil.",
 
 
 
472
  },
473
  {
474
  "name": "page",
@@ -783,7 +795,7 @@ class SanatanConfig:
783
  "author",
784
  "chapter_name",
785
  "relative_path",
786
- "location"
787
  }
788
 
789
  config = next((s for s in self.scriptures if s["name"] == scripture_name), None)
@@ -824,3 +836,10 @@ class SanatanConfig:
824
  verse = resolve_field(config.get("unit_field", config.get("unit")))
825
  canonical_doc["verse"] = int(verse) if verse else 0
826
  return canonical_doc
 
 
 
 
 
 
 
 
1
  from metadata import MetadataWhereClause
2
  from typing import List, Dict
3
 
4
+ from modules.kamba_ramayanam_helper import (
5
+ get_list_of_kandams,
6
+ get_list_of_padalams,
7
+ get_list_of_padalams_in_tamil,
8
+ )
9
  import nalayiram_helper
10
 
11
 
 
257
  "field_mapping": {
258
  "text": "pasuram_ta",
259
  "title": lambda doc: f"{doc.get('prabandham_name','')} {doc.get('chapter','')}-{doc.get('decade','')}:{doc.get('position_in_chapter','')}",
260
+ "location": "divya_desams",
261
  "word_by_word_native": "wbw_ta",
262
  "unit_index": "verse",
263
  "transliteration": "pasuram_en",
 
461
  "datatype": "str",
462
  "description": "The name of the Kandam or the chapter.",
463
  "show_as_filter": True,
464
+ "component": "dropdown",
465
+ "lov": lambda: get_list_of_kandams(),
466
  },
467
  {
468
  "name": "padalam_en",
 
470
  "datatype": "str",
471
  "description": "The name of the Padalam (Episode) in English.",
472
  "show_as_filter": True,
473
+ "component": "dropdown",
474
+ "lov": lambda: get_list_of_padalams(),
475
  },
476
  {
477
  "name": "padalam_ta",
478
  "label": "Padalam name in Tamil",
479
  "datatype": "str",
480
  "description": "The name of the Padalam (Episode) in Tamil.",
481
+ "show_as_filter": True,
482
+ "component": "dropdown",
483
+ "lov": lambda: get_list_of_padalams_in_tamil(),
484
  },
485
  {
486
  "name": "page",
 
795
  "author",
796
  "chapter_name",
797
  "relative_path",
798
+ "location",
799
  }
800
 
801
  config = next((s for s in self.scriptures if s["name"] == scripture_name), None)
 
836
  verse = resolve_field(config.get("unit_field", config.get("unit")))
837
  canonical_doc["verse"] = int(verse) if verse else 0
838
  return canonical_doc
839
+
840
+ def get_collection_name(self, scripture_name):
841
+ config = next(
842
+ (s for s in SanatanConfig().scriptures if s["name"] == scripture_name), None
843
+ )
844
+ collection_name = config.get("collection_name")
845
+ return collection_name
db.py CHANGED
@@ -449,3 +449,31 @@ class SanatanDatabase:
449
  print(
450
  f"✅ Finished adding {unit_field} to {unit_counter-1} documents in {collection_name}."
451
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
449
  print(
450
  f"✅ Finished adding {unit_field} to {unit_counter-1} documents in {collection_name}."
451
  )
452
+ def get_list_of_values(self, collection_name: str, metadata_field_name: str) -> list:
453
+ """
454
+ Returns the unique values for a given metadata field in a collection.
455
+ """
456
+ # Get the collection
457
+ collection = self.chroma_client.get_or_create_collection(name=collection_name)
458
+
459
+ # Fetch all metadata from the collection
460
+ query_result = collection.get(include=["metadatas"])
461
+
462
+ values = set() # use a set to automatically deduplicate
463
+
464
+ metadatas = query_result.get("metadatas", [])
465
+ if metadatas:
466
+ # Handle both flat list and nested list formats
467
+ if isinstance(metadatas[0], dict):
468
+ # flat list of dicts
469
+ for md in metadatas:
470
+ if metadata_field_name in md:
471
+ values.add(md[metadata_field_name])
472
+ elif isinstance(metadatas[0], list):
473
+ # nested list
474
+ for md_list in metadatas:
475
+ for md in md_list:
476
+ if metadata_field_name in md:
477
+ values.add(md[metadata_field_name])
478
+
479
+ return sorted(list(values))
modules/kamba_ramayanam_helper.py ADDED
@@ -0,0 +1,158 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ def get_list_of_kandams():
2
+ return sorted([
3
+ "Yudha Kandam",
4
+ "Ayodhya Kandam",
5
+ "Kishkinda Kandam",
6
+ "Aranya Kandam",
7
+ "Sundara Kandam",
8
+ "Kamba Ramayanam- Bala Kandam",
9
+ "1Bala Kandam",
10
+ ])
11
+
12
+
13
+ def get_list_of_padalams():
14
+ return sorted([
15
+ "",
16
+ "The chapter on moon mountain",
17
+ "The chapter on rainy season",
18
+ "The chapter on river",
19
+ "The chapter on lake at Pambai",
20
+ "The chapter on death of Sarabanga",
21
+ "The chapter on floating in oil",
22
+ "The chapter on fire sacrifice",
23
+ "The chapter on handing over",
24
+ "The chapter on killing of Viradha",
25
+ "The chapter on seeing ganges",
26
+ "The chapter on Ahalya",
27
+ "The chapter on picturesque description",
28
+ "The chapter on the great marriage",
29
+ "The chapter on going away for search",
30
+ "The chapter on narration about family of Rama.",
31
+ "The chapter on dancing after drinking",
32
+ "The chapter on conspiracy of Kaikeyi",
33
+ "The chapter on divine incarnation",
34
+ "The chapter on friendship",
35
+ "The chapter on the country",
36
+ "The chapter on Kabandha",
37
+ "The chapter on governance",
38
+ "The chapter on Agasthya",
39
+ "The chapter on looks of MIthila",
40
+ ])
41
+
42
+ def get_list_of_padalams_in_tamil():
43
+ return sorted([
44
+ "",
45
+ "Vidai Kodu Padalam",
46
+ "Kakshi Padalam",
47
+ "Yethir kol Padalam",
48
+ "Soorpankai padalam",
49
+ "Kaarkala Padalam",
50
+ "Pini Veetu padalam",
51
+ "Thiru avathara Padalam",
52
+ "Choodamani padalam",
53
+ "Ezhuchi Padalam",
54
+ "Pambai Vaavi padalam",
55
+ "Poo Koi padalam",
56
+ "Ravanan Kalam Kaan Padalam",
57
+ "Dundhubhi padalam",
58
+ "Arasiyar Padalam",
59
+ "Varai kakshi padalam",
60
+ "Makara Kannan Vadhai padalam",
61
+ "Maya Sithai Padalam",
62
+ "Angadhan Dhoothu Padalam",
63
+ "Thadagai vadhai padalam",
64
+ "Chitrakoota Padalam",
65
+ "KItkindhai Padalam",
66
+ "Raman ther yerum Padalam",
67
+ "Ulaviyar Padalam",
68
+ "Meekshi Padalam",
69
+ "Nikumbalai Yaga Padalam",
70
+ "Mahendra Padalam",
71
+ "Kula murai kilathu Padalam",
72
+ "Kaliyattu Padalam",
73
+ "8,Jambu mali vadhai padalam",
74
+ "Nattu Padalam",
75
+ "Nagara Padalam",
76
+ "Moola Bala Vadhai padalam",
77
+ "Agathiya Padalam",
78
+ "Ahaligai padalam",
79
+ "Oor thedu padalam",
80
+ "Indirachithu vadhai padalam",
81
+ "Natpu Kot Padalam",
82
+ "10Ravanan Vanara thanai kaan Padalam",
83
+ "Padai Kakshi Padalam",
84
+ "Velvi Padalam",
85
+ ".22. Seethai Kalam Kan padalam",
86
+ "Nagar neengu padalam",
87
+ "Ravanan ther yeru padalam",
88
+ "Palli padai padalam",
89
+ "Anuma Padalam",
90
+ "Kharan Vadha Padalam",
91
+ "Vanam pugu Padalam",
92
+ "Kaikeyi choozhvinai Padalam",
93
+ "Kalan Kaan Padalam",
94
+ "Ayomukhi Padalam",
95
+ "Kumbhakarunan Vadhai Padalam",
96
+ "Ravananan Vadhai Padalam",
97
+ "Ani Vakuppu Padalam",
98
+ "Naada vita Padalam",
99
+ "Sampathi Padalam",
100
+ "Karmukha padalam",
101
+ "Sarabangan pirappu neengu padalam",
102
+ "Savari pirappu neengu padalam",
103
+ "Chandra Saila Padalam",
104
+ "Arasiyal padalam",
105
+ "Gangai Padalam",
106
+ "Thailam aatu Padalam",
107
+ "Hiranyan Vadhai Padalam",
108
+ "Ravanana Mandira Padalam",
109
+ "8,Otthu Kelvi Padalam",
110
+ "Ilangai kaan Padalam",
111
+ "Athikayan vadhai Padalam",
112
+ "Ravanan choozhchi Padalam",
113
+ "Mandhira Padalam",
114
+ "Maya Janaka Padalam",
115
+ "Mudal por puri Padalam",
116
+ "Kolam kaan padalam",
117
+ "Varunanai vazhi vendu padalam",
118
+ "Parasurama Padalam",
119
+ "Vel Yetha Padalam",
120
+ "Mareechan vadhai padalam",
121
+ "Naga Pasa Padalam",
122
+ "Mithilai Kakshi Padalam",
123
+ "PIlam pugu padalam",
124
+ "Thirumudi chootu Padalam",
125
+ "Undattu Padalam",
126
+ "Kadal kaan Padalam",
127
+ "23,Maruthu malai Padalam",
128
+ "Sethu Bandhana Padalam",
129
+ "Ilankai eriyuttu padalam",
130
+ "4,Veedanan adaikkala Padalam",
131
+ "Vali Vadhai Padalam",
132
+ "AAthu Padalam",
133
+ "Neer Vilayattu Padalam",
134
+ "Padai thalaivar Vadhai Padalam",
135
+ "Kinkarar vadhai padalam",
136
+ "Kavandhan Padalam",
137
+ "Pozhil irutha Padalam",
138
+ "Chadayu kaan Padalam",
139
+ "Kayadai padalam",
140
+ "Ilangai kelvi Padalam",
141
+ "Dandakaranya Padalam",
142
+ "11,Maguda Banga Padalam",
143
+ "AAru chel padalam",
144
+ "Kadal thavu Padalam",
145
+ "Brahmathira Padalam",
146
+ "Gangai kaan padalam",
147
+ "Ravanan Soka Padalam",
148
+ "Guha Padalam",
149
+ "Soorpanakai Choozhchi padalam",
150
+ "Katimana Padalam",
151
+ "Maramara Padalam",
152
+ "32,Vanarar kalam kaan Padalam",
153
+ "14,Thiruvadi thozhutha Padalam",
154
+ "Thiruvadi Chootu Padalam",
155
+ "Aaru chel padalam",
156
+ "Viradhan Vadhai padalam",
157
+ "Jatayu uyir neetha padalam",
158
+ ])