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

rjfarmer / gfModParser / 24637443406

19 Apr 2026 07:38PM UTC coverage: 96.543% (-0.1%) from 96.681%
24637443406

push

github

rjfarmer
Fill out operators

12 of 12 new or added lines in 1 file covered. (100.0%)

10 existing lines in 2 files now uncovered.

1145 of 1186 relevant lines covered (96.54%)

0.97 hits per line

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

93.65
/gfModParser/modules/procedures.py
1
# SPDX-License-Identifier: GPL-2.0+
2
from packaging.version import Version
1✔
3

4
from .. import utils
1✔
5

6
from . import utils as u
1✔
7
from . import expressions
1✔
8

9

10
class typebound_proc:
1✔
11
    def __init__(self, proc, *, version: Version) -> None:
1✔
12
        self._proc = proc
1✔
13
        self.version = version
1✔
14

15
    @property
1✔
16
    def access(self):
1✔
17
        return self._proc[0]
1✔
18

19
    @property
1✔
20
    def overridable(self):
1✔
21
        return self._proc[1]
1✔
22

23
    # Also sho deferred here? see mio_typebound_proc
24

25
    @property
1✔
26
    def nopass(self) -> bool:
1✔
27
        return self._proc[2] == "NOPASS"
1✔
28

29
    @property
1✔
30
    def is_generic(self):
1✔
31
        return self._proc[3]
1✔
32

33
    @property
1✔
34
    def ppc(self):
1✔
35
        return self._proc[4]
1✔
36

37
    @property
1✔
38
    def pass_arg(self) -> str:
1✔
39
        # argument name
40
        return utils.string_clean(self._proc[5])
1✔
41

42
    @property
1✔
43
    def pass_arg_num(self) -> int:
1✔
44
        return int(self._proc[6])
1✔
45

46
    # # TODO: Handle is_generic
47
    @property
1✔
48
    def proc_ref(self):
1✔
UNCOV
49
        return int(self._proc[7])
×
50

51

52
class Arglist(u.ListSymbols):
1✔
53
    pass
1✔
54

55

56
class actual_arg:
1✔
57
    """A single named argument in a PDT actual argument list."""
58

59
    def __init__(self, arg: list, *, version: Version) -> None:
1✔
60
        self._arg = arg
1✔
61
        self.version = version
1✔
62

63
    @property
1✔
64
    def name(self) -> str:
1✔
65
        return utils.string_clean(self._arg[0])
1✔
66

67
    @property
1✔
68
    def expression(self):
1✔
69
        return expressions.Expression(self._arg[1], version=self.version)
1✔
70

71
    @property
1✔
72
    def flag(self) -> int:
1✔
UNCOV
73
        return int(self._arg[2])
×
74

75

76
class actual_arglist:
1✔
77
    """PDT actual argument list – maps parameter names to expressions.
78

79
    Format of each entry: [name, expression, flag]
80
    """
81

82
    def __init__(self, args: list, *, version: Version) -> None:
1✔
83
        self._args = args
1✔
84
        self.version = version
1✔
85

86
    def __len__(self) -> int:
1✔
87
        return len(self._args)
1✔
88

89
    def __iter__(self):
1✔
90
        return (actual_arg(a, version=self.version) for a in self._args)
1✔
91

92
    def __getitem__(self, key: int) -> actual_arg:
1✔
93
        return actual_arg(self._args[key], version=self.version)
1✔
94

95
    def keys(self) -> list[str]:
1✔
96
        return [utils.string_clean(a[0]) for a in self._args]
1✔
97

98
    def __str__(self) -> str:
1✔
UNCOV
99
        return str(self.keys())
×
100

101
    def __repr__(self) -> str:
1✔
UNCOV
102
        return repr(self.keys())
×
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

© 2026 Coveralls, Inc