示例#1
0
rrule_field = eim.subtype(text32K)
rdate_field = eim.subtype(text32K)

def sort_factory(separator, start_sort):
    def sort(s):
        divider = start_sort
        begin = u''
        if start_sort:
            begin, divider, s = s.rpartition(unicode(divider))
        return begin + divider + separator.join(sorted(s.split(separator)))
    return sort

for t, separator, start_sort in zip([rrule_field, rdate_field], (';', ','), ('', ':')):
    f = sort_factory(separator, start_sort)
    eim.add_converter(t, str, f)
    eim.add_converter(t, unicode, f)

class EventRecord(eim.Record):
    URI = "http://osafoundation.org/eim/event/0"

    uuid = eim.key(NoteRecord.uuid)

    # EventStamp.[allDay, anyTime, duration, startTime]
    dtstart = eim.field(text20, "Start time")
    duration = eim.field(text20, "Duration")

    # EventStamp.location
    location = eim.field(text256, "Location")

    # EventStamp.[recurrenceID, rruleset, etc.]
示例#2
0
    import random
    shuffler = random.Random(1) # fixed seed on purpose
    while True:
        shuffler.shuffle(words)
        ret += os.linesep + ' '.join(words)
        if len(ret) >= length:
            return ret[:length]

def all_empty(obj, *attr_names):
    """True if obj.attr for all attr_names is in emptyValues."""
    for attr in attr_names:
        if getattr(obj, attr) not in emptyValues:
            return False
    return True

eim.add_converter(model.aliasableUUID, Item, getAliasForItem)
eim.add_converter(model.aliasableUUID, Collection, getAliasForItem)


# Hopefully someday we will be able to remove the following converters:

# Cosmo will generate a value of None even if Chandler hasn't provided a
# value for event status, so treat None as NoChange
eim.add_converter(model.EventRecord.status, type(None), lambda x: eim.NoChange)

# Cosmo will generate a value of empty string even if Chandler hasn't provided
# a value for triage, so treat empty string as NoChange
def emptyToNoChange(s):
    return s if s else eim.NoChange
eim.add_converter(model.ItemRecord.triage, str, emptyToNoChange)
eim.add_converter(model.ItemRecord.triage, unicode, emptyToNoChange)
示例#3
0
    while True:
        shuffler.shuffle(words)
        ret += os.linesep + ' '.join(words)
        if len(ret) >= length:
            return ret[:length]


def all_empty(obj, *attr_names):
    """True if obj.attr for all attr_names is in emptyValues."""
    for attr in attr_names:
        if getattr(obj, attr) not in emptyValues:
            return False
    return True


eim.add_converter(model.aliasableUUID, Item, getAliasForItem)
eim.add_converter(model.aliasableUUID, Collection, getAliasForItem)

# Hopefully someday we will be able to remove the following converters:

# Cosmo will generate a value of None even if Chandler hasn't provided a
# value for event status, so treat None as NoChange
eim.add_converter(model.EventRecord.status, type(None), lambda x: eim.NoChange)


# Cosmo will generate a value of empty string even if Chandler hasn't provided
# a value for triage, so treat empty string as NoChange
def emptyToNoChange(s):
    return s if s else eim.NoChange