[prev in list] [next in list] [prev in thread] [next in thread] 

List:       python-announce-list
Subject:    Brython 2.0 (Python in the browser)
From:       pierre.quentel () gmail ! com
Date:       2014-02-14 20:38:20
Message-ID: 395a8a65-0cc0-4ffc-8b73-289ead069703 () googlegroups ! com
[Download RAW message or body]

Hi,

Brython (Browser Python) is an implementation of Python 3 in the browser. Its goal is \
to be able to write client-side programs in Python instead of Javascript, with code \
inside tags <script type="text/python>...</script>. As opposed to solutions such as \
Pyjamas or Py2JS, the translation from Python to Javascript is done in the browser, \
it doesn't require a precompilation by a Python program

Launched late 2012, Brython is attracting a growing community of Python developers. \
Version 2.0 supports most of the CPython syntax and improves the interaction with \
Javascript libraries. The complete changelog is detailed below

The main entry point is the Brython site at http://www.brython.info, with an online \
editor and demos Development is hosted by Bitbucket : \
https://bitbucket.org/olemis/brython/src Join us on the Google group : \
https://groups.google.com/forum/?fromgroups=#!forum/brython

- Pierre


Changes in Brython version 2.0-20140209-164925
==============================================

Backwards-incompatible change
=============================
For the sake of namespace isolation, by default, the name of functions and classes \
defined in Brython are no more available in Javascript global namespace. As a \
consequence, functions can't be called as event callbacks from HTML tags. For \
instance, if a function echo() is defined in a Brython script, the following inline \
code :

    <button onclick="echo()">

will result in a Javascript error such as "name echo is not defined" when the button \
is clicked

The solution is to define the event callback inside Brython code. The button must \
have an id :

    <button id="echo">

and the Brython code must include the line

    doc["echo"].bind("click",echo)

Alternatively, to force the name "echo" into the global Javascript namespace, add it \
as an attribute of the window object :

    from browser import window
    window.echo = echo

Features
========
- namespace isolation : in previous versions, the names defined in Brython core \
scripts were included in the global Javascript namespace, raising risks of conflict \
with names defined in Javascript programs or libraries. In this version, the only \
names included in the global Javascript namespace are __BRYTHON__ (used internally) \
                and brython(), the function called on page load
- implement sys.implementation with values adapted for Brython
- allow syntax del (x, y, z)
- use Dan McDougall's pyminifier to reduce size of py_VFS.js
- make_dist generates a script brython_dist.js that can be used as a standalone \
distribution on a centralised server.

Demos
=====
- add drop files demo (by Glenn Linderman) and French Python course (using module \
slideshow) to the gallery

Imports
=======
- improved version of py_VFS.js by Billy Earney. py_VFS compiles the standard library \
to make imports faster. Now packs Python source with JSON instead of base64

Built-in modules
================
- browser : add attributes "window" and "document" as alias of respectively "win" and \
                "doc"
- add a module browser/slideshow for PowerPoint-like slideshows in Brython, using a \
custom file format

Bug fixes
=========
- issue #174 : string format character % has wrong precedence
- issue #175 : Functions should return None by default
- issue #183 : re.findall() broken
- issue #198 : operator precedence not defined for << and >>
- issue #206 : add <noscript> in case Javascript is disabled
- issue #208 : bug with try / else
- issue #209 : bug in ternary operator
- function definions must be evaluated only once, upon function definition
- bug with del a[:]
- bug with dir() called without arguments
- bug in map()
- bug with "func(x=1,)" ; "return +x" ; "func(10*-x)"
- bug in divmod and round
- bug in local_storage method keys()
- add attribute __doc__ to class and instance methods

Documentation
=============
- updated with the changes introduced in this version
- add documentation for the built-in module javascript
- translation in Spanish updated by Kiko Correoso

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

        Support the Python Software Foundation:
        http://www.python.org/psf/donations/


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic