This splits the JSON information found at self.events into the
        several events. For this there are three different levels of time
        consuming actions: 1-soft, 2-medium and 3-hard.

        Level 1 provides events about commits
        Level 2 provides events about files
        Level 3 provides other events (not used so far)

        :param granularity: Levels of time consuming actions to calculate events
        :type granularity: integer

        :returns: Pandas dataframe with splitted events.
        :rtype: pandas.DataFrame

def eventize(self, granularity):
        """ This splits the JSON information found at self.events into the
        several events. For this there are three different levels of time
        consuming actions: 1-soft, 2-medium and 3-hard.

        Level 1 provides events about commits
        Level 2 provides events about files
        Level 3 provides other events (not used so far)

        :param granularity: Levels of time consuming actions to calculate events
        :type granularity: integer

        :returns: Pandas dataframe with splitted events.
        :rtype: pandas.DataFrame
        """

        changeset = {}
        # First level granularity
        changeset[Gerrit.CHANGESET_ID] = []
        changeset[Gerrit.CHANGESET_EVENT] = []
        changeset[Gerrit.CHANGESET_DATE] = []
        changeset[Gerrit.CHANGESET_OWNER] = []
        changeset[Gerrit.CHANGESET_EMAIL] = []
        changeset[Gerrit.CHANGESET_VALUE] = []
        changeset[Gerrit.CHANGESET_REPO] = []

        events = pandas.DataFrame()

        for item in self.items:
            changeset_data = item["data"]
            if granularity >= 1:
                # Changeset submission date: filling a new event
                changeset[Gerrit.CHANGESET_ID].append(changeset_data["number"])
                changeset[Gerrit.CHANGESET_EVENT].append(Gerrit.EVENT_OPEN)
                changeset[Gerrit.CHANGESET_DATE].append(dt.fromtimestamp(int(changeset_data["createdOn"])))
                changeset[Gerrit.CHANGESET_REPO].append(changeset_data["project"])
                value = email = "notknown"
                if "name" in changeset_data["owner"].keys():
                    value = changeset_data["owner"]["name"]
                elif "username" in changeset_data["owner"].keys():
                    value = changeset_data["owner"]["username"]
                elif "email" in changeset_data["owner"].keys():
                    value = changeset_data["owner"]["email"]
                    email = changeset_data["owner"]["email"]
                changeset[Gerrit.CHANGESET_OWNER].append(value)
                changeset[Gerrit.CHANGESET_EMAIL].append(email)
                changeset[Gerrit.CHANGESET_VALUE].append(-10)

                # Adding the closing status updates (if there was any)
                if changeset_data["status"] == 'ABANDONED' or \
                   changeset_data["status"] == 'MERGED':
                    closing_date = dt.fromtimestamp(int(changeset_data["lastUpdated"]))
                    changeset[Gerrit.CHANGESET_ID].append(changeset_data["number"])
                    changeset[Gerrit.CHANGESET_EVENT].append(Gerrit.EVENT_ +
                                                             changeset_data["status"])
                    changeset[Gerrit.CHANGESET_DATE].append(closing_date)
                    changeset[Gerrit.CHANGESET_REPO].append(changeset_data["project"])
                    value = email = "notknown"
                    if "name" in changeset_data["owner"].keys():
                        value = changeset_data["owner"]["name"]
                    if "username" in changeset_data["owner"].keys():
                        value = changeset_data["owner"]["username"]
                    if "email" in changeset_data["owner"].keys():
                        value = changeset_data["owner"]["email"]
                        email = changeset_data["owner"]["email"]
                    changeset[Gerrit.CHANGESET_OWNER].append(value)
                    changeset[Gerrit.CHANGESET_EMAIL].append(email)
                    changeset[Gerrit.CHANGESET_VALUE].append(-10)

            if granularity >= 2:
                # Adding extra info about the patchsets
                for patchset in changeset_data["patchSets"]:
                    changeset[Gerrit.CHANGESET_ID].append(changeset_data["number"])
                    changeset[Gerrit.CHANGESET_EVENT].append(Gerrit.EVENT_ + "PATCHSET_SENT")
                    changeset[Gerrit.CHANGESET_DATE].append(
                        dt.fromtimestamp(int(patchset["createdOn"])))
                    changeset[Gerrit.CHANGESET_REPO].append(changeset_data["project"])
                    try:
                        email = "patchset_noname"
                        if "name" in patchset["author"].keys():
                            value = patchset["author"]["name"]
                        if "username" in patchset["author"].keys():
                            value = patchset["author"]["username"]
                        if "email" in patchset["author"].keys():
                            value = patchset["author"]["email"]
                            email = patchset["author"]["email"]
                    except KeyError:
                        value = "patchset_noname"
                    changeset[Gerrit.CHANGESET_OWNER].append(value)
                    changeset[Gerrit.CHANGESET_EMAIL].append(email)
                    changeset[Gerrit.CHANGESET_VALUE].append(-10)
                    # print (patchset)
                    if "approvals" in patchset.keys():
                        for approval in patchset["approvals"]:
                            if approval["type"] != "Code-Review":
                                continue
                            changeset[Gerrit.CHANGESET_ID].append(changeset_data["number"])
                            changeset[Gerrit.CHANGESET_EVENT].append(
                                Gerrit.EVENT_ +
                                "PATCHSET_APPROVAL_" + approval["type"])
                            changeset[Gerrit.CHANGESET_DATE].append(
                                dt.fromtimestamp(int(approval["grantedOn"])))
                            changeset[Gerrit.CHANGESET_REPO].append(changeset_data["project"])
                            email = "approval_noname"
                            if "name" in approval["by"].keys():
                                value = approval["by"]["name"]
                            elif "username" in approval["by"].keys():
                                value = approval["by"]["username"]
                            elif "email" in approval["by"].keys():
                                value = approval["by"]["email"]
                                email = approval["by"]["email"]
                            changeset[Gerrit.CHANGESET_OWNER].append(value)
                            changeset[Gerrit.CHANGESET_EMAIL].append(email)
                            changeset[Gerrit.CHANGESET_VALUE].append(int(approval["value"]))

            if granularity >= 3:
                # TDB
                pass

        # Done in this way to have an order (and not a direct cast)
        events[Gerrit.CHANGESET_ID] = changeset[Gerrit.CHANGESET_ID]
        events[Gerrit.CHANGESET_EVENT] = changeset[Gerrit.CHANGESET_EVENT]
        events[Gerrit.CHANGESET_DATE] = changeset[Gerrit.CHANGESET_DATE]
        events[Gerrit.CHANGESET_OWNER] = changeset[Gerrit.CHANGESET_OWNER]
        events[Gerrit.CHANGESET_EMAIL] = changeset[Gerrit.CHANGESET_EMAIL]
        events[Gerrit.CHANGESET_VALUE] = changeset[Gerrit.CHANGESET_VALUE]
        events[Gerrit.CHANGESET_REPO] = changeset[Gerrit.CHANGESET_REPO]

        return events