Пижами е набор от инструменти и библиотеки за цел да даде възможност за написването на AJAX приложения в Python. Пижамите се основава на Google GWT, който прави същото нещо за Java.
Айк GWT, пижами включва превод на заявката и библиотеки (включително UI джаджи и DOM класове) до Javascript и опаковката започне тази Javascript код.
Има два инструменти ядро разработчик включени с пижами. pyjs превежда Python код на Javascript от ходене на Python абстрактен синтаксис дърво и генериране на Javascript.
В много случаи, вграден в Python видове изискват собствени решения Javascript. Например, въпреки че Python списъци са подобни на Javascript масиви, Python списъци се превръщат в потребителски обекти, които прилагат методи, като се прикрепя към него. Тези потребителски обекти, необходими за превод от pyjs са определени в библиотека, наречена pyjslib.
Подобно GWT, пижами идва с набор от UI джаджи, както и библиотека за манипулиране на DOM. Тези библиотеки са написани на Python, но са, както всичко останало, преведени на Javascript за разполагане.
Общата превода на отделните компоненти се управлява от натрупването която също създава необходимата шаблон код. Резултатът е набор от .html и .js файлове, които могат да бъдат обслужвани от уеб сървър.
Има и други компоненти планирани действия, които не са обхванати тук като от страна на сървъра код за комуникация в клиент-сървър приложения
Какво ново в тази версия:.
- бяха добавени Прости sys.stdout и sys.stderr обекти. sys.exc_info () беше определен да се държат по-скоро като Python.
- се прибавя един много основен traceback модул.
- oninput и подкрепа onpropertychange събитие.
- A getWidget проблем с HTMLTable под pyjd на Windows е била определена.
- е добавен разбор на XML документи по pyjd на Windows.
- Автоинжекционното строителство (мониторинг файл) вариант е добавен в pyjsbuild.
- е добавен pyjscompressor.py.
- Различни бъгове са фиксирани.
- бяха добавени и няколко други функции.
Е добавен
Какво ново във версия 0.5p1:
- Фиксирана автоматично довършване която просто е необходимо немодални на PopupPanel ( Благодарение на lovelysystems за прилагане немодални диалози в противен случай не би било възможно да се определи автоматично довършване)
- Добавена изпълнение на metaclass & quot; тип & quot; функция
- Made KeyboardListener Сингълтън модул, а не са един клас с име същото като модула. По същия начин с MouseListener, събитие и Focus.
- Добавена десния кликва контекстни менюта, и добавя един пример в KitchenSink Menus.py да покаже как да ги създаде.
- Добавена питон-SpiderMonkey като експериментална платформа, точно като pyv8run.py сега има pysmrun.py
- най-високо ниво на глобалните променливи, и най-високо ниво функции, вече правилно обхват в един модул (благодарение на Jose за повишаване на тази)
- String константи сега се връщат като случаи на String (), което води до тях като метод __iter__ който е бил добавен към прото на JavaScript база тип низ.
- направена Тип грешка наследи от BaseException вместо да е javascript, прото от Error (). Тип грешка сега може да се повиши, като изключение, с послание.
- направена == сравнение ползване __eq__, които условно __cmp__ използва, ако е налична: тази поправя грешки в сравнение на списъци в LibTest. заменя голям брой числено & quot; == & quot; сравнения с & quot;. е & quot ;, така че __eq__ не се нарича (ефективност)
- добавена поддръжка за свикване * аргументи на функции: преди, функция на повикване (* опцията) би довело до аргументът се изхвърля !
- направена кортеж свой собствен клас, а не Наследяването Списък, за да може тя да бъде разграничена от списъка. __cmp__ на Списък с кортеж вече правилно се провали.
- пренаписаха примери / libtest така че те да могат да се движат при стандартна питон (Python ./LibTest.py). това дава възможност за сравнение на pyjs срещу стандартната питон.
- добавите метод обхваща pyjslib.List
- добавите плувка да КЛАВИШНАта_ПОСЛЕДОВАТЕЛНОСТ
- добавите pyjamas.log въз основа на примери / libtest / write.py
- регистриран вградена функция "CMP". е вече изпълнена, но не е регистриран в pyjs.py
- добави --optimize опция за което води до премахване на печат отчети. това може да се подобри. например когато се твърди се изпълнява
- фиксирана Mozilla & quot; Разрешението е отказано & quot; бъг в DOM.isOrHasChild
- pyjslib.Dict сега използват метода на хеш за генериране на ключове вътрешно, така че SI възможно да се използват предмети като ключове като в Питон. За ограничения за dicts четат примери / libtest / DictTest.py
Какво ново във версия 0.4p1:
- Това е незначителен освобождаване кръпка на пижами 0.4p1, съставител на Python-да-Javascript и Python Web UI Widgets Toolkit.
- Значителни бъгове фиксирани включват функция HorizontalPanel на Remove (), прозрачен () функция SimplePanel, а sprintf с множество аргументи (& quot;% S% г & quot;% (& quot; здравей & quot ;, 2) вече ще работи) Dialog Box вече има друг вид транспорт функционалност (благодарение на Юрген Kartnaller).
- HorizontalSplitPanel е добавен, въпреки че и двете хоризонтални и вертикални панели работят правилно на Mozilla-базирани браузъри, но Safari и IE нужда от доброволци, които да работят за тях.
Какво ново във версия 0.4:
- Аксесоари:
- Добавена библиотека / splitpanel.py и библиотека / vertsplitpanel.py, заедно с примери / splitpanel. ЗАБЕЛЕЖКА:. Splitpanels трябва да са в UI
- Променени ui.TabBar.insertTab (), за да се даде възможност джаджи бъдат прехвърлени, както и текст.
- Добавени примери / tabpanelwidget
- Добавена gtk_converter на & quot; вноската & quot; указател (благодарение на Jeremy)
- Добавена библиотека / decoratorpanel.py която включва DecoratorPanel, DecoratedTabPanel и DecoratedTabBar. ЗАБЕЛЕЖКА:. Тези класове трябва да бъдат в UI
- Добавени примери / слайдшоу
- Добавена е поддръжка за подкосяване с отрицателни числа.
- Добавени примери / jsobject
- Добавена е поддръжка за режим на дебъгване, която може да бъде включена по включи & quot; -D & quot; опция на командния ред, когато се обаждате build.py. С тази опция е включена, всяко твърдение в Python код е заобиколен от опитам ... освен декларация, че ще покаже предупреждение, ако възникне изключение. Предупредителното съобщение съдържа оригиналния текст на източник Python, номера на реда в Python файла източник, където е възникнала грешката, и подробности за грешката Javscript които са настъпили. Това трябва да се опрости значително коригирането на грешките в Пижамите код.
- Issue # 75: Добавена е поддръжка за & quot; не е None & quot; синтаксис.
- Issue # 85: Въведена на токсично за възпроизводството () вградена функция .
- брой # 93:. Реализирани dict.items ()
- Issue # 95:. Изпълнено Window.prompt ()
- Issue # 100:. Добавен метод setPadding (), за да ui.CellPanel
- Issue # 103: Въведена на изброят () вградена функция .
- Issue # 104: Добавена е възможност да зададете към списък с променливи, например: X, Y = self.method ()
- Issue # 105: Изпълнено мин () и Макс () вградени функции .
- Issue # 88: Сега е възможно да се използва getattr () вградена функция за получаване на метод, а след това да зададете параметрите на този метод, когато го наричат. Налице е нова например в & quot; примери / & quot; директория, наречена & quot;. getattr & quot ;, която показва как това може да се използва
- брой # 111:. Публикувана XOR и битово-смяна оператори, благодарение на legith
- Issue # 112:. Добавена е поддръжка за РСР () и CHR () вградени функции (! Благодаря, legith)
- Issue # 113: Изпълнено подкрепа за основния пробвам ... освен изявления. Има и нов модул, примери / libtest / ExceptionTest.py, която тества използването на опитам ... освен изявление.
- Корекции на грешки:
- добавено ново изпълнение на sprintf.
- Issue # 86: Фиксирана бъг, който би могъл да причини HTTPRequest за катастрофата. Благодарение на finder83 от code.google.com/p/pyjamas за съдействие за намирането на това.
- Добавени стандартни снимки да използват за ръбовете и ъглите на диалогов прозорец
- Различни промени да ui.py и DOM.py да (частично) подкрепа събитие обработка на диалоговите прозорци.
- Фиксирана бъг в ui.CellFormatter.getElement (), което може да доведе до катастрофа.
- Фиксирана проблем с ui.FormSubmitEvent.setCancelled ()
- Фиксирана бъг в ui.clickDelegatePanel.onBrowserEvent (), което е причинило катастрофата, когато обработвате keyDown събитие.
- Променени ui.ClickDelegatePanel.onBrowserEvent (), за да се провери, че ключовият делегата всъщност има & quot; onKeyDown & quot; метод, преди да опитате да го наричат.
- Issue # 54: Фиксирана probem с детекция на браузъра (чрез & quot; User-Agent & quot; низ) под Internet Explorer 7.0. Очевидно Microsoft реши да промени низ потребителски агент в IE 7, като се измъкна от кода в Пижамите които идентифицират браузъра на потребителя.
- Премахнато код от DOM.init (), който се опитва да се определи бъг с прихващането на елементи, но не работи.
- Фиксирана бъг в ComplexPanel.insert която се причинява Internet Explorer 6 за корумпирани своята DOM модела.
- Issue # 53:. Фиксирана проблем с предимство на операторите
- Issue # 91: Добавено DOM.eventGetCurrentEvent () функция за извличане на текущото събитие .
- Променени FocusWidget.onBrowserEvent (), за да се провери, че кликване слушателя действително има & quot; OnClick & quot; метод, преди да опитате да го наричат.
- Issue # 82: Променена тип съдържание, изпратено от библиотека / HTTPRequest.asyncPostImpl да & quot; молба / X-WWW-форма-urlencoded & quot; вместо & quot; текст / обикновен & quot ;. Това позволява на HTTPRequest обект да бъде използван, за да AJAX разговори чрез искания HTTP POST.
- Issue # 81:. Fixed библиотека / ui.Panel.clear ()
- Добавена каскаден стилове за примери / мейл програма
- Issue # 106: Фиксирана проблем, където с помощта на кортеж като речника ключова произведени неочаквани резултати
- Issue # 107: Това вече е възможно да се включи знак плюс в началото на числова буквалния
- Преместен datetime.py от указателя Addons в библиотеката.
- Issue # 80: промени много от примерите за използване на новите & quot; пижама & quot; Име на пакет.
- Фиксирана проблем с използване на отрицателни филийки в списъци (благодарение, Legith).
Коментари не е намерена