# Path: Qt.py

# 
# Path: ts2/utils.py
# class Context:
# class FormatException(Exception):
# class MissingDependencyException(Exception):
# class DurationProba(QtCore.QObject):
#     GAME = 10
#     EDITORS = [20, 21, 22, 23, 24, 25]
#     EDITOR_GENERAL = 20
#     EDITOR_SCENERY = 21
#     EDITOR_ROUTES = 22
#     EDITOR_TRAINTYPES = 23
#     EDITOR_SERVICES = 24
#     EDITOR_TRAINS = 25
#     def __init__(self, arg):
#     def __init__(self, arg):
# def cumsum(lis):
#     def __init__(self, data):
#     def __str__(self):
#     def list(self):
#     def isNull(self):
#     def yieldValue(self):
# def to_json(data):
# def from_json(json_str):


from Qt import QtCore, Qt
from ts2 import utils
    """Model for displaying services during the game. This model makes a
    copy of the services of the simulation at the time it is created.
    """
    def __init__(self, simulation):
        """Constructor for the ServiceInfoModel class"""
        super().__init__()
        self.simulation = simulation
        self._services = []
        self.updateModel()

    def updateModel(self):
        """Updates the internal copy of the services with the simulation
        services."""
        self._services = sorted(
            self.simulation.services.values(),
            key=lambda x: x.lines and x.lines[0].scheduledDepartureTimeStr
                          or x.serviceCode
        )

    def rowCount(self, parent=None, *args, **kwargs):
        """Returns the number of rows of the model, corresponding to the
        number of services in the simulation."""
        return len(self._services)

    def columnCount(self, parent=None, *args, **kwargs):
        """Returns the number of columns of the model"""
        return 5

    def data(self, index, role=Qt.DisplayRole):
        """Returns the data at the given index"""

# Path: Qt.py

# 
# Path: ts2/utils.py
# class Context:
# class FormatException(Exception):
# class MissingDependencyException(Exception):
# class DurationProba(QtCore.QObject):
#     GAME = 10
#     EDITORS = [20, 21, 22, 23, 24, 25]
#     EDITOR_GENERAL = 20
#     EDITOR_SCENERY = 21
#     EDITOR_ROUTES = 22
#     EDITOR_TRAINTYPES = 23
#     EDITOR_SERVICES = 24
#     EDITOR_TRAINS = 25
#     def __init__(self, arg):
#     def __init__(self, arg):
# def cumsum(lis):
#     def __init__(self, data):
#     def __str__(self):
#     def list(self):
#     def isNull(self):
#     def yieldValue(self):
# def to_json(data):
# def from_json(json_str):


# Path: ts2/trains/service.py
from Qt import QtCore, Qt
from ts2 import utils

    """Model for displaying services during the game. This model makes a
    copy of the services of the simulation at the time it is created.
    """
    def __init__(self, simulation):
        """Constructor for the ServiceInfoModel class"""
        super().__init__()
        self.simulation = simulation
        self._services = []
        self.updateModel()

    def updateModel(self):
        """Updates the internal copy of the services with the simulation
        services."""
        self._services = sorted(
            self.simulation.services.values(),
            key=lambda x: x.lines and x.lines[0].scheduledDepartureTimeStr
                          or x.serviceCode
        )

    def rowCount(self, parent=None, *args, **kwargs):
        """Returns the number of rows of the model, corresponding to the
        number of services in the simulation."""
        return len(self._services)

    def columnCount(self, parent=None, *args, **kwargs):
        """Returns the number of columns of the model"""
        return 5

    def data(self, index, role=Qt.DisplayRole):
        """Returns the data at the given index"""

        if role == Qt.DisplayRole: