From c282e5903c172cc275559556e69de4ffa3b5582c Mon Sep 17 00:00:00 2001 From: egutierrez Date: Sun, 17 Nov 2024 03:09:53 +0100 Subject: [PATCH] Initial commit of my_toolbox package with basic tools and setup files. --- my_toolbox.egg-info/PKG-INFO | 6 ++ my_toolbox.egg-info/SOURCES.txt | 15 +++ my_toolbox.egg-info/dependency_links.txt | 1 + my_toolbox.egg-info/top_level.txt | 1 + my_toolbox/__init__.py | 5 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 1787 bytes .../calcular_combinatoria.cpython-311.pyc | Bin 0 -> 2056 bytes .../cargar_csv_en_postgres.cpython-311.pyc | Bin 0 -> 2765 bytes .../__pycache__/comparar_hash.cpython-311.pyc | Bin 0 -> 1775 bytes ...seguir_conexion_postgresql.cpython-311.pyc | Bin 0 -> 1059 bytes ...tir_tabla_html_a_dataframe.cpython-311.pyc | Bin 0 -> 2009 bytes .../driver_para_scraping.cpython-311.pyc | Bin 0 -> 2469 bytes .../ejecutar_query_postgresql.cpython-311.pyc | Bin 0 -> 1665 bytes my_toolbox/__pycache__/excel.cpython-311.pyc | Bin 0 -> 3724 bytes .../generar_archivo_env.cpython-311.pyc | Bin 0 -> 1002 bytes ...chivos_carpetas_desde_tree.cpython-311.pyc | Bin 0 -> 2834 bytes .../manejo_archivos.cpython-311.pyc | Bin 0 -> 2607 bytes .../__pycache__/print_to_txt.cpython-311.pyc | Bin 0 -> 1754 bytes .../tablas_postgresql_json.cpython-311.pyc | Bin 0 -> 5033 bytes ..._jupiter_para_crear_listas.cpython-311.pyc | Bin 0 -> 1578 bytes my_toolbox/driver_para_scraping.py | 59 +++++++++++ my_toolbox/generar_archivo_env.py | 16 +++ my_toolbox/manejo_postgresql.py | 96 ++++++++++++++++++ requirements.txt | 0 setup.py | 15 +++ tests/test_herramientas.py | 0 26 files changed, 214 insertions(+) create mode 100644 my_toolbox.egg-info/PKG-INFO create mode 100644 my_toolbox.egg-info/SOURCES.txt create mode 100644 my_toolbox.egg-info/dependency_links.txt create mode 100644 my_toolbox.egg-info/top_level.txt create mode 100644 my_toolbox/__init__.py create mode 100644 my_toolbox/__pycache__/__init__.cpython-311.pyc create mode 100644 my_toolbox/__pycache__/calcular_combinatoria.cpython-311.pyc create mode 100644 my_toolbox/__pycache__/cargar_csv_en_postgres.cpython-311.pyc create mode 100644 my_toolbox/__pycache__/comparar_hash.cpython-311.pyc create mode 100644 my_toolbox/__pycache__/conseguir_conexion_postgresql.cpython-311.pyc create mode 100644 my_toolbox/__pycache__/convertir_tabla_html_a_dataframe.cpython-311.pyc create mode 100644 my_toolbox/__pycache__/driver_para_scraping.cpython-311.pyc create mode 100644 my_toolbox/__pycache__/ejecutar_query_postgresql.cpython-311.pyc create mode 100644 my_toolbox/__pycache__/excel.cpython-311.pyc create mode 100644 my_toolbox/__pycache__/generar_archivo_env.cpython-311.pyc create mode 100644 my_toolbox/__pycache__/generar_archivos_carpetas_desde_tree.cpython-311.pyc create mode 100644 my_toolbox/__pycache__/manejo_archivos.cpython-311.pyc create mode 100644 my_toolbox/__pycache__/print_to_txt.cpython-311.pyc create mode 100644 my_toolbox/__pycache__/tablas_postgresql_json.cpython-311.pyc create mode 100644 my_toolbox/__pycache__/widget_jupiter_para_crear_listas.cpython-311.pyc create mode 100644 my_toolbox/driver_para_scraping.py create mode 100644 my_toolbox/generar_archivo_env.py create mode 100644 my_toolbox/manejo_postgresql.py create mode 100644 requirements.txt create mode 100644 setup.py create mode 100644 tests/test_herramientas.py diff --git a/my_toolbox.egg-info/PKG-INFO b/my_toolbox.egg-info/PKG-INFO new file mode 100644 index 0000000..bf37f5c --- /dev/null +++ b/my_toolbox.egg-info/PKG-INFO @@ -0,0 +1,6 @@ +Metadata-Version: 2.1 +Name: my_toolbox +Version: 0.1 +Summary: Paquete con mis herramientas básicas +Author: Tr4shhh +Author-email: tu.email@example.com diff --git a/my_toolbox.egg-info/SOURCES.txt b/my_toolbox.egg-info/SOURCES.txt new file mode 100644 index 0000000..970710c --- /dev/null +++ b/my_toolbox.egg-info/SOURCES.txt @@ -0,0 +1,15 @@ +README.md +setup.py +my_toolbox/__init__.py +my_toolbox/calcular_combinatoria.py +my_toolbox/comparar_hash.py +my_toolbox/driver_para_scraping.py +my_toolbox/excel.py +my_toolbox/generar_archivos_carpetas_desde_tree.py +my_toolbox/manejo_archivos.py +my_toolbox/print_to_txt.py +my_toolbox.egg-info/PKG-INFO +my_toolbox.egg-info/SOURCES.txt +my_toolbox.egg-info/dependency_links.txt +my_toolbox.egg-info/top_level.txt +tests/test_herramientas.py \ No newline at end of file diff --git a/my_toolbox.egg-info/dependency_links.txt b/my_toolbox.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/my_toolbox.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/my_toolbox.egg-info/top_level.txt b/my_toolbox.egg-info/top_level.txt new file mode 100644 index 0000000..098c090 --- /dev/null +++ b/my_toolbox.egg-info/top_level.txt @@ -0,0 +1 @@ +my_toolbox diff --git a/my_toolbox/__init__.py b/my_toolbox/__init__.py new file mode 100644 index 0000000..6a677dd --- /dev/null +++ b/my_toolbox/__init__.py @@ -0,0 +1,5 @@ + +from .manejo_postgresql import * +from .generar_archivo_env import * +from .driver_para_scraping import * + diff --git a/my_toolbox/__pycache__/__init__.cpython-311.pyc b/my_toolbox/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77f90b3fadbc9a5132e44d6d30fa3bc1c77461f6 GIT binary patch literal 1787 zcmZux&yQO*5O#Jq`#YOt^J6!3+b$9nEGi&XYJmz67bLjsg#(gR$#UNFCXVd)UdK*I z{*wL)sK@>%?-=zIi4!-Zp6H1gC!4Jy(a8BS^Lae}W}H82wL^xV>o@=0Jg+kLC;hnn zY^}h%lL}+6Sjy6hVU}@LA-sjS!Ycu9Bi`a$0q>Y?yTf+^t|G4TYQVc@*Y5GXfcMP4 zJ>Ulc?;}3shXEfTKH^6KADUxZ(4b!z<-VL~E&g?lq5BL;ukM{y@nUCx}elOrQ;tPHeaL3%Y5BP(CyXK+21d-&nuQTa$&=LdPb)ZmS$6h8n&y>SRdmWibfOK2!F#7L5h$Qeck)?bUG5%q%Aa2L$#hR1L!c2gIdU z4@czvWZC1joEuvV$3(4LnW<5JE4+gmWjUeH@v>7`H?|1s!tlsH|I z7>DVu7h>e{3|ho!2gYi!NoE}DTOxFb(Iv(ub`+n3$8ibSL{M7ZNepL!w$xIL#)bCy zdV)a9K_aQ8gL9<4X76xi@4rybUlfqfRN~zWJHv+Lrk_tggaUh|y%1j(v-kVo**qN^ z^#gp0yXmjNy~6eH?MkIGXWx{u&DpnQY;*Q?8QX$AE@PXs&&${r>`58hrd?l^EV4QK ztc-2Jek)^JuwTm9=ImJ++afL)>)%w*k0pz2!G11dTd?oT*yikM8QUTj5cS-o*iR*k OY{9O}O$Lv!LH`1o5J!{% literal 0 HcmV?d00001 diff --git a/my_toolbox/__pycache__/calcular_combinatoria.cpython-311.pyc b/my_toolbox/__pycache__/calcular_combinatoria.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0f05bbadc5b3e8661a930ab4f9efec9001c87dc8 GIT binary patch literal 2056 zcmb`H&rcIU6vt<_MS)5X1to###CT{^L_{!YDPGV62_gKj9t;T?cBizoyIW^xMF=Lu zc)-MiH!<;m7p3u{H~)+_;Xr!zB3ns*A|6s=a%f}{-Iv&AYb&CJeXfA_nf%HFF3*ntEB1Ewb>dB8dvbenhrXZsFtr=o zjeVW{-t{e6ijM6?$4dQUrBI?6OdLQ|q}QQ^iM)%#{w553*kde_2JjofRlweE8dxKf zN-@qXQAd|@POW8tx{9l>;in>b3^$+4S&-!!H(lXDHWRkaB&_D41D4DQkNz`XTz+FN zHH1r{iDOfP)PJCv&Mz zOSF8QZbslv7Bf%CR+{F*6EcqmPsu>o9A-5Lny=lb67rX#Rm<+na28O{C`d$2vmXDM zW+@ksr~e^Y$B^Q!&{j{HsxWoeVe%#CU2twho_z?WS&4~l$986SyFMmMebK$XXekse z2BV6#=}17SmqJw~DIm3>YB_98n6}~O*nNH((kh8dz@QSq7+16&JYGR{bMF%Ft)RLY N>cInY_qb8fe*+>~4%z?! literal 0 HcmV?d00001 diff --git a/my_toolbox/__pycache__/cargar_csv_en_postgres.cpython-311.pyc b/my_toolbox/__pycache__/cargar_csv_en_postgres.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9a27aa2c4f4c9c7f5b70f7eb3ff6d4b05d610db2 GIT binary patch literal 2765 zcmds3&1)M+6rYt=`z5bs=cBEi#+KbQj#AeyE!1riO6}UhfyN1Onl>UJ)|#~~A!*gw zablY_h*D?@KKNEc8VD59gru~`{1H7!po19*6iN^6$q;ggPJM6nVM($22XuDyn>RCW z-^_dS=C}IUGz|jfgI`}R|DzG|Cw3YoP#2zG2jK@o36-)WAwe6+26DkfP{OfbR?dYI zAzzlVNgqqV5nnZMXs7}>yrG#FWHINM|Es~h=H!iXelZ2UKw#DtFonJ}k zZ5Rk=9g8NZ!|nX7SU_kLW_dbi3k`A8$=g+V0_Nf=xxP_s(48Rso>wK@GzV;yOjGvA z1CSp#`&%*(HM9uv0`0RB;p)L`rnwrG+V!?VUGzHaZ7E&!f*tnME_!l@p4LS#)S;() zK{m?6ExsrXnfEp%LNbsDwem!1x8TWCy#P~G^R&BgsGbgJcp+a_0K=Yom)tY941Tm> z1LA44TiFVG@_j$;4s>dgCwXDoL(M0>4O?^Mmz#*^?4Ft|Gf?`F%coL zjw}dub|yK0dGVSrT)BL;CM--}n)64#Se&~m!k}|ydU5f~%U5R~Ng}{Eg^uavaw}J; zngz$@E6jGk&Yqi`tV-vq(x+8vQYcoTVCQN4Q9$VF<)poycDXA;={&X9H;q|~ThV3a zr4lH75!OU`<$n6lW4#n3^x;K@cLA6gY&NrAurQ*1${W9)U|* zBrkf1(X)MG=c}?lRMCfuGcObp>f6!E@<2r%D9HoR@9EwCc;`krJX{G67iXV^&9<%? z*}k!}Q8q^^=14K#IUDKU-q<}^j*L|zW5xM>g=ok3i4^+i+2H7p-Di2Oo z2B+=>?wtQV@`pLMd#z;7LA^g;YajAj`x~vbPp{Y7VjT9?dt&#)vN>8YM~iW=9#X%% z_|3&TncdS5=bz3MFP7z*iab-2Xa17)lJWV@IsnwCgS8g0EMKa~mr9NL97015=e^${ zVC}qj2%lm8)Jvv8^FZ$%_f+PG>vi&3sEb}FpDA7RI{8fPqStZLw=|#64&`Rv!Y`R7 z%e}&9q{(N%Tfk??YKABKGO}9O16Bh*(|M#3FW@u1BTj}#?l(E}Ko2w}&*;KuE&K?4 zhD_FXuOnV{ChK2dIv8c>5kvB3cmbJ-fUM2>5c(00AfRP-4BNylUd-_MhrNlfpF}|RVM7QQMK+9pS;3+RBLJ~5JB{*N2&WL6$f;6$-6KP#_PR&(qW|oXvC?66Un8f-_s&l4 Zt3%R)v`=2axYSTMA$InU=7DLJtxlhmy%rxLRhCf86{)aNW zZsEjUeey6hn1?>FZRBV6Zl`h=?F?gp)d?}Y3pRVH-RNpZ`8`FupxH~caI0MKJuJ%v z=q>74fkO#*NQ=rAdGGBR!eC)}uFqYYd4y5s)gs%7y-&q2U$?n0JUJIBPAp%MzA)#= zQuZ{B+;S>1ErYx;Fd3MwKrCL&vRD2^{i-l?G6=GtSI-j&PI6Nit`d{ zRv?%#z?mwYtO46XPbN_1!e{gMHy%|lJ*-~(w%Ds)?pH7OjC$XwKQiVY8uLA4p>Hf4 z=nIE%0$JI57C;eU;7z#WCO^xYl>_WV~ zG$ux_@e-;dso%}5Ys=^^#%LK~7+L&v@&Ak+Mg9-5RYDW$YNJ@*%=_70{a?FTKn3ZJl~X zZiIQ&7WMekkVOcio(>?PUdZs7k@n$IOo4U+rknu0LaRK7%IEI29%wtwgHo+ms`X2? z0mAtge|-7zp?rKsc64{rA= zX1`)?E&W<~;biff@$CJjPZtmLDLD<<`Ev4#_LDwa{29*{_s>sWYiRoo{o2*y{_7aH zsR;%DsAy3_zeA#;6e{J%V{f!Q7C3xSJP%9tD#)wAAcGh`M(4JoF&Hc3#Q{p$^aQ>* JK&M&c_aA?xp*a8m literal 0 HcmV?d00001 diff --git a/my_toolbox/__pycache__/conseguir_conexion_postgresql.cpython-311.pyc b/my_toolbox/__pycache__/conseguir_conexion_postgresql.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..233b9012a88c42b7aefc3716f198945364b622c6 GIT binary patch literal 1059 zcmaJ=&ubGw6rS14ZfZB%Z6b+3Xj*$Jd+DJ!MTC}AieOqAMH&hr&8}%B$*eP*+Q1g} z;4xrs^)6II@oz~WhcMvDleb6|Bq!f&8fgOY&CK`SoB8I=do#>O! zUSx_FnZYAdJTil)PVrPvRz0qRj4dDgiXZWbuYS=kRj3@sNX|81gG-HOMKrTj*xAiJ z3yr#l z%wKIdp*1cmy*HBKmh<4yWwZgY_+hnC@F=Yu(X;C&?Bq_le!>c1IcE@|;6nOk=J3~* zb+;kX|7EaSaGX4nzXJ%+Zw;x7ExkjQx@4(MmcWlKH1D?#I{HdiUkNhbbYsFb%;rI> z(J@xL#%l0*dew|K8}HK{bFFKx1v?Ndakm>^?HO^|&7{QmoxZLmw4VszmxSO+e-Xt} zZIT>7O31=YKDZTSi=bEnKxl5UW*50oTpL~}{3+pkgw=dP?6zd40ETl9tJJPnoJTAT quKXE12hfjTjC<%t5VjsNgRu3`&GxwW&~kgS_q8NW_0bFn5B&?%AoG9# literal 0 HcmV?d00001 diff --git a/my_toolbox/__pycache__/convertir_tabla_html_a_dataframe.cpython-311.pyc b/my_toolbox/__pycache__/convertir_tabla_html_a_dataframe.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..88eac23011f8dcfffacd1811f402f17ee1a59234 GIT binary patch literal 2009 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 A82|tP literal 0 HcmV?d00001 diff --git a/my_toolbox/__pycache__/ejecutar_query_postgresql.cpython-311.pyc b/my_toolbox/__pycache__/ejecutar_query_postgresql.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9468ab01744f00799365d5aeb0c7869e99650c37 GIT binary patch literal 1665 zcma)6&ube;6n^_tyV9HpCBACQWmV!)@IdfVa{gin35vXoe$kT)~mzW3(M_hx2i z<`-QL1B&`b_sP#9z-wmog+Eh{ucPt;3^2Gd_yd=h z4K4>6`Cmq`l;LQkY!!`yVYz1I`KfpfvD7DLAt7u6w&Pj!z5thF&YpPOK3WF@4+k!b zJd=$9i!l^e=SRfx=lSZwh&W*=P8<;@4#i0$;-sNCSp}D^yT20L{GNEcCwQVKdGhb_ zzJzPX){}b3jr4VZ4Y{v-;Dz>aCk_U?QCB?03z4`Ndi73@emuZFss{s;gB+F_aAN}( zTn2KZuDTO%Jx0h=e}tcg_K$;AJP>vDdlmB~J~W?!`Ff3wta4S@7FMCk&EQHteAZRy zkIN`aG_-iPaBn&HO`zOgUg;@IcfQUBo^Ny66&k^q`*(7=2g@sq8HtKdEytyzZ4sBs z#^XwH)1=~-V-l*^MaQXH#Q5%$EFl(2n;T|n%Pm$6D_t(8pKY0>b}O9;6LuIWZ#h(6 zGui3Jkxs2-*=yHnsAN?tX33?zZBT`ncmtegWh#}*mSa*iyInGEcipN`$tLR+Hxs5( zz)K@VQhK`n+$ta+VSk)x40Hx#45A1$d`8b0c;g9`Og2%6UFY;bPUp>Ak8EPqa30R1 z&04{=tny=P`(5>HX`~QjFW9&zYsAE%BNZy4-^PsU*^w)^m9{8hN6Uv2AGcX(fh*tj19 zE#U*FraD^UA1(Q}mTYO$ZEd<4RA0cJ?uias+y`E|_!f>7y*c*9uUQ1FEoHW?%r=$T zPIO|&WyM$CON{gZcaXY^;_FBsDB61m_GZ-WI-lVt|9Ru{yL0f@TzKKOa43&2+!PK! z78mB>@TSB(w*{upPcD8WWH`d!l1zxO>rBQGsBGiOEjr|4VD#SM;OGWF@i#a|KagpJ zQ)O<`GPcU*Jh_Y}dv~220#1hGI-oX!(t&6rC>@w+_G<^Go9C+^p5anHi~ur&y#E8s C9Dc(9 literal 0 HcmV?d00001 diff --git a/my_toolbox/__pycache__/excel.cpython-311.pyc b/my_toolbox/__pycache__/excel.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cf638fc54f84e2907cf4c43bccd75ff65dab691d GIT binary patch literal 3724 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 literal 0 HcmV?d00001 diff --git a/my_toolbox/__pycache__/print_to_txt.cpython-311.pyc b/my_toolbox/__pycache__/print_to_txt.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..21ba44d5dbffb2356e5e5962fc6df4d1c6593446 GIT binary patch literal 1754 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