pydelta.pydelta
index
pydelta/pydelta.py

This module reads and manipulates descriptive biological data stored
in the DELTA (DEscription Language for TAxonomy) format. For more details,
see:
http://www.delta-intkey.com/www/programs.htm
 
This is part of the FreeDELTA project:
http://freedelta.sourceforge.net/
 
===============
Usage example (uses grass genera example files):
from pydelta import deltafiles
 
Example = deltafiles.load("grass/chars", "grass/items", "grass/specs")
# One multistate character (char_type==CT['UM']), one numeric (CT['RN'])
print Example.chars[4].feature, Example.chars[4].states
print Example.chars[26].feature, Example.chars[26].unit
 
#Print their values out for each item that has them
for i, item in enumerate(Example.items):
    print ""
    print item.name
    if 4 in item.attributes:
        culm_state = item.attributes[4]
        if culm_state.isdigit(): # Some of them are "1/2", i.e. mixed.
            print " Culms:", culm_state, "(" + Example.chars[4].states[int(culm_state)-1] + ")"
        else:
            print " Culms:", culm_state
    if 26 in item.attributes:
        print " Spikelets", item.attributes[26], Example.chars[26].unit

 
Modules
       
pydelta.structxt

 
Classes
       
__builtin__.list(__builtin__.object)
DeltaList
DeltaCharList
DeltaItemList
__builtin__.object
CharDescr
Delta
ItemDescr

 
class CharDescr(__builtin__.object)
    The description of a single character, including its unit or possible states.
 
  Methods defined here:
__init__(self)
__repr__(self)

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class Delta(__builtin__.object)
    An entire DELTA database, consisting of a list of characters (pass as
chars_fname), a list of items (typically species or other taxa; pass as
items_fname), and two optional files: a set of specifications for the
database (pass as specs_fname) and a list of notes for specific characters
(pass as cnotes_fname).
 
Once set up, the data is accessible in .items and .chars
 
  Methods defined here:
__init__(self, chars, items)
#----- Constructor
__repr__(self)

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class DeltaCharList(DeltaList)
    list of available characters, and possible states for each.
Items can be retrieved using DELTA's 1-based indexing, so the first
character is charlist[1], not charlist[0]. Negative indices work as
normal, so charlist[-1] is the last item.
 
Instantiate by passing in the filename. If a separate file of
character notes is present, its name can be passed in to the argument
cnotes_fname.
 
If you don't want to parse the file when instantiating it, use the argument
parse=False. The parse_characters (and parse_cnotes) method can then be
called later.
 
 
Method resolution order:
DeltaCharList
DeltaList
__builtin__.list
__builtin__.object

Methods defined here:
__init__(self, fname)
#----- Constructor
__repr__(self)

Methods inherited from DeltaList:
__iter__(self)
__len__(self)

Data descriptors inherited from DeltaList:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

Methods inherited from __builtin__.list:
__add__(...)
x.__add__(y) <==> x+y
__contains__(...)
x.__contains__(y) <==> y in x
__delitem__(...)
x.__delitem__(y) <==> del x[y]
__delslice__(...)
x.__delslice__(i, j) <==> del x[i:j]
 
Use of negative indices is not supported.
__eq__(...)
x.__eq__(y) <==> x==y
__ge__(...)
x.__ge__(y) <==> x>=y
__getattribute__(...)
x.__getattribute__('name') <==> x.name
__getitem__(...)
x.__getitem__(y) <==> x[y]
__getslice__(...)
x.__getslice__(i, j) <==> x[i:j]
 
Use of negative indices is not supported.
__gt__(...)
x.__gt__(y) <==> x>y
__iadd__(...)
x.__iadd__(y) <==> x+=y
__imul__(...)
x.__imul__(y) <==> x*=y
__le__(...)
x.__le__(y) <==> x<=y
__lt__(...)
x.__lt__(y) <==> x<y
__mul__(...)
x.__mul__(n) <==> x*n
__ne__(...)
x.__ne__(y) <==> x!=y
__reversed__(...)
L.__reversed__() -- return a reverse iterator over the list
__rmul__(...)
x.__rmul__(n) <==> n*x
__setitem__(...)
x.__setitem__(i, y) <==> x[i]=y
__setslice__(...)
x.__setslice__(i, j, y) <==> x[i:j]=y
 
