Author: duncan
Date: Tue Jan 1 06:47:50 2008
New Revision: 10252
Log:
Updated docstrings
Modified:
branches/rel-1/freevo/src/audio/plugins/album_tree.py
branches/rel-1/freevo/src/gui/AlertBox.py
branches/rel-1/freevo/src/gui/Border.py
branches/rel-1/freevo/src/gui/ConfirmBox.py
branches/rel-1/freevo/src/gui/GUIObject.py
branches/rel-1/freevo/src/gui/InputBox.py
branches/rel-1/freevo/src/gui/Label.py
branches/rel-1/freevo/src/gui/PopupBox.py
branches/rel-1/freevo/src/osd.py
branches/rel-1/freevo/src/plugins/alsamixer2.py
branches/rel-1/freevo/src/plugins/buttonbar.py
branches/rel-1/freevo/src/plugins/freevo-rendezvous.py
branches/rel-1/freevo/src/plugins/idlebar/transcode.py
branches/rel-1/freevo/src/plugins/lcd.py
branches/rel-1/freevo/src/plugins/oneclick.py
branches/rel-1/freevo/src/plugins/remind.py
branches/rel-1/freevo/src/plugins/vfd.py
branches/rel-1/freevo/src/tv/plugins/irsend_directv.py
branches/rel-1/freevo/src/tv/plugins/ivtv_xine_tv.py
branches/rel-1/freevo/src/tv/plugins/recordings_manager.py
branches/rel-1/freevo/src/tv/plugins/upsoon.py
branches/rel-1/freevo/src/tv/plugins/vbi2srt_record.py
branches/rel-1/freevo/src/tv/strptime.py
branches/rel-1/freevo/src/tv/xmltv.py
branches/rel-1/freevo/src/util/amazon.py
branches/rel-1/freevo/src/util/fileops.py
Modified: branches/rel-1/freevo/src/audio/plugins/album_tree.py
==============================================================================
--- branches/rel-1/freevo/src/audio/plugins/album_tree.py (original)
+++ branches/rel-1/freevo/src/audio/plugins/album_tree.py Tue Jan 1
06:47:50 2008
@@ -106,8 +106,7 @@
@requires: pysqlite.
- Pre Installation
- ================
+ B{Pre-Installation}
The sqlite-meta-database should be available.
@@ -122,8 +121,7 @@
- wait.....
- The meta database should be available now.
- Configuration
- =============
+ B{Configuration}
Edit your local_config.py and add this:
@@ -168,8 +166,7 @@
| 'alt_grouping':[None, None, None, 'track']
| })
- Post Installation
- =================
+ B{Post Installation}
New plugins are not immediately visible on the freevo webserver.
Modified: branches/rel-1/freevo/src/gui/AlertBox.py
==============================================================================
--- branches/rel-1/freevo/src/gui/AlertBox.py (original)
+++ branches/rel-1/freevo/src/gui/AlertBox.py Tue Jan 1 06:47:50 2008
@@ -1,6 +1,6 @@
# -*- coding: iso-8859-1 -*-
# -----------------------------------------------------------------------
-# AlertBox.py - simple alert popup box class
+# Simple alert popup box class
# -----------------------------------------------------------------------
# $Id$
#
@@ -39,14 +39,14 @@
class AlertBox(PopupBox):
"""
- x x coordinate. Integer
- y y coordinate. Integer
- width Integer
- height Integer
- text String to print.
- icon icon
- text_prop A dict of 4 elements composing text proprieties:
- { 'align_h' : align_h, 'align_v' : align_v, 'mode' : mode,
'hfill': hfill }
+ @ivar x: x coordinate. Integer
+ @ivar y: y coordinate. Integer
+ @ivar width: Integer
+ @ivar height: Integer
+ @ivar text: String to print.
+ @ivar icon: icon
+ @ivar text_prop: A dict of 4 elements composing text proprieties:
+ { 'align_h': align_h, 'align_v': align_v, 'mode': mode, 'hfill':
hfill }
align_v = text vertical alignment
align_h = text horizontal alignment
mode = hard (break at chars); soft (break at words)
Modified: branches/rel-1/freevo/src/gui/Border.py
==============================================================================
--- branches/rel-1/freevo/src/gui/Border.py (original)
+++ branches/rel-1/freevo/src/gui/Border.py Tue Jan 1 06:47:50 2008
@@ -1,6 +1,6 @@
# -*- coding: iso-8859-1 -*-
# -----------------------------------------------------------------------
-# Border - For drawing borders around rectangular objects.
+# For drawing borders around rectangular objects.
# -----------------------------------------------------------------------
# $Id$
#
@@ -63,13 +63,10 @@
def __init__(self, parent, style=None, color=None, width=None):
"""
- parent the object to draw border of. use this to get
- geometry and stuff.
- style Border Type. One of 'flat','shadow','raised' or
- 'sunken'
- color Color of object, Either a Freevo Color object
- or a color integer.
- width Thickness of border.
+ @param parent: Object to draw border of; use this to get geometry and
stuff.
+ @param style: Border Type. One of 'flat','shadow','raised' or
'sunken'
+ @param color: Color of object, Either a Freevo Color object or a
color integer.
+ @param width: Thickness of border.
"""
if not parent or not isinstance(parent, GUIObject):
raise TypeError, 'You need to set the parent correctly'
Modified: branches/rel-1/freevo/src/gui/ConfirmBox.py
==============================================================================
--- branches/rel-1/freevo/src/gui/ConfirmBox.py (original)
+++ branches/rel-1/freevo/src/gui/ConfirmBox.py Tue Jan 1 06:47:50 2008
@@ -40,13 +40,13 @@
class ConfirmBox(PopupBox):
"""
- x x coordinate. Integer
- y y coordinate. Integer
- width Integer
- height Integer
- text String to print.
- icon icon
- text_prop A dict of 4 elements composing text proprieties:
+ @ivar x: x coordinate. Integer
+ @ivar y: y coordinate. Integer
+ @ivar width: Integer
+ @ivar height: Integer
+ @ivar text: String to print.
+ @ivar icon: icon
+ @ivar text_prop: A dict of 4 elements composing text proprieties:
{ 'align_h' : align_h, 'align_v' : align_v, 'mode' : mode,
'hfill': hfill }
align_v = text vertical alignment
align_h = text horizontal alignment
Modified: branches/rel-1/freevo/src/gui/GUIObject.py
==============================================================================
--- branches/rel-1/freevo/src/gui/GUIObject.py (original)
+++ branches/rel-1/freevo/src/gui/GUIObject.py Tue Jan 1 06:47:50 2008
@@ -205,13 +205,15 @@
def move(self, x, y):
"""
- x Integer, amount to move along x axis.
- y Integer, amount to move along y axis.
-
Move the object by a certain amount
- Note: either the user would have to hide and show the object
- moving, or we do it for him. Not decided yet.
+ @note: Either the user would have to hide and show the object
+ moving, or we do it for him. Not decided yet.
+
+ @param x: amount to move along x axis.
+ @type x: Integer
+ @param y: amount to move along y axis.
+ @type y: Integer
"""
self.hide()
self.set_position(self.left+x, self.top+y)
Modified: branches/rel-1/freevo/src/gui/InputBox.py
==============================================================================
--- branches/rel-1/freevo/src/gui/InputBox.py (original)
+++ branches/rel-1/freevo/src/gui/InputBox.py Tue Jan 1 06:47:50 2008
@@ -40,14 +40,14 @@
class InputBox(PopupBox):
"""
- x x coordinate. Integer
- y y coordinate. Integer
- width Integer
- height Integer
- text String to print.
- type 'normal' or 'password'
- icon icon
- text_prop A dict of 4 elements composing text proprieties:
+ @ivar x: x coordinate. Integer
+ @ivar y: y coordinate. Integer
+ @ivar width: Integer
+ @ivar height: Integer
+ @ivar text: String to print.
+ @ivar type: 'normal' or 'password'
+ @ivar icon: icon
+ @ivar text_prop: A dict of 4 elements composing text proprieties:
{ 'align_h' : align_h, 'align_v' : align_v, 'mode' : mode,
'hfill': hfill }
align_v = text vertical alignment
align_h = text horizontal alignment
Modified: branches/rel-1/freevo/src/gui/Label.py
==============================================================================
--- branches/rel-1/freevo/src/gui/Label.py (original)
+++ branches/rel-1/freevo/src/gui/Label.py Tue Jan 1 06:47:50 2008
@@ -1,6 +1,6 @@
# -*- coding: iso-8859-1 -*-
# -----------------------------------------------------------------------
-# Label - A class for text labels
+# A class for text labels
# -----------------------------------------------------------------------
# $Id$
#
@@ -34,12 +34,11 @@
class Label(GUIObject):
"""
- text String, text to display
- align Integer, h_align of text. Label.CENTER, Label.RIGHT,
- Label, LEFT
- parent GUIObject, Reference to object containing this label.
- text_prop A dict of 4 elements composing text proprieties:
- { 'align_h' : align_h, 'align_v' : align_v, 'mode' : mode,
'hfill': hfill }
+ @ivar text: String, text to display
+ @ivar align: Integer, h_align of text. Label.CENTER, Label.RIGHT, Label,
LEFT
+ @ivar parent: GUIObject, Reference to object containing this label.
+ @ivar text_prop: A dict of 4 elements composing text proprieties:
+ { 'align_h': align_h, 'align_v': align_v, 'mode': mode, 'hfill':
hfill }
align_v = text vertical alignment
align_h = text horizontal alignment
mode = hard (break at chars); soft (break at words)
Modified: branches/rel-1/freevo/src/gui/PopupBox.py
==============================================================================
--- branches/rel-1/freevo/src/gui/PopupBox.py (original)
+++ branches/rel-1/freevo/src/gui/PopupBox.py Tue Jan 1 06:47:50 2008
@@ -43,13 +43,13 @@
class PopupBox(Window):
"""
- x x coordinate. Integer
- y y coordinate. Integer
- width Integer
- height Integer
- text String to print.
- icon icon
- text_prop A dict of 4 elements composing text proprieties:
+ @ivar x: x coordinate. Integer
+ @ivar y: y coordinate. Integer
+ @ivar width: Integer
+ @ivar height: Integer
+ @ivar text: String to print.
+ @ivar icon: icon
+ @ivar text_prop: A dict of 4 elements composing text proprieties:
{ 'align_h' : align_h, 'align_v' : align_v, 'mode' : mode,
'hfill': hfill }
align_v = text vertical alignment
align_h = text horizontal alignment
@@ -99,8 +99,7 @@
"""
Get the text to display
- Arguments: None
- Returns: text
+ @returns: text
"""
return self.label.text
Modified: branches/rel-1/freevo/src/osd.py
==============================================================================
--- branches/rel-1/freevo/src/osd.py (original)
+++ branches/rel-1/freevo/src/osd.py Tue Jan 1 06:47:50 2008
@@ -873,7 +873,7 @@
ellipses, word_splitter):
"""
calculate _one_ line for drawstringframed.
- @returns: a list
+ @returns: a tuple containing
- width used
- string to draw
- rest that didn't fit
@@ -981,7 +981,6 @@
draw the part that fit and returns the other that doesn't.
This is a wrapper to drawstringframedsoft() and -hard()
- Parameters:
@param string: the string to be drawn, supports also <nl>. <tab> is
not supported
by pygame, you need to replace it first
@param x: horizontal position
Modified: branches/rel-1/freevo/src/plugins/alsamixer2.py
==============================================================================
--- branches/rel-1/freevo/src/plugins/alsamixer2.py (original)
+++ branches/rel-1/freevo/src/plugins/alsamixer2.py Tue Jan 1 06:47:50 2008
@@ -52,40 +52,40 @@
The plugin uses the following configuration variables, which need to be
defined in local_conf.py:
- ALSAMIXER2_MAIN_CTRL = <control name>
- This is the mixer control that the plugin will use for handling volume
- (up and down) events. The control name needs to be a string as returned
- by 'amixer scontrols', i.e., 'PCM', 'Vol', or such.
- If this variable is not set, the first entry in the controls list (see
- below) will be used.
-
- ALSAMIXER2_MUTE_CTRL = <control name>
- This is the mixer control that the plugin will use for handling mute
- events. Some systems use different controls for volume and muting.
- If this variable is not set, the main control will be used for muting.
-
- ALSAMIXER2_CTRLS = [
- ( <control name>, <card name>, <default vol>, <min vol>, <max vol> ),
- ...
- ]
+ | ALSAMIXER2_MAIN_CTRL = <control name>
+ | This is the mixer control that the plugin will use for handling
volume
+ | (up and down) events. The control name needs to be a string as
returned
+ | by 'amixer scontrols', i.e., 'PCM', 'Vol', or such.
+ | If this variable is not set, the first entry in the controls list
(see
+ | below) will be used.
+ |
+ | ALSAMIXER2_MUTE_CTRL = <control name>
+ | This is the mixer control that the plugin will use for handling mute
+ | events. Some systems use different controls for volume and muting.
+ | If this variable is not set, the main control will be used for
muting.
+ |
+ | ALSAMIXER2_CTRLS = [
+ | ( <control name>, <card name>, <default vol>, <min vol>, <max vol> ),
+ | ...
+ | ]
This is a list of mixer controls that the plugin will use. Each entry of
the list represent one control and contains the following items:
- <control name> The name of this mixer control.
- <card name> The name of the card that this control lives on. Use
- something like 'hw:0'. To use the default card, use
- 'default' or leave it empty ('').
- <default vol> Default volume for this control. The plugin will set
- this control to this value upon initialization if the
- value is >= 0,
- <min vol> Minimum volume. This is the minimum volume that can be
- reached with 'volume down' events. This item makes only
- sense for the main control and can be omitted for other
- controls.
- <max vol> Maximum volume. This is the maximum volume that can be
- reached with 'volume up' events. This item makes only
- sense for the main control and can be omitted for other
- controls.
+ - <control name> The name of this mixer control.
+ - <card name> The name of the card that this control lives on. Use
+ something like 'hw:0'. To use the default card, use
+ 'default' or leave it empty ('').
+ - <default vol> Default volume for this control. The plugin will set
+ this control to this value upon initialization if the
+ value is >= 0,
+ - <min vol> Minimum volume. This is the minimum volume that can
be
+ reached with 'volume down' events. This item makes
only
+ sense for the main control and can be omitted for
other
+ controls.
+ - <max vol> Maximum volume. This is the maximum volume that can
be
+ reached with 'volume up' events. This item makes only
+ sense for the main control and can be omitted for
other
+ controls.
Example:
| ALSAMIXER2_MAIN_CTRL = 'PCM'
Modified: branches/rel-1/freevo/src/plugins/buttonbar.py
==============================================================================
--- branches/rel-1/freevo/src/plugins/buttonbar.py (original)
+++ branches/rel-1/freevo/src/plugins/buttonbar.py Tue Jan 1 06:47:50 2008
@@ -75,13 +75,13 @@
| plugin.activate('buttonbar')
Where the actions mapped to each of the colors can be one of the following:
- * info - Brings up a screen displaying more information than can be
displayed
+ - info - Brings up a screen displaying more information than can be
displayed
in the few lines available on the TV guide page.
- * record - Same as the record button.
- * adv:<number> - Special action to allow navigation of the TV Guide,
+ - record - Same as the record button.
+ - adv:<number> - Special action to allow navigation of the TV Guide,
<number> can be either positive or negative and is the number of
hours
to go forward/back.
- * now - jumps back to the currently running program
+ - now - jumps back to the currently running program
You can also map the following actions to unused keys of your keyboard
(For example):
Modified: branches/rel-1/freevo/src/plugins/freevo-rendezvous.py
==============================================================================
--- branches/rel-1/freevo/src/plugins/freevo-rendezvous.py (original)
+++ branches/rel-1/freevo/src/plugins/freevo-rendezvous.py Tue Jan 1
06:47:50 2008
@@ -44,11 +44,11 @@
"""
Rendezvous Broadcaster Plugin
- See: http://www.porchdogsoft.com/products/howl/ (Win32
Plugin/Linux/FreeBSD)
+ U{Win32 Plugin/Linux/FreeBSD <http://www.porchdogsoft.com/products/howl/>}
- This plugin has been tested with
- * Safari on Mac OS X Panther
- * IE6 + Howl on Windows XP
+ This plugin has been tested with:
+ - Safari on Mac OS X Panther
+ - IE6 + Howl on Windows XP
To enable this plugin, add to your local_conf.py:
| plugin.activate('freevo-rendezvous')
@@ -60,8 +60,9 @@
plugin.DaemonPlugin.__init__(self)
desc = {'version':version.__version__}
myip = self.my_ipaddr('localhost')
- info = Rendezvous.ServiceInfo("_http._tcp.local.", "Freevo
Web._http._tcp.local.", address=socket.inet_aton(myip),
- port=config.WEBSERVER_PORT, weight=0, priority=0, properties=desc,
server=socket.gethostname)
+ info = Rendezvous.ServiceInfo("_http._tcp.local.", "Freevo
Web._http._tcp.local.", \
+ address=socket.inet_aton(myip), port=config.WEBSERVER_PORT, \
+ weight=0, priority=0, properties=desc, server=socket.gethostname)
r.registerService(info)
def my_ipaddr(self,interface_hostname=None):
Modified: branches/rel-1/freevo/src/plugins/idlebar/transcode.py
==============================================================================
--- branches/rel-1/freevo/src/plugins/idlebar/transcode.py (original)
+++ branches/rel-1/freevo/src/plugins/idlebar/transcode.py Tue Jan 1
06:47:50 2008
@@ -127,15 +127,14 @@
(friendlyname, status, perc, timerem)
friendlyname is the friendlyname you assigned to the encoding job
- status is the current status of the encoding job, represented by an
integer
- 0 - Not set (this job hasn't started encoding). Never used in this
context
- 1 - Audio pass in progress
- 2 - First (analyzing) video pass (only used in multipass encoding)
- 3 - Final video pass
- 4 - Postmerge (not used atm). Final merging or similar processing
in progress
+ status is the current status of the encoding job, represented by an
integer:
+ - 0 Not set (this job hasn't started encoding). Never used in this
context
+ - 1 Audio pass in progress
+ - 2 First (analyzing) video pass (only used in multipass encoding)
+ - 3 Final video pass
+ - 4 Postmerge (not used atm). Final merging or similar processing
in progress
perc is the percentage completed of the current pass
- timerem is the estimated time remaining of the current pass, formatted
as a
- human-readable string.
+ timerem is the estimated time remaining of the current pass, formatted
as a human-readable string.
"""
_debug_('getprogress()', 2)
Modified: branches/rel-1/freevo/src/plugins/lcd.py
==============================================================================
--- branches/rel-1/freevo/src/plugins/lcd.py (original)
+++ branches/rel-1/freevo/src/plugins/lcd.py Tue Jan 1 06:47:50 2008
@@ -748,9 +748,9 @@
"""
Display context info in LCD using lcdproc daemon.
- Requirements:
- * lcdproc: installed and LCDd running. (http://lcdproc.sourceforge.net/)
- * pylcd: installed (http://www.schwarzvogel.de/software-pylcd.shtml)
+ @requires:
+ - lcdproc: installed and LCDd running.
U{http://lcdproc.sourceforge.net/}
+ - pylcd: installed U{http://www.schwarzvogel.de/software-pylcd.shtml}
Also, your LCD dimensions must be supported. Right now it support: 4x20,
4x40, 2x16, 2x20, 2x40. If you have one with different dimension, it will
Modified: branches/rel-1/freevo/src/plugins/oneclick.py
==============================================================================
--- branches/rel-1/freevo/src/plugins/oneclick.py (original)
+++ branches/rel-1/freevo/src/plugins/oneclick.py Tue Jan 1 06:47:50 2008
@@ -134,7 +134,7 @@
def wget(url):
- ''' get a file from the url '''
+ """ get a file from the url """
_debug_('wget(%s)' % (url), 2)
txdata = None
txheaders = {
@@ -215,8 +215,8 @@
"""
def __init__(self):
- '''
- '''
+ """
+ """
_debug_('PluginInterface.__init__()', 2)
if not config.USE_NETWORK:
self.reason = 'USE_NETWORK not enabled'
@@ -227,8 +227,8 @@
plugin.MainMenuPlugin.__init__(self)
def config(self):
- '''
- '''
+ """
+ """
_debug_('config()', 2)
return [
('ONECLICK_LOCATIONS', None, 'Location codes for current
conditions and forecasts'),
@@ -239,16 +239,16 @@
]
def items(self, parent):
- '''
- '''
+ """
+ """
_debug_('items(self, parent)', 2)
return [ WeatherMainMenu(parent) ]
class WeatherItem(Item):
- '''
+ """
Item for the menu for one feed
- '''
+ """
def __init__(self, parent, location):
_debug_('WeatherItem.__init__(parent=%r, location=%r)' % (parent,
location), 2)
Item.__init__(self, parent)
@@ -347,7 +347,7 @@
self.getForecast()
def getForecast(self, force=0):
- '''grab the forecast, updating for the website if needed'''
+ """grab the forecast, updating for the website if needed"""
_debug_('getForecast(force=%s)' % (force), 2)
# check cache
@@ -372,7 +372,7 @@
def needsRefresh(self):
- '''is the cache too old?'''
+ """is the cache too old?"""
_debug_('needsRefresh()', 2)
if (os.path.isfile(self.cacheCurrent) == 0 or \
(abs(time.time() - os.path.getmtime(self.cacheCurrent)) >
WEATHER_AGE)):
@@ -381,9 +381,9 @@
return 0
def updateData(self):
- '''update the cache data from the 1click service
+ """update the cache data from the 1click service
@notes the elocation is not updated as it is static
- '''
+ """
_debug_('updateData()', 2)
if GUI:
popup = PopupBox(text=_('Fetching Weather for %s...') %
self.popupParam)
@@ -429,7 +429,7 @@
def updateMap(self):
- ''' Update the weather map '''
+ """ Update the weather map """
_debug_('updateMap()', 2)
# obtain radar map
if self.mapuri:
@@ -491,7 +491,7 @@
util.save_pickle(self.forecastData, self.cacheForecast)
def saveMapToCache(self):
- ''' save weather map to the cache '''
+ """ save weather map to the cache """
try:
if self.weatherMapData is not None:
imgfd = os.open(self.mapFile, os.O_CREAT|os.W_OK)
@@ -501,7 +501,7 @@
print 'failed saving weather map to cache "%s": %s' %
(self.mapFile, error)
def loadFromCache(self):
- ''' load the data and the map from the cache '''
+ """ load the data and the map from the cache """
_debug_('loadFromCache()', 2)
self.elocationData = util.read_pickle(self.cacheElocation)
self.currentData = util.read_pickle(self.cacheCurrent)
@@ -518,24 +518,24 @@
os.close(imgfd)
def actions(self):
- ''' return a list of actions for this item '''
+ """ return a list of actions for this item """
_debug_('actions()', 2)
return [ (self.start_detailed_interface, _('Show Weather Details')) ]
def start_detailed_interface(self, arg=None, menuw=None):
- ''' detail handler '''
+ """ detail handler """
_debug_('start_detailed_interface(arg=%r, menuw=%r)' % (arg, menuw), 2)
WeatherDetailHandler(arg, menuw, self)
def isValid(self):
- ''' reports is an error was detected '''
+ """ reports is an error was detected """
_debug_('isValid()', 2)
return not self.error
def getLastUpdated(self):
- ''' parse the lsup time
+ """ parse the lsup time
@notes there seems to be a problem with AM/PM not parsing correctly
- '''
+ """
_debug_('getLastUpdated() "%s"' % self.updated, 2)
if self.zone < 0:
return '%s (GMT%s)' % (self.updated, self.zone)
@@ -560,7 +560,7 @@
return self.updated.replace(' Local Time', '')
def getObservationStation(self):
- ''' get the observation station '''
+ """ get the observation station """
_debug_('getObservationStation()', 2)
return "%s" % (self.observation_station)
@@ -573,12 +573,12 @@
return u"%s\xb0%s" % (self.feeling, self.unit_t)
def getCurrentCondition(self):
- ''' gets the current conditions '''
+ """ gets the current conditions """
_debug_('getCurrentCondition()', 2)
return "%s" % (self.current_conditions)
def getIcon(self):
- ''' gets the current conditions icon '''
+ """ gets the current conditions icon """
_debug_('getIcon()', 2)
return "%s" % (self.icon)
@@ -650,9 +650,9 @@
def convertWeatherData(self):
- '''
+ """
convert the xml weather information for the skin
- '''
+ """
_debug_('convertWeatherData()', 2)
#print self.elocationData
#print self.currentData
@@ -733,7 +733,7 @@
def getDayImage(self, num):
- '''obtain the weather icons for multiple day forecast'''
+ """obtain the weather icons for multiple day forecast"""
_debug_('getDayImage()', 2)
if not WEATHER_ICONS.has_key(num):
@@ -751,7 +751,7 @@
def getMoonImage(self, num):
- '''obtain the weather icons for multiple day forecast'''
+ """obtain the weather icons for multiple day forecast"""
_debug_('getMoonImage()', 2)
icon = os.path.join(WEATHER_DIR, 'moons', '%s.png' % (num))
@@ -760,10 +760,10 @@
class WeatherMainMenu(Item):
- '''
+ """
this is the item for the main menu and creates the list
of Weather Locations in a submenu.
- '''
+ """
def __init__(self, parent):
_debug_('WeatherMainMenu.__init__(parent=%r)' % (parent), 2)
Item.__init__(self, parent, skin_type='weather')
@@ -771,19 +771,19 @@
#self.name = _('Weather')
def actions(self):
- ''' return a list of actions for this item '''
+ """ return a list of actions for this item """
_debug_('actions()', 2)
items = [ (self.create_locations_menu , _('Locations')) ]
return items
def __call__(self, arg=None, menuw=None):
- ''' call first action in the actions list '''
+ """ call first action in the actions list """
_debug_('__call__(arg=%r, menuw=%r)' % (arg, menuw), 2)
if self.actions():
return self.actions()[0][0](arg=arg, menuw=menuw)
def create_locations_menu(self, arg=None, menuw=None):
- ''' '''
+ """ """
_debug_('create_locations_menu(arg=%r, menuw=%r)' % (arg, menuw), 2)
locations = []
autoselect = 0
@@ -814,11 +814,11 @@
menuw.refresh()
class WeatherDetailHandler:
- '''
+ """
A handler class to display several detailed forecast screens and catch
events
- '''
+ """
def __init__(self, arg=None, menu=None, weather=None):
- ''' '''
+ """ """
_debug_('WeatherDetailHandler.__init__(arg=%r, menu=%r, weather=%r)' %
(arg, menu, weather), 2)
self.arg = arg
self.menuw = menu
@@ -839,7 +839,7 @@
skin.draw('oneclick', self)
def prevSkin(self):
- '''decrements the skin number round to the last skin'''
+ """decrements the skin number round to the last skin"""
_debug_('prevSkin()', 2)
self.skin_num -= 1
@@ -849,7 +849,7 @@
self.subtitle = self.getSubtitle(self.skin_num)
def nextSkin(self):
- '''increment the skin number round to the first skin'''
+ """increment the skin number round to the first skin"""
_debug_('nextSkin()', 2)
self.skin_num += 1
@@ -859,12 +859,12 @@
self.subtitle = self.getSubtitle(self.skin_num)
def getSubtitle(self, num):
- ''' returns the subtitle for a skin number '''
+ """ returns the subtitle for a skin number """
_debug_('getSubtitle(num=%s)' % (num), 2)
return '%s %s %s' % (self.subtitles[num], _('for'), self.weather.name)
def eventhandler(self, event, menuw=None):
- '''eventhandler'''
+ """eventhandler"""
_debug_('eventhandler(event=%s, menuw=%r)' % (event, menuw), 2)
if event == 'MENU_BACK_ONE_MENU':
rc.app(None)
@@ -898,7 +898,7 @@
sys.exit(1)
class WeatherBaseScreen(skin.Area):
- ''' A base class for weather screens to inherit from, provides common
members+methods '''
+ """ A base class for weather screens to inherit from, provides common
members+methods """
def __init__(self):
_debug_('WeatherBaseScreen.__init__()', 2)
skin.Area.__init__(self, 'content')
@@ -920,14 +920,14 @@
self.update_week, self.update_map)
def day_item(self, x1, text, x2, value, y, align='left'):
- ''' This is helper function for update_day
- '''
+ """ This is helper function for update_day
+ """
self.write_text(text, self.key_font, self.content, x=x1, y=y,
height=-1, align_h=align)
self.write_text(value, self.val_font, self.content, x=x2, y=y,
height=-1, align_h=align)
def update_day(self):
- ''' Update the day screen
- '''
+ """ Update the day screen
+ """
_debug_('update_day()', 2)
# display data
@@ -970,9 +970,9 @@
def update_forecast(self):
- ''' this screen is taken from the 1click weather forecast of the
firefox plug-in.
+ """ this screen is taken from the 1click weather forecast of the
firefox plug-in.
TODO Switch to night after sunset
- '''
+ """
_debug_('update_forecast()', 2)
x_start = self.content.x + self.xscale(20)
y_start = self.content.y + self.yscale(30)
@@ -1016,14 +1016,13 @@
def week_item(self, x, y, text, font, width=90, align='center'):
- ''' This is helper function for update_week
- '''
+ """ This is helper function for update_week """
self.write_text(text, font, self.content, x=x, y=y,
width=self.xscale(width), height=-1, align_h=align)
def update_week(self):
- ''' update the weeks forecast
- @remarks this can be improved
- '''
+ """ update the weeks forecast
+ @todo: this can be improved
+ """
_debug_('update_week()', 2)
x_start = self.content.x + self.xscale(10)
@@ -1062,7 +1061,7 @@
def update_map(self):
- ''' update the contents of the skin's doppler weather map '''
+ """ update the contents of the skin's doppler weather map """
_debug_('update_map()', 2)
if not self.parent.weather.weatherMapData:
x_start = self.content.x + self.xscale(10)
@@ -1076,7 +1075,7 @@
self.content.width, self.content.height))
def update_content(self):
- ''' update the contents of the skin '''
+ """ update the contents of the skin """
_debug_('update_content()', 2)
self.parent = self.menu
self.content = self.calc_geometry(self.layout.content,
copy_object=True)
Modified: branches/rel-1/freevo/src/plugins/remind.py
==============================================================================
--- branches/rel-1/freevo/src/plugins/remind.py (original)
+++ branches/rel-1/freevo/src/plugins/remind.py Tue Jan 1 06:47:50 2008
@@ -70,9 +70,10 @@
| REMINDERS = [ ("cmd", "name", <wrap 0|N>, "string") ]
wrap should be the maximum number of columns, and string if defined would
be used to
- indent the output. ("/usr/bin/remind -h", "Today", 47, "Reminders for")
should output something like:
- Reminders for Saturday, 26th May, 2007 (today):
- Uncle Bob birthday
+ indent the output. ("/usr/bin/remind -h", "Today", 47, "Reminders for")
should output something like::
+
+ Reminders for Saturday, 26th May, 2007 (today):
+ Uncle Bob birthday
"""
def __init__(self):
@@ -133,18 +134,19 @@
pad = ''
else:
pad = ' '
- for tmp in self.wraper(line,
int(wrap)).rstrip('\n').split('\n'):
+ for tmp in self.wrapper(line,
int(wrap)).rstrip('\n').split('\n'):
output += [ pad + tmp ]
else:
output = f
return output
- # from http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/148061
- def wraper(self, text, width):
+ def wrapper(self, text, width):
"""
A word-wrap function that preserves existing line breaks
and most spaces in the text. Expects that existing line
- breaks are posix newlines (\n).
+ breaks are posix newlines.
+
+ from U{http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/148061}
"""
return reduce(lambda line, word, width=width: '%s%s%s' %
(line,
Modified: branches/rel-1/freevo/src/plugins/vfd.py
==============================================================================
--- branches/rel-1/freevo/src/plugins/vfd.py (original)
+++ branches/rel-1/freevo/src/plugins/vfd.py Tue Jan 1 06:47:50 2008
@@ -124,7 +124,7 @@
}
-'''
+"""
layouts: dict of layouts (screens and widgets)
Structure:
#
@@ -152,7 +152,7 @@
player: will be used in player mode
tv: will be used in tv mode
Values should match the ones supported by VFDd (man VFDd)
-'''
+"""
layouts = { 1 : # 1 line display
{ 20 : # 20 chars per line
# Welcome screen
@@ -254,7 +254,7 @@
}
def get_info(item, list):
- '''Get the information'''
+ """Get the information"""
info = ""
for l in list:
@@ -272,11 +272,11 @@
"""
Display context info on Shuttle's VFD (Versatile Front-panel Display)
- Requirements:
- * pyusb: installed (http://pyusb.berlios.de/) with name patch as
+ @requires:
+ - pyusb: installed (http://pyusb.berlios.de/) with name patch as
the default module is called usb and conflicts with freevo's
usb plugin.
- * pyusb-0.X.X-name.patch contrib/patches
+ - pyusb-0.X.X-name.patch contrib/patches
To activate this plugin, just put the following line at the end of your
local_conf.py file:
@@ -290,9 +290,9 @@
__version__ = '$Revision$'
def send(self, data):
- '''
+ """
Send a piece of data to specified VFD device, retrying if necessary
- '''
+ """
attempts = 3
while attempts > 0:
try:
@@ -311,7 +311,7 @@
raise e
def msg(self, msgtype, *msgdata):
- '''Prepares a message for the VFD device'''
+ """Prepares a message for the VFD device"""
assert msgtype >= 0 and msgtype <= 0xf
assert len(msgdata) <= 7
@@ -326,20 +326,20 @@
return retval
def clear(self):
- '''Clear the display'''
+ """Clear the display"""
self.last_message = None
self.last_bitmask = None
self.send(self.msg(1,1))
def reset(self):
- '''Reset the cursor position'''
+ """Reset the cursor position"""
self.send(self.msg(1,2))
def brightness(self, level=0):
pass
def split(self, s, length, maxlength):
- '''Split a string into chunks, but no longer than maxlength'''
+ """Split a string into chunks, but no longer than maxlength"""
if len(s) > maxlength:
_debug_('Truncating \"%s\" longer than %d characters' %
(s,maxlength), 2)
s = s[:maxlength]
@@ -350,7 +350,7 @@
return out
def message(self, msgstring, cls=0):
- '''Update the display with a string, specifying if it should be
cleared first'''
+ """Update the display with a string, specifying if it should be
cleared first"""
try:
if msgstring.__class__ == unicode:
msgstring = msgstring.encode('iso-8859-15')
@@ -380,7 +380,7 @@
self.send(self.msg(9,*part))
def icons(self):
- '''Update icons to be shown'''
+ """Update icons to be shown"""
_debug_('device=%x media=%x recording=%x running=%x muted=%x
volume=%x' % \
(self.device, self.media, self.recording, self.running,
self.muted, self.volume), 2)
self.bitmask = self.device | self.media | self.recording |
self.running | self.muted | self.volume
@@ -391,25 +391,25 @@
self.send(self.msg(7,pack('I', self.bitmask)))
def set_device(self, device=None):
- '''Sets the device'''
+ """Sets the device"""
if device != None:
self.device = device
_debug_('device=%s, self.device=%s' % (device, self.device), 2)
def set_media(self, media=None):
- '''Indicates if a CD/DVD is in the drive'''
+ """Indicates if a CD/DVD is in the drive"""
if media != None:
self.media = media
_debug_('media=%s, self.media=%s' % (media, self.media))
def set_running(self, running=None):
- '''Sets the running flag if running'''
+ """Sets the running flag if running"""
if running != None:
self.running = running
_debug_('running=%s, self.running=%s' % (running, self.running), 2)
def set_recording(self, recording=None):
- '''Sets the recoring flag if recoring'''
+ """Sets the recoring flag if recoring"""
if recording != None:
self.recording = recording
else:
@@ -417,7 +417,7 @@
_debug_('recording=%s, self.recording=%s' % (recording,
self.recording), 2)
def set_mixer(self, muted=None, volume=None):
- '''Read the mixer state'''
+ """Read the mixer state"""
if self.mixer == None:
return
@@ -432,7 +432,7 @@
_debug_('muted=%s, self.muted=%s, volume=%s, self.volume=%s' % (muted,
self.muted, volume, self.volume))
def widget_set(self, screen, widget, value):
- '''Set the widget text'''
+ """Set the widget text"""
#if widget != 'clock' and widget != 'time_v1' and widget != 'time_v2'
and widget != 'time_v3' and widget != 'animation_v':
if widget != 'clock' and widget != 'time_v2' and widget != 'time_v3'
and widget != 'animation_v':
_debug_('screen=%s, widget=%s, value=%s' % (screen, widget, value))
Modified: branches/rel-1/freevo/src/tv/plugins/irsend_directv.py
==============================================================================
--- branches/rel-1/freevo/src/tv/plugins/irsend_directv.py (original)
+++ branches/rel-1/freevo/src/tv/plugins/irsend_directv.py Tue Jan 1
06:47:50 2008
@@ -45,10 +45,10 @@
Since MCEUSB transceivers can have 2 transmitters, the chosen
transmitter must be set in local_conf.py.
- Example usage (local_conf.py):
+ Example usage (local_conf.py)::
- plugin_external_tuner = plugin.activate('tv.irsend_directv',
- args=('/usr/bin/irsend SEND_ONCE <remote_name>', '/usr/bin/irsend
SET_TRANSMITTER',))
+ plugin_external_tuner = plugin.activate('tv.irsend_directv',
+ args=('/usr/bin/irsend SEND_ONCE <remote_name>', '/usr/bin/irsend
SET_TRANSMITTER',))
Where <remote_name> is the name of the remote you are using to send codes
with in lircd.conf.
Modified: branches/rel-1/freevo/src/tv/plugins/ivtv_xine_tv.py
==============================================================================
--- branches/rel-1/freevo/src/tv/plugins/ivtv_xine_tv.py (original)
+++ branches/rel-1/freevo/src/tv/plugins/ivtv_xine_tv.py Tue Jan 1
06:47:50 2008
@@ -126,14 +126,14 @@
"""
Plugin to watch live tv with xine. The plugin supports:
- - Live TV: pause & continue, seek forward & backward
- - Multiple digit channel selection: '1', '12, '123'
- - Channel stack: jump to previously viewed channel
- - Automatic jump: undo time shift on channel change
- - OSD messges: volume and channel info
- - Progressive seek: automatically increase seek speed
- - Video groups: enable svideo and composite inputs
- - Stop confirmation: press STOP twice to return to menu
+ - Live TV: pause & continue, seek forward & backward
+ - Multiple digit channel selection: '1', '12, '123'
+ - Channel stack: jump to previously viewed channel
+ - Automatic jump: undo time shift on channel change
+ - OSD messges: volume and channel info
+ - Progressive seek: automatically increase seek speed
+ - Video groups: enable svideo and composite inputs
+ - Stop confirmation: press STOP twice to return to menu
=================================================================
Requirements:
@@ -141,8 +141,8 @@
The following software must be installed:
- - ivtv (e.g. Haupage x50 series TV card)
- - xine (built with xvmc / xxmc if available)
+ - ivtv (e.g. Haupage x50 series TV card)
+ - xine (built with xvmc / xxmc if available)
=================================================================
Configuration:
@@ -151,20 +151,20 @@
The following items should be configured in local_conf.py:
Freevo General Config Items
- - TV_CHANNELS
- - MIXER_VOLUME_TV_IN
- - MIXER_MAJOR_CTRL
- - XINE_COMMAND
- - XINE_ARGS_DEF
+ - TV_CHANNELS
+ - MIXER_VOLUME_TV_IN
+ - MIXER_MAJOR_CTRL
+ - XINE_COMMAND
+ - XINE_ARGS_DEF
Plugin Specific Config Items
- - XINE_TV_VO_DEV
- - XINE_TV_AO_DEV
- - XINE_TV_TIMESHIFT_FILEMASK
- - XINE_TV_CONFIRM_STOP
- - XINE_TV_PROGRESSIVE_SEEK
- - XINE_TV_PROGRESSIVE_SEEK_THRESHOLD
- - XINE_TV_PROGRESSIVE_SEEK_INCREMENT
+ - XINE_TV_VO_DEV
+ - XINE_TV_AO_DEV
+ - XINE_TV_TIMESHIFT_FILEMASK
+ - XINE_TV_CONFIRM_STOP
+ - XINE_TV_PROGRESSIVE_SEEK
+ - XINE_TV_PROGRESSIVE_SEEK_THRESHOLD
+ - XINE_TV_PROGRESSIVE_SEEK_INCREMENT
=================================================================
Plugin Specific Events
Modified: branches/rel-1/freevo/src/tv/plugins/recordings_manager.py
==============================================================================
--- branches/rel-1/freevo/src/tv/plugins/recordings_manager.py (original)
+++ branches/rel-1/freevo/src/tv/plugins/recordings_manager.py Tue Jan 1
06:47:50 2008
@@ -237,9 +237,9 @@
# ======================================================================
def configure_sorting(self, arg=None, menuw=None):
- '''
+ """
document me
- '''
+ """
exec('%s += 1' % arg, globals())
if eval('%s >= len(%s_methods)' %(arg, arg), globals()):
@@ -256,9 +256,9 @@
def configure_sorting_reversed(self, arg=None, menuw=None):
- '''
+ """
document me
- '''
+ """
exec('%s = not %s' % (arg,arg), globals())
self.save_settings()
@@ -271,9 +271,9 @@
def configure_get_icon(self, value):
- '''
+ """
document me
- '''
+ """
if value:
icon = u'ICON_LEFT_ON_' + _('on')
else:
@@ -282,9 +282,9 @@
def configure(self, arg=None, menuw=None):
- '''
+ """
document me
- '''
+ """
items = [
MenuItem(_('Sort by') + u'\t' + _(sorting_methods[sorting]),
self.configure_sorting, 'sorting'),
@@ -313,9 +313,9 @@
return None
def load_settings(self):
- '''
+ """
document me
- '''
+ """
if vfs.isfile(self.settings_fxd):
try:
parser = util.fxdparser.FXD(self.settings_fxd)
@@ -326,9 +326,9 @@
traceback.print_exc()
def save_settings(self):
- '''
+ """
document me
- '''
+ """
try:
parser = util.fxdparser.FXD(self.settings_fxd)
parser.set_handler('tvrmsettings', self.write_settings_fxd, 'w',
True)
@@ -338,16 +338,16 @@
traceback.print_exc()
def read_settings_fxd(self, fxd, node):
- '''
- parse the xml file for directory settings
+ """
+ parse the xml file for directory settings::
- <?xml version="1.0" ?>
- <freevo>
- <tvrmsettings>
- <setvar name="sorting" val="0"/>
- </tvrmsettings>
- </freevo>
- '''
+ <?xml version="1.0" ?>
+ <freevo>
+ <tvrmsettings>
+ <setvar name="sorting" val="0"/>
+ </tvrmsettings>
+ </freevo>
+ """
for child in fxd.get_children(node, 'setvar', 1):
name = child.attrs[('', 'name')]
@@ -970,9 +970,9 @@
# Helper functions
# ======================================================================
def copy_and_replace_menu_item(menuw, item):
- '''
+ """
document me
- '''
+ """
menu = menuw.menustack[-1]
# rebuild menu
try:
@@ -986,9 +986,9 @@
def get_status_sort_order(watched, keep):
- '''
+ """
document me
- '''
+ """
orders = STATUS_ORDERS[status_order]
order = orders[STATUS_ORDER_UNWATCHED]
Modified: branches/rel-1/freevo/src/tv/plugins/upsoon.py
==============================================================================
--- branches/rel-1/freevo/src/tv/plugins/upsoon.py (original)
+++ branches/rel-1/freevo/src/tv/plugins/upsoon.py Tue Jan 1 06:47:50 2008
@@ -53,13 +53,12 @@
plugin to monitor if a recording is about to start and shut down the
player if the video device is in use
- Requirements:
- none
+ @requires: nothing
To activate this plugin, just put the following line at the end of your
- local_conf.py file:
+ local_conf.py file::
- | plugin.activate('tv.upsoon')
+ plugin.activate('tv.upsoon')
"""
__author__ = 'Duncan Webb'
__author_email__ = '[EMAIL PROTECTED]'
Modified: branches/rel-1/freevo/src/tv/plugins/vbi2srt_record.py
==============================================================================
--- branches/rel-1/freevo/src/tv/plugins/vbi2srt_record.py (original)
+++ branches/rel-1/freevo/src/tv/plugins/vbi2srt_record.py Tue Jan 1
06:47:50 2008
@@ -83,8 +83,7 @@
| 'K10' : 211000,
| }
- Requirements:
- * vbi2srt: (http://www.linuxowl.com/vbi2srt.html)
+ @requires: vbi2srt (http://www.linuxowl.com/vbi2srt.html)
Updates available from http://www.linuxowl.com/software/.
Modified: branches/rel-1/freevo/src/tv/strptime.py
==============================================================================
--- branches/rel-1/freevo/src/tv/strptime.py (original)
+++ branches/rel-1/freevo/src/tv/strptime.py Tue Jan 1 06:47:50 2008
@@ -30,12 +30,12 @@
"""Strptime-related classes and functions.
-CLASSES:
+CLASSES
LocaleTime -- Discovers and/or stores locale-specific time information
TimeRE -- Creates regexes for pattern matching a string of text containing
time information as is returned by time.strftime()
-FUNCTIONS:
+FUNCTIONS
firstjulian -- Calculates the Julian date up to the first of the specified
year
gregorian -- Calculates the Gregorian date based on the Julian day and
Modified: branches/rel-1/freevo/src/tv/xmltv.py
==============================================================================
--- branches/rel-1/freevo/src/tv/xmltv.py (original)
+++ branches/rel-1/freevo/src/tv/xmltv.py Tue Jan 1 06:47:50 2008
@@ -301,22 +301,21 @@
source_info_url=None, source_info_name=None,
generator_info_url=None, generator_info_name=None):
"""
- @param encoding -- The text encoding that will be used. Defaults to
'utf-8'
+ @param encoding: The text encoding that will be used. Defaults to
'utf-8'
- @param date The date this data was generated. Optional
+ @param date: The date this data was generated. Optional
- @param source_info_url A URL for information about the source of the
data.
+ @param source_info_url: A URL for information about the source of the
data.
Optional
- @param source_info_name A human readable description of
source_info_url.
+ @param source_info_name: A human readable description of
source_info_url.
Optional
- @param generator_info_url A URL for information about the program that
+ @param generator_info_url: A URL for information about the program that
is generating the XMLTV document. Optional
- @param generator_info_name A human readable description of
+ @param generator_info_name: A human readable description of
generator_info_url. Optional
-
"""
_debug_('in Writer:__init__()', 2)
self.encoding = encoding
@@ -407,9 +406,7 @@
"""
Add a single XMLTV 'programme'
- Arguments:
-
- 'programme' -- A dict representing XMLTV data
+ @param programme: A dict representing XMLTV data
"""
if DEBUG >= 0: print "in addProgramme(self, programme)"
p = SubElement(self.root, 'programme')
@@ -557,9 +554,7 @@
"""
add a single XMLTV 'channel'
- Arguments:
-
- 'channel' -- A dict representing XMLTV data
+ @param channel: A dict representing XMLTV data
"""
if DEBUG >= 0: print "in addChannel(self, channel)"
c = SubElement(self.root, 'channel')
Modified: branches/rel-1/freevo/src/util/amazon.py
==============================================================================
--- branches/rel-1/freevo/src/util/amazon.py (original)
+++ branches/rel-1/freevo/src/util/amazon.py Tue Jan 1 06:47:50 2008
@@ -47,16 +47,17 @@
- a file called ".amazonkey" in the same directory as amazon.py
- a file called "amazonkey.txt" in the same directory as amazon.py
-Sample usage:
->>> import amazon
->>> amazon.setLicense('...') # must get your own key!
->>> pythonBooks = amazon.searchByKeyword('Python')
->>> pythonBooks[0].ProductName
-u'Learning Python (Help for Programmers)'
->>> pythonBooks[0].URL
-...
->>> pythonBooks[0].OurPrice
-...
+Sample usage::
+
+ >>> import amazon
+ >>> amazon.setLicense('...') # must get your own key!
+ >>> pythonBooks = amazon.searchByKeyword('Python')
+ >>> pythonBooks[0].ProductName
+ u'Learning Python (Help for Programmers)'
+ >>> pythonBooks[0].URL
+ ...
+ >>> pythonBooks[0].OurPrice
+ ...
Other available functions:
- browseBestSellers
@@ -248,11 +249,11 @@
this function every time, or set it globally; see the module docs for
details.
Parameters:
- @param keyword - keyword to search
- @param search_type - in (KeywordSearch, BrowseNodeSearch, AsinSearch,
+ @param keyword: keyword to search
+ @param search_type: in (KeywordSearch, BrowseNodeSearch, AsinSearch,
UpcSearch, AuthorSearch, ArtistSearch, ActorSearch, DirectorSearch,
ManufacturerSearch, ListManiaSearch, SimilaritySearch)
- @param product_line - type of product to search for. restrictions based
on search_type
+ @param product_line: type of product to search for. restrictions based on
search_type
UpcSearch - in (music, classical)
AuthorSearch - must be "books"
ArtistSearch - in (music, classical)
@@ -261,7 +262,7 @@
ManufacturerSearch - in (electronics, kitchen, videogames, software,
photo, pc-hardware)
@param http_proxy: (optional) - address of HTTP proxy to use for sending
and receiving SOAP messages
- @eturns: list of Bags, each Bag may contain the following attributes:
+ @returns: list of Bags, each Bag may contain the following attributes:
Asin - Amazon ID ("ASIN" number) of this item
Authors - list of authors
Availability - "available", etc.
Modified: branches/rel-1/freevo/src/util/fileops.py
==============================================================================
--- branches/rel-1/freevo/src/util/fileops.py (original)
+++ branches/rel-1/freevo/src/util/fileops.py Tue Jan 1 06:47:50 2008
@@ -306,11 +306,11 @@
os.path.walk is difficult, clunky and doesn't work right in my
mind.
- Here's how you use this function:
+ Here's how you use this function::
- songs = recursefolders('/media/Music/Guttermouth',1,'*.mp3',1):
- for song in songs:
- print song
+ songs = recursefolders('/media/Music/Guttermouth',1,'*.mp3',1)
+ for song in songs:
+ print song
Should be easy to add to the mp3.py app.
"""
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog