# 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
#   GNU General Public License for more details.                          
#                                                                         
#   You should have received a copy of the GNU General Public License     
#   along with this program; if not, write to the                         
#   Free Software Foundation, Inc.,                                       
#   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             
#




class TrainTypesModel(QtCore.QAbstractTableModel):
    """Model for TrainType class used in the editor
    """
    def __init__(self, editor):
        """Constructor for the TrainTypesModel class"""
        super().__init__(editor)
        self._editor = editor
        
    def rowCount(self, parent=None, *args, **kwargs):
        """Returns the number of rows of the model, corresponding to the 
        number of rolling stock types."""
        return len(self._editor.trainTypes)
    
    def columnCount(self, parent=None, *args, **kwargs):
        """Returns the number of columns of the model"""
        return 8
    
    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/traintype.py
from Qt import QtCore, Qt
from ts2 import utils

#   GNU General Public License for more details.                          
#                                                                         
#   You should have received a copy of the GNU General Public License     
#   along with this program; if not, write to the                         
#   Free Software Foundation, Inc.,                                       
#   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             
#




class TrainTypesModel(QtCore.QAbstractTableModel):
    """Model for TrainType class used in the editor
    """
    def __init__(self, editor):
        """Constructor for the TrainTypesModel class"""
        super().__init__(editor)
        self._editor = editor
        
    def rowCount(self, parent=None, *args, **kwargs):
        """Returns the number of rows of the model, corresponding to the 
        number of rolling stock types."""
        return len(self._editor.trainTypes)
    
    def columnCount(self, parent=None, *args, **kwargs):
        """Returns the number of columns of the model"""
        return 8
    
    def data(self, index, role=Qt.DisplayRole):
        """Returns the data at the given index"""

        if role == Qt.DisplayRole or role == Qt.EditRole: