• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

timcera / pyslice / 12340932278

15 Dec 2024 05:42PM CUT coverage: 45.447%. Remained the same
12340932278

Pull #4

github

web-flow
Merge d90cfa984 into 2ffee6f33
Pull Request #4: build(deps): bump actions/setup-python from 4 to 5

529 of 1164 relevant lines covered (45.45%)

2.27 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

15.0
/src/pyslice/pyslice_lib/PySPG/MatrixPlotter.py
1
import os.path
5✔
2
import sys
5✔
3

4
from . import Load
5✔
5
from .ParamParser import ParamParser
5✔
6

7
#
8
#
9
# :::~ Author: Claudio Juan Tessone <tessonec@imedea.uib.es> (c) 2002-2003
10
#
11
# Distributed According to GNU Generic Purpose License (GPL)
12
# Please visit www.gnu.org
13
#
14

15

16
class MatrixPlotter:
5✔
17
    save_mtv = False
5✔
18

19
    def __init__(self, comm):
5✔
20
        self.xcol = 1
×
21
        self.xformula = "x"
×
22

23
        self.yformula = "y"
×
24

25
        self.zmin = None
×
26
        self.zmax = None
×
27
        self.nz = 50
×
28

29
        commands = [
×
30
            i.strip() for i in comm if (i.strip()[0] != "#" and i.strip() != "")
31
        ]
32
        try:
×
33
            pTmp = ParamParser(commands)
×
34
            var_name = pTmp.variables_list[-2].get_varname()
×
35
            print(var_name)
×
36
            lastvar_idx = pTmp.entities.index(var_name)
×
37
        except Exception:
×
38
            sys.stdout = sys.stderr
×
39
            print("last_var= ", var_name)
×
40
            print("var=", lastvar_idx)
×
41
            print("exiting... -presumible error: last var you provided does not")
×
42
            print(" exist among the variables-")
×
43
            sys.exit()
×
44

45
        self.parser_original = ParamParser(commands[:lastvar_idx])
×
46

47
        lastvarpos = commands.index(
×
48
            filter(lambda x: x.strip()[0] in "+*/-.", commands).pop()
49
        )
50

51
        self.parser_last = ParamParser(commands[lastvar_idx:lastvarpos])
×
52

53
        self.iter2 = pTmp.variables_list[-2]
×
54
        self.iter1 = pTmp.variables_list[-1]
×
55

56
    def __matrix(self, outname, inname):
5✔
57
        """
58
        for the actual values of the iterator self.parser_original, dumps a agr
59
        """
60
        cwd = os.path.abspath(os.path.curdir)
×
61
        #
62
        # Directory where the AGR will be located
63
        #
64
        thepath = self.parser_original.directory_tree(None)
×
65
        #
66
        #
67

68
        os.chdir(thepath)
×
69
        #
70
        # Genera los paths donde estan los files
71
        #
72
        self.parser_last.reset()
×
73
        outputStr = ""
×
74
        for i_state in self.parser_last:
×
75
            fname = self.parser_last.directory_tree(None) + inname
×
76
            ls = Load.loadXY(fname, self.xcol, self.ycol)
×
77
            ls2 = [
×
78
                str(i[1]) for i in Load.transformXY(ls, self.xformula, self.yformula)
79
            ]
80
            outputStr += "\t".join(ls2) + "\n"
×
81
        with open(outname, "w") as fOut:
×
82
            if self.save_mtv:
×
83
                mtvStr = f"""$ DATA=CONTOUR
×
84
% NX={len(self.iter1.data)}    XMIN={self.iter1.data[0]}   XMAX={self.iter1.data[-1]} XLABEL={self.iter1.get_varname()}
85
% NY={len(self.iter2.data)}    YMIN={self.iter2.data[0]}   YMAX={self.iter2.data[-1]} YLABEL={self.iter2.get_varname()}
86
% NSTEPS={self.nz}
87
"""
88
                if self.zmin is not None:
×
89
                    mtvStr += f"""% ZMIN={self.cmin}
×
90
"""
91
                if self.zmax is not None:
×
92
                    mtvStr += f"""% ZMAX={self.cmax}
×
93
"""
94
                mtvStr += """%contstyle=4
×
95
%interpolate=2
96
%contfill=True
97
"""
98

99
                fOut.write(mtvStr)
×
100

101
            fOut.write(outputStr)
×
102
            if self.save_mtv:
×
103
                mtvStr = "$ END"
×
104

105
                fOut.write(mtvStr)
×
106
        #     print outputStr
107
        os.chdir(cwd)
×
108

109
    def doit(self, outname="out.mtrx", inname="mean.dat", ycol=1):
5✔
110
        """
111
        given the commands, for all the possible values, do the plotting according the given rules
112
        """
113
        self.ycol = ycol
×
114
        for _ in self.parser_original:
×
115
            #    print self.parser_original
116
            self.__matrix(outname, inname)
×
117

118

119
#
120
#
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc