Best Python code snippet using Airtest
config.py
Source:config.py
1# -*- coding: utf-8 -*-2"""3Created on Sat Dec 19 06:56:38 20204@author: C481425"""6import os7contenido=os.listdir("G://")8for i in contenido:9 if i.startswith('Unidades'):10 path_g = i11PATH_APP = "G://" + path_g12PATH_CONFIGURACION_APP = PATH_APP + "/APP-KPIs/CONFIGURACION/"13PATH_INFORME_DIARIO = PATH_APP + "/APP-KPIs/INFORME-DIARIO/"14PATH_COSTES_CECO = PATH_APP + "/APP-KPIs/COSTES/CECO/"15PATH_COSTES_CONFIGURACION = PATH_APP + "/APP-KPIs/COSTES/CONFIGURACION/"16PATH_COSTES_ORDEN = PATH_APP + "/APP-KPIs/COSTES/ORDEN/"17PATH_COSTES_OUTPUT = PATH_APP + "/APP-KPIs/COSTES/OUTPUT/"18PATH_COSTES_OUTPUT_KPISITES = PATH_APP + "/ODRMP - MANTENIMIENTO PRODUCTIVO/11 - KPI-SITES/COSTES/"19PATH_COSTES_PEP = PATH_APP + "/APP-KPIs/COSTES/PEP/"20PATH_COSTES_GRAFOS = PATH_APP + "/APP-KPIs/COSTES/GRAFOS/"21PATH_REPUESTOS_MAXR = PATH_APP + "/APP-KPIs/REPUESTOS/MAXR/"22PATH_REPUESTOS_OUTPUT = PATH_APP + "/APP-KPIs/REPUESTOS/OUTPUT/"23PATH_REPUESTOS_OUTPUT_KPISITES = PATH_APP + "/ODRMP - MANTENIMIENTO PRODUCTIVO/11 - KPI-SITES/REPUESTOS/"24PATH_EFICIENCIA_HOT = PATH_APP + "/APP-KPIs/EFICIENCIA-HISTORICO-OT/"25PATH_TIEMPO_PRODUCCION = PATH_APP + "/APP-KPIs/TIEMPO-PRODUCCION/"26PATH_KPI_SITES_HOT = PATH_APP + "/ODRMP - MANTENIMIENTO PRODUCTIVO/11 - KPI-SITES/HISTORICO OTs/"27PATH_KPI_SITES_TPO_PRODUCCION = PATH_APP + "/ODRMP - MANTENIMIENTO PRODUCTIVO/11 - KPI-SITES/TIEMPOS PRODUCCION/"28PATH_KPI_SITES_ADH_MTO = PATH_APP + "/ODRMP - MANTENIMIENTO PRODUCTIVO/11 - KPI-SITES/ADHERENCIA MP/"29PATH_KPI_SITES_ADH_MC = PATH_APP + "/ODRMP - MANTENIMIENTO PRODUCTIVO/11 - KPI-SITES/ADHERENCIA MC/"30PATH_KPI_SITES_RATIO_MP_MC = PATH_APP + "/ODRMP - MANTENIMIENTO PRODUCTIVO/11 - KPI-SITES/RATIO MP_MC/"31PATH_ADHERENCIA_MP = PATH_APP + "/APP-KPIs/ADHERENCIA-MP/"32PATH_ADHERENCIA_MC = PATH_APP + "/APP-KPIs/ADHERENCIA-MC/"33PATH_RATIO_MP_MC = PATH_APP + "/APP-KPIs/RATIO MP_MC/"34CABECERA_TXT_HOT = "| Cl.|T.Trabajo|Orden |Ubicación técnica |Denominación objeto |Equipo |Fe.entrada|Inic.extr.|Fin extr. |F.Cierre T|Texto breve |Status sistema |Status usuario |Pl.MantPrv | Sum CPLA|Sum PSUP| Sum PMAT| Suma PAIR| Sum ...|Tiempo Res|H. parada| Tiem Tota|Trbjo real|Fallo |Problema |Cód. cat.|Ce.coste|Denom.ubic.técnica |Fecha ref.|F.Cier Com|Inicio |Inic.real |Fin real |Liber. |Fin progr.|Fin real|CGH|GrpHRuta|Hist. dsd |H.Cier Com|HoraCierrT|HoraFinExt|Fin (hora)|Hora inic.|HoraRef |H. inicio|Hora inic.|In.real |Hr. crea|Inic.prog.|Pos.PM|"35CABECERA_TXT_GRAFOS ="|ceco|num_empleado|nombre_empleado|fecha|denominacion_operacion|denominacion_grafo|denominacion_pep|horas|grafo|pep|"36 37# Parametro para seleccionar tipo de reporte Informe Diario38ID_ESTANDAR = 139ID_ABIERTAS = 240ID_ERRORES = 3 41 42PROGRAMAS = ['A320','A330','A350','A380','PINT','SAUX','EXPE']43STATUS_OT = ['CPLA','PMAT','PSUP','...','PAIR','CACL','CERR','SUPE','CTEC',\44 'KKMP','NLIQ','NOTP','LIBE','IMPR','DMNV','MOVM','RECH','NEJE']45FECHAS_HOT = {46 2019 :{47 '2019-Q1':{48 'DESDE':'01.01.2019',49 'HASTA':'31.03.2019'},50 '2019-Q2':{51 'DESDE':'01.04.2019',52 'HASTA':'30.06.2019'},53 '2019-Q3':{54 'DESDE':'01.07.2019',55 'HASTA':'30.09.2019'},56 '2019-Q4':{57 'DESDE':'01.10.2019',58 'HASTA':'31.12.2019'}},59 2020 :{60 '2020-Q1':{61 'DESDE':'01.01.2020',62 'HASTA':'31.03.2020'},63 '2020-Q2':{64 'DESDE':'01.04.2020',65 'HASTA':'30.06.2020'},66 '2020-Q3':{67 'DESDE':'01.07.2020',68 'HASTA':'30.09.2020'},69 '2020-Q4':{70 'DESDE':'01.10.2020',71 'HASTA':'31.12.2020'}},72 2021 :{73 '2021-Q1':{74 'DESDE':'01.01.2021',75 'HASTA':'31.03.2021'},76 '2021-Q2':{77 'DESDE':'01.04.2021',78 'HASTA':'30.06.2021'},79 '2021-Q3':{80 'DESDE':'01.07.2021',81 'HASTA':'30.09.2021'},82 '2021-Q4':{83 'DESDE':'01.10.2021',84 'HASTA':'31.12.2021'}},85 2022 :{86 '2022-Q1':{87 'DESDE':'01.01.2022',88 'HASTA':'31.03.2022'},89 '2022-Q2':{90 'DESDE':'01.04.2022',91 'HASTA':'30.06.2022'},92 '2022-Q3':{93 'DESDE':'01.07.2022',94 'HASTA':'30.09.2022'},95 '2022-Q4':{96 'DESDE':'01.10.2022',97 'HASTA':'31.12.2022'}} 98 }99NOMBRE_COLUMNAS_ZPM_HTO = {100 'Cl.':'clase_orden',101 'T.Trabajo':'tipo_trabajo',102 'Orden':'orden',103 'Ubicación técnica':'ubicacion_tecnica',104 'Denominación objeto':'denominacion_objeto',105 'Equipo':'equipo',106 'Fe.entrada':'fecha_entrada',107 'Inic.extr.':'fecha_inicio_extrema',108 'Fin extr.':'fecha_fin_extrema',109 'F.Cierre T':'fecha_cierre_tecnico',110 'Texto breve':'texto_breve',111 'Status sistema':'status_sistema',112 'Status usuario':'status_usuario',113 'Pl.MantPrv':'plan_mto_preventivo',114 'Sum CPLA':'sum_cpla',115 'Sum PSUP':'sum_psup',116 'Sum PMAT':'sum_pmat',117 'Suma PAIR':'sum_pair',118 'Sum ...':'tiempo_resolucion',119 'Tiempo Res':'tiempo_respuesta',120 'H. parada':'tiempo_parada',121 'Tiem Tota':'tiempo_total',122 'Trbjo real':'trabajo_real',123 'Fallo':'fallo',124 'Problema':'problema',125 'Cód. cat.':'cod_cat_fallo',126 'Ce.coste':'ceco',127 'Denom.ubic.técnica':'denominacion_ubicacion_tecnica',128 'Fecha ref.':'fecha_referencia',129 'F.Cier Com':'fecha_cierre_comercial',130 'Inicio':'fecha_inicio',131 'Inic.real':'fecha_inicio_real',132 'Fin real':'fecha_fin_real',133 'Liber.':'fecha_liberacion',134 'Fin progr.':'fecha_fin_programado',135 'Fin real.1':'hora_fin_real',136 'CGH':'contador_grupo_hruta',137 'GrpHRuta':'grphruta',138 'Hist. dsd':'fecha_historico_desde',139 'H.Cier Com':'hora_cierre_comercial',140 'HoraCierrT':'hora_cierre_tecnico',141 'HoraFinExt':'hora_fin_extrema',142 'Fin (hora)':'hora_fin_programacion',143 'Hora inic.':'hora_inicio_programacion',144 'HoraRef':'hora_referencia',145 'H. inicio':'hora_inicio',146 'Hora inic..1':'hora_inicio_extrema',147 'In.real':'hora_inicio_real',148 'Hr. crea':'hora_creacion',149 'Inic.prog.':'fecha_inicio_programado',150 'Pos.PM':'posicion_mantenimiento'}151# Plantilla HTML para INFORME DIARIO152HTML_ID={'CABECERA': """<!DOCTYPE html>153 <html>154 <head>155 <style>156 table, th, td {157 border: 1px solid black;158 border-collapse: collapse;159 }160 th {161 padding: 5px;162 text-align: center;163 }164 td { 165 padding: 5px 10px;166 text-align: center;167 }168 h2, img {169 font-size: 30px;170 text-align: center;171 display: inline-block;172 }173 @media print {174 @page {175 size:landscape;176 margin: 1;177 }178 }179 </style>180 </head>181 <body>182 <h2><img style="width: 10%"; src="{PATH_LOGO}AIRBUS_Blue.png"></img>ZPM_REPORT_MWO PUERTO REAL</h2>183 <h3>Informe {TIPO_REPORTE} Desde: {FECHA_INI} Hasta: {FECHA_FIN}</h3>184 <table style="width:100%">""",185 'TABLA' : """186 <tr>187 <td style="color:{COLOR_GENERAL}">{01}</td>188 <td style="color:{COLOR_GENERAL}">{02}</td>189 <td style="color:{COLOR_GENERAL}">{03}</td>190 <td rowspan="3", style="color:{COLOR_GENERAL}">{04}</td>191 <td colspan="2", style="color:{COLOR_GENERAL}">{05}</td>192 <td style="color:{COLOR_GENERAL}">{07}</td>193 <td style="color:{COLOR_GENERAL}">{08}</td>194 <td style="color:{COLOR_GENERAL}">{09}</td>195 <td style="color:{COLOR_GENERAL}">{010}</td>196 <td style="color:{COLOR_GENERAL}">{011}</td>197 </tr>198 <tr>199 <td rowspan="2", style="font-size: 30px; color:{COLOR_TIPO_TRABAJO}">{11}</td>200 <td rowspan="2", style="color:{COLOR_GENERAL}">{12}</td>201 <td rowspan="3", style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{13}</td> 202 <td style="color:{COLOR_GENERAL}">{15}</td>203 <td style="color:{COLOR_GENERAL}">{16}</td>204 <td rowspan="3", style="font-size: 30px; color:{COLOR_HORA_PARADA}; border-bottom: 4px solid #000">{17}</td>205 <td style="color:{COLOR_GENERAL}">{18}</td>206 <td style="color:{COLOR_GENERAL}">{19}</td>207 <td style="color:{COLOR_GENERAL}">{110}</td>208 <td style="color:{COLOR_GENERAL}">{111}</td>209 </tr>210 <tr>211 <td style="color:{COLOR_GENERAL}">{25}</td>212 <td style="color:{COLOR_GENERAL}">{26}</td>213 <td style="color:{COLOR_GENERAL}">{28}</td>214 <td style="color:{COLOR_GENERAL}">{29}</td>215 <td style="color:{COLOR_GENERAL}">{210}</td>216 <td style="color:{COLOR_GENERAL}">{211}</td>217 </tr>218 <tr>219 <td colspan="2", style="color:{COLOR_PROBLEMA}; border-bottom: 4px solid #000">{31}</td>220 <td style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{34}</td>221 <td style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{35}</td>222 <td style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{36}</td>223 <td style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{38}</td>224 <td style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{39}</td>225 <td style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{310}</td>226 <td style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{311}</td>227 </tr>""",228 'PIE' : """229 </table> 230 </body>...
manage_base.py
Source:manage_base.py
1"""2Файл Ð´Ð»Ñ Ð¾Ð±ÑиÑ
ÑÑнкÑий ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿ÑоекÑа3"""4import os.path5from os import environ6from typing import Type7from fastapi import FastAPI8from logsmal import logger9from sqlalchemy.exc import DatabaseError10from .database_pack.base import SQL11from .database_pack.model_logic import RawSqlModel12from .helpful import create_file13from .settings_logic import BaseSettings, mount_env14class BaseManage:15 """16 ФÑнкÑии Ð´Ð»Ñ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑа пÑоекÑа17 """18 def __init__(self, app: FastAPI, settings_obj: Type[BaseSettings]):19 self.settings_obj = settings_obj20 self.app = app21 self.include_settings()22 self.include_db()23 self.include_mount()24 def include_settings(self):25 """26 ÐодклÑÑиÑÑ Ð½Ð°ÑÑÑойки пÑоекÑа27 """28 #: 1. ÐодклÑÑаем пеÑеменнÑе окÑÑÐ¶ÐµÐ½Ð¸Ñ Ð¸Ð· наÑÑÑоек пÑоекÑа29 mount_env(self.settings_obj)30 def include_mount(self):31 """32 ÐодклÑÑаем завиÑимоÑÑи пÑиложениÑ33 """34 self.settings_obj.Mount(self.app).run_mount()35 @staticmethod36 def include_db():37 """38 ÐодклÑÑиÑÑ ÐÐ39 """40 SQL(environ['SQLALCHEMY_DATABASE_URL'])41 @staticmethod42 async def init_models():43 """44 СоздаÑÑ ÑаблиÑÑ Ð² ÐÐ, коÑоÑÑе подклÑÑÐµÐ½Ñ Ðº пÑоекÑÑ45 """46 # СоздаÑÑ ÑаблиÑÑ ÐºÐ¾ÑоÑÑй ÑÐºÐ°Ð·Ð°Ð½Ñ ÑеÑез иÑполÑзование BaseMode из47 # библиоÑеки SqlAlchemy48 if len(SQL.Base.metadata.tables) > 0:49 async with SQL.engine.begin() as conn:50 await conn.run_sync(SQL.Base.metadata.create_all)51 logger.info(f"ТаблиÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ñ {list(SQL.Base.metadata.tables.keys())}")52 # СоздаÑÑ ÑаблиÑÑ ÐºÐ¾ÑоÑÑе ÑÐºÐ°Ð·Ð°Ð½Ñ ÑеÑез наÑледование `RawSqlModel`53 if RawSqlModel.all_tables:54 for k, v in RawSqlModel.all_tables.items():55 v: RawSqlModel56 await SQL.execute_raw_sql(v.create_table())57 try:58 if v.init_data():59 await SQL.execute_raw_sql(v.init_data())60 except DatabaseError as e:61 logger.warning(f"ÐÑибка иниÑиализаÑии даннÑÑ
:{e}", 'init_data')62 logger.info(f"ТаблиÑа Ñоздана {k}", 'init_models')63 @staticmethod64 async def delete_models():65 """66 УдалиÑÑ ÑаблиÑÑ Ð¸Ð· ÐÐ, коÑоÑÑе подклÑÑÐµÐ½Ñ Ðº пÑоекÑÑ67 """68 if input("ÐÑ Ð´ÐµÐ¹ÑÑвиÑелÑно Ñ
оÑиÑе ÑдалиÑÑ Ð²Ñе ÑаблиÑÑ ? ÐÐ»Ñ Ð¿Ð¾Ð´ÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð²Ð²ÐµÐ´Ð¸Ñе `YES`") == "YES":69 # УдалÑем ÑаблиÑÑ Ð¼Ð¾Ð´ÐµÐ»Ð¸ коÑоÑÑÑ
ÑÐ¾Ð·Ð´Ð°Ð½Ñ ÑеÑез `BaseMode` из библиоÑеки SqlAlchemy70 if len(SQL.Base.metadata.tables) > 0:71 async with SQL.engine.begin() as conn:72 await conn.run_sync(SQL.Base.metadata.drop_all())73 logger.info(f"ТаблиÑÑ ÑÐ´Ð°Ð»ÐµÐ½Ñ {list(SQL.Base.metadata.tables.keys())}", 'delete_models')74 # УдалÑем ÑаблиÑÑ ÐºÐ¾ÑоÑÑе ÑÐºÐ°Ð·Ð°Ð½Ñ ÑеÑез наÑледование `RawSqlModel`75 if RawSqlModel.all_tables:76 for k, v in RawSqlModel.all_tables.items():77 v: RawSqlModel78 await SQL.execute_raw_sql(v.drop_table())79 logger.info(f"ТаблиÑа Ñдалена {k}", 'delete_models')80 else:81 logger.info("ТаблиÑÑ ÐÐ ÑдаленÑ")82 @staticmethod83 def create_app(name_app: str):84 """85 СоздаÑÑ Ñаблон пÑиложениÑ86 :param name_app: ÐÐ¼Ñ Ð¿ÑиложениÑ87 - ÐмÑÐÑиложениÑ88 - template89 - api.py90 - base.py91 - model.py92 - model_logic.py93 - schema.py94 - helpful.py95 """96 # ÐÑÑÑ Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ пÑиложениÑ97 path_app: str = os.path.join(environ['BASE_DIR'], name_app)98 # Создаем пÑÑÑ Ð¸Ð· папок к Ð½Ð¾Ð²Ð¾Ð¼Ñ Ð¿ÑиложениÑ99 os.makedirs(path_app, exist_ok=True)100 # Создаем Ð¿Ð°Ð¿ÐºÑ Ñ Html Ñаблонами101 os.makedirs(os.path.join(path_app, 'templates'), exist_ok=True)102 # Создаем ÑаблоннÑе ÑÐ°Ð¹Ð»Ñ Ð² папке Ñ Ð½Ð¾Ð²Ñм пÑиложением103 create_file(os.path.join(path_app, 'api.py'), """104from fastapi import APIRouter, Form, Response, Request, Depends105from sqlalchemy.ext.asyncio import AsyncSession106from vetcin_pack_fastapi.database_pack.base import SQL107from vetcin_pack_fastapi.session_pack.base import SESSION_RAM108router = APIRouter(tags=["{name_app}"], prefix="/{name_app}")109name_app = "{name_app}"110 """[1:].format(name_app=name_app))111 create_file(os.path.join(path_app, 'base.py'))112 create_file(os.path.join(path_app, 'helpful.py'))113 create_file(os.path.join(path_app, 'model.py'), '''114from vetcin_pack_fastapi.database_pack.model_logic import RawSqlModel, SqlTypeReturn115class ÐмÑÐодели(RawSqlModel):116 table_name = 'ÐмÑÐодели'117 @classmethod118 def create_table(cls) -> SqlTypeReturn:119 return SqlTypeReturn(120 raw_sql="""121 create table if not exists :table_name122 (123 id serial primary key124 );125 """, 126 params={"table_name":cls.table_name}127 )128 '''[1:])129 create_file(os.path.join(path_app, 'model_logic.py'), '''130from {name_app}.model import ÐмÑÐодели131class ÐмÑÐоделиLogic(ÐмÑÐодели):132 ...133 '''[1:].format(name_app=name_app))134 create_file(os.path.join(path_app, 'schema.py'))135 # ÐÑÑеÑноÑÑÑ...
app.py
Source:app.py
1from flask import Flask2from flask import render_template,request,url_for,redirect3import os4import requests5import re6import pytube7import datetime8import matplotlib.pyplot as plt9from auxiliar import yout_to_detections,get_brand_expo,gen_img10DARKNET_PATH="/home/jf/yolov4/darknet/"11ROOT_DIR='/home/jf/'12PATH_APP='/home/jf/Desktop/brandCrawler/'13app=Flask(__name__)14@app.route("/")15@app.route("/home")16def home():17 return render_template('home.html',busc="Ingrese el enlace de Youtube aquÃ")18@app.route("/results",methods=['GET','POST'])19def results():20 inicio=datetime.datetime.now()21 busq=request.form.get('search')22 print(busq)23 if len(re.findall("youtube",busq))==0 and len(re.findall("youtu",busq))==0:24 return("No es un enlace de Youtube, por favor ingrese un enlace válido")25 else:26 det_name=yout_to_detections(busq,ROOT_DIR,'vid',DARKNET_PATH=DARKNET_PATH)27 detections=get_brand_expo(det_name)28 print("elapsed time {:.2f} seconds".format((datetime.datetime.now()-inicio).total_seconds()))29 print(detections)30 gen_img(detections,path_app=PATH_APP)31 #return (detections)32 return render_template('results.html',html=detections.to_html(),video=busq)33if __name__ == "__main__":...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!