Moibe commited on
Commit
219c926
·
1 Parent(s): bddc6a2

Timezone optimization

Browse files
Files changed (6) hide show
  1. app.py +0 -1
  2. conexion_firebase.py +1 -2
  3. funciones.py +2 -0
  4. herramientas.py +21 -18
  5. nextTest.py +0 -4
  6. requirements.txt +2 -1
app.py CHANGED
@@ -34,7 +34,6 @@ async def genera_imagen(platillo: str = Form(...)):
34
 
35
  #Obtengo los segundos disponibles de procesamiento para saber si tengo GPU disponible de la capa gratuita o me voy a método cobrado.
36
  seconds_available = herramientas.obtenSegundosDisponibles()
37
- print("Los segundos de procesamiento disponibles el día de hoy son: ", seconds_available)
38
  print(herramientas.imprimeTime())
39
 
40
  if seconds_available > globales.work_cost:
 
34
 
35
  #Obtengo los segundos disponibles de procesamiento para saber si tengo GPU disponible de la capa gratuita o me voy a método cobrado.
36
  seconds_available = herramientas.obtenSegundosDisponibles()
 
37
  print(herramientas.imprimeTime())
38
 
39
  if seconds_available > globales.work_cost:
conexion_firebase.py CHANGED
@@ -28,8 +28,7 @@ def editaDato(coleccion, dato, info, contenido):
28
 
29
  #Primero debemos definir la referencia al documento, o sea a la hoja de usuario.
30
  doc_ref = db.collection(coleccion).document(dato)
