コード例 #1
0
ファイル: IRC.py プロジェクト: pombredanne/VizGrimoireR
def GetSendersIRC (period, startdate, enddate, identities_db, type_analysis, evolutionary):    
    fields = " count(distinct(nick)) as senders "
    tables = " irclog " + GetSQLReportFrom(identities_db, type_analysis)
    filters = GetSQLReportWhere(type_analysis, "author")
    filters += " and type='COMMENT' "
    q = BuildQuery(period, startdate, enddate, " date ", fields, tables, filters, evolutionary)    
    return(ExecuteQuery(q))
コード例 #2
0
def GetChangers(period, startdate, enddate, identities_db, type_analysis,
                evolutionary):
    #This function returns the evolution or agg number of changed issues
    #This function can be also reproduced using the Backlog function.
    #However this function is less time expensive.
    fields = " count(distinct(pup.upeople_id)) as changers "
    tables = " issues i, changes ch " + GetITSSQLReportFrom(
        identities_db, type_analysis)

    filters = " i.id = ch.issue_id "
    filters_ext = GetITSSQLReportWhere(type_analysis)
    if (filters_ext != ""):
        filters += " and " + filters_ext

    #unique identities filters
    if (type_analysis is None or len(type_analysis) != 2):
        #Specific case for the basic option where people_upeople table is needed
        #and not taken into account in the initial part of the query
        tables += ", people_upeople pup"
        filters += " and i.submitted_by = pup.people_id"

    elif (type_analysis[0] == "repository"):
        #Adding people_upeople table
        tables += ", people_upeople pup"
        filters += " and i.submitted_by = pup.people_id "

    #Action needed to replace issues filters by changes one
    filters = filters.replace("i.submitted", "ch.changed")

    q = BuildQuery(period, startdate, enddate, " ch.changed_on ", fields,
                   tables, filters, evolutionary)

    data = ExecuteQuery(q)
    return (data)
コード例 #3
0
def GetIPs(period, startdate, enddate, evolutionary):
    # Generic function to obtain number of IPs
    fields = "count(distinct(ip)) as ips"
    tables = "downloads"
    filters = ""

    query = BuildQuery(period, startdate, enddate, " date ", fields, tables,
                       filters, evolutionary)
    return (ExecuteQuery(query))
コード例 #4
0
def GetAuthorsMediaWiki(period, startdate, enddate, identities_db,
                        type_analysis, evolutionary):
    fields = " count(distinct(user)) as authors "
    tables = " wiki_pages_revs " + GetSQLReportFrom(identities_db,
                                                    type_analysis)
    filters = GetSQLReportWhere(type_analysis, "author")
    q = BuildQuery(period, startdate, enddate, " date ", fields, tables,
                   filters, evolutionary)
    return (ExecuteQuery(q))
コード例 #5
0
def GetIssuesRepositories(period, startdate, enddate, identities_db,
                          type_analysis, evolutionary):
    # Generic function that counts repositories

    fields = " COUNT(DISTINCT(tracker_id)) AS trackers  "
    tables = " issues i " + GetITSSQLReportFrom(identities_db, type_analysis)
    filters = GetITSSQLReportWhere(type_analysis)

    q = BuildQuery(period, startdate, enddate, " i.submitted_on ", fields,
                   tables, filters, evolutionary)
    return (ExecuteQuery(q))
コード例 #6
0
ファイル: MLS.py プロジェクト: pombredanne/VizGrimoireR
def GetThreads(period, startdate, enddate, identities_db, type_analysis,
               evolutionary):
    # Generic function that counts threads

    fields = " count(distinct(m.is_response_of)) as threads"
    tables = " messages m " + GetMLSSQLReportFrom(identities_db, type_analysis)
    filters = GetMLSSQLReportWhere(type_analysis)

    q = BuildQuery(period, startdate, enddate, " m.first_date ", fields,
                   tables, filters, evolutionary)
    return (ExecuteQuery(q))
コード例 #7
0
ファイル: MLS.py プロジェクト: pombredanne/VizGrimoireR
def GetMLSRepositories(rfield, period, startdate, enddate, identities_db,
                       type_analysis, evolutionary):
    # Generic function that counts threads

    fields = " COUNT(DISTINCT(" + rfield + ")) AS repositories  "
    tables = " messages m " + GetMLSSQLReportFrom(identities_db, type_analysis)
    filters = GetMLSSQLReportWhere(type_analysis)

    q = BuildQuery(period, startdate, enddate, " m.first_date ", fields,
                   tables, filters, evolutionary)
    return (ExecuteQuery(q))
