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.
Passed
Push — master ( dbdfc9...f5fa38 )
by P.R.
03:36
created

LoadScheduleClient   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 95
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 95
ccs 0
cts 33
cp 0
rs 10
wmc 9

4 Methods

Rating   Name   Duplication   Size   Complexity  
A _zmq_init() 0 9 1
B main() 0 22 4
B _load_schedule() 0 26 3
B __init__() 0 26 1
1
"""
2
Enarksh
3
4
Copyright 2013-2016 Set Based IT Consultancy
5
6
Licence MIT
7
"""
8
import os
9
import sys
10
import traceback
11
12
import zmq
13
14
import enarksh
15
from enarksh.controller.message.ScheduleDefinitionMessage import ScheduleDefinitionMessage
16
17
18
class LoadScheduleClient:
19
    """
20
    A client for requesting the controller to load new schedules.
21
    """
22
23
    # ------------------------------------------------------------------------------------------------------------------
24
    def __init__(self, io):
25
        """
26
        Object constructor.
27
28
        :param enarksh.style.EnarkshStyle.EnarkshStyle io: The output decorator.
29
        """
30
        self._zmq_context = None
31
        """
32
        The ZMQ context.
33
34
        :type: Context
35
        """
36
37
        self._zmq_controller = None
38
        """
39
        The socket for communicating with the controller.
40
41
        :type: zmq.sugar.socket.Socket
42
        """
43
44
        self._io = io
45
        """
46
        The output decorator.
47
48
        :type: enarksh.style.EnarkshStyle.EnarkshStyle
49
        """
50
51
    # ------------------------------------------------------------------------------------------------------------------
52
    def main(self, filenames):
53
        """
54
        The main function of load_schedule.
55
56
        :param list[str] filenames: The filenames of the schedules to be loaded.
57
        """
58
        # Initialize ZMQ.
59
        self._zmq_init()
60
61
        # Send XML files to the controller.
62
        status = 0
63
        for filename in filenames:
64
            try:
65
                err = self._load_schedule(filename)
66
                if err:
67
                    status = -1
68
            except Exception as exception:
69
                print(exception, file=sys.stderr)
70
                traceback.print_exc(file=sys.stderr)
71
                status = -1
72
73
        return status
74
75
    # ------------------------------------------------------------------------------------------------------------------
76
    def _zmq_init(self):
77
        """
78
        Initializes ZMQ.
79
        """
80
        self._zmq_context = zmq.Context()
81
82
        # Create socket for communicating with the controller.
83
        self._zmq_controller = self._zmq_context.socket(zmq.REQ)
84
        self._zmq_controller.connect(enarksh.CONTROLLER_LOCKSTEP_END_POINT)
85
86
    # ------------------------------------------------------------------------------------------------------------------
87
    def _load_schedule(self, filename):
88
        """
89
        Sends a message to the controller to load a new schedule definition.
90
91
        :param str filename: The name of XML file with the schedule definition.
92
93
        :rtype bool: True on success. Otherwise False.
94
        """
95
        with open(filename, 'rt', encoding='utf-8') as f:
0 ignored issues
show
Coding Style Naming introduced by
The name f does not conform to the variable naming conventions ([a-z_][a-z0-9_]{1,60}$).

This check looks for invalid names for a range of different identifiers.

You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements.

If your project includes a Pylint configuration file, the settings contained in that file take precedence.

To find out more about Pylint, please refer to their site.

Loading history...
96
            xml = f.read()
97
98
        # Compose the message for the controller.
99
        message = ScheduleDefinitionMessage(xml, os.path.realpath(filename))
100
101
        # Send the message to the controller.
102
        self._zmq_controller.send_pyobj(message)
103
104
        # Await the response from the controller.
105
        response = self._zmq_controller.recv_json()
106
107
        if response['ret'] == 0:
108
            self._io.log_verbose(response['message'])
109
        else:
110
            self._io.error(response['message'])
111
112
        return response['ret'] == 0
113
114
# ----------------------------------------------------------------------------------------------------------------------
115