Use  of negative indices is not supported.
__sizeof__(...)
L.__sizeof__() -- size of L in memory, in bytes
append(...)
L.append(object) -- append object to end
count(...)
L.count(value) -> integer -- return number of occurrences of value
extend(...)
L.extend(iterable) -- extend list by appending elements from the iterable
index(...)
L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
insert(...)
L.insert(index, object) -- insert object before index
pop(...)
L.pop([index]) -> item -- remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.
remove(...)
L.remove(value) -- remove first occurrence of value.
Raises ValueError if the value is not present.
reverse(...)
L.reverse() -- reverse *IN PLACE*
sort(...)
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
cmp(x, y) -> -1, 0, 1

Data and other attributes inherited from __builtin__.list:
__hash__ = None
__new__ = <built-in method __new__ of type object>
T.__new__(S, ...) -> a new object with type S, a subtype of T

 
class DeltaItemList(DeltaList)
    list of items (e.g. species). Individual items can be retrieved using
DELTA's 1-based indexing (i.e. the first item is itemlist[1], not itemlist[0]).
 
Instantiate simply by passing it the filename to use. If you don't want
it to parse the file straight away, use the argument parse=False. The
parse_items method can then be used later.
 
 
Method resolution order:
DeltaItemList
DeltaList
__builtin__.list
__builtin__.object

Methods defined here:
__init__(self, fname)
#----- Constructor
__repr__(self)

Methods inherited from DeltaList:
__iter__(self)
__len__(self)

Data descriptors inherited from DeltaList:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

Methods inherited from __builtin__.list:
__add__(...)
x.__add__(y) <==> x+y
__contains__(...)
x.__contains__(y) <==> y in x
__delitem__(...)
x.__delitem__(y) <==> del x[y]
__delslice__(...)
x.__delslice__(i, j) <==> del x[i:j]
 
Use of negative indices is not supported.
__eq__(...)
x.__eq__(y) <==> x==y
__ge__(...)
x.__ge__(y) <==> x>=y
__getattribute__(...)
x.__getattribute__('name') <==> x.name
__getitem__(...)
x.__getitem__(y) <==> x[y]
__getslice__(...)
x.__getslice__(i, j) <==> x[i:j]
 
Use of negative indices is not supported.
__gt__(...)
x.__gt__(y) <==> x>y
__iadd__(...)
x.__iadd__(y) <==> x+=y
__imul__(...)
x.__imul__(y) <==> x*=y
__le__(...)
x.__le__(y) <==> x<=y
__lt__(...)
x.__lt__(y) <==> x<y
__mul__(...)
x.__mul__(n) <==> x*n
__ne__(...)
x.__ne__(y) <==> x!=y
__reversed__(...)
L.__reversed__() -- return a reverse iterator over the list
__rmul__(...)
x.__rmul__(n) <==> n*x
__setitem__(...)
x.__setitem__(i, y) <==> x[i]=y
__setslice__(...)
x.__setslice__(i, j, y) <==> x[i:j]=y
 
Use  of negative indices is not supported.
__sizeof__(...)
L.__sizeof__() -- size of L in memory, in bytes
append(...)
L.append(object) -- append object to end
count(...)
L.count(value) -> integer -- return number of occurrences of value
extend(...)
L.extend(iterable) -- extend list by appending elements from the iterable
index(...)
L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
insert(...)
L.insert(index, object) -- insert object before index
pop(...)
L.pop([index]) -> item -- remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.
remove(...)
L.remove(value) -- remove first occurrence of value.
Raises ValueError if the value is not present.
reverse(...)
L.reverse() -- reverse *IN PLACE*
sort(...)
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
cmp(x, y) -> -1, 0, 1

Data and other attributes inherited from __builtin__.list:
__hash__ = None
__new__ = <built-in method __new__ of type object>
T.__new__(S, ...) -> a new object with type S, a subtype of T

 
class DeltaList(__builtin__.list)
    list which uses the 1-based indexing of DELTA, rather than Python's
