~ubuntu-branches/debian/sid/calibre/sid

« back to all changes in this revision

Viewing changes to src/calibre/utils/formatter_functions.py

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2014-05-14 18:17:50 UTC
  • mfrom: (1.5.10)
  • Revision ID: package-import@ubuntu.com-20140514181750-xyrxqa47dbw0qfhu
Tags: 1.36.0+dfsg-1
* New upstream release:
  - Fixes editing of metadata (Closes: #741638)

Show diffs side-by-side

added added

removed removed

Lines of Context:
178
178
            return eq
179
179
        return gt
180
180
 
 
181
class BuiltinFirstMatchingCmp(BuiltinFormatterFunction):
 
182
    name = 'first_matching_cmp'
 
183
    category = 'Relational'
 
184
    arg_count = -1
 
185
    __doc__ = doc =   _('first_matching_cmp(val, cmp1, result1, cmp2, r2, ..., else_result) -- '
 
186
            'compares "val < cmpN" in sequence, returning resultN for '
 
187
            'the first comparison that succeeds. Returns else_result '
 
188
            'if no comparison succeeds. Example: '
 
189
            'first_matching_cmp(10,5,"small",10,"middle",15,"large","giant") '
 
190
            'returns "middle". The same example with a first value of 16 returns "giant".')
 
191
 
 
192
    def evaluate(self, formatter, kwargs, mi, locals, *args):
 
193
        if (len(args) % 2) != 0:
 
194
            raise ValueError(_('first_matching_cmp requires an even number of arguments'))
 
195
        val = float(args[0] if args[0] and args[0] != 'None' else 0)
 
196
        for i in range(1, len(args) - 1, 2):
 
197
            c = float(args[i] if args[i] and args[i] != 'None' else 0)
 
198
            if val < c:
 
199
                return args[i+1]
 
200
        return args[len(args)-1]
 
201
 
181
202
class BuiltinStrcat(BuiltinFormatterFunction):
182
203
    name = 'strcat'
183
204
    arg_count = -1
1310
1331
    BuiltinCapitalize(), BuiltinCmp(), BuiltinContains(), BuiltinCount(),
1311
1332
    BuiltinCurrentLibraryName(), BuiltinCurrentLibraryPath(),
1312
1333
    BuiltinDaysBetween(), BuiltinDivide(), BuiltinEval(), BuiltinFirstNonEmpty(),
1313
 
    BuiltinField(), BuiltinFinishFormatting(), BuiltinFormatDate(),
1314
 
    BuiltinFormatNumber(), BuiltinFormatsModtimes(), BuiltinFormatsPaths(),
1315
 
    BuiltinFormatsSizes(),
 
1334
    BuiltinField(), BuiltinFinishFormatting(), BuiltinFirstMatchingCmp(),
 
1335
    BuiltinFormatDate(), BuiltinFormatNumber(), BuiltinFormatsModtimes(),
 
1336
    BuiltinFormatsPaths(), BuiltinFormatsSizes(),
1316
1337
    BuiltinHasCover(), BuiltinHumanReadable(), BuiltinIdentifierInList(),
1317
1338
    BuiltinIfempty(), BuiltinLanguageCodes(), BuiltinLanguageStrings(),
1318
1339
    BuiltinInList(), BuiltinListDifference(), BuiltinListEquals(),