Ejemplo n.º 1
0
def odsReader(readable, sheetIndex=1):
    """
    Generator yielding the Open Document spreadsheet stored in ``readable`` in sheet number ``sheetIndex``
    starting with 1.
    """
    assert readable is not None
    assert sheetIndex is not None
    assert sheetIndex >= 1

    rowQueue = _createRowQueue()
    contentXmlReadable = _ods.odsContent(readable)
    try:
        producer = _ods.ProducerThread(contentXmlReadable, rowQueue, sheetIndex)
        producer.start()
        try:
            hasRow = True
            while hasRow:
                row = rowQueue.get()
                if row is not None:
                    yield row
                else:
                    hasRow = False
        finally:
            producer.join()
    finally:
        contentXmlReadable.close()
Ejemplo n.º 2
0
 def testConsumerProducer(self):
     testInPath = dev_test.getTestInputPath("valid_customers.ods")
     contentXmlReadable = _ods.odsContent(testInPath)
     rowQueue = Queue.Queue()
     producer = _ods.ProducerThread(contentXmlReadable, rowQueue)
     producer.start()
     hasRow = True
     while hasRow:
         row = rowQueue.get()
         if row is None:
             hasRow = False
     producer.join()