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

ni / nixnet-python / #631999863

08 Apr 2025 07:22AM UTC coverage: 67.546% (-0.005%) from 67.551%
#631999863

Pull #302

travis-ci

Pull Request #302: Fix `tox -e mypy` errors with `mypy 1.14.1`

22 of 66 new or added lines in 15 files covered. (33.33%)

10 existing lines in 1 file now uncovered.

4712 of 6976 relevant lines covered (67.55%)

0.68 hits per line

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

69.23
/nixnet/system/system.py
1
import typing  # NOQA: F401
1✔
2
import warnings
1✔
3

1✔
4
from nixnet import _cconsts
5
from nixnet import _funcs
1✔
6
from nixnet import _props
1✔
7
from nixnet import constants
8
from nixnet import errors
1✔
9
from nixnet import types
1✔
10

1✔
11
from nixnet.system import _collection
1✔
12
from nixnet.system import _databases
1✔
13
from nixnet.system import _device
1✔
14
from nixnet.system import _interface
15

1✔
16

1✔
17
class System(object):
1✔
18
    '''Interact with the NI driver and interface hardware.'''
1✔
19

20
    def __init__(self):
21
        # type: () -> None
1✔
22
        self._handle = None  # To satisfy `__del__` in case nx_system_open throws
23
        self._handle = _funcs.nx_system_open()
24
        self._databases = _databases.AliasCollection(self._handle)
1✔
25
        self._devices = _collection.SystemCollection(
26
            self._handle, _cconsts.NX_PROP_SYS_DEV_REFS, _device.Device)
1✔
27
        self._intfs = _collection.SystemCollection(
1✔
28
            self._handle, _cconsts.NX_PROP_SYS_INTF_REFS, _interface.Interface)
1✔
29
        self._intfs_all = _collection.SystemCollection(
1✔
30
            self._handle, _cconsts.NX_PROP_SYS_INTF_REFS_ALL, _interface.Interface)
31
        self._intfs_can = _collection.SystemCollection(
1✔
32
            self._handle, _cconsts.NX_PROP_SYS_INTF_REFS_CAN, _interface.Interface)
33
        self._intfs_flex_ray = _collection.SystemCollection(
1✔
34
            self._handle, _cconsts.NX_PROP_SYS_INTF_REFS_FLEX_RAY, _interface.Interface)
35
        self._intfs_lin = _collection.SystemCollection(
1✔
36
            self._handle, _cconsts.NX_PROP_SYS_INTF_REFS_LIN, _interface.Interface)
37

1✔
38
    def __del__(self):
39
        if self._handle is not None:
1✔
40
            warnings.warn(
41
                'System was not explicitly closed before it was destructed. '
42
                'Resources on the device may still be reserved.',
1✔
43
                errors.XnetResourceWarning)
1✔
44

×
45
    def __enter__(self):
46
        return self
47

48
    def __exit__(self, exception_type, exception_value, traceback):
49
        self.close()
1✔
50

1✔
51
    def __eq__(self, other):
52
        if isinstance(other, self.__class__):
1✔
53
            return self._handle == typing.cast(System, other)._handle
1✔
54
        else:
55
            return NotImplemented
1✔
56

×
57
    def __ne__(self, other):
×
58
        result = self.__eq__(other)
59
        if result is NotImplemented:
×
60
            return result
61
        else:
1✔
62
            return not result
×
63

×
64
    def __hash__(self):
×
65
        return hash(self._handle)
66

×
67
    def __repr__(self):
68
        # type: () -> typing.Text
1✔
69
        return '{}(handle={})'.format(type(self).__name__, self._handle)
×
70

71
    def close(self):
1✔
72
        # type: () -> None
73
        if self._handle is None:
×
74
            warnings.warn(
75
                'Attempting to close NI-XNET system but system was already '
1✔
76
                'closed', errors.XnetResourceWarning)
77
            return
1✔
78

×
79
        _funcs.nx_system_close(self._handle)
80

81
        self._handle = None
×
82

83
    @property
1✔
84
    def databases(self):
85
        # type: () -> _databases.AliasCollection
1✔
86
        """:any:`nixnet.system._databases.AliasCollection`: Operate on systems's database's aliases"""
87
        return self._databases
1✔
88

89
    @property
90
    def dev_refs(self):
91
        # type: () -> _collection.SystemCollection
1✔
92
        '''iter of :any:`nixnet.system._device.Device`: Physical XNET devices in the system.'''
93
        return self._devices
1✔
94

95
    @property
96
    def intf_refs(self):
97
        # type: () -> _collection.SystemCollection
×
98
        '''iter of :any:`nixnet.system._interface.Interface`: Available interfaces on the system.'''
99
        return self._intfs
1✔
100

101
    @property
102
    def intf_refs_all(self):
103
        # type: () -> _collection.SystemCollection
×
104
        '''iter of :any:`nixnet.system._interface.Interface`: Available interfaces on the system.
105

1✔
106
        This Includes those not equipped with a Transceiver Cable.
107
        '''
108
        return self._intfs_all
109

110
    @property
111
    def intf_refs_can(self):
112
        # type: () -> _collection.SystemCollection
×
113
        '''iter of :any:`nixnet.system._interface.Interface`: Available interfaces on the system (CAN Protocol).'''
114
        return self._intfs_can
1✔
115

116
    @property
117
    def intf_refs_flex_ray(self):
118
        # type: () -> _collection.SystemCollection
×
119
        return self._intfs_flex_ray
120

1✔
121
    @property
122
    def intf_refs_lin(self):
123
        # type: () -> _collection.SystemCollection
×
124
        '''iter of :any:`nixnet.system._interface.Interface`: Available interfaces on the system (LIN Protocol).'''
125
        return self._intfs_lin
1✔
126

127
    @property
128
    def ver(self):
129
        # type: () -> types.DriverVersion
×
130
        ''':any:`nixnet.types.DriverVersion`: The driver version (larger numbers imply a newer version).
131

1✔
132
        Use this for:
133

134
        * Determining the driver functionality or release date
135
        * Determining upgrade availability
136
        '''
137
        return types.DriverVersion(
138
            self._ver_major,
139
            self._ver_minor,
140
            self._ver_update,
141
            self._ver_phase,
×
142
            self._ver_build)
143

144
    @property
145
    def _ver_build(self):
146
        # type: () -> int
147
        return _props.get_system_ver_build(self._handle)  # type: ignore
148

1✔
149
    @property
150
    def _ver_major(self):
NEW
151
        # type: () -> int
×
152
        return _props.get_system_ver_major(self._handle)  # type: ignore
153

1✔
154
    @property
155
    def _ver_minor(self):
NEW
156
        # type: () -> int
×
157
        return _props.get_system_ver_minor(self._handle)  # type: ignore
158

1✔
159
    @property
160
    def _ver_phase(self):
NEW
161
        # type: () -> constants.Phase
×
162
        return constants.Phase(_props.get_system_ver_phase(self._handle))  # type: ignore
163

1✔
164
    @property
165
    def _ver_update(self):
NEW
166
        # type: () -> int
×
167
        return _props.get_system_ver_update(self._handle)  # type: ignore
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