From 7e943e2695cbd0e6163529995b9b5f2da11db473 Mon Sep 17 00:00:00 2001 From: DanielZF-source Date: Mon, 26 Jan 2026 22:42:51 -0500 Subject: [PATCH 1/3] =?UTF-8?q?ACTUALIZAR=20predicci=C3=B3n=20de=20salario?= =?UTF-8?q?=20en=20la=20aplicaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/application.py b/application.py index ca52f604..9df86622 100644 --- a/application.py +++ b/application.py @@ -2,6 +2,14 @@ from flask import Flask, request, jsonify, render_template import pickle +######################################################### +import sys +import sklearn.linear_model._base as s_base +sys.modules['sklearn.linear_model.base'] = s_base + +import pickle +######################################################### + application = Flask(__name__) #Initialize the flask App model = pickle.load(open('model.pkl', 'rb')) From b96455ee46e614d0412e4957890f424ddf1bb301 Mon Sep 17 00:00:00 2001 From: DanielZF-source Date: Sat, 31 Jan 2026 00:19:18 -0500 Subject: [PATCH 2/3] =?UTF-8?q?A=C3=B1adida=20predicci=C3=B3n=20de=20salar?= =?UTF-8?q?io=20y=20versi=C3=B3n=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 0 __pycache__/app.cpython-313.pyc | Bin 0 -> 1786 bytes __pycache__/application.cpython-313.pyc | Bin 0 -> 1794 bytes .../test_app.cpython-313-pytest-8.3.4.pyc | Bin 0 -> 3232 bytes application.py | 2 +- 5 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 CHANGELOG.md create mode 100644 __pycache__/app.cpython-313.pyc create mode 100644 __pycache__/application.cpython-313.pyc create mode 100644 __pycache__/test_app.cpython-313-pytest-8.3.4.pyc diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..e69de29b diff --git a/__pycache__/app.cpython-313.pyc b/__pycache__/app.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a3f10aafe0f00b9fc2f660b0d532fee95aafa41e GIT binary patch literal 1786 zcmZ`(%WoS+82@G;w&S&9@_wMg5{w#?7pMx6P2oU88r(c8Z;gtwlDmmF@iyyScXqdm z!$a<=2o9u(QXkV(#f?A3sgV**D;24|^p+4V^u)~C+oTnI(tMAZZ)U#7Z{|22j{+s@ z{Vn4K5Ac*30fpMi@ka>YE-0X&OMnrT+$Ao{V?HZjAuD1r8^R&EwI0S{-!FnAzU;_G z9ZrU7gpuGV=cTT)^2{o0t z(wRmwY@iL4N<3!{ODTbfbEf8Ok}%e9c)H_~@O8(wjP)u>VBIR}xZvvLimAE!_K>q_ z>Ke8tO~azHP_~P@Ik~Di`gTW4uWXux!>a^Mt+C?+q74K#jt42b3oGps(vVP)dJ;@95Z3uga)2=Qq zEV76u{Df4kQkkq&iBPi3I_{)r(87Qdr>q9gq~ZGcrZn0RMsbYJY)7UlST7oDE)gy- zD_2s8gv+{HvWw0uiLi+LL`Hn%tx&T?xpuDuo5`Gb+G^=RcYEMVaJVTtdSIRgXTeH1 z@XkX}l*`;A4O#*jEJQsbfk)1N8-dl5BanYt%qe7XD=aUca*04Yk$En-!{S%Eg84kJ zAQrU31=zKOm7ZW#;T0j*7g#4UF9c^PVwy|RoMbvIScg<-``zfAjpY`S3~PgGj%T`# zY+LgDmBj`5V*ZOLX2pBX7-orWzx6orOPfgq z)7FYauq(QShx~|WkKES#^$SXP>{(c1VKIRFARVrTbY^eM!TLXha)ng7wQNe7Y6pQIn8JG1pS zcZ<#5v1VkvCjN1;lb?=;OqJbk0q0})C+~6V84nx4j+sm2Vo4ch3>TaN^BQA=r oBj)zOp|2hef)M+DyU7n72#MRvx0dV4+VVr;?L!`fVLzjP0dF^%qyPW_ literal 0 HcmV?d00001 diff --git a/__pycache__/application.cpython-313.pyc b/__pycache__/application.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8b71c26c340ebb038d9886bde343379b68efc4bc GIT binary patch literal 1794 zcmZ`(%WoS+82@G;w&S&9@_wMg5{w!vFHjXKn*tIIX>jwXyfrGyO714!#M`WQ-PzqL z4iCAfA~=vBN_|XEh#P;3QzIpsRw`0^=`A5#pciJ=-X^W!llFVed^7Vse)}EA<58gW zJiTc==K-EDBcM=QIes4j+yw;`bQv(BlDo`hdCX@8EM!G2W0@QsK{1!}q7>Rel82&T0B4Bb-pfIoVfVV$`Q=1QbCLr@7X~ zixb^yBF8R#g_Ka>p@fHFy1k2g|HnI`bW9;7n&uSgly{%nsl+nZ0JPTt=*fv!9-*cZ zS31*3hIO=#Qi*5GVKF5Tan{tF4HCxsO;2}R629Tsma$eP39MU19T!}^Tro9Q-x_i@ zOkKm)q-j`G7Rq)}Hz!v#N8jpb>6HzWaCn8Fsa1A;K(v9tzT-j4?!t1rgft`+q@IKn zxA;%gpf7GtmfW(LLYVdWS2(5|$j28mYTnVYqh6a)XY5t4tXr<5UNYP{Z$+KaE2dpt zm|tKKP523^TBTwdtD0-r)?}qhgpys>aVNct76_a;Wi@yz4c9L;rO}2kieq$TD>7BV zdeK;QiEw2}xtc;GT-M!^U36Ybh(+cnG~y$0nVK!iwR;}eOyq#>xxy{bpe2yOLewJ?c;x(lB(Pd?1oAJ6I)yB5ndRkEE)i%aGS3BX zSp0HVu%71?#DZ410K=BB+!O37ydvcK0_#NPh2SnlOmj(^lT1Gg)*uzydOJF6W4VPW z!&;}BaP>S@E7RhFM};Z+uFDXIFJyRy0$?RoN-oo>`PvbU7)1 z`891$qTMapV+zwvHzi?#o+QGWjmso-OEW2?32#^~;j9V~HH@_?5q+?daL{TI+n!bQ z;YLF2q~@kXf;LHv9xSZsn(NVUN#~kjY37L?J$amjY|pKDuEVM(Gr|mDn9UTQ^-{&D zQdWb%qVUf6FZ1{3_mk)MlIMRgvCDX6H=(n`YN!E&DXyy`8CRJ0I@8)r===vp$p?=`Z%v*Z0!b8`^p^ zUD}h3hG6{tXB>Jz@I$-b_eo43kwT%Y8CIdd@GTbg6>mK?Kt#(cSE_h`21&#km3KF2n9A0NbK~KAYyAV>X=H#%tmqD7KHf_fYrtxh5Jo;t)z5^S})rGVL$~T)e%V*}b(}YM|~0nmXd5 p=muhL?;iT<;UEaHZ?~HK(1DP+vvhl@o~$iB5Z*lGK^XQk`WMo;otyvw literal 0 HcmV?d00001 diff --git a/__pycache__/test_app.cpython-313-pytest-8.3.4.pyc b/__pycache__/test_app.cpython-313-pytest-8.3.4.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6cab62a82d37fb284ab98657b6b24ef77e73665f GIT binary patch literal 3232 zcmdTGOKcNY@a=l-wY_$nA7As?21;W!I6#s@fS^)R2&R1G#Z{z4S}pbqY+3Ja->w0J zkkXG-I02OqsamN>?Sb}C_1tq0y)_}FK@X}P+DmSsL8`>5^Y&vq6bbd%C;PpbdGqGY z&di&c<#alUVD#R&sy`4A`hy|ihz7v&cL3Z*3R1XZh;ZJ@7a|TXqk=%9vcD4}G1%dc zi3O2}9xZY#UPzEcAxV-2iAaSMNd>%V(&kCYkj$i5l*0>~YY$QcCECv^v0+{j*Q23e zi*!uJid&m}A*94xc)HGVxx^ydI+5e3q}jHimo-?uVKff8G_9U zCaR08wxPM0itjm=sZZ6PrTR5n@3#rA=w+7*r%o!TL7Z5{?m4UCl*6mp8iRiX{>y*C zbQ?{;?2jTJLd_MvjZ^qx&O{SnaeowCkbn@ELx z#Y_k_*Af@S*D=Qz7>yB8UgE<}Y2F_X9JR0=czTqheqCUb(L!ZeMZ#!#wj zLCW5jvUj)6Nv}S}t~>Eh<6m^oRK7g_+4;|_^XvNN+qchV^3!9FJ67M>cx&U# zrTLED>B67s&YOE@v|A&0UztyDoj&|n>ijx-cj~M3oRpsx^2=}qDhF<5Fk&C?h1icU z!()UHQX-0wkC+?;M=Pht4o-}gyys)`CH_TWXhsy#I#d$&jv-`~dV^DyAJ9v~Qi+$M zgPf8W9~|U|f)G}c6Y)R_>{qJ+uXw!z)Oew+aXnh;nrtEGd;Ehg|vG?+B_$1o)xy;9q^_( zY1@Jj{O$|eW~I#y)CV32+pg_t(B_&LY&5v%nY;#50|4?vX$_Rwg>2tkwhw^WY~OsA z72erw9xCtxY Date: Sat, 31 Jan 2026 00:28:08 -0500 Subject: [PATCH 3/3] =?UTF-8?q?VERIFICACI=C3=93N=20DE=20TEST?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 10 ++++++++++ README1.md | 12 ++++++++++++ test.py | 3 +++ 3 files changed, 25 insertions(+) create mode 100644 README1.md create mode 100644 test.py diff --git a/CHANGELOG.md b/CHANGELOG.md index e69de29b..d09887da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +## [1.0.0] - 2023-10-27 +### Added +- Nueva rama `feature/salary-prediction`. +- Endpoint de API `/api/predict` que devuelve JSON. +- Archivo de pruebas `test_app.py`. + +### Changed +- Se actualizó la interfaz de usuario para mejorar la experiencia. \ No newline at end of file diff --git a/README1.md b/README1.md new file mode 100644 index 00000000..2f389581 --- /dev/null +++ b/README1.md @@ -0,0 +1,12 @@ +# Predicción de Salarios - ML Flask App + +## Descripción +Esta aplicación utiliza un modelo de Machine Learning para predecir el salario de un empleado basado en sus años de experiencia y habilidades. + +## Instalación +1. Clonar el repo. +2. Crear entorno virtual: `python -m venv venv`. +3. Instalar dependencias: `pip install -r requirements.txt`. + +## Cómo usar +Ejecuta `python app.py` y abre `http://localhost:5000` en tu navegador. \ No newline at end of file diff --git a/test.py b/test.py new file mode 100644 index 00000000..aa90cbd7 --- /dev/null +++ b/test.py @@ -0,0 +1,3 @@ +def test_home_status_code(client): + response = client.get('/') + assert response.status_code == 200 \ No newline at end of file