nos commited on
Commit
84e7dde
1 Parent(s): 58707c3

Update lib/gematria.py

Browse files
Files changed (1) hide show
  1. lib/gematria.py +0 -110
lib/gematria.py CHANGED
@@ -114,113 +114,3 @@ def main():
114
 
115
  if __name__ == "__main__":
116
  main()
117
- from prettytable import PrettyTable
118
- from colorama import Fore, Style
119
- from collections import defaultdict
120
-
121
- # Función para calcular el valor de gematria de una letra hebrea antigua
122
- def gematria(letra):
123
- valores = {'א': 1, 'ב': 2, 'ג': 3, 'ד': 4, 'ה': 5, 'ו': 6, 'ז': 7, 'ח': 8, 'ט': 9,
124
- 'י': 10, 'כ': 20, 'ל': 30, 'מ': 40, 'נ': 50, 'ס': 60, 'ע': 70, 'פ': 80,
125
- 'צ': 90, 'ק': 100, 'ר': 200, 'ש': 300, 'ת': 400, 'ך': 20, 'ם': 40, 'ן': 50, 'ף': 80, 'ץ': 90}
126
- return valores.get(letra, 0)
127
-
128
- # Función para generar todas las combinaciones posibles de dos letras en hebreo antiguo
129
- def generar_combinaciones():
130
- letras = ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ז', 'ח', 'ט', 'י', 'כ', 'ל', 'מ', 'נ', 'ס', 'ע', 'פ', 'צ', 'ק', 'ר', 'ש', 'ת',
131
- 'ך', 'ם', 'ן', 'ף', 'ץ']
132
- combinaciones = []
133
- for letra1 in letras:
134
- for letra2 in letras:
135
- combinaciones.append(letra1 + letra2)
136
- return combinaciones
137
-
138
- # Función para calcular la suma de los valores de gematria y el producto de los valores de gematria de una combinación
139
- def calcular_valores(combinacion):
140
- valor1 = gematria(combinacion[0])
141
- valor2 = gematria(combinacion[1])
142
- suma = valor1 + valor2
143
- producto = valor1 * valor2
144
- ratio = valor1 / valor2 if valor2 != 0 else float('inf')
145
- return suma, producto, ratio
146
-
147
- # Función principal
148
- def main():
149
- combinaciones = generar_combinaciones()
150
- table = PrettyTable()
151
- table.field_names = ["#", Fore.BLUE + "Producto" + Style.RESET_ALL,
152
- Fore.BLUE + "Suma" + Style.RESET_ALL,
153
- Fore.BLUE + "Ratio" + Style.RESET_ALL,
154
- Fore.BLUE + "Valor 2" + Style.RESET_ALL,
155
- Fore.BLUE + "Valor 1" + Style.RESET_ALL,
156
- Fore.BLUE + "Combinación" + Style.RESET_ALL]
157
-
158
- # Diccionario de combinaciones agrupadas por ratio
159
- combinaciones_por_ratio = defaultdict(set)
160
-
161
- # Versos del Génesis Sefardí (ejemplo)
162
- versos_genesis_sefardi = [
163
- "בראשית ברא אלהים את השמים ואת הארץ",
164
- "והארץ היתה תהו ובהו וחשך על־פני תהום ורוח אלהים מרחפת על־פני המים",
165
- "ויאמר אלהים יהי אור ויהי־אור",
166
- "וירא אלהים את־האור כי־טוב ויבדל אלהים בין האור ובין החשך",
167
- "ויקרא אלהים לאור יום ולחשך קרא לילה ויהי־ערב ויהי־בקר יום אחד"
168
- # Agrega más versos según sea necesario...
169
- ]
170
- versos_genesis_sefardi = json.loads(open("genesis.json","r").read())["text"][0]
171
-
172
- # Función para obtener el primer par de letras de un verso
173
- def obtener_primer_par_letras(verso):
174
- for i in range(len(verso) - 1):
175
- if verso[i].isalpha() and verso[i+1].isalpha():
176
- return verso[i:i+2]
177
- return None
178
-
179
- # Diccionario para almacenar el primer par de letras y su ratio por verso
180
- primer_par_por_verso = {}
181
- for verso in versos_genesis_sefardi:
182
- primer_par = obtener_primer_par_letras(verso)
183
- if primer_par:
184
- suma, producto, ratio = calcular_valores(primer_par)
185
- primer_par_por_verso[verso] = (primer_par, ratio)
186
-
187
- # Diccionario para agrupar los primeros pares de letras por ratio
188
- primer_par_por_ratio = defaultdict(list)
189
- for verso, (primer_par, ratio) in primer_par_por_verso.items():
190
- primer_par_por_ratio[ratio].append((primer_par, verso))
191
-
192
- # Crear la tabla de primeros pares de letras por ratio
193
- table_primer_par = PrettyTable()
194
- table_primer_par.field_names = [Fore.BLUE + "Ratio" + Style.RESET_ALL, Fore.BLUE + "Primer Par" + Style.RESET_ALL, Fore.BLUE + "Verso" + Style.RESET_ALL]
195
- for ratio, pares_verso in sorted(primer_par_por_ratio.items(), key=lambda x: x[0], reverse=True):
196
- for primer_par, verso in pares_verso:
197
- table_primer_par.add_row([f"{ratio:.2f}", primer_par, verso])
198
-
199
- print(table_primer_par)
200
-
201
- # Procesar combinaciones y crear la tabla principal
202
- for idx, combinacion in enumerate(combinaciones, start=1):
203
- suma, producto, ratio = calcular_valores(combinacion)
204
- combinacion_str = combinacion
205
- # Resaltar en verde si la combinación está en el conjunto de combinaciones del Génesis Sefardí
206
- if combinacion in set(''.join(obtener_primer_par_letras(verso)) for verso in versos_genesis_sefardi):
207
- combinacion_str = Fore.GREEN + combinacion + Style.RESET_ALL
208
- table.add_row([idx, producto, suma, f"{ratio:.2f}", gematria(combinacion[1]), gematria(combinacion[0]), combinacion_str])
209
- combinaciones_por_ratio[ratio].add(combinacion)
210
-
211
- # Mostrar la tabla de combinaciones
212
- print("\nTabla de combinaciones:")
213
- print(table)
214
-
215
- # Mostrar la tabla de combinaciones agrupadas por ratio
216
- print("\nTabla de combinaciones agrupadas por ratio:")
217
- table_ratio = PrettyTable()
218
- table_ratio.field_names = [Fore.BLUE + "Ratio" + Style.RESET_ALL, Fore.BLUE + "Combinaciones" + Style.RESET_ALL]
219
- for ratio, combinaciones in sorted(combinaciones_por_ratio.items(), key=lambda x: x[0], reverse=True):
220
- combinaciones_str = ", ".join(combinaciones)
221
- table_ratio.add_row([f"{ratio:.2f}", combinaciones_str])
222
- print(table_ratio)
223
-
224
- if __name__ == "__main__":
225
- main()
226
-
 
114
 
115
  if __name__ == "__main__":
116
  main()