Exemple #1
0
 def improve_connectors(self):
     map = mm_list()
     for r in self.rels:
         if len(r.points) > 3:
             p = r.points[-2]
             key = \
                 ( sign (getattr (r.delta, self.other_dim))
                 , getattr (p, self.dim)
                 )
             map[key].append(r)
     for k, rs in pyk.iteritems(map):
         step = k[0] * self.sort_sign
         if len(rs) > 1:
             for i, r in enumerate(rs[1::step]):
                 r.shift_guide(i + 1)
Exemple #2
0
def unit_changes (after, before, str_dates, unit, offset = 0, limit = 5) :
    """Yield all elements of `str_dates` closest to `unit` changes."""
    map = mm_list ()
    for d, sd in in_range (after, before, str_dates) :
        p1, p2  = d.periods [unit]
        if offset :
            p1 += offset
            p2 += offset
        p       = p1 if (d - p1 < (p2 - p1) // 2) else (p2 + 1)
        delta   = (d - p).days
        a_delta = abs (delta)
        if a_delta <= limit :
            map [p].append ((a_delta, - sign (delta), sd))
    result = list (min (v) [-1] for v in pyk.itervalues (map))
    return sorted (result)
Exemple #3
0
def unit_changes(after, before, str_dates, unit, offset=0, limit=5):
    """Yield all elements of `str_dates` closest to `unit` changes."""
    map = mm_list()
    for d, sd in in_range(after, before, str_dates):
        p1, p2 = d.periods[unit]
        if offset:
            p1 += offset
            p2 += offset
        p = p1 if (d - p1 < (p2 - p1) // 2) else (p2 + 1)
        delta = (d - p).days
        a_delta = abs(delta)
        if a_delta <= limit:
            map[p].append((a_delta, -sign(delta), sd))
    result = list(min(v)[-1] for v in pyk.itervalues(map))
    return sorted(result)
Exemple #4
0
 def improve_connectors (self) :
     map = mm_list ()
     for r in self.rels :
         if len (r.points) > 3 :
             p   = r.points [-2]
             key = \
                 ( sign (getattr (r.delta, self.other_dim))
                 , getattr (p, self.dim)
                 )
             map [key].append (r)
     for k, rs in pyk.iteritems (map) :
         step = k [0] * self.sort_sign
         if len (rs) > 1 :
             for i, r in enumerate (rs [1::step]) :
                 r.shift_guide (i + 1)
Exemple #5
0
 def by_mime_type (self) :
     result = mm_list ()
     for r in self.renderers :
         for mt in r.mime_types :
             result [mt].append (r)
     return result
Exemple #6
0
 def by_extension (self) :
     result = mm_list ()
     for r in self.renderers :
         for ext in r.extensions :
             result [ext].append (r)
     return result
Exemple #7
0
 def match_dict (matches) :
     from _TFL.multimap import mm_list
     result = mm_list ()
     for m, d in matches :
         result [d].append (m)
     return result
Exemple #8
0
 def by_mime_type (self) :
     result = mm_list ()
     for r in self.renderers :
         for mt in r.mime_types :
             result [mt].append (r)
     return result
Exemple #9
0
 def by_extension (self) :
     result = mm_list ()
     for r in self.renderers :
         for ext in r.extensions :
             result [ext].append (r)
     return result
Exemple #10
0
 def match_dict (matches) :
     from _TFL.multimap import mm_list
     result = mm_list ()
     for m, d in matches :
         result [d].append (m)
     return result