GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( 94f048...b15539 )
by Kaloyan
01:31
created

Reference   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 6
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 5
cts 5
cp 1
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A __init__() 0 4 1
1
2 1
from abc import ABCMeta
3 1
from collections import OrderedDict
4
5
6 1
class ASTException(Exception):
7
8 1
    def __init__(self, message):
9 1
        super(ASTException, self).__init__()
10 1
        self.message = message
11
12 1
    def __str__(self):
13
        return self.message
14
15
16 1
class Package(object):
17
    """
18
    AST representation of a Franca package.
19
    """
20
21 1
    def __init__(self, name, file_name=None, imports=None,
22
                 interfaces=None, typecollections=None):
23
        """
24
        Constructs a new Package.
25
        """
26 1
        self.name = name
27 1
        self.file = file_name
28 1
        self.imports = imports if imports else []
29 1
        self.interfaces = interfaces if interfaces else OrderedDict()
30 1
        self.typecollections = typecollections if typecollections else \
31
            OrderedDict()
32
33 1
        for item in self.interfaces.values():
34 1
            item.package = self
35 1
        for item in self.typecollections.values():
36 1
            item.package = self
37
38
39 1
class Import(object):
40
41 1
    def __init__(self, file_name, namespace=None):
42 1
        self.file = file_name
43 1
        self.namespace = namespace          # None for "import model"
44
45
46 1
class Namespace(object):
47
48 1
    __metaclass__ = ABCMeta
49
50 1
    def __init__(self, name, flags=None, members=None):
51 1
        self.package = None
52 1
        self.name = name
53 1
        self.flags = flags if flags else []         # Unused
54 1
        self.version = None
55 1
        self.typedefs = OrderedDict()
56 1
        self.enumerations = OrderedDict()
57 1
        self.structs = OrderedDict()
58 1
        self.arrays = OrderedDict()
59 1
        self.maps = OrderedDict()
60 1
        if members:
61 1
            for member in members:
62 1
                self._add_member(member)
63
64 1
    def __contains__(self, item):
65 1
        res = item in self.typedefs or \
66
              item in self.enumerations or \
67
              item in self.structs or \
68
              item in self.arrays or \
69
              item in self.maps
70 1
        return res
71
72 1
    def _add_member(self, member):
73 1
        if isinstance(member, Version):
74 1
            if not self.version:
75 1
                self.version = member
76
            else:
77 1
                raise ASTException("Multiple version definitions.")
78 1
        elif isinstance(member, Type):
79 1
            if member.name in self:
80 1
                raise ASTException("Duplicate namespace member "
81
                                   "\"{}\".".format(member.name))
82 1
            if isinstance(member, Typedef):
83 1
                self.typedefs[member.name] = member
84 1
            elif isinstance(member, Enumeration):
85 1
                self.enumerations[member.name] = member
86 1
            elif isinstance(member, Struct):
87 1
                self.structs[member.name] = member
88 1
            elif isinstance(member, Array):
89 1
                self.arrays[member.name] = member
90 1
            elif isinstance(member, Map):
91 1
                self.maps[member.name] = member
92
            else:
93
                raise ASTException("Unexpected namespace member type.")
94 1
            member.namespace = self
95
        else:
96
            raise ValueError("Unexpected namespace member type.")
97
98
99 1
class TypeCollection(Namespace):
100
101 1
    def __init__(self, name, flags=None, members=None):
102 1
        super(TypeCollection, self).__init__(name, flags=flags,
103
                                             members=members)
104
105
106 1
class Type(object):
107
108 1
    __metaclass__ = ABCMeta
109
110 1
    def __init__(self, name=None):
111 1
        self.namespace = None
112 1
        self.name = name if name else self.__class__.__name__
113
114
115 1
class Typedef(Type):
116
117 1
    def __init__(self, name, base_type):
118 1
        super(Typedef, self).__init__(name)
119 1
        self.type = base_type
120
121
122 1
class PrimitiveType(Type):
123
124 1
    __metaclass__ = ABCMeta
125
126 1
    def __init__(self):
127 1
        super(PrimitiveType, self).__init__()
128
129
130 1
class Int8(PrimitiveType):
131
132 1
    def __init__(self):
133 1
        super(Int8, self).__init__()
134
135
136 1
class Int16(PrimitiveType):
137
138 1
    def __init__(self):
139 1
        super(Int16, self).__init__()
140
141
142 1
class Int32(PrimitiveType):
143
144 1
    def __init__(self):
145 1
        super(Int32, self).__init__()
146
147
148 1
class Int64(PrimitiveType):
149
150 1
    def __init__(self):
151 1
        super(Int64, self).__init__()
152
153
154 1
class UInt8(PrimitiveType):
155
156 1
    def __init__(self):
157 1
        super(UInt8, self).__init__()
158
159
160 1
class UInt16(PrimitiveType):
161
162 1
    def __init__(self):
163 1
        super(UInt16, self).__init__()
164
165
166 1
class UInt32(PrimitiveType):
167
168 1
    def __init__(self):
169 1
        super(UInt32, self).__init__()
170
171
172 1
class UInt64(PrimitiveType):
173
174 1
    def __init__(self):
175 1
        super(UInt64, self).__init__()
176
177
178 1
class Boolean(PrimitiveType):
179
180 1
    def __init__(self):
