Exemple #1
0
    def __init__ (self, var, conditions = (), 
                  session = None, database = None, echo = False):
        """Instantiation of the object.

        Instantiation can be specified with an SQLAlchemy url or
        with an SQLAlchemy session.

        Parameters
        ----------
        
        var: {"list_authors" | "list_committers" |
           "list_uauthors" | "list_ucommitters"}
           Variable
        conditions: list of Condition objects
           Conditions to be applied to get the values
        session: sqlalchemy.orm.session.Session
           SQLAlchemy session
        database: string
           SQLAlchemy url of the database to work with (default: "")
        echo: boolean
           Write SQL queries to output stream
        """

        if session is not None:
            self.session = session
        elif database is not None:
            self.session = buildSession(
                database=database,
                echo=echo)
        else:
            raise Exception ("ActivityPersons: Either a session or a " + \
                                 "database must be specified")
        if var in ("list_authors", "list_uauthors"):
            persons = "authors"
        elif var in ("list_committers", "list_ucommitters"):
            persons = "committers"
        else:
            raise Exception ("ActivityPersons: Unknown variable %s." % var)
        self.query = self.session.query()
        if var in ("list_authors", "list_committers"):
            self.query = self.query.select_personsdata(persons)
        elif var in ("list_uauthors", "list_ucommitters"):
            self.query = self.query.select_personsdata_uid(persons)
        else:
            raise Exception ("ActivityPersons: Unknown variable %s." % var)
        self.query = self.query \
            .select_commitsperiod() \
            .group_by_person()
        for condition in conditions:
            self.query = condition.filter(self.query)
Exemple #2
0
    def __init__ (self, database, var, conditions = (), echo = False):
        """Instantiation of the object.

        - var (string): variable ("commits", "listcommits")
        - conditions (list of Condition hierarchy): conditions
        - echo: write SQL queries to output stream
        """

        self.session = buildSession(
            database=database,
            echo=echo)
        if var == "ncommits":
            self.query = self.session.query().select_nscmlog(["commits",])
        elif var == "listcommits":
            self.query = self.session.query().select_listcommits()
        elif var == "nauthors":
            self.query = self.session.query().select_nscmlog(["authors",])
        elif var == "listauthors":
            self.query = self.session.query().select_listauthors()
        for condition in conditions:
            self.query = condition.filter(self.query)
Exemple #3
0
from django.http import HttpResponse
from django.shortcuts import render
from scm_query import buildSession
from datetime import datetime
import json
from django.shortcuts import redirect

db_local='mysql://*****:*****@localhost/prodb'
db_remote='mysql://*****:*****@db4free.net/vizgrimoire'

session = buildSession(database=db_local, echo=False)

def home(request):

    return redirect ('/static/index.html')

def users(request):
	html = "This should be home view.. I think this is not the way to do it in a SPA"
	return HttpResponse(html)

def ncommits(request):

    # Number of commits
    res = session.query().select_nscmlog(["commits",])
    ncommits = json.dumps({'ncommits': res.scalar()})
    return HttpResponse(ncommits)

def timeseries(request):

    res = session.query().select_nscmlog(["commits",]) \
    .group_by_period() \
    def setUp (self):

        self.database = database
        self.session = buildSession(database=self.database, echo=False)
        self.start = datetime(2013,11,13)
        self.end = datetime(2014,2,1)
    def test_get_session (self):

        session = buildSession(database=self.database,
                               id_database = self.database_id,
                               echo=False)
Exemple #6
0
    activity = data.activity()
    print activity

    #---------------------------------
    print_banner("Age (days since first activity) for each author.")
    age = activity.age(datetime(2012,1,1))
    print age.json()
    #---------------------------------
    print_banner("Idle (days since last activity) for each author.")
    idle = activity.idle(datetime(2012,1,1))
    print idle.json()

    #---------------------------------
    print_banner("List of activity for each committer (no merges, uid)")
    session = buildSession(
        database = 'mysql://*****:*****@localhost/vizgrimoire_cvsanaly',
        echo = False)
    data = ActivityPersons (var = "list_ucommitters",
                            conditions = (nomerges,),
                            session = session)
    print data.activity()
    print data.activity() \
        .active(after = datetime(2014,1,1) - timedelta(days=183))
    print data.activity() \
        .active(after = datetime(2014,1,1) - timedelta(days=183)) \
        .age(datetime(2014,1,1)).json()

    #---------------------------------
    print_banner("Age, using variables")
    age = DurationPersons (var = "age",
                           activity = data.activity())