コード例 #8
0
ファイル: MLS.py プロジェクト: pombredanne/VizGrimoireR
def GetMLSInit(period, startdate, enddate, identities_db, type_analysis,
               evolutionary):
    # Generic function that counts replies

    fields = " count(distinct(m.message_ID)) as sent_init"
    tables = " messages m " + GetMLSSQLReportFrom(identities_db, type_analysis)
    filters = GetMLSSQLReportWhere(
        type_analysis) + " m.is_response_of is null "

    q = BuildQuery(period, startdate, enddate, " m.first_date ", fields,
                   tables, filters, evolutionary)
    return (ExecuteQuery(q))
コード例 #9
0
def GetOpened(period, startdate, enddate, identities_db, type_analysis,
              evolutionary):
    #This function returns the evolution or agg number of opened issues
    #This function can be also reproduced using the Backlog function.
    #However this function is less time expensive.
    fields = " count(distinct(i.id)) as opened "
    tables = " issues i " + GetITSSQLReportFrom(identities_db, type_analysis)
    filters = GetITSSQLReportWhere(type_analysis)
    q = BuildQuery(period, startdate, enddate, " submitted_on ", fields,
                   tables, filters, evolutionary)

    data = ExecuteQuery(q)
    return (data)
コード例 #10
0
def GetDate(startdate, enddate, identities_db, type_analysis, type):
    # date of submmitted issues (type= max or min)
    if (type == "max"):
        fields = " DATE_FORMAT (max(submitted_on), '%Y-%m-%d') as last_date"
    else:
        fields = " DATE_FORMAT (min(submitted_on), '%Y-%m-%d') as first_date"

    tables = " issues i " + GetITSSQLReportFrom(identities_db, type_analysis)
    filters = GetITSSQLReportWhere(type_analysis)

    q = BuildQuery(None, startdate, enddate, " i.submitted_on ", fields,
                   tables, filters, False)
    data = ExecuteQuery(q)
    return (data)
コード例 #11
0
def GetIssuesStudies(period, startdate, enddate, identities_db, type_analysis,
                     evolutionary, study):
    # Generic function that counts evolution/agg number of specific studies with similar
    # database schema such as domains, companies and countries
    fields = ' count(distinct(name)) as ' + study
    tables = " issues i " + GetITSSQLReportFrom(identities_db, type_analysis)
    filters = GetITSSQLReportWhere(type_analysis)

    #Filtering last part of the query, not used in this case
    #filters = gsub("and\n( )+(d|c|cou|com).name =.*$", "", filters)

    q = BuildQuery(period, startdate, enddate, " i.submitted_on ", fields,
                   tables, filters, evolutionary)
    q = re.sub(r'and (d|c|cou|com).name.*=', "", q)
    data = ExecuteQuery(q)
    return (data)
コード例 #12
0
ファイル: MLS.py プロジェクト: pombredanne/VizGrimoireR
def GetEmailsSent(period, startdate, enddate, identities_db, type_analysis,
                  evolutionary):
    # Generic function that counts emails sent

    if (evolutionary):
        fields = " count(distinct(m.message_ID)) as sent "
    else:
        fields = " count(distinct(m.message_ID)) as sent, "+\
                  " DATE_FORMAT (min(m.first_date), '%Y-%m-%d') as first_date, "+\
                  " DATE_FORMAT (max(m.first_date), '%Y-%m-%d') as last_date "

    tables = " messages m " + GetMLSSQLReportFrom(identities_db, type_analysis)
    filters = GetMLSSQLReportWhere(type_analysis)

    q = BuildQuery(period, startdate, enddate, " m.first_date ", fields,
                   tables, filters, evolutionary)
    return (ExecuteQuery(q))
