Merge remote branch 'origin/development' into pheno+
This commit is contained in:
commit
9fd8a72d05
|
@ -3,8 +3,8 @@
|
||||||
# always use LF, even if the files are edited on windows, they need to be compiled/used on unix
|
# always use LF, even if the files are edited on windows, they need to be compiled/used on unix
|
||||||
* text eol=lf
|
* text eol=lf
|
||||||
|
|
||||||
|
installation/mods_Abaqus/abaqus_v6_windows.env eol=crlf
|
||||||
# Denote all files that are truly binary and should not be modified.
|
# Denote all files that are truly binary and should not be modified.
|
||||||
*.png binary
|
*.png binary
|
||||||
*.jpg binary
|
*.jpg binary
|
||||||
*.cae binary
|
*.cae binary
|
||||||
installation/mods_Abaqus/abaqus_v6_windows.env -crlf
|
|
||||||
|
|
|
@ -1,177 +1,177 @@
|
||||||
#
|
#
|
||||||
# System-Wide Abaqus Environment File
|
# System-Wide Abaqus Environment File
|
||||||
# -------------------------------------
|
# -------------------------------------
|
||||||
standard_parallel = ALL
|
standard_parallel = ALL
|
||||||
mp_mode = MPI
|
mp_mode = MPI
|
||||||
mp_file_system = (DETECT,DETECT)
|
mp_file_system = (DETECT,DETECT)
|
||||||
mp_num_parallel_ftps = (4, 4)
|
mp_num_parallel_ftps = (4, 4)
|
||||||
mp_environment_export = ('MPI_PROPAGATE_TSTP',
|
mp_environment_export = ('MPI_PROPAGATE_TSTP',
|
||||||
'ABA_CM_BUFFERING',
|
'ABA_CM_BUFFERING',
|
||||||
'ABA_CM_BUFFERING_LIMIT',
|
'ABA_CM_BUFFERING_LIMIT',
|
||||||
'ABA_ITERATIVE_SOLVER_VERBOSE',
|
'ABA_ITERATIVE_SOLVER_VERBOSE',
|
||||||
'ABA_DMPSOLVER_BWDPARALLELOFF',
|
'ABA_DMPSOLVER_BWDPARALLELOFF',
|
||||||
'ABA_ELP_SURFACE_SPLIT',
|
'ABA_ELP_SURFACE_SPLIT',
|
||||||
'ABA_ELP_SUSPEND',
|
'ABA_ELP_SUSPEND',
|
||||||
'ABA_HOME',
|
'ABA_HOME',
|
||||||
'ABA_MEMORY_MODE',
|
'ABA_MEMORY_MODE',
|
||||||
'ABA_MPI_MESSAGE_TRACKING',
|
'ABA_MPI_MESSAGE_TRACKING',
|
||||||
'ABA_MPI_VERBOSE_LEVEL',
|
'ABA_MPI_VERBOSE_LEVEL',
|
||||||
'ABA_PATH',
|
'ABA_PATH',
|
||||||
'ABAQUS_CSE_RELTIMETOLERANCE',
|
'ABAQUS_CSE_RELTIMETOLERANCE',
|
||||||
'ABA_RESOURCE_MONITOR',
|
'ABA_RESOURCE_MONITOR',
|
||||||
'ABA_RESOURCE_USEMALLINFO',
|
'ABA_RESOURCE_USEMALLINFO',
|
||||||
'ABAQUS_LANG',
|
'ABAQUS_LANG',
|
||||||
'ABAQUS_CSE_CURRCONFIGMAPPING',
|
'ABAQUS_CSE_CURRCONFIGMAPPING',
|
||||||
'ABAQUS_MPF_DIAGNOSTIC_LEVEL',
|
'ABAQUS_MPF_DIAGNOSTIC_LEVEL',
|
||||||
'ABAQUSLM_LICENSE_FILE',
|
'ABAQUSLM_LICENSE_FILE',
|
||||||
'ABQ_CRTMALLOC',
|
'ABQ_CRTMALLOC',
|
||||||
'ABQ_DATACHECK',
|
'ABQ_DATACHECK',
|
||||||
'ABQ_RECOVER',
|
'ABQ_RECOVER',
|
||||||
'ABQ_RESTART',
|
'ABQ_RESTART',
|
||||||
'ABQ_SPLITFILE',
|
'ABQ_SPLITFILE',
|
||||||
'ABQ_XPL_WINDOWDUMP',
|
'ABQ_XPL_WINDOWDUMP',
|
||||||
'ABQ_XPL_PARTITIONSIZE',
|
'ABQ_XPL_PARTITIONSIZE',
|
||||||
'ABQLMHANGLIMIT',
|
'ABQLMHANGLIMIT',
|
||||||
'ABQLMQUEUE',
|
'ABQLMQUEUE',
|
||||||
'ABQLMUSER',
|
'ABQLMUSER',
|
||||||
'CCI_RENDEZVOUS',
|
'CCI_RENDEZVOUS',
|
||||||
'DOMAIN',
|
'DOMAIN',
|
||||||
'DOMAIN_CPUS',
|
'DOMAIN_CPUS',
|
||||||
'DOUBLE_PRECISION',
|
'DOUBLE_PRECISION',
|
||||||
'FLEXLM_DIAGNOSTICS',
|
'FLEXLM_DIAGNOSTICS',
|
||||||
'FOR0006',
|
'FOR0006',
|
||||||
'FOR0064',
|
'FOR0064',
|
||||||
'FOR_IGNORE_EXCEPTIONS',
|
'FOR_IGNORE_EXCEPTIONS',
|
||||||
'FOR_DISABLE_DIAGNOSTIC_DISPLAY',
|
'FOR_DISABLE_DIAGNOSTIC_DISPLAY',
|
||||||
'LD_PRELOAD',
|
'LD_PRELOAD',
|
||||||
'MP_NUMBER_OF_THREADS',
|
'MP_NUMBER_OF_THREADS',
|
||||||
'MPC_GANG',
|
'MPC_GANG',
|
||||||
'MPI_FLAGS',
|
'MPI_FLAGS',
|
||||||
'MPI_FLUSH_FCACHE',
|
'MPI_FLUSH_FCACHE',
|
||||||
'MPI_RDMA_NENVELOPE',
|
'MPI_RDMA_NENVELOPE',
|
||||||
'MPI_SOCKBUFSIZE',
|
'MPI_SOCKBUFSIZE',
|
||||||
'MPI_USE_MALLOPT_MMAP_MAX',
|
'MPI_USE_MALLOPT_MMAP_MAX',
|
||||||
'MPI_USE_MALLOPT_MMAP_THRESHOLD',
|
'MPI_USE_MALLOPT_MMAP_THRESHOLD',
|
||||||
'MPI_USE_MALLOPT_SBRK_PROTECTION',
|
'MPI_USE_MALLOPT_SBRK_PROTECTION',
|
||||||
'MPI_WORKDIR',
|
'MPI_WORKDIR',
|
||||||
'MPCCI_DEBUG',
|
'MPCCI_DEBUG',
|
||||||
'MPCCI_CODEID',
|
'MPCCI_CODEID',
|
||||||
'MPCCI_JOBID',
|
'MPCCI_JOBID',
|
||||||
'MPCCI_NETDEVICE',
|
'MPCCI_NETDEVICE',
|
||||||
'MPCCI_TINFO',
|
'MPCCI_TINFO',
|
||||||
'MPCCI_SERVER',
|
'MPCCI_SERVER',
|
||||||
'ABAQUS_CCI_DEBUG',
|
'ABAQUS_CCI_DEBUG',
|
||||||
'NCPUS',
|
'NCPUS',
|
||||||
'OMP_DYNAMIC',
|
'OMP_DYNAMIC',
|
||||||
'OMP_NUM_THREADS',
|
'OMP_NUM_THREADS',
|
||||||
'OUTDIR',
|
'OUTDIR',
|
||||||
'PAIDUP',
|
'PAIDUP',
|
||||||
'PARALLEL_METHOD',
|
'PARALLEL_METHOD',
|
||||||
'RAIDEV_NDREG_LAZYMEM',
|
'RAIDEV_NDREG_LAZYMEM',
|
||||||
'ABA_SYMBOLIC_GENERALCOLLAPSE',
|
'ABA_SYMBOLIC_GENERALCOLLAPSE',
|
||||||
'ABA_SYMBOLIC_GENERAL_MAXCLIQUERANK',
|
'ABA_SYMBOLIC_GENERAL_MAXCLIQUERANK',
|
||||||
'ABA_ADM_MINIMUMINCREASE',
|
'ABA_ADM_MINIMUMINCREASE',
|
||||||
'ABA_ADM_MINIMUMDECREASE',
|
'ABA_ADM_MINIMUMDECREASE',
|
||||||
'IPATH_NO_CPUAFFINITY',
|
'IPATH_NO_CPUAFFINITY',
|
||||||
'MALLOC_MMAP_THRESHOLD_',
|
'MALLOC_MMAP_THRESHOLD_',
|
||||||
'ABA_EXT_SIMOUTPUT',
|
'ABA_EXT_SIMOUTPUT',
|
||||||
'SMA_WS',
|
'SMA_WS',
|
||||||
'SMA_PARENT',
|
'SMA_PARENT',
|
||||||
'SMA_PLATFORM',
|
'SMA_PLATFORM',
|
||||||
'ABA_PRE_DECOMPOSITION',
|
'ABA_PRE_DECOMPOSITION',
|
||||||
'ACML_FAST_MALLOC',
|
'ACML_FAST_MALLOC',
|
||||||
'ACML_FAST_MALLOC_CHUNK_SIZE',
|
'ACML_FAST_MALLOC_CHUNK_SIZE',
|
||||||
'ACML_FAST_MALLOC_MAX_CHUNKS',
|
'ACML_FAST_MALLOC_MAX_CHUNKS',
|
||||||
'ACML_FAST_MALLOC_DEBUG')
|
'ACML_FAST_MALLOC_DEBUG')
|
||||||
|
|
||||||
import driverUtils, os
|
import driverUtils, os
|
||||||
#-*- mode: python -*-
|
#-*- mode: python -*-
|
||||||
|
|
||||||
# #
|
# #
|
||||||
# Compile and Link command settings for the Windows 64 Platform #
|
# Compile and Link command settings for the Windows 64 Platform #
|
||||||
# ( AMD Opteron / Intel EM64T ) #
|
# ( AMD Opteron / Intel EM64T ) #
|
||||||
# #
|
# #
|
||||||
|
|
||||||
|
|
||||||
compile_fortran=['ifort',
|
compile_fortran=['ifort',
|
||||||
'/c','/DABQ_WIN86_64', '/u',
|
'/c','/DABQ_WIN86_64', '/u',
|
||||||
'/iface:cref', '/recursive', '/Qauto-scalar',
|
'/iface:cref', '/recursive', '/Qauto-scalar',
|
||||||
'/QxSSE3', '/QaxAVX',
|
'/QxSSE3', '/QaxAVX',
|
||||||
'/heap-arrays:1',
|
'/heap-arrays:1',
|
||||||
# '/Od', '/Ob0' # <-- Optimization
|
# '/Od', '/Ob0' # <-- Optimization
|
||||||
# '/Zi', # <-- Debugging
|
# '/Zi', # <-- Debugging
|
||||||
'/include:%I', '/free', '/O1', '/fpp', '/openmp', '/Qmkl']
|
'/include:%I', '/free', '/O1', '/fpp', '/openmp', '/Qmkl']
|
||||||
|
|
||||||
link_sl=['LINK',
|
link_sl=['LINK',
|
||||||
'/nologo', '/NOENTRY', '/INCREMENTAL:NO', '/subsystem:console', '/machine:AMD64',
|
'/nologo', '/NOENTRY', '/INCREMENTAL:NO', '/subsystem:console', '/machine:AMD64',
|
||||||
'/NODEFAULTLIB:LIBC.LIB', '/NODEFAULTLIB:LIBCMT.LIB',
|
'/NODEFAULTLIB:LIBC.LIB', '/NODEFAULTLIB:LIBCMT.LIB',
|
||||||
'/DEFAULTLIB:OLDNAMES.LIB', '/DEFAULTLIB:LIBIFCOREMD.LIB', '/DEFAULTLIB:LIBIFPORTMD', '/DEFAULTLIB:LIBMMD.LIB',
|
'/DEFAULTLIB:OLDNAMES.LIB', '/DEFAULTLIB:LIBIFCOREMD.LIB', '/DEFAULTLIB:LIBIFPORTMD', '/DEFAULTLIB:LIBMMD.LIB',
|
||||||
'/DEFAULTLIB:kernel32.lib', '/DEFAULTLIB:user32.lib', '/DEFAULTLIB:advapi32.lib',
|
'/DEFAULTLIB:kernel32.lib', '/DEFAULTLIB:user32.lib', '/DEFAULTLIB:advapi32.lib',
|
||||||
'/FIXED:NO', '/dll',
|
'/FIXED:NO', '/dll',
|
||||||
'/def:%E', '/out:%U', '%F', '%A', '%L', '%B',
|
'/def:%E', '/out:%U', '%F', '%A', '%L', '%B',
|
||||||
'oldnames.lib', 'user32.lib', 'ws2_32.lib', 'netapi32.lib', 'advapi32.lib']
|
'oldnames.lib', 'user32.lib', 'ws2_32.lib', 'netapi32.lib', 'advapi32.lib']
|
||||||
|
|
||||||
link_exe=['LINK',
|
link_exe=['LINK',
|
||||||
'/nologo', '/INCREMENTAL:NO', '/subsystem:console', '/machine:AMD64', '/STACK:20000000',
|
'/nologo', '/INCREMENTAL:NO', '/subsystem:console', '/machine:AMD64', '/STACK:20000000',
|
||||||
'/NODEFAULTLIB:LIBC.LIB', '/NODEFAULTLIB:LIBCMT.LIB', '/DEFAULTLIB:OLDNAMES.LIB', '/DEFAULTLIB:LIBIFCOREMD.LIB',
|
'/NODEFAULTLIB:LIBC.LIB', '/NODEFAULTLIB:LIBCMT.LIB', '/DEFAULTLIB:OLDNAMES.LIB', '/DEFAULTLIB:LIBIFCOREMD.LIB',
|
||||||
'/DEFAULTLIB:LIBIFPORTMD', '/DEFAULTLIB:LIBMMD.LIB', '/DEFAULTLIB:kernel32.lib',
|
'/DEFAULTLIB:LIBIFPORTMD', '/DEFAULTLIB:LIBMMD.LIB', '/DEFAULTLIB:kernel32.lib',
|
||||||
'/DEFAULTLIB:user32.lib', '/DEFAULTLIB:advapi32.lib',
|
'/DEFAULTLIB:user32.lib', '/DEFAULTLIB:advapi32.lib',
|
||||||
'/FIXED:NO', '/LARGEADDRESSAWARE',
|
'/FIXED:NO', '/LARGEADDRESSAWARE',
|
||||||
'/out:%J', '%F', '%M', '%L', '%B', '%O',
|
'/out:%J', '%F', '%M', '%L', '%B', '%O',
|
||||||
'oldnames.lib', 'user32.lib', 'ws2_32.lib', 'netapi32.lib', 'advapi32.lib']
|
'oldnames.lib', 'user32.lib', 'ws2_32.lib', 'netapi32.lib', 'advapi32.lib']
|
||||||
|
|
||||||
# Link command to be used for MAKE w/o fortran compiler.
|
# Link command to be used for MAKE w/o fortran compiler.
|
||||||
# remove the pound signs in order to remove the comments and have the file take effect.
|
# remove the pound signs in order to remove the comments and have the file take effect.
|
||||||
#
|
#
|
||||||
#link_exe=['LINK', '/nologo', 'INCREMENTAL:NO', '/subsystem:console', '/machine:AMD64', '/NODEFAULTLIB:LIBC.LIB', '/NODEFAULTLIB:LIBCMT.LIB',
|
#link_exe=['LINK', '/nologo', 'INCREMENTAL:NO', '/subsystem:console', '/machine:AMD64', '/NODEFAULTLIB:LIBC.LIB', '/NODEFAULTLIB:LIBCMT.LIB',
|
||||||
# '/DEFAULTLIB:OLDNAMES.LIB', '/DEFAULTLIB:MSVCRT.LIB', '/DEFAULTLIB:kernel32.lib', 'DEFAULTLIB:user32.lib', '/DEFAULTLIB:advapi32.lib',
|
# '/DEFAULTLIB:OLDNAMES.LIB', '/DEFAULTLIB:MSVCRT.LIB', '/DEFAULTLIB:kernel32.lib', 'DEFAULTLIB:user32.lib', '/DEFAULTLIB:advapi32.lib',
|
||||||
# '/FIXED:NO', '/LARGEADDRESSAWARE', '/DEBUG', '/out:%J', '%F', '%M', '%L', '%B', '%O', 'oldnames.lib', 'user32.lib', 'ws2_32.lib',
|
# '/FIXED:NO', '/LARGEADDRESSAWARE', '/DEBUG', '/out:%J', '%F', '%M', '%L', '%B', '%O', 'oldnames.lib', 'user32.lib', 'ws2_32.lib',
|
||||||
# 'netapi32.lib', 'advapi32.lib]
|
# 'netapi32.lib', 'advapi32.lib]
|
||||||
|
|
||||||
# MPI Configuration
|
# MPI Configuration
|
||||||
mp_mode = THREADS
|
mp_mode = THREADS
|
||||||
|
|
||||||
mp_mpi_implementation = NATIVE
|
mp_mpi_implementation = NATIVE
|
||||||
mp_rsh_command = 'dummy %H -l %U -n %C'
|
mp_rsh_command = 'dummy %H -l %U -n %C'
|
||||||
mp_mpirun_path = {}
|
mp_mpirun_path = {}
|
||||||
mpirun = ''
|
mpirun = ''
|
||||||
progDir = os.environ.get('ProgramFiles','C:\\Program Files')
|
progDir = os.environ.get('ProgramFiles','C:\\Program Files')
|
||||||
|
|
||||||
for mpiDir in ('Microsoft HPC Pack', 'Microsoft HPC Pack 2008 R2', 'Microsoft HPC Pack 2008', 'Microsoft HPC Pack 2008 SDK'):
|
for mpiDir in ('Microsoft HPC Pack', 'Microsoft HPC Pack 2008 R2', 'Microsoft HPC Pack 2008', 'Microsoft HPC Pack 2008 SDK'):
|
||||||
mpirun = progDir + os.sep + mpiDir + os.sep + 'bin' + os.sep + 'mpiexec.exe'
|
mpirun = progDir + os.sep + mpiDir + os.sep + 'bin' + os.sep + 'mpiexec.exe'
|
||||||
if os.path.exists(mpirun):
|
if os.path.exists(mpirun):
|
||||||
mp_mpirun_path[NATIVE] = mpirun
|
mp_mpirun_path[NATIVE] = mpirun
|
||||||
mp_mpirun_path[MSSDK] = os.path.join(progDir, mpiDir)
|
mp_mpirun_path[MSSDK] = os.path.join(progDir, mpiDir)
|
||||||
break
|
break
|
||||||
|
|
||||||
if os.environ.has_key('CCP_HOME'):
|
if os.environ.has_key('CCP_HOME'):
|
||||||
from queueCCS import QueueCCS
|
from queueCCS import QueueCCS
|
||||||
queues['default'] = QueueCCS(queueName='share')
|
queues['default'] = QueueCCS(queueName='share')
|
||||||
queues['share'] = QueueCCS(queueName='share')
|
queues['share'] = QueueCCS(queueName='share')
|
||||||
queues['local'] = QueueCCS(queueName='local')
|
queues['local'] = QueueCCS(queueName='local')
|
||||||
queues['genxmlshare'] = QueueCCS(queueName='genxmlshare')
|
queues['genxmlshare'] = QueueCCS(queueName='genxmlshare')
|
||||||
queues['genxmllocal'] = QueueCCS(queueName='genxmllocal')
|
queues['genxmllocal'] = QueueCCS(queueName='genxmllocal')
|
||||||
del QueueCCS
|
del QueueCCS
|
||||||
mpirun = os.path.join(os.environ['CCP_HOME'], 'bin', 'mpiexec.exe')
|
mpirun = os.path.join(os.environ['CCP_HOME'], 'bin', 'mpiexec.exe')
|
||||||
if os.path.exists(mpirun):
|
if os.path.exists(mpirun):
|
||||||
mp_mpirun_path[NATIVE] = mpirun
|
mp_mpirun_path[NATIVE] = mpirun
|
||||||
run_mode=BATCH
|
run_mode=BATCH
|
||||||
|
|
||||||
if mp_mpirun_path:
|
if mp_mpirun_path:
|
||||||
mp_mode=MPI
|
mp_mode=MPI
|
||||||
|
|
||||||
del progDir, mpiDir, mpirun
|
del progDir, mpiDir, mpirun
|
||||||
|
|
||||||
graphicsEnv = driverUtils.locateFile(os.environ['ABA_PATH'],'site','graphicsConfig','env')
|
graphicsEnv = driverUtils.locateFile(os.environ['ABA_PATH'],'site','graphicsConfig','env')
|
||||||
if graphicsEnv:
|
if graphicsEnv:
|
||||||
execfile(graphicsEnv)
|
execfile(graphicsEnv)
|
||||||
else:
|
else:
|
||||||
raise 'Cannot find the graphics configuration environment file (graphicsConfig.env)'
|
raise 'Cannot find the graphics configuration environment file (graphicsConfig.env)'
|
||||||
|
|
||||||
del driverUtils, os, graphicsEnv
|
del driverUtils, os, graphicsEnv
|
||||||
license_server_type=FLEXNET
|
license_server_type=FLEXNET
|
||||||
|
|
||||||
abaquslm_license_file=""
|
abaquslm_license_file=""
|
||||||
doc_root="
|
doc_root="
|
||||||
doc_root_type="html"
|
doc_root_type="html"
|
||||||
academic=RESEARCH
|
academic=RESEARCH
|
||||||
|
|
|
@ -74,6 +74,16 @@ class ASCIItable():
|
||||||
except:
|
except:
|
||||||
return string
|
return string
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------
|
||||||
|
def _quote(self,
|
||||||
|
what):
|
||||||
|
"""quote empty or white space-containing output"""
|
||||||
|
import re
|
||||||
|
|
||||||
|
return '{quote}{content}{quote}'.format(
|
||||||
|
quote = ('"' if str(what)=='' or re.search(r"\s",str(what)) else ''),
|
||||||
|
content = what)
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
def close(self,
|
def close(self,
|
||||||
dismiss = False):
|
dismiss = False):
|
||||||
|
@ -136,7 +146,7 @@ class ASCIItable():
|
||||||
the first row or, if keyword "head[*]" is present,
|
the first row or, if keyword "head[*]" is present,
|
||||||
the last line of the header
|
the last line of the header
|
||||||
"""
|
"""
|
||||||
import re
|
import re,shlex
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.__IO__['in'].seek(0)
|
self.__IO__['in'].seek(0)
|
||||||
|
@ -151,7 +161,7 @@ class ASCIItable():
|
||||||
if self.__IO__['labeled']: # table features labels
|
if self.__IO__['labeled']: # table features labels
|
||||||
|
|
||||||
self.info = [self.__IO__['in'].readline().strip() for i in xrange(1,int(m.group(1)))]
|
self.info = [self.__IO__['in'].readline().strip() for i in xrange(1,int(m.group(1)))]
|
||||||
self.labels = self.__IO__['in'].readline().split() # store labels found in last line
|
self.labels = shlex.split(self.__IO__['in'].readline()) # store labels found in last line
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
||||||
|
@ -187,7 +197,7 @@ class ASCIItable():
|
||||||
"""write current header information (info + labels)"""
|
"""write current header information (info + labels)"""
|
||||||
head = ['{}\theader'.format(len(self.info)+self.__IO__['labeled'])] if header else []
|
head = ['{}\theader'.format(len(self.info)+self.__IO__['labeled'])] if header else []
|
||||||
head.append(self.info)
|
head.append(self.info)
|
||||||
if self.__IO__['labeled']: head.append('\t'.join(self.labels))
|
if self.__IO__['labeled']: head.append('\t'.join(map(self._quote,self.labels)))
|
||||||
|
|
||||||
return self.output_write(head)
|
return self.output_write(head)
|
||||||
|
|
||||||
|
@ -411,6 +421,8 @@ class ASCIItable():
|
||||||
advance = True,
|
advance = True,
|
||||||
respectLabels = True):
|
respectLabels = True):
|
||||||
"""read next line (possibly buffered) and parse it into data array"""
|
"""read next line (possibly buffered) and parse it into data array"""
|
||||||
|
import shlex
|
||||||
|
|
||||||
self.line = self.__IO__['readBuffer'].pop(0) if len(self.__IO__['readBuffer']) > 0 \
|
self.line = self.__IO__['readBuffer'].pop(0) if len(self.__IO__['readBuffer']) > 0 \
|
||||||
else self.__IO__['in'].readline().strip() # take buffered content or get next data row from file
|
else self.__IO__['in'].readline().strip() # take buffered content or get next data row from file
|
||||||
|
|
||||||
|
@ -420,10 +432,10 @@ class ASCIItable():
|
||||||
self.line = self.line.rstrip('\n')
|
self.line = self.line.rstrip('\n')
|
||||||
|
|
||||||
if self.__IO__['labeled'] and respectLabels: # if table has labels
|
if self.__IO__['labeled'] and respectLabels: # if table has labels
|
||||||
items = self.line.split()[:len(self.__IO__['labels'])] # use up to label count (from original file info)
|
items = shlex.split(self.line)[:len(self.__IO__['labels'])] # use up to label count (from original file info)
|
||||||
self.data = items if len(items) == len(self.__IO__['labels']) else [] # take entries if label count matches
|
self.data = items if len(items) == len(self.__IO__['labels']) else [] # take entries if label count matches
|
||||||
else:
|
else:
|
||||||
self.data = self.line.split() # otherwise take all
|
self.data = shlex.split(self.line) # otherwise take all
|
||||||
|
|
||||||
return self.data != []
|
return self.data != []
|
||||||
|
|
||||||
|
@ -471,9 +483,9 @@ class ASCIItable():
|
||||||
if len(self.data) == 0: return True
|
if len(self.data) == 0: return True
|
||||||
|
|
||||||
if isinstance(self.data[0],list):
|
if isinstance(self.data[0],list):
|
||||||
return self.output_write([delimiter.join(map(str,items)) for items in self.data])
|
return self.output_write([delimiter.join(map(self._quote,items)) for items in self.data])
|
||||||
else:
|
else:
|
||||||
return self.output_write(delimiter.join(map(str,self.data)))
|
return self.output_write( delimiter.join(map(self._quote,self.data)))
|
||||||
|
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
def data_writeArray(self,
|
def data_writeArray(self,
|
||||||
|
|
Loading…
Reference in New Issue