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!!
