{"id":15903437,"url":"https://github.com/jaredly/pyjamas","last_synced_at":"2025-09-28T17:31:33.491Z","repository":{"id":894379,"uuid":"646704","full_name":"jaredly/pyjamas","owner":"jaredly","description":"a git clone of the sourceforge repo @ https://pyjamas.svn.sourceforge.net/svnroot/pyjamas","archived":false,"fork":false,"pushed_at":"2010-05-04T15:00:57.000Z","size":5652,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-13T02:37:04.978Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://pyjs.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaredly.png","metadata":{"files":{"readme":"README","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-05-04T14:39:36.000Z","updated_at":"2024-05-15T23:30:58.000Z","dependencies_parsed_at":"2022-08-16T11:20:41.736Z","dependency_job_id":null,"html_url":"https://github.com/jaredly/pyjamas","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredly%2Fpyjamas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredly%2Fpyjamas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredly%2Fpyjamas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredly%2Fpyjamas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaredly","download_url":"https://codeload.github.com/jaredly/pyjamas/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234545209,"owners_count":18850168,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-06T12:01:54.360Z","updated_at":"2025-09-28T17:31:32.642Z","avatar_url":"https://github.com/jaredly.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Current Release: 0.7\n---------------\n\nThis is the 0.7 release of Pyjamas.  Pyjamas comprises several projects,\none of which is a stand-alone python-to-javascript compiler; other projects\ninclude a Graphical Widget Toolkit, such that pyjamas applications can run\neither in web browsers as pure javascript (with no plugins required)\nor stand-alone on the desktop (as a competitor to PyGTK2 and PyQT4).\n\nFeatures and enhancements of the stand-alone 0.7 series javascript\ncompiler include:\n\n* the addition of generators (support for yield, by rewriting the function\n  so that it can be re-called and continue from the previous state);\n  the rewriting allows all browsers (not just firefox - the only browser\n  with a javascript-native \"yield\" feature) to appear to have python\n  \"yield\" functionality;\n\n* the beginnings of decorators support, and full support for properties,\n  with the addition of property();\n\n* some dramatic performance improvements due to a rewrite of for-loops;\n\n* improved support for import syntax (from . import module);\n\n* the addition of a built-in AST parser, use of which allows python 2.4\n  to compile programs with python 2.5 / 2.6 syntax into javascript;\n\n* addition of int and long types, and support for operator functions,\n  so that e.g list multiplication by numbers and list addition now work,\n  along with coercion between int, float and long types, and support\n  for floating point exceptions including raising ZeroDivisionError;\n\n* reintroduction of pyjscompile (equivalent to gcc -c foo.c -o foo.o).\n  This is in preparation for adding a separate linker command\n  (equivalent to gcc *.o -o foo), at which point Pyjamas apps will\n  be suitable for building using make, and Makefiles:\n  .py.js:\n      pyjscompile -o $\u003c $@\n\nOverall, this release is a significant \"pythonic\" upgrade: for full\ndetails, see the CHANGELOG.\n\nIn the User-Interface suite, which is separate from the Pyjamas\nstand-alone python-to-javascript compiler, the features and\nenhancements include:\n\n* The beginnings of a User-Interface and DOM regression test suite, that\n  is asynchronous and can generate and test the consequences of events.\n  It works by recording, using Pyjamas-Desktop, the HTML created by adding\n  and interacting with widgets and DOM (in \"record\" mode), then fetching\n  that HTML back using AJAX when the tests are run by the Browsers.\n  Care is taken to ensure that browsers that re-order Element Attributes are\n  taken into consideration.\n\n* An SVG / VML Canvas Library (a port of GWTCanvas).  This has been ported\n  to pure python, and consequently work under Pyjamas-Desktop as well.\n\n* A Graphical Chart Library (a port of GChart). This has been ported\n  to pure python, and consequently work under Pyjamas-Desktop as well.\n  For the same speed optimisations present in GChart, GChart for Pyjamas\n  can also use the python port of GWTCanvas.\n\n* A Google GMaps (v3) wrapper library.  This wrapper library uses the\n  Google GMaps javascript API, directly.  There are over ten demos and\n  examples that show how to use the API from Pyjamas.  Unfortunately,\n  the direct use of the GMaps javascript API precludes the use of\n  Pyjamas-Desktop, as it is quite tricky for PyJD ports to interact\n  (safely, if at all) with Javascript.  Javascript can be run\n  (through standard HTML methods), but initiation from Python and\n  interaction through Python is tricky.  Developers who may be\n  expecting to use Google GMaps on Pyjamas Desktop should therefore\n  assist in porting the Google GMaps Javascript API directly to\n  Python.\n\n* An internal restructure of Event handling, similar to GWT 1.7,\n  providing Focus, Mouse and Click \"Mixin\" modules so that developers\n  creating their own widgets have a minimal amount of work to do.\n  This redesign could only take place once Pyjamas supported multiple\n  inheritance (added in 0.6).\n\nPyjamas\n-------\n\nPyjamas is a port of Google Web Toolkit to Python, and thus enables\nthe development of Rich Media AJAX applications in Python, with no\nneed for special browser plugins.  Pyjamas contains a stand-alone\npython-to-javascript compiler, and also a Widget Set API that looks\nvery similar to Desktop Widget Set APIs (such as PyQT4 or PyGTK2).\n\nPyjamas also contains a Desktop Widget Set version, running as pure\npython, with three Desktop ports available.  Using web browser\ntechnology startlingly provides an alternative to traditional\nWidget sets, such as PyQT4 and PyGTK2, with the advantage of having\nfull support for HTML, CSS, Plugins and other web-related features\nalready built-in.  For the windows port, this can save users and\ndevelopers around 30mb of downloads, as MSHTML is preinstalled on\nthe Windows Operating System, as part of IE.\n\nFor more information, see:\n\n    http://pyjs.org\n    http://pyjs.org/FAQ.html\n    http://pyjs.org/features.html\n\nKnown bugs: http://code.google.com/p/pyjamas/issues\n            #290, #227, #228, #230, #304\n\nPyjamas-Desktop\n---------------\n\nPyjamas runs your python application in a Web Browser (as javascript).\nPyjamas-Desktop runs exactly the same python application on the\nDesktop (as pure python).\n\n    http://pyjd.org\n\nRelease 0.6 of Pyjamas incorporated Pyjamas-Desktop directly into\nthe Pyjamas Distribution.  To use Pyjamas-Desktop there are three choices,\nwith more planned [MacOSX PyObjC; KDE's PyKHTML].\n\nAll ports of Pyjamas-Desktop will require a JSON library to be\ninstalled: as there are plenty already, it is counter-productive\nto write yet another one.  simplejson is recommended.\n\n1) - XULRunner\n\ninstall hulahop and python-xpcom.  hulahop, from OLPC SugarLabs,\nis distributed with both Debian and Ubuntu; python-xpcom is part\nof XULRunner and is also distributed with both Debian and Ubuntu.\nOther users should investigate the installation instructions for\npython-xpcom and hulahop for the operating system of their choice\non the appropriate web sites.\n\nGNU/Linux, FreeBSD and other POSIX systems are strongly advised\nto use XULRunner for Pyjamas-Desktop: it is the most stable of the\nPyJD ports.\n\n2) - PyWebKitGtk\n\nyou will need a patched version of pywebkitgtk:\nhttp://code.google.com/p/pywebkitgtk/issues/detail?id=13\n\nyou will need a patched version of webkit:\nhttp://github.com/lkcl/webkit/16401.master\n\nDetailed build instructions are available here:\nhttp://wiki.github.com/lkcl/webkit/helping-with-16401master\n\n3) - MSHTML\n\nFor Windows users, all that's required, other than installing python\nand Internet Explorer, is one further tiny package: Win32 \"comtypes\".\n\nWin32 \"comtypes\" can be downloaded here:\n* http://sourceforge.net/projects/comtypes/\n\nUnlike the other ports, which can comprise a whopping great bundle\nof anything up to 30mb in size, the MSHTML port literally requires\nnothing more than comtypes, thanks to the far-sighted design of the\nMSHTML Trident Engine and its extensive COM interface.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaredly%2Fpyjamas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaredly%2Fpyjamas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaredly%2Fpyjamas/lists"}