File Release Notes and Changelog
Release Name: 1.3.11
Notes:
===============================================
Python for S60 1.3.11 RELEASE NOTES, 06.10.2006
===============================================
Product Description
===================
Python for S60 (hereafter PyS60) is intended for developers looking to create
programs that use the native features and resources of the S60 phones, using the
Python programming language.
About this release
==================
This release is meant for S60 2nd edition and 3rd Edition devices.
For an overview of how the Symbian platform security enhancements affect PyS60,
please see 'PyS60_3rdEd_README.txt'.
Note on versioning: The versioning scheme in PyS60 releases is such that
releases with an even minor version (1.0.x, 1.2.x ...) are "stable" and releases
with an odd minor version (1.1.x, 1.3.x ...) are "development" releases. This is
thus a development release, meaning that it includes functionality that has not
been tested as extensively as the stable releases. This release is provided as a
preview to developers who wish to experiment with Python on S60 before the next
final stable release.
Documentation
=============
The PyS60 Library Reference document has not been updated yet to include the 3rd
edition changes.
Feedback
========
Feedback on all aspects of this release is very much appreciated. This is still
a work in progress, and we are very interested in any ideas and suggestions you
might have.
General feedback and discussion should be posted in the Python for S60
discussion board at Forum Nokia:
http://discussion.forum.nokia.com/forum/forumdisplay.php?f=102
Bug reports should be filed in the SourceForge bug tracking system at:
http://sourceforge.net/tracker/?group_id=154155&atid=790646
Bug fixes are naturally also welcomed. The preferred way to submit them is via
the patch manager at SourceForge:
http://sourceforge.net/tracker/?group_id=154155&atid=790648
At this point we are only accepting code contributions that are licensed under
the Apache 2.0 license. Please include an explicit note that your contribution
is licensed under the Apache 2.0 license.
Recent Changes
==============
Changes in 1.3.11 from 1.3.8:
-----------------------------
* The runtime has been split into a separate script shell and runtime part also
for 2nd edition platforms.
* Updated 'PYTHON222U.DEF' file which caused building to fail on pre-3rd
edition platforms
* New modules 'topwindow' and 'keycapture' added. Note that 'keycapture' will
require the SWEvent capability to function.
* Added support for constructing an 'Image' object from an SVG Icon object for
3rd edition releases.
Corrected defects:
1571936: File 'Python.rsg' was missing which cause py2sis to fail.
1554589: The script shell no longer installs the 'c:\resource\errrd' file, which
was reported to cause installation to fail on some devices.
1548416: The options menu didn't work in py2sis generated applications
1536718: The '\python\lib' entries were erroneously added to 'sys.path' as
Unicode, which resulted in importing modules from '\python\lib' to not work.
Python 2.2 supports only plain strings in sys.path; newer versions understand
also Unicode.
(The number in the defects refers to SourceForge defect tracking system)
Changes in 1.3.8 from 1.3.1:
----------------------------
* Py2SIS requires that the developer has installed S60 3rd Edition C++ SDK and
that this installation is working. Py2SIS also currently requires that the SDK
configuration is subst'ed, this means that e.g:
C:\>subst
S:\: => C:\Symbian\7.0s\Series60_v20
T:\: => C:\Symbian\8.1a\S60_2nd_FP3
U:\: => C:\Symbian\8.0a\S60_2nd_FP2
V:\: => C:\Symbian\9.1\S60_3rd
Py2SIS has to exist on the same subst'ed drive as your 3rdEd SDK, in the above
case the correct drive is 'V:'. For more information on py2sis, please see
'Py2SIS_3rdED_v0_1_README.txt'.
* 'messaging' extension supports sending MMS messages, the syntax is:
mms_send(<number>, <msg> [, <attachment>])
where attachment can be a path to e.g a picture.
* 'appuifw.app.uid()'
Returns the UID, in Unicode, of the native application in whose context the
current Python interpreter session runs.
* PyS60 now uses the official Python logo, with permission from the PSF.
* The distribution has been split into two SIS packages: PythonForS60
and PythonScriptShell. You will need to install them both to get
the same functionality as in the pre-3rd edition PyS60.
* The script shell "Run script" function searches for Python scripts
to run in the directories c:\python and e:\python. You can place
any scripts you wish to run in one of these directories. The script
shell will add the directories c:\python\lib and e:\python\lib into
sys.path, if they exist. You can place any library modules you wish
to use in one of these directories. To access these directories,
you can use e.g. the Nokia PC Suite, a memory card reader or a file
manager.
Unsupported features and changes in extensions
----------------------------------------------
* The recognizer-appmgr framework that is e.g. responsible for installing
scripts from the device inbox to the Python script shell application folder is
currently not supported. This means that all the scripts that a developer
intents to execute via the script shell application need to be installed to
'c:\python' or 'e:\python' via some other means.
* The 'calendar' extension is not supported.
* 'sysinfo.max_ramdrive_size()' is not supported.
* OBEX server functionality is not supported in 'socket' (the server cannot
receive data).
* 'location.gsm_location()' returns 'None' instead of tuple if the
location information is not relevant. Note that this module
requires the capabilities ReadDeviceData, ReadUserData and Location
to function.
* 'e32.start_exe()' takes the executable as a first parameter. The second
parameter takes the commandline parameters to the executable.
* 'contacts' requires ReadDeviceData and WriteDeviceData capabilities to work,
without these capabilities a panic will occur in a device. To open other than
the default database a drive letter must be given. Example:
contacts.open("c:test_db",'n')
Note that the database is always created if it does not exist. In other words,
contacts.open("c:test_db")
is equal to:
contacts.open("c:test_db", 'c')
* 'Ao_time.after()' is not supported.
Known issues
============
Refer to the SourceForge bug tracking system for current information on known
defects. Unless specifically mentioned, bugs filed against previous releases
apply also to this release.
Changes to standard library modules:
====================================
- Docstrings, comments, and test suites have been stripped or abbreviated in all
modules to save space.
- anydbm.py, whichdbm.py: Support for e32dbm has been added.
- mimetools.py: Functions that are impossible to implement (like popen) or
depend on nonsupported modules (like random) have been omitted.
- ntpath.py: Functions that are inapplicable on the platform, such as
expanduser, abspath and so on, have been omitted.
- os.py:
- Functions that are not supported by the platform (such as
exec*, spawn*, fork, popen) have been omitted.
- Function utime exists, but is a no-op stub.
- quopri.py: Support for running the module as a script has been removed.
- select.py: The only supported use case is selecting for read from
socket objects.
- shutil.py: Several functions have been omitted to save space or because of
missing platform functionality.
- site.py: Simplified and customized for the platform. help() built-in support
removed, because the pydoc module is not available and very few docstrings
remain in the library modules.
- socket.py: Adapted to work with the native sockets on the platform.
- getservbyname and getaddrinfo consult a small fixed table instead of an
external service map file. Only few services are supported.
- urllib.py: Proxy settings are loaded from the environment variables, not the
phone access point configuration.
- urlparse.py: Only basic functionality is provided.
- Modules distributed with the SDK build and device build are the same.
- time.py: Module attributes are not supported fully.
Copyright (c) 2006 Nokia Corporation. Nokia and Nokia Connecting People are
registered trademarks of Nokia Corporation.
Changes: