Share

PyS60

File Release Notes and Changelog

Release Name: 1.3.17

Notes:
===============================================
Python for S60 1.3.17 RELEASE NOTES, 10.01.2007
===============================================

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.17 from 1.3.16:

 * Default access point selection added for S60 3rd edition build.
 
 * Documentation for Gles and GLCanvas added
  
Corrected defects:

1544601: the new import hook to support calling platsec_import with just one argument.

1624152: callback not called with ao_sleep
	
Changes in 1.3.16 from 1.3.15:
-----------------------------

 * Calendar: has some time truncating issues caused by daylight saving time. 
 In case the given time is truncated to the start of the day or into the end of the day the 
 time might be truncated into a slightly wrong datetime value (the datetime value can be an too 
 less or too great by an hour). This affects to the instance search (start and end times of the 
 search might be slightly incorrectly set) and to the repeat (repeat start and end might be slightly 
 incorrect).


 * added support for faster "camera" viewfinder (methods "start_finder()" and "stop_finder")
 
 * added inactivity timer reset/check to "e32" module (methods "reset_inactivity()" and "inactivity()")
 
 * added support for requesting screen layout information from "appuifw" (method "layout()")


Corrected defects:

1530868 "Multi_selection_list renders strange icons in the list for p"

1611315 "opening contacts DB on 2nd FP3"


Changes in 1.3.15 from 1.3.14:
-----------------------------

 * added access_points() method to socket module that list AP's id's and name that
 are available.

 * apid can be given as a paremeter for creating socket object, so that it will not 
 popup access point selection list when connection will be made.
 socket(family, type, proto=0, apid=0):

Corrected defects:

1599203: "No codec search functions registered"

1446359: bt_console.py does not handle UnicodeError

1544601: ASCII decoding error in e32dbm

1481937: crash when calling set_list on graphical listbox

1446275: time.sleep(),e32.ao_sleep fail for >=2148 seconds sleep

1446364: socket.recv() on UDP socket returns too much data

1595162: N70 front camera not taking picture

1599704: calendar: default db opening if no contact added

Changes in 1.3.14 from 1.3.13:
-----------------------------
 
 * Added method "say" to module 'audio'. This method gives access to device's text-to-speech 
 engine. The implementation is inspired by Artem Marchenko 
 (see http://blogs.forum.nokia.com/view_entry.html?id=126 for more information).

 * Added 'GLES' extension. OpenGL ES 1.0 module ported to PyS60. There are two examples 
 included in PyS60 SDK, simplecube.py and gles_demo.py.
 Known issues: 
    -Examples crash interpreter on 3.0 MR emulator if resolution "Portrait 352x416"is used.
    -On N80 simplecube.py crashes the interpreter if application screen mode is changed.

 * Possibility to use compiler RVCT 2.2 build 503 or higher with PyS60.
  For "setup.py configure" command, there is a new argument, "30armv5", which should be used when 
  building the SDK with RVCT compiler for ARMV5 target

 * Initial version of the contacts module for 3.0 has been added.
    - NOTE: contains lots of bugs. 

Changes in 1.3.13 from 1.3.12:
-----------------------------

 * Orientation switch added. In canvas, new callback is added to return tuple, 
 which contains the new rectangle width and height.
    
 * Added Ian Morgan's patch that adds flag for read/unread status to the 'Inbox' module

Corrected defects:

1552684: Crashing with multiple threads

1518817: I3480: Runtime orientation switch doesn't work

1584585: Incorrect keycapUture.pyd module in 2nd edition

1587765: Platsec errors trying to write .pycs in emulator

1571268: sysinfo.signal() returns signalstrength in wrong measure. Fixed
        according rionpulya's patch

1584269 calendar: 'end' time of repeat rounding problem 
        A partial correction to datetime rounding problem has been added. 
        This not a complete solution, but should work in most cases

Changes in 1.3.12 from 1.3.11:
-----------------------------

 * calendar module is supported also for 3.0. There are separated modules
 for <= 2.8 (old) and  3.0 (eka2)

 * Added text window height calculation to the Text widgets constructor.
  
Corrected defects:

1526853: thread.start_new_thread(..) didn't not work on SDK

1532290: Listbox construction crash

1542630: Chrash with Ao_timer and key callbacks

1542607: Crash with recursive Ao_timer


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.

 * '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')

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.

CONTRIBUTORS
------------

* Ian Morgan (iemorgan@users.sourceforge.net?) has provided a patch for adding 
  read/unread status to Inbox module


Changes: