Welcome to Transcrypt's documentation!¶
Can't find what you're looking for? The on-line version of this documentation is frequently updated, reflecting the newest features and troubleshooting procedures.
Table of Contents:¶
- 1. Transcrypt: what and why
- 2. Getting started
- 3. Special facilities
- 3.1. Transcrypt's module mechanism
- 3.2. Using browser stubs to test non-GUI code that uses console.log and window.alert
- 3.3. Creating JavaScript objects with __new__ (<constructor call>)
- 3.4. Identifier aliasing: __pragma__ ('alias', ...) and __pragma__ ('noalias', ...)
- 3.5. Generating __doc__ attributes from docstrings: __pragma__ ('docat') and __pragma__ ('nodocat')
- 3.6. Surpassing the speed of native JavaScript: __pragma__ ('fcall') and __pragma ('nofcall')
- 3.7. Enabling Pythons send syntax: __pragma__ ('gsend') and __pragma ('nogsend')
- 3.8. Automatic conversion to iterable: __pragma__ ('iconv') and __pragma__ ('noiconv')
- 3.9. Conditional compilation: __pragma__ ('ifdef', <symbol>), __pragma__ ('ifndef', <symbol>), __pragma__ ('else') and __pragma__ ('endif')
- 3.10. Inserting literal JavaScript: __pragma__ ('js', ...) and __include__ (...)
- 3.11. Create bare JavaScript objects and iterate over their attributes from Python: __pragma__ ('jsiter') and __pragma__ ('nojsiter')
- 3.12. Keeping your code lean: __pragma__ ('jskeys') and __pragma__ ('nojskeys')
- 3.13. Keeping your code lean: __pragma__ ('jsmod') and __pragma__ ('nojsmod')
- 3.14. Keeping your code lean: __pragma__ ('kwargs') and __pragma__ ('nokwargs')
- 3.15. Preventing target annotation: __pragma__ ('noanno')
- 3.16. Operator overloading: __pragma__ ('opov') and __pragma__ ('noopov')
- 3.17. Skipping fragments while generating code : __pragma__ ('skip') and __pragma__ ('noskip')
- 3.18. Automatic conversion to truth value: __pragma__ ('tconv') and __pragma__ ('notconv')
- 4. Systematic code examples: a guided tour of Transcrypt
- 4.1. Arguments: **kwargs, *args, defaults, at call and def time, also for lambda's
- 4.2. Attribute access by name: getattr, setattr, hasattr
- 4.3. Attribute proxies by name: __getattr__, __setattr__
- 4.4. Callable or not: using the callable () built-in function
- 4.5. Classes: multiple inheritance and assignment of bound functions
- 4.6. Complex numbers: Python's builtin complex datatype
- 4.7. Conditional expressions: simple and nested
- 4.8. Control structures: for...else, while...else, if...elif...else, break, continue
- 4.9. Data structures: tuple, list, dict, set
- 4.10. Decorators: function and class, with and without parameters
- 4.11. Dict comprehensions
- 4.12. Dictionaries: dict revisited
- 4.13. Diverse issues
- 4.14. Diverse pulls
- 4.15. Docstrings: __doc__ attribute generated optionally
- 4.16. Exceptions: exception class hierarchy, finally
- 4.17. Extended slices: facilitating NumScrypt and such
- 4.18. General functions: sort and sorted
- 4.19. Global variable access by using globals () [<variable_name>]
- 4.20. Indices and slices: LHS, RHS, basic and extended
- 4.21. Iterators and generators
- 4.22. Lambda functions with all types of args
- 4.23. List comprehensions: multi-loop and nested with multiple if's
- 4.24. Local classes: inside other classes and functions
- 4.25. Metaclasses: overriding type.__new__ in a descendant metaclass
- 4.26. Module builtin: a small part of it demo'ed
- 4.27. Module cmath: allmost all of Python's cmath module
- 4.28. Module itertools: allmost all of Python's itertools module
- 4.29. Module math: allmost all of Python's math module
- 4.30. Module random: most important functions of Python's random module
- 4.31. Modules: hierarchical, both local to the project and global url-based
- 4.32. Nonlocals
- 4.33. Operator overloading
- 4.34. Properties
- 4.35. Representation as text: the repr and str built-in functions
- 4.36. Set comprehensions
- 4.37. Super
- 4.38. Simple and augmented assignment
- 4.39. Truthyness: optional Python-style evaluation of truthyness, falsyness and non-empty container selection
- 4.40. Tuple assignment: recursive and in for-headers using enumerate
- 5. Seamless interoperation with the DOM
- 6. Mixed examples
- 6.1. Three ways of integration with JavaScript libraries
- 6.2. Example: Pong
- 6.3. Joined minification
- 6.4. Example: jQuery
- 6.5. Example: iOS web app with native look and feel
- 6.6. Example: D3.js
- 6.7. Example: React
- 6.8. Example: Riot
- 6.9. Example: Using input and print in a DOM __terminal__ element in your browser
- 7. Autotesting Transcrypt code
- 8. The philosophy behind Transcrypt and its impact on design decisions
- 9. The main differences with CPython
- 9.1. Differences due to the compiled, rather than interpreted nature of Transcrypt
- 9.2. Differences due to the 'lean and mean' design goal
- 9.3. Differences due to interoperability with JavaScript and JavaScript libraries
- 9.4. Differences due to running Transcrypt applications in the browser, rather than on the desktop