Spaces:
Sleeping
Sleeping
File size: 2,991 Bytes
3045238 99b3ef5 3045238 a676448 3045238 e4ee4df 3045238 7a778e3 420ea26 3045238 7a778e3 1b969ef 7a778e3 420ea26 e4ee4df 420ea26 7a778e3 420ea26 7a778e3 e4ee4df 420ea26 e4ee4df 420ea26 3045238 420ea26 3045238 420ea26 e4ee4df 420ea26 e4ee4df 7a778e3 3045238 e4ee4df 7a778e3 e4ee4df 7a778e3 3045238 7a778e3 1b969ef 420ea26 3045238 7a778e3 420ea26 1b969ef 3045238 a676448 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
import logging
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
import gradio as gr
from gradio_calendar import Calendar
from gematria import calculate_gematria, strip_diacritics
from datetime import datetime, timedelta
import json
# --- Helper Functions ---
def calculate_gematria_sum(text):
if text:
text_gematria = calculate_gematria(strip_diacritics(text))
return text_gematria
else:
return None
def date_to_words(date_string):
"""
Konvertiert ein Datum im Format YYYY-MM-DD in die englische Schreibweise.
Args:
date_string: Ein Datum im Format YYYY-MM-DD.
Returns:
Einen String mit der englischen Schreibweise des Datums.
"""
date_obj = datetime.strptime(date_string, "%Y-%m-%d")
return date_obj.strftime("%A")
def perform_gematria_calculation_for_date_range(start_date, end_date):
logger.info(f"Startdatum: {start_date}, Enddatum: {end_date}") # Debugging-Ausgabe
results = {}
delta = timedelta(days=1)
current_date = start_date
while current_date <= end_date:
# Datum in String umwandeln
date_string = current_date.strftime("%Y-%m-%d")
date_words = date_to_words(date_string)
logger.info(f"Datum: {current_date}, Tagesnamen: {date_words}") # Debugging-Ausgabe
gematria_sum = calculate_gematria_sum(date_words)
logger.info(f"Gematria-Summe: {gematria_sum}") # Debugging-Ausgabe
if gematria_sum not in results:
results[gematria_sum] = []
results[gematria_sum].append({
"date": current_date.strftime('%Y-%m-%d'),
"date_words": date_words
})
current_date += delta
return results
def generate_json_output(results, start_date, end_date):
result = {
"DateRange": {
"StartDate": start_date.strftime("%Y-%m-%d"),
"EndDate": end_date.strftime("%Y-%m-%d")
},
"Results": results
}
return json.dumps(result, indent=4, ensure_ascii=False)
# --- Main Gradio App ---
with gr.Blocks() as app:
with gr.Row():
start_date = Calendar(type="datetime", label="Start Date")
end_date = Calendar(type="datetime", label="End Date")
calculate_btn = gr.Button("Calculate Gematria for Date Range")
json_output = gr.Textbox(label="JSON Output")
# --- Event Handlers ---
def perform_calculation(start_date, end_date):
logger.info(f"perform_calculation aufgerufen mit: start_date={start_date}, end_date={end_date}")
results = perform_gematria_calculation_for_date_range(start_date, end_date)
json_result = generate_json_output(results, start_date, end_date)
return json_result
# --- Event Triggers ---
calculate_btn.click(
perform_calculation,
inputs=[start_date, end_date],
outputs=[json_output],
api_name="calculate_gematria"
)
if __name__ == "__main__":
app.launch(share=False)
|