from __future__ import print_function from CPWeb.BibtexTools import getCitationOrAlternative, getBibtexParser import CoolProp import os.path web_dir = os.path.abspath(os.path.join(os.path.dirname(__file__),'..')) csvfile = os.path.join(web_dir,'fluid_properties','Mixtures.csv') def merge_args(*args): return " :raw-html:`
` ".join(list(args)) def printCoeff(number): if number is None or \ len(str(number).strip())<1: return " " number = float(number) short = "{0:.4e}".format(number) long = "{0:.14e}".format(number) return u':raw-html:`{0}`'.format(short,long) class Dossier: def __init__(self): self.data = {} def add(self, key, value): if key not in self.data: self.data[key] = [] self.data[key].append(value) d = Dossier() pairs = CoolProp.get('mixture_binary_pairs_list') print(len(pairs.split(','))) for pair in pairs.split(','): CAS1, CAS2 = pair.split('&') d.add('CAS1', CAS1) d.add('CAS2', CAS2) for key in ['name1','name2','F','function','BibTeX','xi','zeta','betaT','betaV','gammaT','gammaV']: try: d.add(key, CoolProp.CoolProp.get_mixture_binary_pair_data(CAS1, CAS2, key)) except BaseException as BE: d.add(key, '') import pandas df = pandas.DataFrame(d.data) df = df.sort_values(by=['BibTeX','name1'], ascending = [0, 1]) bibtexer = getBibtexParser()#filename = '../../../CoolPropBibTeXLibrary.bib') with open(csvfile,'w') as fp: header = 'Ref.,Name1,Name2,function,F,' header += merge_args("xi","zeta,") header += merge_args("betaT","betaV,") header += merge_args("gammaT","gammaV") header += '\n' fp.write(header) for index, row in df.iterrows(): text = ','.join([ \ getCitationOrAlternative(bibtexer,row['BibTeX']), row['name1'], row['name2'], row['function'], row['F'], merge_args(printCoeff(row['xi']),printCoeff(row['zeta'])), merge_args(printCoeff(row['betaT']),printCoeff(row['betaV'])), merge_args(printCoeff(row['gammaT']),printCoeff(row['gammaV'])) ])+'\n' fp.write(text)