Récupération des packages R sur GitHub

Sur base des événements collectés pour la période 2013-2014 sur GitHubArchive, un certain nombre de dépôts étiquettés "language = R" ont été identifiés. Ces dépôts ont été clonés et stockés localement. Nous allons parcourir l'ensemble de ces dépôts, récupérer (s'ils existent) la position des fichiers DESCRIPTION et README.ext présents dans le cas de packages R. Comme indicateur de "package R", nous utilisons la présence du fichier DESCRIPTION dans l'arborescence.


In [8]:
import pandas
import os

In [9]:
GITHUB_DIR = '/data/github/'

In [10]:
def scan_repository(path):
    """
    Given a path to a (local) repository, return a list of `README...` and `DESCRIPTION` paths.
    """
    readme = []
    description = []
    
    for dirpath, dirnames, filenames in os.walk(path):
        # Remove hidden subdirectories
        for i, directory in enumerate(dirnames[:]): # [:] to copy dirnames!
            if directory.startswith('.'):
                del dirnames[i]
        # List files, grep the ones that interests us
        for filename in filenames:
            if filename.startswith('README'):
                readme.append(os.path.join(dirpath, filename))
            elif filename == 'DESCRIPTION':
                description.append(os.path.join(dirpath, filename))
    return {'README': readme, 'DESCRIPTION': description}

Nous allons stocker dans packages les résultats de notre recherche. Les clés de ce dictionnaire sont des couples (owner, repository) et la valeur associée est un dictionnaire avec deux clés, README et DESCRIPTION, tout deux des listes de chemin (relatif au dépôt) où se situent un ou plusieurs fichiers README et DESCRIPTION.


In [ ]:
packages = {}