Changeset 4468
- Timestamp:
- May 21, 2007, 11:04:04 AM (18 years ago)
- Location:
- anuga_core/source/anuga/abstract_2d_finite_volumes
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
anuga_core/source/anuga/abstract_2d_finite_volumes/test_util.py
r4341 r4468 1287 1287 1288 1288 assert allclose(x[:,0], [1.3, 0.0,4.5, 1.0]) 1289 1290 def test_store_parameters(self): 1291 1292 from os import sep, getenv 1293 1294 home = getenv('INUNDATIONHOME') 1295 output_dir=home+sep+'data' 1296 1297 kwargs = {'file_name':'new2.txt','output_dir':output_dir,'who':'me', 'what':'detail', 'how':2, 'why':241,'Completed':'yes'} 1298 # {'data_origin': data_georef.get_origin(), 1299 # 'mesh_origin': mesh_georef.get_origin(), 1300 # 'alpha': alpha, 1301 # 'verbose': verbose} 1302 1303 # fileName = tempfile.mktemp(".csv") 1304 # store_parameters(kwargs,fileName) 1305 # file_name='temp.csv' 1306 store_parameters(**kwargs) 1307 # store_parameters(file_name=file_name, scenario_name='dampier',\ 1308 # who="me", time_thining=12,tide=2.6) 1309 1310 1311 fid = open(str(kwargs.pop('file_name'))) 1312 header = fid.readline() 1313 line = fid.readline() 1314 fid.close() 1315 print'header',header,'lines',line 1316 1317 #file exists 1318 # assert access(file_name,F_OK) 1319 a=['who,time'] 1320 # assert allclose(header, a) 1321 # assert allclose(header, [who,time]) 1322 # assert header=='who,time1 1323 # assert allclose(line,['me',12]) 1324 1289 1325 1290 1326 … … 1294 1330 if __name__ == "__main__": 1295 1331 suite = unittest.makeSuite(Test_Util,'test') 1296 #suite = unittest.makeSuite(Test_Util,'test_get_data_from_file')1332 # suite = unittest.makeSuite(Test_Util,'test_store_parameters') 1297 1333 runner = unittest.TextTestRunner() 1298 1334 runner.run(suite) -
anuga_core/source/anuga/abstract_2d_finite_volumes/util.py
r4412 r4468 1383 1383 def copy_code_files(dir_name, filename1, filename2): 1384 1384 """Copies "filename1" and "filename2" to "dir_name". Very useful for 1385 information management """ 1385 information management 1386 filename1 and filename2 are both absolute pathnames 1387 """ 1386 1388 1387 1389 if access(dir_name,F_OK) == 0: … … 1451 1453 return header_fields, data 1452 1454 1453 1454 1455 def store_parameters(verbose=False,**kwargs): 1456 """ 1457 Must have a file_name keyword arg, this is what is writing to. 1458 might be a better way to do this using CSV module Writer and writeDict 1459 1460 writes file to "output_dir" unless "completed" is in kwargs, then it writes to 1461 "file_name" kwargs 1462 Returns a object which is a subset of the original 1463 and the data points and attributes in this new object refer to 1464 the indices provided 1465 1466 Input 1467 indices- a list of integers that represent the new object 1468 Output 1469 New geospatial data object representing points specified by 1470 the indices 1471 """ 1472 import types 1473 import os 1474 1475 # Check that kwargs is a dictionary 1476 if type(kwargs) != types.DictType: 1477 raise TypeError 1478 1479 try: 1480 kwargs['completed'] 1481 completed=True 1482 except: 1483 completed=False 1484 1485 # assert that a file_name exists 1486 1487 #get file name and removes from dict 1488 if completed: 1489 try: 1490 file = str(kwargs.pop('file_name')) 1491 except: 1492 raise 'kwargs must have file_name' 1493 else: 1494 try: 1495 file = str(kwargs.pop('output_dir'))+'detail_temp.csv' 1496 except: 1497 raise 'kwargs must have output_dir' 1498 1499 1500 # print kwargs 1501 #extracts the header info and the new line info 1502 line='' 1503 header='' 1504 count=0 1505 keys = kwargs.keys() 1506 # print 'keys',keys 1507 keys.sort() 1508 # print 'keys',keys 1509 1510 # for k in kwargs.keys(): 1511 #used the sorted keys to create the header and line data 1512 for k in keys: 1513 print "%s = %s" %(k, kwargs[k]) 1514 header = header+str(k) 1515 line = line+str(kwargs[k]) 1516 count+=1 1517 if count <len(kwargs): 1518 header = header+',' 1519 line = line+',' 1520 1521 1522 # checks the header info, if the same, then write, if not create a new file 1523 #try to open! 1524 # print'file name',file 1525 try: 1526 fid = open(file,"r") 1527 file_header=fid.readline() 1528 fid.close() 1529 if verbose: print 'read file header %s' %file_header 1530 1531 except: 1532 msg = 'try to create new file',file 1533 if verbose: print msg 1534 #tries to open file, maybe directory is bad 1535 try: 1536 fid = open(file,"w") 1537 fid.writelines(header+'\n') 1538 fid.close() 1539 file_header=header 1540 except: 1541 msg = 'cannot create new file',file 1542 raise msg 1543 1544 #if header is same or this is a new file 1545 if file_header.strip('\n')==header: 1546 fid=open(file,"a") 1547 #write new line 1548 fid.writelines(line+'\n') 1549 fid.close() 1550 else: 1551 #backup plan, if header is different and has completed will append info to 1552 #end of details_temp.cvs file in output directory 1553 file = str(kwargs['output_dir'])+'detail_temp.csv' 1554 fid=open(file,"a") 1555 fid.writelines(header+'\n') 1556 fid.writelines(line+'\n') 1557 fid.close() 1558 msg = 'file header does not match input info, the input variables have changed, change file name' 1559 raise msg 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569
Note: See TracChangeset
for help on using the changeset viewer.