From 06d59e177953750501ad09e2250584751d79c1ec Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Wed, 5 Oct 2016 21:59:01 +0200 Subject: [PATCH 01/53] [IMP] avoid to crash during analysis, if repository is not correct; [IMP] remove warning when analysing Odoo modules manifest, if docutils raise warning --- oca_custom/README.rst | 37 +++++++++++++++++++++++++ oca_custom/__init__.py | 2 ++ oca_custom/__openerp__.py | 22 +++++++++++++++ oca_custom/models/__init__.py | 2 ++ oca_custom/models/res_partner.py | 14 ++++++++++ oca_custom/static/description/icon.png | Bin 0 -> 16821 bytes oca_custom/views/view_res_partner.xml | 30 ++++++++++++++++++++ 7 files changed, 107 insertions(+) create mode 100644 oca_custom/README.rst create mode 100644 oca_custom/__init__.py create mode 100644 oca_custom/__openerp__.py create mode 100644 oca_custom/models/__init__.py create mode 100644 oca_custom/models/res_partner.py create mode 100644 oca_custom/static/description/icon.png create mode 100644 oca_custom/views/view_res_partner.xml diff --git a/oca_custom/README.rst b/oca_custom/README.rst new file mode 100644 index 0000000..b235c3e --- /dev/null +++ b/oca_custom/README.rst @@ -0,0 +1,37 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: License: AGPL-3 + +=================== +OCA Custom Settings +=================== + +Custom module for OCA Instance. + +Features +======== + +* The module add an extra field x_github_login, related to the github_login field + +Credits +======= + +Contributors +------------ + +* Sylvain LE GAL (https://twitter.com/legalsylvain) +* Benoit GUILLOT (benoit.guillot@akretion.com) + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit http://odoo-community.org. diff --git a/oca_custom/__init__.py b/oca_custom/__init__.py new file mode 100644 index 0000000..402ac47 --- /dev/null +++ b/oca_custom/__init__.py @@ -0,0 +1,2 @@ +# -#- coding: utf-8 -#- +from . import models diff --git a/oca_custom/__openerp__.py b/oca_custom/__openerp__.py new file mode 100644 index 0000000..8b3b14c --- /dev/null +++ b/oca_custom/__openerp__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2016-Today: Odoo Community Association (OCA) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +{ + 'name': 'OCA Custom Settings', + 'summary': 'Custom Settings for OCA Instance', + 'version': '8.0.0.0.0', + 'category': 'Custom', + 'author': [ + 'GRAP', + 'Akretion', + 'Odoo Community Association (OCA)', + ], + 'depends': [ + 'github_connector', + ], + 'data': [ + 'views/view_res_partner.xml', + ], + 'installable': True, +} diff --git a/oca_custom/models/__init__.py b/oca_custom/models/__init__.py new file mode 100644 index 0000000..1bcc806 --- /dev/null +++ b/oca_custom/models/__init__.py @@ -0,0 +1,2 @@ +# -#- coding: utf-8 -#- +from . import res_partner diff --git a/oca_custom/models/res_partner.py b/oca_custom/models/res_partner.py new file mode 100644 index 0000000..0708c63 --- /dev/null +++ b/oca_custom/models/res_partner.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2016-Today: Odoo Community Association (OCA) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp import models, fields + + +class ResPartner(models.Model): + _inherit = 'res.partner' + + github_login = fields.Char(readonly=False) + + x_github_login = fields.Char(related='github_login', store=True) diff --git a/oca_custom/static/description/icon.png b/oca_custom/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bb2e48547168ed69b819857a323b0009aa5ca92b GIT binary patch literal 16821 zcmbV!bx>7*^zETby1NA=q)Qs4LAvvMNl_Z48)-=a=|);gS{kG~1nCB85b5{f&Agf4 zpYOdhL){tfIiK^{d#$zC-seWBsmfuZlc7TpgsC7eqXB-_J$<1fgYTjv$lTxuqKlM* z7AiP=P%Xm2-)N5V`YsTJ)${ZP_n8%o9D-;d1sO>#kBq}iPalHUH;>}lGon|UG{19J zNA}T~UsQGwUk{e%INQ>p2B9N%BE-7QC59hRRbGV#4Kkvts-2=Y*Q6u;;P_{J=UHhg zqAs+F-n5-{Tv27$QB18 zfJ(134IHT)B)!tJY5(+d1Vo@qlfd*RQF-45G+$f85)0V9Y~VWJq$NHl*%cfJgYb^L<-Ae_*NlXBi!>MuJy=jVHzWHN|{#kmW2J!>NrL(>7H&i#s>Jh%FQ_@2vAZ|J zr$QQO_Dq<(jIsoCRr7qlgSUU-*?C}DphSoHL!q{Jc(|^XmSAn+H5VEpd{-#~Zi!5i zy>eH1bJ}A=i`Qn*)LlElFYn*Sa3bLd@C&IMJa>M40ro5_4)2RZ<^*oCyfo1|%3=nW zh`vQeqBG&Lge63Z7ihj4F>nYXgsAk1T!$qhPGd}Q&-D=1*dy17-dn{`d>Ttywd7V4P~ zaAbCMWhT&&&cz{to!s7^c(kpwP<(p)tnq^sJygfUbL;cOv`DzTWi+EfZR?kxt`%o< zCa=QqBF+UTs=C%rBGw!mr8x=UcPOZ`u}xx&mk-_j`@(0HSWI7Xa4g4pJ=|TN&vbQ3 z>1$|AZnL($U-lY|9HMX;+IdcWQQRAdC8@oftMuZ&X8V=t8&h3W4mI+!FjYK_{c+M< ziA&fA4{8dd*Vb=vwJLLjO%SvNJ37SJ9RD5tn~6Ln)cHY-)i{3Mck3YINb+82csY!x zF9CahE5($G3_bMd+3XzlT*T_BhlI?y8>Plvt`Zsxqu`ENv?MB=wl-~{j3C9wskLxV zk*r%Ll{DTkuHEI6t19}>+6el*oD&E!$dO{5_}M!@5$^z%M4;(O^pUA|GQKxU(;sSz3i^|pA}N5 zoP9VEGB{Da9VAgoETmAM&<-T8I3Tox2PJAKDmjwEO8Ykgr}jdM4jhFjj)@5fqRIK* zPG1G&I;7hgzNR4)NZ85te^6Ga6N#6n7!i^aA(Cbw3oWuWP$VUV>}SzRE>|;@SPIu2 z1snS};C3h?JSeEzA3F!|nI8I@RrU41aDO;5s&Mi&2l3CBPS6?7VnmgH7S4$=Q2Ar%zZ`L91Z3r;xRLO8s!e{IumCM-28fU4Lw zrPXc3C8la+-;F2aMM;eapZ|j?;!Xo|X`~}_h&%(G&`w&C2BB2yn0T>I#Umr`UNl!d zjX1TGdIzcZ%9eAcWeIP^gkgGHAr>^0%>K&L-|ezRwRj496t}z#A-c1zEA=#h1UA5J zRhIb68y}|3M0eyW+%&cmoGdRfRcB~DlICWr=sbi~JY(}d&|a-$r+?|n>CMF9W~m-~ zP&E!zi8e~G;YZO}=ax@qmE`<;coNV4fPzjwGv1XaEMdoywm_~-xH)OLd$0p%Lx+D zwU5nt4<@n98io~?>Vzqlq45R^20I1MMe7S1z!u*A7jmEb7LvlJh*a0_q7~Ud)_e0Y zykIn(Q1E`ZlMoe8bJX8*f3j~&m_P$*cYrC|r&d~h;%8~;3mJOc7z}e%2xe11SeSFr zT*(}{JD!V>7yq-8l*h`IXK0$vTwbN!Vj!WjTIRptJm#;_PNRfMG}wi-Mbe6B z(B#3TbIK4B@^8OhLftzwo2669GUdqhDi1V>FhARKFke^)WrOw)hR#6{26NZ$=Mj_o znQt}g(N0JiGanBw(&TZd!n_C4sxgQVAcVva>2%>2tgK4t=TmRQDbGFH=sz6&j_?rS zXu?sTwZSmwNBI;K{>}T!{y!;K<3<}?c9T{Q35?KRlkL@xdz0QFdGEqy>E=zf3%|^% zvDN3*hyEhFa~}0%CP?7p;{$-`?{ia9ybKqRkbu`#US6(kaT@2nJ56;`f1dr%+g!5W zd}Y=T8x0=CA;;U2P2w#JbGM{$j#t4*7#9v|0)rrl*UnYXa+=vzV}s&ji<6L{mUykM zp|FFA_0qu-Wo)mSuIbBAu8yGy*BA0iGk6DLiY$fQYpd7S*EB3I+t(vmleg5uEP{<{ zY$l?PT3Zt+7rzIFGbj_X*pX_uZOiVF9ZczGyA8U9qlSit%FAE(Mwe*5feea^#k2xd zNB17uHajuV+RRQWPfS3pXkv^qgp>$K(JPEgu8yN}TYCIN!$S|TfbWA?y*JFZ-(m$8 zd{WJ-{JO>W8Q-M2v*z4pf})NQRVkT`B|+wvE*`aO?b~LCHDQpeS3%_gcZ^h52+r?! zydz>!TDe40Cs>ri9l51)Dyf`ni$)>l*JoQ>SjFcF4(<0uQoQZAJSo&!yn3ZMH+?Owp2A9h(f12=us~@ta*{2fd3;TM?_UYTnHucZ%{Q;sjm+7G zR%iAVBm^LDYrw7 z7Q>W`Kbg^ra`o zaG{Ic{Ijb@=ku0bGUe#yor!$u@6NP!Gf4(75D&or7V_m#?_%m5Z z>`nPe`_+ddL>_W&m!Ri`(AJB!a)+UfeFqJI`5$o1w;Jmi{v zBj2HrLY;zAUvBfR^c??0)#|Mb?(#ueG}--RudY zYR4O(_A%&LQN{&I2Ft>uAMB2X4ejmmzU%GrZQ6hPvi0A3mj|!cR+gx@>udEiLM!7r zx3E%le-oL8!{Pm8U&%1nv27Kf8P0tQ(&P;Tv+<~ zJ*aH-#dzm83A5>aTOBrIzL4|xd*DT-Iw0BPU6O4fAInyK{b=xau7wPAQiLa zHAS=plXq356Gj=GL8G)UTLFs{^B%JOKp1;OMr5$tsjGz48=pTo50c%3NcuMCCmzMW3U|lav2;aZ`V(GtR3r_Te^kZ0%-kZcDSp zx-7$uK7~!+8GYmK@o=f7;g<;}XHg-zc7oTE+A1SU?QMHSO(p&8-m%jwkx@}4)rUQ` zV`AQER8iW^#vG<@%po##6EY(Twi3)I*Wp;*=2KDeU#q6KSTo%OS;0z z(yqXPcs$v}^I!FR17%dCpBuP;M{iyIr_at1#+Z#Mq1A^lYQI_+z(L?f%H&U2Y4bso zd#->+LQ8awElXJ0XNwKl#tCRT6;mIsPKWG2J^v5;51O_@r`|%>b5jstDWsPS|g(=JmROIP5108Y>|d6 zyg*>M96sm~`Ry{2L%6Y{PRjDmK9PzB6e=A0c+s!vmerUUMgk4Dy`@50TSXY~BHq_p zjfza(_yYO+*4CC~n6OD1`y&cG+(+3yl{exyyKbX*cl`iMrE=BIE;IA+dhY$&yANFZ zo~wLWS7dLWVb1nGYC^NGx(cOSY_OhA*L3r1SRC>36Bl%x*&IkD*0+7};zdTMncC1_ z9eTQld01@8?bY!cy{I>1qK|hG++_CxxVe=-#BAFW_DtTU6@BABc1 zf^Pc)$&v9d5HW~33e*InW$0*0VJc*nrJUYvCfn{UodH?8Mozt-`YdhH0wp8}h>4lr zYi0Q!HBpCuwR`{my=?CHKBQ=_1V zDvYZhZ0Ujl*ZE(8Z4lbKM%QcOl1r|&#XB`%hG zBJiuA=&U_6WNzD>CYPPT_4WVYp!TM{qQqAOMBpGGAa>p5oY-=uaycCSvVJ!7a%Fi} z#2(F@nZl0^FG6qDNku-B<Q|6zGEKO^T?rgy3Bu4AqGQ-Thc zGSmzAQ+etrnyav=2su~HCgIxHVZbWvxA*R~?9iis%IDa)XW@OY1g?|5_w2v&75bWQ zg}b{m6Zn3nu#jEIx~-ku7q!)7?G+s~t73%(FC^BxZ*Z(dN}COSj;lB^s61llIOSre-lw>V_**rqk@)P z*9SOgTe>!+sJuLSZf=g+dKAfe0Ra^%|N0e`^3?|_Bq&|LL1%IB-|}F?>9QE47bp2X zs%N8tH4>iWd5#KKR{Dik8%^Fleq_`!kDr(;eWh!vC||nA0HdLZ{na_prQ>eKW8B0X zfJ>!1S1BP*=gpt*#IVWZ5+(4%Ynu*up|5XbM$v6?IaO7t8Z845RU?YjoOrfvL}$ytCO=|edHHe&;`F=wH_%)utxh1>cV^YR$wq-iPl8VP)qDI26td15ffbJq_$~d!PcwuRg3*uNu}rZZ~=WT0~IO?3K6Q%E0^n^ z!rA-A*~b^sifR5`JHQEHAJpDlElu#G>@*eJv=kpmaPz=rF3bGJ`q}PZ0q>hfj*o z=d(qJ<7IIDJY0MU=dAn68Q;dGT3YF6lt>rSfL_ISt;#72&t#2GG)MjSLF(P2&8LwFI0 zQf_X+!z<1S`5B1KKC(@S0nIXXRUC{KWTqIysb%yH`yp@Kn5dl<6b8(Hg=RKOth;&q z_)x+Tr!0QY5PlvqjiVfrz=5k%WwNxi=PEVlrkDI*%vy#LEush#5*)<*@}+|SmUd)R zjH;aCua)2NOBbYHf+ay60_02tKGTts=oKf;&|tJ1YV1n;z?!4P++`hQP?CmC+D9`^ zJ&Ok!PVMA(n{?y94U)0?q($8(X_>oOzbKSA68g=wk#a_-jt`1))|i(Fcw${W|BQB0 zXCOusYLVb7^Ivs=#M?CYq|#EFygJdqUoh5Fy=O8P9FBTOx%%bHu?2tL^AFbTxf-XG zmUeBp7a#4tdN;OPkf^#2tvWS5*j8>^w}x4iqcF6iXuOl>o+y_nHmMLJ3gSTPnIaD2 ziZg>ZnYl%Ra_&yN?kTES9gPSM}OZCzu$y!C*z65G78rr}H#d3}+1sCUB@ zUc%GU(_2G;0Sd{V_++)A)FS+ogdW@}zenBeH({GwdpWr4E3^HsTbmh%w>X9}SfUq! zQBJQ>V0b+in(@!=!sX3yZVinRbV6v#YALOYF!A1a2A7n&a%FkG$rS4C0o$plNM?Zc z9U*}bEv%aqpYLmW zj1g+|XwsCH=iB}LQ6Rk*_xIjTjOpd!`|kau4H;Lw73jEJ33yWBqaCrrSi9D~Ke@@L z{&V)E8A#vK6jiqpWRo|9SLnghkYlDgLV+GR9qv}wI zTZQ+;S_xbUg|$pyM)!$4Z|+`$hQqjg{+&?oxMd>SP0)>PTnCa*x!V$|jS9^b$`n){ zG2|Q)Yfa`LNC=XN@=U!O&W+Q=hOxi8(OUWNLN}-OLO{tpsQ*&1D`I{E;v{w{v>b6K zS)GlvU@#G9sO;}#OyXVObfsfS4H(;7w7Y*1@}R;-gs@{|!JScEbSNM00@tx~UQZtQ zvB@Tv=da55&Wfaj-v78l^3~@mB2pM*g@}oWP zm{bnK#qH>z_aaD(hHVtGdLcmDV}fivl(Un^#BDL`;t-r7u_YY4Z5pB|S|Ti9nON~o&FTfedL8a>wMa-8ViqA21g&n(nTmJc zTstN?f$)HbOuY6Avrc8;)nSSp2lhG1lX-vjh?+P8`i;AhMRq;REJ&%G?AgR$C*q%R^Dax>1pX zMS-|6mN=5-c^^}V;j(%>Th>~gQ_$)Os#2Vass?vG>e;=1d65Uh?0$qk&sM%mYZ|#g z4i5ecD%DSX^`|r>!SuCPP{}M~5bEB9KEw&@jPA*8ULSQo8~X}DqF6O^A#}lfBqEkd z^yXMYkvTF??PFzZxC|$Wj4v}UGAEJcg25pT9Y5@&`93)sauo)0aGb{XW^-ND&t}_a zm$t03hv(=5MqOxh342)u@IXa1Y6GEq5qxz&En`Ak6JL>`1RGpZEVCqKue!>Ex5mblbZaN|0pd8EX>&A$^9MbGVcLc#18JoLph#NlpxZ>S2UF;d;BA zn_yR#q-CX7yVY`@?4d>MDj}VZqFRJt_&j{3XJ4Hho9yGp!NO543Jy*&JLjKxyZReK zT6Xw8w##Ctx5$}^+v>(Yb?-2soIgDQ`HhW&a1e1U)jbwTaA~PXCKV_))DkC3o$vc3Pn7ZkGaw#&Ra(pwql3kwF*VcoUBguiZm zavUqR=MVxVoSBr_C>~(GzP^((4Pei67=>N0NS{H%C6ve7sqnIs=D#y!_kParCynDZ zBdU20)LaE3@DEk!I3rm7`l3Z7{zwLU77x~(Y_(D8c}|juMMon(=E(&8_7!mLzMGx@ z7PoWNzQ*(HUpi_D<1;B#bwfjp5?fd@yCFZkL^|8|RCreMetS4*YTQ&KGFOk&MvuQQ zf8thIbisT^R7Etk@<8J)*?QVv7DqE{1y6e~J}9gRt8@%>u=@^&UTNxby50n-1>r4em|`W56c&~i zs@>Ilbh=WWb-uq8mpJ(&#tRjBgkbnpdA)w?JIsp)r2^q>+MF?3bykCl5T_+-!GIUY zv32x1iij{(ltNr9Fjd^&&pCEo^NpDPnrl;5yhShJ{lse|gHIFK5a`m=z~ z)Z_FkELfX!y?_0WHs7YC>D4n1vl)|;z~UItAXZmG8dH|tJJT&j?{t?}CtZ<*AWEE>Xm>G%95@bknmle5d>tzR#zS^kK*Og@uLtK}Z;QtR{ZfsW$Hqb#F^c zo$;QtibLZWqls4FRqNU6r1u8GX2afwJoMlUch&t=8@1MBsvNxR#?5suoMiW1CCt~r zoI`nE)d^kfPIQ9~F5XzLb`LGf_CaKd4r2X$xM=(fWAl-N*Jvf0SyTOYk>uJTm({I5 z3w1e~+;#i#$xer-Yp{;U#?GYn9sQ(~a)foT8KdZZl>(;1b@c^dfBPm*wNb zeYgyr#p}tzlcG4P*s!bJ<@;#$eA)Y`$;KmtrvG|f);#V?@4c@SIb>>=Z`_QTs`|Tu zgO+nZ4OH+t=vDb-+ELoK9DY}QP5J7FnwA!?2w4oB1@f+l9#)h@@l8k>$ zb=!&|Ywr^cDQ?x)@%S(gHY{YKi;^rPlh~cYM%J6hkL*G?3iZx|bSdFq5lTJpcg^yC zXfd(3$3?1PMiZ_YtG!RSE9i^AR80@Wi4TGwqL|_$9#!>OLlI?Xhx9rdhn;9g~4|^ll#5Q)E-DrJfuR*|A z7Ep*DlBA(a@cPoL4M&Ow>FLtoBQ-72ds5+4{8I!TPm8ubZb_vVl zT>jliw`G37G1GaTd2N<}oK@@9HwPNq86)o}tj0Ipo)sOH#jVuoe&n#ydK$*A$ z=PY?$XC36_>XZA5nq#KdEl!qmCi+>B&E@>;2n<3L#K(!=kQgW3sM_<>#puIoq@8kO zIX4oEKR%IS@;tjPD}H<#m^$;%Kx&_^`@(kWQ*6)1@#WFdA{hn$;t(ZsOVeJI%kvO3 zDb(ZvZ7F_b^JGuIcHkV*7>oM>ySrY(e&`rr)io;`i~r%(?V5XwC;y}Km;HqDusnu? zxC-3o3bxUaIKzkT)|r#TO>;IfWd?dNUY<8m42}u9PWkz)rW2BJWD2aZPA+7x;H*-q z2ZfPRL-gB-a_r&|rK}xjiKFSMn2ujpDc@eGZTO`-DI!9{FW5zEIY@l+4Cg9!UKZDH z{wPNGsNAVWK)_az*`2SZM}eiyZ8({@&1jo`uM^WOR@Ogo74-UA8kv_zXP#X6tM5w* z75j_!%6w_{cr^l~PPN^~5S$Toj$BJ}76a`Zv>w^yH}`+KW(v#6W~iw@&*5W*CE78# zl~C?Z7<3~ilm7Tg!^eWJL0>gA&~n>s=Fd>$bx~G3|KzG0vWB-cIa__D)-~}oRvzrM zZy=`>c2yg;JkeR~vslXBJkVEEnc{W!7HM^vs|*k6t{P=#*H%(gTzAEJo(;n4u4ag1 zQD4|sIO;XsLCc3@tdt?k5{-(#(HhejB?rPn#vDguV{&Xni(VsqbKiX0A2qU9u%U=@ z2O;RV?aE~IszDnmEfDvMYV%9~ty#Yb8JnbF9@kS>9IUV|HYJEQfk@R>`bK``9y63hdyG64lvWg<#9etHY{Zc=nG2J9UdXU}6QEyf6$3~1 z(as*NJamy5Acb+Yh?FyBcX4at>pUqvc1%>_JPY!auWxh!HN+qg_`+@}3Nfa)I zmw^|=8(k&?0<0&31ZE_`nTslz3LoYeBrhkme^PoBi#OU6L;Qm?e{xV<+MT5PnGzAp!=o{8)x1(g3!fdQbpUnT(v~qR&lDn-D7u zK?*e_ND@^WbL-lt7R;kv7;V@U_Na-JijmxXZy)j(;aHiZxYsTR>Cl! z4oOpuI{#FKgi^JGA1FuQqcDk0aDr z^g0x$9@hU!W;3zLRsp$QT|VVc@)Pm(W8YJZn*vPiB& zsSKw)n_E|>^*%qw_gp=K;UE>cOi8A;>QYp|#MaeMUY&td~MFzrDj zNATNIJ4sWj&U4F|GL~zQ`7|B!UMz0ud4|SH8bre3LgUF0jBrU@r_t+u($6|J0hx z3L=?>Sdeg#Z}KUV`CcF+l)z?Gwrg!M(|#*ho}4;+K(h#Vo8Z8dN@7IE=xP(@^V z?U!7POJl2xP&JV6mTH%gi44bzKQwCFD;lC+^i%sQw|QL-DlmhYmUSJ%-QFl-O%oH7 z+4JA_0-`s&`T7S7dO7}AEi0BIE?{K?cc7V};@2(?TcDNxsK!b1?n-K@D7XtSI^*^A zpV~3ml^?!~Tf92Jl)GOiZtnm$AA+7rbtGb=09dRj5g>iAjDI%=Rn@jr&)@y3DIB;4 zP15k*|58EDJ4=wGB95167C*P8#F7g>ej|EGVC>XOIB+cL{kLa#B7dUI`@^5*Hgbp7 zQ{*4l+vGBIxWieZj}I3k0xP`o>GBLVK-&(u2BTmX(Z`A;w3@tZ zyE_|FIm1MRAK;2BEv<7{`Qg5z)PM%608A5oFh1wrLbzL2^+VY6uI+01)voh*tsG4x zyUm~RNiiTO7^bqo#K;J`YyT%o+qp_(+o_r9>A1Or_a{Ewd>RmmsFy4E(t2;yV!cGe zm&M7_(vN#q=R&5cr zkh8_?Mn8p%^4WPfF1@pA3pi`Jt^d0P<(%`gGcq4+#g18wpY+97&?+} z_q!jjG8J#$D@xxjOfkt@YWdL69N>Sw6`1;^IKx>{bteO4gzeZHxhj*k8mcRDE_lNX zegbq$m0Q@96}+*Q*7WKvm^@qD*9cRVl!P+`O_<=UoBUX@E@^Dh5MVZu7&p60g465* zNThdp=lD}gmkG9?11Lc#GcnB`gp>YM^U_gyzh-`IJwruO7=cRVh%Hax=-8OGP8AAt z-2UiiXk4l-c-n*i3q)&xz={w4Qv!VwyV*tV2XjI6cSj%EyHES6V?m(S9RyDJbH5kH z7JWC*$!7Y40y>#%f2f~1Q#s^vju4>43Ue9MMV&A+s{^yG3m|R*X#rNjd4^mKUWg{+ zL-)QqDpbuBro3qNGB-CrbJ>7%eGZ^AH$Ex( zJ*);}I}0=MErCn-m!ErVn%su>?LuQ>Xa^8VSz$f|2Z4JBXBORDR#sNKeceayPf}H>T0%C`Ubf(*^ zzEH}&cmzM84K1QKNZZ60U4X1WpWefQoBX{p170qGi1?%CgUaXq<+$Rw<};<*DxVCs zbaW;S9opPDdmVxau>(xithow1 z&FWjLH`p(&UV5o(Yll`CHspc9E6mY1hu3V+l~V(rQu*KA`B?RbW0R-wC*iSrMhQ*? zdQJa!#2+JY>18FfwSW6wEv52UtM;9}U;K{As$1Dp(Xbo|hk!gD0EghX886qhacTze z{oiKd8^_;H{gPABB*)TWSSl@!P7|+**B)+H|7Usm-Wa1?iEE6D%;`4ud%?15nFfA4m72M`P;7#Xw1d*^S* z&E7>XZzjQ))2qB+PS*jdrI@|cS0YrDAQcN$i|R; zcHPGHA!1uh?qZDMquFRmGPX{bnQmP1^ z?kED2&W0Mk++4QBrgB4cj_jDykt>>c|(V6c8zgPcX9M^kvAvBQ1 z%}uSXG?t-!WSjTZB^RKTZ`Kh2N5X4^^AVFAxnXf> zTlNoVbRK~+8S3NM|5a-(;63tT*)!~6$NvEZ;audN-b{N z;^AmBWof;<+l>c!$4%EZt?Z#O@kbxkoq5rVwfqt9-Ie>J4^NVcp`E919CWoW_NGw4 zOgn0*)OxQWv*>T~;TRUWQg4Fu!=w)#`cf_h)^cf(;~*eek~*`Es$U zM|8H)NeTQ8%gPNaey_kSWQR4+ZaQ9$^M}RqALbIX>BU{VhN_2pWQ5PqrHppMI<3>!p^eK`3NG(Lq4_tozu-sl^-yR-5H9f6o7cj1JbXKSw}^X zq6me`BLEqTLLT72rhCgC7|1LHT4oaP92)0e4}-b(i%BJ(ZQpN_pZ)j?ZmK~;kl3&y zK|?VOWL+ZW*O*5jT0{XYs8lX4Bi(?CqQLawEQR!(Sc0I<-`*&*umb$l&W7 zY{svXYXvIWpN^JVU?8BN0B}$04Spm(SLwod*$Q=#SYT0!kRYI7$*8O2zJ2@lo8P_H zyWfqtK*GJ}|Pyt$1OXfOcG8={O$w+>R!78ad0|h`hW+DVR8Zc9)QlFhW1TJ z01sfZ+>~$C3bQf&|8-L*R3y8oz7f0Lr0s9<-pvh5@XP`*a&gptBb}2kO&z+{RDzeS6&Q;2b+!W%>pL zB&OG#tEj6TlJ?DjrlFw{NFIB~?#ReU8z9;*PP(zD01~BNQpYQ*sHkvfnSw;M0s2ZG z;js0j3uE9wHB020iFO>?6==U!>GJ_loJQc)u$ajow`ZO0n>;*pa5)J|9PZ_OK=g(B zf%X+SisBeQ9&YS}59_A5_YE^#p0Hxcu^aOO)Hdz<4#_3h_+}vyL!tDa1nGXok$IcF zjfFovzfOz6bKL%7{d}tUeDA~UVFOd_Se9tZFYoDg|HpE8QQw=3&C`0jx$ky?_L|4} z&{L*=1L_zX*biMmgO7KNk(-4G{sUZg3J`HMnrF15X(vl*#qak0Lb?@FAY$CKZ+iEc zh5_Iapi~~r%ADp&xGhjYF;~k`e6=^lbnOYwsPf6-cO%!e5MPk?b6|ERUjB>4)!H)? zV*5@}l69It!QA%va68}X$s=}mBK>Zmj)l~hkW=J78;syR5z*dL<#b{Ov`+r!4q%wN zMv4-ulSNiJN;j=qTMY#6LX5s7GPSQwy9P}KO+XW$7K`7b0jc^9M{6&`WwbL#GMLlj z#0-d%LgV>53jPfSjFh37f^}2hOTs1p$NPcM)Tdf;y(dCtbcD}U`Z-K^u+$ z>~SBQ?CAiRlH8Zv6M`L@FdzZu!7j;e^vCuC;qt6w*QmTh5&GXU@=wi>L5!0ks{ zC9D>S;ti0~mI3BH7QcMoEw_?_h%GR^-`5>Thc(qAJ*&DiscLvVH&ED6qc9f1l=aiq zxEK%v#?#FQ9B=}1f+4mT{U5+w8$fH~k!lSXf!`Z}OgRY?zoR9E=g=lbjLzzbO#A@o zHV>%(!*#y7WoBk(`Q_sM{e7$MzO9?>R~eF@v6A_z3BDuJA|8NTJM-Qz!?zJ6F#ut` z_G0$UC$PF~pEHHpJ@NaCso-W+Lu74Xy@k&bN-Vawe-8(aW87M%wVS}2iM~+e?kFk+ z-BAn*g{4miNL97{HK^UwtupcbIXCI&CW9UxB$fdnI^;d%Xgzui3tTe{CkX37dEy)@O7N^2xaX z=sSBx!WnROc4h-4QysvhNnZ8}$FOd5FOb$`B;-%Z!B$%R_tP%&Msqa-NMa#CFC5WT zRCv7G5w|_t93a(QQ3Xr0@Ec+O19hZ3{P?0Q4rWPpO!cbE4{Nvpr&@Tq6jq@<(MFNb zR+6R-Shfn0*0S%F@e4M#ckYGX>VsZTVlDWn>FMf*d7f{ZgW~qYtBpj&gY)vwFMQA% z3zyCR2gu^77)6$xI6prJaJ^pleX8NNGe*mPX_*bs!8CNgy^q^c1stfr!0#InJ0hTL z21t7X9zV?kKF2)3I>-#j8{44|PYTKO@rD>$4Z`5)z!dl`0k}i)FFz=bUpqND)ldK> z6}oaP=j$s91c2kR=T7`(dhb{D{P8l~Dr&cm8=$)Wn<`S7Z}S!q`?rel#H7TgK3uB8 zdj$nflWBZ*G=)7e0?XmR10a#;W|54VMK8Tbv>we60!CzU^w9F&1K_6A#J1z7TC?uJ z=ICW2DT~>BI(R20J5RFgbI@uRn2(tHSH<@yw>Dl08h+h5f1`q0}r1R(2)Zjhd%(Z{B93uL&P>+$ThN@bO4}et=5D2GP z2NX^DiU`!Xqm5;ZpULeT1GRN^rxF;IzCFnkFjq0(;6M%PWe^qPEgu{}rAWM!;ey4{ zxC#$u!;40EfSEBfJ3F}%EB*<1WKTtbo0}Wvb}P9H$j(|od=o%1#XJFBi~HfAP}aY- z%^v(W7Deh}gF{1rW=&~4BDl*S2u}Rza{-8=azRl<0`#BNNLuKW>Z=%SEiDElPI2*e z1u;-%^8<00;`8wdOrErlc538!99jSq_nc~Vc=>sU`hJ1{2Bzu?qS19A2@};yQOAA5bx3|Dwsgp0^Ip18H{Xx_wN+Y ob0a&-|NM}G|F_@8i5{t!`bNJIa}J$=&s~5NUaQJfN|^=yFL8c^8~^|S literal 0 HcmV?d00001 diff --git a/oca_custom/views/view_res_partner.xml b/oca_custom/views/view_res_partner.xml new file mode 100644 index 0000000..f62e3c2 --- /dev/null +++ b/oca_custom/views/view_res_partner.xml @@ -0,0 +1,30 @@ + + + + + + res.partner + + + + + + + + + + + res.partner + + + + 1 + + + + + From b5cfe5562e076d3da13c4bfb9bdd6320795b3a0f Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Mon, 31 Jul 2017 17:33:12 +0200 Subject: [PATCH 02/53] [ADD] initial 10.0 commit --- oca_custom/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oca_custom/__openerp__.py b/oca_custom/__openerp__.py index 8b3b14c..9a1d717 100644 --- a/oca_custom/__openerp__.py +++ b/oca_custom/__openerp__.py @@ -5,7 +5,7 @@ { 'name': 'OCA Custom Settings', 'summary': 'Custom Settings for OCA Instance', - 'version': '8.0.0.0.0', + 'version': '10.0.0.0.0', 'category': 'Custom', 'author': [ 'GRAP', From abba2edae2add76ee98fbe625c97dedd1b1dcc62 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Tue, 1 Aug 2017 17:27:02 +0200 Subject: [PATCH 03/53] [DEL] custom field and views using it --- oca_custom/__openerp__.py | 1 - oca_custom/models/res_partner.py | 2 -- oca_custom/views/view_res_partner.xml | 30 --------------------------- 3 files changed, 33 deletions(-) delete mode 100644 oca_custom/views/view_res_partner.xml diff --git a/oca_custom/__openerp__.py b/oca_custom/__openerp__.py index 9a1d717..5694571 100644 --- a/oca_custom/__openerp__.py +++ b/oca_custom/__openerp__.py @@ -16,7 +16,6 @@ 'github_connector', ], 'data': [ - 'views/view_res_partner.xml', ], 'installable': True, } diff --git a/oca_custom/models/res_partner.py b/oca_custom/models/res_partner.py index 0708c63..0f18748 100644 --- a/oca_custom/models/res_partner.py +++ b/oca_custom/models/res_partner.py @@ -10,5 +10,3 @@ class ResPartner(models.Model): _inherit = 'res.partner' github_login = fields.Char(readonly=False) - - x_github_login = fields.Char(related='github_login', store=True) diff --git a/oca_custom/views/view_res_partner.xml b/oca_custom/views/view_res_partner.xml deleted file mode 100644 index f62e3c2..0000000 --- a/oca_custom/views/view_res_partner.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - res.partner - - - - - - - - - - - res.partner - - - - 1 - - - - - From 4a66251873201f16f20181a5a1f0c1f232faf6f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul=20=28ACSONE=29?= Date: Tue, 9 Jan 2018 19:18:54 +0100 Subject: [PATCH 04/53] Make the github login field editable (#16) * [FIX] make the github page always visible So the github_login field can be set manually. --- oca_custom/README.rst | 4 +++- oca_custom/__openerp__.py | 1 + oca_custom/views/res_partner.xml | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 oca_custom/views/res_partner.xml diff --git a/oca_custom/README.rst b/oca_custom/README.rst index b235c3e..5d96d76 100644 --- a/oca_custom/README.rst +++ b/oca_custom/README.rst @@ -10,7 +10,8 @@ Custom module for OCA Instance. Features ======== -* The module add an extra field x_github_login, related to the github_login field +* Make the github_login field from connector_github editable so it can + be set manually (eg when registering new CLA's) Credits ======= @@ -20,6 +21,7 @@ Contributors * Sylvain LE GAL (https://twitter.com/legalsylvain) * Benoit GUILLOT (benoit.guillot@akretion.com) +* Stéphane Bidoul (stephane.bidoul@acsone.eu) Maintainer ---------- diff --git a/oca_custom/__openerp__.py b/oca_custom/__openerp__.py index 5694571..daa4991 100644 --- a/oca_custom/__openerp__.py +++ b/oca_custom/__openerp__.py @@ -16,6 +16,7 @@ 'github_connector', ], 'data': [ + 'views/res_partner.xml', ], 'installable': True, } diff --git a/oca_custom/views/res_partner.xml b/oca_custom/views/res_partner.xml new file mode 100644 index 0000000..dd634b6 --- /dev/null +++ b/oca_custom/views/res_partner.xml @@ -0,0 +1,16 @@ + + + + + res.partner.github.visible.form + res.partner + + + + + + + + + + From 06cd7448433aa3b230c07cd5aef86636a9511e09 Mon Sep 17 00:00:00 2001 From: cubells Date: Mon, 21 May 2018 12:51:02 +0200 Subject: [PATCH 05/53] [MIG] oca_custom: Migration to 11.0 --- oca_custom/README.rst | 70 ++- oca_custom/__init__.py | 1 - .../{__openerp__.py => __manifest__.py} | 12 +- oca_custom/models/__init__.py | 1 - oca_custom/models/res_partner.py | 3 +- oca_custom/readme/CONTRIBUTORS.rst | 4 + oca_custom/readme/DESCRIPTION.rst | 1 + oca_custom/readme/ROADMAP.rst | 2 + oca_custom/static/description/index.html | 431 ++++++++++++++++++ oca_custom/views/res_partner.xml | 22 +- 10 files changed, 512 insertions(+), 35 deletions(-) rename oca_custom/{__openerp__.py => __manifest__.py} (73%) create mode 100644 oca_custom/readme/CONTRIBUTORS.rst create mode 100644 oca_custom/readme/DESCRIPTION.rst create mode 100644 oca_custom/readme/ROADMAP.rst create mode 100644 oca_custom/static/description/index.html diff --git a/oca_custom/README.rst b/oca_custom/README.rst index 5d96d76..324ee19 100644 --- a/oca_custom/README.rst +++ b/oca_custom/README.rst @@ -1,39 +1,83 @@ -.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg - :alt: License: AGPL-3 - =================== OCA Custom Settings =================== +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Foca--custom-lightgray.png?logo=github + :target: https://github.com/OCA/oca-custom/tree/11.0/oca_custom + :alt: OCA/oca-custom +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/oca-custom-11-0/oca-custom-11-0-oca_custom + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/273/11.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + Custom module for OCA Instance. -Features -======== +**Table of contents** + +.. contents:: + :local: + +Known issues / Roadmap +====================== + +* Make the github_login field from connector_github editable so it can be set + manually (eg when registering new CLA's) -* Make the github_login field from connector_github editable so it can - be set manually (eg when registering new CLA's) +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. Credits ======= +Authors +~~~~~~~ + +* GRAP +* Akretion + Contributors ------------- +~~~~~~~~~~~~ * Sylvain LE GAL (https://twitter.com/legalsylvain) * Benoit GUILLOT (benoit.guillot@akretion.com) * Stéphane Bidoul (stephane.bidoul@acsone.eu) +* Vicent Cubells (vicent.cubells@tecnativa.com) -Maintainer ----------- +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. .. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association :target: https://odoo-community.org -This module is maintained by the OCA. - OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -To contribute to this module, please visit http://odoo-community.org. +This module is part of the `OCA/oca-custom `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/oca_custom/__init__.py b/oca_custom/__init__.py index 402ac47..0650744 100644 --- a/oca_custom/__init__.py +++ b/oca_custom/__init__.py @@ -1,2 +1 @@ -# -#- coding: utf-8 -#- from . import models diff --git a/oca_custom/__openerp__.py b/oca_custom/__manifest__.py similarity index 73% rename from oca_custom/__openerp__.py rename to oca_custom/__manifest__.py index daa4991..ad87742 100644 --- a/oca_custom/__openerp__.py +++ b/oca_custom/__manifest__.py @@ -1,17 +1,15 @@ -# -*- coding: utf-8 -*- # Copyright (C) 2016-Today: Odoo Community Association (OCA) # @author: Sylvain LE GAL (https://twitter.com/legalsylvain) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { 'name': 'OCA Custom Settings', 'summary': 'Custom Settings for OCA Instance', - 'version': '10.0.0.0.0', + 'version': '11.0.1.1.0', 'category': 'Custom', - 'author': [ - 'GRAP', - 'Akretion', - 'Odoo Community Association (OCA)', - ], + 'author': 'GRAP, ' + 'Akretion, ' + 'Odoo Community Association (OCA)', + 'license': 'AGPL-3', 'depends': [ 'github_connector', ], diff --git a/oca_custom/models/__init__.py b/oca_custom/models/__init__.py index 1bcc806..91fed54 100644 --- a/oca_custom/models/__init__.py +++ b/oca_custom/models/__init__.py @@ -1,2 +1 @@ -# -#- coding: utf-8 -#- from . import res_partner diff --git a/oca_custom/models/res_partner.py b/oca_custom/models/res_partner.py index 0f18748..c543946 100644 --- a/oca_custom/models/res_partner.py +++ b/oca_custom/models/res_partner.py @@ -1,9 +1,8 @@ -# -*- coding: utf-8 -*- # Copyright (C) 2016-Today: Odoo Community Association (OCA) # @author: Sylvain LE GAL (https://twitter.com/legalsylvain) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openerp import models, fields +from odoo import fields, models class ResPartner(models.Model): diff --git a/oca_custom/readme/CONTRIBUTORS.rst b/oca_custom/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000..501e6d8 --- /dev/null +++ b/oca_custom/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* Sylvain LE GAL (https://twitter.com/legalsylvain) +* Benoit GUILLOT (benoit.guillot@akretion.com) +* Stéphane Bidoul (stephane.bidoul@acsone.eu) +* Vicent Cubells (vicent.cubells@tecnativa.com) diff --git a/oca_custom/readme/DESCRIPTION.rst b/oca_custom/readme/DESCRIPTION.rst new file mode 100644 index 0000000..91f7864 --- /dev/null +++ b/oca_custom/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +Custom module for OCA Instance. diff --git a/oca_custom/readme/ROADMAP.rst b/oca_custom/readme/ROADMAP.rst new file mode 100644 index 0000000..234393b --- /dev/null +++ b/oca_custom/readme/ROADMAP.rst @@ -0,0 +1,2 @@ +* Make the github_login field from connector_github editable so it can be set + manually (eg when registering new CLA's) diff --git a/oca_custom/static/description/index.html b/oca_custom/static/description/index.html new file mode 100644 index 0000000..97ca56b --- /dev/null +++ b/oca_custom/static/description/index.html @@ -0,0 +1,431 @@ + + + + + + +OCA Custom Settings + + + +
+

OCA Custom Settings

+ + +

Beta License: AGPL-3 OCA/oca-custom Translate me on Weblate Try me on Runbot

+

Custom module for OCA Instance.

+

Table of contents

+ +
+

Known issues / Roadmap

+
    +
  • Make the github_login field from connector_github editable so it can be set +manually (eg when registering new CLA’s)
  • +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • GRAP
  • +
  • Akretion
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/oca-custom project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/oca_custom/views/res_partner.xml b/oca_custom/views/res_partner.xml index dd634b6..857dc86 100644 --- a/oca_custom/views/res_partner.xml +++ b/oca_custom/views/res_partner.xml @@ -1,16 +1,16 @@ - - res.partner.github.visible.form - res.partner - - - - - - - - + + res.partner.github.visible.form + res.partner + + + + + + + + From aa3f44a8a396a15da80dcd3f7af56c6dd0df3537 Mon Sep 17 00:00:00 2001 From: Cristina Martin Date: Wed, 9 Jan 2019 11:59:55 +0100 Subject: [PATCH 06/53] [12.0][MIG] custom_oca: Migration to v12 --- oca_custom/README.rst | 11 ++++++----- oca_custom/__manifest__.py | 2 +- oca_custom/readme/CONTRIBUTORS.rst | 1 + oca_custom/static/description/index.html | 9 +++++---- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/oca_custom/README.rst b/oca_custom/README.rst index 324ee19..faedf7d 100644 --- a/oca_custom/README.rst +++ b/oca_custom/README.rst @@ -14,13 +14,13 @@ OCA Custom Settings :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Foca--custom-lightgray.png?logo=github - :target: https://github.com/OCA/oca-custom/tree/11.0/oca_custom + :target: https://github.com/OCA/oca-custom/tree/12.0/oca_custom :alt: OCA/oca-custom .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/oca-custom-11-0/oca-custom-11-0-oca_custom + :target: https://translation.odoo-community.org/projects/oca-custom-12-0/oca-custom-12-0-oca_custom :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/273/11.0 + :target: https://runbot.odoo-community.org/runbot/273/12.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -44,7 +44,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -64,6 +64,7 @@ Contributors * Benoit GUILLOT (benoit.guillot@akretion.com) * Stéphane Bidoul (stephane.bidoul@acsone.eu) * Vicent Cubells (vicent.cubells@tecnativa.com) +* Cristina Martin R. (cristina.martin@tecnativa.com) Maintainers ~~~~~~~~~~~ @@ -78,6 +79,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/oca-custom `_ project on GitHub. +This module is part of the `OCA/oca-custom `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/oca_custom/__manifest__.py b/oca_custom/__manifest__.py index ad87742..6f6d468 100644 --- a/oca_custom/__manifest__.py +++ b/oca_custom/__manifest__.py @@ -4,7 +4,7 @@ { 'name': 'OCA Custom Settings', 'summary': 'Custom Settings for OCA Instance', - 'version': '11.0.1.1.0', + 'version': '12.0.1.0.0', 'category': 'Custom', 'author': 'GRAP, ' 'Akretion, ' diff --git a/oca_custom/readme/CONTRIBUTORS.rst b/oca_custom/readme/CONTRIBUTORS.rst index 501e6d8..41c77f9 100644 --- a/oca_custom/readme/CONTRIBUTORS.rst +++ b/oca_custom/readme/CONTRIBUTORS.rst @@ -2,3 +2,4 @@ * Benoit GUILLOT (benoit.guillot@akretion.com) * Stéphane Bidoul (stephane.bidoul@acsone.eu) * Vicent Cubells (vicent.cubells@tecnativa.com) +* Cristina Martin R. (cristina.martin@tecnativa.com) diff --git a/oca_custom/static/description/index.html b/oca_custom/static/description/index.html index 97ca56b..ff6c7ca 100644 --- a/oca_custom/static/description/index.html +++ b/oca_custom/static/description/index.html @@ -3,7 +3,7 @@ - + OCA Custom Settings + + +
+

OCA All

+ + +

Alpha License: AGPL-3 OCA/oca-custom Translate me on Weblate Try me on Runboat

+

OCA’s Odoo instance’s dependencies.

+

Installing this module will create an instance likes +the one used to manage the OCA association.

+
+

Important

+

This is an alpha version, the data model and design can change at any time without warning. +Only for development or testing purpose, do not use in production. +More details on development status

+
+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainer:

+

petrus-v

+

This module is part of the OCA/oca-custom project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + From 9c4670bbbe631b2a447a0ac8f26715cb66b1deb7 Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Mon, 16 Jun 2025 09:42:27 +0200 Subject: [PATCH 14/53] FIX oca_all dependencies * account_statement_import_online_wise were missing on staging only module missing from production 20250617 * l10n_ch_pain_base * l10n_ch_pain_credit_transfer * project_task_add_very_high * web_search_with_and and bumps all module versions --- oca_all/__manifest__.py | 94 +++++++++++++++++++++++------------------ 1 file changed, 52 insertions(+), 42 deletions(-) diff --git a/oca_all/__manifest__.py b/oca_all/__manifest__.py index 37249c5..88aca8b 100644 --- a/oca_all/__manifest__.py +++ b/oca_all/__manifest__.py @@ -15,6 +15,7 @@ # Odoo "account", "account_payment", + "account_statement_import", "analytic", "association", "attachment_indexation", @@ -32,12 +33,16 @@ "bus", "calendar", "contacts", + "coupon", "crm", "digest", "event", "event_sale", "fetchmail", + "fetchmail_gmail", "gamification", + "google_gmail", + "google_account", "google_recaptcha", "hr", "hr_timesheet", @@ -73,6 +78,7 @@ "rating", "resource", "sale", + "sale_coupon", "sale_crm", "sale_management", "sale_project", @@ -112,70 +118,74 @@ "website_payment", "website_profile", "website_sale", + "website_sale_coupon", "website_sale_digital", "website_sale_management", "website_slides", # OCA - "date_range", - "mis_builder", - "mis_builder_budget", - "mis_builder_demo", - "account_payment_order", - "report_xlsx", - "mis_builder_cash_flow", - "account_statement_import_paypal", "account_banking_pain_base", - "account_statement_import_base", "account_banking_sepa_credit_transfer", + "account_credit_control", + "account_financial_report", + "account_lock_to_date", + "account_menu", + "account_payment_mode", + "account_payment_order", "account_payment_partner", "account_payment_sale", - "account_payment_mode", "account_payment_unece", + "account_reconciliation_widget", + "account_statement_import_base", + "account_statement_import_online_wise", + "account_statement_import_paypal", + "account_statement_import_txt_xlsx", "account_tax_unece", + "apps_download", + "apps_product_creator", + "base_technical_features", + "base_ubl", "base_ubl_payment", "base_unece", - "uom_unece", - "base_ubl", - "project_members", - "apps_download", - "account_financial_report", + "bi_sql_editor", "currency_rate_update", + "date_range", + "disable_odoo_online", + "document_page", + "event_badge_design", + "github_connector", + "github_connector_oca", + "github_connector_odoo", + "knowledge", "l10n_ch_base_bank", + "l10n_ch_pain_base", + "l10n_ch_pain_credit_transfer", + "mass_editing", + "mass_operation_abstract", + "membership_delegated_partner_line", + "membership_extension", + "mis_builder", + "mis_builder_budget", + "mis_builder_cash_flow", + "mis_builder_demo", "multi_step_wizard", - "account_credit_control", - "web_widget_dropdown_dynamic", - "account_statement_import_txt_xlsx", - "account_lock_to_date", "partner_statement", - "membership_delegated_partner_line", - # "membership_delegated_partner", - "account_menu", + "project_task_add_very_high", "oca_custom", - "mass_operation_abstract", + "oca_psc_team", + "partner_contact_access_link", + "project_members", + "report_xlsx", + "report_xlsx_helper", + "sentry", "sql_request_abstract", - "bi_sql_editor", - "event_badge_design", + "uom_unece", + "web_advanced_search", "web_responsive", - "sentry", - "report_xlsx_helper", - "apps_product_creator", + "web_search_with_and", + "web_widget_dropdown_dynamic", "website_apps_store", - "github_connector", - "github_connector_oca", - "oca_psc_team", "website_oca_integrator", "website_oca_psc_team", - "github_connector_odoo", - "account_statement_import", - "account_reconciliation_widget", - "base_technical_features", - "document_page", - "knowledge", - "mass_editing", - "partner_contact_access_link", - "membership_extension", - "web_advanced_search", - "disable_odoo_online", ], "installable": True, } From 8fdac717a2c741c1024af236629551a4a2c36a3a Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Thu, 3 Jul 2025 22:40:42 +0200 Subject: [PATCH 15/53] Add missing depenencies likes in production --- oca_all/__manifest__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/oca_all/__manifest__.py b/oca_all/__manifest__.py index 88aca8b..5cc600f 100644 --- a/oca_all/__manifest__.py +++ b/oca_all/__manifest__.py @@ -177,10 +177,12 @@ "report_xlsx", "report_xlsx_helper", "sentry", + "survey_xlsx", "sql_request_abstract", "uom_unece", "web_advanced_search", "web_responsive", + "web_refresher", "web_search_with_and", "web_widget_dropdown_dynamic", "website_apps_store", From c73f9281c85ebde20e48630ea96544635e144e0d Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 22 Jul 2025 07:11:28 +0000 Subject: [PATCH 16/53] [UPD] README.rst --- oca_all/README.rst | 8 ++++++-- oca_all/static/description/index.html | 24 +++++++++++++++--------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/oca_all/README.rst b/oca_all/README.rst index 2881acf..0df5110 100644 --- a/oca_all/README.rst +++ b/oca_all/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ======= OCA All ======= @@ -7,13 +11,13 @@ OCA All !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:89df52f29d0848cc5d8403803673fed7a371affbea15df49c4ea141b29b35da5 + !! source digest: sha256:5db7643cb0b23b0001c3d0bca16493b1ac9f994770781f068ca96608261011d4 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png :target: https://odoo-community.org/page/development-status :alt: Alpha -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Foca--custom-lightgray.png?logo=github diff --git a/oca_all/static/description/index.html b/oca_all/static/description/index.html index 8932608..94217b6 100644 --- a/oca_all/static/description/index.html +++ b/oca_all/static/description/index.html @@ -3,7 +3,7 @@ -OCA All +README.rst -
-

OCA All

+
+ + +Odoo Community Association + +
+

OCA All

-

Alpha License: AGPL-3 OCA/oca-custom Translate me on Weblate Try me on Runboat

+

Alpha License: AGPL-3 OCA/oca-custom Translate me on Weblate Try me on Runboat

OCA’s Odoo instance’s dependencies.

Installing this module will create an instance likes the one used to manage the OCA association.

@@ -391,7 +396,7 @@

OCA All

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -399,15 +404,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -422,5 +427,6 @@

Maintainers

+
From 30753ef5d536f11df55db438c1a593ee286c85c4 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 22 Jul 2025 07:11:28 +0000 Subject: [PATCH 17/53] [ADD] icon.png --- oca_all/static/description/icon.png | Bin 0 -> 10254 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 oca_all/static/description/icon.png diff --git a/oca_all/static/description/icon.png b/oca_all/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1dcc49c24f364e9adf0afbc6fc0bac6dbecdeb11 GIT binary patch literal 10254 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 Date: Tue, 22 Jul 2025 07:18:46 +0000 Subject: [PATCH 18/53] [UPD] Update oca_all.pot --- oca_all/i18n/oca_all.pot | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 oca_all/i18n/oca_all.pot diff --git a/oca_all/i18n/oca_all.pot b/oca_all/i18n/oca_all.pot new file mode 100644 index 0000000..4d8b20f --- /dev/null +++ b/oca_all/i18n/oca_all.pot @@ -0,0 +1,13 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" From 113e6d7e2ca3ab6ebf8c6c18b476459bf0852a5f Mon Sep 17 00:00:00 2001 From: Alessandro Uffreduzzi Date: Mon, 15 Sep 2025 10:35:35 +0200 Subject: [PATCH 19/53] [IMP] oca_all: add base_deterministic_session_gc The module makes session garbage collection deterministic To use the module, it needs to be added to the server_wide_modules conf options Another option should also be added to set gc for all sessions older than 3 days ;3 days = 60*60*24*3 seconds session_expiry_delay = 259200 --- oca_all/README.rst | 6 +----- oca_all/__manifest__.py | 1 + oca_all/static/description/index.html | 22 ++++++++-------------- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/oca_all/README.rst b/oca_all/README.rst index 0df5110..f29086a 100644 --- a/oca_all/README.rst +++ b/oca_all/README.rst @@ -1,7 +1,3 @@ -.. image:: https://odoo-community.org/readme-banner-image - :target: https://odoo-community.org/get-involved?utm_source=readme - :alt: Odoo Community Association - ======= OCA All ======= @@ -17,7 +13,7 @@ OCA All .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png :target: https://odoo-community.org/page/development-status :alt: Alpha -.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Foca--custom-lightgray.png?logo=github diff --git a/oca_all/__manifest__.py b/oca_all/__manifest__.py index 5cc600f..941d180 100644 --- a/oca_all/__manifest__.py +++ b/oca_all/__manifest__.py @@ -142,6 +142,7 @@ "account_tax_unece", "apps_download", "apps_product_creator", + "base_deterministic_session_gc", "base_technical_features", "base_ubl", "base_ubl_payment", diff --git a/oca_all/static/description/index.html b/oca_all/static/description/index.html index 94217b6..d2756a8 100644 --- a/oca_all/static/description/index.html +++ b/oca_all/static/description/index.html @@ -3,7 +3,7 @@ -README.rst +OCA All -
+
+

OCA All

- - -Odoo Community Association - -
-

OCA All

-

Alpha License: AGPL-3 OCA/oca-custom Translate me on Weblate Try me on Runboat

+

Alpha License: AGPL-3 OCA/oca-custom Translate me on Weblate Try me on Runboat

OCA’s Odoo instance’s dependencies.

Installing this module will create an instance likes the one used to manage the OCA association.

@@ -396,7 +391,7 @@

OCA All

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -404,15 +399,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -427,6 +422,5 @@

Maintainers

-
From b47eeba81c6c6a102e9c6c3e3cff6bcc014e43f9 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 9 Oct 2025 12:51:54 +0000 Subject: [PATCH 20/53] [UPD] README.rst --- oca_all/README.rst | 8 ++++++-- oca_all/static/description/index.html | 24 +++++++++++++++--------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/oca_all/README.rst b/oca_all/README.rst index f29086a..aa0d187 100644 --- a/oca_all/README.rst +++ b/oca_all/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ======= OCA All ======= @@ -7,13 +11,13 @@ OCA All !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:5db7643cb0b23b0001c3d0bca16493b1ac9f994770781f068ca96608261011d4 + !! source digest: sha256:c01e92c4aeb056ad41dd24d57aedfa0ae9e8bce10cd2674c930789fa113d0acb !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png :target: https://odoo-community.org/page/development-status :alt: Alpha -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Foca--custom-lightgray.png?logo=github diff --git a/oca_all/static/description/index.html b/oca_all/static/description/index.html index d2756a8..ee8f401 100644 --- a/oca_all/static/description/index.html +++ b/oca_all/static/description/index.html @@ -3,7 +3,7 @@ -OCA All +README.rst -
-

OCA All

+
+ + +Odoo Community Association + +
+

OCA All

-

Alpha License: AGPL-3 OCA/oca-custom Translate me on Weblate Try me on Runboat

+

Alpha License: AGPL-3 OCA/oca-custom Translate me on Weblate Try me on Runboat

OCA’s Odoo instance’s dependencies.

Installing this module will create an instance likes the one used to manage the OCA association.

@@ -391,7 +396,7 @@

OCA All

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -399,15 +404,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -422,5 +427,6 @@

Maintainers

+
From 2ec12479a0f6832cc143195583855bcf64838d75 Mon Sep 17 00:00:00 2001 From: Dan Kiplangat Date: Wed, 19 Nov 2025 12:13:50 +0300 Subject: [PATCH 21/53] [18.0][MIG] oca_all --- oca_all/README.rst | 24 ++++------ oca_all/__manifest__.py | 69 ++++++++------------------- oca_all/pyproject.toml | 3 ++ oca_all/readme/DESCRIPTION.md | 4 ++ oca_all/readme/DESCRIPTION.rst | 4 -- oca_all/static/description/index.html | 30 +++++------- 6 files changed, 49 insertions(+), 85 deletions(-) create mode 100644 oca_all/pyproject.toml create mode 100644 oca_all/readme/DESCRIPTION.md delete mode 100644 oca_all/readme/DESCRIPTION.rst diff --git a/oca_all/README.rst b/oca_all/README.rst index aa0d187..0a817c5 100644 --- a/oca_all/README.rst +++ b/oca_all/README.rst @@ -1,7 +1,3 @@ -.. image:: https://odoo-community.org/readme-banner-image - :target: https://odoo-community.org/get-involved?utm_source=readme - :alt: Odoo Community Association - ======= OCA All ======= @@ -17,25 +13,25 @@ OCA All .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png :target: https://odoo-community.org/page/development-status :alt: Alpha -.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Foca--custom-lightgray.png?logo=github - :target: https://github.com/OCA/oca-custom/tree/14.0/oca_all + :target: https://github.com/OCA/oca-custom/tree/18.0/oca_all :alt: OCA/oca-custom .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/oca-custom-14-0/oca-custom-14-0-oca_all + :target: https://translation.odoo-community.org/projects/oca-custom-18-0/oca-custom-18-0-oca_all :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/oca-custom&target_branch=14.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/oca-custom&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| OCA's Odoo instance's dependencies. -Installing this module will create an instance likes -the one used to manage the OCA association. +Installing this module will create an instance likes the one used to +manage the OCA association. .. IMPORTANT:: This is an alpha version, the data model and design can change at any time without warning. @@ -53,7 +49,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -61,12 +57,12 @@ Credits ======= Authors -~~~~~~~ +------- * Pierre Verkest Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -86,6 +82,6 @@ Current `maintainer `__: |maintainer-petrus-v| -This module is part of the `OCA/oca-custom `_ project on GitHub. +This module is part of the `OCA/oca-custom `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/oca_all/__manifest__.py b/oca_all/__manifest__.py index 941d180..672fec5 100644 --- a/oca_all/__manifest__.py +++ b/oca_all/__manifest__.py @@ -3,7 +3,7 @@ { "name": "OCA All", "summary": "All oca modules dependencies", - "version": "14.0.0.0.1", + "version": "18.0.0.0.1", "development_status": "Alpha", "website": "https://github.com/OCA/oca-custom", "author": "Pierre Verkest , Odoo Community Association (OCA)", @@ -15,13 +15,10 @@ # Odoo "account", "account_payment", - "account_statement_import", "analytic", - "association", "attachment_indexation", "auth_oauth", "auth_signup", - "barcodes", "base", "base_automation", "base_geolocalize", @@ -33,24 +30,20 @@ "bus", "calendar", "contacts", - "coupon", "crm", "digest", "event", "event_sale", - "fetchmail", - "fetchmail_gmail", "gamification", - "google_gmail", "google_account", + "google_gmail", "google_recaptcha", "hr", "hr_timesheet", "http_routing", "l10n_ch", - "l10n_multilang", - "l10n_generic_coa", "link_tracker", + "loyalty", "mail", "mail_bot", "mass_mailing", @@ -59,18 +52,14 @@ "mass_mailing_event_track", "mass_mailing_sale", "membership", - "pad", - "pad_project", "payment", "payment_paypal", "payment_stripe", - "payment_transfer", "phone_validation", "point_of_sale", "portal", "portal_rating", "pos_sale", - "procurement_jit", "product", "project", "purchase", @@ -78,7 +67,7 @@ "rating", "resource", "sale", - "sale_coupon", + "sale_loyalty", "sale_crm", "sale_management", "sale_project", @@ -94,7 +83,6 @@ "utm", "web", "web_editor", - "web_kanban_gauge", "web_tour", "web_unsplash", "website", @@ -103,24 +91,19 @@ "website_crm_partner_assign", "website_customer", "website_event", - "website_event_questions", "website_event_sale", "website_event_track", - "website_form", - "website_form_project", "website_google_map", "website_links", "website_mail", - "website_mail_channel", + "website_mail_group", "website_mass_mailing", "website_membership", "website_partner", "website_payment", "website_profile", "website_sale", - "website_sale_coupon", - "website_sale_digital", - "website_sale_management", + "website_sale_loyalty", "website_slides", # OCA "account_banking_pain_base", @@ -128,41 +111,33 @@ "account_credit_control", "account_financial_report", "account_lock_to_date", - "account_menu", "account_payment_mode", "account_payment_order", "account_payment_partner", "account_payment_sale", "account_payment_unece", - "account_reconciliation_widget", + "account_reconcile_oca", "account_statement_import_base", - "account_statement_import_online_wise", - "account_statement_import_paypal", - "account_statement_import_txt_xlsx", + "account_statement_import_file", + # "account_statement_import_online_wise", + "account_statement_import_online_paypal", "account_tax_unece", - "apps_download", - "apps_product_creator", - "base_deterministic_session_gc", + "account_usability", + # "apps_download", + # "apps_product_creator", "base_technical_features", "base_ubl", - "base_ubl_payment", "base_unece", "bi_sql_editor", "currency_rate_update", "date_range", "disable_odoo_online", + "document_knowledge", "document_page", - "event_badge_design", "github_connector", - "github_connector_oca", + # "github_connector_oca", "github_connector_odoo", - "knowledge", - "l10n_ch_base_bank", - "l10n_ch_pain_base", - "l10n_ch_pain_credit_transfer", - "mass_editing", - "mass_operation_abstract", - "membership_delegated_partner_line", + # "membership_delegated_partner_line", "membership_extension", "mis_builder", "mis_builder_budget", @@ -171,24 +146,20 @@ "multi_step_wizard", "partner_statement", "project_task_add_very_high", - "oca_custom", - "oca_psc_team", + # "oca_custom", "partner_contact_access_link", - "project_members", + "project_role", "report_xlsx", "report_xlsx_helper", "sentry", - "survey_xlsx", + "server_action_mass_edit", + # "survey_xlsx", "sql_request_abstract", "uom_unece", - "web_advanced_search", "web_responsive", "web_refresher", "web_search_with_and", "web_widget_dropdown_dynamic", - "website_apps_store", - "website_oca_integrator", - "website_oca_psc_team", ], "installable": True, } diff --git a/oca_all/pyproject.toml b/oca_all/pyproject.toml new file mode 100644 index 0000000..4231d0c --- /dev/null +++ b/oca_all/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/oca_all/readme/DESCRIPTION.md b/oca_all/readme/DESCRIPTION.md new file mode 100644 index 0000000..e69f246 --- /dev/null +++ b/oca_all/readme/DESCRIPTION.md @@ -0,0 +1,4 @@ +OCA's Odoo instance's dependencies. + +Installing this module will create an instance likes the one used to +manage the OCA association. diff --git a/oca_all/readme/DESCRIPTION.rst b/oca_all/readme/DESCRIPTION.rst deleted file mode 100644 index a537aba..0000000 --- a/oca_all/readme/DESCRIPTION.rst +++ /dev/null @@ -1,4 +0,0 @@ -OCA's Odoo instance's dependencies. - -Installing this module will create an instance likes -the one used to manage the OCA association. diff --git a/oca_all/static/description/index.html b/oca_all/static/description/index.html index ee8f401..a6b7e4b 100644 --- a/oca_all/static/description/index.html +++ b/oca_all/static/description/index.html @@ -3,7 +3,7 @@ -README.rst +OCA All -
+
+

OCA All

- - -Odoo Community Association - -
-

OCA All

-

Alpha License: AGPL-3 OCA/oca-custom Translate me on Weblate Try me on Runboat

+

Alpha License: AGPL-3 OCA/oca-custom Translate me on Weblate Try me on Runboat

OCA’s Odoo instance’s dependencies.

-

Installing this module will create an instance likes -the one used to manage the OCA association.

+

Installing this module will create an instance likes the one used to +manage the OCA association.

Important

This is an alpha version, the data model and design can change at any time without warning. @@ -396,23 +391,23 @@

OCA All

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -422,11 +417,10 @@

Maintainers

promote its widespread use.

Current maintainer:

petrus-v

-

This module is part of the OCA/oca-custom project on GitHub.

+

This module is part of the OCA/oca-custom project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

-
From 3da61c9b048443b7e2094ef579e2a2856943b82c Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Mon, 17 Mar 2025 16:46:01 +0100 Subject: [PATCH 22/53] [IMP] OCA's Odoo: odoo-community.org development/release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add contribute tools in order to develop and release docker images for https://odoo-community.org using Acsonne toolsets likes hatch-odoo, odoo-bedrock... This helps to quickly create a locale environement close to what is installed on our production instance. Use following unreleased code: * odoo14-addon-membership-delegated-partner-line from OCA/vertical-association/pull/151 * odoo from OCA/OCB/pull/1299 Co-authored-by: Stéphane Bidoul Co-authored-by: Holger Brunn --- pyproject.toml | 110 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..fef2051 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,110 @@ +[build-system] +requires = ["hatchling", "hatch-odoo"] +build-backend = "hatchling.build" + + +[project] +name = "oca-custom" +version = "14.0" +description = "Odoo by OCA" +# readme = "README.md" +requires-python = "==3.9.*" +dynamic = ["dependencies"] + +[tool.hatch.build] +packages = ["./"] + +# Enable the hatch-odoo metadata hook to generate dependencies from addons manifests. +[tool.hatch.metadata.hooks.odoo-addons-dependencies] +# Enable the hatch-odoo build hook to locate the Odoo addons and package them in odoo/addons. +# if not provided, "locals" modules (those in './') are not found and cannot be installed... +[tool.hatch.build.hooks.odoo-addons-dirs] + +[tool.hatch-odoo] +# dependencies that are not in the addons manifest +dependencies = [ + "odoo==14.0.*", + # indirect unrealeased dependencies + "odoo-addons-design-themes==14.0.*", + # Add some constraints to Odoo deps that should be in their setup.py + "Babel==2.9.1", + "chardet==3.0.4", + "decorator==4.3.0", + "docutils==0.14", + "ebaysdk==2.1.5", + "freezegun==0.3.15", + "gevent==20.9.0 ", + # gevent==21.8.0 ", + "greenlet==1.1.2", + "idna==2.6", + "Jinja2==2.11.2", + "libsass>=0.18.0", + "lxml==4.6.5", + "Mako==1.0.7", + "MarkupSafe==1.1.0", + "num2words==0.5.6", + "ofxparse==0.19", + # ofxparse==0.21", + "passlib==1.7.1", + "Pillow==8.1.1", + "polib==1.1.0", + "psutil==5.6.6", + "psycopg2==2.9.10", + "pydot==1.4.1", + "PyPDF2==1.26.0", + "pyserial==3.4", + "python-dateutil==2.7.3", + "pytz", + "qrcode==6.1", + "reportlab==3.5.55", + "requests==2.21.0", + # requests==2.25.1; python_version > '3.9' # (Jammy) versions < 2.25 aren't compatible w/ urllib3 1.26. Bullseye = 2.25.1. min version = 2.22.0 (Focal)", + # urllib3==1.26.5; python_version > '3.9' # (Jammy) indirect / min version = 1.25.8 (Focal with security backports)", + "zeep==3.2.0", + "python-stdnum==1.8", + "vobject==0.9.6.1", + "Werkzeug==0.16.1 ", + # Werkzeug==2.0.2 ; python_version > '3.9' # (Jammy)", + "XlsxWriter==1.1.2", + "xlwt==1.3.*", + "xlrd==1.2.0", + # TODO: add constraints in github connector module + "PyGithub<2.0.0", + "click-odoo-contrib", +] +addons_dirs = ["./"] + +[tool.uv] +# On OCA 14.0 series translations commits are realeased +# in pre-release state +prerelease = "allow" +# tell uv when dependencies may change +cache-keys = [{ file = "pyproject.toml" }, { file = "**/__manifest__.py" }] + +dev-dependencies = [ + "parameterized>=0.9.0", + "pytest>8", + "pytest-odoo>=2", + "pytest-cov>=5.0.0", + "pytest-xdist>=3.6.1", + "manifestoo>=1.0", + "odoo-test-helper", + "websocket-client", +] + + +[tool.uv.sources] +# Use fix updating account move line update membership line +odoo = { git = "https://github.com/OCA/OCB", rev = "refs/pull/1299/head" } + +# unreleased dependency, add it to test-requirements.txt to let the +# test pipeline to use it as well +odoo-addons-design-themes = { git = "https://github.com/acsone/design-themes", branch = "14.0-with-pyproject" } +odoo14-addon-membership-delegated-partner-line = { git = "https://github.com/OCA/vertical-association", rev = "refs/pull/151/head", subdirectory = "setup/membership_delegated_partner_line" } + +# Example to develop module from an other repository +# installing in editable mode +# odoo14-addon-membership-delegated-partner-line = { path = "src/vertical-association/setup/membership_delegated_partner_line", editable = true } + +[tool.pytest] +addopts = "-v -s --cov-report term-missing" From 2f72861f473f545b6c46d6eadadf6c6cdf2b5045 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Mon, 9 Jun 2025 17:20:52 +0200 Subject: [PATCH 23/53] Use standard mechanism to declare dev dependencies --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index fef2051..f675d55 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -81,7 +81,8 @@ prerelease = "allow" # tell uv when dependencies may change cache-keys = [{ file = "pyproject.toml" }, { file = "**/__manifest__.py" }] -dev-dependencies = [ +[dependency-groups] +dev = [ "parameterized>=0.9.0", "pytest>8", "pytest-odoo>=2", From ed9953c679c6d54ba2c474dd41a1142db054de61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Mon, 9 Jun 2025 17:52:54 +0200 Subject: [PATCH 24/53] Add openupgradelib It's necessary to run, e.g. github_connector migrations --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index f675d55..8324807 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -71,6 +71,7 @@ dependencies = [ # TODO: add constraints in github connector module "PyGithub<2.0.0", "click-odoo-contrib", + "openupgradelib", ] addons_dirs = ["./"] From daa2887003b784fb9a53a43dd31662a3191b9aeb Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Wed, 18 Jun 2025 16:12:09 +0200 Subject: [PATCH 25/53] freeze pytest version waiting for https://github.com/camptocamp/pytest-odoo/pull/85 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8324807..28e16d7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -86,7 +86,7 @@ cache-keys = [{ file = "pyproject.toml" }, { file = "**/__manifest__.py" }] dev = [ "parameterized>=0.9.0", "pytest>8", - "pytest-odoo>=2", + "pytest-odoo==2.1.2", "pytest-cov>=5.0.0", "pytest-xdist>=3.6.1", "manifestoo>=1.0", From fc823a01c3bbdeb6b4d8f7363d27332d13250ed7 Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Thu, 3 Jul 2025 22:40:42 +0200 Subject: [PATCH 26/53] Add missing depenencies likes in production --- pyproject.toml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 28e16d7..3fb32fd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,6 @@ dependencies = [ "ebaysdk==2.1.5", "freezegun==0.3.15", "gevent==20.9.0 ", - # gevent==21.8.0 ", "greenlet==1.1.2", "idna==2.6", "Jinja2==2.11.2", @@ -44,8 +43,8 @@ dependencies = [ "MarkupSafe==1.1.0", "num2words==0.5.6", "ofxparse==0.19", - # ofxparse==0.21", "passlib==1.7.1", + "pdfminer.six==20211012", "Pillow==8.1.1", "polib==1.1.0", "psutil==5.6.6", From 6d611952bec652ac218462dfe635c807e4ca91d7 Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Mon, 21 Jul 2025 10:17:01 +0200 Subject: [PATCH 27/53] integrate account_statement_import_online_wise Tom's fix using foreing currency --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3fb32fd..f373c04 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -102,7 +102,7 @@ odoo = { git = "https://github.com/OCA/OCB", rev = "refs/pull/1299/head" } # test pipeline to use it as well odoo-addons-design-themes = { git = "https://github.com/acsone/design-themes", branch = "14.0-with-pyproject" } odoo14-addon-membership-delegated-partner-line = { git = "https://github.com/OCA/vertical-association", rev = "refs/pull/151/head", subdirectory = "setup/membership_delegated_partner_line" } - +odoo14-addon-account_statement_import_online_wise = { git = "https://github.com/OCA/bank-statement-import", rev = "refs/pull/816/head", subdirectory = "setup/account_statement_import_online_wise" } # Example to develop module from an other repository # installing in editable mode # odoo14-addon-membership-delegated-partner-line = { path = "src/vertical-association/setup/membership_delegated_partner_line", editable = true } From 06d63312abb95f7d102eee4c9aa29820c91adb1b Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Tue, 22 Jul 2025 15:29:44 +0200 Subject: [PATCH 28/53] bump apps_product_creator re-activating and re-publishing modules product --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index f373c04..38264a2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -103,6 +103,7 @@ odoo = { git = "https://github.com/OCA/OCB", rev = "refs/pull/1299/head" } odoo-addons-design-themes = { git = "https://github.com/acsone/design-themes", branch = "14.0-with-pyproject" } odoo14-addon-membership-delegated-partner-line = { git = "https://github.com/OCA/vertical-association", rev = "refs/pull/151/head", subdirectory = "setup/membership_delegated_partner_line" } odoo14-addon-account_statement_import_online_wise = { git = "https://github.com/OCA/bank-statement-import", rev = "refs/pull/816/head", subdirectory = "setup/account_statement_import_online_wise" } + # Example to develop module from an other repository # installing in editable mode # odoo14-addon-membership-delegated-partner-line = { path = "src/vertical-association/setup/membership_delegated_partner_line", editable = true } From 39cb63ecaf640d710aa8f7883ae9a71ddb6e12de Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Thu, 28 Aug 2025 16:09:08 +0200 Subject: [PATCH 29/53] [REF] add locust benchmark and bump website_apps_store the refactor avoid useless SQL requests --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 38264a2..b6bb271 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -103,6 +103,7 @@ odoo = { git = "https://github.com/OCA/OCB", rev = "refs/pull/1299/head" } odoo-addons-design-themes = { git = "https://github.com/acsone/design-themes", branch = "14.0-with-pyproject" } odoo14-addon-membership-delegated-partner-line = { git = "https://github.com/OCA/vertical-association", rev = "refs/pull/151/head", subdirectory = "setup/membership_delegated_partner_line" } odoo14-addon-account_statement_import_online_wise = { git = "https://github.com/OCA/bank-statement-import", rev = "refs/pull/816/head", subdirectory = "setup/account_statement_import_online_wise" } +odoo14-addon-website-apps-store = { git = "https://github.com/OCA/apps-store", rev = "refs/pull/96/head", subdirectory = "setup/website_apps_store" } # Example to develop module from an other repository # installing in editable mode From baaabfcd4027ced2b6a6005302d9cbeb529c730e Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 9 Oct 2025 14:39:37 +0200 Subject: [PATCH 30/53] [UPD] remove merged OCA branches and update module versions to the merged ones --- pyproject.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b6bb271..16724db 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -101,8 +101,6 @@ odoo = { git = "https://github.com/OCA/OCB", rev = "refs/pull/1299/head" } # unreleased dependency, add it to test-requirements.txt to let the # test pipeline to use it as well odoo-addons-design-themes = { git = "https://github.com/acsone/design-themes", branch = "14.0-with-pyproject" } -odoo14-addon-membership-delegated-partner-line = { git = "https://github.com/OCA/vertical-association", rev = "refs/pull/151/head", subdirectory = "setup/membership_delegated_partner_line" } -odoo14-addon-account_statement_import_online_wise = { git = "https://github.com/OCA/bank-statement-import", rev = "refs/pull/816/head", subdirectory = "setup/account_statement_import_online_wise" } odoo14-addon-website-apps-store = { git = "https://github.com/OCA/apps-store", rev = "refs/pull/96/head", subdirectory = "setup/website_apps_store" } # Example to develop module from an other repository From 8bc0e941d98675277e92cefd23b5492fdad8dfaa Mon Sep 17 00:00:00 2001 From: Hussam Suleiman Date: Thu, 8 Jan 2026 17:23:32 +0100 Subject: [PATCH 31/53] [MIG] pyproject.toml 14 to 18 --- pyproject.toml | 99 +++++++++++++++++++++++++------------------------- 1 file changed, 49 insertions(+), 50 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 16724db..00c2da4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,10 +5,10 @@ build-backend = "hatchling.build" [project] name = "oca-custom" -version = "14.0" +version = "18.0" description = "Odoo by OCA" # readme = "README.md" -requires-python = "==3.9.*" +requires-python = "==3.12.*" dynamic = ["dependencies"] [tool.hatch.build] @@ -23,54 +23,54 @@ packages = ["./"] [tool.hatch-odoo] # dependencies that are not in the addons manifest dependencies = [ - "odoo==14.0.*", + "odoo==18.0.*", # indirect unrealeased dependencies - "odoo-addons-design-themes==14.0.*", + #"odoo-addons-design-themes==18.0.*", # Add some constraints to Odoo deps that should be in their setup.py - "Babel==2.9.1", - "chardet==3.0.4", - "decorator==4.3.0", - "docutils==0.14", - "ebaysdk==2.1.5", - "freezegun==0.3.15", - "gevent==20.9.0 ", - "greenlet==1.1.2", - "idna==2.6", - "Jinja2==2.11.2", - "libsass>=0.18.0", - "lxml==4.6.5", - "Mako==1.0.7", - "MarkupSafe==1.1.0", - "num2words==0.5.6", - "ofxparse==0.19", - "passlib==1.7.1", - "pdfminer.six==20211012", - "Pillow==8.1.1", - "polib==1.1.0", - "psutil==5.6.6", - "psycopg2==2.9.10", - "pydot==1.4.1", - "PyPDF2==1.26.0", - "pyserial==3.4", - "python-dateutil==2.7.3", + "asn1crypto==1.5.1", + "Babel==2.10.3", + "cbor2==5.6.2", + "chardet==5.2.0", + "cryptography==42.0.8", + "decorator==5.1.1", + "docutils==0.20.1", + "freezegun==1.2.1", + "geoip2==2.9.0", + "gevent==24.2.1", + "greenlet==3.0.3", + "idna==3.6", + "Jinja2==3.1.2", + "libsass==0.22.0", + "lxml==5.2.1", + "lxml-html-clean", + "MarkupSafe==2.1.5", + "num2words==0.5.13", + "ofxparse==0.21", + "openpyxl==3.1.2", + "passlib==1.7.4", + "Pillow==10.2.0", + "polib==1.1.1", + "psutil==5.9.8", + "psycopg2==2.9.9", + "pyopenssl==24.1.0", + "PyPDF2==2.12.1", + "pyserial==3.5", + "python-dateutil==2.8.2", + "python-ldap==3.4.4", + "python-stdnum==1.19", "pytz", - "qrcode==6.1", - "reportlab==3.5.55", - "requests==2.21.0", - # requests==2.25.1; python_version > '3.9' # (Jammy) versions < 2.25 aren't compatible w/ urllib3 1.26. Bullseye = 2.25.1. min version = 2.22.0 (Focal)", - # urllib3==1.26.5; python_version > '3.9' # (Jammy) indirect / min version = 1.25.8 (Focal with security backports)", - "zeep==3.2.0", - "python-stdnum==1.8", + "pyusb==1.2.1", + "qrcode==7.4.2", + "reportlab==4.1.0", + "requests==2.31.0", + "rjsmin==1.2.0", + "urllib3==2.0.7", "vobject==0.9.6.1", - "Werkzeug==0.16.1 ", - # Werkzeug==2.0.2 ; python_version > '3.9' # (Jammy)", - "XlsxWriter==1.1.2", - "xlwt==1.3.*", - "xlrd==1.2.0", - # TODO: add constraints in github connector module - "PyGithub<2.0.0", - "click-odoo-contrib", - "openupgradelib", + "Werkzeug==3.0.1", + "xlrd==2.0.1", + "XlsxWriter==3.1.9", + "xlwt==1.3.0", + "zeep==4.2.1", ] addons_dirs = ["./"] @@ -96,16 +96,15 @@ dev = [ [tool.uv.sources] # Use fix updating account move line update membership line -odoo = { git = "https://github.com/OCA/OCB", rev = "refs/pull/1299/head" } +odoo = { git = "https://github.com/OCA/OCB" } # unreleased dependency, add it to test-requirements.txt to let the # test pipeline to use it as well -odoo-addons-design-themes = { git = "https://github.com/acsone/design-themes", branch = "14.0-with-pyproject" } -odoo14-addon-website-apps-store = { git = "https://github.com/OCA/apps-store", rev = "refs/pull/96/head", subdirectory = "setup/website_apps_store" } # Example to develop module from an other repository # installing in editable mode -# odoo14-addon-membership-delegated-partner-line = { path = "src/vertical-association/setup/membership_delegated_partner_line", editable = true } +odoo18-addon-membership-delegated-partner-line = { path = "https://github.com/gfcapalbo/membership", branch = "18.0-MIG-membership_delegated_partner_line" } [tool.pytest] addopts = "-v -s --cov-report term-missing" + From 491786fe95d071381b68c12a725470c837d01d46 Mon Sep 17 00:00:00 2001 From: Hussam Suleiman Date: Thu, 8 Jan 2026 17:46:44 +0100 Subject: [PATCH 32/53] Add interface-github. --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 00c2da4..fbb395f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -104,6 +104,7 @@ odoo = { git = "https://github.com/OCA/OCB" } # Example to develop module from an other repository # installing in editable mode odoo18-addon-membership-delegated-partner-line = { path = "https://github.com/gfcapalbo/membership", branch = "18.0-MIG-membership_delegated_partner_line" } +odoo18-addon-github-connector-oca = { path = "https://github.com/Therp/interface-github" branch = "18.0-mig-github_connector_oca" } [tool.pytest] addopts = "-v -s --cov-report term-missing" From eae0d6d07237ebdaf71ad690c47bdd893860b7e7 Mon Sep 17 00:00:00 2001 From: Hussam Suleiman Date: Thu, 8 Jan 2026 18:03:40 +0100 Subject: [PATCH 33/53] Add survey. --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index fbb395f..16a3e97 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -105,6 +105,7 @@ odoo = { git = "https://github.com/OCA/OCB" } # installing in editable mode odoo18-addon-membership-delegated-partner-line = { path = "https://github.com/gfcapalbo/membership", branch = "18.0-MIG-membership_delegated_partner_line" } odoo18-addon-github-connector-oca = { path = "https://github.com/Therp/interface-github" branch = "18.0-mig-github_connector_oca" } +odoo18-addon-github-survey-oca = { path = "https://github.com/OCA/survey" branch = "18.0" } [tool.pytest] addopts = "-v -s --cov-report term-missing" From 3c58daa2cd4b2d1e33a2beb480d21c6611b6e828 Mon Sep 17 00:00:00 2001 From: Hussam Suleiman Date: Thu, 8 Jan 2026 18:08:51 +0100 Subject: [PATCH 34/53] Fix pyproject.toml syntax. --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 16a3e97..c720a4b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -104,8 +104,8 @@ odoo = { git = "https://github.com/OCA/OCB" } # Example to develop module from an other repository # installing in editable mode odoo18-addon-membership-delegated-partner-line = { path = "https://github.com/gfcapalbo/membership", branch = "18.0-MIG-membership_delegated_partner_line" } -odoo18-addon-github-connector-oca = { path = "https://github.com/Therp/interface-github" branch = "18.0-mig-github_connector_oca" } -odoo18-addon-github-survey-oca = { path = "https://github.com/OCA/survey" branch = "18.0" } +odoo18-addon-github-connector-oca = { path = "https://github.com/Therp/interface-github", branch = "18.0-mig-github_connector_oca" } +odoo18-addon-github-survey-oca = { path = "https://github.com/OCA/survey", branch = "18.0" } [tool.pytest] addopts = "-v -s --cov-report term-missing" From 40c6d25b30d1a554bf4566ce1ac0e480555fe95a Mon Sep 17 00:00:00 2001 From: Hussam Suleiman Date: Thu, 8 Jan 2026 18:16:26 +0100 Subject: [PATCH 35/53] Fix pyproject.toml syntax. --- pyproject.toml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index c720a4b..50b55fd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -100,12 +100,13 @@ odoo = { git = "https://github.com/OCA/OCB" } # unreleased dependency, add it to test-requirements.txt to let the # test pipeline to use it as well +odoo18-addon-membership-delegated-partner-line = { git = "https://github.com/gfcapalbo/membership", branch = "18.0-MIG-membership_delegated_partner_line" } +odoo18-addon-github-connector-oca = { git = "https://github.com/Therp/interface-github", branch = "18.0-mig-github_connector_oca" } +odoo18-addon-github-survey-oca = { git = "https://github.com/OCA/survey", branch = "18.0" } # Example to develop module from an other repository # installing in editable mode -odoo18-addon-membership-delegated-partner-line = { path = "https://github.com/gfcapalbo/membership", branch = "18.0-MIG-membership_delegated_partner_line" } -odoo18-addon-github-connector-oca = { path = "https://github.com/Therp/interface-github", branch = "18.0-mig-github_connector_oca" } -odoo18-addon-github-survey-oca = { path = "https://github.com/OCA/survey", branch = "18.0" } +# odoo14-addon-membership-delegated-partner-line = { path = "src/vertical-association/setup/membership_delegated_partner_line", editable = true } [tool.pytest] addopts = "-v -s --cov-report term-missing" From f603bcbbd8eca863f5330ce567212a6279213b72 Mon Sep 17 00:00:00 2001 From: Hussam Suleiman Date: Thu, 8 Jan 2026 19:16:23 +0100 Subject: [PATCH 36/53] Fix pyproject.toml syntax. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 50b55fd..098ccb5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -100,7 +100,7 @@ odoo = { git = "https://github.com/OCA/OCB" } # unreleased dependency, add it to test-requirements.txt to let the # test pipeline to use it as well -odoo18-addon-membership-delegated-partner-line = { git = "https://github.com/gfcapalbo/membership", branch = "18.0-MIG-membership_delegated_partner_line" } +odoo18-addon-membership-delegated-partner-line = { git = "https://github.com/gfcapalbo/vertical-association", branch = "18.0-MIG-membership_delegated_partner_line" } odoo18-addon-github-connector-oca = { git = "https://github.com/Therp/interface-github", branch = "18.0-mig-github_connector_oca" } odoo18-addon-github-survey-oca = { git = "https://github.com/OCA/survey", branch = "18.0" } From 1e7a4cfd20611f145fc5049c9469412c66583e11 Mon Sep 17 00:00:00 2001 From: Tom Date: Sat, 10 Jan 2026 17:34:31 +0100 Subject: [PATCH 37/53] [ADD] Contributors docs --- CONTRIBUTING.md | 139 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..c3a1c77 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,139 @@ +# Contribute to the OCA's Odoo instance + +This guide aims to help happy volunteers to contribute to the OCA's Odoo instance. I +suppose mainly the OCA's Internal Tools team. + +It's split into 3 sections: + +- [Concepts](#concepts): Main concepts to understand and general organization +- [Processes](#processes): Helping doing the work without missing crucial steps +- [HowTos](#howto): How to do specific tasks + +## Concepts + +This repository is setup as other OCA's repositories to launch CI as usual and as an +extra configuration in order to build the OCA' Docker image used by our Odoo instance, +as well as facilitate the bootstrapping of a development environment. + +Managing and freezing modules versions rely on python tools: + +- [uv](https://docs.astral.sh/uv/) +- [hatch-odoo](https://pypi.org/project/hatch-odoo/) + +## Processes + +Here we focus on what to do without explaining how to do it. + +### Release + +While we are building and publishing a docker image the current state is that the image +is build at deploy time on OCA server. + +While technically speaking there is nothing more than accessing to a public commit to +deploy a new version it's a common practice to merge your work on branch 14.0 before +deploying a new version in production. + +> **Note**: in this repository we allow unreleased dependencies. + +### deployment + +Ask administrator to deploy the given commit. + +## HowTos + +Here we focus on how to do it, it's a suggest way to works but feel free to use your own +way. + +### Setup developer environment + +Requirements: + +- Postgresql +- [uv](https://docs.astral.sh/uv/) +- Some dependencies to be able to build some python packages: `libpq-dev`, + `build-essential`, TODO +- wkhtmltopdf + +Prepare a python virtual environment with the correct python version (which uv will +download for you if necessary) and install the required dependencies: + +```bash +uv sync +``` + +### Neutralize database + +If you are allow to access to a production database, neutralization happens while +stating the Docker container if the running environnement is not the production server. + +On development, if your are not using docker you can running neutralize scripts such as: + +```bash + find entrypoints/neutralize/*.sql -type f -exec psql -f {} \; +``` + +### Development + +For addons living in this repository, you can just change code and restart Odoo with the +`uv run` command. + +For addons in other repositories, the procedure is as follows: + +- check out the repository somewhere, ie /src/\$repo +- add the following line to `pyproject.toml` in the `[tool.uv.sources]` section: + + ```pyproject + odoo14-addon-$youraddon = { path = "/srv/$repo/setup/$youraddon", editable = true } + ``` + +- run `uv sync` +- restart Odoo + +### use unreleased dependency + +There is two different goals: + +- making the test CI pass: using regular test-requirements.txt files add a line such as + + ``` + odoo14-addon-membership-delegated-partner-line @ git+https://github.com/OCA/vertical-association@refs/pull/151/head#subdirectory=setup/membership_delegated_partner_line + ``` + +- bring the unreleased dependency in the uv project (and the built docker image), add + the following line to `pyproject.toml` in the `[tool.uv.sources]` section: + + ```pyproject + odoo14-addon-membership-delegated-partner-line = { git = "https://github.com/OCA/vertical-association", rev = "refs/pull/151/head", subdirectory = "setup/membership_delegated_partner_line" } + ``` + +### Setup database and launch tests + +- setup database with demo data and all oca modules installed + +```bash +uv run odoo -d oca-custom -i oca_all --stop-after-init --without-demo= +``` + +- run tests using pytest launcher + +```bash +uv run pytest --odoo-database oca-custom --cov ./oca_psc_team/ oca_psc_team/ +``` + +### Update OCB Branch + +```bash +uv sync -P odoo +``` + +### Update a specific OCA module dependency using the latest pypi release + +```bash +uv sync -P odoo14-addon- +``` + +### Bump all dependencies to the latest version + +```bash +uv sync -U +``` From 637f13d8b7c6d968ca68b70207df3d1275e147f7 Mon Sep 17 00:00:00 2001 From: Tom Date: Sat, 10 Jan 2026 17:39:17 +0100 Subject: [PATCH 38/53] fixup! Fix pyproject.toml syntax. --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 098ccb5..22d3f9a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -110,4 +110,3 @@ odoo18-addon-github-survey-oca = { git = "https://github.com/OCA/survey", branch [tool.pytest] addopts = "-v -s --cov-report term-missing" - From cba5b506b4fb5a2f13c26d98d4362855620b4c7c Mon Sep 17 00:00:00 2001 From: Tom Date: Sat, 10 Jan 2026 17:45:19 +0100 Subject: [PATCH 39/53] [ADD] uv.lock --- uv.lock | 2115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2115 insertions(+) create mode 100644 uv.lock diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..2d4cec2 --- /dev/null +++ b/uv.lock @@ -0,0 +1,2115 @@ +version = 1 +revision = 3 +requires-python = "==3.12.*" + +[options] +prerelease-mode = "allow" + +[[package]] +name = "asn1crypto" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/de/cf/d547feed25b5244fcb9392e288ff9fdc3280b10260362fc45d37a798a6ee/asn1crypto-1.5.1.tar.gz", hash = "sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c", size = 121080, upload-time = "2022-03-15T14:46:52.889Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c9/7f/09065fd9e27da0eda08b4d6897f1c13535066174cc023af248fc2a8d5e5a/asn1crypto-1.5.1-py2.py3-none-any.whl", hash = "sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67", size = 105045, upload-time = "2022-03-15T14:46:51.055Z" }, +] + +[[package]] +name = "attrs" +version = "25.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, +] + +[[package]] +name = "babel" +version = "2.10.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytz" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/51/27/81e9cf804a34a550a47cc2f0f57fe4935281d479ae3a0ac093d69476f221/Babel-2.10.3.tar.gz", hash = "sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51", size = 9344140, upload-time = "2022-06-16T06:31:37.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/57/a4177e24f8ed700c037e1eca7620097fdfbb1c9b358601e40169adf6d364/Babel-2.10.3-py3-none-any.whl", hash = "sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb", size = 9500277, upload-time = "2022-06-16T06:31:20.746Z" }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.14.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c3/b0/1c6a16426d389813b48d95e26898aff79abbde42ad353958ad95cc8c9b21/beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86", size = 627737, upload-time = "2025-11-30T15:08:26.084Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", size = 107721, upload-time = "2025-11-30T15:08:24.087Z" }, +] + +[[package]] +name = "cbor2" +version = "5.6.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/39/0d0a29671be102bd0c717c60f9c805b46042ff98d4a63282cfaff3704b45/cbor2-5.6.2.tar.gz", hash = "sha256:b7513c2dea8868991fad7ef8899890ebcf8b199b9b4461c3c11d7ad3aef4820d", size = 100016, upload-time = "2024-02-19T18:40:49.788Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/ca/ec69e8064578caaa0fb4caa9b5933ea79e058571cded610775af219a779b/cbor2-5.6.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:377cfe9d5560c682486faef6d856226abf8b2801d95fa29d4e5d75b1615eb091", size = 68992, upload-time = "2024-02-19T18:40:16.884Z" }, + { url = "https://files.pythonhosted.org/packages/73/2e/9bd994a8c8450a3b1d6205ecdc8fb056dd2bcc07aeb052f689802beb3b43/cbor2-5.6.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fdc564ef2e9228bcd96ec8c6cdaa431a48ab03b3fb8326ead4b3f986330e5b9e", size = 69108, upload-time = "2024-02-19T18:40:18.691Z" }, + { url = "https://files.pythonhosted.org/packages/b8/53/b830d443ee47b41e3b4a50fc9513ff0bb674a52715db52ae353efd0039e7/cbor2-5.6.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d1c0021d9a1f673066de7c8941f71a59abb11909cc355892dda01e79a2b3045", size = 276920, upload-time = "2024-02-19T18:40:20.33Z" }, + { url = "https://files.pythonhosted.org/packages/88/3d/8220bcc08d48a21ebffb98fa7915df4e1ce7772aa24fff9861ad72d164cb/cbor2-5.6.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fde9e704e96751e0729cc58b912d0e77c34387fb6bcceea0817069e8683df45", size = 270841, upload-time = "2024-02-19T18:40:22.611Z" }, + { url = "https://files.pythonhosted.org/packages/06/11/d09064b64e9f7e58499fdff1ca0ccc8fc3cf016d57b9a58e1bb04ac04386/cbor2-5.6.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:30e9ba8f4896726ca61869efacda50b6859aff92162ae5a0e192859664f36c81", size = 288575, upload-time = "2024-02-19T18:40:23.981Z" }, + { url = "https://files.pythonhosted.org/packages/8e/82/8f9993aad33c1fbc78c17d6f90ddee1bab2951a85fef98d071ea0c294eb0/cbor2-5.6.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:211a1e18e65ac71e04434ff5b58bde5c53f85b9c5bc92a3c0e2265089d3034f3", size = 287805, upload-time = "2024-02-19T18:40:25.502Z" }, + { url = "https://files.pythonhosted.org/packages/d7/19/c482dab800bf2427e2855e2c4681763e6f1fafcbe7e1801a408ef03d8039/cbor2-5.6.2-cp312-cp312-win_amd64.whl", hash = "sha256:94981277b4bf448a2754c1f34a9d0055a9d1c5a8d102c933ffe95c80f1085bae", size = 66477, upload-time = "2024-02-19T18:40:27.209Z" }, + { url = "https://files.pythonhosted.org/packages/dc/0b/de1e946825ae5cd23951a9cd730f25408c0a531194e1fa729b7ebdcec73e/cbor2-5.6.2-py3-none-any.whl", hash = "sha256:c0b53a65673550fde483724ff683753f49462d392d45d7b6576364b39e76e54c", size = 23757, upload-time = "2024-02-19T18:40:48.637Z" }, +] + +[[package]] +name = "certifi" +version = "2026.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/2d/a891ca51311197f6ad14a7ef42e2399f36cf2f9bd44752b3dc4eab60fdc5/certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120", size = 154268, upload-time = "2026-01-04T02:42:41.825Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c", size = 152900, upload-time = "2026-01-04T02:42:40.15Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, +] + +[[package]] +name = "chardet" +version = "5.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7", size = 2069618, upload-time = "2023-08-01T19:23:02.662Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", size = 199385, upload-time = "2023-08-01T19:23:00.661Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, + { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, + { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, + { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, + { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, + { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, + { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, +] + +[[package]] +name = "click" +version = "8.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065, upload-time = "2025-11-15T20:45:42.706Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274, upload-time = "2025-11-15T20:45:41.139Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "coverage" +version = "7.13.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/23/f9/e92df5e07f3fc8d4c7f9a0f146ef75446bf870351cd37b788cf5897f8079/coverage-7.13.1.tar.gz", hash = "sha256:b7593fe7eb5feaa3fbb461ac79aac9f9fc0387a5ca8080b0c6fe2ca27b091afd", size = 825862, upload-time = "2025-12-28T15:42:56.969Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/8a/87af46cccdfa78f53db747b09f5f9a21d5fc38d796834adac09b30a8ce74/coverage-7.13.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6f34591000f06e62085b1865c9bc5f7858df748834662a51edadfd2c3bfe0dd3", size = 218927, upload-time = "2025-12-28T15:40:52.814Z" }, + { url = "https://files.pythonhosted.org/packages/82/a8/6e22fdc67242a4a5a153f9438d05944553121c8f4ba70cb072af4c41362e/coverage-7.13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b67e47c5595b9224599016e333f5ec25392597a89d5744658f837d204e16c63e", size = 219288, upload-time = "2025-12-28T15:40:54.262Z" }, + { url = "https://files.pythonhosted.org/packages/d0/0a/853a76e03b0f7c4375e2ca025df45c918beb367f3e20a0a8e91967f6e96c/coverage-7.13.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3e7b8bd70c48ffb28461ebe092c2345536fb18bbbf19d287c8913699735f505c", size = 250786, upload-time = "2025-12-28T15:40:56.059Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b4/694159c15c52b9f7ec7adf49d50e5f8ee71d3e9ef38adb4445d13dd56c20/coverage-7.13.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c223d078112e90dc0e5c4e35b98b9584164bea9fbbd221c0b21c5241f6d51b62", size = 253543, upload-time = "2025-12-28T15:40:57.585Z" }, + { url = "https://files.pythonhosted.org/packages/96/b2/7f1f0437a5c855f87e17cf5d0dc35920b6440ff2b58b1ba9788c059c26c8/coverage-7.13.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:794f7c05af0763b1bbd1b9e6eff0e52ad068be3b12cd96c87de037b01390c968", size = 254635, upload-time = "2025-12-28T15:40:59.443Z" }, + { url = "https://files.pythonhosted.org/packages/e9/d1/73c3fdb8d7d3bddd9473c9c6a2e0682f09fc3dfbcb9c3f36412a7368bcab/coverage-7.13.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0642eae483cc8c2902e4af7298bf886d605e80f26382124cddc3967c2a3df09e", size = 251202, upload-time = "2025-12-28T15:41:01.328Z" }, + { url = "https://files.pythonhosted.org/packages/66/3c/f0edf75dcc152f145d5598329e864bbbe04ab78660fe3e8e395f9fff010f/coverage-7.13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9f5e772ed5fef25b3de9f2008fe67b92d46831bd2bc5bdc5dd6bfd06b83b316f", size = 252566, upload-time = "2025-12-28T15:41:03.319Z" }, + { url = "https://files.pythonhosted.org/packages/17/b3/e64206d3c5f7dcbceafd14941345a754d3dbc78a823a6ed526e23b9cdaab/coverage-7.13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:45980ea19277dc0a579e432aef6a504fe098ef3a9032ead15e446eb0f1191aee", size = 250711, upload-time = "2025-12-28T15:41:06.411Z" }, + { url = "https://files.pythonhosted.org/packages/dc/ad/28a3eb970a8ef5b479ee7f0c484a19c34e277479a5b70269dc652b730733/coverage-7.13.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:e4f18eca6028ffa62adbd185a8f1e1dd242f2e68164dba5c2b74a5204850b4cf", size = 250278, upload-time = "2025-12-28T15:41:08.285Z" }, + { url = "https://files.pythonhosted.org/packages/54/e3/c8f0f1a93133e3e1291ca76cbb63565bd4b5c5df63b141f539d747fff348/coverage-7.13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f8dca5590fec7a89ed6826fce625595279e586ead52e9e958d3237821fbc750c", size = 252154, upload-time = "2025-12-28T15:41:09.969Z" }, + { url = "https://files.pythonhosted.org/packages/d0/bf/9939c5d6859c380e405b19e736321f1c7d402728792f4c752ad1adcce005/coverage-7.13.1-cp312-cp312-win32.whl", hash = "sha256:ff86d4e85188bba72cfb876df3e11fa243439882c55957184af44a35bd5880b7", size = 221487, upload-time = "2025-12-28T15:41:11.468Z" }, + { url = "https://files.pythonhosted.org/packages/fa/dc/7282856a407c621c2aad74021680a01b23010bb8ebf427cf5eacda2e876f/coverage-7.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:16cc1da46c04fb0fb128b4dc430b78fa2aba8a6c0c9f8eb391fd5103409a6ac6", size = 222299, upload-time = "2025-12-28T15:41:13.386Z" }, + { url = "https://files.pythonhosted.org/packages/10/79/176a11203412c350b3e9578620013af35bcdb79b651eb976f4a4b32044fa/coverage-7.13.1-cp312-cp312-win_arm64.whl", hash = "sha256:8d9bc218650022a768f3775dd7fdac1886437325d8d295d923ebcfef4892ad5c", size = 220941, upload-time = "2025-12-28T15:41:14.975Z" }, + { url = "https://files.pythonhosted.org/packages/cc/48/d9f421cb8da5afaa1a64570d9989e00fb7955e6acddc5a12979f7666ef60/coverage-7.13.1-py3-none-any.whl", hash = "sha256:2016745cb3ba554469d02819d78958b571792bb68e31302610e898f80dd3a573", size = 210722, upload-time = "2025-12-28T15:42:54.901Z" }, +] + +[[package]] +name = "cryptography" +version = "42.0.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/93/a7/1498799a2ea06148463a9a2c10ab2f6a921a74fb19e231b27dc412a748e2/cryptography-42.0.8.tar.gz", hash = "sha256:8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2", size = 671250, upload-time = "2024-06-04T19:55:08.609Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/8b/1b929ba8139430e09e140e6939c2b29c18df1f2fc2149e41bdbdcdaf5d1f/cryptography-42.0.8-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:81d8a521705787afe7a18d5bfb47ea9d9cc068206270aad0b96a725022e18d2e", size = 5899961, upload-time = "2024-06-04T19:53:57.933Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5d/31d833daa800e4fab33209843095df7adb4a78ea536929145534cbc15026/cryptography-42.0.8-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:961e61cefdcb06e0c6d7e3a1b22ebe8b996eb2bf50614e89384be54c48c6b63d", size = 3114353, upload-time = "2024-06-04T19:54:12.171Z" }, + { url = "https://files.pythonhosted.org/packages/5d/32/f6326c70a9f0f258a201d3b2632bca586ea24d214cec3cf36e374040e273/cryptography-42.0.8-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3ec3672626e1b9e55afd0df6d774ff0e953452886e06e0f1eb7eb0c832e8902", size = 3647773, upload-time = "2024-06-04T19:54:07.051Z" }, + { url = "https://files.pythonhosted.org/packages/35/66/2d87e9ca95c82c7ee5f2c09716fc4c4242c1ae6647b9bd27e55e920e9f10/cryptography-42.0.8-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e599b53fd95357d92304510fb7bda8523ed1f79ca98dce2f43c115950aa78801", size = 3839763, upload-time = "2024-06-04T19:54:30.383Z" }, + { url = "https://files.pythonhosted.org/packages/c2/de/8083fa2e68d403553a01a9323f4f8b9d7ffed09928ba25635c29fb28c1e7/cryptography-42.0.8-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5226d5d21ab681f432a9c1cf8b658c0cb02533eece706b155e5fbd8a0cdd3949", size = 3632661, upload-time = "2024-06-04T19:54:32.955Z" }, + { url = "https://files.pythonhosted.org/packages/07/40/d6f6819c62e808ea74639c3c640f7edd636b86cce62cb14943996a15df92/cryptography-42.0.8-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:6b7c4f03ce01afd3b76cf69a5455caa9cfa3de8c8f493e0d3ab7d20611c8dae9", size = 3851536, upload-time = "2024-06-04T19:53:53.131Z" }, + { url = "https://files.pythonhosted.org/packages/5c/46/de71d48abf2b6d3c808f4fbb0f4dc44a4e72786be23df0541aa2a3f6fd7e/cryptography-42.0.8-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:2346b911eb349ab547076f47f2e035fc8ff2c02380a7cbbf8d87114fa0f1c583", size = 3754209, upload-time = "2024-06-04T19:54:55.259Z" }, + { url = "https://files.pythonhosted.org/packages/25/c9/86f04e150c5d5d5e4a731a2c1e0e43da84d901f388e3fea3d5de98d689a7/cryptography-42.0.8-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:ad803773e9df0b92e0a817d22fd8a3675493f690b96130a5e24f1b8fabbea9c7", size = 3923551, upload-time = "2024-06-04T19:54:16.46Z" }, + { url = "https://files.pythonhosted.org/packages/53/c2/903014dafb7271fb148887d4355b2e90319cad6e810663be622b0c933fc9/cryptography-42.0.8-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2f66d9cd9147ee495a8374a45ca445819f8929a3efcd2e3df6428e46c3cbb10b", size = 3739265, upload-time = "2024-06-04T19:54:23.194Z" }, + { url = "https://files.pythonhosted.org/packages/95/26/82d704d988a193cbdc69ac3b41c687c36eaed1642cce52530ad810c35645/cryptography-42.0.8-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:d45b940883a03e19e944456a558b67a41160e367a719833c53de6911cabba2b7", size = 3937371, upload-time = "2024-06-04T19:55:04.303Z" }, + { url = "https://files.pythonhosted.org/packages/cf/71/4e0d05c9acd638a225f57fb6162aa3d03613c11b76893c23ea4675bb28c5/cryptography-42.0.8-cp37-abi3-win32.whl", hash = "sha256:a0c5b2b0585b6af82d7e385f55a8bc568abff8923af147ee3c07bd8b42cda8b2", size = 2438849, upload-time = "2024-06-04T19:54:27.39Z" }, + { url = "https://files.pythonhosted.org/packages/06/0f/78da3cad74f2ba6c45321dc90394d70420ea846730dc042ef527f5a224b5/cryptography-42.0.8-cp37-abi3-win_amd64.whl", hash = "sha256:57080dee41209e556a9a4ce60d229244f7a66ef52750f813bfbe18959770cfba", size = 2889090, upload-time = "2024-06-04T19:54:14.245Z" }, + { url = "https://files.pythonhosted.org/packages/60/12/f064af29190cdb1d38fe07f3db6126091639e1dece7ec77c4ff037d49193/cryptography-42.0.8-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28", size = 5901232, upload-time = "2024-06-04T19:54:52.722Z" }, + { url = "https://files.pythonhosted.org/packages/43/c2/4a3eef67e009a522711ebd8ac89424c3a7fe591ece7035d964419ad52a1d/cryptography-42.0.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4783183f7cb757b73b2ae9aed6599b96338eb957233c58ca8f49a49cc32fd5e", size = 3648711, upload-time = "2024-06-04T19:54:44.323Z" }, + { url = "https://files.pythonhosted.org/packages/49/1c/9f6d13cc8041c05eebff1154e4e71bedd1db8e174fff999054435994187a/cryptography-42.0.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0608251135d0e03111152e41f0cc2392d1e74e35703960d4190b2e0f4ca9c70", size = 3841968, upload-time = "2024-06-04T19:54:57.911Z" }, + { url = "https://files.pythonhosted.org/packages/5f/f9/c3d4f19b82bdb25a3d857fe96e7e571c981810e47e3f299cc13ac429066a/cryptography-42.0.8-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dc0fdf6787f37b1c6b08e6dfc892d9d068b5bdb671198c72072828b80bd5fe4c", size = 3633032, upload-time = "2024-06-04T19:54:48.518Z" }, + { url = "https://files.pythonhosted.org/packages/fa/e2/b7e6e8c261536c489d9cf908769880d94bd5d9a187e166b0dc838d2e6a56/cryptography-42.0.8-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7", size = 3852478, upload-time = "2024-06-04T19:54:50.599Z" }, + { url = "https://files.pythonhosted.org/packages/a2/68/e16751f6b859bc120f53fddbf3ebada5c34f0e9689d8af32884d8b2e4b4c/cryptography-42.0.8-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fff12c88a672ab9c9c1cf7b0c80e3ad9e2ebd9d828d955c126be4fd3e5578c9e", size = 3754102, upload-time = "2024-06-04T19:54:46.231Z" }, + { url = "https://files.pythonhosted.org/packages/0f/38/85c74d0ac4c540780e072b1e6f148ecb718418c1062edcb20d22f3ec5bbb/cryptography-42.0.8-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:cafb92b2bc622cd1aa6a1dce4b93307792633f4c5fe1f46c6b97cf67073ec961", size = 3925042, upload-time = "2024-06-04T19:54:34.767Z" }, + { url = "https://files.pythonhosted.org/packages/89/f4/a8b982e88eb5350407ebdbf4717b55043271d878705329e107f4783555f2/cryptography-42.0.8-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:31f721658a29331f895a5a54e7e82075554ccfb8b163a18719d342f5ffe5ecb1", size = 3738833, upload-time = "2024-06-04T19:54:05.231Z" }, + { url = "https://files.pythonhosted.org/packages/fd/2b/be327b580645927bb1a1f32d5a175b897a9b956bc085b095e15c40bac9ed/cryptography-42.0.8-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b297f90c5723d04bcc8265fc2a0f86d4ea2e0f7ab4b6994459548d3a6b992a14", size = 3938751, upload-time = "2024-06-04T19:54:37.837Z" }, + { url = "https://files.pythonhosted.org/packages/3c/d5/c6a78ffccdbe4516711ebaa9ed2c7eb6ac5dfa3dc920f2c7e920af2418b0/cryptography-42.0.8-cp39-abi3-win32.whl", hash = "sha256:2f88d197e66c65be5e42cd72e5c18afbfae3f741742070e3019ac8f4ac57262c", size = 2439281, upload-time = "2024-06-04T19:53:55.903Z" }, + { url = "https://files.pythonhosted.org/packages/a2/7b/b0d330852dd5953daee6b15f742f15d9f18e9c0154eb4cfcc8718f0436da/cryptography-42.0.8-cp39-abi3-win_amd64.whl", hash = "sha256:fa76fbb7596cc5839320000cdd5d0955313696d9511debab7ee7278fc8b5c84a", size = 2886038, upload-time = "2024-06-04T19:54:18.707Z" }, +] + +[[package]] +name = "cssselect" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/0a/c3ea9573b1dc2e151abfe88c7fe0c26d1892fe6ed02d0cdb30f0d57029d5/cssselect-1.3.0.tar.gz", hash = "sha256:57f8a99424cfab289a1b6a816a43075a4b00948c86b4dcf3ef4ee7e15f7ab0c7", size = 42870, upload-time = "2025-03-10T09:30:29.638Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/58/257350f7db99b4ae12b614a36256d9cc870d71d9e451e79c2dc3b23d7c3c/cssselect-1.3.0-py3-none-any.whl", hash = "sha256:56d1bf3e198080cc1667e137bc51de9cadfca259f03c2d4e09037b3e01e30f0d", size = 18786, upload-time = "2025-03-10T09:30:28.048Z" }, +] + +[[package]] +name = "decorator" +version = "5.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/66/0c/8d907af351aa16b42caae42f9d6aa37b900c67308052d10fdce809f8d952/decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", size = 35016, upload-time = "2022-01-07T08:20:05.666Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186", size = 9073, upload-time = "2022-01-07T08:20:03.734Z" }, +] + +[[package]] +name = "docopt" +version = "0.6.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz", hash = "sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491", size = 25901, upload-time = "2014-06-16T11:18:57.406Z" } + +[[package]] +name = "docutils" +version = "0.20.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1f/53/a5da4f2c5739cf66290fac1431ee52aff6851c7c8ffd8264f13affd7bcdd/docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b", size = 2058365, upload-time = "2023-05-16T23:39:19.748Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/87/f238c0670b94533ac0353a4e2a1a771a0cc73277b88bff23d3ae35a256c1/docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6", size = 572666, upload-time = "2023-05-16T23:39:15.976Z" }, +] + +[[package]] +name = "et-xmlfile" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54", size = 17234, upload-time = "2024-10-25T17:25:40.039Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa", size = 18059, upload-time = "2024-10-25T17:25:39.051Z" }, +] + +[[package]] +name = "execnet" +version = "2.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bf/89/780e11f9588d9e7128a3f87788354c7946a9cbb1401ad38a48c4db9a4f07/execnet-2.1.2.tar.gz", hash = "sha256:63d83bfdd9a23e35b9c6a3261412324f964c2ec8dcd8d3c6916ee9373e0befcd", size = 166622, upload-time = "2025-11-12T09:56:37.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl", hash = "sha256:67fba928dd5a544b783f6056f449e5e3931a5c378b128bc18501f7ea79e296ec", size = 40708, upload-time = "2025-11-12T09:56:36.333Z" }, +] + +[[package]] +name = "freezegun" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/89/a9/ebf3d233893752ca282d91c88103facf6d7d05ce22978829e4e0cbc4113d/freezegun-1.2.1.tar.gz", hash = "sha256:b4c64efb275e6bc68dc6e771b17ffe0ff0f90b81a2a5189043550b6519926ba4", size = 29740, upload-time = "2022-03-18T09:06:39.435Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/cf/cb14c48cad1366bd08d5f5482b3d7ea0696b6d38a2764752d331fa8bbd22/freezegun-1.2.1-py3-none-any.whl", hash = "sha256:15103a67dfa868ad809a8f508146e396be2995172d25f927e48ce51c0bf5cb09", size = 16843, upload-time = "2022-03-18T09:06:37.473Z" }, +] + +[[package]] +name = "geoip2" +version = "2.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "maxminddb" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/68/44a14494b019a0b05a581608ae1962363a757722d4db6b8c1e2445817e19/geoip2-2.9.0.tar.gz", hash = "sha256:f7ffe9d258e71a42cf622ce6350d976de1d0312b9f2fbce3975c7d838b57ecf0", size = 459342, upload-time = "2018-05-25T20:10:03.688Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/17/bcbb7c0849492e218767e658c66fbf9e3420b6301072371547c4f7192d48/geoip2-2.9.0-py2.py3-none-any.whl", hash = "sha256:a37ddac2d200ffb97c736da8b8ba9d5d8dc47da6ec0f162a461b681ecac53a14", size = 18038, upload-time = "2018-05-25T20:10:05.867Z" }, +] + +[[package]] +name = "gevent" +version = "24.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation == 'CPython' and sys_platform == 'win32'" }, + { name = "greenlet", marker = "platform_python_implementation == 'CPython'" }, + { name = "zope-event" }, + { name = "zope-interface" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/27/24/a3a7b713acfcf1177207f49ec25c665123f8972f42bee641bcc9f32961f4/gevent-24.2.1.tar.gz", hash = "sha256:432fc76f680acf7cf188c2ee0f5d3ab73b63c1f03114c7cd8a34cebbe5aa2056", size = 6147507, upload-time = "2024-02-14T11:31:10.128Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/50/72/eb98be1cec2a3d0f46d3af49b034deb48a6d6d9a1958ee110bc2e1e600ac/gevent-24.2.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:6c47ae7d1174617b3509f5d884935e788f325eb8f1a7efc95d295c68d83cce40", size = 3007004, upload-time = "2024-02-14T11:28:20.476Z" }, + { url = "https://files.pythonhosted.org/packages/f7/14/4cc83275fcdfa1977224cc266b710dc71b810d6760f575d259ca3be7b4dd/gevent-24.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7cac622e11b4253ac4536a654fe221249065d9a69feb6cdcd4d9af3503602e0", size = 5142074, upload-time = "2024-02-14T12:09:45.269Z" }, + { url = "https://files.pythonhosted.org/packages/56/ce/583d29e524c5666f7d66116e818449bee649bba8088d0ac48bec6c006215/gevent-24.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bf5b9c72b884c6f0c4ed26ef204ee1f768b9437330422492c319470954bc4cc7", size = 5307651, upload-time = "2024-02-14T12:07:36.645Z" }, + { url = "https://files.pythonhosted.org/packages/69/e7/072dfbf5c534516dcc91367d5dd5806ec8860b66c1df26b9d603493c1adb/gevent-24.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5de3c676e57177b38857f6e3cdfbe8f38d1cd754b63200c0615eaa31f514b4f", size = 5406093, upload-time = "2024-02-14T12:10:58.794Z" }, + { url = "https://files.pythonhosted.org/packages/d9/d3/f9d0f62cb6cb0421d0da2cffd10bad13b0f5d641c57ce35927bf8554661e/gevent-24.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4faf846ed132fd7ebfbbf4fde588a62d21faa0faa06e6f468b7faa6f436b661", size = 6730420, upload-time = "2024-02-14T11:54:02.399Z" }, + { url = "https://files.pythonhosted.org/packages/5b/eb/6b0e902e29283253324fe32317b805df289f05f0ef3e9859a721d403b71e/gevent-24.2.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:368a277bd9278ddb0fde308e6a43f544222d76ed0c4166e0d9f6b036586819d9", size = 6711332, upload-time = "2024-02-14T11:59:16.68Z" }, + { url = "https://files.pythonhosted.org/packages/0d/8b/02a07125324e23d64ec342ae7a4cff8dc7271114e787317a5f219027bf1b/gevent-24.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f8a04cf0c5b7139bc6368b461257d4a757ea2fe89b3773e494d235b7dd51119f", size = 5482031, upload-time = "2024-02-14T12:25:52.872Z" }, + { url = "https://files.pythonhosted.org/packages/5f/fe/288ccd562ac20d5e4ae2624313b699ee35c76be1faa9104b414bfe714a67/gevent-24.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9d8d0642c63d453179058abc4143e30718b19a85cbf58c2744c9a63f06a1d388", size = 6812353, upload-time = "2024-02-14T12:01:19.819Z" }, + { url = "https://files.pythonhosted.org/packages/2e/90/d9fcdc22864d0cf471630071c264289b9a803892d6f55e895a69c2e3574b/gevent-24.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:94138682e68ec197db42ad7442d3cf9b328069c3ad8e4e5022e6b5cd3e7ffae5", size = 1523715, upload-time = "2024-02-14T11:31:09.195Z" }, +] + +[[package]] +name = "gitdb" +version = "4.0.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "smmap" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684, upload-time = "2025-01-02T07:20:46.413Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794, upload-time = "2025-01-02T07:20:43.624Z" }, +] + +[[package]] +name = "gitpython" +version = "3.1.46" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitdb" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/b5/59d16470a1f0dfe8c793f9ef56fd3826093fc52b3bd96d6b9d6c26c7e27b/gitpython-3.1.46.tar.gz", hash = "sha256:400124c7d0ef4ea03f7310ac2fbf7151e09ff97f2a3288d64a440c584a29c37f", size = 215371, upload-time = "2026-01-01T15:37:32.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/09/e21df6aef1e1ffc0c816f0522ddc3f6dcded766c3261813131c78a704470/gitpython-3.1.46-py3-none-any.whl", hash = "sha256:79812ed143d9d25b6d176a10bb511de0f9c67b1fa641d82097b0ab90398a2058", size = 208620, upload-time = "2026-01-01T15:37:30.574Z" }, +] + +[[package]] +name = "greenlet" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/17/14/3bddb1298b9a6786539ac609ba4b7c9c0842e12aa73aaa4d8d73ec8f8185/greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491", size = 182013, upload-time = "2023-12-21T22:02:54.659Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/2f/461615adc53ba81e99471303b15ac6b2a6daa8d2a0f7f77fd15605e16d5b/greenlet-3.0.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be", size = 273085, upload-time = "2023-12-21T22:03:01.176Z" }, + { url = "https://files.pythonhosted.org/packages/e9/55/2c3cfa3cdbb940cf7321fbcf544f0e9c74898eed43bf678abf416812d132/greenlet-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e", size = 660514, upload-time = "2023-12-21T22:29:28.62Z" }, + { url = "https://files.pythonhosted.org/packages/38/77/efb21ab402651896c74f24a172eb4d7479f9f53898bd5e56b9e20bb24ffd/greenlet-3.0.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676", size = 674295, upload-time = "2023-12-21T22:26:24.101Z" }, + { url = "https://files.pythonhosted.org/packages/74/3a/92f188ace0190f0066dca3636cf1b09481d0854c46e92ec5e29c7cefe5b1/greenlet-3.0.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc", size = 669395, upload-time = "2023-12-21T22:31:35.992Z" }, + { url = "https://files.pythonhosted.org/packages/63/0f/847ed02cdfce10f0e6e3425cd054296bddb11a17ef1b34681fa01a055187/greenlet-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230", size = 670455, upload-time = "2023-12-21T22:03:16.291Z" }, + { url = "https://files.pythonhosted.org/packages/bd/37/56b0da468a85e7704f3b2bc045015301bdf4be2184a44868c71f6dca6fe2/greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf", size = 625692, upload-time = "2023-12-21T22:03:06.294Z" }, + { url = "https://files.pythonhosted.org/packages/7c/68/b5f4084c0a252d7e9c0d95fc1cfc845d08622037adb74e05be3a49831186/greenlet-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305", size = 1152597, upload-time = "2023-12-21T22:31:00.412Z" }, + { url = "https://files.pythonhosted.org/packages/a4/fa/31e22345518adcd69d1d6ab5087a12c178aa7f3c51103f6d5d702199d243/greenlet-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6", size = 1181043, upload-time = "2023-12-21T22:04:20.032Z" }, + { url = "https://files.pythonhosted.org/packages/53/80/3d94d5999b4179d91bcc93745d1b0815b073d61be79dd546b840d17adb18/greenlet-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2", size = 293635, upload-time = "2023-12-21T22:26:01.555Z" }, +] + +[[package]] +name = "idna" +version = "3.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bf/3f/ea4b9117521a1e9c50344b909be7886dd00a519552724809bb1f486986c2/idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca", size = 175426, upload-time = "2023-11-25T15:40:54.902Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567, upload-time = "2023-11-25T15:40:52.604Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "isodate" +version = "0.7.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/4d/e940025e2ce31a8ce1202635910747e5a87cc3a6a6bb2d00973375014749/isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6", size = 29705, upload-time = "2024-10-08T23:04:11.5Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/aa/0aca39a37d3c7eb941ba736ede56d689e7be91cab5d9ca846bde3999eba6/isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15", size = 22320, upload-time = "2024-10-08T23:04:09.501Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/ff/75c28576a1d900e87eb6335b063fab47a8ef3c8b4d88524c4bf78f670cce/Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852", size = 268239, upload-time = "2022-04-28T17:21:27.579Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/c3/f068337a370801f372f2f8f6bad74a5c140f6fda3d9de154052708dd3c65/Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61", size = 133101, upload-time = "2022-04-28T17:21:25.336Z" }, +] + +[[package]] +name = "libsass" +version = "0.22.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/55/14/f1d9578dce39f890ae3c0f93db8a23e89d2a1403da81d307ffb429df7c3b/libsass-0.22.0.tar.gz", hash = "sha256:3ab5ad18e47db560f4f0c09e3d28cf3bb1a44711257488ac2adad69f4f7f8425", size = 316258, upload-time = "2022-11-12T17:58:16.198Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/be/178b03e598e86bf1faa70f9ebe4cfad236dcf159af11a39f30ac8d7ce693/libsass-0.22.0-cp36-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:f1efc1b612299c88aec9e39d6ca0c266d360daa5b19d9430bdeaffffa86993f9", size = 9443966, upload-time = "2022-11-12T18:10:10.352Z" }, + { url = "https://files.pythonhosted.org/packages/92/fd/73b8081c5bc2b11b61596f74b54d45226633313c2a4de53205da948fc01c/libsass-0.22.0-cp37-abi3-macosx_10_15_x86_64.whl", hash = "sha256:081e256ab3c5f3f09c7b8dea3bf3bf5e64a97c6995fd9eea880639b3f93a9f9a", size = 1064075, upload-time = "2022-11-12T18:10:12.761Z" }, + { url = "https://files.pythonhosted.org/packages/f5/ee/844666d66a4dbb7b81e3c0257253963091f2abec8454ce7abf6f89b409f9/libsass-0.22.0-cp37-abi3-win32.whl", hash = "sha256:89c5ce497fcf3aba1dd1b19aae93b99f68257e5f2026b731b00a872f13324c7f", size = 775665, upload-time = "2022-11-12T18:10:14.473Z" }, + { url = "https://files.pythonhosted.org/packages/43/33/ccd65ef94bf37ad01ad4f82c3426d9274eee7d448ca9c23e516d03322520/libsass-0.22.0-cp37-abi3-win_amd64.whl", hash = "sha256:65455a2728b696b62100eb5932604aa13a29f4ac9a305d95773c14aaa7200aaf", size = 880885, upload-time = "2022-11-12T18:10:16.32Z" }, + { url = "https://files.pythonhosted.org/packages/15/99/f0bbc4ccd254ad7b8e76fe878f11eb98a1931fa9bc46d599a52443641bff/libsass-0.22.0-cp38-abi3-macosx_14_0_arm64.whl", hash = "sha256:5fb2297a4754a6c8e25cfe5c015a3b51a2b6b9021b333f989bb8ce9d60eb5828", size = 982832, upload-time = "2023-12-07T04:33:42.037Z" }, +] + +[[package]] +name = "linkify-it-py" +version = "2.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "uc-micro-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2a/ae/bb56c6828e4797ba5a4821eec7c43b8bf40f69cda4d4f5f8c8a2810ec96a/linkify-it-py-2.0.3.tar.gz", hash = "sha256:68cda27e162e9215c17d786649d1da0021a451bdc436ef9e0fa0ba5234b9b048", size = 27946, upload-time = "2024-02-04T14:48:04.179Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/1e/b832de447dee8b582cac175871d2f6c3d5077cc56d5575cadba1fd1cccfa/linkify_it_py-2.0.3-py3-none-any.whl", hash = "sha256:6bcbc417b0ac14323382aef5c5192c0075bf8a9d6b41820a2b66371eac6b6d79", size = 19820, upload-time = "2024-02-04T14:48:02.496Z" }, +] + +[[package]] +name = "lxml" +version = "5.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/e2/3834472e7f18801e67a3cd6f3c203a5456d6f7f903cfb9a990e62098a2f3/lxml-5.2.1.tar.gz", hash = "sha256:3f7765e69bbce0906a7c74d5fe46d2c7a7596147318dbc08e4a2431f3060e306", size = 3675336, upload-time = "2024-04-02T18:24:57.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/05/0b308e7a470f96d3d98e71043f2d6e62458eb3bcc1cb402a193bae2eb786/lxml-5.2.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:abc25c3cab9ec7fcd299b9bcb3b8d4a1231877e425c650fa1c7576c5107ab851", size = 8563956, upload-time = "2024-04-02T18:17:00.926Z" }, + { url = "https://files.pythonhosted.org/packages/1f/a6/880a56f4a33700c24658a54609e6bf659d84b43dc007053cf6e417e0e667/lxml-5.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6935bbf153f9a965f1e07c2649c0849d29832487c52bb4a5c5066031d8b44fd5", size = 4646376, upload-time = "2024-04-02T18:17:04.911Z" }, + { url = "https://files.pythonhosted.org/packages/71/a6/733dc617906a3921cbaf59ccb889a48cc8038ef228d774033c5c84ae5baf/lxml-5.2.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d793bebb202a6000390a5390078e945bbb49855c29c7e4d56a85901326c3b5d9", size = 5053123, upload-time = "2024-04-02T18:17:09.106Z" }, + { url = "https://files.pythonhosted.org/packages/4a/6c/a0d195a7630339eb0127e20aacb1184330064cb809fdf771c1bab5caf170/lxml-5.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afd5562927cdef7c4f5550374acbc117fd4ecc05b5007bdfa57cc5355864e0a4", size = 4747766, upload-time = "2024-04-02T18:17:13.513Z" }, + { url = "https://files.pythonhosted.org/packages/a5/e6/fbe182c09f81673e8242e0a0ed8c345cc14fbba1bfdf6ea0a09fcb89f431/lxml-5.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0e7259016bc4345a31af861fdce942b77c99049d6c2107ca07dc2bba2435c1d9", size = 5320879, upload-time = "2024-04-02T18:17:17.576Z" }, + { url = "https://files.pythonhosted.org/packages/3b/fe/36b0f97404b720b5bb5167ef77710ef129c7f94b7e7551f5cc9f3e3b01fb/lxml-5.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:530e7c04f72002d2f334d5257c8a51bf409db0316feee7c87e4385043be136af", size = 4812940, upload-time = "2024-04-02T18:17:21.014Z" }, + { url = "https://files.pythonhosted.org/packages/ab/42/6b1c3cc3310c291c2f4a576c6ce67ba712b0c777809355c8fcc5c28f5239/lxml-5.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59689a75ba8d7ffca577aefd017d08d659d86ad4585ccc73e43edbfc7476781a", size = 4915888, upload-time = "2024-04-02T18:17:25.314Z" }, + { url = "https://files.pythonhosted.org/packages/d0/f1/3a0bd5064c764966e5d1dd0e75048960a7f38c833422ff5e10c8f4ad8363/lxml-5.2.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f9737bf36262046213a28e789cc82d82c6ef19c85a0cf05e75c670a33342ac2c", size = 4740296, upload-time = "2024-04-02T18:17:29.557Z" }, + { url = "https://files.pythonhosted.org/packages/5c/41/e0391ffffd68e4bcd6ca60fa4694941bf9583bd18bc0827ede5d60021e50/lxml-5.2.1-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:3a74c4f27167cb95c1d4af1c0b59e88b7f3e0182138db2501c353555f7ec57f4", size = 5347080, upload-time = "2024-04-02T18:17:32.97Z" }, + { url = "https://files.pythonhosted.org/packages/84/4c/195f220dd20814df9adfa6128fa824573efad59fbca0c33fc3890eb0e5a5/lxml-5.2.1-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:68a2610dbe138fa8c5826b3f6d98a7cfc29707b850ddcc3e21910a6fe51f6ca0", size = 4900172, upload-time = "2024-04-02T18:17:37.107Z" }, + { url = "https://files.pythonhosted.org/packages/ac/9b/f97fac2e2bacbc91d1a15f24e3bdbb52e418591109393144a943bd502d2c/lxml-5.2.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:f0a1bc63a465b6d72569a9bba9f2ef0334c4e03958e043da1920299100bc7c08", size = 4939879, upload-time = "2024-04-02T18:17:40.637Z" }, + { url = "https://files.pythonhosted.org/packages/e4/b5/379aaae618fe2f74584d0227a6a41fbe365ae8b096de5f6fad0de5be94d3/lxml-5.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c2d35a1d047efd68027817b32ab1586c1169e60ca02c65d428ae815b593e65d4", size = 4789014, upload-time = "2024-04-02T18:17:44.716Z" }, + { url = "https://files.pythonhosted.org/packages/b6/f1/07d724e3a9e03d345255a442daa8449ee6c2db250b3d19cb56a1cafecbd8/lxml-5.2.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:79bd05260359170f78b181b59ce871673ed01ba048deef4bf49a36ab3e72e80b", size = 5338633, upload-time = "2024-04-02T18:17:48.426Z" }, + { url = "https://files.pythonhosted.org/packages/2d/3b/16a14eef29671f44b432eb97867e1c37e3953256fbc40c6d8a8e7e76b675/lxml-5.2.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:865bad62df277c04beed9478fe665b9ef63eb28fe026d5dedcb89b537d2e2ea6", size = 4784765, upload-time = "2024-04-02T18:17:52.062Z" }, + { url = "https://files.pythonhosted.org/packages/77/b0/13cdbcdbd59c83b9050c11dde4609e85c3cbe2fd331f473f530949a1373b/lxml-5.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:44f6c7caff88d988db017b9b0e4ab04934f11e3e72d478031efc7edcac6c622f", size = 4928467, upload-time = "2024-04-02T18:17:55.457Z" }, + { url = "https://files.pythonhosted.org/packages/e8/af/fb093dc0f2b10e66d829764117d4188de15fea7ac33a6956be5d03048df9/lxml-5.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:71e97313406ccf55d32cc98a533ee05c61e15d11b99215b237346171c179c0b0", size = 4783603, upload-time = "2024-04-02T18:17:58.694Z" }, + { url = "https://files.pythonhosted.org/packages/07/99/681ee4f6aa7b79ce9c3401611ca8390596065723b7ba90c7db189959fb5e/lxml-5.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:057cdc6b86ab732cf361f8b4d8af87cf195a1f6dc5b0ff3de2dced242c2015e0", size = 5372882, upload-time = "2024-04-02T18:18:02.48Z" }, + { url = "https://files.pythonhosted.org/packages/60/cc/5da8e739ee63b7e6232d69f769259fd74cde01cbb7e3d9311f0ef7414eb9/lxml-5.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:f3bbbc998d42f8e561f347e798b85513ba4da324c2b3f9b7969e9c45b10f6169", size = 4871170, upload-time = "2024-04-02T18:18:06.381Z" }, + { url = "https://files.pythonhosted.org/packages/a6/76/0569b713b6eade2c73792d2325705fe34585af7a98d26ac2b59a80045c99/lxml-5.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:491755202eb21a5e350dae00c6d9a17247769c64dcf62d8c788b5c135e179dc4", size = 4959114, upload-time = "2024-04-02T18:18:10.727Z" }, + { url = "https://files.pythonhosted.org/packages/49/36/376574a1ac472c39a6ccc376f2d77f93dc58acc348e8f1d3eb8fa7dc1ae1/lxml-5.2.1-cp312-cp312-win32.whl", hash = "sha256:8de8f9d6caa7f25b204fc861718815d41cbcf27ee8f028c89c882a0cf4ae4134", size = 3487276, upload-time = "2024-04-02T18:18:15.115Z" }, + { url = "https://files.pythonhosted.org/packages/37/a5/7b2e6152aefa0632871f77a202bb68eac52037e4498a6901be0f0458ffdc/lxml-5.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:f2a9efc53d5b714b8df2b4b3e992accf8ce5bbdfe544d74d5c6766c9e1146a3a", size = 3817449, upload-time = "2024-04-02T18:18:19.234Z" }, +] + +[[package]] +name = "lxml-html-clean" +version = "0.4.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d9/cb/c9c5bb2a9c47292e236a808dd233a03531f53b626f36259dcd32b49c76da/lxml_html_clean-0.4.3.tar.gz", hash = "sha256:c9df91925b00f836c807beab127aac82575110eacff54d0a75187914f1bd9d8c", size = 21498, upload-time = "2025-10-02T20:49:24.895Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/4a/63a9540e3ca73709f4200564a737d63a4c8c9c4dd032bab8535f507c190a/lxml_html_clean-0.4.3-py3-none-any.whl", hash = "sha256:63fd7b0b9c3a2e4176611c2ca5d61c4c07ffca2de76c14059a81a2825833731e", size = 14177, upload-time = "2025-10-02T20:49:23.749Z" }, +] + +[[package]] +name = "manifestoo" +version = "1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "manifestoo-core" }, + { name = "textual" }, + { name = "typer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b2/1d/0937b4eaec56f393c2bfbfed013b7fd78d7e735bb5ef291a0d864f989545/manifestoo-1.1.tar.gz", hash = "sha256:5837e4b56f23c61ddb96bd011f6a7acff3e5e95910b8baa20b9f9a9189e1695e", size = 24307, upload-time = "2025-09-23T08:24:43.131Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/1a/096647b826caad99e2c1ab7d3e7c8ffc78afa893d8fa79324a22f7f2686a/manifestoo-1.1-py3-none-any.whl", hash = "sha256:27d35641247f4220246273a7554b43306dee668f8b14fefbce37a980ca8b3604", size = 19321, upload-time = "2025-09-23T08:24:41.609Z" }, +] + +[[package]] +name = "manifestoo-core" +version = "1.14" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fa/4c/29e74810ba49803bcf33a30371b1cfe633659a83fa44a0548c885da74a06/manifestoo_core-1.14.tar.gz", hash = "sha256:8232a43fe9988ada630cda93dc6653409cd5b5799c97fd1dd3f2c293bdc1da1f", size = 40852, upload-time = "2026-01-09T09:28:07.068Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1c/40/c238f1d4679acaeee58e110d4ef3010aeb290d97ecc4aff1761fc1f4df9a/manifestoo_core-1.14-py3-none-any.whl", hash = "sha256:3a560c760af9130a401414de88e777ad1ccffb46808a6ce201044c2be8cb876a", size = 65535, upload-time = "2026-01-09T09:28:05.67Z" }, +] + +[[package]] +name = "markdown-it-py" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, +] + +[package.optional-dependencies] +linkify = [ + { name = "linkify-it-py" }, +] + +[[package]] +name = "markupsafe" +version = "2.1.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/87/5b/aae44c6655f3801e81aa3eef09dbbf012431987ba564d7231722f68df02d/MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b", size = 19384, upload-time = "2024-02-02T16:31:22.863Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/53/bd/583bf3e4c8d6a321938c13f49d44024dbe5ed63e0a7ba127e454a66da974/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1", size = 18215, upload-time = "2024-02-02T16:30:33.081Z" }, + { url = "https://files.pythonhosted.org/packages/48/d6/e7cd795fc710292c3af3a06d80868ce4b02bfbbf370b7cee11d282815a2a/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4", size = 14069, upload-time = "2024-02-02T16:30:34.148Z" }, + { url = "https://files.pythonhosted.org/packages/51/b5/5d8ec796e2a08fc814a2c7d2584b55f889a55cf17dd1a90f2beb70744e5c/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee", size = 29452, upload-time = "2024-02-02T16:30:35.149Z" }, + { url = "https://files.pythonhosted.org/packages/0a/0d/2454f072fae3b5a137c119abf15465d1771319dfe9e4acbb31722a0fff91/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5", size = 28462, upload-time = "2024-02-02T16:30:36.166Z" }, + { url = "https://files.pythonhosted.org/packages/2d/75/fd6cb2e68780f72d47e6671840ca517bda5ef663d30ada7616b0462ad1e3/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b", size = 27869, upload-time = "2024-02-02T16:30:37.834Z" }, + { url = "https://files.pythonhosted.org/packages/b0/81/147c477391c2750e8fc7705829f7351cf1cd3be64406edcf900dc633feb2/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a", size = 33906, upload-time = "2024-02-02T16:30:39.366Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ff/9a52b71839d7a256b563e85d11050e307121000dcebc97df120176b3ad93/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f", size = 32296, upload-time = "2024-02-02T16:30:40.413Z" }, + { url = "https://files.pythonhosted.org/packages/88/07/2dc76aa51b481eb96a4c3198894f38b480490e834479611a4053fbf08623/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169", size = 33038, upload-time = "2024-02-02T16:30:42.243Z" }, + { url = "https://files.pythonhosted.org/packages/96/0c/620c1fb3661858c0e37eb3cbffd8c6f732a67cd97296f725789679801b31/MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad", size = 16572, upload-time = "2024-02-02T16:30:43.326Z" }, + { url = "https://files.pythonhosted.org/packages/3f/14/c3554d512d5f9100a95e737502f4a2323a1959f6d0d01e0d0997b35f7b10/MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb", size = 17127, upload-time = "2024-02-02T16:30:44.418Z" }, +] + +[[package]] +name = "maxminddb" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/6e/6adbb0b2280a853e8b3344737fea5167e8a2a2ff67168555589b7278e2e8/maxminddb-3.0.0.tar.gz", hash = "sha256:9792b19625945dff146e2e3187f9e470b82330a912f7cea5581b8bd5af30da8b", size = 199784, upload-time = "2025-10-15T20:50:07.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/df/dec231686a814f9e279afb39f3e27091770d970964bb94e7bfc1fdf01428/maxminddb-3.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bcf83c60a44ec5dfab9e5d3a0c2347ee429d31fa89f88aa283d8551fd5e2c37a", size = 54352, upload-time = "2025-10-15T20:48:51.488Z" }, + { url = "https://files.pythonhosted.org/packages/14/e3/efb6d621a8940371ecbf393f84fde01f0521116bc281c40124292a593198/maxminddb-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:56856d0fadab323fb5dc3fa69bc4cb975242133cab1df2c710779738dadda75d", size = 36328, upload-time = "2025-10-15T20:48:52.85Z" }, + { url = "https://files.pythonhosted.org/packages/51/e8/17cbe454829befb32fec83745141bb6f9ef0b593d53c4e333e938d83ed26/maxminddb-3.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1bd05d919787719fc1026d53b0e7462cf0c389534620e407676ecf61c2d289bb", size = 36174, upload-time = "2025-10-15T20:48:53.874Z" }, + { url = "https://files.pythonhosted.org/packages/ae/1d/5492205210570d851d5a74f5c9c01022993edc74296eb792c890318eff25/maxminddb-3.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:29515dc3606d1d8fffdb4025dccf01c93d16651683e9c6d8611892a4c9f2566d", size = 101153, upload-time = "2025-10-15T20:48:55.013Z" }, + { url = "https://files.pythonhosted.org/packages/a6/07/f96b5e4fdfdd2cc7a9724f3fa40b6bc282c9d9bdcf85b1920a0dee50c00b/maxminddb-3.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:52b5edc32894643c93279de2d889c0b98906277e7e91cbba709bc55f5500ecca", size = 99465, upload-time = "2025-10-15T20:48:56.198Z" }, + { url = "https://files.pythonhosted.org/packages/d7/30/ef2c167277292ce360bcd2a11e0fa9fe2e4e67e7c7b49fff2eab7caae787/maxminddb-3.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0a095ce04e404315f9d47a186a7d96b11a283430d811ba6b0530167233100b95", size = 98395, upload-time = "2025-10-15T20:48:57.489Z" }, + { url = "https://files.pythonhosted.org/packages/04/c9/71ce286a4ba12ec74b094d1a627d57a306349f4f23ce66d3ec2eca045e9f/maxminddb-3.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1d3645a44c392d9ffdea4d2252d70b2910eee47d56b8305da0c0923a63e895d6", size = 97320, upload-time = "2025-10-15T20:48:58.7Z" }, + { url = "https://files.pythonhosted.org/packages/da/4a/3e3f24f876242dd53a8a95250669e2f08b8cd8bc4640e947c982efcdaca6/maxminddb-3.0.0-cp312-cp312-win32.whl", hash = "sha256:c0e6d54da5d85d38e674fee9b04b1ad9212c38cb57adcc7c86bb4ed71b2b6555", size = 35481, upload-time = "2025-10-15T20:49:00.755Z" }, + { url = "https://files.pythonhosted.org/packages/71/de/56feda63d5d8d896c2dcfa6ef9754a429fa2c5353fa5f0c32ed1f46fa004/maxminddb-3.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:4931ee0cbba030e1b729599e485aca438b668432ccd1eb73770c93bbc38f2b60", size = 37295, upload-time = "2025-10-15T20:49:01.993Z" }, + { url = "https://files.pythonhosted.org/packages/87/4a/87c86516dee431a9e6cdded7eb865b5b7fc7c73b17262a50c75e2da5c9b6/maxminddb-3.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:f55fb5c607dc4ddab7eba67da92d75921ef7d8e682ab47d21935566dc6990021", size = 34263, upload-time = "2025-10-15T20:49:03.237Z" }, +] + +[[package]] +name = "mdit-py-plugins" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b2/fd/a756d36c0bfba5f6e39a1cdbdbfdd448dc02692467d83816dff4592a1ebc/mdit_py_plugins-0.5.0.tar.gz", hash = "sha256:f4918cb50119f50446560513a8e311d574ff6aaed72606ddae6d35716fe809c6", size = 44655, upload-time = "2025-08-11T07:25:49.083Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/86/dd6e5db36df29e76c7a7699123569a4a18c1623ce68d826ed96c62643cae/mdit_py_plugins-0.5.0-py3-none-any.whl", hash = "sha256:07a08422fc1936a5d26d146759e9155ea466e842f5ab2f7d2266dd084c8dab1f", size = 57205, upload-time = "2025-08-11T07:25:47.597Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "num2words" +version = "0.5.13" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docopt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0d/de/2030c83f7b6e241e1de375002101232cf9644080f5dcb229765486e1c9d2/num2words-0.5.13.tar.gz", hash = "sha256:a3064716fbbf90d75c449450cebfbc73a6a13e63b2531d09bdecc3ab1a2209cf", size = 188372, upload-time = "2023-10-18T15:06:00.44Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/f0/ca1228af2bcbce2fdf2b23d58643c84253b88a3c1cd9dba391ca683c4b21/num2words-0.5.13-py3-none-any.whl", hash = "sha256:39e662c663f0a7e15415431ea68eb3dc711b49e3b776d93403e1da0a219ca4ee", size = 143302, upload-time = "2023-10-18T15:05:58.348Z" }, +] + +[[package]] +name = "oca-custom" +version = "18.0" +source = { editable = "." } +dependencies = [ + { name = "asn1crypto" }, + { name = "babel" }, + { name = "cbor2" }, + { name = "chardet" }, + { name = "cryptography" }, + { name = "decorator" }, + { name = "docutils" }, + { name = "freezegun" }, + { name = "geoip2" }, + { name = "gevent" }, + { name = "greenlet" }, + { name = "idna" }, + { name = "jinja2" }, + { name = "libsass" }, + { name = "lxml" }, + { name = "lxml-html-clean" }, + { name = "markupsafe" }, + { name = "num2words" }, + { name = "odoo" }, + { name = "odoo-addon-account-banking-pain-base" }, + { name = "odoo-addon-account-banking-sepa-credit-transfer" }, + { name = "odoo-addon-account-credit-control" }, + { name = "odoo-addon-account-financial-report" }, + { name = "odoo-addon-account-lock-to-date" }, + { name = "odoo-addon-account-payment-mode" }, + { name = "odoo-addon-account-payment-order" }, + { name = "odoo-addon-account-payment-partner" }, + { name = "odoo-addon-account-payment-sale" }, + { name = "odoo-addon-account-payment-unece" }, + { name = "odoo-addon-account-reconcile-oca" }, + { name = "odoo-addon-account-statement-import-base" }, + { name = "odoo-addon-account-statement-import-file" }, + { name = "odoo-addon-account-statement-import-online-paypal" }, + { name = "odoo-addon-account-tax-unece" }, + { name = "odoo-addon-account-usability" }, + { name = "odoo-addon-base-technical-features" }, + { name = "odoo-addon-base-ubl" }, + { name = "odoo-addon-base-unece" }, + { name = "odoo-addon-bi-sql-editor" }, + { name = "odoo-addon-currency-rate-update" }, + { name = "odoo-addon-date-range" }, + { name = "odoo-addon-disable-odoo-online" }, + { name = "odoo-addon-document-knowledge" }, + { name = "odoo-addon-document-page" }, + { name = "odoo-addon-github-connector" }, + { name = "odoo-addon-github-connector-odoo" }, + { name = "odoo-addon-membership-extension" }, + { name = "odoo-addon-mis-builder" }, + { name = "odoo-addon-mis-builder-budget" }, + { name = "odoo-addon-mis-builder-cash-flow" }, + { name = "odoo-addon-mis-builder-demo" }, + { name = "odoo-addon-multi-step-wizard" }, + { name = "odoo-addon-partner-contact-access-link" }, + { name = "odoo-addon-partner-statement" }, + { name = "odoo-addon-project-role" }, + { name = "odoo-addon-project-task-add-very-high" }, + { name = "odoo-addon-report-xlsx" }, + { name = "odoo-addon-report-xlsx-helper" }, + { name = "odoo-addon-sentry" }, + { name = "odoo-addon-server-action-mass-edit" }, + { name = "odoo-addon-sql-request-abstract" }, + { name = "odoo-addon-uom-unece" }, + { name = "odoo-addon-web-refresher" }, + { name = "odoo-addon-web-responsive" }, + { name = "odoo-addon-web-search-with-and" }, + { name = "odoo-addon-web-widget-dropdown-dynamic" }, + { name = "ofxparse" }, + { name = "openpyxl" }, + { name = "passlib" }, + { name = "pillow" }, + { name = "polib" }, + { name = "psutil" }, + { name = "psycopg2" }, + { name = "pyopenssl" }, + { name = "pypdf2" }, + { name = "pyserial" }, + { name = "python-dateutil" }, + { name = "python-ldap" }, + { name = "python-stdnum" }, + { name = "pytz" }, + { name = "pyusb" }, + { name = "qrcode" }, + { name = "reportlab" }, + { name = "requests" }, + { name = "rjsmin" }, + { name = "urllib3" }, + { name = "vobject" }, + { name = "werkzeug" }, + { name = "xlrd" }, + { name = "xlsxwriter" }, + { name = "xlwt" }, + { name = "zeep" }, +] + +[package.dev-dependencies] +dev = [ + { name = "manifestoo" }, + { name = "odoo-test-helper" }, + { name = "parameterized" }, + { name = "pytest" }, + { name = "pytest-cov" }, + { name = "pytest-odoo" }, + { name = "pytest-xdist" }, + { name = "websocket-client" }, +] + +[package.metadata] +requires-dist = [ + { name = "asn1crypto", specifier = "==1.5.1" }, + { name = "babel", specifier = "==2.10.3" }, + { name = "cbor2", specifier = "==5.6.2" }, + { name = "chardet", specifier = "==5.2.0" }, + { name = "cryptography", specifier = "==42.0.8" }, + { name = "decorator", specifier = "==5.1.1" }, + { name = "docutils", specifier = "==0.20.1" }, + { name = "freezegun", specifier = "==1.2.1" }, + { name = "geoip2", specifier = "==2.9.0" }, + { name = "gevent", specifier = "==24.2.1" }, + { name = "greenlet", specifier = "==3.0.3" }, + { name = "idna", specifier = "==3.6" }, + { name = "jinja2", specifier = "==3.1.2" }, + { name = "libsass", specifier = "==0.22.0" }, + { name = "lxml", specifier = "==5.2.1" }, + { name = "lxml-html-clean" }, + { name = "markupsafe", specifier = "==2.1.5" }, + { name = "num2words", specifier = "==0.5.13" }, + { name = "odoo", git = "https://github.com/OCA/OCB" }, + { name = "odoo-addon-account-banking-pain-base", specifier = "==18.0.*" }, + { name = "odoo-addon-account-banking-sepa-credit-transfer", specifier = "==18.0.*" }, + { name = "odoo-addon-account-credit-control", specifier = "==18.0.*" }, + { name = "odoo-addon-account-financial-report", specifier = "==18.0.*" }, + { name = "odoo-addon-account-lock-to-date", specifier = "==18.0.*" }, + { name = "odoo-addon-account-payment-mode", specifier = "==18.0.*" }, + { name = "odoo-addon-account-payment-order", specifier = "==18.0.*" }, + { name = "odoo-addon-account-payment-partner", specifier = "==18.0.*" }, + { name = "odoo-addon-account-payment-sale", specifier = "==18.0.*" }, + { name = "odoo-addon-account-payment-unece", specifier = "==18.0.*" }, + { name = "odoo-addon-account-reconcile-oca", specifier = "==18.0.*" }, + { name = "odoo-addon-account-statement-import-base", specifier = "==18.0.*" }, + { name = "odoo-addon-account-statement-import-file", specifier = "==18.0.*" }, + { name = "odoo-addon-account-statement-import-online-paypal", specifier = "==18.0.*" }, + { name = "odoo-addon-account-tax-unece", specifier = "==18.0.*" }, + { name = "odoo-addon-account-usability", specifier = "==18.0.*" }, + { name = "odoo-addon-base-technical-features", specifier = "==18.0.*" }, + { name = "odoo-addon-base-ubl", specifier = "==18.0.*" }, + { name = "odoo-addon-base-unece", specifier = "==18.0.*" }, + { name = "odoo-addon-bi-sql-editor", specifier = "==18.0.*" }, + { name = "odoo-addon-currency-rate-update", specifier = "==18.0.*" }, + { name = "odoo-addon-date-range", specifier = "==18.0.*" }, + { name = "odoo-addon-disable-odoo-online", specifier = "==18.0.*" }, + { name = "odoo-addon-document-knowledge", specifier = "==18.0.*" }, + { name = "odoo-addon-document-page", specifier = "==18.0.*" }, + { name = "odoo-addon-github-connector", specifier = "==18.0.*" }, + { name = "odoo-addon-github-connector-odoo", specifier = "==18.0.*" }, + { name = "odoo-addon-membership-extension", specifier = "==18.0.*" }, + { name = "odoo-addon-mis-builder", specifier = "==18.0.*" }, + { name = "odoo-addon-mis-builder-budget", specifier = "==18.0.*" }, + { name = "odoo-addon-mis-builder-cash-flow", specifier = "==18.0.*" }, + { name = "odoo-addon-mis-builder-demo", specifier = "==18.0.*" }, + { name = "odoo-addon-multi-step-wizard", specifier = "==18.0.*" }, + { name = "odoo-addon-partner-contact-access-link", specifier = "==18.0.*" }, + { name = "odoo-addon-partner-statement", specifier = "==18.0.*" }, + { name = "odoo-addon-project-role", specifier = "==18.0.*" }, + { name = "odoo-addon-project-task-add-very-high", specifier = "==18.0.*" }, + { name = "odoo-addon-report-xlsx", specifier = "==18.0.*" }, + { name = "odoo-addon-report-xlsx-helper", specifier = "==18.0.*" }, + { name = "odoo-addon-sentry", specifier = "==18.0.*" }, + { name = "odoo-addon-server-action-mass-edit", specifier = "==18.0.*" }, + { name = "odoo-addon-sql-request-abstract", specifier = "==18.0.*" }, + { name = "odoo-addon-uom-unece", specifier = "==18.0.*" }, + { name = "odoo-addon-web-refresher", specifier = "==18.0.*" }, + { name = "odoo-addon-web-responsive", specifier = "==18.0.*" }, + { name = "odoo-addon-web-search-with-and", specifier = "==18.0.*" }, + { name = "odoo-addon-web-widget-dropdown-dynamic", specifier = "==18.0.*" }, + { name = "ofxparse", specifier = "==0.21" }, + { name = "openpyxl", specifier = "==3.1.2" }, + { name = "passlib", specifier = "==1.7.4" }, + { name = "pillow", specifier = "==10.2.0" }, + { name = "polib", specifier = "==1.1.1" }, + { name = "psutil", specifier = "==5.9.8" }, + { name = "psycopg2", specifier = "==2.9.9" }, + { name = "pyopenssl", specifier = "==24.1.0" }, + { name = "pypdf2", specifier = "==2.12.1" }, + { name = "pyserial", specifier = "==3.5" }, + { name = "python-dateutil", specifier = "==2.8.2" }, + { name = "python-ldap", specifier = "==3.4.4" }, + { name = "python-stdnum", specifier = "==1.19" }, + { name = "pytz" }, + { name = "pyusb", specifier = "==1.2.1" }, + { name = "qrcode", specifier = "==7.4.2" }, + { name = "reportlab", specifier = "==4.1.0" }, + { name = "requests", specifier = "==2.31.0" }, + { name = "rjsmin", specifier = "==1.2.0" }, + { name = "urllib3", specifier = "==2.0.7" }, + { name = "vobject", specifier = "==0.9.6.1" }, + { name = "werkzeug", specifier = "==3.0.1" }, + { name = "xlrd", specifier = "==2.0.1" }, + { name = "xlsxwriter", specifier = "==3.1.9" }, + { name = "xlwt", specifier = "==1.3.0" }, + { name = "zeep", specifier = "==4.2.1" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "manifestoo", specifier = ">=1.0" }, + { name = "odoo-test-helper" }, + { name = "parameterized", specifier = ">=0.9.0" }, + { name = "pytest", specifier = ">8" }, + { name = "pytest-cov", specifier = ">=5.0.0" }, + { name = "pytest-odoo", specifier = "==2.1.2" }, + { name = "pytest-xdist", specifier = ">=3.6.1" }, + { name = "websocket-client" }, +] + +[[package]] +name = "odoo" +version = "18.0" +source = { git = "https://github.com/OCA/OCB#16055b5031886551238c14d54523701bcf35c0d7" } +dependencies = [ + { name = "asn1crypto" }, + { name = "babel" }, + { name = "cbor2" }, + { name = "chardet" }, + { name = "cryptography" }, + { name = "decorator" }, + { name = "docutils" }, + { name = "geoip2" }, + { name = "gevent" }, + { name = "greenlet" }, + { name = "idna" }, + { name = "jinja2" }, + { name = "libsass" }, + { name = "lxml" }, + { name = "markupsafe" }, + { name = "num2words" }, + { name = "ofxparse" }, + { name = "openpyxl" }, + { name = "passlib" }, + { name = "pillow" }, + { name = "polib" }, + { name = "psutil" }, + { name = "psycopg2" }, + { name = "pyopenssl" }, + { name = "pypdf2" }, + { name = "pyserial" }, + { name = "python-dateutil" }, + { name = "python-stdnum" }, + { name = "pytz" }, + { name = "pyusb" }, + { name = "qrcode" }, + { name = "reportlab" }, + { name = "requests" }, + { name = "rjsmin" }, + { name = "urllib3" }, + { name = "vobject" }, + { name = "werkzeug" }, + { name = "xlrd" }, + { name = "xlsxwriter" }, + { name = "xlwt" }, + { name = "zeep" }, +] + +[[package]] +name = "odoo-addon-account-banking-pain-base" +version = "18.0.1.1.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml" }, + { name = "odoo" }, + { name = "odoo-addon-account-payment-order" }, + { name = "unidecode" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/4e/88f6c63cc1bdd49f2fb5fac07f953934bb30a74a54bf3eaca7e7593227da/odoo_addon_account_banking_pain_base-18.0.1.1.0.3-py3-none-any.whl", hash = "sha256:46f6c0537f8517ba733ea0a20de58f82a5c113a1bfea65a974e99c622a3f4ea0", size = 124932, upload-time = "2025-12-12T02:42:16.987Z" }, +] + +[[package]] +name = "odoo-addon-account-banking-sepa-credit-transfer" +version = "18.0.1.0.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-account-banking-pain-base" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/d6/cb/68797404697c6059b1805959c9ecd926de553c1db6da90f8cfd99ec79601/odoo_addon_account_banking_sepa_credit_transfer-18.0.1.0.0.2-py3-none-any.whl", hash = "sha256:55806488e3899e271d338baa3690bf607f2709fdd4681429080eaa98d007a721", size = 80663, upload-time = "2025-07-17T18:13:10.813Z" }, +] + +[[package]] +name = "odoo-addon-account-credit-control" +version = "18.0.2.0.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/de/8b0eecf530ff34a15203f66d2336a20b8150fb4786bd9b3a54d2af5c5539/odoo_addon_account_credit_control-18.0.2.0.1.1-py3-none-any.whl", hash = "sha256:a2c1ebecae47d19051cfd768d51ab80751e8056613cd832153df69294807c24b", size = 736645, upload-time = "2025-12-10T02:50:26.968Z" }, +] + +[[package]] +name = "odoo-addon-account-financial-report" +version = "18.0.1.4.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-date-range" }, + { name = "odoo-addon-report-xlsx" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/c4/b93659c2ea20102575483ec464f61608d925c02ca608fe27fa54331aaa4b/odoo_addon_account_financial_report-18.0.1.4.3-py3-none-any.whl", hash = "sha256:977b185350df96d3f08c7716a9d2a7ef816978e8ed0e819f61e42641dfb83469", size = 336394, upload-time = "2025-12-31T10:54:58.032Z" }, +] + +[[package]] +name = "odoo-addon-account-lock-to-date" +version = "18.0.1.0.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/2f/74c4a42ef9f237acc303847d36f0c950ff23e73a17e3cfec2286e8cd09ab/odoo_addon_account_lock_to_date-18.0.1.0.0.2-py3-none-any.whl", hash = "sha256:2319d2ce913d151073e9239105e33c79ccea11402d89cb9d60d39a7c5357ccf2", size = 38568, upload-time = "2025-08-13T11:21:43.215Z" }, +] + +[[package]] +name = "odoo-addon-account-payment-method-base" +version = "18.0.1.0.0.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/8b/90/6bd94d2cf8a42b09c4c38bf51fc3546b52c0e0c33c1b47f9e63e5abcd859/odoo_addon_account_payment_method_base-18.0.1.0.0.7-py3-none-any.whl", hash = "sha256:6cf8a189f564978bbc50d154659ae779c380438a5ada46e2fc9189181bb2e895", size = 25486, upload-time = "2025-06-25T02:38:00.988Z" }, +] + +[[package]] +name = "odoo-addon-account-payment-mode" +version = "18.0.1.0.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/bc/4d8e57ea36c77490f8802d772c12e14a737936f53ee6e74b99d1a563bcaa/odoo_addon_account_payment_mode-18.0.1.0.2.1-py3-none-any.whl", hash = "sha256:dc6a5f7a62481b233c0baa4ccc5647f47de4e2a2f42d591bfa86216e35158372", size = 105293, upload-time = "2025-12-18T02:43:23.617Z" }, +] + +[[package]] +name = "odoo-addon-account-payment-order" +version = "18.0.1.2.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-account-payment-partner" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/95/1490ae46bb31b9772fdbb7395a97d030696e21109a1c1248f8147de3ff8c/odoo_addon_account_payment_order-18.0.1.2.1.2-py3-none-any.whl", hash = "sha256:00dc4206123175beccbe25edffd4bc74d5ea3b7fafc72c8ea355eb3305ebc9e8", size = 336887, upload-time = "2025-12-04T02:42:19.254Z" }, +] + +[[package]] +name = "odoo-addon-account-payment-partner" +version = "18.0.1.0.2.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-account-payment-mode" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/09/d0/3eb1999d7e26d0bac480afbe4b01d583a54df19be66b87121a708e0c123b/odoo_addon_account_payment_partner-18.0.1.0.2.3-py3-none-any.whl", hash = "sha256:91dc339f4ef08a7a101641c403f89457e45e4faef982e655d3d7313fca850791", size = 81657, upload-time = "2025-12-18T02:43:30.854Z" }, +] + +[[package]] +name = "odoo-addon-account-payment-sale" +version = "18.0.1.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-account-payment-partner" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/d6/c9/8151dc64f4b575bb9ca820c3b039acf3eb2948793ddaf76c8522a22b8ffb/odoo_addon_account_payment_sale-18.0.1.0.2-py3-none-any.whl", hash = "sha256:16d0d5c95c1f9c4af4fa8f76ace2c02fbc32991e7b089df7c9cdd44c70a006be", size = 40136, upload-time = "2025-12-17T19:36:36.812Z" }, +] + +[[package]] +name = "odoo-addon-account-payment-unece" +version = "18.0.1.0.0.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-account-payment-method-base" }, + { name = "odoo-addon-base-unece" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/5c/02ff5f7ad1c251fd6895a4a7f2c1886a923c065fafda4be5d3f4ca6e4ac5/odoo_addon_account_payment_unece-18.0.1.0.0.5-py3-none-any.whl", hash = "sha256:247cdac13c6caa518c81431dd8e12e6023c0161615ac220a9c897488d7163c48", size = 34263, upload-time = "2025-06-04T08:55:52.986Z" }, +] + +[[package]] +name = "odoo-addon-account-reconcile-model-oca" +version = "18.0.1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/6d/a4bc98c2ea2d214e8139e8ff7e469584e96eb17cff5b0ed881f7caf3f6cc/odoo_addon_account_reconcile_model_oca-18.0.1.1.1-py3-none-any.whl", hash = "sha256:5ccfee3435a588578b1d1db0b8e8b83c8f5923ed69aa5490dfd0007ebfa5f874", size = 46906, upload-time = "2025-12-10T12:36:30.963Z" }, +] + +[[package]] +name = "odoo-addon-account-reconcile-oca" +version = "18.0.1.1.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-account-reconcile-model-oca" }, + { name = "odoo-addon-account-statement-base" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/1a/a242c1729a11db6a0e403a5975de0e129d3b812262bf11fd8c77cffb832a/odoo_addon_account_reconcile_oca-18.0.1.1.5-py3-none-any.whl", hash = "sha256:01cd1a239a6e33003fcaa9c4204ef76ef7d0cecdbe01c7752ad0bd613323e763", size = 126336, upload-time = "2026-01-09T10:20:50.002Z" }, +] + +[[package]] +name = "odoo-addon-account-statement-base" +version = "18.0.1.2.0.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/9b/30179382856398fd32d39a0b24d4b808a56f816facd1e366620d36afb9de/odoo_addon_account_statement_base-18.0.1.2.0.5-py3-none-any.whl", hash = "sha256:50d7466f4e18fe1578d6578fdf79f75fe0fdc0f2b4429673f5230bae9a5110cb", size = 37831, upload-time = "2025-12-12T02:40:49.764Z" }, +] + +[[package]] +name = "odoo-addon-account-statement-import-base" +version = "18.0.1.0.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-account-statement-base" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/34/dba25e5f7a625ad4950ee52d9f00fe8bd1dfda984d205c6b42e8b43c16b2/odoo_addon_account_statement_import_base-18.0.1.0.0.3-py3-none-any.whl", hash = "sha256:b91ff95fec71c6819e4a16c42f82ba5c0a929e7725166c65fc5df730080d4ecb", size = 29667, upload-time = "2024-12-18T02:41:12.302Z" }, +] + +[[package]] +name = "odoo-addon-account-statement-import-file" +version = "18.0.1.0.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-account-statement-import-base" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/0b/0bd1bb4faa02a80d31ed6baa1ffd779e7675e7b28a815aec85e5eb091620/odoo_addon_account_statement_import_file-18.0.1.0.2.2-py3-none-any.whl", hash = "sha256:6652bdb94a676dbd43af067866d188b19a9452b91e152566924bb99cca61a9c2", size = 343336, upload-time = "2025-09-03T02:40:22.566Z" }, +] + +[[package]] +name = "odoo-addon-account-statement-import-online" +version = "18.0.1.1.2.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-account-statement-import-base" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/21/9c/51734ea7e7abc488241021121706a8eb91f1b4f32fc0a9840a593bc15963/odoo_addon_account_statement_import_online-18.0.1.1.2.3-py3-none-any.whl", hash = "sha256:d198286906d32d0a7a480f86c9722b7150507515d86fe50a58f23462553384a7", size = 69422, upload-time = "2025-12-12T02:43:08.174Z" }, +] + +[[package]] +name = "odoo-addon-account-statement-import-online-paypal" +version = "18.0.1.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-account-statement-import-online" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/50/f6/fcce33781f7fb924584cc0b2107322a45a17db216afa5c363b673296b752/odoo_addon_account_statement_import_online_paypal-18.0.1.0.2-py3-none-any.whl", hash = "sha256:b53f8baae23caf8d52a01226bfe7c686eee2544c26988bc73b0f0b41144ec967", size = 50836, upload-time = "2025-10-07T13:56:22.993Z" }, +] + +[[package]] +name = "odoo-addon-account-tax-unece" +version = "18.0.1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-base-unece" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/93/14419e73a0ef44e89f9af131bedd79487428ba15ca1a0f1660cb408f78bc/odoo_addon_account_tax_unece-18.0.1.1.0-py3-none-any.whl", hash = "sha256:87304879668b6341edebfc610112ba5169262f6cc8877240e2c7c19677e3e5a5", size = 37115, upload-time = "2025-12-09T18:17:12.415Z" }, +] + +[[package]] +name = "odoo-addon-account-usability" +version = "18.0.1.1.0.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/08/1a86c102766c5ba692aea26ede593f076f1a81951f07280eaecc6ef4981b/odoo_addon_account_usability-18.0.1.1.0.11-py3-none-any.whl", hash = "sha256:c2b1bec982de59112616c57baad7d492c0613c482a741dfc40f6c7f696494616", size = 53409, upload-time = "2026-01-06T02:34:52.431Z" }, +] + +[[package]] +name = "odoo-addon-base-technical-features" +version = "18.0.1.0.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/ff/d602e8fd8d44c8584ae096d9e2dc925a0d6f657974b84366f7414a0cc988/odoo_addon_base_technical_features-18.0.1.0.2.1-py3-none-any.whl", hash = "sha256:dc987e80308d5e06b4db02764b057048fe28f9ce09a0334327f8bda18331c6e0", size = 86058, upload-time = "2025-02-05T03:34:34.544Z" }, +] + +[[package]] +name = "odoo-addon-base-ubl" +version = "18.0.1.0.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/b8/24/806be7d1fdd5b3b5c242398af6ccffcf2493e9164462e61596e8d718b7d8/odoo_addon_base_ubl-18.0.1.0.0.3-py3-none-any.whl", hash = "sha256:3687192cd98b7efa4bf0fb1f7eb1f8cf2230810f5a00a8b7b46edd6dd6958c62", size = 1258219, upload-time = "2025-06-13T07:58:34.868Z" }, +] + +[[package]] +name = "odoo-addon-base-unece" +version = "18.0.1.0.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/ad/72e2ea3cbf25db6a2819d67667ec983a38fe184bb8cb829cb47b98809497/odoo_addon_base_unece-18.0.1.0.0.3-py3-none-any.whl", hash = "sha256:ccce68b738462a0148234be8a6c6ddf6886ae10307544735c8b46e44b3751ded", size = 30647, upload-time = "2024-12-28T02:40:08.717Z" }, +] + +[[package]] +name = "odoo-addon-bi-sql-editor" +version = "18.0.1.0.4.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-sql-request-abstract" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/58/b2af78fb5b5a4cdca2bd4e6cc07374db22356a0769beec4b64e5699b0c0a/odoo_addon_bi_sql_editor-18.0.1.0.4.3-py3-none-any.whl", hash = "sha256:e7a51c505e920d6d02297055fb28ac3759cb54bc63751fefe054cf42ada20003", size = 468551, upload-time = "2025-10-30T03:58:45.658Z" }, +] + +[[package]] +name = "odoo-addon-currency-rate-update" +version = "18.0.1.0.1.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/7e/d17283c919afe653dc786807a8c20e4b5fa438cf6be3c31e9c623cd027a7/odoo_addon_currency_rate_update-18.0.1.0.1.15-py3-none-any.whl", hash = "sha256:ffe96c78c728c03d2780f5033663648794731e9151a8202ad86bc09ac7d0fc22", size = 245564, upload-time = "2025-11-27T02:51:35.641Z" }, +] + +[[package]] +name = "odoo-addon-date-range" +version = "18.0.1.0.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/fa/46e5f94d4eac74a6a171ba3b3f30f3a8a7f9c7e0efbb4c414ee854846c14/odoo_addon_date_range-18.0.1.0.0.9-py3-none-any.whl", hash = "sha256:d0ea2f2e463f65045027908c26ee666fd737d8dc0be5f658cf05d1513a08d1c7", size = 2302276, upload-time = "2025-11-25T04:11:08.174Z" }, +] + +[[package]] +name = "odoo-addon-disable-odoo-online" +version = "18.0.1.0.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/42/d66ff71ec260163e94e449a8db9b5c9fc73f9f6166c15466ea345d387d36/odoo_addon_disable_odoo_online-18.0.1.0.0.2-py3-none-any.whl", hash = "sha256:6a3722c83cd1e01eb7b2698d1318ce66e81068b705c167d2c7ab44cc1981de75", size = 25394, upload-time = "2024-12-06T16:33:06.916Z" }, +] + +[[package]] +name = "odoo-addon-document-knowledge" +version = "18.0.1.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/c9/a1/b6b0ca1a29ba8c9ed40b44c0d4f4810d63073dccc29f9c86ef43ad337dc8/odoo_addon_document_knowledge-18.0.1.0.2-py3-none-any.whl", hash = "sha256:9d1cf8f6929c3782215270609fad2f3d860daa3a598a507a7672f0e7e5ecbfb2", size = 123061, upload-time = "2025-10-01T05:29:27.319Z" }, +] + +[[package]] +name = "odoo-addon-document-page" +version = "18.0.2.1.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-document-knowledge" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/5a/5f2957ed64a1a0ff78af8cd65859987990fdf6e8f35e1e7ca4f16068ffc1/odoo_addon_document_page-18.0.2.1.0.1-py3-none-any.whl", hash = "sha256:7382cfe55a696fc39ace4d571d24674a08f0e7ec4f7b961050b92a8b1e7ec4b3", size = 920357, upload-time = "2025-12-18T03:10:32.833Z" }, +] + +[[package]] +name = "odoo-addon-github-connector" +version = "18.0.1.0.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitpython" }, + { name = "odoo" }, + { name = "pathspec" }, + { name = "pygithub" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/15/f3bbdd74884e80a828c185060226f3a0681c275aa8a782b1fabbdea33501/odoo_addon_github_connector-18.0.1.0.0.2-py3-none-any.whl", hash = "sha256:a49d9a18f63bd69933f6d5759ea2529b67f04f9ab19a22839cdafb2aafebadc8", size = 583615, upload-time = "2025-05-21T11:47:23.966Z" }, +] + +[[package]] +name = "odoo-addon-github-connector-odoo" +version = "18.0.1.0.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-github-connector" }, + { name = "pathspec" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/6a/1c9df36717b3fb5c3d75fe390b7dfd8532898a7213039e69e980a46550fc/odoo_addon_github_connector_odoo-18.0.1.0.1.1-py3-none-any.whl", hash = "sha256:f83fdc39ab0981a891011986393b59859257189559e0c0ef9c75ddb4f1c6a6b9", size = 388134, upload-time = "2025-10-14T03:01:42.554Z" }, +] + +[[package]] +name = "odoo-addon-membership-extension" +version = "18.0.1.0.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/29/af4852e240934119b3c7e3cb60b26c64425b3df6ebd015ad118693a9dc9e/odoo_addon_membership_extension-18.0.1.0.0.2-py3-none-any.whl", hash = "sha256:d72b383aa0c49350c597f26c8b7f2437a0afe1a87ca3b8104f03e4ebefa17cf0", size = 246632, upload-time = "2025-08-05T07:21:35.712Z" }, +] + +[[package]] +name = "odoo-addon-mis-builder" +version = "18.0.1.8.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-date-range" }, + { name = "odoo-addon-report-xlsx" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/4d/bf243f68c6ae3c11410128ff73076a45d65335750fc2339b563004cbfaa9/odoo_addon_mis_builder-18.0.1.8.0.4-py3-none-any.whl", hash = "sha256:0ebd3babb91f9f80668b9317a9232d3918ad49a157ec6d56dac9ee43785b23ce", size = 624600, upload-time = "2025-11-27T03:33:02.815Z" }, +] + +[[package]] +name = "odoo-addon-mis-builder-budget" +version = "18.0.2.0.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-mis-builder" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/95/ea0838b4db9c6cc3eb4ffd99e6623da7b59e0aa735c0b096f6c82e0f22a9/odoo_addon_mis_builder_budget-18.0.2.0.0.4-py3-none-any.whl", hash = "sha256:8425d04f25c70cc6724d762a496cfde9fd630a7a49f472d1604324d5f14ab76b", size = 89183, upload-time = "2025-11-04T03:31:28.889Z" }, +] + +[[package]] +name = "odoo-addon-mis-builder-cash-flow" +version = "18.0.1.0.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-mis-builder" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/c9/1f104edd2cd2551a676f3f722e6f829c65eeef9ac6a1b22ed86cdc9934e7/odoo_addon_mis_builder_cash_flow-18.0.1.0.1.2-py3-none-any.whl", hash = "sha256:21abaa3e2ce61983c15deedf75ad404a0d6609847f82d95caaeb9dc3104d6e04", size = 51448, upload-time = "2025-10-28T02:33:03.063Z" }, +] + +[[package]] +name = "odoo-addon-mis-builder-demo" +version = "18.0.1.0.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-mis-builder-budget" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/6b/2c/a432993fd0bfc5c9f163612c8096669c842ed1f6af011c3a6882883ed073/odoo_addon_mis_builder_demo-18.0.1.0.0.3-py3-none-any.whl", hash = "sha256:e948c9a228e2f52819fee4a418c548525956ae7c250eed9d3ddfa50333e93488", size = 38591, upload-time = "2025-11-29T03:32:23.65Z" }, +] + +[[package]] +name = "odoo-addon-multi-step-wizard" +version = "18.0.1.0.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/fe/9e30a8f1fd925b60c3dff782f62eedb6552ea5df541281a8970ebc3a06db/odoo_addon_multi_step_wizard-18.0.1.0.0.3-py3-none-any.whl", hash = "sha256:0a60f98419a90cc40302790a3779a6008d7863347ca69b394883006a0a26c4bc", size = 34465, upload-time = "2025-09-23T03:48:24.058Z" }, +] + +[[package]] +name = "odoo-addon-partner-contact-access-link" +version = "18.0.1.0.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/ef/53abd771035bf9752648d49dd9214d550314e3176a5abc0cb6e2d8ade872/odoo_addon_partner_contact_access_link-18.0.1.0.0.3-py3-none-any.whl", hash = "sha256:c28ae259a61e6b306e642db66d07c7854a80f4911879e9762bb3069416257800", size = 314424, upload-time = "2024-12-18T03:27:23.65Z" }, +] + +[[package]] +name = "odoo-addon-partner-statement" +version = "18.0.1.1.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-report-xlsx" }, + { name = "odoo-addon-report-xlsx-helper" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/a9/bf10fc5c45d882f49185c4ca0e6b22e9f33200fd09c969b3d0cd6e2d794e/odoo_addon_partner_statement-18.0.1.1.1.2-py3-none-any.whl", hash = "sha256:c3dfbe8b1900f66a7ff9dfe1d6ca2ec2f62a0e5261ed06cc7fe1fca5636b7c8b", size = 133609, upload-time = "2025-12-25T02:32:54.341Z" }, +] + +[[package]] +name = "odoo-addon-project-role" +version = "18.0.1.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/07/9211ef1b54cdac0054680e857f29fe0348da0c99c24392c224d4c85903ef/odoo_addon_project_role-18.0.1.0.1-py3-none-any.whl", hash = "sha256:0852628ed606bcdee3e935fd4ba54a0d060dfcd35235a33dac8e59a244a373b3", size = 64994, upload-time = "2026-01-08T08:56:19.599Z" }, +] + +[[package]] +name = "odoo-addon-project-task-add-very-high" +version = "18.0.1.1.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/c9/fa473f0b83d56c86ebff691f8df26137d24cde37fbddcb73d7e9f4e767e2/odoo_addon_project_task_add_very_high-18.0.1.1.0.2-py3-none-any.whl", hash = "sha256:1e2df58b9d8cae8657c7cab3ceff2f1865f29a87d6020ac50c03a321c93b2fc5", size = 84181, upload-time = "2025-06-05T03:25:37.08Z" }, +] + +[[package]] +name = "odoo-addon-report-xlsx" +version = "18.0.1.1.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/12/6cb4f545a511efc0a6cbff426eecb0730ba24de4338e4bff1100fc33e463/odoo_addon_report_xlsx-18.0.1.1.2.2-py3-none-any.whl", hash = "sha256:7b4f17488ecaf96bb591df7cdcecc4a676b8dff7615041a68ae82095ff57c3ee", size = 46837, upload-time = "2025-12-17T03:56:13.802Z" }, +] + +[[package]] +name = "odoo-addon-report-xlsx-helper" +version = "18.0.1.0.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-report-xlsx" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/61/1e7db868f1f129eaa7a9a16788a996c773da4b431839d0cf2150f9719cec/odoo_addon_report_xlsx_helper-18.0.1.0.0.4-py3-none-any.whl", hash = "sha256:4aee9069f5af10b88b379e01fb1470a3142925dc85c473cf2842f3707ec41e3c", size = 38847, upload-time = "2025-09-09T03:47:02.251Z" }, +] + +[[package]] +name = "odoo-addon-sentry" +version = "18.0.1.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "sentry-sdk" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/15/7f98c5e326e5b4d93efebb72249c62a4f68a818e1f6214fd2500bd1c8396/odoo_addon_sentry-18.0.1.0.3-py3-none-any.whl", hash = "sha256:7edd3aebd9acbf5013dea90a6fd42258e40ca632899f91618a2a4133be929060", size = 32618, upload-time = "2025-08-20T23:03:28.388Z" }, +] + +[[package]] +name = "odoo-addon-server-action-mass-edit" +version = "18.0.1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "openupgradelib" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/30/a6/b2b782c602cda5f5b266bdd67aaa6feaf86a228f7c3cfb46019b3d40ed8b/odoo_addon_server_action_mass_edit-18.0.1.1.1-py3-none-any.whl", hash = "sha256:021bcbb2ffdb9da05f3fb6b5eec53fc08b70a9c64c34de9a58ee5e0c740d6c79", size = 381941, upload-time = "2025-10-17T14:48:11.298Z" }, +] + +[[package]] +name = "odoo-addon-sql-request-abstract" +version = "18.0.1.0.0.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/6c/4c79b297e78e4edcbd004278d5ca0e411369a57a1105c41d65f87c7cde81/odoo_addon_sql_request_abstract-18.0.1.0.0.12-py3-none-any.whl", hash = "sha256:bdb61070c355fd9fba472d8f7d4b342badab6eef37633c24053524e648f852c3", size = 192765, upload-time = "2025-09-16T03:38:49.624Z" }, +] + +[[package]] +name = "odoo-addon-uom-unece" +version = "18.0.1.0.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/f1/a20a6736eb46a521a1dbc60d45e735ee16eb2a4f2b0a9abc2d56a8ba6b01/odoo_addon_uom_unece-18.0.1.0.0.3-py3-none-any.whl", hash = "sha256:ac60fc74ee238733748a0a4dace6ec8ca876c19d166e0165502ebb5468c1a9b0", size = 29405, upload-time = "2024-12-14T02:39:48.371Z" }, +] + +[[package]] +name = "odoo-addon-web-refresher" +version = "18.0.1.0.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/7a/ed9d287afd5cf103a683cdefbce4f2e9271843f376c353c8a7a57879a90a/odoo_addon_web_refresher-18.0.1.0.0.2-py3-none-any.whl", hash = "sha256:3f36ae760e454618ef374e3c6af3c3a884e7fe3efbced917ebbf9e40372d0bd5", size = 46133, upload-time = "2025-04-03T10:37:15.526Z" }, +] + +[[package]] +name = "odoo-addon-web-responsive" +version = "18.0.1.0.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/f4/7802286d649185ec3e75704ef0ab75990a779af2acf1193de0e654a04be9/odoo_addon_web_responsive-18.0.1.0.3.1-py3-none-any.whl", hash = "sha256:ac335cb2456f2cc1f2f6f61ca220fa379735e881c6bceb6ee99323411d878258", size = 8247957, upload-time = "2025-11-06T04:28:10.308Z" }, +] + +[[package]] +name = "odoo-addon-web-search-with-and" +version = "18.0.1.0.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/86/7b583a52833045a2ea54ae3abfdb2c0ad42c161043251df35c9fb56a9bd7/odoo_addon_web_search_with_and-18.0.1.0.1.1-py3-none-any.whl", hash = "sha256:0b9253800ee026a1c1d1c25b9f974c2f88f51f365b256c33bfcfa45f469fba3c", size = 24804, upload-time = "2025-09-16T04:06:44.013Z" }, +] + +[[package]] +name = "odoo-addon-web-widget-dropdown-dynamic" +version = "18.0.2.0.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/e8/52c6bd8a72eb0ba4278e4b4ccaa86c367f8690f8e2accf49c66ce21a9c18/odoo_addon_web_widget_dropdown_dynamic-18.0.2.0.0.2-py3-none-any.whl", hash = "sha256:2962a6a5e93ee1325fd7c3f4764fde86a92a581aa81c0bf99b90319762996ebe", size = 31235, upload-time = "2025-09-17T04:06:20.154Z" }, +] + +[[package]] +name = "odoo-test-helper" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/46/bc/fb54851788e4eecce0ad458221f3dfe3711dbeee7fd2b64d7263646238fc/odoo-test-helper-2.1.1.tar.gz", hash = "sha256:d5a511ebdbab2004a7721f4b9bf02ef5c419c178cd85d60feb25440b5adba69a", size = 11182, upload-time = "2023-10-17T08:41:41.175Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/7a/56f7a00207d65ed5e877ecbb254b4656e241abd0688f720827f300092a7f/odoo_test_helper-2.1.1-py2.py3-none-any.whl", hash = "sha256:08c3a2f7a4ba1971eb8dab46c36c0f24f2dca735021c92929f5629adaf23b219", size = 6279, upload-time = "2023-10-17T08:41:39.877Z" }, +] + +[[package]] +name = "ofxparse" +version = "0.21" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "lxml" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/45/ae/98a2acfd06d15869c4b1be7fb74849c8a67cf15b65181f1fe879547e7494/ofxparse-0.21.tar.gz", hash = "sha256:057ab68d31270dece4d1a47662096aa76341968aaee145ffc711cb44cbd5c4a7", size = 53837, upload-time = "2021-05-31T03:38:59.526Z" } + +[[package]] +name = "openpyxl" +version = "3.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "et-xmlfile" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/e8/af028681d493814ca9c2ff8106fc62a4a32e4e0ae14602c2a98fc7b741c8/openpyxl-3.1.2.tar.gz", hash = "sha256:a6f5977418eff3b2d5500d54d9db50c8277a368436f4e4f8ddb1be3422870184", size = 185977, upload-time = "2023-03-11T16:58:38.78Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/94/a59521de836ef0da54aaf50da6c4da8fb4072fb3053fa71f052fd9399e7a/openpyxl-3.1.2-py2.py3-none-any.whl", hash = "sha256:f91456ead12ab3c6c2e9491cf33ba6d08357d802192379bb482f1033ade496f5", size = 249985, upload-time = "2023-03-11T16:58:36.257Z" }, +] + +[[package]] +name = "openupgradelib" +version = "3.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cssselect" }, + { name = "lxml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/16/9e/166497bde964e9d474b9637701e03e30d3477da03b9433d6001fabea5716/openupgradelib-3.12.0.tar.gz", hash = "sha256:3f3cd2475f7eb387fb0c364b7d2828b268dcf6e9c83aecccfbfe5c76cc69e4d7", size = 7852100, upload-time = "2025-11-05T09:17:53.491Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/6c/410c60258586301503ce4930773aa652578d0739ad78fdb2261873e3cd84/openupgradelib-3.12.0-py2.py3-none-any.whl", hash = "sha256:f8f624f4863b2257f760a9959ddd3cfee650b8f4a8740610506c4473ed36b679", size = 85183, upload-time = "2025-11-05T09:17:52.163Z" }, +] + +[[package]] +name = "packaging" +version = "26.0rc1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/55/d0/88784ecdb0e481b39af721f637a60046e6f09ca03553aa71d788062e2012/packaging-26.0rc1.tar.gz", hash = "sha256:2104df24f61f17179ac8459cda8138cd344967d3b4f0934afa582a6826963fc5", size = 142273, upload-time = "2026-01-09T17:41:18.505Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/35/ddf3a6e8fc754fb939e2ea36fde96c28189184d6115afcf60011bb438ae5/packaging-26.0rc1-py3-none-any.whl", hash = "sha256:ecf921b33c620e357b1eed2ac3bc6313b1582874b0282d0773b6797b79cb0786", size = 74021, upload-time = "2026-01-09T17:41:17.134Z" }, +] + +[[package]] +name = "parameterized" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/49/00c0c0cc24ff4266025a53e41336b79adaa5a4ebfad214f433d623f9865e/parameterized-0.9.0.tar.gz", hash = "sha256:7fc905272cefa4f364c1a3429cbbe9c0f98b793988efb5bf90aac80f08db09b1", size = 24351, upload-time = "2023-03-27T02:01:11.592Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/2f/804f58f0b856ab3bf21617cccf5b39206e6c4c94c2cd227bde125ea6105f/parameterized-0.9.0-py2.py3-none-any.whl", hash = "sha256:4e0758e3d41bea3bbd05ec14fc2c24736723f243b28d702081aef438c9372b1b", size = 20475, upload-time = "2023-03-27T02:01:09.31Z" }, +] + +[[package]] +name = "passlib" +version = "1.7.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b6/06/9da9ee59a67fae7761aab3ccc84fa4f3f33f125b370f1ccdb915bf967c11/passlib-1.7.4.tar.gz", hash = "sha256:defd50f72b65c5402ab2c573830a6978e5f202ad0d984793c8dde2c4152ebe04", size = 689844, upload-time = "2020-10-08T19:00:52.121Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/a4/ab6b7589382ca3df236e03faa71deac88cae040af60c071a78d254a62172/passlib-1.7.4-py2.py3-none-any.whl", hash = "sha256:aa6bca462b8d8bda89c70b382f0c298a20b5560af6cbfa2dce410c0a2fb669f1", size = 525554, upload-time = "2020-10-08T19:00:49.856Z" }, +] + +[[package]] +name = "pathspec" +version = "1.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/b2/bb8e495d5262bfec41ab5cb18f522f1012933347fb5d9e62452d446baca2/pathspec-1.0.3.tar.gz", hash = "sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d", size = 130841, upload-time = "2026-01-09T15:46:46.009Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/2b/121e912bd60eebd623f873fd090de0e84f322972ab25a7f9044c056804ed/pathspec-1.0.3-py3-none-any.whl", hash = "sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c", size = 55021, upload-time = "2026-01-09T15:46:44.652Z" }, +] + +[[package]] +name = "pillow" +version = "10.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/3e/32cbd0129a28686621434cbf17bb64bf1458bfb838f1f668262fefce145c/pillow-10.2.0.tar.gz", hash = "sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e", size = 46212712, upload-time = "2024-01-02T09:16:59.702Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/37/d5/2c00228ace73a7855a52053a92fdd6cea9b22393fbf3961125c11829dcd2/pillow-10.2.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef", size = 3517780, upload-time = "2024-01-02T09:15:41.495Z" }, + { url = "https://files.pythonhosted.org/packages/9d/a0/28756da34d6b58c3c5f6c1d5589e4e8f4e73472b55875524ae9d6e7e98fe/pillow-10.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac", size = 3317920, upload-time = "2024-01-02T09:15:44.116Z" }, + { url = "https://files.pythonhosted.org/packages/ab/72/e6a8887c0ce6c94cd0b74fef495a81f4ea4c742242de4bc1943abbd21f92/pillow-10.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c", size = 4308358, upload-time = "2024-01-02T09:33:09.603Z" }, + { url = "https://files.pythonhosted.org/packages/a8/2f/86cf1dc4b0530e4c3e96edd0338dcc4809c2622d9d45460029a71a831473/pillow-10.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa", size = 4422007, upload-time = "2024-01-02T09:15:46.355Z" }, + { url = "https://files.pythonhosted.org/packages/00/43/1ca3313b56ef623de0afebfe3d7a6e9c07e1a76c50ce191302018907b2b5/pillow-10.2.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2", size = 4333841, upload-time = "2024-01-02T09:33:14.842Z" }, + { url = "https://files.pythonhosted.org/packages/5c/c6/5b6b1f7362267494a423b45af684d604491565e81436e3ebeefee68f78fd/pillow-10.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04", size = 4502101, upload-time = "2024-01-02T09:15:48.416Z" }, + { url = "https://files.pythonhosted.org/packages/e6/c5/37e72d74c248adf133a2dd56890cf8632e2e46562e5fa70414445bbd3ae6/pillow-10.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f", size = 4542122, upload-time = "2024-01-02T09:33:19.012Z" }, + { url = "https://files.pythonhosted.org/packages/fa/93/79979b8ab99da2958bf6fef1be745c344c4e727f07d1429c49c015e21db2/pillow-10.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb", size = 4611042, upload-time = "2024-01-02T09:15:50.616Z" }, + { url = "https://files.pythonhosted.org/packages/ce/a7/11a539c1e12dfb9d67c35e5d3d99c7a6853face9083e6483360f4d9cd1d8/pillow-10.2.0-cp312-cp312-win32.whl", hash = "sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f", size = 2290438, upload-time = "2024-01-02T09:15:53.219Z" }, + { url = "https://files.pythonhosted.org/packages/51/07/7e9266a59bb267b56c1f432f6416653b9a78dda771c57740d064a8aa2a44/pillow-10.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9", size = 2621845, upload-time = "2024-01-02T09:15:55.293Z" }, + { url = "https://files.pythonhosted.org/packages/a0/61/6cff8a8dbbac3d7fb7adb435b60737a7d0b0849f53e3af38f2c94d988da6/pillow-10.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48", size = 2229322, upload-time = "2024-01-02T09:15:57.475Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cf/86/0248f086a84f01b37aaec0fa567b397df1a119f73c16f6c7a9aac73ea309/platformdirs-4.5.1.tar.gz", hash = "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", size = 21715, upload-time = "2025-12-05T13:52:58.638Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "polib" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/de/37/88ad2639cb4396755e87e97229d268bfa8bae0aeb6c7f9b01e9f49e10dff/polib-1.1.1.tar.gz", hash = "sha256:e02c355ae5e054912e3b0d16febc56510eff7e49d60bf22aecb463bd2f2a2dfa", size = 154644, upload-time = "2021-03-26T22:22:55.04Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/ee/54d6c558d4319a26145658584acb373d50ba0968eb9c19fedfb42458314a/polib-1.1.1-py2.py3-none-any.whl", hash = "sha256:d3ee85e0c6788f789353416b1612c6c92d75fe6ccfac0029711974d6abd0f86d", size = 20183, upload-time = "2021-03-26T22:22:57.134Z" }, +] + +[[package]] +name = "psutil" +version = "5.9.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/90/c7/6dc0a455d111f68ee43f27793971cf03fe29b6ef972042549db29eec39a2/psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c", size = 503247, upload-time = "2024-01-19T20:47:09.517Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/e3/07ae864a636d70a8a6f58da27cb1179192f1140d5d1da10886ade9405797/psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81", size = 248702, upload-time = "2024-01-19T20:47:36.303Z" }, + { url = "https://files.pythonhosted.org/packages/b3/bd/28c5f553667116b2598b9cc55908ec435cb7f77a34f2bff3e3ca765b0f78/psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421", size = 285242, upload-time = "2024-01-19T20:47:39.65Z" }, + { url = "https://files.pythonhosted.org/packages/c5/4f/0e22aaa246f96d6ac87fe5ebb9c5a693fbe8877f537a1022527c47ca43c5/psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4", size = 288191, upload-time = "2024-01-19T20:47:43.078Z" }, + { url = "https://files.pythonhosted.org/packages/6e/f5/2aa3a4acdc1e5940b59d421742356f133185667dd190b166dbcfcf5d7b43/psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0", size = 251252, upload-time = "2024-01-19T20:47:52.88Z" }, + { url = "https://files.pythonhosted.org/packages/93/52/3e39d26feae7df0aa0fd510b14012c3678b36ed068f7d78b8d8784d61f0e/psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf", size = 255090, upload-time = "2024-01-19T20:47:56.019Z" }, + { url = "https://files.pythonhosted.org/packages/05/33/2d74d588408caedd065c2497bdb5ef83ce6082db01289a1e1147f6639802/psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8", size = 249898, upload-time = "2024-01-19T20:47:59.238Z" }, +] + +[[package]] +name = "psycopg2" +version = "2.9.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/5e/dc6acaf46d78979d6b03458b7a1618a68e152a6776fce95daac5e0f0301b/psycopg2-2.9.9.tar.gz", hash = "sha256:d1454bde93fb1e224166811694d600e746430c006fbb031ea06ecc2ea41bf156", size = 384926, upload-time = "2023-10-03T12:48:53.323Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/13/f74ffe6b6f58822e807c70391dc5679a53feb92ce119ccb8a6546c3fb893/psycopg2-2.9.9-cp312-cp312-win32.whl", hash = "sha256:d735786acc7dd25815e89cc4ad529a43af779db2e25aa7c626de864127e5a024", size = 1024634, upload-time = "2023-10-28T09:37:19.078Z" }, + { url = "https://files.pythonhosted.org/packages/58/4b/c4a26e191882b60150bfcb639e416524ae7f8249ab7ee854fb5247f16c40/psycopg2-2.9.9-cp312-cp312-win_amd64.whl", hash = "sha256:a7653d00b732afb6fc597e29c50ad28087dcb4fbfb28e86092277a559ae4e693", size = 1163789, upload-time = "2023-10-28T09:37:22.214Z" }, +] + +[[package]] +name = "pyasn1" +version = "0.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/e9/01f1a64245b89f039897cb0130016d79f77d52669aae6ee7b159a6c4c018/pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034", size = 145322, upload-time = "2024-09-10T22:41:42.55Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c8/f1/d6a797abb14f6283c0ddff96bbdd46937f64122b8c925cab503dd37f8214/pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629", size = 83135, upload-time = "2024-09-11T16:00:36.122Z" }, +] + +[[package]] +name = "pyasn1-modules" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/e6/78ebbb10a8c8e4b61a59249394a4a594c1a7af95593dc933a349c8d00964/pyasn1_modules-0.4.2.tar.gz", hash = "sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6", size = 307892, upload-time = "2025-03-28T02:41:22.17Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a", size = 181259, upload-time = "2025-03-28T02:41:19.028Z" }, +] + +[[package]] +name = "pycparser" +version = "2.23" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, +] + +[[package]] +name = "pygithub" +version = "2.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyjwt", extra = ["crypto"] }, + { name = "pynacl" }, + { name = "requests" }, + { name = "typing-extensions" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c1/74/e560bdeffea72ecb26cff27f0fad548bbff5ecc51d6a155311ea7f9e4c4c/pygithub-2.8.1.tar.gz", hash = "sha256:341b7c78521cb07324ff670afd1baa2bf5c286f8d9fd302c1798ba594a5400c9", size = 2246994, upload-time = "2025-09-02T17:41:54.674Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/ba/7049ce39f653f6140aac4beb53a5aaf08b4407b6a3019aae394c1c5244ff/pygithub-2.8.1-py3-none-any.whl", hash = "sha256:23a0a5bca93baef082e03411bf0ce27204c32be8bfa7abc92fe4a3e132936df0", size = 432709, upload-time = "2025-09-02T17:41:52.947Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pyjwt" +version = "2.10.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785, upload-time = "2024-11-28T03:43:29.933Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" }, +] + +[package.optional-dependencies] +crypto = [ + { name = "cryptography" }, +] + +[[package]] +name = "pynacl" +version = "1.6.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d9/9a/4019b524b03a13438637b11538c82781a5eda427394380381af8f04f467a/pynacl-1.6.2.tar.gz", hash = "sha256:018494d6d696ae03c7e656e5e74cdfd8ea1326962cc401bcf018f1ed8436811c", size = 3511692, upload-time = "2026-01-01T17:48:10.851Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/7b/4845bbf88e94586ec47a432da4e9107e3fc3ce37eb412b1398630a37f7dd/pynacl-1.6.2-cp38-abi3-macosx_10_10_universal2.whl", hash = "sha256:c949ea47e4206af7c8f604b8278093b674f7c79ed0d4719cc836902bf4517465", size = 388458, upload-time = "2026-01-01T17:32:16.829Z" }, + { url = "https://files.pythonhosted.org/packages/1e/b4/e927e0653ba63b02a4ca5b4d852a8d1d678afbf69b3dbf9c4d0785ac905c/pynacl-1.6.2-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8845c0631c0be43abdd865511c41eab235e0be69c81dc66a50911594198679b0", size = 800020, upload-time = "2026-01-01T17:32:18.34Z" }, + { url = "https://files.pythonhosted.org/packages/7f/81/d60984052df5c97b1d24365bc1e30024379b42c4edcd79d2436b1b9806f2/pynacl-1.6.2-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:22de65bb9010a725b0dac248f353bb072969c94fa8d6b1f34b87d7953cf7bbe4", size = 1399174, upload-time = "2026-01-01T17:32:20.239Z" }, + { url = "https://files.pythonhosted.org/packages/68/f7/322f2f9915c4ef27d140101dd0ed26b479f7e6f5f183590fd32dfc48c4d3/pynacl-1.6.2-cp38-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:46065496ab748469cdd999246d17e301b2c24ae2fdf739132e580a0e94c94a87", size = 835085, upload-time = "2026-01-01T17:32:22.24Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d0/f301f83ac8dbe53442c5a43f6a39016f94f754d7a9815a875b65e218a307/pynacl-1.6.2-cp38-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8a66d6fb6ae7661c58995f9c6435bda2b1e68b54b598a6a10247bfcdadac996c", size = 1437614, upload-time = "2026-01-01T17:32:23.766Z" }, + { url = "https://files.pythonhosted.org/packages/c4/58/fc6e649762b029315325ace1a8c6be66125e42f67416d3dbd47b69563d61/pynacl-1.6.2-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:26bfcd00dcf2cf160f122186af731ae30ab120c18e8375684ec2670dccd28130", size = 818251, upload-time = "2026-01-01T17:32:25.69Z" }, + { url = "https://files.pythonhosted.org/packages/c9/a8/b917096b1accc9acd878819a49d3d84875731a41eb665f6ebc826b1af99e/pynacl-1.6.2-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:c8a231e36ec2cab018c4ad4358c386e36eede0319a0c41fed24f840b1dac59f6", size = 1402859, upload-time = "2026-01-01T17:32:27.215Z" }, + { url = "https://files.pythonhosted.org/packages/85/42/fe60b5f4473e12c72f977548e4028156f4d340b884c635ec6b063fe7e9a5/pynacl-1.6.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:68be3a09455743ff9505491220b64440ced8973fe930f270c8e07ccfa25b1f9e", size = 791926, upload-time = "2026-01-01T17:32:29.314Z" }, + { url = "https://files.pythonhosted.org/packages/fa/f9/e40e318c604259301cc091a2a63f237d9e7b424c4851cafaea4ea7c4834e/pynacl-1.6.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:8b097553b380236d51ed11356c953bf8ce36a29a3e596e934ecabe76c985a577", size = 1363101, upload-time = "2026-01-01T17:32:31.263Z" }, + { url = "https://files.pythonhosted.org/packages/48/47/e761c254f410c023a469284a9bc210933e18588ca87706ae93002c05114c/pynacl-1.6.2-cp38-abi3-win32.whl", hash = "sha256:5811c72b473b2f38f7e2a3dc4f8642e3a3e9b5e7317266e4ced1fba85cae41aa", size = 227421, upload-time = "2026-01-01T17:32:33.076Z" }, + { url = "https://files.pythonhosted.org/packages/41/ad/334600e8cacc7d86587fe5f565480fde569dfb487389c8e1be56ac21d8ac/pynacl-1.6.2-cp38-abi3-win_amd64.whl", hash = "sha256:62985f233210dee6548c223301b6c25440852e13d59a8b81490203c3227c5ba0", size = 239754, upload-time = "2026-01-01T17:32:34.557Z" }, + { url = "https://files.pythonhosted.org/packages/29/7d/5945b5af29534641820d3bd7b00962abbbdfee84ec7e19f0d5b3175f9a31/pynacl-1.6.2-cp38-abi3-win_arm64.whl", hash = "sha256:834a43af110f743a754448463e8fd61259cd4ab5bbedcf70f9dabad1d28a394c", size = 184801, upload-time = "2026-01-01T17:32:36.309Z" }, +] + +[[package]] +name = "pyopenssl" +version = "24.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/a8/cbeec652549e30103b9e6147ad433405fdd18807ac2d54e6dbb73184d8a1/pyOpenSSL-24.1.0.tar.gz", hash = "sha256:cabed4bfaa5df9f1a16c0ef64a0cb65318b5cd077a7eda7d6970131ca2f41a6f", size = 179671, upload-time = "2024-03-09T23:16:25.539Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/a7/2104f674a5a6845b04c8ff01659becc6b8978ca410b82b94287e0b1e018b/pyOpenSSL-24.1.0-py3-none-any.whl", hash = "sha256:17ed5be5936449c5418d1cd269a1a9e9081bc54c17aed272b45856a3d3dc86ad", size = 56945, upload-time = "2024-03-09T23:16:23.44Z" }, +] + +[[package]] +name = "pypdf2" +version = "2.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/77/d6/afcbdb452c335bccf22ec8ac5ac27b03222f9be8b96043bcce87ba1ce32a/PyPDF2-2.12.1.tar.gz", hash = "sha256:e03ef18abcc75da741a0acc1a7749253496887be38cd9887bcce1cee393da45e", size = 218096, upload-time = "2022-12-10T18:28:53.225Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/40/4f997b7cf72d89bb5aafd57b01dfa0be4e9560c8e5b993fde3986b3904f9/pypdf2-2.12.1-py3-none-any.whl", hash = "sha256:41ff16ee122bad9790d57a4235281a838002d7f1cc8d631d91b6f65d709bd825", size = 222844, upload-time = "2022-12-10T18:28:49.6Z" }, +] + +[[package]] +name = "pypng" +version = "0.20220715.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/93/cd/112f092ec27cca83e0516de0a3368dbd9128c187fb6b52aaaa7cde39c96d/pypng-0.20220715.0.tar.gz", hash = "sha256:739c433ba96f078315de54c0db975aee537cbc3e1d0ae4ed9aab0ca1e427e2c1", size = 128992, upload-time = "2022-07-15T14:11:05.301Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3e/b9/3766cc361d93edb2ce81e2e1f87dd98f314d7d513877a342d31b30741680/pypng-0.20220715.0-py3-none-any.whl", hash = "sha256:4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c", size = 58057, upload-time = "2022-07-15T14:11:03.713Z" }, +] + +[[package]] +name = "pyserial" +version = "3.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1e/7d/ae3f0a63f41e4d2f6cb66a5b57197850f919f59e558159a4dd3a818f5082/pyserial-3.5.tar.gz", hash = "sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb", size = 159125, upload-time = "2020-11-23T03:59:15.045Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/bc/587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558/pyserial-3.5-py2.py3-none-any.whl", hash = "sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0", size = 90585, upload-time = "2020-11-23T03:59:13.41Z" }, +] + +[[package]] +name = "pytest" +version = "9.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901, upload-time = "2025-12-06T21:30:51.014Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801, upload-time = "2025-12-06T21:30:49.154Z" }, +] + +[[package]] +name = "pytest-cov" +version = "7.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "coverage" }, + { name = "pluggy" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/f7/c933acc76f5208b3b00089573cf6a2bc26dc80a8aece8f52bb7d6b1855ca/pytest_cov-7.0.0.tar.gz", hash = "sha256:33c97eda2e049a0c5298e91f519302a1334c26ac65c1a483d6206fd458361af1", size = 54328, upload-time = "2025-09-09T10:57:02.113Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/49/1377b49de7d0c1ce41292161ea0f721913fa8722c19fb9c1e3aa0367eecb/pytest_cov-7.0.0-py3-none-any.whl", hash = "sha256:3b8e9558b16cc1479da72058bdecf8073661c7f57f7d3c5f22a1c23507f2d861", size = 22424, upload-time = "2025-09-09T10:57:00.695Z" }, +] + +[[package]] +name = "pytest-odoo" +version = "2.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5a/cc/fb1bb767db03873dfd1e74956049ac2235291deb37a5190379dc3ec64f19/pytest_odoo-2.1.2.tar.gz", hash = "sha256:f8f542e5e3b17f8150bc32beb36b340e7fb6c59b5a9dedce35c021097ad98456", size = 20040, upload-time = "2025-03-12T14:17:23.323Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/91/b11505eb2c2b3d85df86ddf72de8464d721cc6de6b5d06dad1204065e1c7/pytest_odoo-2.1.2-py3-none-any.whl", hash = "sha256:552926e4709835fc5314da21041d97d7ade1f4224cb767e5c3e4db8a272bd83d", size = 17937, upload-time = "2025-03-12T14:17:21.722Z" }, +] + +[[package]] +name = "pytest-xdist" +version = "3.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "execnet" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/78/b4/439b179d1ff526791eb921115fca8e44e596a13efeda518b9d845a619450/pytest_xdist-3.8.0.tar.gz", hash = "sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1", size = 88069, upload-time = "2025-07-01T13:30:59.346Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/31/d4e37e9e550c2b92a9cbc2e4d0b7420a27224968580b5a447f420847c975/pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88", size = 46396, upload-time = "2025-07-01T13:30:56.632Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.8.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4c/c4/13b4776ea2d76c115c1d1b84579f3764ee6d57204f6be27119f13a61d0a9/python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", size = 357324, upload-time = "2021-07-14T08:19:19.783Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9", size = 247702, upload-time = "2021-07-14T08:19:18.161Z" }, +] + +[[package]] +name = "python-ldap" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1" }, + { name = "pyasn1-modules" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fd/8b/1eeb4025dc1d3ac2f16678f38dec9ebdde6271c74955b72db5ce7a4dbfbd/python-ldap-3.4.4.tar.gz", hash = "sha256:7edb0accec4e037797705f3a05cbf36a9fde50d08c8f67f2aef99a2628fab828", size = 377889, upload-time = "2023-11-17T21:14:16.32Z" } + +[[package]] +name = "python-stdnum" +version = "1.19" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/e7/6342f4a43c7b922817e6788074c82c10e640c972b428f176645a7adf9f28/python-stdnum-1.19.tar.gz", hash = "sha256:133ec82f56390ea74c190569e98f2fb14b869808b1d54785708f22d0fead8b3f", size = 1134517, upload-time = "2023-08-20T15:15:05.461Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/c3/6ce1809a33fb8d1a4cc5c118cc5cf423b8844ab80324ae76b7cd6bcf31b2/python_stdnum-1.19-py2.py3-none-any.whl", hash = "sha256:1b5b401ad3f45b798b0317313b781a433f5d7a5ff2c9feb8054664f76f78644e", size = 1006054, upload-time = "2023-08-20T15:15:02.043Z" }, +] + +[[package]] +name = "pytz" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload-time = "2025-03-25T02:25:00.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload-time = "2025-03-25T02:24:58.468Z" }, +] + +[[package]] +name = "pyusb" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d9/6e/433a5614132576289b8643fe598dd5d51b16e130fd591564be952e15bb45/pyusb-1.2.1.tar.gz", hash = "sha256:a4cc7404a203144754164b8b40994e2849fde1cfff06b08492f12fff9d9de7b9", size = 75292, upload-time = "2021-07-09T02:58:46.962Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/a8/4982498b2ab44d1fcd5c49f07ea3795eab01601dc143b009d333fcace3b9/pyusb-1.2.1-py3-none-any.whl", hash = "sha256:2b4c7cb86dbadf044dfb9d3a4ff69fd217013dbe78a792177a3feb172449ea36", size = 58439, upload-time = "2021-07-09T02:58:44.894Z" }, +] + +[[package]] +name = "qrcode" +version = "7.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "pypng" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/30/35/ad6d4c5a547fe9a5baf85a9edbafff93fc6394b014fab30595877305fa59/qrcode-7.4.2.tar.gz", hash = "sha256:9dd969454827e127dbd93696b20747239e6d540e082937c90f14ac95b30f5845", size = 535974, upload-time = "2023-02-05T22:11:46.548Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/79/aaf0c1c7214f2632badb2771d770b1500d3d7cbdf2590ae62e721ec50584/qrcode-7.4.2-py3-none-any.whl", hash = "sha256:581dca7a029bcb2deef5d01068e39093e80ef00b4a61098a2182eac59d01643a", size = 46197, upload-time = "2023-02-05T22:11:43.4Z" }, +] + +[[package]] +name = "reportlab" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "chardet" }, + { name = "pillow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bc/5c/ca4381f77af19be120173c53a398d7fb78940c79eca73af4816f3307d870/reportlab-4.1.0.tar.gz", hash = "sha256:3a99faf412691159c068b3ff01c15307ce2fd2cf6b860199434874e002040a84", size = 3146958, upload-time = "2024-02-08T16:42:23.696Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/70/c44e5fb6099cf28d01255ff1dfc6a4c8f2b981f314707018c802ac179e4e/reportlab-4.1.0-py3-none-any.whl", hash = "sha256:28a40d5000afbd8ccae15a47f7abe2841768461354bede1a9d42841132997c98", size = 1941429, upload-time = "2024-02-08T16:42:19.811Z" }, +] + +[[package]] +name = "requests" +version = "2.31.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/be/10918a2eac4ae9f02f6cfe6414b7a155ccd8f7f9d4380d62fd5b955065c3/requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1", size = 110794, upload-time = "2023-05-22T15:12:44.175Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", size = 62574, upload-time = "2023-05-22T15:12:42.313Z" }, +] + +[[package]] +name = "requests-file" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3c/f8/5dc70102e4d337063452c82e1f0d95e39abfe67aa222ed8a5ddeb9df8de8/requests_file-3.0.1.tar.gz", hash = "sha256:f14243d7796c588f3521bd423c5dea2ee4cc730e54a3cac9574d78aca1272576", size = 6967, upload-time = "2025-10-20T18:56:42.279Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/d5/de8f089119205a09da657ed4784c584ede8381a0ce6821212a6d4ca47054/requests_file-3.0.1-py2.py3-none-any.whl", hash = "sha256:d0f5eb94353986d998f80ac63c7f146a307728be051d4d1cd390dbdb59c10fa2", size = 4514, upload-time = "2025-10-20T18:56:41.184Z" }, +] + +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload-time = "2023-05-01T04:11:28.427Z" }, +] + +[[package]] +name = "rich" +version = "14.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fb/d2/8920e102050a0de7bfabeb4c4614a49248cf8d5d7a8d01885fbb24dc767a/rich-14.2.0.tar.gz", hash = "sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4", size = 219990, upload-time = "2025-10-09T14:16:53.064Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/7a/b0178788f8dc6cafce37a212c99565fa1fe7872c70c6c9c1e1a372d9d88f/rich-14.2.0-py3-none-any.whl", hash = "sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd", size = 243393, upload-time = "2025-10-09T14:16:51.245Z" }, +] + +[[package]] +name = "rjsmin" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ad/09/b05a0ed0aedb13c7b7a887b4638c5b3c6eb6a16df944deb2593997d8753c/rjsmin-1.2.0.tar.gz", hash = "sha256:6c529feb6c400984452494c52dd9fdf59185afeacca2afc5174a28ab37751a1b", size = 419866, upload-time = "2021-11-14T20:38:09.741Z" } + +[[package]] +name = "sentry-sdk" +version = "2.22.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/b6/662988ecd2345bf6c3a5c306a9a3590852742eff91d0a78a143398b816f3/sentry_sdk-2.22.0.tar.gz", hash = "sha256:b4bf43bb38f547c84b2eadcefbe389b36ef75f3f38253d7a74d6b928c07ae944", size = 303539, upload-time = "2025-02-17T14:12:43.204Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/7f/0e4459173e9671ba5f75a48dda2442bcc48a12c79e54e5789381c8c6a9bc/sentry_sdk-2.22.0-py2.py3-none-any.whl", hash = "sha256:3d791d631a6c97aad4da7074081a57073126c69487560c6f8bffcf586461de66", size = 325815, upload-time = "2025-02-17T14:12:40.223Z" }, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "smmap" +version = "5.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329, upload-time = "2025-01-02T07:14:40.909Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303, upload-time = "2025-01-02T07:14:38.724Z" }, +] + +[[package]] +name = "soupsieve" +version = "2.8.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/89/23/adf3796d740536d63a6fbda113d07e60c734b6ed5d3058d1e47fc0495e47/soupsieve-2.8.1.tar.gz", hash = "sha256:4cf733bc50fa805f5df4b8ef4740fc0e0fa6218cf3006269afd3f9d6d80fd350", size = 117856, upload-time = "2025-12-18T13:50:34.655Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/f3/b67d6ea49ca9154453b6d70b34ea22f3996b9fa55da105a79d8732227adc/soupsieve-2.8.1-py3-none-any.whl", hash = "sha256:a11fe2a6f3d76ab3cf2de04eb339c1be5b506a8a47f2ceb6d139803177f85434", size = 36710, upload-time = "2025-12-18T13:50:33.267Z" }, +] + +[[package]] +name = "textual" +version = "7.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py", extra = ["linkify"] }, + { name = "mdit-py-plugins" }, + { name = "platformdirs" }, + { name = "pygments" }, + { name = "rich" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/13/b5cb4995d1390dd6e43c89bfa879ae41fc1b97551ce1f6d29bd01d0f9395/textual-7.1.0.tar.gz", hash = "sha256:3c7148ef00a9277b45fd78a1a6adc7c419c451d3ed714a0b015b16eaa2a8a73b", size = 1582455, upload-time = "2026-01-10T10:32:36.791Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/f4/48e4a4c77ab7eea48d3b0a77f8dea0be101c83421abc64da0888c77c47cf/textual-7.1.0-py3-none-any.whl", hash = "sha256:9209dd0d1d958316832f7e59328f3911112f8e951abef7c3fbe54effd4e4caed", size = 715555, upload-time = "2026-01-10T10:32:35.117Z" }, +] + +[[package]] +name = "typer" +version = "0.21.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/36/bf/8825b5929afd84d0dabd606c67cd57b8388cb3ec385f7ef19c5cc2202069/typer-0.21.1.tar.gz", hash = "sha256:ea835607cd752343b6b2b7ce676893e5a0324082268b48f27aa058bdb7d2145d", size = 110371, upload-time = "2026-01-06T11:21:10.989Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/1d/d9257dd49ff2ca23ea5f132edf1281a0c4f9de8a762b9ae399b670a59235/typer-0.21.1-py3-none-any.whl", hash = "sha256:7985e89081c636b88d172c2ee0cfe33c253160994d47bdfdc302defd7d1f1d01", size = 47381, upload-time = "2026-01-06T11:21:09.824Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "uc-micro-py" +version = "1.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/91/7a/146a99696aee0609e3712f2b44c6274566bc368dfe8375191278045186b8/uc-micro-py-1.0.3.tar.gz", hash = "sha256:d321b92cff673ec58027c04015fcaa8bb1e005478643ff4a500882eaab88c48a", size = 6043, upload-time = "2024-02-09T16:52:01.654Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/37/87/1f677586e8ac487e29672e4b17455758fce261de06a0d086167bb760361a/uc_micro_py-1.0.3-py3-none-any.whl", hash = "sha256:db1dffff340817673d7b466ec86114a9dc0e9d4d9b5ba229d9d60e5c12600cd5", size = 6229, upload-time = "2024-02-09T16:52:00.371Z" }, +] + +[[package]] +name = "unidecode" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/7d/a8a765761bbc0c836e397a2e48d498305a865b70a8600fd7a942e85dcf63/Unidecode-1.4.0.tar.gz", hash = "sha256:ce35985008338b676573023acc382d62c264f307c8f7963733405add37ea2b23", size = 200149, upload-time = "2025-04-24T08:45:03.798Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/b7/559f59d57d18b44c6d1250d2eeaa676e028b9c527431f5d0736478a73ba1/Unidecode-1.4.0-py3-none-any.whl", hash = "sha256:c3c7606c27503ad8d501270406e345ddb480a7b5f38827eafe4fa82a137f0021", size = 235837, upload-time = "2025-04-24T08:45:01.609Z" }, +] + +[[package]] +name = "urllib3" +version = "2.0.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/47/b215df9f71b4fdba1025fc05a77db2ad243fa0926755a52c5e71659f4e3c/urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84", size = 282546, upload-time = "2023-10-17T17:46:50.542Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/b2/b157855192a68541a91ba7b2bbcb91f1b4faa51f8bae38d8005c034be524/urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e", size = 124213, upload-time = "2023-10-17T17:46:48.538Z" }, +] + +[[package]] +name = "vobject" +version = "0.9.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/da/ce/27c48c0e39cc69ffe7f6e3751734f6073539bf18a0cfe564e973a3709a52/vobject-0.9.6.1.tar.gz", hash = "sha256:96512aec74b90abb71f6b53898dd7fe47300cc940104c4f79148f0671f790101", size = 58556, upload-time = "2018-07-18T16:03:43.067Z" } + +[[package]] +name = "websocket-client" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2c/41/aa4bf9664e4cda14c3b39865b12251e8e7d239f4cd0e3cc1b6c2ccde25c1/websocket_client-1.9.0.tar.gz", hash = "sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98", size = 70576, upload-time = "2025-10-07T21:16:36.495Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/db/b10e48aa8fff7407e67470363eac595018441cf32d5e1001567a7aeba5d2/websocket_client-1.9.0-py3-none-any.whl", hash = "sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef", size = 82616, upload-time = "2025-10-07T21:16:34.951Z" }, +] + +[[package]] +name = "werkzeug" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0d/cc/ff1904eb5eb4b455e442834dabf9427331ac0fa02853bf83db817a7dd53d/werkzeug-3.0.1.tar.gz", hash = "sha256:507e811ecea72b18a404947aded4b3390e1db8f826b494d76550ef45bb3b1dcc", size = 801436, upload-time = "2023-10-24T20:57:50.084Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl", hash = "sha256:90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10", size = 226669, upload-time = "2023-10-24T20:57:47.326Z" }, +] + +[[package]] +name = "xlrd" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/b3/19a2540d21dea5f908304375bd43f5ed7a4c28a370dc9122c565423e6b44/xlrd-2.0.1.tar.gz", hash = "sha256:f72f148f54442c6b056bf931dbc34f986fd0c3b0b6b5a58d013c9aef274d0c88", size = 100259, upload-time = "2020-12-11T10:14:22.201Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/0c/c2a72d51fe56e08a08acc85d13013558a2d793028ae7385448a6ccdfae64/xlrd-2.0.1-py2.py3-none-any.whl", hash = "sha256:6a33ee89877bd9abc1158129f6e94be74e2679636b8a205b43b85206c3f0bbdd", size = 96531, upload-time = "2020-12-11T10:14:20.877Z" }, +] + +[[package]] +name = "xlsxwriter" +version = "3.1.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2b/a3/dd02e3559b2c785d2357c3752cc191d750a280ff3cb02fa7c2a8f87523c3/XlsxWriter-3.1.9.tar.gz", hash = "sha256:de810bf328c6a4550f4ffd6b0b34972aeb7ffcf40f3d285a0413734f9b63a929", size = 272204, upload-time = "2023-10-19T08:03:14.549Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/3e/05ba2194cd5073602422859c949a4f21310a3c49bf8dccde9e03d4522b11/XlsxWriter-3.1.9-py3-none-any.whl", hash = "sha256:b61c1a0c786f82644936c0936ec96ee96cd3afb9440094232f7faef9b38689f0", size = 154753, upload-time = "2023-10-19T08:03:12.238Z" }, +] + +[[package]] +name = "xlwt" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/06/97/56a6f56ce44578a69343449aa5a0d98eefe04085d69da539f3034e2cd5c1/xlwt-1.3.0.tar.gz", hash = "sha256:c59912717a9b28f1a3c2a98fd60741014b06b043936dcecbc113eaaada156c88", size = 153929, upload-time = "2017-08-22T06:47:16.498Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/48/def306413b25c3d01753603b1a222a011b8621aed27cd7f89cbc27e6b0f4/xlwt-1.3.0-py2.py3-none-any.whl", hash = "sha256:a082260524678ba48a297d922cc385f58278b8aa68741596a87de01a9c628b2e", size = 99981, upload-time = "2017-08-22T06:47:15.281Z" }, +] + +[[package]] +name = "zeep" +version = "4.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "isodate" }, + { name = "lxml" }, + { name = "platformdirs" }, + { name = "pytz" }, + { name = "requests" }, + { name = "requests-file" }, + { name = "requests-toolbelt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fd/a4/8fa2337f1807fd9e671b85980b2c90052d524edf9d39b515aed4c5874c38/zeep-4.2.1.tar.gz", hash = "sha256:72093acfdb1d8360ed400869b73fbf1882b95c4287f798084c42ee0c1ff0e425", size = 161072, upload-time = "2022-11-20T20:37:27.761Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/57/49/1091bd708f8892dc2ed5155bdf71ff51fcde75df137d65ac53f5d7f4fa25/zeep-4.2.1-py3-none-any.whl", hash = "sha256:6754feb4c34a4b6d65fbc359252bf6654dcce3937bf1d95aae4402a60a8f5939", size = 101212, upload-time = "2022-11-20T20:37:26.349Z" }, +] + +[[package]] +name = "zope-event" +version = "6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/46/33/d3eeac228fc14de76615612ee208be2d8a5b5b0fada36bf9b62d6b40600c/zope_event-6.1.tar.gz", hash = "sha256:6052a3e0cb8565d3d4ef1a3a7809336ac519bc4fe38398cb8d466db09adef4f0", size = 18739, upload-time = "2025-11-07T08:05:49.934Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/b0/956902e5e1302f8c5d124e219c6bf214e2649f92ad5fce85b05c039a04c9/zope_event-6.1-py3-none-any.whl", hash = "sha256:0ca78b6391b694272b23ec1335c0294cc471065ed10f7f606858fc54566c25a0", size = 6414, upload-time = "2025-11-07T08:05:48.874Z" }, +] + +[[package]] +name = "zope-interface" +version = "8.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/86/a4/77daa5ba398996d16bb43fc721599d27d03eae68fe3c799de1963c72e228/zope_interface-8.2.tar.gz", hash = "sha256:afb20c371a601d261b4f6edb53c3c418c249db1a9717b0baafc9a9bb39ba1224", size = 254019, upload-time = "2026-01-09T07:51:07.253Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/a0/1e1fabbd2e9c53ef92b69df6d14f4adc94ec25583b1380336905dc37e9a0/zope_interface-8.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:624b6787fc7c3e45fa401984f6add2c736b70a7506518c3b537ffaacc4b29d4c", size = 208785, upload-time = "2026-01-09T08:05:17.348Z" }, + { url = "https://files.pythonhosted.org/packages/c3/2a/88d098a06975c722a192ef1fb7d623d1b57c6a6997cf01a7aabb45ab1970/zope_interface-8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bc9ded9e97a0ed17731d479596ed1071e53b18e6fdb2fc33af1e43f5fd2d3aaa", size = 208976, upload-time = "2026-01-09T08:05:18.792Z" }, + { url = "https://files.pythonhosted.org/packages/e9/e8/757398549fdfd2f8c89f32c82ae4d2f0537ae2a5d2f21f4a2f711f5a059f/zope_interface-8.2-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:532367553e4420c80c0fc0cabcc2c74080d495573706f66723edee6eae53361d", size = 259411, upload-time = "2026-01-09T08:05:20.567Z" }, + { url = "https://files.pythonhosted.org/packages/91/af/502601f0395ce84dff622f63cab47488657a04d0065547df42bee3a680ff/zope_interface-8.2-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2bf9cf275468bafa3c72688aad8cfcbe3d28ee792baf0b228a1b2d93bd1d541a", size = 264859, upload-time = "2026-01-09T08:05:22.234Z" }, + { url = "https://files.pythonhosted.org/packages/89/0c/d2f765b9b4814a368a7c1b0ac23b68823c6789a732112668072fe596945d/zope_interface-8.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0009d2d3c02ea783045d7804da4fd016245e5c5de31a86cebba66dd6914d59a2", size = 264398, upload-time = "2026-01-09T08:05:23.853Z" }, + { url = "https://files.pythonhosted.org/packages/4a/81/2f171fbc4222066957e6b9220c4fb9146792540102c37e6d94e5d14aad97/zope_interface-8.2-cp312-cp312-win_amd64.whl", hash = "sha256:845d14e580220ae4544bd4d7eb800f0b6034fe5585fc2536806e0a26c2ee6640", size = 212444, upload-time = "2026-01-09T08:05:25.148Z" }, +] From 0884d3ac9ea1be581d6beafcee875dfb186eb574 Mon Sep 17 00:00:00 2001 From: Tom Date: Sat, 10 Jan 2026 18:43:53 +0100 Subject: [PATCH 40/53] [ADD] pdfminer --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 22d3f9a..e454f65 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,6 +48,7 @@ dependencies = [ "ofxparse==0.21", "openpyxl==3.1.2", "passlib==1.7.4", + "pdfminer.six==20211012", "Pillow==10.2.0", "polib==1.1.1", "psutil==5.9.8", From 48b3c3723ac1e1b2470ee972313ff2defc59d6bf Mon Sep 17 00:00:00 2001 From: Tom Date: Sat, 10 Jan 2026 19:08:39 +0100 Subject: [PATCH 41/53] [FIX] dependencies and sources of modules --- oca_all/__manifest__.py | 12 ++++----- pyproject.toml | 7 ++--- uv.lock | 60 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 10 deletions(-) diff --git a/oca_all/__manifest__.py b/oca_all/__manifest__.py index 672fec5..1a58390 100644 --- a/oca_all/__manifest__.py +++ b/oca_all/__manifest__.py @@ -119,12 +119,10 @@ "account_reconcile_oca", "account_statement_import_base", "account_statement_import_file", - # "account_statement_import_online_wise", + "account_statement_import_online_wise", "account_statement_import_online_paypal", "account_tax_unece", "account_usability", - # "apps_download", - # "apps_product_creator", "base_technical_features", "base_ubl", "base_unece", @@ -135,9 +133,9 @@ "document_knowledge", "document_page", "github_connector", - # "github_connector_oca", + "github_connector_oca", "github_connector_odoo", - # "membership_delegated_partner_line", + "membership_delegated_partner_line", "membership_extension", "mis_builder", "mis_builder_budget", @@ -146,14 +144,14 @@ "multi_step_wizard", "partner_statement", "project_task_add_very_high", - # "oca_custom", + "oca_custom", "partner_contact_access_link", "project_role", "report_xlsx", "report_xlsx_helper", "sentry", "server_action_mass_edit", - # "survey_xlsx", + "survey_xlsx", "sql_request_abstract", "uom_unece", "web_responsive", diff --git a/pyproject.toml b/pyproject.toml index e454f65..ec2b4c6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -101,9 +101,10 @@ odoo = { git = "https://github.com/OCA/OCB" } # unreleased dependency, add it to test-requirements.txt to let the # test pipeline to use it as well -odoo18-addon-membership-delegated-partner-line = { git = "https://github.com/gfcapalbo/vertical-association", branch = "18.0-MIG-membership_delegated_partner_line" } -odoo18-addon-github-connector-oca = { git = "https://github.com/Therp/interface-github", branch = "18.0-mig-github_connector_oca" } -odoo18-addon-github-survey-oca = { git = "https://github.com/OCA/survey", branch = "18.0" } +odoo-addon-membership-delegated-partner-line = { git = "https://github.com/gfcapalbo/vertical-association", branch = "18.0-MIG-membership_delegated_partner_line", subdirectory = "membership_delegated_partner_line" } +odoo-addon-github-connector-oca = { git = "https://github.com/Therp/interface-github", branch = "18.0-mig-github_connector_oca", subdirectory = "github_connector_oca" } +odoo-addon-survey-xlsx = { git = "https://github.com/ByteMeAsap/survey", branch = "18.0-mig-survey_xlsx", subdirectory = "survey_xlsx" } +odoo-addon-account-statement-import-online-wise = { git = "https://github.com/Therp/bank-statement-import", branch = "18.0-mig-account-statement-import-online-wise", subdirectory = "account_statement_import_online_wise" } # Example to develop module from an other repository # installing in editable mode diff --git a/uv.lock b/uv.lock index 2d4cec2..9370711 100644 --- a/uv.lock +++ b/uv.lock @@ -602,6 +602,7 @@ dependencies = [ { name = "odoo-addon-account-statement-import-base" }, { name = "odoo-addon-account-statement-import-file" }, { name = "odoo-addon-account-statement-import-online-paypal" }, + { name = "odoo-addon-account-statement-import-online-wise" }, { name = "odoo-addon-account-tax-unece" }, { name = "odoo-addon-account-usability" }, { name = "odoo-addon-base-technical-features" }, @@ -614,7 +615,9 @@ dependencies = [ { name = "odoo-addon-document-knowledge" }, { name = "odoo-addon-document-page" }, { name = "odoo-addon-github-connector" }, + { name = "odoo-addon-github-connector-oca" }, { name = "odoo-addon-github-connector-odoo" }, + { name = "odoo-addon-membership-delegated-partner-line" }, { name = "odoo-addon-membership-extension" }, { name = "odoo-addon-mis-builder" }, { name = "odoo-addon-mis-builder-budget" }, @@ -630,6 +633,7 @@ dependencies = [ { name = "odoo-addon-sentry" }, { name = "odoo-addon-server-action-mass-edit" }, { name = "odoo-addon-sql-request-abstract" }, + { name = "odoo-addon-survey-xlsx" }, { name = "odoo-addon-uom-unece" }, { name = "odoo-addon-web-refresher" }, { name = "odoo-addon-web-responsive" }, @@ -638,6 +642,7 @@ dependencies = [ { name = "ofxparse" }, { name = "openpyxl" }, { name = "passlib" }, + { name = "pdfminer-six" }, { name = "pillow" }, { name = "polib" }, { name = "psutil" }, @@ -710,6 +715,7 @@ requires-dist = [ { name = "odoo-addon-account-statement-import-base", specifier = "==18.0.*" }, { name = "odoo-addon-account-statement-import-file", specifier = "==18.0.*" }, { name = "odoo-addon-account-statement-import-online-paypal", specifier = "==18.0.*" }, + { name = "odoo-addon-account-statement-import-online-wise", git = "https://github.com/Therp/bank-statement-import?subdirectory=account_statement_import_online_wise&branch=18.0-mig-account-statement-import-online-wise" }, { name = "odoo-addon-account-tax-unece", specifier = "==18.0.*" }, { name = "odoo-addon-account-usability", specifier = "==18.0.*" }, { name = "odoo-addon-base-technical-features", specifier = "==18.0.*" }, @@ -722,7 +728,9 @@ requires-dist = [ { name = "odoo-addon-document-knowledge", specifier = "==18.0.*" }, { name = "odoo-addon-document-page", specifier = "==18.0.*" }, { name = "odoo-addon-github-connector", specifier = "==18.0.*" }, + { name = "odoo-addon-github-connector-oca", git = "https://github.com/Therp/interface-github?subdirectory=github_connector_oca&branch=18.0-mig-github_connector_oca" }, { name = "odoo-addon-github-connector-odoo", specifier = "==18.0.*" }, + { name = "odoo-addon-membership-delegated-partner-line", git = "https://github.com/gfcapalbo/vertical-association?subdirectory=membership_delegated_partner_line&branch=18.0-MIG-membership_delegated_partner_line" }, { name = "odoo-addon-membership-extension", specifier = "==18.0.*" }, { name = "odoo-addon-mis-builder", specifier = "==18.0.*" }, { name = "odoo-addon-mis-builder-budget", specifier = "==18.0.*" }, @@ -738,6 +746,7 @@ requires-dist = [ { name = "odoo-addon-sentry", specifier = "==18.0.*" }, { name = "odoo-addon-server-action-mass-edit", specifier = "==18.0.*" }, { name = "odoo-addon-sql-request-abstract", specifier = "==18.0.*" }, + { name = "odoo-addon-survey-xlsx", git = "https://github.com/ByteMeAsap/survey?subdirectory=survey_xlsx&branch=18.0-mig-survey_xlsx" }, { name = "odoo-addon-uom-unece", specifier = "==18.0.*" }, { name = "odoo-addon-web-refresher", specifier = "==18.0.*" }, { name = "odoo-addon-web-responsive", specifier = "==18.0.*" }, @@ -746,6 +755,7 @@ requires-dist = [ { name = "ofxparse", specifier = "==0.21" }, { name = "openpyxl", specifier = "==3.1.2" }, { name = "passlib", specifier = "==1.7.4" }, + { name = "pdfminer-six", specifier = "==20211012" }, { name = "pillow", specifier = "==10.2.0" }, { name = "polib", specifier = "==1.1.1" }, { name = "psutil", specifier = "==5.9.8" }, @@ -1046,6 +1056,17 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/50/f6/fcce33781f7fb924584cc0b2107322a45a17db216afa5c363b673296b752/odoo_addon_account_statement_import_online_paypal-18.0.1.0.2-py3-none-any.whl", hash = "sha256:b53f8baae23caf8d52a01226bfe7c686eee2544c26988bc73b0f0b41144ec967", size = 50836, upload-time = "2025-10-07T13:56:22.993Z" }, ] +[[package]] +name = "odoo-addon-account-statement-import-online-wise" +version = "18.0.1.0.0.1" +source = { git = "https://github.com/Therp/bank-statement-import?subdirectory=account_statement_import_online_wise&branch=18.0-mig-account-statement-import-online-wise#f0aefbdeb99e181fa21122f5639c564864d734d7" } +dependencies = [ + { name = "cryptography" }, + { name = "odoo" }, + { name = "odoo-addon-account-statement-import-online" }, + { name = "odoo-addon-web-widget-dropdown-dynamic" }, +] + [[package]] name = "odoo-addon-account-tax-unece" version = "18.0.1.1.0" @@ -1184,6 +1205,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d4/15/f3bbdd74884e80a828c185060226f3a0681c275aa8a782b1fabbdea33501/odoo_addon_github_connector-18.0.1.0.0.2-py3-none-any.whl", hash = "sha256:a49d9a18f63bd69933f6d5759ea2529b67f04f9ab19a22839cdafb2aafebadc8", size = 583615, upload-time = "2025-05-21T11:47:23.966Z" }, ] +[[package]] +name = "odoo-addon-github-connector-oca" +version = "18.0.1.0.0" +source = { git = "https://github.com/Therp/interface-github?subdirectory=github_connector_oca&branch=18.0-mig-github_connector_oca#bc3f6da8e1f5ef81b3c0b8a0a0f524dfae32d4e9" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-github-connector-odoo" }, +] + [[package]] name = "odoo-addon-github-connector-odoo" version = "18.0.1.0.1.1" @@ -1197,6 +1227,14 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1f/6a/1c9df36717b3fb5c3d75fe390b7dfd8532898a7213039e69e980a46550fc/odoo_addon_github_connector_odoo-18.0.1.0.1.1-py3-none-any.whl", hash = "sha256:f83fdc39ab0981a891011986393b59859257189559e0c0ef9c75ddb4f1c6a6b9", size = 388134, upload-time = "2025-10-14T03:01:42.554Z" }, ] +[[package]] +name = "odoo-addon-membership-delegated-partner-line" +version = "18.0.1.0.0.1" +source = { git = "https://github.com/gfcapalbo/vertical-association?subdirectory=membership_delegated_partner_line&branch=18.0-MIG-membership_delegated_partner_line#602a37338fe362cfb86d84faa28d66dce1bc60e7" } +dependencies = [ + { name = "odoo" }, +] + [[package]] name = "odoo-addon-membership-extension" version = "18.0.1.0.0.2" @@ -1372,6 +1410,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d2/6c/4c79b297e78e4edcbd004278d5ca0e411369a57a1105c41d65f87c7cde81/odoo_addon_sql_request_abstract-18.0.1.0.0.12-py3-none-any.whl", hash = "sha256:bdb61070c355fd9fba472d8f7d4b342badab6eef37633c24053524e648f852c3", size = 192765, upload-time = "2025-09-16T03:38:49.624Z" }, ] +[[package]] +name = "odoo-addon-survey-xlsx" +version = "18.0.1.0.0" +source = { git = "https://github.com/ByteMeAsap/survey?subdirectory=survey_xlsx&branch=18.0-mig-survey_xlsx#07d26e715bd961c5599e3ff8491a4c143fab5a20" } +dependencies = [ + { name = "odoo" }, + { name = "odoo-addon-report-xlsx" }, +] + [[package]] name = "odoo-addon-uom-unece" version = "18.0.1.0.0.3" @@ -1508,6 +1555,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/32/2b/121e912bd60eebd623f873fd090de0e84f322972ab25a7f9044c056804ed/pathspec-1.0.3-py3-none-any.whl", hash = "sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c", size = 55021, upload-time = "2026-01-09T15:46:44.652Z" }, ] +[[package]] +name = "pdfminer-six" +version = "20211012" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "chardet" }, + { name = "cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/0a/b01677bb31bd79756f05ff3e052ad369ac0ebb2e64b47fc6d6bad290d981/pdfminer.six-20211012.tar.gz", hash = "sha256:0351f17d362ee2d48b158be52bcde6576d96460efd038a3e89a043fba6d634d7", size = 7350867, upload-time = "2021-10-12T18:49:32.183Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/2b/0a3329605203de8df990ff5427a145dc81ea3e0eff0046424d1d306d1b29/pdfminer.six-20211012-py3-none-any.whl", hash = "sha256:d3efb75c0249b51c1bf795e3a8bddf1726b276c77bf75fb136adea471ee2825b", size = 5604808, upload-time = "2021-10-12T18:49:23.832Z" }, +] + [[package]] name = "pillow" version = "10.2.0" From 13f38d8c1910fb47aaa864bc14583791d7747427 Mon Sep 17 00:00:00 2001 From: Tom Date: Sat, 10 Jan 2026 19:09:41 +0100 Subject: [PATCH 42/53] fixup! [FIX] dependencies and sources of modules --- oca_all/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oca_all/__manifest__.py b/oca_all/__manifest__.py index 1a58390..74be070 100644 --- a/oca_all/__manifest__.py +++ b/oca_all/__manifest__.py @@ -151,7 +151,7 @@ "report_xlsx_helper", "sentry", "server_action_mass_edit", - "survey_xlsx", + "survey_xlsx", "sql_request_abstract", "uom_unece", "web_responsive", From 8bbf6d4aeb33ff2f5bde8b4c62c40b0c8d826748 Mon Sep 17 00:00:00 2001 From: Tom Date: Sat, 10 Jan 2026 19:18:26 +0100 Subject: [PATCH 43/53] fixup! fixup! [FIX] dependencies and sources of modules --- pyproject.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index ec2b4c6..a2ebe4b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -101,10 +101,10 @@ odoo = { git = "https://github.com/OCA/OCB" } # unreleased dependency, add it to test-requirements.txt to let the # test pipeline to use it as well -odoo-addon-membership-delegated-partner-line = { git = "https://github.com/gfcapalbo/vertical-association", branch = "18.0-MIG-membership_delegated_partner_line", subdirectory = "membership_delegated_partner_line" } -odoo-addon-github-connector-oca = { git = "https://github.com/Therp/interface-github", branch = "18.0-mig-github_connector_oca", subdirectory = "github_connector_oca" } -odoo-addon-survey-xlsx = { git = "https://github.com/ByteMeAsap/survey", branch = "18.0-mig-survey_xlsx", subdirectory = "survey_xlsx" } -odoo-addon-account-statement-import-online-wise = { git = "https://github.com/Therp/bank-statement-import", branch = "18.0-mig-account-statement-import-online-wise", subdirectory = "account_statement_import_online_wise" } +odoo-addon-membership_delegated_partner_line = { git = "https://github.com/gfcapalbo/vertical-association", branch = "18.0-MIG-membership_delegated_partner_line", subdirectory = "membership_delegated_partner_line" } +odoo-addon-github_connector_oca = { git = "https://github.com/Therp/interface-github", branch = "18.0-mig-github_connector_oca", subdirectory = "github_connector_oca" } +odoo-addon-survey_xlsx = { git = "https://github.com/ByteMeAsap/survey", branch = "18.0-mig-survey_xlsx", subdirectory = "survey_xlsx" } +odoo-addon-account_statement_import_online_wise = { git = "https://github.com/Therp/bank-statement-import", branch = "18.0-mig-account-statement-import-online-wise", subdirectory = "account_statement_import_online_wise" } # Example to develop module from an other repository # installing in editable mode From 659e53793a035f86d09c535efdc1169c5d55c629 Mon Sep 17 00:00:00 2001 From: Hussam Suleiman Date: Wed, 14 Jan 2026 10:53:14 +0100 Subject: [PATCH 44/53] Add test-requirements.txt. --- test-requirements.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 test-requirements.txt diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 0000000..12fd027 --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,3 @@ +# While running tests, coverage is trying to read configuration in pyproject.toml +coverage[toml] +odoo18-addon-membership-delegated-partner-line @ git+https://github.com/gfcapalbo/vertical-association.git@18.0-MIG-membership_delegated_partner_line \ No newline at end of file From 163705c73fd87379bb5ac898b8b4ef3db6bc580e Mon Sep 17 00:00:00 2001 From: Hussam Suleiman Date: Wed, 14 Jan 2026 17:45:04 +0100 Subject: [PATCH 45/53] Add test-requirements.txt. --- test-requirements.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test-requirements.txt b/test-requirements.txt index 12fd027..fb53919 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,3 +1,6 @@ # While running tests, coverage is trying to read configuration in pyproject.toml coverage[toml] -odoo18-addon-membership-delegated-partner-line @ git+https://github.com/gfcapalbo/vertical-association.git@18.0-MIG-membership_delegated_partner_line \ No newline at end of file +odoo18-addon-membership-delegated-partner-line @ git+https://github.com/gfcapalbo/vertical-association.git@18.0-MIG-membership_delegated_partner_line#subdirectory=membership_delegated_partner_line +odoo-addon-github_connector_oca @ git+https://github.com/Therp/interface-github@18.0-mig-github_connector_oca#subdirectorygithub_connector_oca +odoo-addon-survey_xlsx @ git+https://github.com/ByteMeAsap/survey@18.0-mig-survey_xlsx#subdirectory=survey_xlsx +odoo-addon-account_statement_import_online_wise @ git+https://github.com/Therp/bank-statement-import@18.0-mig-account-statement-import-online-wise#subdirectory=account_statement_import_online_wise From d95266ac25dfce8fffc293f42b79608d1510d7c4 Mon Sep 17 00:00:00 2001 From: Hussam Suleiman Date: Thu, 15 Jan 2026 01:06:45 +0100 Subject: [PATCH 46/53] Add https://github.com/OCA/OCB/pull/1319 to pyproject.toml. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index a2ebe4b..3d359b2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -97,7 +97,7 @@ dev = [ [tool.uv.sources] # Use fix updating account move line update membership line -odoo = { git = "https://github.com/OCA/OCB" } +odoo = { git = "https://github.com/OCA/OCB", rev = "refs/pull/1319/head" } # unreleased dependency, add it to test-requirements.txt to let the # test pipeline to use it as well From b12079f37151a07a94d71ee6ced116bd053c4694 Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 15 Jan 2026 11:53:34 +0100 Subject: [PATCH 47/53] fixup! Add test-requirements.txt. --- test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-requirements.txt b/test-requirements.txt index fb53919..fc80e74 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,6 +1,6 @@ # While running tests, coverage is trying to read configuration in pyproject.toml coverage[toml] odoo18-addon-membership-delegated-partner-line @ git+https://github.com/gfcapalbo/vertical-association.git@18.0-MIG-membership_delegated_partner_line#subdirectory=membership_delegated_partner_line -odoo-addon-github_connector_oca @ git+https://github.com/Therp/interface-github@18.0-mig-github_connector_oca#subdirectorygithub_connector_oca +odoo-addon-github_connector_oca @ git+https://github.com/Therp/interface-github@18.0-mig-github_connector_oca#subdirectory=github_connector_oca odoo-addon-survey_xlsx @ git+https://github.com/ByteMeAsap/survey@18.0-mig-survey_xlsx#subdirectory=survey_xlsx odoo-addon-account_statement_import_online_wise @ git+https://github.com/Therp/bank-statement-import@18.0-mig-account-statement-import-online-wise#subdirectory=account_statement_import_online_wise From 17068212baa5b330240fff4c90d9bc1b6971555a Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 15 Jan 2026 11:56:32 +0100 Subject: [PATCH 48/53] fixup! fixup! Add test-requirements.txt. --- test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-requirements.txt b/test-requirements.txt index fc80e74..61f7ec3 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,6 +1,6 @@ # While running tests, coverage is trying to read configuration in pyproject.toml coverage[toml] -odoo18-addon-membership-delegated-partner-line @ git+https://github.com/gfcapalbo/vertical-association.git@18.0-MIG-membership_delegated_partner_line#subdirectory=membership_delegated_partner_line +odoo-addon-membership-delegated-partner-line @ git+https://github.com/gfcapalbo/vertical-association.git@18.0-MIG-membership_delegated_partner_line#subdirectory=membership_delegated_partner_line odoo-addon-github_connector_oca @ git+https://github.com/Therp/interface-github@18.0-mig-github_connector_oca#subdirectory=github_connector_oca odoo-addon-survey_xlsx @ git+https://github.com/ByteMeAsap/survey@18.0-mig-survey_xlsx#subdirectory=survey_xlsx odoo-addon-account_statement_import_online_wise @ git+https://github.com/Therp/bank-statement-import@18.0-mig-account-statement-import-online-wise#subdirectory=account_statement_import_online_wise From f6049e677d5169ff07b0c514354b9650db8d80e7 Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 15 Jan 2026 12:18:32 +0100 Subject: [PATCH 49/53] fixup! Add https://github.com/OCA/OCB/pull/1319 to pyproject.toml. --- uv.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/uv.lock b/uv.lock index 9370711..0dcf777 100644 --- a/uv.lock +++ b/uv.lock @@ -700,7 +700,7 @@ requires-dist = [ { name = "lxml-html-clean" }, { name = "markupsafe", specifier = "==2.1.5" }, { name = "num2words", specifier = "==0.5.13" }, - { name = "odoo", git = "https://github.com/OCA/OCB" }, + { name = "odoo", git = "https://github.com/OCA/OCB?rev=refs%2Fpull%2F1319%2Fhead" }, { name = "odoo-addon-account-banking-pain-base", specifier = "==18.0.*" }, { name = "odoo-addon-account-banking-sepa-credit-transfer", specifier = "==18.0.*" }, { name = "odoo-addon-account-credit-control", specifier = "==18.0.*" }, @@ -796,7 +796,7 @@ dev = [ [[package]] name = "odoo" version = "18.0" -source = { git = "https://github.com/OCA/OCB#16055b5031886551238c14d54523701bcf35c0d7" } +source = { git = "https://github.com/OCA/OCB?rev=refs%2Fpull%2F1319%2Fhead#084e0f6e7417033b633370255a441cb267943fe9" } dependencies = [ { name = "asn1crypto" }, { name = "babel" }, From 00eff0e3d45f6ff4e055872756c8b79826dda686 Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 15 Jan 2026 15:31:19 +0100 Subject: [PATCH 50/53] [ADD] pdfminer.six --- test-requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/test-requirements.txt b/test-requirements.txt index 61f7ec3..e8ed4af 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,4 +1,5 @@ # While running tests, coverage is trying to read configuration in pyproject.toml +pdfminer.six coverage[toml] odoo-addon-membership-delegated-partner-line @ git+https://github.com/gfcapalbo/vertical-association.git@18.0-MIG-membership_delegated_partner_line#subdirectory=membership_delegated_partner_line odoo-addon-github_connector_oca @ git+https://github.com/Therp/interface-github@18.0-mig-github_connector_oca#subdirectory=github_connector_oca From d4db7290898ad8c637d8a7f381a08d5f2a41a4f4 Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 15 Jan 2026 16:01:56 +0100 Subject: [PATCH 51/53] [UPD] pin pyopenssl --- test-requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/test-requirements.txt b/test-requirements.txt index e8ed4af..be532b1 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,5 +1,6 @@ # While running tests, coverage is trying to read configuration in pyproject.toml pdfminer.six +pyopenssl==23.2 coverage[toml] odoo-addon-membership-delegated-partner-line @ git+https://github.com/gfcapalbo/vertical-association.git@18.0-MIG-membership_delegated_partner_line#subdirectory=membership_delegated_partner_line odoo-addon-github_connector_oca @ git+https://github.com/Therp/interface-github@18.0-mig-github_connector_oca#subdirectory=github_connector_oca From f670a1f417f1d54a29d4ea3694fe1b14c7970df0 Mon Sep 17 00:00:00 2001 From: Tom Date: Sun, 18 Jan 2026 21:26:43 +0100 Subject: [PATCH 52/53] [DEL] 14.0 requirement to allow prerelease for translations --- pyproject.toml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 3d359b2..749fb2f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,9 +76,6 @@ dependencies = [ addons_dirs = ["./"] [tool.uv] -# On OCA 14.0 series translations commits are realeased -# in pre-release state -prerelease = "allow" # tell uv when dependencies may change cache-keys = [{ file = "pyproject.toml" }, { file = "**/__manifest__.py" }] From 2e3d51025c5b4b1fcb8fea7ea32588c24feaf5bc Mon Sep 17 00:00:00 2001 From: "Giovanni Capalbo (Therp)" Date: Fri, 16 Jan 2026 15:48:20 +0100 Subject: [PATCH 53/53] [ADD] extra filter to visualize all attachments (#5) --- oca_custom/README.rst | 16 ++++++++-------- oca_custom/__manifest__.py | 7 +++++-- oca_custom/views/document_knowledge.xml | 22 ++++++++++++++++++++++ 3 files changed, 35 insertions(+), 10 deletions(-) create mode 100644 oca_custom/views/document_knowledge.xml diff --git a/oca_custom/README.rst b/oca_custom/README.rst index fe39545..db140b3 100644 --- a/oca_custom/README.rst +++ b/oca_custom/README.rst @@ -57,18 +57,18 @@ Authors Contributors ------------ -- Sylvain LE GAL (https://twitter.com/legalsylvain) +- Sylvain LE GAL (https://twitter.com/legalsylvain) -- Benoit GUILLOT (benoit.guillot@akretion.com) +- Benoit GUILLOT (benoit.guillot@akretion.com) -- Stéphane Bidoul (stephane.bidoul@acsone.eu) +- Stéphane Bidoul (stephane.bidoul@acsone.eu) -- `Tecnativa `__: +- `Tecnativa `__: - - Vicent Cubells - - Cristina Martin R. - - Carlos Roca - - Ernesto Tejeda + - Vicent Cubells + - Cristina Martin R. + - Carlos Roca + - Ernesto Tejeda Maintainers ----------- diff --git a/oca_custom/__manifest__.py b/oca_custom/__manifest__.py index 01ef24f..9eb2174 100644 --- a/oca_custom/__manifest__.py +++ b/oca_custom/__manifest__.py @@ -9,7 +9,10 @@ "website": "https://github.com/OCA/oca-custom", "author": "GRAP, Akretion, Odoo Community Association (OCA)", "license": "AGPL-3", - "depends": ["github_connector"], - "data": ["views/res_partner.xml"], + "depends": ["github_connector", "document_knowledge"], + "data": [ + "views/res_partner.xml", + "views/document_knowledge.xml", + ], "installable": True, } diff --git a/oca_custom/views/document_knowledge.xml b/oca_custom/views/document_knowledge.xml new file mode 100644 index 0000000..49eeb55 --- /dev/null +++ b/oca_custom/views/document_knowledge.xml @@ -0,0 +1,22 @@ + + + + ir_attachments_view_all + ir.attachment + + + + + [ + ('res_model', 'not like', 'ir.%'), + ('res_model', '!=', False), + ('id', '!=', 0), + ] + + + + +