Share

PyS60

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: