Correction de manquements dans le commit précédent

This commit is contained in:
Mattéo Delabre 2019-11-26 00:47:24 -05:00
parent adba50d786
commit 94af43e4a1
Signed by: matteo
GPG Key ID: AE3FBD02DC583ABB
3 changed files with 7435 additions and 91 deletions

View File

@ -1,91 +0,0 @@
import calendar
import collections
from datetime import datetime
from fetch import wikipedia_pageviews, mediawiki_api
import logging
import matplotlib
from matplotlib import pyplot
import sys
# Objet pour afficher le journal dexécution
logger = logging.getLogger('pageviews')
logging.basicConfig(level=logging.INFO)
if len(sys.argv) < 4:
print("""Utilisation: {} [project] [output] [article]...
Représente sur un graphe les statistiques moyenne de vue de pages wiki.
Paramètres:
project Projet Wikipédia ciblé (par exemple fr.wikipedia.org).
output Nom du fichier de sortie sera sauvé le graphe, ou '-' pour
afficher le résultat à lécran.
article Nom(s) darticle(s) Wikipédia ciblé(s).
Au moins un article doit être donné. Le nombre de visites est lissé avec un
noyau gaussien décart-type 10 jours. Les redirections darticle sont suivies
et toute visite sur une page de redirection pointant vers larticle est
dénombrée comme une visite sur la page canonique.
""".format(sys.argv[0]), end='', file=sys.stderr)
sys.exit(1)
project = sys.argv[1]
output = sys.argv[2]
articles = sys.argv[3:]
site = mediawiki_api.instanciate(project)
output_to_file = output != '-'
if output_to_file:
matplotlib.use('pgf')
matplotlib.rcParams.update({
'pgf.texsystem': 'xelatex',
'font.family': 'serif',
'text.usetex': True,
'pgf.rcfonts': False,
})
fig = pyplot.figure(figsize=(4.7, 3.3))
ax = fig.add_subplot(111)
ax.set_xlabel('Jours de lannée')
ax.set_xticks([
datetime(1, month, 1).toordinal()
for month in range(1, 13)
])
ax.set_xticklabels(calendar.month_abbr[1:13])
for article in articles:
canonical = mediawiki_api.article_canonical(site, article)
if article != canonical:
logger.info(
'Suivi de la redirection de « {} » en « {} »'
.format(article, canonical)
)
del article
redirects = mediawiki_api.article_redirects(site, canonical)
mean_views = wikipedia_pageviews.mean(sum(
(wikipedia_pageviews.get(project, page)
for page in redirects + [canonical]),
start=collections.Counter()
))
ax.plot(
wikipedia_pageviews.smooth(mean_views, 10),
label=canonical
)
ax.set_ylabel('Vues par jour')
fig.legend(framealpha=1)
fig.autofmt_xdate()
fig.tight_layout()
if output_to_file:
pyplot.savefig(output)
else:
pyplot.show()

7419
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

16
package.json Normal file
View File

@ -0,0 +1,16 @@
{
"name": "wikimedica-disease-search",
"version": "0.1.0",
"private": true,
"main": "index.js",
"devDependencies": {
"@babel/core": "^7.7.2",
"@babel/preset-env": "^7.7.1",
"@babel/preset-react": "^7.7.0",
"parcel-bundler": "^1.12.4"
},
"dependencies": {
"react": "^16.12.0",
"react-dom": "^16.12.0"
}
}