d0df704d8a
added python.path vm arg to startup script fixed infinite loop in unwrap() when displaying sequences of sequences git-svn-id: http://google-refine.googlecode.com/svn/trunk@509 7d457c2a-affb-35e4-300a-418c747d4874
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
###
|
|
#
|
|
# Copyright Alan Kennedy.
|
|
#
|
|
# You may contact the copyright holder at this uri:
|
|
#
|
|
# http://www.xhaus.com/contact/modjy
|
|
#
|
|
# The licence under which this code is released is the Apache License v2.0.
|
|
#
|
|
# The terms and conditions of this license are listed in a file contained
|
|
# in the distribution that also contained this file, under the name
|
|
# LICENSE.txt.
|
|
#
|
|
# You may also read a copy of the license at the following web address.
|
|
#
|
|
# http://modjy.xhaus.com/LICENSE.txt
|
|
#
|
|
###
|
|
|
|
import types
|
|
|
|
from modjy_exceptions import *
|
|
|
|
class write_object:
|
|
|
|
def __init__(self, ostream):
|
|
self.ostream = ostream
|
|
self.num_writes = 0
|
|
|
|
def __call__(self, *args, **keywords):
|
|
if len(args) != 1 or not isinstance(args[0], types.StringTypes):
|
|
raise NonStringOutput("Invocation of write callable requires exactly one string argument")
|
|
try:
|
|
self.ostream.write(args[0]) # Jython implicitly converts the (binary) string to a byte array
|
|
# WSGI requires that all output be flushed before returning to the application
|
|
# According to the java docs: " The flush method of OutputStream does nothing."
|
|
# Still, leave it in place for now: it's in the right place should this
|
|
# code ever be ported to another platform.
|
|
self.ostream.flush()
|
|
self.num_writes += 1
|
|
except Exception, x:
|
|
raise ModjyIOException(x)
|