Changeset 411
- Timestamp:
- 01/31/10 18:55:54 (2 years ago)
- Files:
-
- PythonPackages/OpenOpt/openopt/kernel/LP.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
PythonPackages/OpenOpt/openopt/kernel/LP.py
r410 r411 83 83 return r 84 84 85 def exportToMPS(self, filename ):85 def exportToMPS(self, filename, format='fixed', startIndex=0): 86 86 try: from lp_solve import lpsolve 87 87 except ImportError: self.err('To export LP/MILP in files you should have lpsolve and its Python binding properly installed') 88 handler = self.get_lpsolve_handler() 88 89 maxNameLength = 8 if format != 'free' else 255 90 handler = self.get_lpsolve_handler(maxNameLength, startIndex) 89 91 90 92 # TODO: uncomment it … … 92 94 if ext != '': filename += '.' + ext 93 95 94 r = lpsolve('write_mps', handler, filename) 96 if format=='fixed': 97 r = lpsolve('write_mps', handler, filename) 98 elif format=='free': 99 r = lpsolve('write_freemps', handler, filename) 100 else: 101 self.err('incorrect MPS format, should be "fixed" or "free"') 95 102 if r != True: 96 103 self.warn('Failed to write MPS file, maybe read-only filesystem, incorrect path or write access is absent') … … 99 106 return r 100 107 101 def get_lpsolve_handler(self ):108 def get_lpsolve_handler(self, maxNameLength=255, startIndex=0): 102 109 try: from lp_maker import lp_maker, lpsolve 103 110 except ImportError: self.err('To export LP/MILP in files you should have lpsolve and its Python binding properly installed') … … 143 150 names.append(Name) 144 151 else: 145 tmp = [(oov.name + ('_%d' % j)) for j in xrange(Size)]152 tmp = [(oov.name + ('_%d' % (startIndex+j))) for j in xrange(Size)] 146 153 names += tmp 147 154 Name = tmp[-1] 148 if len(Name) > 8:155 if maxNameLength < len(Name): 149 156 L('delete_lp') 150 self.err('incorrect name "%s" - for exporting FuncDesigner models into MPS files you cannot have variables with names of length > 8'% Name)157 self.err('incorrect name "%s" - for exporting FuncDesigner models into MPS files you cannot have variables with names of length > maxNameLength=%d'% maxNameLength) 151 158 152 159 # TODO: check are names unique