コード例 #13
0
ファイル: MLS.py プロジェクト: pombredanne/VizGrimoireR
def GetMLSStudies(period, startdate, enddate, identities_db, type_analysis,
                  evolutionary, study):
    # Generic function that counts evolution/agg number of specific studies with similar
    # database schema such as domains, companies and countries

    fields = ' count(distinct(name)) as ' + study
    tables = " messages m " + GetMLSSQLReportFrom(identities_db, type_analysis)
    filters = GetMLSSQLReportWhere(
        type_analysis) + " and m.is_response_of is null "

    #Filtering last part of the query, not used in this case
    #filters = gsub("and\n( )+(d|c|cou|com).name =.*$", "", filters)

    q = BuildQuery(period, startdate, enddate, " m.first_date ", fields,
                   tables, filters, evolutionary)
    q = re.sub(r'(d|c|cou|com).name.*and', "", q)

    data = ExecuteQuery(q)
    return (data)
コード例 #14
0
def GetClosed(period, startdate, enddate, identities_db, type_analysis,
              evolutionary, closed_condition):
    #This function returns the evolution or agg number of closed issues
    #This function can be also reproduced using the Backlog function.
    #However this function is less time expensive.
    fields = " count(distinct(i.id)) as closed "
    tables = " issues i, changes ch " + GetITSSQLReportFrom(
        identities_db, type_analysis)

    filters = " i.id = ch.issue_id and " + closed_condition
    filters_ext = GetITSSQLReportWhere(type_analysis)
    if (filters_ext != ""):
        filters += " and " + filters_ext
    #Action needed to replace issues filters by changes one
    filters = filters.replace("i.submitted", "ch.changed")

    q = BuildQuery(period, startdate, enddate, " ch.changed_on ", fields,
                   tables, filters, evolutionary)
    data = ExecuteQuery(q)
    return (data)
コード例 #15
0
def GetOpeners(period, startdate, enddate, identities_db, type_analysis,
               evolutionary, closed_condition):
    #This function returns the evolution or agg number of people opening issues
    fields = " count(distinct(pup.upeople_id)) as openers "
    tables = " issues i " + GetITSSQLReportFrom(identities_db, type_analysis)
    filters = GetITSSQLReportWhere(type_analysis)

    if (type_analysis is None or len(type_analysis) != 2):
        #Specific case for the basic option where people_upeople table is needed
        #and not taken into account in the initial part of the query
        tables += ", people_upeople pup"
        filters += " and i.submitted_by = pup.people_id"
    elif (type_analysis[0] == "repository"):
        #Adding people_upeople table
        tables += ", people_upeople pup"
        filters += " and i.submitted_by = pup.people_id "

    q = BuildQuery(period, startdate, enddate, " submitted_on ", fields,
                   tables, filters, evolutionary)

    data = ExecuteQuery(q)
    return (data)
コード例 #16
0
ファイル: MLS.py プロジェクト: pombredanne/VizGrimoireR
def GetMLSSendersInit(period, startdate, enddate, identities_db, type_analysis,
                      evolutionary):
    #Generic function that counts people sending messages

    fields = " count(distinct(pup.upeople_id)) as senders_init "
    tables = " messages m " + GetMLSSQLReportFrom(identities_db, type_analysis)
    if (tables == " messages m "):
        # basic case: it's needed to add unique ids filters
        tables += ", messages_people mp, people_upeople pup "
        filters = GetMLSFiltersOwnUniqueIdsMLS()
    else:
        filters = GetMLSSQLReportWhere(type_analysis)

    if (type_analysis and type_analysis[0] == "repository"):
        #Adding people_upeople table
        tables += ",  messages_people mp, people_upeople pup "
        filters += " and m.message_ID = mp.message_id and "+\
                   " mp.email_address = pup.people_id and "+\
                   " mp.type_of_recipient=\'From\' "
    filters += " and m.is_response_of is null "

    q = BuildQuery(period, startdate, enddate, " m.first_date ", fields,
                   tables, filters, evolutionary)
    return (ExecuteQuery(q))
コード例 #17
0
ファイル: IRC.py プロジェクト: pombredanne/VizGrimoireR
def GetRepositoriesIRC (period, startdate, enddate, identities_db, type_analysis, evolutionary):
    fields = " COUNT(DISTINCT(channel_id)) AS repositories "
    tables = " irclog " + GetSQLReportFrom(identities_db, type_analysis)
    filters = GetSQLReportWhere(type_analysis, "author")
    q = BuildQuery(period, startdate, enddate, " date ", fields, tables, filters, evolutionary)
    return(ExecuteQuery(q))