From 06a4958414d3852a43a03d0a0f6e8d1afd903163 Mon Sep 17 00:00:00 2001 From: Benoit Chesneau Date: Fri, 28 Jan 2011 11:04:53 +0100 Subject: [PATCH] improve couchapp installation: - include restkit in source - move packages data in the packages - remove setuptools dependancy, only rely on distutils - plugins aren't depending on setuptools anymore - move vendor in its own repository + templates. --- bin/couchapp.py | 8 -- couchapp/__init__.pyo | Bin 0 -> 238 bytes couchapp/client.pyo | Bin 0 -> 12654 bytes couchapp/clone_app.pyo | Bin 0 -> 5273 bytes couchapp/commands.pyo | Bin 0 -> 12104 bytes couchapp/config.py | 13 +- couchapp/config.pyo | Bin 0 -> 4999 bytes couchapp/dispatch.pyo | Bin 0 -> 4694 bytes couchapp/errors.pyo | Bin 0 -> 2221 bytes couchapp/generator.py | 5 +- couchapp/generator.pyo | Bin 0 -> 6131 bytes couchapp/localdoc.pyo | Bin 0 -> 11966 bytes couchapp/macros.pyo | Bin 0 -> 4277 bytes couchapp/restkit/__init__.pyo | Bin 0 -> 2873 bytes couchapp/restkit/client/__init__.pyo | Bin 0 -> 301 bytes couchapp/restkit/client/request.pyo | Bin 0 -> 10608 bytes couchapp/restkit/client/response.pyo | Bin 0 -> 2384 bytes couchapp/restkit/conn/__init__.pyo | Bin 0 -> 950 bytes couchapp/restkit/conn/base.pyo | Bin 0 -> 2279 bytes couchapp/restkit/conn/http_connection.pyo | Bin 0 -> 1440 bytes couchapp/restkit/conn/threaded.pyo | Bin 0 -> 2470 bytes couchapp/restkit/errors.pyo | Bin 0 -> 7768 bytes couchapp/restkit/filters/__init__.pyo | Bin 0 -> 1533 bytes couchapp/restkit/filters/basicauth.pyo | Bin 0 -> 853 bytes couchapp/restkit/filters/oauth2.pyo | Bin 0 -> 3230 bytes couchapp/restkit/filters/simpleproxy.pyo | Bin 0 -> 2321 bytes couchapp/restkit/forms.pyo | Bin 0 -> 4601 bytes couchapp/restkit/http/__init__.pyo | Bin 0 -> 285 bytes couchapp/restkit/http/body.pyo | Bin 0 -> 10545 bytes couchapp/restkit/http/message.pyo | Bin 0 -> 7417 bytes couchapp/restkit/http/parser.pyo | Bin 0 -> 2271 bytes couchapp/restkit/http/unreader.pyo | Bin 0 -> 4463 bytes couchapp/restkit/resource.pyo | Bin 0 -> 5566 bytes couchapp/restkit/util/__init__.pyo | Bin 0 -> 4807 bytes couchapp/restkit/util/oauth2.pyo | Bin 0 -> 19349 bytes couchapp/restkit/util/sock.pyo | Bin 0 -> 3293 bytes .../templates}/app/README.md | 0 .../templates}/app/_attachments/index.html | 0 .../app/_attachments/style/main.css | 0 .../templates}/app/couchapp.json | 0 .../app/evently/items/_changes/data.js | 0 .../app/evently/items/_changes/mustache.html | 0 .../app/evently/items/_changes/query.json | 0 .../profile/profileReady/mustache.html | 0 .../profileReady/selectors/form/submit.js | 0 .../templates}/app/language | 0 .../templates}/app/views/recent-items/map.js | 0 .../templates}/functions/filter.js | 0 .../templates}/functions/list.js | 0 .../templates}/functions/map.js | 0 .../templates}/functions/reduce.js | 0 .../templates}/functions/show.js | 0 .../templates}/functions/spatial.js | 0 .../templates}/functions/update.js | 0 .../functions/validate_doc_update.js | 0 .../vendor}/_attachments/jquery.couch.app.js | 0 .../_attachments/jquery.couch.app.util.js | 0 .../vendor}/_attachments/jquery.evently.js | 0 .../vendor}/_attachments/jquery.mustache.js | 0 .../vendor}/_attachments/jquery.pathbinder.js | 0 .../templates/vendor}/_attachments/loader.js | 0 .../templates/vendor}/evently/README.md | 0 .../vendor}/evently/account/_init.js | 0 .../evently/account/adminParty/mustache.html | 0 .../vendor}/evently/account/doLogin.js | 0 .../vendor}/evently/account/doLogout.js | 0 .../vendor}/evently/account/doSignup.js | 0 .../vendor}/evently/account/loggedIn/after.js | 0 .../vendor}/evently/account/loggedIn/data.js | 0 .../evently/account/loggedIn/mustache.html | 0 .../evently/account/loggedIn/selectors.json | 0 .../evently/account/loggedOut/mustache.html | 0 .../evently/account/loggedOut/selectors.json | 0 .../evently/account/loginForm/after.js | 0 .../evently/account/loginForm/mustache.html | 0 .../loginForm/selectors/a[href=#signup].json | 0 .../loginForm/selectors/form/submit.js | 0 .../evently/account/signupForm/after.js | 0 .../evently/account/signupForm/mustache.html | 0 .../signupForm/selectors/a[href=#login].json | 0 .../signupForm/selectors/form/submit.js | 0 .../vendor}/evently/profile/loggedIn.js | 0 .../evently/profile/loggedOut/after.js | 0 .../evently/profile/loggedOut/mustache.html | 0 .../vendor}/evently/profile/noProfile/data.js | 0 .../evently/profile/noProfile/mustache.html | 0 .../noProfile/selectors/form/submit.js | 0 .../evently/profile/profileReady/after.js | 0 .../evently/profile/profileReady/data.js | 0 .../profile/profileReady/mustache.html | 0 .../templates/vendor}/lib/atom.js | 0 .../templates/vendor}/lib/cache.js | 0 .../templates/vendor}/lib/code.js | 0 .../templates/vendor}/lib/docform.js | 0 .../templates/vendor}/lib/linkup.js | 0 .../templates/vendor}/lib/list.js | 0 .../templates/vendor}/lib/markdown.js | 0 .../templates/vendor}/lib/md5.js | 0 .../templates/vendor}/lib/mustache.js | 0 .../templates/vendor}/lib/path.js | 0 .../templates/vendor}/lib/redirect.js | 0 .../templates/vendor}/lib/utils.js | 0 .../templates/vendor}/lib/validate.js | 0 .../templates/vendor}/metadata.json | 4 +- couchapp/util.py | 26 +--- couchapp/util.pyo | Bin 0 -> 11636 bytes couchapp/vendors/__init__.pyo | Bin 0 -> 653 bytes couchapp/vendors/base.pyo | Bin 0 -> 5332 bytes resources/scripts/couchapp | 8 +- resources/scripts/couchapp.bat | 2 +- resources/scripts/couchapp.py | 6 - setup.py | 126 ++++-------------- 112 files changed, 52 insertions(+), 146 deletions(-) delete mode 100644 bin/couchapp.py create mode 100644 couchapp/__init__.pyo create mode 100644 couchapp/client.pyo create mode 100644 couchapp/clone_app.pyo create mode 100644 couchapp/commands.pyo create mode 100644 couchapp/config.pyo create mode 100644 couchapp/dispatch.pyo create mode 100644 couchapp/errors.pyo create mode 100644 couchapp/generator.pyo create mode 100644 couchapp/localdoc.pyo create mode 100644 couchapp/macros.pyo create mode 100644 couchapp/restkit/__init__.pyo create mode 100644 couchapp/restkit/client/__init__.pyo create mode 100644 couchapp/restkit/client/request.pyo create mode 100644 couchapp/restkit/client/response.pyo create mode 100644 couchapp/restkit/conn/__init__.pyo create mode 100644 couchapp/restkit/conn/base.pyo create mode 100644 couchapp/restkit/conn/http_connection.pyo create mode 100644 couchapp/restkit/conn/threaded.pyo create mode 100644 couchapp/restkit/errors.pyo create mode 100644 couchapp/restkit/filters/__init__.pyo create mode 100644 couchapp/restkit/filters/basicauth.pyo create mode 100644 couchapp/restkit/filters/oauth2.pyo create mode 100644 couchapp/restkit/filters/simpleproxy.pyo create mode 100644 couchapp/restkit/forms.pyo create mode 100644 couchapp/restkit/http/__init__.pyo create mode 100644 couchapp/restkit/http/body.pyo create mode 100644 couchapp/restkit/http/message.pyo create mode 100644 couchapp/restkit/http/parser.pyo create mode 100644 couchapp/restkit/http/unreader.pyo create mode 100644 couchapp/restkit/resource.pyo create mode 100644 couchapp/restkit/util/__init__.pyo create mode 100644 couchapp/restkit/util/oauth2.pyo create mode 100644 couchapp/restkit/util/sock.pyo rename {templates => couchapp/templates}/app/README.md (100%) rename {templates => couchapp/templates}/app/_attachments/index.html (100%) rename {templates => couchapp/templates}/app/_attachments/style/main.css (100%) rename {templates => couchapp/templates}/app/couchapp.json (100%) rename {templates => couchapp/templates}/app/evently/items/_changes/data.js (100%) rename {templates => couchapp/templates}/app/evently/items/_changes/mustache.html (100%) rename {templates => couchapp/templates}/app/evently/items/_changes/query.json (100%) rename {templates => couchapp/templates}/app/evently/profile/profileReady/mustache.html (100%) rename {templates => couchapp/templates}/app/evently/profile/profileReady/selectors/form/submit.js (100%) rename {templates => couchapp/templates}/app/language (100%) rename {templates => couchapp/templates}/app/views/recent-items/map.js (100%) rename {templates => couchapp/templates}/functions/filter.js (100%) rename {templates => couchapp/templates}/functions/list.js (100%) rename {templates => couchapp/templates}/functions/map.js (100%) rename {templates => couchapp/templates}/functions/reduce.js (100%) rename {templates => couchapp/templates}/functions/show.js (100%) rename {templates => couchapp/templates}/functions/spatial.js (100%) rename {templates => couchapp/templates}/functions/update.js (100%) rename {templates => couchapp/templates}/functions/validate_doc_update.js (100%) rename {vendor => couchapp/templates/vendor}/_attachments/jquery.couch.app.js (100%) rename {vendor => couchapp/templates/vendor}/_attachments/jquery.couch.app.util.js (100%) rename {vendor => couchapp/templates/vendor}/_attachments/jquery.evently.js (100%) rename {vendor => couchapp/templates/vendor}/_attachments/jquery.mustache.js (100%) rename {vendor => couchapp/templates/vendor}/_attachments/jquery.pathbinder.js (100%) rename {vendor => couchapp/templates/vendor}/_attachments/loader.js (100%) rename {vendor => couchapp/templates/vendor}/evently/README.md (100%) rename {vendor => couchapp/templates/vendor}/evently/account/_init.js (100%) rename {vendor => couchapp/templates/vendor}/evently/account/adminParty/mustache.html (100%) rename {vendor => couchapp/templates/vendor}/evently/account/doLogin.js (100%) rename {vendor => couchapp/templates/vendor}/evently/account/doLogout.js (100%) rename {vendor => couchapp/templates/vendor}/evently/account/doSignup.js (100%) rename {vendor => couchapp/templates/vendor}/evently/account/loggedIn/after.js (100%) rename {vendor => couchapp/templates/vendor}/evently/account/loggedIn/data.js (100%) rename {vendor => couchapp/templates/vendor}/evently/account/loggedIn/mustache.html (100%) rename {vendor => couchapp/templates/vendor}/evently/account/loggedIn/selectors.json (100%) rename {vendor => couchapp/templates/vendor}/evently/account/loggedOut/mustache.html (100%) rename {vendor => couchapp/templates/vendor}/evently/account/loggedOut/selectors.json (100%) rename {vendor => couchapp/templates/vendor}/evently/account/loginForm/after.js (100%) rename {vendor => couchapp/templates/vendor}/evently/account/loginForm/mustache.html (100%) rename {vendor => couchapp/templates/vendor}/evently/account/loginForm/selectors/a[href=#signup].json (100%) rename {vendor => couchapp/templates/vendor}/evently/account/loginForm/selectors/form/submit.js (100%) rename {vendor => couchapp/templates/vendor}/evently/account/signupForm/after.js (100%) rename {vendor => couchapp/templates/vendor}/evently/account/signupForm/mustache.html (100%) rename {vendor => couchapp/templates/vendor}/evently/account/signupForm/selectors/a[href=#login].json (100%) rename {vendor => couchapp/templates/vendor}/evently/account/signupForm/selectors/form/submit.js (100%) rename {vendor => couchapp/templates/vendor}/evently/profile/loggedIn.js (100%) rename {vendor => couchapp/templates/vendor}/evently/profile/loggedOut/after.js (100%) rename {vendor => couchapp/templates/vendor}/evently/profile/loggedOut/mustache.html (100%) rename {vendor => couchapp/templates/vendor}/evently/profile/noProfile/data.js (100%) rename {vendor => couchapp/templates/vendor}/evently/profile/noProfile/mustache.html (100%) rename {vendor => couchapp/templates/vendor}/evently/profile/noProfile/selectors/form/submit.js (100%) rename {vendor => couchapp/templates/vendor}/evently/profile/profileReady/after.js (100%) rename {vendor => couchapp/templates/vendor}/evently/profile/profileReady/data.js (100%) rename {vendor => couchapp/templates/vendor}/evently/profile/profileReady/mustache.html (100%) rename {vendor => couchapp/templates/vendor}/lib/atom.js (100%) rename {vendor => couchapp/templates/vendor}/lib/cache.js (100%) rename {vendor => couchapp/templates/vendor}/lib/code.js (100%) rename {vendor => couchapp/templates/vendor}/lib/docform.js (100%) rename {vendor => couchapp/templates/vendor}/lib/linkup.js (100%) rename {vendor => couchapp/templates/vendor}/lib/list.js (100%) rename {vendor => couchapp/templates/vendor}/lib/markdown.js (100%) rename {vendor => couchapp/templates/vendor}/lib/md5.js (100%) rename {vendor => couchapp/templates/vendor}/lib/mustache.js (100%) rename {vendor => couchapp/templates/vendor}/lib/path.js (100%) rename {vendor => couchapp/templates/vendor}/lib/redirect.js (100%) rename {vendor => couchapp/templates/vendor}/lib/utils.js (100%) rename {vendor => couchapp/templates/vendor}/lib/validate.js (100%) rename {vendor => couchapp/templates/vendor}/metadata.json (54%) create mode 100644 couchapp/util.pyo create mode 100644 couchapp/vendors/__init__.pyo create mode 100644 couchapp/vendors/base.pyo delete mode 100755 resources/scripts/couchapp.py diff --git a/bin/couchapp.py b/bin/couchapp.py deleted file mode 100644 index 6c2c43f8..00000000 --- a/bin/couchapp.py +++ /dev/null @@ -1,8 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of couchapp released under the Apache 2 license. -# See the NOTICE for more information. - -from couchapp.dispatch import run - -run() \ No newline at end of file diff --git a/couchapp/__init__.pyo b/couchapp/__init__.pyo new file mode 100644 index 0000000000000000000000000000000000000000..1a0f59883c96db432260154a61195f219aba7337 GIT binary patch literal 238 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 BEI$AM literal 0 HcmV?d00001 diff --git a/couchapp/commands.pyo b/couchapp/commands.pyo new file mode 100644 index 0000000000000000000000000000000000000000..dfdc9b2a642d9a6c2601ca2ed48d48ead6d658a9 GIT binary patch literal 12104 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 A!~g&Q literal 0 HcmV?d00001 diff --git a/couchapp/config.py b/couchapp/config.py index cdab1c3f..06a2dae0 100644 --- a/couchapp/config.py +++ b/couchapp/config.py @@ -5,9 +5,9 @@ import os -from couchapp.client import Database -from couchapp.errors import AppError -from couchapp import util +from .client import Database +from .errors import AppError +from . import util class Config(object): """ main object to read configuration from ~/.couchapp.conf or @@ -20,13 +20,12 @@ class Config(object): extensions = [], hooks = {}, vendors = [ - "egg:couchapp#git", - "egg:couchapp#hg", - "egg:couchapp#couchdb" + "python:couchapp.vendors.backends.git#GitVendor", + "python:couchapp.vendors.backends.hg#HgVendor", + "python:couchapp.vendors.backends.couchdb#CouchdbVendor" ] ) - def __init__(self): self.rc_path = util.rcpath() self.global_conf = self.load(self.rc_path, self.DEFAULTS) diff --git a/couchapp/config.pyo b/couchapp/config.pyo new file mode 100644 index 0000000000000000000000000000000000000000..08df44658b08138358ea48e5a761d45ab6cedab1 GIT binary patch literal 4999 zcmcgvTXP&o6+S(Ckycts*2Q+@1dwAymSEP-4IEdXuq{JOKv1K^PDISqYG$;W)oNxn z-5Xn!R8(1h;3*HO;)OTAjshXN!>c#)3ne`Nz!E z$4_qmI+XIKg8x55vG-9$_%qTM*@WOpRFS@sJx?}0F>F_*Uy;44Y*veQP5L$2tIK8` z?YhJhvTY=qkf$QYA|Gu|a=DGxB$iJ8iJ$evKy0yc>|E=(&Q{09jGa+?5?8ouq8fBjS5&S_R1=&Lr|VX5x+-*t zCVA3L^q-fgAy18LPDnJRojCfm3Jr;xDojZ46|Xl(-{of<+t`$C)~v_ z+wLar$}bXkznF9Nd8X`iue{qWC;aGnCg|?b)|ERvMYL5+4M_wR>U0Oi{uz}M=^66p zP$ckJ_bOT!a#fC12x`QYW9m9(f|TktI1w1Ie@bUfN#0jsx@?wT>yqm9UQK$<(RMRB zW=49mD%81@0j)NakL#^DoX_`oNHQ`H2OYPg2G7GljS z!Gwg1EMrmF{tDsHlcNfeI5gsbpC|cc%3UKzRY~iVAw0HnSe3PhyK+<$C<<(QRXMED z(s^4Bz9XP=52N9gSP1^;u|785QC%LSm!*nB?gG?5i802(J3)?`T)^}vMp7dm9%4m6 zUtqW27W_Rx-$sjOSa*bQXyX7rl;l~u7pKn6qA%|x=*`j~X8f`ALXAW#k9LxNypqSA zC`r33tF}cn6@OnNlKcKyD94TAaq5JJb8SbU;(MF2WVd=5kQ9?j%K8% z7z2D@08-GQ_7{N&+#0xhbYgUGv`DITJA-<}%QnqpY3=r?D-T=TUKtK|K*Um07k1&{ zdRdaHMvAr?P0c~yp^5yLIh|{4r=7j{Z0pcbeu84@8nBL8G%H4JL3{AfYKz+ts1pAE zEp|~)^w;PCP@fiH8+Iu^z%I{58S=$vQ1BO75o4c*Q8xHIQHz_8DRH(MiH$FJ?>>53T01GEB-U|ZK&XTkOe$IoP)&HQ%Z}9ox5>>(35oTa;XhQ&y z$~;Kh(5a$2{gOJ7olvPNyLHLeN?Fx=A{tYo@fAR8`ScfMksS`=+^6>btE`^Y(fT}{t(sU@0DZ$>A~k?y?WOk&dHG)loq^i_AkhTQ}*Km8uR*zE#ns*7fi6H z$ieM)&$iqohT*<)G0gTm$d*fqd8s%r8!UHF>_?~=tq`XQw6Vd2+ zf@xRpI{&a2|#A z|86F_&@&lG`y`PaTgrbEqts0PTa>arm6R=irzY zb}O3dg83V4!m#Nd)$|&OqH38|6#i=ez{ek~&G5cU0nKGR2A45!|8rU&&qA!t4Dtq_ zg~e@vg||JqfI*PT>7P?Ta~Z&51wg{EfbI1{KohwMdh);X6LVkv1jx}`d$>U4aZdtI zZ1;QY{sn?Z1M03jRAPxq`R>y|62*4cWdn^TcnkWZp??{bz7e7=`vPQS`udDsNo@Lx zTd{*UOtzCavNYnq^3~kgM+s7)6UJz&>6lln6)%=x**H^7_{=uau2 zxy&o!m5$WubS#OaF>f3>i4Fcs#5bR~qupbA3zs3Qy zc$9?BXHM>49CfW{X{j*3Q>s635HLHzgbEz@WsG&?YDvj#gG=68B7uD5@*BOIN y*iZ2MQ(`NDi>F`l^16lZMF8bU1iu)HS0Fy$302#73j6((E9e8F>76t9_5KADn1&qy literal 0 HcmV?d00001 diff --git a/couchapp/dispatch.pyo b/couchapp/dispatch.pyo new file mode 100644 index 0000000000000000000000000000000000000000..716169d7c844d30d2a5b148fcd528bb1098fc0a9 GIT binary patch literal 4694 zcma)A&2J<}6@S(9Jsy9pz2109vKH)QX9Er!f>^ZiuJ*%OvLZ238_C418MV9H&h?E=0AR$ih`@QP%BnXqNTs8Ia>Q%jZ zzxR99Tli$U{+pjXeA}1&Uje`OQPRJm3h-y7E3$pwHnMHTG9(0%FJ&`k!ceZCFC`(Y0 z_aHQ@?W(rtB&bnndtQRNHZDmprHus%8roQtU|JiOxlJ%9hh<6rD&ag;n^+CoY|X>S z=->Fa(Q?qts;C|e25%%uKgs6MdDQRqyf}C(ibEZ28H$y4Cf9hyLQpY;9$ec9~o@}Ip`W0IdbaAK|xMoyCaJj zGQi5HKvay1a%zYyt}e+bq>6IpaGl|*GN*L~Z;g9ysBPohh-h1S168x-rG6Im!kg*J z51XxS_$=(w{+sE}O0(4q)70yrqwZ?Hv)b&fHiMPsn|GRT-)U~PDl~vqx8LbRaVMKb zdoxQyua`SMt6`)QW^X|tO!N>bdfX;!U<#eb{iNq*8D=Rv>G6zS5af!~ij1b{8Fklv z3$F7Mgh^YGuxB;$V1bu~d%bMpxC?!zki~J@xhey|) zp099_I1?P*=P&=A1Mfw2?2$7^8$gwjYe397XlUX_L}OcAmhtfENor%~ILg$OqWflC97^7kphLcV{#AH<`Kd@R5Ujgt{WAIU9ow0VVk%0wf z7TI&eYB%x&EXe~bC7X-`Y$YUB-dSm;I(!(O?DoARSczibJQ)r$W!IFP(oF01X4+B+ zEYV^Dq&>b_7adEige78xx1-9fN3tX%0KS`V@MNrCJrc!xeO33yu^(d3eyqJL@%(Vt z^A9a2BvBUmURU|fMov3C_AMdO_3&$o%g46vb<`6VUx-QfD&)R~lF}eC6{lck0K}_i z+RWj%;oPusMDU-xdl!3Hcf+H{uW1k&S>I`?JCqLL;0PE{8niCA>_>MVEyxypZ87px zIdW8zQCUVJrzJXlIe9m4-R0s6cYru1-v_EFQ-I6|DpL@ZseV?5)Qe@1EJ5-w%)RI% z73Z*lcvWFjvIu)gWvh_=IG2qVbf|`*e=T`hVfzC|8czH+b2ScY0xE` zD8RzwER3l?RXxZIpnjVd@&&0XwFhH-3r+&0__%woT8H7_dtFH zP-uxfgQo-lmtzk6hSkZhsRN<6%pXUtIe30Br~p4Gt|R^Z`8n5jUSrrI$_{{CymYxUexQ>0wk;h&DD2_g!{Gm;Y@ICS=3*td z`hVK`x*6MwQ^HnI`NY=aZ|jq*PL5ySd07vEa~L)72_IJ2JU_#l?cF_kV(_;`Z8)3e zd>koH2^tg{Iqu7FQbZ`V_%c=+Rxm4sUd51mm*WIHVgjT39Qlqm^@XiCc2_9*4N4N< z-6+j;39uZ-fsP^7r1~y%71IOC6HkJY!}YpO-;ypvel~e*wOPioQjF6N0#; zbyM7frFLpu+qb z;EE0&5?GS_g6$XSLCnNZ3^Ch5%Tn^-w21v7LUzO_D#eMq;>aIUSoNn7~I? z8ADTY^btv%g8yLXpm7^UatLI9jbP-nUHRS|T@(Cm!73 z!&Te4qeFM?o0M42nSap5bH*}!8X>QEu^+lblzW>(43zIDLz}A}d)+j2*E#uMJei#g zLWMmZXEs|ga@@z9XMTf5rlW@C+rTbv7F97fTs&ch%ILSwvmk zxo*lbjWUO5#V?Z1mo(up0WF|Rqb!>1X5LYg@d4~bal5S_faCo6%J_AvpDQV^=5ypU zFVkmw?e24E>AUq@<2d=dai1R6Z?WXz=w#oc6vrO1gM;{pWGm4Do>IV*6`PZX< zkWXF*?(-DlD^)YGOD1#gqngm3wk~|(>fNl_{~NeR21{2^HNb5R-1Cx|b7r08Qe&o3 QsugRqwU=sNuC*HGKiC*=Q~&?~ literal 0 HcmV?d00001 diff --git a/couchapp/errors.pyo b/couchapp/errors.pyo new file mode 100644 index 0000000000000000000000000000000000000000..8f4cb141494946990c9020f7d92ed4eb697486bb GIT binary patch literal 2221 zcmcIlU2D`p6usHB+ud!q->vlnK`NLBvF{>cTUrooky#Y%O9+`+8k^0;WKvZ6roY4g zlQWZhGWX6o>;D-Je*J!V64Uj^=ifKn%10iNd@FD>C;c5A4H$de3Ekxoo~=Nl3j-`H0V6Z9x2a8=r?GWCmkPT_U;d(0dI!B)Q|z`whBG@&S#4hn%J4 zFMk5g6qzA+LY2BIVs%s$x-dOP_Ve7{H2KBa18yZ|6(Ox+6!4gW4tMsUFwCNf3PUqs zBn&57Rw>`stL##A zymX11qg~|jN0mukw97lsJS#K2t2}mfIMwD@SDCzR_V2vuE|Z}QZqu{mhdLXlNo-mp zUtr>`8FIYH`$EM!lZi=mb{r+CYH#m2z&kVawE(_Usx&P#<8(uPF6%gUAF`-2=ekI~ zx432K@$n2X%6+IOlPHt#lB||}YvqQZp3IOV-v?ECF^Vp4VqW7Vwa2iNvtgfgU^Xy_ z7|KS2%n!MhyWAO~&mLW|v$NS>*-_Y`E56u=*yxFE4^N*4P`g1Lj=sh!$7#EEt|Utg zI~V4qj!OfD)ZP?;&Q6pn9SdkyAc0eVxxvvaPZ)-E=x6*$iKyfay}oCoPIW6Ff@wrM zx*@E*uqD8GOt1TtsSDX=#Iirdw|9-3G6AKYt1 QF5xJvoo)ZWZ*SZG2W^R6TmS$7 literal 0 HcmV?d00001 diff --git a/couchapp/generator.py b/couchapp/generator.py index fe115a5c..d15ed2ba 100644 --- a/couchapp/generator.py +++ b/couchapp/generator.py @@ -152,6 +152,9 @@ def generate_function(path, kind, name, template=None): def copy_helper(path, directory, tname="templates"): """ copy helper used to generate an app""" + if tname == "vendor": + tname = os.path.join("templates", tname) + templatedir = find_template_dir(tname, directory) if templatedir: if directory == "vendor": @@ -160,7 +163,7 @@ def copy_helper(path, directory, tname="templates"): os.makedirs(path) except: pass - + for root, dirs, files in os.walk(templatedir): rel = relpath(root, templatedir) if rel == ".": diff --git a/couchapp/generator.pyo b/couchapp/generator.pyo new file mode 100644 index 0000000000000000000000000000000000000000..0151955467e46d7cc1c3201879f964dce49a4e2b GIT binary patch literal 6131 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 literal 0 HcmV?d00001 diff --git a/couchapp/localdoc.pyo b/couchapp/localdoc.pyo new file mode 100644 index 0000000000000000000000000000000000000000..ff8e96134e2b2d2b78114c09a3a886d0ffaacea4 GIT binary patch literal 11966 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 NnqToN#manT`9Dn<4sieg literal 0 HcmV?d00001 diff --git a/couchapp/restkit/__init__.pyo b/couchapp/restkit/__init__.pyo new file mode 100644 index 0000000000000000000000000000000000000000..698fcd83cb030816150e25eed27d9c2683796882 GIT binary patch literal 2873 zcmb7GUsDuE5bwF;4h{|uP!yCXB)ND>#QZghNh|>mq;f!NfM_;lZLK@Qv9Pnd*_l&G z9Z&k|W4=Q^SH3_VQkB=FyZ6*8O;su!*UWVHboX@sx`*_7d;5laNDyM21;%i`*z+1wQ&#-t5^b#%fhx|JY`uc!RhtI-uOxiMWc3bDL zEK!L_naB_lhed+rh-j-u`$;5H+q9R5dOLONX)jT(j?Dce=()o*kABh0QIVzoxu>mL z52E-LM@6{~T_-Y;<3j_TcAlrX8^uGL$>Si7)P5chY}hPKtbVQVeV#r&DYk`^A{6Gd zC~P-|Yuz+T_tw%R!3#%evQ-=^EK(*{0~>`am@*D{H!@kQ z`EtD9A<23aJDo>=N-T`selA8UV@`CpqThW)P$!cUROY&nt)T3Vxv}}&;2PBYG8Mj z;j}^)kA_)$1o}hJuMC=4(1{v}(ST5ZAfrgO9fh4EI*ub}KgV^m6ojny<5$#Tg}}T;fNi?X}3#x zA)xHKTnFY}kf<0-M=G724ZqX=q21Yagd40dCvbCneaBIOkkLT{s7;W-LU$+(h7)eq z)7%6O%fq^_cVszGYT&3vx#x259XP7PK@4OSBP;}@N8zG9S{@YEDN8DF`oOprE`f=i z$5oj2!owiTZVZxm!}p^ka=yQuoiKn1n1lN-qP`_KLZvDir5Vu>0}TkW0wJx>A2B98}p8 zx~#xa9k8$@70_?I#2W#5f<_^t5FZZI!|~s*f*OWCdO)KipwMWI#&4hJbRWlH9s2k? z4lkf~Itl$rIKp@__vip4!kd+7_9B>{iSllXX5cp79evTrxWgUFwIu|nJ;&<cthi-JXK5N^)vXJXP%|z=95=7V z(*&MCU7nwVnMBYs8mF{ks6R^8NdZY6D4kor7^A(H$61ggh6toRt8?l;KC_)B1vkSX z_aw~~_Y&&&lHvsUu;HObeOjV+oQB*2Hj8oWQ~zfHjy;m%k-%7%;$xAYu)l*m=o+0k z)>DPu?azy(NeEmSFxOjOc$fp}dDj$(7|p3k~eLhNz3nVo}VOu>0QlltoR< z3Vt5mc!FDW6E5##tPwsXSaY25l*gkqO8EXJ$oQ{yImhh#FLiy+BEJ<@5?Uoa36dtB zBomUJ5=pg?G;JgmT=Gj#yyDuNcuBdC^wM*-5Lx^`fTY2|!4UW)fldaw=O11bx}v|=-@M6u1`&t%i`ZY F{{W!pW^e!i literal 0 HcmV?d00001 diff --git a/couchapp/restkit/client/__init__.pyo b/couchapp/restkit/client/__init__.pyo new file mode 100644 index 0000000000000000000000000000000000000000..ffa5ea5dcfa156610f7108f489411946ce35ad7b GIT binary patch literal 301 zcmYjM%TB{E5M0M8paN14`~erA2p>=(3WOG^56LN_%EdydrCN;>gExo%ZhwIvU^l7| zmUq@OtDTYM&-L(lcv@6&Itlehs(4SZr7NHY@B&H!f_VaU0$xHX!KYBB;0I6+XeOah zDJ?lcpcwFqV1^j9jiGI#Rg%@qKlQ7#5%GrjVzM!>tNDEOVRZiTrt{}@fkPU+7r8c* zX}(-9)fsPJ5PYBfG`#`Od!_f%9IN>cnxhoeKZv(PtG26lpCM#qf_sNqRXf{YW{hhb W8gmy8ea6_g+pe|`92(hiBz^%Fsyr$H literal 0 HcmV?d00001 diff --git a/couchapp/restkit/client/request.pyo b/couchapp/restkit/client/request.pyo new file mode 100644 index 0000000000000000000000000000000000000000..21169b54c34860aaf74c4ff4d2b3aa5f241fc270 GIT binary patch literal 10608 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 KDq_*=#^Mh#@3?aS literal 0 HcmV?d00001 diff --git a/couchapp/restkit/conn/base.pyo b/couchapp/restkit/conn/base.pyo new file mode 100644 index 0000000000000000000000000000000000000000..a403aed8bef595917769d7097276e5142727166d GIT binary patch literal 2279 zcmcgtO>YxP5UrlE$C$M@upl5}IqV)*7D9w0hbRkJ9FT%R?E{N1BWI?QOk&TNnYLD0 zB^StrzsX8YAzmKr0ZIBd?k%`C% zOd!t4zL7MPbCGu_sq;eZptp8(?1+#pG{Zp3uthhtfq9?z<8EhqEU zJkxnOW`)*@hz3hHaj4hNVC#^=H7Znx#L(9-$8~5W@SVq5noeB2%;1;r9tr!TI-L8o z_%r|Q!h4{NzG$L+JauvG*(z~7Ez&sxjxBH0QrohGmgB z+{UW$WfFQ|eYyISa~`0+nBtrK31o9WkTVoEKvX<6K&??Jy07a%p+e4*^CZXaWStu6 zpgnLthTiW`*Rd_;dL16`jMJgdH}64kwMTfgQs%D%-6KHk%_35s2<5mX<(|H6kk(o8 z6ty` zRyuo=QesCj`|`z$-MGK|csN`sDrS4yoO-RaYj044vKjt8*D5E&U^%I%RpWe;{Os8x*;-n-u9xVaL=d+y=LbL%FZ$|0~eCi&b%8MU5!f p=(NLjqt2FrdAcd~j_|jtv&T|nZ9h63x9f4ZLyOu(o#4i=p8<`{iQfPK literal 0 HcmV?d00001 diff --git a/couchapp/restkit/conn/http_connection.pyo b/couchapp/restkit/conn/http_connection.pyo new file mode 100644 index 0000000000000000000000000000000000000000..9f9d81073bad12464bd6214ea9df71db642adaea GIT binary patch literal 1440 zcmbtUO>fgc5S_Ihw`o&83MWoTTyj8E;*1JvFGz?SwkL8~8GGA0b?hj+IYi2>z49md z3;Y0hZ=ANk4eIPp#=AQ+Z|2Q9{c*7OeSPw|lVT#I~}4rqEd&f%v1iDyzLP{#%$W)Pt(ui_&pA7fmcc5Um+ zSaZtYRd_E`yor87-? zG9Dptq$rWEn-^_y;g?#CvRkYpL7vx5^vj@&MO7`M7BILF8r_fe+;^)OcX1YLu2^0K z-MI8cMMIun6w6}X`_wnjcB}HT zSS*f~KE$g!9?|8|B{+0j=OFP7lA*10bz4X04xoqU5Rwedp&9D$@%F!DOK=jwDP}l^ zVEr&ay3%r;h>3~Jl#!XzF#{bqk*nO1Z#`M)OxBwzP2wJ8*WLmf6Otwt845`>Yb}i> zC4U!yhm|%<^i2Ifs-T`wctGx+=kyfS6hUpTDr37f`2eHdkBB8Ft?y4eOva8(-w2@oHFR#ysK6X zUhO_kTYfZp%AQiAmwS3t`=?H|EH)hnwo9I*W;7b+!&E~K;oCM5F$c|iic95DH5PIDcedZ7U<;OZJKk=ch23q zB&dBNPe?rT|M4&I2f+8u*-p|Yl8bk4c6M)f=KE%L6aI6#_xI7A`-#k-5bv+i>OUY- z{EXxx!=-LyXcqQBhJmE`g_4IdiDVebq$R_a7+NFA+cN3Mu!DX}(zfI)GU>{&i+)F3 zB)eE@MUF*&7x`(}le8I@KfID8wz0fI%?2<^CuJfxGu zP~nK=7|=w5Kxx!)skFsD9CWZm_A%Vade9PX#zsFj(duo8=SH53#83iN(2Z0@;WjnWanBIEAD4j2W1G59To&96dDfKEJVfYE5Ha^{_)Q#^?|+F)0EI_tBE z!?-8vNtx%1F?yZ4gPEI;oP2c^BO{>y%$-@R%f32>?`M94u5UD3xb&0h5wHL_aaLqLj@O{q%m4|x zrun;qcS3MNG}56A`~?M|jx`m{QC~Yo#sN|NIgl4dUIemJJd((Vvfq>HNQ^P?oL{w6 zwwbAY_MrvRPnEWDhm|n5wwB{<>Hir9Shg_o7~GS>6>hex^n*?qZ=p5Wvjwh^KJ;6m zQI>YI+`FpQe9joofbsZi5J~PvMVzH+eufWALiO8eInCX!_x$4fB6Ww~R#jP9rsPX3 zC_79D%RCxzA4^=-PV{v>cR0;J$+_7g#T7HE_BWu`6k>WoX!_=|2~FGd@a{ss4okw_ zqj}rJyCyD8>43Zaj?^ED*GeLFjRL+RsXphlaYTp>3j{?lucbh)y=bTkNF7%TNdrDN zO-{h{<*A~g&k6=oK_qvD!m8P-rIqAm?d&?nJaZY@>WXwgw-q=`f;3IjSvBH;Wv|0> zLFhnq?LNZyO`e-8<~qQN%$iw0$#d?laN#W1Ttt!@h2pm#f!zJ&i<4YOY~zqq za2^rAALo+*ArT4|2p!yz2WUGx0H{H$fz>=dg_xG~73{6KGD;3+NR|e*B}|o@l+T=f z8?#Q5OtG?W(S~-ObHKia`JbW9abYs8o2#ZDc7tX8FHhi`n0UA`51{&V5s6~7EPs#u zK%&5i%s2>zAukSEBHUCLa{|?6`L=IDyd2Gi$mXe5@6CK#{#txRosf!IHE$TbUgpPM zF`BqI)~b%_JPH0NxJ!tlQ3T~vKJlNj87jNGC=HYxE?B_~_ z4>12OT1~#&!GMlyeOlg6_A-Q?W=~K`79Fv4)iYuD@UO$E8%+;Lojdbc-f&DeEw{K3 aoJ!oShN{~nRnb`mv#Y^6s(39}zxf|%g}c1~ literal 0 HcmV?d00001 diff --git a/couchapp/restkit/errors.pyo b/couchapp/restkit/errors.pyo new file mode 100644 index 0000000000000000000000000000000000000000..f355d9efd7f5a2320d519c734f9a19d5e8342b1f GIT binary patch literal 7768 zcmcgx3vb-U5gr~-C!K6r58G!a&g1;PIEkG!eE@9{G;-`bYF`b?c3L$k!Q8GS%6H_M z+zYHCMGH7+fdVZWAO#AvK!60u56fTZALx8Ta!J)jt-Iby@~)Oc?#{RK&CbrQ-G47F zez&)NyGQwt%YT2yB|T9iQbd|)%OT~^=R}W*eznODHPVhqT`R4Tsu$8ZD|JaV3hBI+ z)=4cC<2J2yj?`iyJz}K|Qb!Bvl9kSrI#x)Rt#pCZN+Dgf(k7|3LVDav7fGEcq$jQP z2&q;fJ!PdwNu4gF&spgbspkvn87nV-o3qLnU_dWrP1*z9F1T_M#jq-U*kmDIUH zdfrOcNL?tT7p?R-sY`|QvX!17)hVQ}Sm{YpR|@H?R@x%7oxT1c;1>1k4L z&_?G?_71bem8a8ql=SqCB#9I2Ky`kz4hQ;>EA}2ZOr18_6`1$zAJOM7ZE{<@YLl6- zLCGfj$~@^g(hYiCqfO@16?v1qjm{ho*TdjNxeg^i;p#JohRm`<(u1FN{2SkH(+br_m)C6Xf`e9_u0zW1?9mY|rO_LvP zJnHG83FAm!`TS96e7^&1234y2TOJ0NuXl_Y`n_0b5AQl$vMPO^TfKPH+X;rlYplRL z2+cJOd!|>1dtQTIFLOzupPXf9&1pJ42kpFw5$5>;^TmYlqARti&szB4z*@~w{@UNx z#vkZ34Yu`3eoiqLa(eiK0y~NB?>%t-07t437#17NGvB)O-ku*aSvZqW?} z+2Rp*yC3vN`6K%NT<^)kk}rL~*ALQ^`{9-EN8FR$&DxVE$BXUY6vJ4)&!Bw&3^&tb zToL=$yyH5n&S|c@9V`KFl`BE#`-51G`m9y_yBkN^!^Ff#JuC?i9R%MniHABddj@K9 zC-UGZB|vFC%l)|r$wGujHrz&Stb&@3ZMo4Is?Q|xJ?;@ z7R8tVp5qa&a47&}LHXf`>mOG#II`>!BW00s4&qzb1NK#=1EefYy-IO+ZKT% zBzRhEuzz2&UNL0=2n6p`0AMNQ0PcnZ9gk*jgBMxlyA=pnGap2s2K`XoOZqdX;3Zb~ zo>lJ_xq)n!hr_|kto@cn;7Gu_lf;j*2s(2Ev|06?ih8WW^+0V%{%|Xd^vn^QWsMsa zLCqZD_MIR}b#gcaoMU|-RrJFG_agmh$ZM86xDz^X^mAloCtM!r4r@r{#mN7D2x zDX(LP&bB2bLTt^FPD!9Y8EuuRiFcV_mK)o%_I#wg54cp* zI}C5N!?p7ijW{REGWfK`(r(-y@MPPHXWI_8j7~TaOS1G+Kwun6KMxKES<8S+4yP-p z1j&lBv;nzsmI6(X-(2F(yBNIARl_-2Gi%()BX_=sJUx71-_5CG-XytUo1o!>HyGKqCf3LA{JpT4Dq0CMPWe*3mee7j0O5Oy;guHR!Dez2-w^w<{M;JC+ ziA}e<65)RLb&~RF-v&`YUq^@Ovo_DeewwMP&~}xj`~*7sO49$SCKH2zPv-j^Ad zp;1sw$krDno@uf5CJ*@+3~Sk{E-}H5d#poPVxCwA*3Rw_$EWM>rFjmzli_&3FC^~B zl-sz0n+|9HC_zn&v$uH2FEOm;Y^9vW^_@}lV1qBH4uLXBAd!z(R@o02%6O~nUzo~x zs|>krL0be z${+HOUt`#U%5DeuwB8&lF61H0@~)j3q>QC&cV zgT8kO6$tT=yn4ulJnXC<0=9<;;K8dr;3;{N)-%rFa)SXiUFrmUV{XCDc^B|G=HyXB_e~E_Tg$x8WEE;@8i78>Wc<6R zX?i(fIbMbpF{xx$e3wsATM*k69n-^=nO7YYAiBa9>tao;h(2F8KDoK6gCHy7I>lb& zkM@gP`jjXC9tj$De*?uW5Z3;Ca(&8)i%YGdXj&b+)oeL^k1U>o5#4klUTr>lfLpyF r^O?_=Aq|@1ORl6#&gbid@R`x#@XKQ3Nqc4Jzuu$|QQ$5nt84uQOxq?B literal 0 HcmV?d00001 diff --git a/couchapp/restkit/filters/basicauth.pyo b/couchapp/restkit/filters/basicauth.pyo new file mode 100644 index 0000000000000000000000000000000000000000..f8fb30c9133fac94ce7fc03fcbea6ec4f0876c15 GIT binary patch literal 853 zcmbVK!EVz)5S{gwmKKVTkaFPEOOQ|G67_%(g7!=f&WT=Dj=fPfxOVW2g<6GE`O^LZ zA3)zsA~?5Jb~5XodGp>|`#+~A_cs?`E80IE|DUn=9YT$tqlV}TNk-Ap(oyZ{H_;u@ zx2sH#=lKCj(_cI@IYxR>a;m-zvib+=^eq;@MTmd{3MtACK@(5KJkM}kDFa=)xy0f( z2wO+njFuT~iGmTE=ZZSBC@+v!eXL_EscbmceoQ3UsvD|Rx!Fwm$nrhOWSJU?Jx>;@sDz^Tn;QcNA+XIBGtYTS1j8#HpY-_u?Lg|Yd*2f=WSbc(i1>8YA z$)yvtcWnUX0I=8Cu^K~eY+dO f_DvLOgh}fb>sX1EJ$Z;}__$;JNs;YSc?~ob7s!}In(-itNYXG$Int( z{;lEr5r+F0rVKwLg~;$6HZnAFdReyuDU3`483tm$EN@F_TXNKu`g1YH@GJ&xg zY+L|T+i8)cHXhj|v-KbZ%5PwLRF!Tvv9({vBC^Lb>%6}X_#l5-CVp1iXV#CZEPndz z;iLHA>BILt&HB7LvSmt1I9eEwFx(wXUSzJeJ`2RXB_7%Ya%SXvBc*N~3`oE4IUm_m z_XfV7mER>rp5029;_MD6z6v!;T;hH0soob!F|&{Bx~dz^sKM&U0I=w!Vx-k99VOH0 zUJZ?oa=&+&7v9!xuS#Zq^#1Pj)RVEYO}vd)*Sra&YxAz4Z~Eq3M_NpE+yg)bA$&*b zKT*MReS2I7zoBqM6FWL%rLCtGchwx8_wQGwji^&Z_ckih+DiBO`jOSSetHKTyHxH5 zl=F%$wIlljaY#}<50@&72z5$_;mvzIMWOC2K-c8%Y;mYQpC*3PoYDi^ z*n53XGiKsAFLNKqcX)dbll1%Mey|NcBaEp8RpfYt;mD-%%Gk)XPlql78Xk_pudy!- zhaf-DWNd7=*OU%kGpqCH8otpLPUNVO99;#Z$z9uHC3t;(m?>2m(>8wwsQwaj$)w~< zP8_Pnbtnc|A^j0tf?^3*QwdcLA>rOp6q8hA4yZ+oE?ecF ztbqOsfG&_me}`?oZe38a#+TGdZ?fA^QM4}z2d-BH4P_3oGy~2|xB##r<839ovOLus zIctfTuSs1QQe4$cF-$psjZFv*;9QTT*;>TJft3GPG3&`uTk3!64S(PbAt`p0?uPiA zGQO##JCvPUn^NW~(OaZmbmY}g{M$0`$oLj9Ap7LoC-O}oi>@p-#ov}W<~uA5?mx!A z!zIm%i<;O)q~4WzSH|~LgH1Wqs$h=)ZN6k6446{;+6gry(CoY|{e$PHQ|oSH5B;IY z)5Pahx%cY9$;rus!>XP=Kt1_FRnJrUUYvsuMY22i;)(BmLTALHvZh}4Z7%lQE zW`DQkOH`2-F8cKGbItjuj~{-bIi*zxSPgK+{*nA{Vp75^Pkqw_wQW1CHcyhmS>1k7 zWv7~WdizW3RSxHq+Bc;u#6{2RnT_xjty;5bhHe+_aLr zMU^%g&U-xb`mnAh=dChM$}HBt@;?R4Gd&$15HU)Cz9?85eHBkD=fOXTSdLU^7+Seu zlXj$)_+|e)%*&)uEXy0P`mWI}P&W@5HA9i(%|c~zZzoP|kh{Eu9m>?|@%}(ojaK-EZ ze+lawzz_m#w#~JmXWjWI)KH7~hR_I&o&x$+e1(4J z(<|!Z=q(I=jI@LP)lN9zb1b^V=>tv}qDlAJWLni;Uw!Jm^kv=zETeMf^P-6+h8S17 z%>yr@qa%`N6OQP-rbV+mt1qh;W1D)F<^NMdjrEttJbxnt$M)TW*<0qa*)o@di@`;6 Kr`2h9)_(!)D|sUT literal 0 HcmV?d00001 diff --git a/couchapp/restkit/filters/simpleproxy.pyo b/couchapp/restkit/filters/simpleproxy.pyo new file mode 100644 index 0000000000000000000000000000000000000000..01594303dc5e4f5c4e9135f679086c411ea5a357 GIT binary patch literal 2321 zcmb7FOK;mo5S}F^*^({WiDM;~0KOO%(AZ9aA_pTV8XGQpsT$BO+6n~-hFsgEX_DDp zrEwwk&=e?oY7YH{{R>6U?KeZc(3~uCS2Me_GvCgO{@>lsU$@6!#Wel-`2QTk{*EcZ zt0*TL&S^zMHCy*+=*?)KhCU@=eaahj)1+aO6!Q(?TQqEeZ<1c23n*yOuSD;Nz8|hq zvO>BotE=BMfiKWR!!gr9_k``w^zN9K}~r zRUH~_-F4~?FVfrr!=X)Ys$5qL;Gntk$aJ`~ykIZA`e99V>H90=-6is{@`()m$F?PS;h=J(g zWPvC*LlfWR)gu8bbh) z^$6F+EmES322CIad|euMjpz&<$LY$s%1YFQ3MDb@L+nWW_oI=!Doy%R zHaUg& zEI-|jlmVNZTHKyne6eh?&(`2`00wQR_k;5ihTNnH#7sST~o9p_(Zks8R*;!SGG zLZom|N-|0k6G(wFkdeu&$XFeKCby1B*s#zpFJn1yZbn*&L5Wp9BpAvv7aK;u9-+7d zfi2@}m|>4=W6>L>l*PT%z%jwvO=m-G`BMwM?PpdVo z15nN2sL#m|a3uwthXGrW1bG!%{p?f8Jzd0Qg0wSfaT#!&>p<JMZ)7}X21U63}K1?d*0HzwO-(ksb!Nld#a z+n1z0Chd~E!u+zdFG*aHT`W|VS0XP(o^6jyyE5t>KkJ>4_5>T-layqmJ_)Ik|KQU| z465}2g_~m0k9Lk-Y+aV5d#-|>Vb+ZfhkX~j3AEN4tI?B3(HG0%Q&;3$w|lR}*<*N0 zcpl=h&rs}%oCb2VBqt&r6>jy#U3nhJX+chlauP@ff*WyxoD}4xuM}C?4Wx=6b9hCz zoNA+^jf&xRuu`!3|R|(`L#P%^4dNFhi057gWxWf2yPd zFR1P*wqaWEP_{^*vhGVyLI7wwMd11uRkR5r^)>)gNs6zElBGJPsE8~P-#Nu$ES#j6 zkM)z`CYUt#Rv(-OjF+$O8{qK{=Boc})M@#KrNtH&=B@n@6|&4iyXl&XH5z#7_Po8l zSX0A{n)d4d7-z5H#lwE;0I`MD#18s4aY;Y@Sq+Pm;9Pv)n%=#~`a_VODu zp8`fYg_a*J_p2D8V;|iKv<}-5KU3rCHlB+W9EugXgu*1OvPRERZVvCDrqJ2RdD1%v z{4LI`a%}rtXkFpL*rF!AqeT1d?1yOCTPP%$1b!;`yBtiJSt2Va;rA+fr#z~NC|W>K z^%ND_QNtV@9mrucLj@>NlC8paY=f!_k}WYhc{comA#LTjf{8sP2O9V`>fE7WshQu> z)OTzR)sY%%yVOT5No)QH?V2YX9Y1g9?MTr|7u0;_slmq0thMi1;+&h-l~Fbs;MC{C zk1<07tXd$XQq`d^s@;&-S;J%L!V*->yqO6Sd4P~KQXhX?ch;^hE}G#L%1mxl!BzR;XK0>FqqVP3S;A?|;OW(7 zB{O%ea2AWt%a}8_{BqG;9GJ;MlcLH`toCqYHIq#<^qsY^l%@J)5 z!yLPsaU{^4Sla4sq750n6{;G4HRo8YE4|YA3YnZflGrNIYI?gDJIK#eR--_Kcn;bQ z)gic~GA;%&9q~Y;7^C111gk6b5@axl0#^6g8^+c~Y=;am;kQ}P=M-ZhJ+4j+cz$OS z;A-})Cz|h}tsbSF@5(05as3UDrcXS_WAC64rS(cM7tDZ+rZjn&L3sxR{{ecwh5i;n zO`P(1h{ygM1-VG?Y)q1G>Rm;9fQAjQJ%D#~O9vGIyen!$O{>BA*YNW26WIbLH}rnh zPy_n#wurU8PHU|Flm#Q;8`P@-k>|bWnUyGDuZYC-6((B7047aSAe74pWpACa#SxEC z9DSM}bM-}CPxOI$mS(*mVjOk##e^P>#CrIlY#ojRm!tR9O#_$6kEjg7sI{iic(_&JO3u=s?P+{2oc)}J`!?1}x6RE$dKqv>6#RZG&o}uHoY6qbDE9JxCitRx;zJv}w|12)X_M rciiS}pO=|2QODWOilUOpL}^+z6{YFk47B2@qi&17RwwI<)^97mT`V|x literal 0 HcmV?d00001 diff --git a/couchapp/restkit/http/body.pyo b/couchapp/restkit/http/body.pyo new file mode 100644 index 0000000000000000000000000000000000000000..da029c2d75485e27b35a58a92f13b313a0ccdda1 GIT binary patch literal 10545 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 pwYmSkPc5`^!G3gnmitH40;JDe`nhtVI9- literal 0 HcmV?d00001 diff --git a/couchapp/restkit/http/message.pyo b/couchapp/restkit/http/message.pyo new file mode 100644 index 0000000000000000000000000000000000000000..8263554a623a0c6fd170420005175bd37ffa47f8 GIT binary patch literal 7417 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 YM*j$rgTGGcbL6ad!Fx3|AI)F-FTn&2MF0Q* literal 0 HcmV?d00001 diff --git a/couchapp/restkit/http/parser.pyo b/couchapp/restkit/http/parser.pyo new file mode 100644 index 0000000000000000000000000000000000000000..0709f1c333884684d79e81320ab2d707151704be GIT binary patch literal 2271 zcmc&#O^+Kz5Url^$J*;nAdnT11)_kEPuU>B4FO7o1VSvRErjr8G@0q$9j`s(Ot(c= zS}trj!U>5RKaRh^4}kY-JT@OWkQEY^yQZeQx~ls1tD5+?z2UFt_dm;I{fqJZ5X1ij zk>hVkd~RVSQM)u6ZTaL zEn)Ktt>tMgj~%ETRi#sfE|Iy&**9r@;>Q~c@8-vr&UDpRt2%RfRc&U?lqDa=7>)3+ zL(8gFcA74ihc$R`R)oV-@a1r+*LQb$uFOc1qAWs^aJ%2J)Mt zAn?{Ki#M>2{AsnC=b%mHUEu5_R7)0D%HmZLJgo9_RalXF>6UbB?v_9(xN4E7A$>-a ziDKy<2U5eo2qDo+W)u(1OaV6ni^%ga7m&ZPm)EIujY8QJd9-zu`f`( z46)5bwSU7t%Q%F=Q|Xz}wLz?~tozpAx(unMUFLZxuIVypF;F5l6fP@AV<XhJrq#o#jV^{=DTc_XHN5UoBm251=(?q-SlLTkKh&SEx7j_clW`^lrSq z!brE;a9076x!!Bt_KY?M>zaoDKcHw|E z_RN@>S#9*JkPIK!yX=|?wdOOcJzl@C=-EC!ah4RZTAo_1q~M?0Jn3CMoME$4zM&Sw dUg55_F5hb^@qIe>EXGmvoY_YO@4vC%`2#67nxg;! literal 0 HcmV?d00001 diff --git a/couchapp/restkit/http/unreader.pyo b/couchapp/restkit/http/unreader.pyo new file mode 100644 index 0000000000000000000000000000000000000000..82029389b604b1f1b9bc6a47cb254aeae6d57f39 GIT binary patch literal 4463 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 literal 0 HcmV?d00001 diff --git a/couchapp/restkit/util/oauth2.pyo b/couchapp/restkit/util/oauth2.pyo new file mode 100644 index 0000000000000000000000000000000000000000..19043a2c9d907e0a8c7438f091b75b2fe6c4ad66 GIT binary patch literal 19349 zcmd5^TW}lKc|MCJA%cbkN-`-?k|kKOBs!64`4Y!=Wyi9lL{2Q&UdookSb-s6NrD6c z61%iTN6Lex)J|_{(tDe>Gs#0Al4+WzGrdkbZ6}>J({}pMhrIM5Z6De`HSOfBP5OP` zzq^2Fy92nMOeyW*x$Qas`Okkl|9_VLe{LWD$IT}%)Lrs3ir-J*iT>Pku7UraYdJTc z`suwz~#K+u<5xE-bkPfLCxg zox9=O$LA+pW88%ks=Y0%-RT;5b-TNX)$DTNZr9kM{Ozt$VyF2@*O*Xd$~Dk=ms8s$4wx;>DO$bFSO%bnD3I zhjTrNCpv*71WHq?Aow0^bFL~XozoI3wh*qix*A4NZ85a1+w>OsClc$`-!>e5G`aSFh-?641P zFrb1wvMLAcpm_(LJm8A%#AB2CKa@#@t7;XbP^})z=JsZ|kOUj;+G<#>#^b1|R#!WX zjTVXl>B}gt+gS^{@ut8J*sHhf!PibQ+m9#W#CgBymqz0WWG^(M2t+#9Tx{3kjc%Ax zA(1XBB-V@yL1D-{5kqhrazT+r)n&;bWDx8?_xIt^PUO9qZ)e-#qaYe6Ap_0=FM<-L zK=cpI&9Jc&5ptvPZdhxrK6dzMbXb*_E?v5Zv>&$PX1x}N1{~KSMpN$|z=OaVPvhk) z8_iauN-9nVt}cbOM%bN2qmfgtPSD2i5W|B1%gA79%YYyMA@8-28zb(z@8TS#?DY|M z&3DVbyM~PV-0+>Zh=x&j^=TJd^C-LC@Z8zU54)Fg?t0!`-{!7uqheSoxb6jaZPYEJ zm~+?iq!~1!_d?E1;g`35!QuZU$O)UjG2)gBe1&~{H#Ijy+NcCR(uiDjG%|d0Ek~oW z{>Mb&i5XI#C^`t&H^AZX9#kxJJFC@tryXsqhTUqd-KfT$72t`8%joJt7%z1i)$

    OaoCWAY{p?1&uRoD0K85+jM)RSC2Tj84WoK(EmZSz zr`et%yb`h--Ih2fg-Kg)FmZk9gd{>j0P=^NBX}AX62696x!@J0uM9~ryYZ$G%vA|K zGC$^cfYa?l;&Mf=m@9a@b9wKOSM=`6)j1g-F7*tah+`zA1IY{?0J(TxLjGEER9grI z-lt7C6FFFTt9eDsUEk<{`Z=aLMZ>Kjpr{ZalFzw1iuz$u_2fVRh`~YLH$mi!7LWu+mu$=UW}Kt3(etnAtr@p2xxcO_3#2}QhCG8{b8*;pr8xx zWpa|qeMn3X+|MFud&srz#4Fj_UIDK!G{bIy%4B)s;4_I-$>@)3ev+MzAxUf_*wQkI z%yPadV+h;NOrBPekFFBV%J`m0zlB(o0$fg0-A9K-3Ss=2$Q0#t)goA-W zCa-(0omfoVfl5Sv`B=DF#^#r!u-*;h^6Ewum#>5<#q#!7KA7_#j#XQuA=QmF)odTtxnGUcoEm4w{WcXfqTXN1>^ebIqQ62si*YQ_&iu zP%&w}so)_;noLV&Yn2P4$+@N4)~9v%mJx6rlJ1aHVY}XGm}RNeN>nszac#)OQYUTT zk!9n&?cVlWWrnh#XQBwrePEEM-?b(65MI8-`H0;7?RhVsD{PZoxJb2EN3DK{YLO~; zA|X{Awm?EiA%2jKD$OgEIw#GJaVwZ9upXOn6L$W1YUkg^qa0g{F2w0=lz9*&&v1Fw zmq_vi?f(PG_u-tB9z25NJ)-Z=W2jr{n+Q)IvG^1!G8P9?jl~;0Qm|jelv8&jIo=3q zwN~p&t-cbI((6fq#?3;ryBao3}G-m3Yo>TG>?mveN z#R<%<(D1&28%d&8#g+8KGF zTU%U(4L#&G(JF&!l2KR{fPD#dW_NnKa=W|(Uf!F^ZTEITQfk}C3O*if+lP^PXO%!i z%56o0d_)@noMQ)lcM4JtD_REX6OBQ_uEabh8a~Yc?`aT~tEMO7y;--EIr^B6IO~%n zr&*LZA$EdONcxETF&6PyGLW6Aqjo1T)4zsSBOXrNHs2ffw)-V-!VtwB;v+=;3o@{O zff3L#)IaPy&@u968h|3v1k#1lhv80jDrRQq^IJP_?n;n24cR^oKDgAr!;Ju&^zCiZ zx5v?SVB_fU=p}FDoxS1T^2S%vH*^e4-T-|Wf56}ck8MtB$}t-Nr_X90W9-DN+cfJx zaSYCcrnwm+s1gz7PqkmEwVI8x4oM-7Xk|Ox%*JG#l`veZUTM|ZD^+yE0Wqkcwu#3@ zcOyC8M+wKv?M_@?=xo4ZYPQSiX!4rDKbI)ce8TC!)rss@xJu%U&7%}J2kO&4k<9pjhs6=tqYNJ_)M>KeWH9L@; zj^Q)7vJodo0#0fkPv)dK=rt4#4kY3zLZKMIu>Xu)VmJ9-DOCa-mWn{DA^?UcK>k=C zzyjmrXzimf)qR3>cm{I<(|&4%EsBqS<2#(#c_zcP!(KeJ)UHK z&N}ew!StB#JA7q~L*PtQ%9s3rE3UJGKSUGhH`~M`y%Ow#ih76*Hy`jCaLd=1YvZ+{C;H zz9{B0zte@g7;-@+C)%wd!Y@`tAO)=kn1y1fZWx5I`X1N_&WxxDQ5L<@YeKljn)bL5 z!I_=u;0U;&hyaewwT}l2+D-KlBz(AUXYfS#BZ1ln%^;4@J4@rJW47z8$O*QYpz~lV zpdob^aU_{ViD>Cr46wk9W`mPD z*s7KN2Qs!YNLuXoDOx+WsBfp%tknM78?Z2za&9H(5ZuAqK@^7?(CU5VGECm~-NYH_ zgAG5Sj(K#1BJL}zqmTmpXeh;{*OJ?t{!>z-#}_9Of>Kx;Dad z7*2W1Bnw1gPJZ5sVR-}?Sc>Dd=6@p)rdZaa51*8^%G#*;U#w=QM<0Cf0ZHWN;R#+_ zlP9Z&&>M3qr2B%oL^tL_|gk1+W#5{bihr@IQfn&ljFz@=+#-nS6}N(@0EcATyA>(85O`0kj+kW4Y+v=^ucsRy7&QC!cP zoB>9o8(R%vrui%9rV$)SeL5vHCU#lsV(qiq<#jZ8Fhin*kQp4jm@=cvQ%UB+t!mT* z8OUbe5L^<4a7i5xlX)>kBrtmR@^OVfaBkG8gGUkZ9wI*(7toVCK|zEkZhr#bCjvUBJ{TOPH{iZ)K<_9KIk5B*}4thByIEcsNF+r@KVm!&CIA zBn6Mqu*=b1z9)p$#xQTC&K)Kwdzio(zuQ*So-NM5%m=KI5xv-N%om*vvcdVhTCwN08rx3?V;q3*?|Ens)N} z1AcIUf!)(aVnlj#}YfXa$c7o7=G<^o3Fvz@3ecuPO&`2P|P_iWzN%u z4hMa_5=r9QF=?|Z_OXF2;@V$hjY%k0LW?2Vq&y_!lDKeh!zQ_lODAwHH>ZB%IA6mT1x5hFBA-fG66pJ-K9Ami(##nGDDQ==+>7u-S^z0r zYt`x&yEB^~{e}>?w4kw&wN4b%n|^<~i*8h0!e-+B44&vX8VS4z58?wnfy2<|c2XV0 zt6UNL;S}(7o;k(y3|g=_dMW500O-a|C|`Ymhb4a(}HqGCDp&|?|0$EP$WdJw#p znDW+NaF;gk(_~|G`*GF+oqx=XE6R<`ZSK0voaLgsUVxY4Oa{>RQh=b*>~)w})Al~( z;WWeK0CyBQjQ}AyjUnXMz-*WY9maTPXL$$L5tj(xwE`W7*T;n!sFrb4Cq!DMNp5Z8 zq4Y#TanU5-H7R*!b|MMRF_9H3`vVuioZJt=I&!9Q!nhGG)HYgiu#c_hnQXCLXto3y zi3FQ0(jJ=O2AYF$47n>cTt|XUWVX%`w%x_#9fu@f9CiqbB7=jXFv}w(rdhrXmxT{w zXnSr44I=LjI4uxn(m&RY!*#}gI}q#MYo-#h#ODkiJ24pH8Px&p&~dP=5ontwAA!iQ zcf7%1MlG5Xl^)T~dX`aoIiNB((xZ?-re`<}l(3nT+8EXt(#YqTPF6?`!MY(4!t*JW zd^XM{;)UDcaHKA#a)MKFc1|AcLl@9L*z0Ord}7M|^2_9t&&uoYrgT58{`(k?hKe?2 zWs;=(ve+V*`YL?-Du5N*1NiUZ4YG|-cLS=S+mhN#U{an3j5om#Z0FYqM)Yy_Q9%cjh5`2WN(N}3jfOjwfjjgY;(in}defbVlj+EFMCk)~6nMo-F7G5} zx$?Kw>gbvHh^ZbWZ>f*WjX}TA40{aXOSshtS>(PGp1hM}kl7Pl#6hy6N6bCe~`UC}; zBX|voyta0xpx_A>m{2060obakB_xy)5E(cP zA0Ww_8bc+65l}bX$Ek#q9*?so>5;P@pnDAfrNMJO$ycm{j&S-R4^FYu8)vNqk0O;v zJ7#3ju$0kha)l_kfhIE>Nml`VRH8R_?71;?_wFt49^@OtJC_53vq>Z>Zs8Zb35e$j zoLj{&}eN0-p||#B-(3<%6e-^KZ|U+)!Itm{hiOG zJmdTfJnrlk@BkZj(nKF1Ozfy8Izs<`=X;}u<9ku;yOF}B2A@Y_G>XhXOf97>D0MLX zu|5c?`>1gr9YdTE8hLGDecg1YL-l7uVm=j5ygr8sl|HcL`@oS$lnq+e%Lx zJPi!WNgK!#!rec61CkeVc|3hXW{!u~yWeFGFa%ygk^XP2c1~`ZO0b6YTMU(`v9L|_ zBgj7Au3c$`<+#J(P!uK+ogSB$8U85Waylp{mnbDW%?&h-k#vkm#GdsCYN!sl2f>?6 z&LJ^Fh?^||MORXKjc*KK<>@P^2*4EmO@ceS{IKXk)0w#0>nZxWW0o6CIWK_*?@ejZ8fQhh*w{x%pauz^U~(%Gh9p>85+YcO)bnC*I_qUWp$cL{B~kK0 z7~_OTeIXHw87R9@yUk6X!Z?>uOgvlxJ)r>)_WG^^<~0IbI>|-M9+rC1ZBIF9WqC<^ zFEnxKnCqfnVom0j2y&xs7j4-jJ1&t|hfxkb!b-MCUPwwQNBI#CONBp+alTEoa|xtE ziiJr~Uop2UH)EQfbeGZIM^S)KgD3~3VWoBr;i?_CB?!)5Ht(1&-XzF`P{3h2!67Je z{ZN8GBSRi!dq`r*1s9pnn`&0*Zy;xe&M&i$-1lysXA<`R%0-iX9c1LRw;w@i`R8;F zCJkyMUN{%bJ@rf__;psW>HNiu&sHy-yLkSYvvv+Fpfad3(b@cE=0KA!fYfxst4uz{ zDEq@^=>bj=;yxmF-ifl{$OfGjmd$&xw(Z8el5 zixpEN1Ybka!}CBWCMA5IR7F_aI|p(A5D0_QGX}J+=Bu4;ZnBDHq|pj5qt#Ecs15KIEdQ^f7I7VKe;zWR%MtL$$-{Z#PbXy$}hp zozYAQ1&C}AE7taZ`6@_zs5Ma`3yasBqq3}4yMs=2&8eSrfI_p373zsvWCn6SlQeu zS_T!!!4EKi`UoaHRSA-;HQwLag4{2 zpG(=TY(o7ls4K_a%`(0_Dt8vj`0xvN)mp92tN4;fjz;pL)P%TZ?x~MdPG5XJIG3s% ziY5DEgtOz4e5B(`&jS#Y*@NOj-h{2pU*-LtA#DWR!xuwu9qkV854BWpfBYOz8GF5b zwo9a6KH4SvHz_z$!c82n!LOm-EY8=NV}Elnm084N$sj`5&UkbQNebZGk9#m&Dv^mZ zs*Q}B{s;ww2%G+rtUsPoOx{^A!N>xg$Z0rOr|wV)3f61`5$zW5L6wQE=vO9*;Piu` zAWlR-^kCu+vfP!?mvuJ6;U;ax;fAv#NP+MG6eXx`Jfk;&h_MuDu(8nlI@BaJn$aMD zw@U@dXP4zIPNdoB1L%=nvdngIwtVjDT3E-YapkP8OwWIE`%(lc`-TQhzZlO#?!oV( z#mpM=smxMIdT9ZU%Fp09rX90ChfXuxg5C!Aq`o|e+0YtGjuRti0+NBLM%@|J{Ye?q zoJIBgN^VHsd+^&B{Uk|64ny6TcROm_Z;r4v83y4J#X0B!KHT{7nDZ^vUjGz^4+Kg2K}=QiQNXBaXU z2ZJp53%syZFJ*p|A;F;7pe>YwLGHW7YCVJsvX&UJCnaT^;>-^BXlkMor-8(fRBg{j z$zTiqm|gx9$&gU~0bW@pl*EwpCp|Ngc*@f!?E$f=xdV3Xjjr54`|(Y@_bjI%@cBYv zyf7Y2BKuZ?E2B0eIQ~_TccM0hp7;UvJ^X-LJ4~c-4WhkYLIyI5THBn{2a`BzCa53{ z*g^U-$;*UF^6;yu2;qjq1e7G}VRFf>GDUq0>-04`wAcXWiyA(NhBoFzS$HhKog(*F%Og<&clg^b{Qko(T~uWFN}jaPA2+vn z?E+4HSS9ke0>QL1w$UD;@qrYceQhMhEvJDK{v8twZ)jmuPQowrP;1U^=4E4@hkV&WJWynpma{7xrooU zdp9=C?9H~sKC1XDOd0$Q=OwogkfGHS1;rcO7gJOFec!tsZrO?4q`#H9Kf&3!k0xD^ z>ErN$h=7cY@L9s#`~Y;~ZU5Rq_E%o&oPdDRP8Mm_(}?Kr3V{0*P~rR^X`b?2=I2fFv~}tR$f?6INo}!O{5M6VBgb;9tlH zCkMhA(_a}f&*=%YS}^k*bAQX^@0j3mf%M^DBPZUgFE-^Lk;F5b>#OYbJM194eFJ|2 zW!1hPF_WI0VWyW1v!g6(*Y9EOK_)zXhzC1YmT}$)9%AL=OsY&;OlZi+;0nIU9C;z& zx_a1FZV>X2^f+aI^5$_;TyzQv&=)v3Ftj{Fa@cIayW literal 0 HcmV?d00001 diff --git a/couchapp/restkit/util/sock.pyo b/couchapp/restkit/util/sock.pyo new file mode 100644 index 0000000000000000000000000000000000000000..c3c3b150e3cfa2d2581992960a47a19fcfdb5b00 GIT binary patch literal 3293 zcmb7G>uwWA6h595E9x7b)is&P*f{XI7u(SR;F-DhzWwka9UO;g+49x zl+b5{o)&sW=+mtHM&%rUME~Gdji#8SJh~1jJBQ9+y}!PA`@X-ta_9Dg`bYc1W|iQ3w-P3k(eGB|~S(dkp2`X&msEesd^RPP%rtETN^*+fa4Z4G?hZRET# z@tZ*$nr6__eiHljB#w36+8Gwx?Q~LYjGqRLh7Nt5?3j8E3zKN9&^>0VDx!XlIt4(X zL5@KV^3*4K^a!luG$_!ZNP|-} zfW0BEOugTP8)uADzd-#W9p-qx4=H(S6)63c`eoXMXh>9~Vz6R7O8t_I`-;+>f&tAR z1pFa1%+nm4KNpVD9CkccggpnJGK%HLmuWCT{Rx60TVs^IB#RJ$h7&ZK@$SDQ{I_7* z-4dUKUBAGupfw^wLONTB3`B{>NZjd&* zdpfr6<+LJlMzPT(^_I30xv!y@@y7bnJ%3}$)(27)t#orcV@3@9>kG*2Jt$2z?_jt|%~4MEgQj1_|2XL$u;tb=c`BgxB$ zTj*x_&`z4zB+K|9M&bs0T6j$$GK809096GalFpn5RZqJ0X3*&@u=rMF7rHiTFYpGq z*_!~z`)KAfbfijZ6z!rqi*F8nNlmFTXpC~_oHE99m>E~6L7i1~)C1zi*q6}EGCI_Q zl9}UF289xV%3Df5kZ|uI-=sVoV&7IggA{UTHzz6dJr`~+*^(D*hpIP=zQXPoH#Y;I zwW-W{T>QMVyv_=U{Y=ZA2s=yv3eA+zk-{AU%oD&@=hNAme6-;D0tBG!qDL`8c>^p( zv-qIM?BsYba0DCrtT+h_7EpyHa0ru^x64Jt!pp@9%NO76CP*h9wUHkjI!4DKB2_rN zOGj*BU;_z-db1n1P6Bk8GI8k3)|-3;YeR6f6nQ?J+Y*}L0|6mDGxQ)sbx`!OvM#t) z$fb+zUac@1Z=SnP&>idSUBfWTPS#h4C(@YJV>2xBm!pdig5^wGUgMMyZ37Uj8gZq? zm4p%vKecj{uF=mIhS3I}!9fbK23Fu<59Lt90V9J2Co;o!JVkFa2~<9^+CV2iDZ~-O z&z#5=3H9qJ&~~ViC1pCN|3JzLgN=>*p;T5{m68 z)<(b#*( zgDNhqyS0_KY<28&;d>IrLE7VdK9RA;aWWf=-+~XB&Ky6frksMBR3((Jh;H#S^LIt^ zurORrhEGYu+mD`-CX3NmPf5d$;6-^#W~;|f$!u$oJta}uQ3T)plr%F~d)HI4as~@o z$^HhETyJZ)xBbQS<)1uRyUq;qFksd0?(wCVUEG}NcY?OjVt=`2lP9})UC495<9l6h zvFuuy=OJgD$0gh2^6q_y?%2{o{rAl%I)0nIkZ!X34R0(txC@;ea;=D5D>^W{Q*dwx SVzzX?FjmNyMoOnj`F{b-yq!4! literal 0 HcmV?d00001 diff --git a/templates/app/README.md b/couchapp/templates/app/README.md similarity index 100% rename from templates/app/README.md rename to couchapp/templates/app/README.md diff --git a/templates/app/_attachments/index.html b/couchapp/templates/app/_attachments/index.html similarity index 100% rename from templates/app/_attachments/index.html rename to couchapp/templates/app/_attachments/index.html diff --git a/templates/app/_attachments/style/main.css b/couchapp/templates/app/_attachments/style/main.css similarity index 100% rename from templates/app/_attachments/style/main.css rename to couchapp/templates/app/_attachments/style/main.css diff --git a/templates/app/couchapp.json b/couchapp/templates/app/couchapp.json similarity index 100% rename from templates/app/couchapp.json rename to couchapp/templates/app/couchapp.json diff --git a/templates/app/evently/items/_changes/data.js b/couchapp/templates/app/evently/items/_changes/data.js similarity index 100% rename from templates/app/evently/items/_changes/data.js rename to couchapp/templates/app/evently/items/_changes/data.js diff --git a/templates/app/evently/items/_changes/mustache.html b/couchapp/templates/app/evently/items/_changes/mustache.html similarity index 100% rename from templates/app/evently/items/_changes/mustache.html rename to couchapp/templates/app/evently/items/_changes/mustache.html diff --git a/templates/app/evently/items/_changes/query.json b/couchapp/templates/app/evently/items/_changes/query.json similarity index 100% rename from templates/app/evently/items/_changes/query.json rename to couchapp/templates/app/evently/items/_changes/query.json diff --git a/templates/app/evently/profile/profileReady/mustache.html b/couchapp/templates/app/evently/profile/profileReady/mustache.html similarity index 100% rename from templates/app/evently/profile/profileReady/mustache.html rename to couchapp/templates/app/evently/profile/profileReady/mustache.html diff --git a/templates/app/evently/profile/profileReady/selectors/form/submit.js b/couchapp/templates/app/evently/profile/profileReady/selectors/form/submit.js similarity index 100% rename from templates/app/evently/profile/profileReady/selectors/form/submit.js rename to couchapp/templates/app/evently/profile/profileReady/selectors/form/submit.js diff --git a/templates/app/language b/couchapp/templates/app/language similarity index 100% rename from templates/app/language rename to couchapp/templates/app/language diff --git a/templates/app/views/recent-items/map.js b/couchapp/templates/app/views/recent-items/map.js similarity index 100% rename from templates/app/views/recent-items/map.js rename to couchapp/templates/app/views/recent-items/map.js diff --git a/templates/functions/filter.js b/couchapp/templates/functions/filter.js similarity index 100% rename from templates/functions/filter.js rename to couchapp/templates/functions/filter.js diff --git a/templates/functions/list.js b/couchapp/templates/functions/list.js similarity index 100% rename from templates/functions/list.js rename to couchapp/templates/functions/list.js diff --git a/templates/functions/map.js b/couchapp/templates/functions/map.js similarity index 100% rename from templates/functions/map.js rename to couchapp/templates/functions/map.js diff --git a/templates/functions/reduce.js b/couchapp/templates/functions/reduce.js similarity index 100% rename from templates/functions/reduce.js rename to couchapp/templates/functions/reduce.js diff --git a/templates/functions/show.js b/couchapp/templates/functions/show.js similarity index 100% rename from templates/functions/show.js rename to couchapp/templates/functions/show.js diff --git a/templates/functions/spatial.js b/couchapp/templates/functions/spatial.js similarity index 100% rename from templates/functions/spatial.js rename to couchapp/templates/functions/spatial.js diff --git a/templates/functions/update.js b/couchapp/templates/functions/update.js similarity index 100% rename from templates/functions/update.js rename to couchapp/templates/functions/update.js diff --git a/templates/functions/validate_doc_update.js b/couchapp/templates/functions/validate_doc_update.js similarity index 100% rename from templates/functions/validate_doc_update.js rename to couchapp/templates/functions/validate_doc_update.js diff --git a/vendor/_attachments/jquery.couch.app.js b/couchapp/templates/vendor/_attachments/jquery.couch.app.js similarity index 100% rename from vendor/_attachments/jquery.couch.app.js rename to couchapp/templates/vendor/_attachments/jquery.couch.app.js diff --git a/vendor/_attachments/jquery.couch.app.util.js b/couchapp/templates/vendor/_attachments/jquery.couch.app.util.js similarity index 100% rename from vendor/_attachments/jquery.couch.app.util.js rename to couchapp/templates/vendor/_attachments/jquery.couch.app.util.js diff --git a/vendor/_attachments/jquery.evently.js b/couchapp/templates/vendor/_attachments/jquery.evently.js similarity index 100% rename from vendor/_attachments/jquery.evently.js rename to couchapp/templates/vendor/_attachments/jquery.evently.js diff --git a/vendor/_attachments/jquery.mustache.js b/couchapp/templates/vendor/_attachments/jquery.mustache.js similarity index 100% rename from vendor/_attachments/jquery.mustache.js rename to couchapp/templates/vendor/_attachments/jquery.mustache.js diff --git a/vendor/_attachments/jquery.pathbinder.js b/couchapp/templates/vendor/_attachments/jquery.pathbinder.js similarity index 100% rename from vendor/_attachments/jquery.pathbinder.js rename to couchapp/templates/vendor/_attachments/jquery.pathbinder.js diff --git a/vendor/_attachments/loader.js b/couchapp/templates/vendor/_attachments/loader.js similarity index 100% rename from vendor/_attachments/loader.js rename to couchapp/templates/vendor/_attachments/loader.js diff --git a/vendor/evently/README.md b/couchapp/templates/vendor/evently/README.md similarity index 100% rename from vendor/evently/README.md rename to couchapp/templates/vendor/evently/README.md diff --git a/vendor/evently/account/_init.js b/couchapp/templates/vendor/evently/account/_init.js similarity index 100% rename from vendor/evently/account/_init.js rename to couchapp/templates/vendor/evently/account/_init.js diff --git a/vendor/evently/account/adminParty/mustache.html b/couchapp/templates/vendor/evently/account/adminParty/mustache.html similarity index 100% rename from vendor/evently/account/adminParty/mustache.html rename to couchapp/templates/vendor/evently/account/adminParty/mustache.html diff --git a/vendor/evently/account/doLogin.js b/couchapp/templates/vendor/evently/account/doLogin.js similarity index 100% rename from vendor/evently/account/doLogin.js rename to couchapp/templates/vendor/evently/account/doLogin.js diff --git a/vendor/evently/account/doLogout.js b/couchapp/templates/vendor/evently/account/doLogout.js similarity index 100% rename from vendor/evently/account/doLogout.js rename to couchapp/templates/vendor/evently/account/doLogout.js diff --git a/vendor/evently/account/doSignup.js b/couchapp/templates/vendor/evently/account/doSignup.js similarity index 100% rename from vendor/evently/account/doSignup.js rename to couchapp/templates/vendor/evently/account/doSignup.js diff --git a/vendor/evently/account/loggedIn/after.js b/couchapp/templates/vendor/evently/account/loggedIn/after.js similarity index 100% rename from vendor/evently/account/loggedIn/after.js rename to couchapp/templates/vendor/evently/account/loggedIn/after.js diff --git a/vendor/evently/account/loggedIn/data.js b/couchapp/templates/vendor/evently/account/loggedIn/data.js similarity index 100% rename from vendor/evently/account/loggedIn/data.js rename to couchapp/templates/vendor/evently/account/loggedIn/data.js diff --git a/vendor/evently/account/loggedIn/mustache.html b/couchapp/templates/vendor/evently/account/loggedIn/mustache.html similarity index 100% rename from vendor/evently/account/loggedIn/mustache.html rename to couchapp/templates/vendor/evently/account/loggedIn/mustache.html diff --git a/vendor/evently/account/loggedIn/selectors.json b/couchapp/templates/vendor/evently/account/loggedIn/selectors.json similarity index 100% rename from vendor/evently/account/loggedIn/selectors.json rename to couchapp/templates/vendor/evently/account/loggedIn/selectors.json diff --git a/vendor/evently/account/loggedOut/mustache.html b/couchapp/templates/vendor/evently/account/loggedOut/mustache.html similarity index 100% rename from vendor/evently/account/loggedOut/mustache.html rename to couchapp/templates/vendor/evently/account/loggedOut/mustache.html diff --git a/vendor/evently/account/loggedOut/selectors.json b/couchapp/templates/vendor/evently/account/loggedOut/selectors.json similarity index 100% rename from vendor/evently/account/loggedOut/selectors.json rename to couchapp/templates/vendor/evently/account/loggedOut/selectors.json diff --git a/vendor/evently/account/loginForm/after.js b/couchapp/templates/vendor/evently/account/loginForm/after.js similarity index 100% rename from vendor/evently/account/loginForm/after.js rename to couchapp/templates/vendor/evently/account/loginForm/after.js diff --git a/vendor/evently/account/loginForm/mustache.html b/couchapp/templates/vendor/evently/account/loginForm/mustache.html similarity index 100% rename from vendor/evently/account/loginForm/mustache.html rename to couchapp/templates/vendor/evently/account/loginForm/mustache.html diff --git a/vendor/evently/account/loginForm/selectors/a[href=#signup].json b/couchapp/templates/vendor/evently/account/loginForm/selectors/a[href=#signup].json similarity index 100% rename from vendor/evently/account/loginForm/selectors/a[href=#signup].json rename to couchapp/templates/vendor/evently/account/loginForm/selectors/a[href=#signup].json diff --git a/vendor/evently/account/loginForm/selectors/form/submit.js b/couchapp/templates/vendor/evently/account/loginForm/selectors/form/submit.js similarity index 100% rename from vendor/evently/account/loginForm/selectors/form/submit.js rename to couchapp/templates/vendor/evently/account/loginForm/selectors/form/submit.js diff --git a/vendor/evently/account/signupForm/after.js b/couchapp/templates/vendor/evently/account/signupForm/after.js similarity index 100% rename from vendor/evently/account/signupForm/after.js rename to couchapp/templates/vendor/evently/account/signupForm/after.js diff --git a/vendor/evently/account/signupForm/mustache.html b/couchapp/templates/vendor/evently/account/signupForm/mustache.html similarity index 100% rename from vendor/evently/account/signupForm/mustache.html rename to couchapp/templates/vendor/evently/account/signupForm/mustache.html diff --git a/vendor/evently/account/signupForm/selectors/a[href=#login].json b/couchapp/templates/vendor/evently/account/signupForm/selectors/a[href=#login].json similarity index 100% rename from vendor/evently/account/signupForm/selectors/a[href=#login].json rename to couchapp/templates/vendor/evently/account/signupForm/selectors/a[href=#login].json diff --git a/vendor/evently/account/signupForm/selectors/form/submit.js b/couchapp/templates/vendor/evently/account/signupForm/selectors/form/submit.js similarity index 100% rename from vendor/evently/account/signupForm/selectors/form/submit.js rename to couchapp/templates/vendor/evently/account/signupForm/selectors/form/submit.js diff --git a/vendor/evently/profile/loggedIn.js b/couchapp/templates/vendor/evently/profile/loggedIn.js similarity index 100% rename from vendor/evently/profile/loggedIn.js rename to couchapp/templates/vendor/evently/profile/loggedIn.js diff --git a/vendor/evently/profile/loggedOut/after.js b/couchapp/templates/vendor/evently/profile/loggedOut/after.js similarity index 100% rename from vendor/evently/profile/loggedOut/after.js rename to couchapp/templates/vendor/evently/profile/loggedOut/after.js diff --git a/vendor/evently/profile/loggedOut/mustache.html b/couchapp/templates/vendor/evently/profile/loggedOut/mustache.html similarity index 100% rename from vendor/evently/profile/loggedOut/mustache.html rename to couchapp/templates/vendor/evently/profile/loggedOut/mustache.html diff --git a/vendor/evently/profile/noProfile/data.js b/couchapp/templates/vendor/evently/profile/noProfile/data.js similarity index 100% rename from vendor/evently/profile/noProfile/data.js rename to couchapp/templates/vendor/evently/profile/noProfile/data.js diff --git a/vendor/evently/profile/noProfile/mustache.html b/couchapp/templates/vendor/evently/profile/noProfile/mustache.html similarity index 100% rename from vendor/evently/profile/noProfile/mustache.html rename to couchapp/templates/vendor/evently/profile/noProfile/mustache.html diff --git a/vendor/evently/profile/noProfile/selectors/form/submit.js b/couchapp/templates/vendor/evently/profile/noProfile/selectors/form/submit.js similarity index 100% rename from vendor/evently/profile/noProfile/selectors/form/submit.js rename to couchapp/templates/vendor/evently/profile/noProfile/selectors/form/submit.js diff --git a/vendor/evently/profile/profileReady/after.js b/couchapp/templates/vendor/evently/profile/profileReady/after.js similarity index 100% rename from vendor/evently/profile/profileReady/after.js rename to couchapp/templates/vendor/evently/profile/profileReady/after.js diff --git a/vendor/evently/profile/profileReady/data.js b/couchapp/templates/vendor/evently/profile/profileReady/data.js similarity index 100% rename from vendor/evently/profile/profileReady/data.js rename to couchapp/templates/vendor/evently/profile/profileReady/data.js diff --git a/vendor/evently/profile/profileReady/mustache.html b/couchapp/templates/vendor/evently/profile/profileReady/mustache.html similarity index 100% rename from vendor/evently/profile/profileReady/mustache.html rename to couchapp/templates/vendor/evently/profile/profileReady/mustache.html diff --git a/vendor/lib/atom.js b/couchapp/templates/vendor/lib/atom.js similarity index 100% rename from vendor/lib/atom.js rename to couchapp/templates/vendor/lib/atom.js diff --git a/vendor/lib/cache.js b/couchapp/templates/vendor/lib/cache.js similarity index 100% rename from vendor/lib/cache.js rename to couchapp/templates/vendor/lib/cache.js diff --git a/vendor/lib/code.js b/couchapp/templates/vendor/lib/code.js similarity index 100% rename from vendor/lib/code.js rename to couchapp/templates/vendor/lib/code.js diff --git a/vendor/lib/docform.js b/couchapp/templates/vendor/lib/docform.js similarity index 100% rename from vendor/lib/docform.js rename to couchapp/templates/vendor/lib/docform.js diff --git a/vendor/lib/linkup.js b/couchapp/templates/vendor/lib/linkup.js similarity index 100% rename from vendor/lib/linkup.js rename to couchapp/templates/vendor/lib/linkup.js diff --git a/vendor/lib/list.js b/couchapp/templates/vendor/lib/list.js similarity index 100% rename from vendor/lib/list.js rename to couchapp/templates/vendor/lib/list.js diff --git a/vendor/lib/markdown.js b/couchapp/templates/vendor/lib/markdown.js similarity index 100% rename from vendor/lib/markdown.js rename to couchapp/templates/vendor/lib/markdown.js diff --git a/vendor/lib/md5.js b/couchapp/templates/vendor/lib/md5.js similarity index 100% rename from vendor/lib/md5.js rename to couchapp/templates/vendor/lib/md5.js diff --git a/vendor/lib/mustache.js b/couchapp/templates/vendor/lib/mustache.js similarity index 100% rename from vendor/lib/mustache.js rename to couchapp/templates/vendor/lib/mustache.js diff --git a/vendor/lib/path.js b/couchapp/templates/vendor/lib/path.js similarity index 100% rename from vendor/lib/path.js rename to couchapp/templates/vendor/lib/path.js diff --git a/vendor/lib/redirect.js b/couchapp/templates/vendor/lib/redirect.js similarity index 100% rename from vendor/lib/redirect.js rename to couchapp/templates/vendor/lib/redirect.js diff --git a/vendor/lib/utils.js b/couchapp/templates/vendor/lib/utils.js similarity index 100% rename from vendor/lib/utils.js rename to couchapp/templates/vendor/lib/utils.js diff --git a/vendor/lib/validate.js b/couchapp/templates/vendor/lib/validate.js similarity index 100% rename from vendor/lib/validate.js rename to couchapp/templates/vendor/lib/validate.js diff --git a/vendor/metadata.json b/couchapp/templates/vendor/metadata.json similarity index 54% rename from vendor/metadata.json rename to couchapp/templates/vendor/metadata.json index d54a5e46..17662486 100644 --- a/vendor/metadata.json +++ b/couchapp/templates/vendor/metadata.json @@ -1,5 +1,5 @@ { "name": "couchapp", "description": "official couchapp vendor", - "fetch_uri": "git://github.com/couchapp/couchapp.git" -} \ No newline at end of file + "fetch_uri": "git://github.com/couchapp/vendor.git" +} diff --git a/couchapp/util.py b/couchapp/util.py index dc7865c0..2888c9c6 100644 --- a/couchapp/util.py +++ b/couchapp/util.py @@ -9,12 +9,11 @@ from hashlib import md5 import logging import os -import pkg_resources import re import string import sys -from couchapp.errors import ScriptError, AppError +from .errors import ScriptError, AppError try: import json @@ -385,23 +384,12 @@ def __call__(self, *args, **options): def parse_uri(uri, section): - if uri.startswith("egg:"): - # uses entry points - entry_str = uri.split("egg:")[1] - try: - dist, name = entry_str.rsplit("#",1) - except ValueError: - dist = entry_str - name = "main" - - return pkg_resources.load_entry_point(dist, section, name) - elif uri.startswith("python:"): + if uri.startswith("python:"): uri1 = uri.split("python:")[1] - components = uri1.split('.') - if len(components) == 1: - raise RuntimeError("extension uri invalid") - klass = components.pop(-1) - mod = __import__('.'.join(components)) + module_str, klass = uri1.split("#") + components = module_str.split('.') + + mod = __import__(module_str) for comp in components[1:]: mod = getattr(mod, comp) return getattr(mod, klass) @@ -409,7 +397,7 @@ def parse_uri(uri, section): raise RuntimeError("extension uri invalid") def parse_hooks_uri(uri): - if uri.startswith("python:") or uri.startswith("egg:"): + if uri.startswith("python:"): return parse_uri(uri, "couchapp.hook") return ShellScript(uri) diff --git a/couchapp/util.pyo b/couchapp/util.pyo new file mode 100644 index 0000000000000000000000000000000000000000..db8742590f73843cf96d64b92caa98542d9c5fe5 GIT binary patch literal 11636 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 EA8)!wQUCw| literal 0 HcmV?d00001 diff --git a/couchapp/vendors/__init__.pyo b/couchapp/vendors/__init__.pyo new file mode 100644 index 0000000000000000000000000000000000000000..432284b88b4dffb960a0125b62f5e730f0b454e6 GIT binary patch literal 653 zcmb_Z%}T^D5dPA3{oNHW-aJda?A}Gh7qCJE4|^%KiCXD4Ws?d*J-KHe!T0fbd;p!9 zE_xKfkoh|KGM$-k5`Ro~-ri3xN~~8z-*Ym5Okij$)WAYvuAoeW6)=xr5||h(V#!Hx zm5wO7`lOXA^1=qewQY=BmNB_}s$STbg&<7Ctn-deP93p literal 0 HcmV?d00001 diff --git a/couchapp/vendors/base.pyo b/couchapp/vendors/base.pyo new file mode 100644 index 0000000000000000000000000000000000000000..50e5cf59a7036efdde11eb87a1b91d9ada75c513 GIT binary patch literal 5332 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 literal 0 HcmV?d00001 diff --git a/resources/scripts/couchapp b/resources/scripts/couchapp index 578ec9ad..f0dca8ff 100755 --- a/resources/scripts/couchapp +++ b/resources/scripts/couchapp @@ -1,7 +1,9 @@ -#!/usr/bin/env sh +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# # This file is part of couchapp released under the Apache 2 license. # See the NOTICE for more information. -PYTHON_BIN=`which python` +from couchapp.dispatch import run -$PYTHON_BIN -OO -c "import couchapp.dispatch" +run() diff --git a/resources/scripts/couchapp.bat b/resources/scripts/couchapp.bat index 8da2d461..a2009abf 100755 --- a/resources/scripts/couchapp.bat +++ b/resources/scripts/couchapp.bat @@ -2,4 +2,4 @@ REM This file is part of couchapp released under the Apache 2 license. REM See the NOTICE for more information. -pythonw.exe -OO -c "import couchapp:dispatch" +pythonw.exe -OO -c "import couchapp:dispatch" %* diff --git a/resources/scripts/couchapp.py b/resources/scripts/couchapp.py deleted file mode 100755 index aaef158e..00000000 --- a/resources/scripts/couchapp.py +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of couchapp released under the Apache 2 license. -# See the NOTICE for more information. - -__import__("couchapp.dispatch") diff --git a/setup.py b/setup.py index 91f83da5..69eef8b4 100644 --- a/setup.py +++ b/setup.py @@ -3,70 +3,42 @@ # This file is part of couchapp released under the Apache 2 license. # See the NOTICE for more information. -from distutils.command.install_data import install_data from distutils.core import setup import os import sys +from couchapp import __version__ + if not hasattr(sys, 'version_info') or sys.version_info < (2, 5, 0, 'final'): raise SystemExit("Couchapp requires Python 2.5 or later.") - +executables = [] setup_requires = [] extra = {} -class install_package_data(install_data): - def finalize_options(self): - self.set_undefined_options('install', - ('install_lib', 'install_dir')) - install_data.finalize_options(self) - -cmdclass = {'install_data': install_package_data } - def get_data_files(): data_files = [] - data_files.append((os.curdir, ["LICENSE", "MANIFEST.in", "NOTICE", "README.md", "THANKS.txt",])) + return data_files - for root in ('templates', 'vendor'): - for dir, dirs, files in os.walk(root): - dirs[:] = [x for x in dirs if not x.startswith('.')] - files = [x for x in files if not x.startswith('.')] - data_files.append((os.path.join('couchapp', dir), - [os.path.join(dir, file_) for file_ in files])) - -def get_include_files(): - include_files = [] - - data_path_src = os.curdir - data_path_dst = os.curdir - - filelist = ["LICENSE", "MANIFEST.in", "NOTICE", "README.md", - "THANKS.txt",] - - for fl in filelist: - include_files.append((os.path.join(data_path_src, fl), - os.path.join(data_path_dst, fl))) - - for root in ('templates', 'vendor'): - for dir, dirs, files in os.walk(root): - dirs[:] = [x for x in dirs if not x.startswith('.')] - files = [x for x in files if not x.startswith('.')] - - for f in files: - src = os.path.join(dir, f) - include_files.append((src, src)) +def ordinarypath(p): + return p and p[0] != '.' and p[-1] != '~' def get_packages_data(): - return { - "couchapp": [ - "templates/*", - "vendor/*" - ] - } + packagedata = {'couchapp': []} + + for root in ('templates',): + for curdir, dirs, files in os.walk(os.path.join("couchapp", root)): + print curdir + curdir = curdir.split(os.sep, 1)[1] + dirs[:] = filter(ordinarypath, dirs) + for f in filter(ordinarypath, files): + f = os.path.join(curdir, f) + packagedata['couchapp'].append(f) + return packagedata def all_packages(): return [ @@ -89,6 +61,7 @@ def get_scripts(): return [os.path.join("resources", "scripts", "couchapp")] return [os.path.join("resources", "scripts", "couchapp.bat")] +Executable = None if os.name == "nt" or sys.platform == "win32": # py2exe needs to be installed to work try: @@ -113,19 +86,19 @@ def get_scripts(): if len(sys.argv) == 1: sys.argv.append("py2exe") sys.argv.append("-q") - Executable = lambda x, *y, **z: x - setup_requires = ["py2exe"] + + extra['console'] = [{ + 'script': os.path.join("resources", "scripts", "couchapp"), + 'copyright':'Copyright (C) 2008-2011 BenoƮt Chesneau and others', + 'product_version': __version__ + }] + except ImportError: raise SystemExit('You need py2exe installed to run Couchapp.') -elif sys.platform == "linux2": - import cx_Freeze - from cx_Freeze import setup, Executable - setup_requires = ["cx_Freeze"] -from couchapp import __version__ setup( name = 'Couchapp', @@ -153,68 +126,23 @@ def get_scripts(): ], packages = all_packages(), - packages_data = get_packages_data(), + package_data = get_packages_data(), data_files=get_data_files(), - include_package_data = True, - - cmdclass=cmdclass, scripts=get_scripts(), - executables=[ - Executable( - "Couchapp.py", - compress=1, - copyDependentFiles=True) - ], - options = dict(py2exe={ - 'compressed': 1, - 'optimize': 2, - "ascii": 1, - "excludes": [ - "pywin", - "pywin.debugger", - "pywin.debugger.dbgcon", - "pywin.dialogs", - "pywin.dialogs.list", - ], 'dll_excludes': [ "kernelbase.dll", "powrprof.dll" ] }, - build_exe={ - "compressed": 1, - "optimize": 2, - "include_files": get_include_files(), - "create_shared_zip": 1, - "include_in_shared_zip": get_include_files() - }, - bdist_mpkg=dict(zipdist=True, license='LICENSE', readme='resources/macosx/Readme.html', welcome='resources/macosx/Welcome.html') ), - - entry_points=""" - [couchapp.extension] - autopush=couchapp.ext.autopush - - [couchapp.vendor] - git=couchapp.vendors.backends.git:GitVendor - hg=couchapp.vendors.backends.hg:HgVendor - couchdb=couchapp.vendors.backends.couchdb:CouchdbVendor - - [couchapp.hook] - compress=couchapp.hooks.compress:hook - - [console_scripts] - couchapp=couchapp.dispatch:run - """, - - setup_requires=setup_requires, + **extra )