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:
Copyright © 2010 Geeknet, Inc. All rights reserved. Terms of Use