181 1
        super(Boolean, self).__init__()
182
183
184 1
class Float(PrimitiveType):
185
186 1
    def __init__(self):
187 1
        super(Float, self).__init__()
188
189
190 1
class Double(PrimitiveType):
191
192 1
    def __init__(self):
193 1
        super(Double, self).__init__()
194
195
196 1
class String(PrimitiveType):
197
198 1
    def __init__(self):
199 1
        super(String, self).__init__()
200
201
202 1
class ByteBuffer(PrimitiveType):
203
204 1
    def __init__(self):
205 1
        super(ByteBuffer, self).__init__()
206
207
208 1
class ComplexType(Type):
209
210 1
    __metaclass__ = ABCMeta
211
212 1
    def __init__(self):
213 1
        super(ComplexType, self).__init__()
214
215
216 1
class Enumeration(ComplexType):
217
218 1
    def __init__(self, name, enumerators=None, extends=None, flags=None):
219 1
        super(Enumeration, self).__init__()
220 1
        self.name = name
221 1
        self.enumerators = enumerators if enumerators else OrderedDict()
222 1
        self.extends = extends
223 1
        self.flags = flags if flags else []         # Unused
224
225
226 1
class Enumerator(object):
227
228 1
    def __init__(self, name, value=None):
229 1
        self.name = name
230 1
        self.value = value
231
232
233 1
class Struct(ComplexType):
234
235 1
    def __init__(self, name, fields=None, extends=None, flags=None):
236 1
        super(Struct, self).__init__()
237 1
        self.name = name
238 1
        self.fields = fields if fields else OrderedDict()
239 1
        self.extends = extends
240 1
        self.flags = flags if flags else []
241
242
243 1
class StructField(object):
244
245 1
    def __init__(self, name, field_type):
246 1
        self.name = name
247 1
        self.type = field_type
248
249
250 1
class Array(ComplexType):
251
252 1
    def __init__(self, name, element_type):
253 1
        super(Array, self).__init__()
254 1
        self.name = name            # None for implicit arrays.
255 1
        self.type = element_type
256
257
258 1
class Map(ComplexType):
259
260 1
    def __init__(self, name, key_type, value_type):
261 1
        super(Map, self).__init__()
262 1
        self.name = name
263 1
        self.key_type = key_type
264 1
        self.value_type = value_type
265
266
267 1
class Reference(Type):
268
269 1
    def __init__(self, name):
270 1
        super(Reference, self).__init__()
271 1
        self.name = name
272 1
        self.reference = None
273
274
275 1
class Interface(Namespace):
276
277 1
    def __init__(self, name, flags=None, members=None, extends=None):
278 1
        super(Interface, self).__init__(name=name, flags=flags, members=None)
279 1
        self.attributes = OrderedDict()
280 1
        self.methods = OrderedDict()
281 1
        self.broadcasts = OrderedDict()
282 1
        self.extends = extends
283 1
        if members:
284 1
            for member in members:
285 1
                self._add_member(member)
286
287 1
    def __contains__(self, item):
288 1
        res = super(Interface, self).__contains__(item) or \
289
              item in self.attributes or \
290
              item in self.methods or \
291
              item in self.broadcasts
292 1
        return res
293
294 1
    def _add_member(self, member):
295 1
        if isinstance(member, Type):
296 1
            if member.name in self:
297 1
                raise ASTException("Duplicate namespace member "
298
                                   "\"{}\".".format(member.name))
299 1
            if isinstance(member, Attribute):
300 1
                self.attributes[member.name] = member
301 1
            elif isinstance(member, Method):
302 1
                self.methods[member.name] = member
303 1
            elif isinstance(member, Broadcast):
304 1
                self.broadcasts[member.name] = member
305
            else:
306 1
                super(Interface, self)._add_member(member)
307 1
            member.namespace = self
308
        else:
309 1
            super(Interface, self)._add_member(member)
310
311
312 1
class Version(object):
313
314 1
    def __init__(self, major, minor):
315 1
        self.major = major
316 1
        self.minor = minor
317
318 1
    def __str__(self):
319 1
        return "{}.{}".format(self.major, self.minor)
320
321
322 1
class Attribute(Type):
323
324 1
    def __init__(self, name, attr_type, flags=None):
325 1
        super(Attribute, self).__init__(name)
326 1
        self.type = attr_type
327 1
        self.flags = flags if flags else []
328
329
330 1
class Method(Type):
331
332 1
    def __init__(self, name, flags=None,
333
                 in_args=None, out_args=None, errors=None):
334 1
        super(Method, self).__init__(name)
335 1
        self.flags = flags if flags else []
336 1
        self.in_args = in_args if in_args else OrderedDict()
337 1
        self.out_args = out_args if out_args else OrderedDict()
338
        # Errors can be an OrderedDict() or a Reference to an enumeration.
339 1
        self.errors = errors if errors else OrderedDict()
340
341
342 1
class Broadcast(Type):
343
344 1
    def __init__(self, name, flags=None, out_args=None):
345 1
        super(Broadcast, self).__init__(name)
346 1
        self.flags = flags if flags else []
347 1
        self.out_args = out_args if out_args else OrderedDict()
348
349
350 1
class Argument(object):
351
352 1
    def __init__(self, name, arg_type):
353 1
        self.name = name
354
        self.type = arg_type
355