From 04fcfddd808fe51da7efb9452f739f499726aaaa Mon Sep 17 00:00:00 2001 From: TrupleCPU Date: Sat, 20 Sep 2025 12:17:48 +0800 Subject: [PATCH 1/3] feat: implements python-flask-api activity --- flask-library/.gitignore | 1 + flask-library/app.py | 27 ++++++++++ flask-library/controller/__init__.py | 1 + .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 251 bytes .../library_controller.cpython-313.pyc | Bin 0 -> 3536 bytes .../controller/library_controller.py | 50 ++++++++++++++++++ flask-library/models/__init__.py | 5 ++ .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 277 bytes .../__pycache__/library.cpython-313.pyc | Bin 0 -> 1083 bytes flask-library/models/library.py | 17 ++++++ flask-library/repositories/__init__.py | 1 + .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 222 bytes .../library_repository.cpython-313.pyc | Bin 0 -> 2339 bytes .../repositories/library_repository.py | 39 ++++++++++++++ flask-library/requirements.txt | Bin 0 -> 616 bytes flask-library/service/__init__.py | 1 + .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 211 bytes .../library_service.cpython-313.pyc | Bin 0 -> 1701 bytes flask-library/service/library_service.py | 29 ++++++++++ 19 files changed, 171 insertions(+) create mode 100644 flask-library/.gitignore create mode 100644 flask-library/app.py create mode 100644 flask-library/controller/__init__.py create mode 100644 flask-library/controller/__pycache__/__init__.cpython-313.pyc create mode 100644 flask-library/controller/__pycache__/library_controller.cpython-313.pyc create mode 100644 flask-library/controller/library_controller.py create mode 100644 flask-library/models/__init__.py create mode 100644 flask-library/models/__pycache__/__init__.cpython-313.pyc create mode 100644 flask-library/models/__pycache__/library.cpython-313.pyc create mode 100644 flask-library/models/library.py create mode 100644 flask-library/repositories/__init__.py create mode 100644 flask-library/repositories/__pycache__/__init__.cpython-313.pyc create mode 100644 flask-library/repositories/__pycache__/library_repository.cpython-313.pyc create mode 100644 flask-library/repositories/library_repository.py create mode 100644 flask-library/requirements.txt create mode 100644 flask-library/service/__init__.py create mode 100644 flask-library/service/__pycache__/__init__.cpython-313.pyc create mode 100644 flask-library/service/__pycache__/library_service.cpython-313.pyc create mode 100644 flask-library/service/library_service.py diff --git a/flask-library/.gitignore b/flask-library/.gitignore new file mode 100644 index 0000000..b694934 --- /dev/null +++ b/flask-library/.gitignore @@ -0,0 +1 @@ +.venv \ No newline at end of file diff --git a/flask-library/app.py b/flask-library/app.py new file mode 100644 index 0000000..a097a65 --- /dev/null +++ b/flask-library/app.py @@ -0,0 +1,27 @@ +from flask import Flask +from flask_restful import Api +from models import db +from controller import LibraryResource, LibraryListResource + +#using mysql instead of sql lite +import pymysql + +pymysql.install_as_MySQLdb() + +app = Flask(__name__) +api = Api(app) + +app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:password@localhost/databasename' +app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False + +db.init_app(app) + +@app.before_request +def create_tables(): + db.create_all() + +api.add_resource(LibraryListResource, '/api/library') +api.add_resource(LibraryResource, '/api/library/') + +if __name__ == '__main__': + app.run(debug=True) \ No newline at end of file diff --git a/flask-library/controller/__init__.py b/flask-library/controller/__init__.py new file mode 100644 index 0000000..5c80529 --- /dev/null +++ b/flask-library/controller/__init__.py @@ -0,0 +1 @@ +from .library_controller import LibraryListResource, LibraryResource \ No newline at end of file diff --git a/flask-library/controller/__pycache__/__init__.cpython-313.pyc b/flask-library/controller/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..098f6025efabdad09dbaea23bda221c1eddf8a1d GIT binary patch literal 251 zcmey&%ge<81U>TSGF*W4V-N=hn4pZ$B0$DehG2$ZMsEf$#v(>9rXnT zDNUwZ!akWvMTtd~KAFWOL8-<0rA5i9xA>ugFabYJ=37EJ5QXu{`FSNp`8heMMMca& zGm2P%#7c(GK$78>jk8ruXmM&$ag3K^q=K)ftB*o}b4)>HNk)F2Zdy)aakg$^L1qlX zh?w~J%)HE!_;|g7%3B;Zx%nxjIjMFgos)=4YL5JPGsMr@WF5~97R686f_tL*BH&&RWgEu50&0wrg& za)st?&}C{rU$L17YSTGqj#~7RVbfna;UHg_%SYQrlB+hhbx^L5SwcC3P~PCEVDN2( ziiQAEGDI4im$I=ytL}KtVP5T?1nNcj457d?#p8t4Ol^^O23_uC?Z__2%v+>ElO^ud4%p8M-$3X7csqADgZZ-BbsbPx$JizVhgQ*3{V|7~cT%{{U7Mk_4by)xo!h5a|}`q9GmUj2Iev1`iOH93o&( z$&hJos0s>~pXPJ%Jrkf=bG#wre(hu?3@n@{6YCTqt}p{vuJ zG>|Xaj9K&c<<7Il$YhTmj`rx5ThOB!x3$rGpLro~ zFM19PqWuGz!Qr44C zBl}(i@a>!+tS zTigAPvwmuPb<|Hi>o-69Ppy4J>t55k-)dRc`j*BvwbYxZUqAhaC$F9GwJtx|_3vA1 z>o(zW|76pviB*oL*YZ?J|)!nkE7t0m5u=NH2 zoFb-b#2iPI&s{Q|LWpeWM#RzsC=jr$O39IV(H-?fRJ%8F=^>nY5(IFmdU!)Uwx%9? zOI%lbm&8w1ZL{UDpYHdyO zsYD*9gWv>;OdPtIwxRYt6h}Z*xs9f=BTUS($|8_cL~FDiyD@So1~%_uo$j24EwAe&X`OjxXVUquLX;wRZ}K_HPSUm>zvyBTV5Y3x%i6|&d~KQ*|V_fwDg z&5!+GS?lC*lDzv6h?Qhwq)Avg*gFyzZU`LcH{ue=#%TN(+~C`w@!Q2R#I-ohHNnI4 zgiy=vfGH6^5|(-{MyG@&hvc@WVF%9dN6}@1WY{;z*;U-r>7R~v3d_{S3hjk)op&9DPqEA38IJk#%`=Xt{4`b}t zAP`(~2(J4RUPCyw9KM!bZdr~kFZk&n`r42F2JCdkPoDWNlOYD!%b9-i=XgJPJ25;U zywf|}Bdm0Bpsw^tAj51mnN=vBmp+1`2SqQ6Fx5Sd8s3!lp}_1Gx z3k$QGD0O_Ej6-(2dr+z8IGj3}O$7VH*Ro0BUrDi2qR8ff6!t~09C*2ee^9E9g1l^( zSi}K{wCI!fA0tpsN9p@XIto*Oo(aPn+!i>F`-EgZA%{YF;EveLo#(E0-yvAv>1+e} M+QMCeb$F{U0l`PY%m4rY literal 0 HcmV?d00001 diff --git a/flask-library/controller/library_controller.py b/flask-library/controller/library_controller.py new file mode 100644 index 0000000..ef9c073 --- /dev/null +++ b/flask-library/controller/library_controller.py @@ -0,0 +1,50 @@ +from flask_restful import Resource +from flask import request +from service import LibraryService +from models import db + +class LibraryListResource(Resource): + def get(self): + books = LibraryService.get_all() + return [book.to_dict() for book in books], 200 + + def post(self): + try: + data = request.get_json() + + if 'isbn' not in data or 'title' not in data or 'author' not in data: + return {'message': "ISBN, title, and author are required"}, 400 + + book = LibraryService.create(data) + return book.to_dict(), 201 + except Exception as e: + db.session.rollback() + return {"error": "Unexpected error occured", "details": str(e)}, 500 + +class LibraryResource(Resource): + def get(self, isbn): + book = LibraryService.get_by_id(isbn) + if not book: + return {"message": "Book not found"}, 404 + return book.to_dict(), 200 + + def put(self, isbn): + try: + data = request.get_json() + book = LibraryService.update(isbn, data) + if not book: + return {"message": "Book not found"}, 404 + return book.to_dict(), 200 + except Exception as e: + db.session.rollback() + return {"error": "Unexpected error occured", "details": str(e)}, 500 + + def delete(self, isbn): + try: + book = LibraryService.delete(isbn) + if not book: + return {"message": "Book not found"}, 404 + return {"message": f"Book with ISBN {isbn} deleted"}, 200 + except Exception as e: + db.session.rollback() + return {"error": "Unexpected error occured", "details": str(e)}, 500 diff --git a/flask-library/models/__init__.py b/flask-library/models/__init__.py new file mode 100644 index 0000000..9b0443f --- /dev/null +++ b/flask-library/models/__init__.py @@ -0,0 +1,5 @@ +from flask_sqlalchemy import SQLAlchemy + +db = SQLAlchemy() + +from .library import Library diff --git a/flask-library/models/__pycache__/__init__.cpython-313.pyc b/flask-library/models/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5c68ea118eb9e98740d32ca6d033b0ba714f829a GIT binary patch literal 277 zcmey&%ge<81Ubs*GU9;rV-N=hn4pZ$T0q8BhG2$ZMsEf$#v(=qh8RXA22-eX5mPWz zFtaza7fTU~0z*2BChJR(j3(nPuHZl)$DHJh)ZEIKj1VDqpUkA9#G*<+P1aiiX*r3- z+404NIf)QOMa)1&x0q6rZn5V;lohc8MOHF=29gZ7ES#-kLW@(2ietPSBNco-U40Y+ zoMQ?qOEU8FbironCKhDIWXrG{H)hFZH=W%*q)^DI zv|i#5Bt3f6TmKTlTNo$^?ZulV_1+nG)mFTezQea~zWMfhZ{Ey6(^O#b{>e%GL;(2C z7uTW0$zYBp2Y>(xuV6_aLLSCp5|B6nNYaI}eEq}iw zZVLQh>;dRN1O!Ax0+EnNWL+s|{**`gBrtyXJ|0O$UWf&fkuoci)IU2UZXA**#TsAw!ePwn+@qKIapnn(28BA3HIpG43@RRJuj%CKKU?)jnTigOKyHg-4qV-vl` zZsTWC9#Jnq9#RKP1jn#i&}a%{*JxT8Qx#)YEOdCD!T4QhIPp#v3vwJr zIq(O61>Dzv!{8%aBp^4{SvgB<-P!HgopP_TSNTHr-+q-()5XrqerC8^+Ai&wJ$uhS z6!)7))@kNxXQ8iUyOr(A4(YY`+J~e2ACAIPt=L(-lodsdO7d!}1(`y03}uB6JnG@^ pzG&)MG@s{$51HSoKhEGn5(MEJjQo;^1@)8Jt$(gx0!y##e*;L0=RyDg literal 0 HcmV?d00001 diff --git a/flask-library/models/library.py b/flask-library/models/library.py new file mode 100644 index 0000000..6dc824f --- /dev/null +++ b/flask-library/models/library.py @@ -0,0 +1,17 @@ +from . import db + +class Library(db.Model): + + # kung library ang tablename sa mysql mag error + __tablename__ = 'books_library' + + isbn = db.Column(db.String(13), primary_key=True) + title = db.Column(db.String(80), nullable=False) + author = db.Column(db.String(80), nullable=False) + + def to_dict(self): + return { + "isbn": self.isbn, + "title": self.title, + "author": self.author + } \ No newline at end of file diff --git a/flask-library/repositories/__init__.py b/flask-library/repositories/__init__.py new file mode 100644 index 0000000..9e068cd --- /dev/null +++ b/flask-library/repositories/__init__.py @@ -0,0 +1 @@ +from .library_repository import LibraryRepository \ No newline at end of file diff --git a/flask-library/repositories/__pycache__/__init__.cpython-313.pyc b/flask-library/repositories/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d5ab812300805c56e22450e69ad00a85d21c829c GIT binary patch literal 222 zcmey&%ge<81a>m#G7N$AV-N=hn4pZ$0zk%8hG2$ZMsEf$#v(=qhIA%P=9i2>VNJ$c zf0Oy#3%94!yJl(XM#Nuq-#DdHixbDo<;+XjO%)HE!_;|g7%3B;Zx%nxj cIjMF<96;khPALX4J}@&fGTvh_EMfz40DaUuRR910 literal 0 HcmV?d00001 diff --git a/flask-library/repositories/__pycache__/library_repository.cpython-313.pyc b/flask-library/repositories/__pycache__/library_repository.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..746ad277af44acb184b9cb4dcff74086a4a14675 GIT binary patch literal 2339 zcmbtV&1)N15P$n6tt8tUM~c6jD7G6{p$U{)mr_EDDWq;}ii9Ao1j|ZV+gqPMV2KhEz49+lL<0Q^70hPD_Pmkq{_OQ(O#jG zk$LoGSebGcfs_zAv-?+EF-@Yp3KLZv*Ra$cfJNyUoUAc1P&D}8?n`oDp(=F1%xUwIE{!z%M3Fatdk|y9P;< zmG=orz_W-m5t2i84M=WuAOLP3N^*!&Oq^lCTY4FCxaN3vjq&J)#VpUGh@XdsK$9XV z=_II(Mw4j2hiVEGS2pc7*B)AK%Vv0Wq)~k0M_Nrl!sZjF!Sz@0%j{cFXAyo&{nbbw zCC7iCy883YA8-Ej;r8;@(y=l2#5**u?;F>TFOBc1PqV*V%DmRd^uk{{i6xLBXE5UI zTi`i-_<~%J3Q`Y0!G$6+O-K$;^MK@f*q$sDr0`AwY|noiFSG&a!&VBhjSgUY0wIr7 zZP)f}A4=JW5>aG$SOVB6p0~3w^WVLO=}Vx_!z?(gJ`{WN2l};lA6JTmUd;?~-8Ab~ z%{EOQH_ck3+H%nzGR+4q%MDfx(_C{X^IWHH*BiLZfTm8RX2Udmv!A0Oy zJUWlQ*whu%^wUkGwo`6-HZx7pfVepXZ7G5v6rMe{3F-%Oq>a9oC2g*&kjUi@TAc`3 z7+dJY7J`_frGgk(ow#@-uBG-Cy96G=5?GxHQ6d_|x-wXPAK1cbM&%J0gY7aOP&Mpp lpkc0m>QCzq{RmQkhlJtD>L`*V{YI|-t3fS;>*@79 zSx#S(rywt)9T>qJD%*;;4Ib&RKu%80EFEt&Uo4eRzpx#x$qa*zl6cAm?`vl4P%%Zy z6mei_AD;J$E*C6!uNhMK-bY2O#hY~o&J8#kdK=E)8R9+1MBLebyKwJ%i;3;8rFvy4 ka@^D3jHq)$ literal 0 HcmV?d00001 diff --git a/flask-library/service/__init__.py b/flask-library/service/__init__.py new file mode 100644 index 0000000..f6bf3ff --- /dev/null +++ b/flask-library/service/__init__.py @@ -0,0 +1 @@ +from .library_service import LibraryService \ No newline at end of file diff --git a/flask-library/service/__pycache__/__init__.cpython-313.pyc b/flask-library/service/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be2ef1e794a30e5876c996161bd91c94e1afb942 GIT binary patch literal 211 zcmey&%ge<81Rb*HGPHs8V-N=hn4pZ$0zk%8hG2$ZMsEf$#v(=qhIA%P=9i2>VNJ$c zd_I{;MTtd~!Kp=MnaQbsnoPI&b09+T#SpO~W}woQ44;7{!!1i^tC&!rL~)FlW2Azw zr>l=bfOAYiWl2VUo^D!BVsW-^VnJpMRBKFpd}dx|NqoFsLFFwDo80`A(wtPgA`YNQ VAp46!j1SC=jEwgfw2Rn)8~}=EHgo_0 literal 0 HcmV?d00001 diff --git a/flask-library/service/__pycache__/library_service.cpython-313.pyc b/flask-library/service/__pycache__/library_service.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..18e8f6f2732fd055a3580679dc7394a2b440f775 GIT binary patch literal 1701 zcmb_c&2QX96rb_eI@_df(xyp6C6=gFF=*0Lg=r_Zb!vw2l@zB3a~{^!&QW{L4?Q-YcSve10&#IHmtyyW6Omn*l6RE zrR|_?jo1~m?Gf8W+ZnOPf(leOU4KlUFNg#Zp2aQsijqD<%0zH*Gb8o5pupJLkZy@E zti+JgHMYlBeFG>|yBl#k5@C|;u>pDOPw#!)SXUBMW974NY7f8s;z8}JdyQ^CebQ+! zZX}_4x)^rj26_;wMv_-h6n4Ga*Og6~(vAA^KNF}IxQ)-KNfh6+-@Muj&p+_|LvLZ< zU4U^!TO7r35yvdWIx0KtzfxRh%SH4x24fg9OtYG$+3brr+T+@aRkN+gvj!6=^%zmh zPW9{?NM|Q>ow|skpuKS5Ej<7H(7Uzo-a1R%LC1{v*Qg-zGO2Z(RjL5)MzNc;2i8Ys zn?Ei)w?^$gwdUD6KS|KHSAqCwJB`ysYA5VrlfXAK6lU-UW>FwOcjf)IRQOE#hPI+G z4Yk$mbe<}DvsP5XX@Lw=si#ksA&040Y6%6^;PTPMnO$f5?$M>$-I?u&N7Gk!-{1cB zb;Y_+{n7ekoLzYDg?IhHyZ%!&+TAiiyoG4JMRy0nxU=5xeyBq?|o zfioH9F;u0|uHHECZalXRy*vBvowHs2zsAvtWFk`uQ}p`D9K!sYh~~cU{0q^=eRnY< z3g^&c)jy|QA==@V6hc>p*y=>Rg!FMCzUzfaapDQF5rayTxGmcqI#y|z#;q-hBNV}T zyb3OnxJrWRS8x*|cNAfoLfq`7QVEegos*ym0UG{HP=i&3;s;)4IazzcUnB*xxo7R{;P3 literal 0 HcmV?d00001 diff --git a/flask-library/service/library_service.py b/flask-library/service/library_service.py new file mode 100644 index 0000000..eb6021d --- /dev/null +++ b/flask-library/service/library_service.py @@ -0,0 +1,29 @@ +from repositories import LibraryRepository +from models import Library + +class LibraryService: + @staticmethod + def get_all(): + return LibraryRepository.find_all() + + @staticmethod + def get_by_id(isbn): + return LibraryRepository.find_by_id(isbn) + + @staticmethod + def create(data): + book = Library( + isbn = data['isbn'], + title = data['title'], + author = data['author'] + ) + + return LibraryRepository.save(book) + + @staticmethod + def update(isbn, data): + return LibraryRepository.update(isbn, data) + + @staticmethod + def delete(isbn): + return LibraryRepository.delete(isbn) \ No newline at end of file From 6217d789eaa5f96edcadbace027d7bf6ce39728c Mon Sep 17 00:00:00 2001 From: TrupleCPU Date: Sat, 20 Sep 2025 12:30:22 +0800 Subject: [PATCH 2/3] remove: all pycache --- flask-library/.gitignore | 4 +++- .../__pycache__/__init__.cpython-313.pyc | Bin 251 -> 265 bytes .../library_controller.cpython-313.pyc | Bin 3536 -> 3550 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 277 -> 291 bytes .../__pycache__/library.cpython-313.pyc | Bin 1083 -> 1083 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 222 -> 236 bytes .../library_repository.cpython-313.pyc | Bin 2339 -> 2353 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 211 -> 225 bytes .../library_service.cpython-313.pyc | Bin 1701 -> 1715 bytes 9 files changed, 3 insertions(+), 1 deletion(-) diff --git a/flask-library/.gitignore b/flask-library/.gitignore index b694934..5b56612 100644 --- a/flask-library/.gitignore +++ b/flask-library/.gitignore @@ -1 +1,3 @@ -.venv \ No newline at end of file +.venv +__pycache__/ +*.pyc \ No newline at end of file diff --git a/flask-library/controller/__pycache__/__init__.cpython-313.pyc b/flask-library/controller/__pycache__/__init__.cpython-313.pyc index 098f6025efabdad09dbaea23bda221c1eddf8a1d..587328dc2bc4e340f6e3d3651556e559ba9dc816 100644 GIT binary patch delta 40 ucmey(*vZ88nU|M~0SHR9Cvx>LdQF_J#+#OtSe&h!lbKYMSX4Q2k39h9ybRR< delta 26 gcmeBV`pwAonU|M~0SJ2JCvx>L+Dx3THu1C_09}p;pa1{> diff --git a/flask-library/controller/__pycache__/library_controller.cpython-313.pyc b/flask-library/controller/__pycache__/library_controller.cpython-313.pyc index 8ee70e499cd07ca157b3cc5c28da9d6ede93d03c..6ff84443d8d1fc4807c8af90546b37175d9d4b90 100644 GIT binary patch delta 44 ycmca0eNUR}GcPX}0}zyIZ{)hq$QUyD6{8w&T25kdwr);lQc+@2^L0ElY{y#N3J diff --git a/flask-library/models/__pycache__/__init__.cpython-313.pyc b/flask-library/models/__pycache__/__init__.cpython-313.pyc index 5c68ea118eb9e98740d32ca6d033b0ba714f829a..197bc57114a3db8f49d9571f23e170faadf197c9 100644 GIT binary patch delta 40 ucmbQrw3vzOGcPX}0}zyIPvlz6=r(bk8gE)oVsW-^PG(Y3Vo~M9%T55^atzJ@ delta 26 gcmZ3?G?j_#GcPX}0}$jWPvlz6Xfbh}+QdhW09K#}eEz>% diff --git a/flask-library/repositories/__pycache__/library_repository.cpython-313.pyc b/flask-library/repositories/__pycache__/library_repository.cpython-313.pyc index 746ad277af44acb184b9cb4dcff74086a4a14675..87ce8a67e7a51f1ec3be1ff9bcd1e3bad97ef697 100644 GIT binary patch delta 44 ycmZ21v{8ubGcPX}0}zyIZ{#XrWDJ{Jht7GcPX}0}zyIPvpvCbe~wN#+#OtSe&h!lbKYMSX4Q2mL&k^N(_|% delta 26 gcmaFJc$tywGcPX}0}yn`PUOmBw47L~HgTl|0AL;mS^xk5 diff --git a/flask-library/service/__pycache__/library_service.cpython-313.pyc b/flask-library/service/__pycache__/library_service.cpython-313.pyc index 18e8f6f2732fd055a3580679dc7394a2b440f775..23d4ab051c6bcfa339aaffd5359e5ea02c769bbb 100644 GIT binary patch delta 44 ycmZ3=yP22kGcPX}0}zyIZ{*5jWb~U{$*9JgmXlbVt(%jXRFqg$xp^KVJ1YPL)eL?B delta 30 kcmdnYyOfvfGcPX}0}%X?*~pd0$mlS+l2L8*T1GZj0DH3swg3PC From e3e90cdf4ce6322dd13efaa771b8c036295d0008 Mon Sep 17 00:00:00 2001 From: TrupleCPU Date: Sat, 20 Sep 2025 12:36:30 +0800 Subject: [PATCH 3/3] remove: delete cached __pycache__ folders and .pyc files --- flask-library/.gitignore | 3 ++- .../__pycache__/__init__.cpython-313.pyc | Bin 265 -> 0 bytes .../library_controller.cpython-313.pyc | Bin 3550 -> 0 bytes .../models/__pycache__/__init__.cpython-313.pyc | Bin 291 -> 0 bytes .../models/__pycache__/library.cpython-313.pyc | Bin 1083 -> 0 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 236 -> 0 bytes .../library_repository.cpython-313.pyc | Bin 2353 -> 0 bytes .../service/__pycache__/__init__.cpython-313.pyc | Bin 225 -> 0 bytes .../__pycache__/library_service.cpython-313.pyc | Bin 1715 -> 0 bytes 9 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 flask-library/controller/__pycache__/__init__.cpython-313.pyc delete mode 100644 flask-library/controller/__pycache__/library_controller.cpython-313.pyc delete mode 100644 flask-library/models/__pycache__/__init__.cpython-313.pyc delete mode 100644 flask-library/models/__pycache__/library.cpython-313.pyc delete mode 100644 flask-library/repositories/__pycache__/__init__.cpython-313.pyc delete mode 100644 flask-library/repositories/__pycache__/library_repository.cpython-313.pyc delete mode 100644 flask-library/service/__pycache__/__init__.cpython-313.pyc delete mode 100644 flask-library/service/__pycache__/library_service.cpython-313.pyc diff --git a/flask-library/.gitignore b/flask-library/.gitignore index 5b56612..821313b 100644 --- a/flask-library/.gitignore +++ b/flask-library/.gitignore @@ -1,3 +1,4 @@ .venv + __pycache__/ -*.pyc \ No newline at end of file +*.pyc diff --git a/flask-library/controller/__pycache__/__init__.cpython-313.pyc b/flask-library/controller/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index 587328dc2bc4e340f6e3d3651556e559ba9dc816..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265 zcmey&%ge<81f|;NGF*W4V-N=hn4pZ$B0$DehG2$ZMsEf$#v(>9rXnT zDNUwZ!akWvMTtd~KAFWOL8-<0rA5i9xA>ugFabYJ=37EJ5QXu{`FSNp`8heMMMca& zGm2P%#7c(GK$78>m$Ow&XmM&$ag3K^q=K)ftB*o}b4)>HNk)F2Zdy)aakg$^L1qku z1vM}RVPH&rd}dx|NqoFsLFFwDo80`A(wtPgB2J*uAmGi F`2c^PN?rf} diff --git a/flask-library/controller/__pycache__/library_controller.cpython-313.pyc b/flask-library/controller/__pycache__/library_controller.cpython-313.pyc deleted file mode 100644 index 6ff84443d8d1fc4807c8af90546b37175d9d4b90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3550 zcmb_fU2Ggz6~6PgGrQS%+>VoVj1rI6j^ic%i50s^OIq+xP-CaAvr|JWTN=i@v-Xh9 ztb6Y)G@(MJ56Be{ZAC*Pp7Mg!@KQelPdM;kUeLq_*^JT(2_EoUR3{RI7tWcPT|4eJ zZGkK8x##}Qz2|)AJ9l>u9!wD^)suf*Y?BH38#Zc1ij|%3fO4G}#NZ~$1V=d?b$*hc z5U3F9!lXDMQ7P2L$;5{6Q9| zt5j*h23@B1t5utMpf+7}=BY)m8aDl&6Atpl`9id9B)Pb;ql0pt%n`~Ngz^SQ1%q!R zR5S#Tk|EN>f|N@HTD;>$hk3PcZYN-Ep|%rlh*rSU?_2|Moy>xaN}jK2yLFZf#|@X8 z;WY9sp78^O@fvylNkS^we9fl2OX@48`4?IUIY4xn@4~5v_%6_*R*B^JsqHmbl@loL z5y%U+XIkZQAbSN=jXg6r!)(gtCPrS-U$}7o zqCPz~w{+E8thjxpvc)d1rUrA%aW;Gxoy( zz=^Oy5O0vX&Br#IyVsk$H=28vrN5j!wV@9Fa`@)Z`{{SnKWn-*d`BHzIqj=Y`N~uO zT2}{|2&;a6MMFBp83{D|EFK^% zdBnrMk|i_Ta10TbpW*Y#eG{NrgMlIAejQ{s3^SZ36YDG?t}qK{iAuhyrtQ}GCwBFk zR@)Q8Oqtbcy)#1XEJm`QH&R0YxpoLpR~Qkx;=06@$g@H_DRH?2Q-SEPc{h+e$1B@G z!m0uWXdqv)8M7AbYh4$N(WzcN9PQODx2Q)mbc@ifBO$`hKH>)uKn7Q zUGVIpZc|#JdZkdP!kk-tAcY-)T(mvQDYNbSuqv0LXx%_T0DqTN+z8K!0<|sArU!8> zdH%J6z2rGCi1rU;28V-IpdcLQt-|F%U>?nh6ipY1Ma#2jGpd{&f(Ib4Q#4^9E>)Np zv^K&hjvRnF>^%@~kb8V8d5OELwQXvh>ssfAc6@pKuj-*2FKwtDH^03yzH$8Quby8U z-#9nD)!N~AUhp#$Yh!-qMZfvQziS>J&t@; zBscu+l*4^LkD4Ei+8$Vgr3hCsID?1S7cf>Ko*zTfhKO@=(iFwhJZu^TuGQU&rK zx48Wt0GuMGYBZfhl+Rx^onnY==tjiSLnsiiEGFp4yy%X4TB_X}x%3E5Jp%%`R6V+> zo>*5;d?0S9eaqsb$(>Bz;g5ns6nA>POc7$m8B`WYL_@##fXlcUdQb7Mh`sEcz_8g2Vebw?EqX zt1!lX00O}!hv0fN;WdO)%h8+dD=jODl|{e(>%R7l-vT?G_tWS9%VdZF_GWf~{31C( zK1_`a3cv0f=@nMHIZ#)7C6HmZn#w5@&r46D=ta?oB20D9poTZ4{U|WIML7%K3KSo! zp+IhD_`<^MCQ6;3q?3@{9voKcIS!{zWSmmMOA%AccL=D+gXK;op_m zQIMDIGK)9>krsXO(PIS4xhQ=unuqaANrKYb^rhX diff --git a/flask-library/models/__pycache__/__init__.cpython-313.pyc b/flask-library/models/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index 197bc57114a3db8f49d9571f23e170faadf197c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmey&%ge<81f|;NGU9;rV-N=hn4pZ$T0q8BhG2$ZMsEf$#v(=qh8RXA22-eX5mPWz zFtaza7fTU~0z*2BChJR(j3(nPuHZl)$DHJh)ZEIKj1VDqpUkA9#G*<+P1aiiX*r3- z+404NIf)QOMa)1&x0q6rZn5V;lohc8MOHF=29gZ7+?=gqLW@(2ietPSBNco-U40Y+ zoMQ?qOEU8FbironCKhDIKv+-%Vsi6SQge!9;^Q;(GE3s)^$IF)ao7L_OLJ1~ig}%HJH*!1RnkrU(=^0Ky?ld;kCd diff --git a/flask-library/models/__pycache__/library.cpython-313.pyc b/flask-library/models/__pycache__/library.cpython-313.pyc deleted file mode 100644 index 54307d36f6e67c9f079c83303948698ce112b210..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1083 zcmbtS&r2IY6n^_FiJPnu+lcj)ikDFI)EtyjC{`g>MKZMz*)r_L)hyX;(wW^u4uzab z>m~j`(xXSc^)C^;g@J<5Uc6aS@11d1ZKapeclh?rH{X8m&6^n*h7LT!C#SVj3E-Pp z+=Lb|7@kl9(LOhU)v{{*?{@EdM>ySh#?lAP< z4mui|0Fp*J$!w}Io0u@`d&=U($crCY>pa1pLM?Ta-|E^;#E zhn{EIo>Pra$$0=Vd|@?M;&2G-Q0CwJ!CCn}2SWRot3%R^G6e;B^+aK+OKqQNfg5-Z zOITr0YZ4-wDud`4+KL!>)We^B ovDC9@KF^65vba+^&f!v#BVNJ$c zf0Oy#3%94!yJl(XM#Nuq-#DdHi2n%Xf4BV{D)Z&=<_{_Y_lK6PNg34PQ hHo5sJr8%i~MI1oGK@KYhF+MOeGBVy{Ff3vNasZ9XK{x;a diff --git a/flask-library/repositories/__pycache__/library_repository.cpython-313.pyc b/flask-library/repositories/__pycache__/library_repository.cpython-313.pyc deleted file mode 100644 index 87ce8a67e7a51f1ec3be1ff9bcd1e3bad97ef697..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2353 zcmbtV&1)M+6rcT)R+8I?RTM3qxw6?ciePm`8 z&>@gZi+yq~2KUnDntvuF*wkh)ZK1j3=2V5=O5dB^l~vhsp?-(A@4b05^XC12Gus;- zjT4a0yU*6YQwaGTolw-k=)D8R4k?nN^f_6QsI(+gIYXw%EGf!qQdIJ?pGlQ9HK)Bo zCnxjhJ*P@7+U0V+TJsZp4f_b`x$xN`6+)#Vp>k28N=3yL^FadDz*h$R2>9xN9|d2l z=nHZ&k|y7({dqBnM+fraMV%(rV!1dU4~i<-?G|&q7VW;ma{g5xo(6-xyP$SR8MH5j z;GCh4--0&i`F2=GmOPbKatg)8xOTr|Lo*c1b)S+RCh{*AKd6+LO<85>tFynu?*ms6DK(( zHIG$;WXST{ge2fw#-0c%AiIX7Fg_FjcK{_hL@6e2wBRkh3^`nLJiEboblqZ>=TXGZ zLqniRk(6{AR8FHwwBJIN2E~;PyUVo)mfNuzJ|r0wpZJkZ8<4R1)M;@25!{)51L`co zZ>ql-$;0I2Z|Q44-TL9ykMC_QZ7v=e6OX+Ee_F_z5nQk!eB-c$H(ytZgkH&w zaNRVUR>L+;9yiTKtKMsd+SuzBtqs)AZ9#q_$J-cs4UlQGj?k1Z^pTAQav`wgKvUa;S~JmL+Yjr;y0y zW3-MVU}0>&ADa(iik1puU>(QBjJTHCUFZ?`1VdmQPl+X>L98c(<=25FtmIT4fi~DK r^8r=Ex`qno`iFkE?$Y-m1$amp-mGIqlB8eBwZGJ?l=_2!5{v%>y@#kH diff --git a/flask-library/service/__pycache__/__init__.cpython-313.pyc b/flask-library/service/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index 84e6d5b4f27bde6ccfaf518330579ed2c59f6f93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmey&%ge<81f|;NGPHs8V-N=hn4pZ$0zk%8hG2$ZMsEf$#v(=qhIA%P=9i2>VNJ$c zd_I{;MTtd~!Kp=MnaQbsnoPI&b09+T#SpO~W}woQ44;7{!!37btC&!rL~)FlW2Azw zr>l=bfOAYiWl2VUo^D!BVsW-^VnJpMgatJy25L}De0*kJW=VX!UP0w84x8Nkl+v73 ayCM#txgggRgBTx}85tSxF=!XD0XYB`!8{BA diff --git a/flask-library/service/__pycache__/library_service.cpython-313.pyc b/flask-library/service/__pycache__/library_service.cpython-313.pyc deleted file mode 100644 index 23d4ab051c6bcfa339aaffd5359e5ea02c769bbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1715 zcmb_c&2JM&6rb5IZ%o3HKuAa{)r~-OF|qha4y{ln1RNT`LRkeBVRf|jPQr?fZD!U; zzHzF0%^^~bJ(7Q>N|OW8NSx?}Tc|7b+V^(H8#kdsm6*eu_kQ!<%VV5oA};&#NsB-tSY^j7sd-!)bx7qYQ@`$^^D5BDBa9^Gkl`{}bzdtogJ z<@1HG8#i(-$?Mkuf27#ZHq&;k+gGJ^p5p!L{J+zwY21cKYd_Xp4dvE@Ye~Tmxl`d@A8pvZSLg5-|oL!=%eu(#<}LqaCWOST@@dJu6}Yq#8qN z*{PcS2hTcuw1M6F} zO`jHhT*2laTk~X<9wq48b%A`8oyKXxl@s=$Wx_WzRLsDUm<0g<-j#RXlHp748_J5p zG*niz(|IoO&5Evs(-J&Pxtcy!h8)IX$wd%YgYySxXSSWqTL z0dOLtJO-;Y+SSW@-sRWUzISuiy?L^$pKBbQh$lSdVhUeBnnN-FF`~Ke7ym(YVb@*A zh>BC-QTI!-OfmOHXAO-0=7rCc(WJ)M)l2@yE_nZO3i2*l6iz@GeIQ2Xk@B+k?! zYKIPJh}|f#8yYJWexMyrX}`t7Z?TB2W!M02spSOl?YeKPaWVYG$6V&K??5qlBJ-~y q6G{cT;KwLb}nEbJd)zg#8&