## Types ##

## Classes ##


class DataTableError(Exception):


class TableColumn:
    def __init__(self, spec):
    def name(self):
    def type(self):
    def setType(self, type):
    def __repr__(self):
    def __str__(self):

    ## Utilities ##
    def valueForRawValue(self, rawValue):


class DataTable:

    ## Init ##
    def __init__(self, filenameOrHeadings=None, delimiter=',', allowComments=1, stripWhite=1, defaultType='string', usePickleCache=None):

    ## File I/O ##
    def readFileNamed(self, filename, delimiter=',', allowComments=1, stripWhite=1):
    def readFile(self, file, delimiter=',', allowComments=1, stripWhite=1):
    def readString(self, string, delimiter=',', allowComments=1, stripWhite=1):
    def readLines(self, lines, delimiter=',', allowComments=1, stripWhite=1):
    def save(self):
    def writeFileNamed(self, filename):
    def writeFile(self, file):
        def ValueWritingMapper(item):
    def commit(self):

    ## Headings ##
    def heading(self, index):
    def hasHeading(self, name):
    def numHeadings(self):
    def headings(self):
    def setHeadings(self, headings):

    ## Row access (list like) ##
    def __len__(self):
    def __getitem__(self, index):
    def append(self, object):

    ## Queries ##
    def recordsEqualTo(self, dict):

    ## As a string ##
    def __repr__(self):

    ## As a dictionary ##
    def dictKeyedBy(self, key):

    ## Misc access ##
    def filename(self):
    def nameToIndexMap(self):

    ## Self utilities ##
    def createNameToIndexMap(self):


class TableRecord:

    ## Init ##
    def __init__(self, table, values=None):
    def initFromSequence(self, values):
    def initFromDict(self, dict):
    def initFromObject(self, object):

    ## Accessing like a sequence or dictionary ##
    def __len__(self):
    def __getitem__(self, key):
    def __setitem__(self, key, value):
    def __repr__(self):
    def get(self, key, default=None):
    def has_key(self, key):
    def keys(self):
    def values(self):
    def items(self):

    ## Additional access ##
    def asList(self):
    def asDict(self):

    ## valueForFoo() family ##
    def valueForKey(self, key, default=NoDefault):
    def valueForAttr(self, attr, default=NoDefault):
def main(args=None):