Spaces:
Configuration error
Configuration error
# -*- coding: utf-8 -*- | |
""" | |
Created on Thu Dec 16 16:29:25 2021 | |
@author: bullm | |
""" | |
import streamlit as st | |
from datetime import datetime | |
from datetime import timedelta | |
import pandas as pd | |
import os | |
import boto3 | |
import json | |
import io | |
import xlsxwriter | |
def save_s3(key, secret_key, bucket, df, path): | |
with io.BytesIO() as output: | |
with pd.ExcelWriter(output, engine='xlsxwriter') as writer: | |
df.to_excel(writer, 'sheet_name') | |
data = output.getvalue() | |
s3 = boto3.resource('s3', aws_access_key_id = key, aws_secret_access_key= secret_key) | |
s3.Bucket(bucket).put_object(Key=path, Body=data) | |
def read_excel_s3(key, secret_key, bucket, path): | |
s3_client = boto3.client('s3', aws_access_key_id = key, aws_secret_access_key= secret_key) | |
response = s3_client.get_object(Bucket=bucket, Key=path) | |
data = response["Body"].read() | |
df = pd.read_excel(io.BytesIO(data)) | |
return df | |
def log(func): | |
""" | |
Log portal permite almacenar las visitas que tienen tanto | |
las vistas como las subvistas, esta funcion se utiliza como decorador | |
""" | |
def visita_vista(*args, **kwargs): | |
key ='AKIARYMZ4J2YQDB66VX4' | |
secret_key = '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' | |
bucket='portallvam' | |
path ='Logs.xlsx' | |
analista = st.session_state.key | |
fecha = datetime.today() | |
data = read_excel_s3(key, secret_key, bucket, 'Logs.xlsx')[['Analista', 'Fecha', 'Vista', | |
'Subvista']] | |
vista = st.session_state['Funcion'] | |
subvista = st.session_state['Subvista'] | |
last_view = data.iloc[-1] | |
last_analista = last_view["Analista"] | |
last_vista = last_view["Vista"] | |
last_subvista = last_view["Subvista"] | |
last_fecha = last_view["Fecha"] | |
delta_t = fecha - last_fecha | |
if analista == last_analista and vista == last_vista: | |
if last_subvista == subvista and delta_t < timedelta(minutes=10): | |
pass | |
else: | |
data = data.append({"Analista": analista, "Fecha": fecha, | |
"Vista": vista, "Subvista": subvista}, | |
ignore_index=True) | |
save_s3(key, secret_key, bucket, data, path) | |
else: | |
data = data.append({"Analista": analista, "Fecha": fecha, | |
"Vista": vista, "Subvista": subvista}, | |
ignore_index=True) | |
save_s3(key, secret_key, bucket, data, path) | |
# data.to_excel('Data/Logs.xlsx', engine='openpyxl') | |
func(*args, **kwargs) | |
return visita_vista | |