Од вчера :) (open office конвертор)

16 views
Skip to first unread message

Damjan

unread,
May 14, 2010, 10:48:23 AM5/14/10
to python-mk
Вчера на ad-hoc Python средбата со Стама го поправавме мојот конвертор
за YUSCII OpenOffice документи во UTF-8

Се тргна од идејата да го хостираме на Google App engine. Но
претходната верзија работеше со lxml кој е C екстензија и како таква
не е достапна на Google App Engine. Така да го преправавме да работи
со xml.dom.minidom (доаѓа стандардно во Python) и со pure-python
модулот xpath (http://code.google.com/p/py-dom-xpath/)

Кодот е тука: http://damjan.softver.org.mk/git/froggin.mk/?h=minidom
branch-от е minidom, симињање со git:

git clone git://damjan.softver.org.mk/froggin.mk
cd froggin.mk
git checkout --track minidom

API-то е релативно едноставно, на пр.

from convertor import convert_doc
# convert_doc очекува string со име на фајл, или file-like објект,
# a враќа StringIO објект со содржината на новиот фајл
buf = convert_doc("yuscii-file.odt")
fout = open("good-file.odt", 'w')
fout.write(buf.getvalue())
fout.close(


Алтернативно во google app engine хендлер контекст (ова не е баш
тестирано):

file_in = self.request.POST['myfile']
file_out = convert_doc(file_in)

self.response.content_disposition = 'attachment;
filename=converted.odt'
self.response.content_type = 'application/x-download'
self.response.out.write(file_out.getvalue())

Damjan

unread,
May 14, 2010, 4:00:13 PM5/14/10
to python-mk
Само што commit-ирав 2 demo web апликации за конверзија, па врз база
на нив може да се прави Google App Engine верзијата:

http://damjan.softver.org.mk/git/froggin.mk/tree/webob-app.py?h=minidom
http://damjan.softver.org.mk/git/froggin.mk/tree/werkzeug-app.py?h=minidom

webob верзијата би требало да е поблиску до GAE, но werkzeug верзијата
е подобра за тестирање бидејќи има и debug-ер.

Ако некој има искуство со GAE може да помогне на некоја следна средба.

Damjan

unread,
May 14, 2010, 4:03:37 PM5/14/10
to python-mk
> Кодот е тука:http://damjan.softver.org.mk/git/froggin.mk/?h=minidom
> branch-от е minidom, симињање со git:
>
>   git clone git://damjan.softver.org.mk/froggin.mk
>   cd froggin.mk
>   git checkout --track minidom

Поточно
git checkout --track origin/minidom


--
дамјан

Reply all
Reply to author
Forward
0 new messages