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 = {}