31
- print("Doc ref es: ", doc_ref)
32
-
33
  doc_ref.update({
34
  # 'quote': quote,
35
  info: contenido,
 
28
 
29
  #Primero debemos definir la referencia al documento, o sea a la hoja de usuario.
30
  doc_ref = db.collection(coleccion).document(dato)
31
+
 
32
  doc_ref.update({
33
  # 'quote': quote,
34
  info: contenido,
funciones.py CHANGED
@@ -75,6 +75,8 @@ def genera_platillo_inference(platillo):
75
  herramientas.modificaModeloActual(modelo)
76
  return f"Error: {e}"
77
 
 
 
78
  img_io = io.BytesIO()
79
  image.save(img_io, "PNG")
80
  img_io.seek(0)
 
75
  herramientas.modificaModeloActual(modelo)
76
  return f"Error: {e}"
77
 
78
+ #Cuando es GPU, debe de restar segundos disponibles de HF
79
+ herramientas.restaSegundosGPU(globales.work_cost)
80
  img_io = io.BytesIO()
81
  image.save(img_io, "PNG")
82
  img_io.seek(0)
herramientas.py CHANGED
@@ -3,6 +3,7 @@ from datetime import datetime
3
  from datetime import datetime
4
  import conexion_firebase
5
  import globales
 
6
 
7
  if globales.servidor == "moibe":
8
  segundos = "segundos_dev"
@@ -15,14 +16,10 @@ def obtenUltimoTimestamp():
15
  """
16
  Obtiene el último timestamp de renovación guardado.
17
  """
18
- print("Estoy en obtenUltimoTimestamp")
19
- print("La var last_timestamp es : ", last_timestamp)
20
  resultado = conexion_firebase.obtenDato('nowme', 'huggingface', last_timestamp)
21
 
22
- print(f"El resultado es: {resultado} y su tipo es {type(resultado)}... ")
23
  return resultado
24
 
25
-
26
  def esNuevoDia():
27
  """
28
  Compara dos timestamps (en formato string ISO) y devuelve True si han
@@ -42,8 +39,6 @@ def esNuevoDia():
42
 
43
  def obtenSegundosDisponibles():
44
 
45
- print("Obteniendo segundos disponibles...")
46
-
47
  if esDiaSiguiente() == True:
48
  renuevaSegundosDisponibles()
49
  renuevaModeloPrincipal()
@@ -58,7 +53,6 @@ def renuevaSegundosDisponibles():
58
  conexion_firebase.editaDato('nowme', 'huggingface', segundos, quota_total)
59
  renuevaTimestampActual()
60
 
61
-
62
  def renuevaTimestampActual():
63
 
64
  timestamp_actual = int(time.time())
@@ -71,15 +65,12 @@ def restaSegundosGPU(cuantos_segundos):
71
  """
72
 
73
  segundos_disponibles = obtenSegundosDisponibles()
74
- print("Los segundos obtenidos de obtenSegundosDisponibles son: ", segundos_disponibles)
75
 
76
  # Restar los segundos
77
  nuevos_segundos_disponibles = segundos_disponibles - cuantos_segundos
78
- print("La resta o los nuevos_segundos_disponibles son: ", nuevos_segundos_disponibles)
79
-
80
  conexion_firebase.editaDato('nowme', 'huggingface', segundos, nuevos_segundos_disponibles)
81
 
82
-
83
  def modificaModeloActual(nuevo_modelo):
84
  """
85
  Actualiza el archivo archivos/modelo_actual.txt con el modelo funcional en caso de
@@ -90,7 +81,6 @@ def modificaModeloActual(nuevo_modelo):
90
  conexion_firebase.editaDato('nowme', 'huggingface', 'modelo_actual', nuevo_modelo)
91
  print(f"Se actualizó el modelo actual: {modelo_actual} por {nuevo_modelo}.")
92
 
93
-
94
  def renuevaModeloPrincipal():
95
  #Obten el modelo principal (default).
96
  modelo_principal = conexion_firebase.obtenDato('nowme', 'huggingface', 'modelo_principal')
@@ -98,10 +88,24 @@ def renuevaModeloPrincipal():
98
  conexion_firebase.editaDato('nowme', 'huggingface', 'modelo_actual', modelo_principal)
99
 
100
  def imprimeTime():
101
- timestamp_actual = int(time.time())
102
- fecha_hora = datetime.fromtimestamp(timestamp_actual)
103
- fecha_hora_legible = fecha_hora.strftime('%Y-%m-%d %H:%M:%S')
104
- return fecha_hora_legible
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
 
106
  def esDiaSiguiente():
107
  """
@@ -132,5 +136,4 @@ def esDiaSiguiente():
132
  print(f"Estoy comparando fecha registro {fecha_registro} con fecha actual {fecha_actual}...")
133
 
134
  # Verificar si las fechas son diferentes
135
- return fecha_actual > fecha_registro
136
-
 
3
  from datetime import datetime
4
  import conexion_firebase
5
  import globales
6
+ import pytz
7
 
8
  if globales.servidor == "moibe":
9
  segundos = "segundos_dev"
 
16
  """
17
  Obtiene el último timestamp de renovación guardado.
18
  """
 
 
19
  resultado = conexion_firebase.obtenDato('nowme', 'huggingface', last_timestamp)
20
 
 
21
  return resultado
22
 
 
23
  def esNuevoDia():
24
  """
25
  Compara dos timestamps (en formato string ISO) y devuelve True si han
 
39
 
40
  def obtenSegundosDisponibles():
41
 
 
 
42
  if esDiaSiguiente() == True:
43
  renuevaSegundosDisponibles()
44
  renuevaModeloPrincipal()
 
53
  conexion_firebase.editaDato('nowme', 'huggingface', segundos, quota_total)
54
  renuevaTimestampActual()
55
 
 
56
  def renuevaTimestampActual():
57
 
58
  timestamp_actual = int(time.time())
 
65
  """
66
 
67
  segundos_disponibles = obtenSegundosDisponibles()
68
+ print("Segundos disponibles: ", segundos_disponibles)
69
 
70
  # Restar los segundos
71
  nuevos_segundos_disponibles = segundos_disponibles - cuantos_segundos
 
 
72
  conexion_firebase.editaDato('nowme', 'huggingface', segundos, nuevos_segundos_disponibles)
73
 
 
74
  def modificaModeloActual(nuevo_modelo):
75
  """
76
  Actualiza el archivo archivos/modelo_actual.txt con el modelo funcional en caso de
 
81
  conexion_firebase.editaDato('nowme', 'huggingface', 'modelo_actual', nuevo_modelo)
82
  print(f"Se actualizó el modelo actual: {modelo_actual} por {nuevo_modelo}.")
83
 
 
84
  def renuevaModeloPrincipal():
85
  #Obten el modelo principal (default).
86
  modelo_principal = conexion_firebase.obtenDato('nowme', 'huggingface', 'modelo_principal')
 
88
  conexion_firebase.editaDato('nowme', 'huggingface', 'modelo_actual', modelo_principal)
89
 
90
  def imprimeTime():
91
+ """
92
+ Devuelve la fecha y hora actual en la zona horaria de la Ciudad de México (GMT-6).
93
+ """
94
+ # 1. Definir la zona horaria de la Ciudad de México
95
+ # Puedes usar 'America/Mexico_City' para que pytz maneje el horario de verano automáticamente.
96
+ mexico_city_tz = pytz.timezone('America/Mexico_City')
97
+
98
+ # 2. Obtener la hora actual en UTC
99
+ utc_now = datetime.now(pytz.utc)
100
+
101
+ # 3. Convertir la hora UTC a la zona horaria deseada
102
+ mexico_city_now = utc_now.astimezone(mexico_city_tz)
103
+
104
+ # 4. Formatear la fecha y hora
105
+ # El formato que deseas es "YYYY-MM-DD HH:MM:SS"
106
+ formatted_time = mexico_city_now.strftime("%Y-%m-%d %H:%M:%S")
107
+
108
+ return formatted_time
109
 
110
  def esDiaSiguiente():
111
  """
 
136
  print(f"Estoy comparando fecha registro {fecha_registro} con fecha actual {fecha_actual}...")
137
 
138
  # Verificar si las fechas son diferentes
139
+ return fecha_actual > fecha_registro
 
nextTest.py DELETED
@@ -1,4 +0,0 @@
1
- import herramientas
2
-
3
- print("Resultado: ")
4
- print(herramientas.esDiaSiguiente(1746553638))
 
 
 
 
 
requirements.txt CHANGED
@@ -3,4 +3,5 @@ fastapi[standard]
3
  huggingface_hub
4
  gradio_client
5
  Pillow
6
- firebase_admin
 
 
3
  huggingface_hub
4
  gradio_client
5
  Pillow
6
+ firebase_admin
7
+ pytz