0-based indexing. Negative indexing still works as is normal in Python, 
(counting backwards from the end of the list).
 
 
Method resolution order:
DeltaList
__builtin__.list
__builtin__.object

Methods defined here:
__init__(self, *args, **kwargs)
__iter__(self)
__len__(self)
__repr__(self)

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

Methods inherited from __builtin__.list:
__add__(...)
x.__add__(y) <==> x+y
__contains__(...)
x.__contains__(y) <==> y in x
__delitem__(...)
x.__delitem__(y) <==> del x[y]
__delslice__(...)
x.__delslice__(i, j) <==> del x[i:j]
 
Use of negative indices is not supported.
__eq__(...)
x.__eq__(y) <==> x==y
__ge__(...)
x.__ge__(y) <==> x>=y
__getattribute__(...)
x.__getattribute__('name') <==> x.name
__getitem__(...)
x.__getitem__(y) <==> x[y]
__getslice__(...)
x.__getslice__(i, j) <==> x[i:j]
 
Use of negative indices is not supported.
__gt__(...)
x.__gt__(y) <==> x>y
__iadd__(...)
x.__iadd__(y) <==> x+=y
__imul__(...)
x.__imul__(y) <==> x*=y
__le__(...)
x.__le__(y) <==> x<=y
__lt__(...)
x.__lt__(y) <==> x<y
__mul__(...)
x.__mul__(n) <==> x*n
__ne__(...)
x.__ne__(y) <==> x!=y
__reversed__(...)
L.__reversed__() -- return a reverse iterator over the list
__rmul__(...)
x.__rmul__(n) <==> n*x
__setitem__(...)
x.__setitem__(i, y) <==> x[i]=y
__setslice__(...)
x.__setslice__(i, j, y) <==> x[i:j]=y
 
Use  of negative indices is not supported.
__sizeof__(...)
L.__sizeof__() -- size of L in memory, in bytes
append(...)
L.append(object) -- append object to end
count(...)
L.count(value) -> integer -- return number of occurrences of value
extend(...)
L.extend(iterable) -- extend list by appending elements from the iterable
index(...)
L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
insert(...)
L.insert(index, object) -- insert object before index
pop(...)
L.pop([index]) -> item -- remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.
remove(...)
L.remove(value) -- remove first occurrence of value.
Raises ValueError if the value is not present.
reverse(...)
L.reverse() -- reverse *IN PLACE*
sort(...)
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
cmp(x, y) -> -1, 0, 1

Data and other attributes inherited from __builtin__.list:
__hash__ = None
__new__ = <built-in method __new__ of type object>
T.__new__(S, ...) -> a new object with type S, a subtype of T

 
class ItemDescr(__builtin__.object)
    The description of a single item, including its attributes (character states).
 
  Methods defined here:
__init__(self)
__repr__(self)
get_val_or_implicit(self, char)
Returns the value associated with this item for a given character
number, or if this cannot be found, the implicit value. This will only
work if the item has been linked to a DeltaCharList (this occurs
automatically when a suitable specifications file is parsed).

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
Functions
       
expand_range(src)
Turns a range '4-7' into a list [4,5,6,7]; used in parsing DELTA files.
extract_comment(src)
Returns only the (first) <comment> from a DELTA file source line.
remove_comments(src)
Cuts out any DELTA style <comments> in a string.

 
Data
        CT = {'IN': 4, 'OM': 3, 'RN': 5, 'TE': 8, 'UM': 2}
CTNames = {2: 'Multistate', 3: 'Multistate (ordered)', 4: 'Number (integer)', 5: 'Number (decimal)', 8: 'Text'}
EXTRVAL_HIGH = 2
EXTRVAL_LOW = 1
NOTAPPLI = -999997
UNKNOWN = -999998
VARIABLE = -999999
absolute_import = _Feature((2, 5, 0, 'alpha', 1), (2, 7, 0, 'alpha', 0), 16384)
pseudovalues = {'-': 'Not applicable', 'U': 'Unknown', 'V': 'Variable'}