لباس خواب ابزار و کتابخانه طراحی شده برای فعال کردن نوشتن برنامه های کاربردی AJAX در پایتون است. لباس خواب است در GWT گوگل، که همین کار را برای جاوا است.
آیک GWT، لباس خواب شامل ترجمه از برنامه ها و کتابخانه (از جمله ویدجت رابط کاربر و کلاس های DOM) به جاوا اسکریپت و بسته بندی از کد جاوا اسکریپت است.
دو ابزار توسعه دهنده هسته همراه با لباس خواب وجود دارد. pyjs ترجمه کد پایتون به جاوا اسکریپت توسط راه رفتن پایتون درخت نحو انتزاعی و تولید جاوا اسکریپت.
در بسیاری از موارد، ساخته شده است در پایتون انواع نیاز به اجرای سفارشی سازی جاوا اسکریپت. به عنوان مثال، حتی اگر لیست پایتون شبیه به آرایه جاوا اسکریپت می باشد، لیست پایتون تبدیل به اشیاء سفارشی که روش مانند اضافه پیاده سازی می باشد. این اشیاء سفارشی توسط pyjs مورد نیاز برای ترجمه در یک کتابخانه به نام pyjslib تعریف شده است.
مانند GWT، لباس خواب همراه با مجموعه ای از ویدجت رابط کاربر و همچنین یک کتابخانه برای DOM دستکاری. این کتابخانه ها در پایتون نوشته شده است اما، مانند هر چیز دیگری، برای استقرار به جاوا اسکریپت ترجمه شده است.
ترجمه به طور کلی از اجزای فرد با ساخت که همچنین ایجاد کد boilerplate لازم اداره می شود. نتیجه مجموعه ای از اچ است و .js فایل های است که می تواند توسط یک سرور وب خدمت کرده است.
دیگر اجزای برنامه ریزی شده است که در اینجا مانند کد سمت سرور برای ارتباطات در برنامه کلاینت سرور پوشش داده نمی شده است وجود دارد
چه در این نسخه جدید است.
sys.stdout ساده و اشیاء sys.stderr اضافه شد. sys.exc_info () رفتار و بیشتر شبیه پایتون ثابت شد.
ماژول traceback بسیار اساسی اضافه شد.
oninput و onpropertychange پشتیبانی رویداد اضافه شد.
مشکل getWidget با HTMLTable تحت pyjd بر روی ویندوز ثابت شد.
تجزیه اسناد XML تحت pyjd بر روی ویندوز اضافه شد.
خودکار ساخت و ساز (نظارت بر فایل) گزینه به pyjsbuild اضافه شد.
pyjscompressor.py اضافه شد.
اشکالات مختلف ثابت شد.
چندین ویژگی دیگر اضافه شده است.
جدید در نسخه 0.5p1 است:
به ثابت تکمیل خودکار که فقط نیاز غیر معین در PopupPanel (به لطف lovelysystems برای اجرای پنجره های غیر معین در غیر این صورت ممکن نخواهد بود به رفع تکمیل خودکار)
اجرای اضافه شده از metaclass ها & quot؛ نوع و & quot؛ تابع
نویسنده KeyboardListener یک ماژول تک قلو به جای یک کلاس همان ماژول به نام. به همین ترتیب با MouseListener، رویداد و تمرکز.
اضافه شده راست قابل کلیک متن منوها، و افزود به عنوان مثال در KitchenSink Menus.py تا نشان دهد چگونه به آنها گذاشته.
اضافه شده پایتون-spidermonkey به عنوان یک پلت فرم تجربی، دقیقا مانند pyv8run.py در حال حاضر است pysmrun.py وجود دارد
در سطح بالا متغیرهای جهانی، و سطح بالا از توابع، در حال حاضر به درستی دامنه در یک ماژول (با تشکر از خوزه برای بالا بردن این یکی)
ثابت رشته در حال حاضر به عنوان نمونه هایی از رشته () که در نتیجه در آنها داشتن روش __iter__ است که به پروتو از نوع String پایه جاوا اسکریپت اضافه بازگشت.
ساخته شده TypeError به ارث می برند از BaseException جای اینکه یک پروتو جاوا اسکریپت از خطا (). TypeError هم اکنون می توانید به عنوان یک استثنا با یک پیام مطرح شود.
ساخته شده == __eq__ استفاده مقایسه، که مشروط با استفاده از __cmp__ اگر آن را در دسترس است: این رفع اشکالات در مقایسه از لیست در LibTest. جایگزین تعداد زیادی از عددی و & quot؛ == & quot؛ را مقایسه با & quot؛ است & quot؛ باشد به طوری که __eq__ نمی شود به نام نه (بهره وری).
پشتیبانی از تماس استدلال * در توابع اضافه شده: پیش از این، یک تابع فراخوانی (* استدلال) را در استدلال منجر به دور انداخته شدن!
ساخته شده چندتایی کلاس خود را، به جای وارث از فهرست، به منظور است که می توان آن را از فهرست مشخص شده است. __cmp__ یک فهرست با یک تاپل در حال حاضر به درستی نتواند.
بازنویسی نمونه / libtest به طوری که می توان آنها را تحت پایتون استاندارد (پایتون ./LibTest.py) اجرا شود. این اجازه می دهد تا برای مقایسه pyjs برابر پایتون استاندارد.
اضافه به روش گسترش به pyjslib.List
اضافه شناور به builtins
اضافه کردن pyjamas.log در نمونه های مبتنی بر / libtest / write.py
ثبت builtin تابع 'CMP. در حال حاضر اجرا شد اما در pyjs.py ثبت نام نکرده
اضافه گزینه --optimize به که منجر به از بین بردن اظهارات چاپ. این می تواند بیشتر بهبود یافته است. به عنوان مثال زمانی که ادعا اجرا
موزیلا و & quot ثابت، اجازه ممنوع و & quot؛ اشکال در DOM.isOrHasChild
pyjslib.Dict در حال حاضر با استفاده از روش هش برای تولید کلید های داخلی، پس از آن سی امکان استفاده از اشیاء به عنوان کلید مانند در پایتون. برای محدودیت در dicts نمونه به عنوان خوانده شده / libtest / DictTest.py
جدید در نسخه 0.4p1 است:
این انتشار وصله جزئی از لباس خواب 0.4p1، کامپایلر پایتون به جاوا اسکریپت و پایتون وب ابزارک UI جعبه ابزار است.
اشکالات قابل توجهی ثابت شامل حذف تابع () HorizontalPanel است، روشن تابع () SimplePanel، و sprintf با استدلال های متعدد (& quot؛ را از٪ s٪ D & quot؛ را٪ (& quot؛ را سلام quot؛ باشد 2) در حال حاضر کار خواهد کرد و) جعبه محاوره در حال حاضر قابلیت مودال (با تشکر به یورگن kartnaller).
HorizontalSplitPanel اضافه شده است، اگر چه هر دو پانل افقی و عمودی به درستی در مرورگرهای مبتنی بر موزیلا عمل، اما صفری و اینترنت اکسپلورر نیاز داوطلبان به کار بر روی آنها.
فراهمکنندگان:
جدید در نسخه 0.4 است:
اضافه شده کتابخانه / splitpanel.py و کتابخانه / vertsplitpanel.py، همراه با نمونه / splitpanel. توجه: splitpanels باید در UI باشد.
ui.TabBar.insertTab تغییر () اجازه می دهد تا ویدجت به عنوان به خوبی به عنوان متن منتقل می شود.
اضافه شده نمونه / tabpanelwidget
اضافه شده gtk_converter به & quot؛ را contrib ها & quot؛ دایرکتوری (به لطف جرمی)
اضافه شده کتابخانه / decoratorpanel.py که شامل DecoratorPanel، DecoratedTabPanel و DecoratedTabBar. توجه: این کلاس ها باید در UI باشد.
اضافه شده نمونه / تصاویر به صورت خودکار
اضافه شدن پشتیبانی از برش با اعداد منفی.
اضافه شده نمونه / jsobject
اضافه شدن پشتیبانی از حالت اشکال زدایی، که می تواند در های تبدیل شامل یک & quot؛ -d ها & quot؛ گزینه خط فرمان هنگام فراخوانی build.py. با استفاده از این گزینه روشن، هر بیانیه ای در کد پایتون خود را با امتحان کنید ... به جز بیانیه ای که نمایش یک هشدار اگر یک استثنا رخ می دهد احاطه شده است. پیام هشدار شامل متن اصلی منبع پایتون، شماره خط در فایل منبع پایتون خود را که در آن خطا رخ داده است، و جزئیات خطا Javscript که رخ داده است. این تا حد زیادی باید ساده اشکال زدایی کد لباس خواب خود را.
شماره # 75: اضافه شدن پشتیبانی برای & quot؛ هیچ و & quot نیست؛ نحو.
شماره # 85: اجرا repr () ساخته شده است در تابع.
شماره # 93: dict.items پیاده سازی ().
شماره # 95: پیاده سازی Window.prompt ().
شماره # 100: اضافه شدن یک روش setPadding () به ui.CellPanel.
شماره # 103: اجرا برشمردن () ساخته شده است در تابع.
شماره # 104: اضافه شده است توانایی اختصاص به یک لیست از متغیرها، به عنوان مثال: X، Y = self.method ()
شماره # 105: اجرا دقیقه () و حداکثر () ساخته شده در توابع.
صدور # 88: در حال حاضر امکان استفاده از تابع () ساخته شده است در تابع برای به دست آوردن یک روش، و سپس تصویب پارامترهای به روش هنگامی که شما آن تماس بگیرید. یک مثال جدید در & quot وجود دارد؛ نمونه / & quot؛ را دایرکتوری، به نام & quot؛ را تابع & quot؛ باشد که نشان می دهد چگونه این را می توان مورد استفاده قرار.
شماره # 111: او XOR و کمی تغییر اپراتور، به لطف legith.
شماره # 112: اضافه شدن پشتیبانی برای ORD () و CHR () ساخته شده در توابع (با تشکر، legith!).
شماره # 113: پشتیبانی پیاده سازی برای امتحان عمومی ... به جز اظهارات. نیز وجود دارد یک ماژول جدید، نمونه / libtest / ExceptionTest.py، که تست استفاده از سعی ... به جز بیانیه.
رفع اشکال:
اضافه شده اجرای جدیدی از sprintf.
شماره # 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؛ روش قبل از اقدام به آن تماس بگیرید.
شماره # 54: رفع probem با تشخیص مرورگر (از طریق & quot؛ را عامل کاربر و & quot؛ رشته) تحت اینترنت اکسپلورر 7.0. ظاهرا مایکروسافت تصمیم به تغییر رشته عامل کاربر در اینترنت اکسپلورر 7، شکستن کد در لباس خواب که مرورگر کاربر شناخته شده است.
کد حذف از DOM.init () که در تلاش برای رفع مشکلات را با عناصر گرفتن، اما کار نمی کند.
رفع اشکال در ComplexPanel.insert شد که باعث اینترنت اکسپلورر 6 به فاسد مدل DOM آن است.
شماره # 53: مشکل با اولویت عملگر ثابت.
شماره # 91: او DOM.eventGetCurrentEvent تابع () برای بازیابی رویداد جاری است.
FocusWidget.onBrowserEvent تغییر () به بررسی کنید که شنونده کلیک در واقع دارای یک & quot؛ را onClick استفاده و & quot؛ روش قبل از اقدام به آن تماس بگیرید.
شماره # 82: تغییر نوع محتوا ارسال شده توسط کتابخانه / HTTPRequest.asyncPostImpl به & quot؛ نرم افزار / X-WWW-فرم-urlencoded ها & quot؛ به جای & quot؛ را متن / ساده و quot؛ کلیک کنید این اجازه می دهد تا HTTPRequest شی مورد استفاده قرار گیرد به AJAX تماس با استفاده از درخواست های HTTP POST.
شماره # 81: کتابخانه ثابت / ui.Panel.clear ().
اضافه شده شیوه آبشار به نمونه / برنامه ایمیل
شماره # 106: ثابت مشکل که در آن با استفاده از یک تاپل به عنوان یک کلید فرهنگ لغت نتایج غیر منتظره تولید
شماره # 107: در حال حاضر امکان شامل یک علامت مثبت در آغاز تحت اللفظی عددی
datetime.py از دایرکتوری افزونه به کتابخانه منتقل شد.
شماره # 80: تغییر بسیاری از نمونه های به استفاده از جدید & quot؛ لباس خواب و & quot؛ نام بسته.
مشکل با استفاده از برش منفی در لیست ثابت (با تشکر، Legith).
نظر یافت نشد