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

rjfarmer / gfModParser / 27464665243

13 Jun 2026 10:50AM UTC coverage: 96.215% (+0.009%) from 96.206%
27464665243

push

github

rjfarmer
Fix version pins

1144 of 1189 relevant lines covered (96.22%)

0.96 hits per line

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

93.94
/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
from . import expressions
1✔
6
from . import utils as u
1✔
7

8

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

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

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

22
    # Also sho deferred here? see mio_typebound_proc
23

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

28
    @property
1✔
29
    def is_pass(self) -> bool:
1✔
30
        return self._proc[2] == "PASS"
1✔
31

32
    @property
1✔
33
    def is_generic(self):
1✔
34
        return self._proc[3]
1✔
35

36
    @property
1✔
37
    def ppc(self):
1✔
38
        return self._proc[4]
1✔
39

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

45
    @property
1✔
46
    def pass_arg_num(self) -> int:
1✔
47
        return int(self._proc[6])
1✔
48

49
    # # TODO: Handle is_generic
50
    @property
1✔
51
    def proc_ref(self):
1✔
52
        return int(self._proc[7])
×
53

54

55
class Arglist(u.ListSymbols):
1✔
56
    pass
1✔
57

58

59
class actual_arg:
1✔
60
    """A single named argument in a PDT actual argument list."""
61

62
    def __init__(self, arg: list, *, version: Version) -> None:
1✔
63
        self._arg = arg
1✔
64
        self.version = version
1✔
65

66
    @property
1✔
67
    def name(self) -> str:
1✔
68
        return utils.string_clean(self._arg[0])
1✔
69

70
    @property
1✔
71
    def expression(self):
1✔
72
        return expressions.Expression(self._arg[1], version=self.version)
1✔
73

74
    @property
1✔
75
    def flag(self) -> int:
1✔
76
        return int(self._arg[2])
×
77

78

79
class actual_arglist:
1✔
80
    """PDT actual argument list – maps parameter names to expressions.
81

82
    Format of each entry: [name, expression, flag]
83
    """
84

85
    def __init__(self, args: list, *, version: Version) -> None:
1✔
86
        self._args = args
1✔
87
        self.version = version
1✔
88

89
    def __len__(self) -> int:
1✔
90
        return len(self._args)
1✔
91

92
    def __iter__(self):
1✔
93
        return (actual_arg(a, version=self.version) for a in self._args)
1✔
94

95
    def __getitem__(self, key: int) -> actual_arg:
1✔
96
        return actual_arg(self._args[key], version=self.version)
1✔
97

98
    def keys(self) -> list[str]:
1✔
99
        return [utils.string_clean(a[0]) for a in self._args]
1✔
100

101
    def __str__(self) -> str:
1✔
102
        return str(self.keys())
×
103

104
    def __repr__(self) -> str:
1✔
105
        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