Pijamale este un set de instrumente și bibliotecă proiectat pentru a permite scrierea de cereri de AJAX în Python. Pijama se bazează pe Google GWT, care face același lucru pentru Java.
ike GWT, pijamale implică traducerea cererii și biblioteci (inclusiv widget UI și clase DOM) la Javascript si ambalajul din care cod Javascript.
Există două instrumente de dezvoltare de bază incluse în pijamale. pyjs traduce cod Python pentru Javascript de mers pe jos copac sintaxa abstract Python și generatoare de Javascript.
În multe cazuri, built-in Python tipuri necesită o punere în aplicare personalizat Javascript. De exemplu, chiar dacă listele Python sunt similare cu Javascript tablouri, liste de Python sunt convertite în obiecte personalizate care implementeaza metode cum ar fi append. Aceste obiecte personalizate necesare pentru traducerea de pyjs sunt definite într-o bibliotecă numită pyjslib.
Ca GWT, pijamale vine cu un set de widget-uri UI, precum și o bibliotecă pentru manipulare DOM. Aceste biblioteci sunt scrise în Python, dar sunt, ca orice altceva, tradus în Javascript pentru implementare.
Traducerea global de componente individuale, este gestionat de constructii care creează, de asemenea, codul boilerplate necesar. Rezultatul este un set de .html și .js fișiere care pot fi deservite de un server Web.
Există și alte componente planificate care nu au fost acoperite aici, cum ar fi codul server-side pentru comunicare în aplicații client-server
Ce este nou în această versiune:.
- sys.stdout și sys.stderr obiecte simple s-au adăugat. sys.exc_info () a fost fixată să se comporte mai mult ca Python.
- Un modul traceback foarte extinsă a adăugat.
- oninput și onpropertychange sprijin eveniment.
- O problemă getWidget cu HTMLTable sub pyjd pe Windows a fost stabilit.
- a adăugat Parsing a documentelor XML în pyjd pe Windows.
- O optiune de auto-build (monitorizare dosar) a fost adăugată la pyjsbuild.
- pyjscompressor.py a adăugat.
- Diverse bug-uri au fost stabilite.
- O serie de alte caracteristici au fost adăugate.
S-a adăugat
Ce este nou în versiunea 0.5p1:
- Completare automată fixă care tocmai nevoie de bază non-modal pe PopupPanel ( datorită lovelysystems pentru punerea în aplicare a dialoguri non-modale altfel nu ar fi posibil să se stabilească Completare automată)
- punerea în aplicare Adaugata de metaclass & quot; tip & quot; Funcția
- Made KeyboardListener un modul Singleton, mai degrabă decât au o clasă numit la fel ca modul. De asemenea cu MouseListener, Evenimente și Focus.
- Adaugata Context dreapta se poate face clic Meniuri, și a adăugat un exemplu în KitchenSink Menus.py pentru a arăta cum să le înființeze.
- Adaugata-python SpiderMonkey ca o platformă experimentală, exact ca pyv8run.py acum există pysmrun.py
- la nivel de top variabile globale, și de nivel superior functii, acum corect domeniul de aplicare într-un modul (datorită Jose pentru ridicarea acesta)
- constante Corzi sunt acum returnate ca instanțe ale String (), care are ca rezultat avand metoda __iter__ care a fost adăugat la proto de javascript tipul String de bază.
- si voi TypeError moșteni de la BaseException, mai degrabă decât să fie un proto javascript din eroare (). TypeError poate fi ridicată acum ca o excepție, cu un mesaj.
- si voi == uz comparație __eq__, care __cmp__ foloseste condiționat dacă este disponibil: acest rezolvă bug-uri în comparație cu listele în LibTest. înlocuit un număr mare de numeric & quot; == & quot; comparații cu & quot;. & quot ;, este astfel încât __eq__ sa nu se numește (eficiență)
- adăugat suport pentru apel args * pe funcții: anterior, o funcție de apel (* args) ar duce la args fiind aruncate !
- si voi tuplu propria clasă, mai degrabă decât moștenirea din lista, pentru ca se pot distinge din lista. __cmp__ de o lista cu un tuplu acum nu corect.
- rescris exemple / libtest astfel încât să poată fi rulate în Python standard (de python ./LibTest.py). aceasta permite o comparație a pyjs împotriva piton standard.
- adăuga metodă extinde la pyjslib.List
- adăuga float a comenzilor interne
- add pyjamas.log bazat pe exemple / libtest / write.py
- funcției interne înregistrat "cmp". a fost deja pusă în aplicare, dar nu sunt înmatriculate în pyjs.py
- adăugat o opțiune --optimize la ceea ce duce la eliminarea situațiilor de imprimare. acest lucru ar putea fi îmbunătățită în continuare. de exemplu când afirma este pusă în aplicare
- Mozilla fix & quot; Permission denied & quot; bug în DOM.isOrHasChild
- pyjslib.Dict folosesc acum metoda hash pentru a genera chei intern, astfel încât Si posibil să se utilizeze obiecte ca chei ca în python. Pentru limitări face previziuni cum citire exemple / libtest / DictTest.py
Ce este nou în versiunea 0.4p1:
- Aceasta este o versiune plasture minor de pijamale 0.4p1, compilatorul și Python-a-Javascript Python Web UI Widgets Toolkit.
- erorilor semnificative imobilizate includ funcția HorizontalPanel lui remove (), clar funcția SimplePanel lui (), și sprintf cu mai multe argumente (& quot;% s% d & quot;% (& quot; saluta & quot ;, 2) va lucra acum) Caseta de dialog are acum modal funcționalitate (datorită Jürgen Kartnaller).
- HorizontalSplitPanel a fost adăugat, deși ambele panourile orizontale și verticale funcționează corect pe browsere bazate pe Mozilla, dar Safari și IE nevoie de voluntari pentru a lucra pe ele.
Ce este nou în versiunea 0,4:
- Accesorii:
- Adaugata bibliotecă / splitpanel.py și bibliotecă / vertsplitpanel.py, împreună cu exemple / splitpanel. NOTĂ:. Splitpanels ar trebui să fie în UI
- schimbată ui.TabBar.insertTab () pentru a permite widget-uri pentru a fi transmise, precum și de text.
- exemple Adăugat / tabpanelwidget
- gtk_converter Adăugat la & quot; & quot; contrib Anuar (datorită Jeremy)
- Adaugata bibliotecă / decoratorpanel.py care include DecoratorPanel, DecoratedTabPanel și DecoratedTabBar. NOTĂ:. Aceste clase ar trebui să fie în UI
- exemple Adăugat / slideshow
- Adăugat suport pentru feliere cu numere negative.
- exemple Adăugat / jsobject
- Adăugat suport pentru un mod de depanare, care poate fi pornit prin inclusa & quot; d & quot; Opțiunea de linie de comandă, atunci când apel build.py. Cu această opțiune activată, fiecare afirmație în codul Python este înconjurat de un try ... cu excepția declarație care afișează o alertă în cazul în care se produce o excepție. Mesajul de alertă conține inițial textul sursă Python, numărul liniei în fișier sursă Python în cazul în care sa produs eroarea, și detaliile erorii are activat care au avut loc. Acest lucru ar trebui să simplifice foarte mult de depanare codul Pijamale.
- Numărul # 75: Adăugat suport pentru & quot; nu este Fără specialitate & quot; sintaxă.
- Numărul # 85: Implementarea repr () built-in funcție .
- Numărul # 93:. Dict.items implementate ()
- Numărul # 95:. Implementarea Window.prompt ()
- Numărul # 100:. Adăugat o setPadding () metoda pentru a ui.CellPanel
- Numărul # 103: Implementarea enumera () built-in funcție .
- Numărul # 104: Postat la capacitatea de a atribui la o listă de variabile, de exemplu: x, y = self.method ()
- Numărul # 105: Implementarea min () și max () built-in functii .
- Numărul # 88: Acum este posibil de a utiliza getattr () funcția built-in pentru a obține o metodă, iar apoi transmite parametri la această metodă atunci când îl apelați. Există un nou exemplu în & quot; exemple / & quot; Anuar, denumit & quot;. & quot ;, getattr care demonstrează cum acest lucru poate fi folosit
- Numărul # 111:. Adaugat XOR și bit-shift operatorilor, datorită legith
- Numărul # 112:. Adăugat suport pentru DRP () și Cro () built-in functii (! Mulțumiri, legith)
- Numărul # 113: suport Implementat de încercare de bază ... cu excepția situațiilor. Există, de asemenea, un nou modul, exemple / libtest / ExceptionTest.py, care testează utilizarea încerca ... cu excepția declarație.
- fix Bug-uri:
- Adaugata o nouă punere în aplicare a sprintf.
- Numărul # 86: Fixed un bug care ar putea cauza HTTPRequest la accident. Datorită finder83 din code.google.com/p/pyjamas pentru a ajuta pentru a găsi acest lucru.
- imagini standard, Adăugat de a utiliza pentru marginile și colțurile o casetă de dialog
- diferite modificări la ui.py și DOM.py a (parțial) eveniment sprijin de manipulare pe casete de dialog.
- Fixed un bug în ui.CellFormatter.getElement (), care ar putea provoca un accident.
- Fixed o problemă cu ui.FormSubmitEvent.setCancelled ()
- Fixed bug în ui.clickDelegatePanel.onBrowserEvent (), care a provocat un accident, atunci când procesarea unui eveniment keydown.
- schimbată ui.ClickDelegatePanel.onBrowserEvent () pentru a verifica dacă delegatul cheie are de fapt o & quot; onkeydown & quot; metodă înainte de a încerca să-i spunem.
- Numărul # 54: fix o probem cu detectare browser-ul (prin quot &, user-agent & quot; string) în Internet Explorer 7.0. Se pare că Microsoft a decis să schimbe șirul user-agent în IE 7, de rupere codul în pijama care a identificat browserul utilizatorului.
- cod Eliminată din DOM.init (), care a fost încercarea de a stabili un bug cu capturarea elemente, dar nu au de lucru.
- Fixed un bug în ComplexPanel.insert care a fost cauza Internet Explorer 6 la corupt modelul său DOM.
- Numărul # 53:. Fixed o problemă cu operatorul prioritate
- Numărul # 91: Adaugat DOM.eventGetCurrentEvent () funcție pentru a prelua evenimentul curent .
- schimbată FocusWidget.onBrowserEvent () pentru a verifica dacă ascultătorul clic are de fapt o & quot; onClick & quot; metodă înainte de a încerca să-i spunem.
- Numărul # 82: modificată conținut de tip trimis de bibliotecă / HTTPRequest.asyncPostImpl la & quot; application / x-www-form-urlencoded & quot; mai degrabă decât & quot; text / plain & quot ;. Acest lucru permite HTTPRequest obiectul care trebuie folosite pentru a face AJAX apeluri folosind cereri HTTP POST.
- Numărul # 81:. Bibliotecă fixe / ui.Panel.clear ()
- Adaugata o foaie de stiluri în cascadă la exemple / programul de e-mail
- Numărul # 106: Fixed o problemă în cazul în care, folosind un tuplu ca o cheie în dicționarul rezultate neașteptate
- Numărul # 107: Acum este posibil să includă un semn plus la începutul unei numeric literal
- datetime.py Mutat de la directorul addons în bibliotecă.
- Numărul # 80: schimbat multe dintre exemplele de utilizare a noilor & quot; pijamale & quot; Numele pachet.
- Fixed o problemă cu folosirea felii negative asupra liste (mulțumiri, Legith).
Comentariile nu a fost găsit