| 630 | |
| 631 | |
| 632 | class Python(BaseParser): |
| 633 | |
| 634 | function_name_mapping = dict(Props1SI='PropsSI', |
| 635 | factory='AbstractState') |
| 636 | type_name_mapping = {'vector': None, |
| 637 | 'AbstractState': None} |
| 638 | enum_name_mapping = {'input_pairs': "CoolProp", 'parameters': "CoolProp"} |
| 639 | indentation = '' |
| 640 | |
| 641 | def parse_arguments(self, arguments): |
| 642 | out = [] |
| 643 | for arg in arguments: |
| 644 | if isinstance(arg, str) and arg[0] == "'" and arg[-1] == "'": |
| 645 | out.append('\"' + arg[1:-1] + '\"') |
| 646 | elif isinstance(arg, dict): |
| 647 | out.append(self.dict2string(arg)) |
| 648 | else: |
| 649 | out.append(arg) |
| 650 | return out |
| 651 | |
| 652 | def dict2string(self, d): |
| 653 | if d['type'] == 'comment': |
| 654 | return '# ' + d['comment'] |
| 655 | elif d['type'] == 'function': |
| 656 | return self.map_function(d['function']) + '(' + ', '.join(self.parse_arguments(d['arguments'])) + ')' |
| 657 | elif d['type'] == 'print': |
| 658 | return 'print(' + ', '.join(self.parse_arguments(d['arguments'])) + ')' |
| 659 | elif d['type'] == 'vector': |
| 660 | return '[' + ', '.join(self.parse_arguments(d['arguments'])) + ']' |
| 661 | elif d['type'] == 'enum': |
| 662 | return self.enum_name_mapping[d['enum']] + '.' + d['key'] |
| 663 | elif d['type'] == 'class_dereference': |
| 664 | return d['name'] + '.' + self.dict2string(d['RHS']) |
| 665 | elif d['type'] == 'custom_assignment': |
| 666 | type_name = self.type_name_mapping[d['variable_type']] |
| 667 | if type_name: |
| 668 | LHS = type_name + ' ' + d['variable_name'] |
| 669 | else: |
| 670 | LHS = d['variable_name'] |
| 671 | return ' '.join([LHS, '=', self.dict2string(d['RHS'])]) |
| 672 | else: |
| 673 | return '??????????????????????????????' |
| 674 | |
| 675 | def header(self): |
| 676 | return '\n'.join(['from __future__ import print_function', |
| 677 | 'from CoolProp import AbstractState', |
| 678 | 'from CoolProp.CoolProp import PhaseSI, PropsSI, get_global_param_string', |
| 679 | 'import CoolProp.CoolProp as CoolProp', |
| 680 | 'from CoolProp.HumidAirProp import HAPropsSI', |
| 681 | 'from math import sin\n']) |
| 682 | |
| 683 | |
| 684 | class Octave(BaseParser): |
no outgoing calls
no test coverage detected