From e2ea4adb84bb569529f5be2f177e85e7e2bc1632 Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Thu, 14 Sep 2023 10:03:57 -0700 Subject: [PATCH] fixes to mock completion --- litellm/__pycache__/__init__.cpython-311.pyc | Bin 8226 -> 8226 bytes litellm/__pycache__/main.cpython-311.pyc | Bin 33730 -> 33733 bytes litellm/__pycache__/utils.cpython-311.pyc | Bin 104530 -> 104989 bytes litellm/main.py | 37 ++++++++----------- litellm/tests/test_mock_request.py | 4 +- litellm/utils.py | 8 +++- pyproject.toml | 2 +- 7 files changed, 26 insertions(+), 25 deletions(-) diff --git a/litellm/__pycache__/__init__.cpython-311.pyc b/litellm/__pycache__/__init__.cpython-311.pyc index f687fe5eca43afb0541abb9b45d02be88919b1ab..dabe860d76eb111a592350b3841d8d8f9225abeb 100644 GIT binary patch delta 19 ZcmZ4Fu*iXHIWI340}xCz+Q=oL001&}1XTb4 delta 19 ZcmZ4Fu*iXHIWI340}$k?Z{(6t001#h1R?+c diff --git a/litellm/__pycache__/main.cpython-311.pyc b/litellm/__pycache__/main.cpython-311.pyc index 57f2e449a6bcce7e1fc71e462b86f9d45687efb3..6b42eec1787cf7b4764e13822069750f286c00c5 100644 GIT binary patch delta 13912 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 delta 13780 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 I*P(*{Kb3=hZ~y=R diff --git a/litellm/__pycache__/utils.cpython-311.pyc b/litellm/__pycache__/utils.cpython-311.pyc index 0062150af51a66c6ddc5f1bc4aee73d4f5ddc33b..fbebc9cd5ea033f7640906188daf72efe5268db8 100644 GIT binary patch delta 1231 zcmYjPZ){Ul6u+nM-L@;VL$P$D`Qo7#vx<75-yl=o5 zog<@5CL0Je=1%#ek_9w;nL2sKh<_44%*4c%)VM6+i$1Jsr8bpJsi^BydHu1-|i=()4b|rHK6PD;S(jsMy zqmjU<6T(1?a{@Y8wC~IacSbl&#OpOW+4AtBtiiQ3iO|A;Db^3mdng1H8(OP&3(pO7 zy0z-~JUbE@(u9_Wyq4F5XAn(CJ)2kkgnq>{r04ZK>rtgH*f^Y6bO7$kBVfR@%+mJEZ|AEZkL1uG= zM`*|fWD8r!csP-=vV9q&zuU?s?0#t^v)#FL!s_gi7ct_y73h~i>)&vmX7_^YFEqZH znyfEvij+4+-rrgZ)|G>Gi%jENTo{A-N9#YWpM}}R*#qD1ob{HUX`9>Jj^9{lzV_*{ zP}yHS`D)p}wd@bihpOiMmAIC_Mc+yk*@ziapbqSU4NlEb_#XIMSjh}_7>^grd?u1OKwyhHdOMDPKTgg3BtmAEaI# z!BCRwmQ=7CExJbLNb4T?Hfc))chyn>c6c4)cT{8)cJUvP4>;y1gmwNi@{gTMufyBm zpF_Sc7Co<;#-S0eJLWj}G?-Gk^UyU+4@lC*NxBh9otD(h|5f4k!aezaozpulDW>@1YUDN44KH{dT8lJI*hZN1dex1=0w0P?V}UA~Ubi@c!gK?D_Wjt*Jqxp0u%|boYMNMghdnuUKLVeUMwV&eIuX=rP zr)FwYOSMs*F34s#sWq)-53zj}n>`CON>JD^sl&J}lOnR-D3Po%MrhIe$)OP@Mi|CI z0MGQHSgeNe0qmYb(;kTV2nzKbT(aedlx>Rgl-yS`!Bp9uQL`T7|4V_Nvek>|t=FUufSuMWvl+qcwKEw#u02C&y)|Mb75=^e>r hw`Dh5;~z8dxi{oTa(XT06&o28