From 68d28ee4335b63a34ed8b381d3f48956022c61eb Mon Sep 17 00:00:00 2001 From: Stewie Date: Sun, 7 Aug 2022 17:30:49 -0400 Subject: [PATCH] Adding function to extract content of googlesheet --- ToolsTales.py | 34 ++++++++++++++++++++++++++ __pycache__/ToolsTOR.cpython-38.pyc | Bin 9636 -> 9633 bytes __pycache__/ToolsTales.cpython-38.pyc | Bin 24624 -> 25371 bytes 3 files changed, 34 insertions(+) diff --git a/ToolsTales.py b/ToolsTales.py index 1be5e1c..a7e2a91 100644 --- a/ToolsTales.py +++ b/ToolsTales.py @@ -15,6 +15,8 @@ import collections import comptolib import lxml.etree as ET import string +import pygsheets +from googleapiclient.errors import HttpError class ToolsTales: @@ -659,6 +661,38 @@ class ToolsTales: final_list.sort() return final_list + + def extract_Google_Sheets(self, googlesheet_id, sheet_name): + + creds_path = "..\gsheet.json" + + if os.path.exists(creds_path): + + try: + gc = pygsheets.authorize(service_file=creds_path) + sh = gc.open_by_key(googlesheet_id) + sheets = sh.worksheets() + id_sheet = [ ele.index for ele in sheets if ele.title == sheet_name ] + + if len(id_sheet) > 0: + wks = sh[id_sheet[0]] + df = pd.DataFrame(wks.get_all_records()) + + if len(df) > 0: + return df + else: + print("Python didn't find any table with rows in this sheet") + + else: + print("{} was not found in the googlesheet {}".format(sheet_name, googlesheet_id)) + + except HttpError as e: + print("The Service Account doesn't seem to have acces to that googlesheet.\nMake sure that you added the email of the service account if the googlesheet is private.") + + else: + print("{} was not found to authenticate to Googlesheet API".format(creds_path)) + + ############################# # diff --git a/__pycache__/ToolsTOR.cpython-38.pyc b/__pycache__/ToolsTOR.cpython-38.pyc index 3a4cabc2d24705237c9ee43dc7011dc9cc8b7f88..9ca96d72382c294fd4e39ff472d34cc41a2e7766 100644 GIT binary patch delta 52 zcmZ4Dz0jLGl$V!_fq{V`V%7VN-0Un;`tDXSA&EJu#U6>t*_nCiF}{hJdGSH11^Jux HSxOZFjwld5 delta 55 zcmZ4Jy~LY4l$V!_fq{X+@8+S6-0Uo}M($QIA&EJu#U6>t*_nCiF+r(GnMEZT@gb?j KC7X3vN)-Xb1QCt^ diff --git a/__pycache__/ToolsTales.cpython-38.pyc b/__pycache__/ToolsTales.cpython-38.pyc index 8df74a7ef0eee7545feb70aaeb448fd672f5b0cf..eba3aba280832dc29e577b2d15bae857b61c2ff2 100644 GIT binary patch delta 6212 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 DJ-Ni- delta 5626 zcmbPzjB&#OM!ry9UM>a(1_loC!$}T36ZvEqw@lPtD&o$N!ji(;!jQt+%oHV(!Whh; z$u{wa+-7A)Ef!f5cdM9?#GKS(kHqBc%)IoNpwy(yqLPgGkksOm$?2>rjH;7+SpAgw z7#J9CF_jsvWW2?mRh*v}lvrLQ$iTo*BmyEt85kH;C;w$V69sa>O97A=H;CW`5ny$~ zAQoJ)Is*ekF&hH|0~-Syg9t;B7)VweL`Z@NX%GR{hR`utnLS;Xhk=1%C36wjHH=xe z7&D8&=7I^3(py|MIhn;J$@#ejc3P9Svzsw;O`aGmJDHn9RvD}aOelbi2eZHgNMn&Q z0|SHhWN!{nBGl|2l{ zZgIrNXXa&=#K+5Q*5cw~l+yz_6s(r3xHPGtC_g#1xcC-xQE8qgOOfT|AZ{%Iun)il z*aXqZ`?*CKjVCYSF4NKiS;Cr|oswCk$y8(s;xVQ`tb}VQa${g%u-@#%Q@|(*ij-fB z`nR|X60<=em|vV)RK=uQv2yZhUN2RUmX%D9pl43aNkumZ6oB!Qt@sKUwI;9TGuE~T zx!nO|DLW`iQZkE*bU{KOKiy)^FG{(^Qk0sQqRCriIhm6`UBDV739FehEg; z$us#|8C@sK3rI3rPPP=#kU>%bGMhWCpx7inF}Wl&KQDK3t-zvSxV;eTq8Jz$G}$4( z=Sa)UN%c$2O)ZK6S(XSQl0XE=?prJ=i6w~;%fXg_!m}uVfq|iLa*^OpM%~FeLOP6c zlOu(coWNnpQ(Tf*R1%+`mR6ivQUo@FqaZ&suOzjo_!eUUnn|~K(o;*~Ve)mG_X;^M zGOADhC+uwxGOZ{Vs~gE9FQbAD+_Q6-p@Q=|lPCD>J90_3z?Y$>V9`6;Qr zn>$3Nf{c?K{s4b}-JL?)k> zmS+62`MGp86Qk_pWVs8xaE;)E?;tNO2UZCtz_#&%f*0)G;>`R!-p!@*?o8~m3=9k* zMe36eD;f*IO(<#sIhv=)ax#Zfi6SUuZ?Qom5o{co0GU~Il7WH2ee+x;K1LHzaJ^&& zxtS4cCdlN^Af~b=OA$E4;O5_APE0BWJM+G>GKMoVi{n9gt0=X&I5nklvVuwpFFeI+ zG8b7+UZ|pkk;qdkN{SMbOX8gqllms#S4s8+W$mIMP-Jiv7vyA?q*j#N;z&v?PR&cq zO@(H5usnJy1P2o+8^nWDPG+3!=q0v!p=t&rBkN=?bsYhaKYy`?hPdfkgsfyL;+*WJ zuEYk;w_20))JtT+X*C)Y4&@-*xl{8};)_d)GV{`li>xRAS9eBiVtO7C}6tqR^lXG-s8M!8R={{#;aCWOAFH zhOsM19u!HMu!}jS@gmE~i}jTmRVE+TuN47VhA_D38v_Hw;mr{S z*O@ipGMdnmk*PQXq7p0vatF9(F`OJ>;)ImvWGDYLHp8Yn8Jlj4$tPmJC7@iwS7bR^$IOsXX>y#IsyfK7TTIDD5H~u4bb@?%ix-ss;!E=5 zlPXJ6i&ZACGF!+GiX~0Pq5wt)25_>DGFMRqxf`MvtW5w?EX610 zK#AZMw`*Q{PG)gN2qOeq2d!Yvk;{Jhkv$@?r+Im|(>WGk|q{My1^ z7R`K~zx1@iC@5P@a{Khy}n z{FK!A2w$Jl%{5kXjK*+Pu(k+mW?o8aMUfxKHH<|FlR*9iCxG_JXRXWiK>9Qpi_{ny z7@$=txMW|+SOj(fNE#7;-II%K{J>fuVU_`MJL4^$;#6>L7Z0jcAu@1VCQN>3W5Wi@ zYehMe4Q&04lR>@%8LP<*u_6Z~0Cpcp(=EZG)ZF~C)cBOrf}G6c#FEtF#>pFP?WLGN z?MNsF6?L2p3=GVmHe1Bx&yL#|XH8z^WXs4l`Gu2_S&B%laE(BUXg1RX#v+#*p$Uuy z4mE-x5+swy1!ntz*fk6b#A<{WGS-Teh)<4iR#xt);aMQOkfByQFQA4yMNFKbmb-?# zM7)N*nK7GT0%Oso5{b$4oK2Y-3x7<$=A6qaH-V{;VX}uyjJ7Z+u6)5s{}x|vYF;Tg z0mT<2mO!%~$amm?Up)D|%Vy-pOA$Ow&;oDeho+c__4_AVm3-a|XK5#R^ z7Zf?5Ht$?e07OiV_0(Zxp4{Wvr46!gB_qTzuvRbu*2F%;u)mx>g4YqqUYr4S0x40;S16M7LRvvbq2{5d4m!kdl5MN5y?px zY35CLv8ure@AW(*OVT#ALO|rXArA(vQ2XRo1yFv=iG?1a-Up`uKTO#o2gY>o_4VXfZDceB=xL)4O$iQ%m1C;pUK|N1+sNP})i4_+mfmHqh zS;YWiF@gwiP#p!aAmIf|$nfxD?Axpo?Z&9w08#^14GIZ}$H82XK5z;>GPyUVs2(Jy z$yjs{q#UdgQMAKV9z{-WRjhh?deyZ>pvchVgp`z^ffaCd1*xVBK!$&i^?uogn*Cx-356}WvmyAV=aB1LxDZf8i zB*BQ0b+UUxHMb2Yj$J^6+vKwearK~;%L$y-!36=h7Dxj%!`KQE^HLIv vZ!s05Om