Metadata-Version: 1.1
Name: Transcrypt
Version: 3.5.171
Summary: Python to JavaScript transpiler, supporting multiple inheritance and generating lean, highly readable code
Home-page: http://www.transcrypt.org
Author: Jacques de Hooge
Author-email: jacques.de.hooge@qquick.org
License: Apache 2.0
Description: Transcrypt is a tool to precompile a fairly extensive subset of Python into compact, readable Javascript. It has the following characteristics:
        
        - Allows for classical OO programming with *multiple inheritance* using pure Python syntax, parsed by CPython's native parser
        - Seamless integration with the universe of high-quality web-oriented JavaScript libraries, rather than the desktop-oriented Python ones
        - Hierarchical URL based module system to prevent name conflicts
        - Simple relation between Python source and generated JavaScript code for easy debugging
        - Multi-level sourcemaps and optional annotation of target code with source references
        - Compact downloads, kB's rather than MB's
        - Lightning fast JavaScript code, using memoization (call caching) to optionally bypass the prototype lookup chain
        - Operator overloading can be switched on and off locally to facilitate use for numerical math that's both readable and efficient
        
        .. figure:: http://www.transcrypt.org/illustrations/logo_white_small.png
        	:alt: Logo
        	
        	**Transcription once used to be manual labour**
        	
        Documentation with code examples
        ================================
        
        Take a look at the documentation with code examples at the Transcrypt website: http://www.transcrypt.org .
        
        Status
        ======
        
        Release 4 (version 3.5.161):
        
        - Almost all of the math module and most important part of random module added
        - Most important part of turtle module added. Uses SVG, see editable examples at: http://www.transcrypt.org/live/turtle_site/turtle_site.html
        - Multi-level sourcemaps, annotated target code, virtualenv installation.
        - Automated tests of functionality of compiled code OK.
        - Manual tests of sourcemaps and random module OK.
        - Further tests and feedback very welcome.
        - Sourcemaps were tested on Chrome under Windows and Linux, but seem to work on Firefox under Linux as well.
        
        What's new
        ==========
        
        - Correct evaluation of expressions like '[] or [] or [1, 2, 3]' added for tuples, arrays, sets and dicts
        - Optional Python truthyness evaluation for tuples, arrays, sets and dicts added
        - Functions getattr, setattr, hasattr, delattr added + test case
        - String slicing + testcase added (pull)
        - On-line "Mondrian" demo added using timer
        - Timer added to turtle module
        - "Mondrian" turtle demo added
        - Other modules not exporting their imports anymore (fell over during previous fix)
        - A module's __init__ now exports all of its imports to importers of that module
        - Added clear method to dict + testcase
        - Fixed error in set compare + testcase
        - Fixed class def bug: inheriting from qualified ('dotted') classname, and fixed - Fixed class def bug: inheriting from qualified ('dotted') classname, and fixed broken error report on this
        - Aliases added: case translates to py_case, default translates to py_default (switch already translated to py_switch)
        - Readme adapted
        - Fixes for wrong evaluation order when using // (issue 50) and for error in set and array compare (issue 51)
        - Bug in random module fixed
        - Bug in Linux compilation path fixed
        - Python random module added, only most important functionality: *seed, randint, choice, random*
        - Python math module added, almost all functionality
        - Live on-line SVG based turtle graphics added to website + demo's
        - Turtle graphics improved and expanded
        - SVG based turtle graphics module added
        - Multiple module initialization bug fixed
        - Alias py_name (in JS) for name (in Python) added
        - Installation procedure changed to benefit from virtualenv
        - Optional annotation of target code with source file names and source line numbers
        - Multi-level sourcemaps: Python source level debugging of both formatted and minified JavaScript code
        - Source code included in map rather than separate as was the case earlier
        - Switched from sectored V3 sourcemaps to monolithic V3 sourcemaps since they seem more mature and accepted
        
        Known restrictions
        ==================
        
        - No standard libs, use or encapsulate the JavaScript ones, that's part of the concept. Some may be ported though.
        - Not all methods of builtin types are there by default. This results from a deliberate choice to keep Transcrypt lean. Such things can be distributed in separate libs.
        - No eval and exec of Python code. This is again part of the concept. Transcrypt code is compiled, optimized and minified in advance to warant fast page loads.
        - No threading of any kind. Will probably stay that way as long as JavaScript doesn't properly support that.
        - No iterator, generator, xrange stuff. Maybe in the future if a broadly installed version of JavaScript suppports it.
        
        Known bugs
        ==========
        
        - None
        
        Readability
        ===========
        
        As can be seen below, there's a simple parallel between the Python and the JavaScript code.
        So it should be easy to debug.
        Also, code can be tested from the command prompt using stubs.
        
        .. figure:: http://www.transcrypt.org/illustrations/class_compare.png
        	:alt: Screenshot of Python versus JavaScript code
        	
        	**Classic OO with multiple inheritance in JavaScript**
        
        Other packages you might like
        =============================
        
        - Multi-module Python source code obfuscator: https://pypi.python.org/pypi/Opy
        - PLC simulator with Arduino code generation: https://pypi.python.org/pypi/SimPyLC
        - A lightweight Python course taking beginners seriously (under construction): https://pypi.python.org/pypi/LightOn
        - Event driven evaluation nodes: https://pypi.python.org/pypi/Eden
        - Numscrypt (under construction, very early stage), experimental port of a microscopic part of NumPy to Transcrypt, using JavaScript typed arrays: https://pypi.python.org/pypi/Numscrypt
        
        
        Licence
        =======
        
        Copyright 2014, 2015, 2016 Jacques de Hooge, GEATEC engineering, www.geatec.com
        
        Licensed under the Apache License, Version 2.0 (the "License");
        you may not use this file except in compliance with the License.
        You may obtain a copy of the License at
        
            http://www.apache.org/licenses/LICENSE-2.0
        
        Unless required by applicable law or agreed to in writing, software
        distributed under the License is distributed on an "AS IS" BASIS,
        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        See the License for the specific language governing permissions and
        limitations under the License.
        
Keywords: python,javascript,transpiler,compiler,browser,web,multiple inheritance,transcrypt,django
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.5
