robofab.features.position
index
/code/projects/robofab/Lib/robofab/features/position.py

Set of objects (well, one for now) that process positioning values.
 
Things that need to be supported:
- contextual positioning lookup (for UC spacing, etc.)

 
Classes
       
robofab.features.featureTools.SortedDict(__builtin__.object)
Position
__builtin__.dict(__builtin__.object)
SingleOffset
__builtin__.object
PairOffset

 
class PairOffset(__builtin__.object)
    Return data based on a given pair.
 
This requires a dictionary with pairs as keys
and the data to be returned as values.
 
        {
        ('A', 'A')      :       100,
        ('X', 'Y')      :       -50,
        }
 
To enable group based lookups, supply a group dict:
        
        {
        # group name            # glyph list
        '@A Group'      :       ['A', 'Aacute'],
        '@E Group'      :       ['E', 'Eacute'],
        }
 
This grouping data will be flattened durning __init__ 
based on the group contents.
 
        {
        # glyph name            # all groups that contain the glyph
        'A'             :       ['@A Group'],
        'Aacute'        :       ['@A Group'],
        'E'             :       ['@E Group'],
        'Eacute'        :       ['@E Group'],
        }
 
If speed is a primary concern, a flattened dict can be passed
to __init__ instead of the regular group dict.
 
  Methods defined here:
__getitem__(self, pair)
__init__(self, pairDict, groupDict=0, flatGroupDict=0)
processGlyphList(self, glyphList)

Data and other attributes defined here:
__dict__ = <dictproxy object at 0x10bb590>
dictionary for instance variables (if defined)
__weakref__ = <attribute '__weakref__' of 'PairOffset' objects>
list of weak references to the object (if defined)

 
class Position(robofab.features.featureTools.SortedDict)
    
Method resolution order:
Position
robofab.features.featureTools.SortedDict
__builtin__.object

Methods defined here:
processGlyphList(self, glyphList)
registerFeature(self, name, typeOfFeature, positioning, positionsX=False, positionsY=False)

Methods inherited from robofab.features.featureTools.SortedDict:
__getitem__(self, key)
__init__(self)
__len__(self)
__setitem__(self, key, value)
clear(self)
copy(self)
get(self, key, default=None)
has_key(self, key)
items(self)
keys(self)
update(self, other)
values(self)

Data and other attributes inherited from robofab.features.featureTools.SortedDict:
__dict__ = <dictproxy object at 0x10bb3f0>
dictionary for instance variables (if defined)
__weakref__ = <attribute '__weakref__' of 'SortedDict' objects>
list of weak references to the object (if defined)

 
class SingleOffset(__builtin__.dict)
    Return data based on a given glyph.
 
This requires a dictionary with glyph names as the keys
and offset values as the values.
        
        {
        'A'     :       50,
        'B'     :       100,
        }
 
Perhaps it should support groups...
 
 
Method resolution order:
SingleOffset
__builtin__.dict
__builtin__.object

Methods defined here:
__init__(self, glyphDict)
processGlyphList(self, glyphList)

Data and other attributes defined here:
__dict__ = <dictproxy object at 0x10bb370>
dictionary for instance variables (if defined)
__weakref__ = <attribute '__weakref__' of 'SingleOffset' objects>
list of weak references to the object (if defined)

Methods inherited from __builtin__.dict:
__cmp__(...)
x.__cmp__(y) <==> cmp(x,y)
__contains__(...)
x.__contains__(y) <==> y in x
__delitem__(...)
x.__delitem__(y) <==> del x[y]
__eq__(...)
x.__eq__(y) <==> x==y
__ge__(...)
x.__ge__(y) <==> x>=y
__getattribute__(...)
x.__getattribute__('name') <==> x.name
__getitem__(...)
x.__getitem__(y) <==> x[y]
__gt__(...)
x.__gt__(y) <==> x>y
__hash__(...)
x.__hash__() <==> hash(x)
__iter__(...)
x.__iter__() <==> iter(x)
__le__(...)
x.__le__(y) <==> x<=y
__len__(...)
x.__len__() <==> len(x)
__lt__(...)
x.__lt__(y) <==> x<y
__ne__(...)
x.__ne__(y) <==> x!=y
__repr__(...)
x.__repr__() <==> repr(x)
__setitem__(...)
x.__setitem__(i, y) <==> x[i]=y
clear(...)
D.clear() -> None.  Remove all items from D.
copy(...)
D.copy() -> a shallow copy of D
get(...)
D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.
has_key(...)
D.has_key(k) -> True if D has a key k, else False
items(...)
D.items() -> list of D's (key, value) pairs, as 2-tuples
iteritems(...)
D.iteritems() -> an iterator over the (key, value) items of D
iterkeys(...)
D.iterkeys() -> an iterator over the keys of D
itervalues(...)
D.itervalues() -> an iterator over the values of D
keys(...)
D.keys() -> list of D's keys
pop(...)
D.pop(k[,d]) -> v, remove specified key and return the corresponding value
If key is not found, d is returned if given, otherwise KeyError is raised
popitem(...)
D.popitem() -> (k, v), remove and return some (key, value) pair as a
2-tuple; but raise KeyError if D is empty
setdefault(...)
D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
update(...)
D.update(E) -> None.  Update D from E: for k in E.keys(): D[k] = E[k]
values(...)
D.values() -> list of D's values

Data and other attributes inherited from __builtin__.dict:
__new__ = <built-in method __new__ of type object at 0xa866d054>
T.__new__(S, ...) -> a new object with type S, a subtype of T
fromkeys = <built-in method fromkeys of type object at 0x1150820>
dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v.
v defaults to None.

 
Functions
       
sumOffsets(offsets1, offsets2)

 
Data
        GROUP_MARK = '@'
PAIR_OFFSET = 'pair_offset'
SAFE_NONE = <robofab.features.featureTools.SafeNone object at 0x52a810>
SINGLE_OFFSET = 'single_offset'