Skip to content

Commit e7f09f1

Browse files
committed
contribution stats
1 parent 5a889a5 commit e7f09f1

1 file changed

Lines changed: 194 additions & 0 deletions

File tree

‎scripts/stats.ipynb‎

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": null,
6+
"metadata": {},
7+
"outputs": [],
8+
"source": [
9+
"!hugo list all > stats.csv"
10+
]
11+
},
12+
{
13+
"cell_type": "code",
14+
"execution_count": 1,
15+
"metadata": {},
16+
"outputs": [],
17+
"source": [
18+
"import pandas as pd"
19+
]
20+
},
21+
{
22+
"cell_type": "code",
23+
"execution_count": 2,
24+
"metadata": {},
25+
"outputs": [],
26+
"source": [
27+
"df = pd.read_csv('stats.csv')"
28+
]
29+
},
30+
{
31+
"cell_type": "code",
32+
"execution_count": 21,
33+
"metadata": {},
34+
"outputs": [],
35+
"source": [
36+
"#import frontmatter\n",
37+
"#import io\n",
38+
"import yaml\n",
39+
"\n",
40+
"from collections import defaultdict\n",
41+
"\n",
42+
"authors = defaultdict(list)\n",
43+
"\n",
44+
"for _, row in df.iterrows():\n",
45+
" #print(row.path, row.title, row.draft)\n",
46+
" with open(row.path, 'r') as f:\n",
47+
" try:\n",
48+
" for doc in yaml.safe_load_all(f):\n",
49+
" #print(doc)\n",
50+
" if 'authors' in doc:\n",
51+
" for author in doc['authors']:\n",
52+
" authors[author].append((row.path, row.title, row.draft))\n",
53+
" except:\n",
54+
" pass"
55+
]
56+
},
57+
{
58+
"cell_type": "code",
59+
"execution_count": 25,
60+
"metadata": {},
61+
"outputs": [
62+
{
63+
"name": "stdout",
64+
"output_type": "stream",
65+
"text": [
66+
"Сергей Слотин:\n",
67+
"content/russian/cs/programming/cpp.md\n",
68+
"Ликбез по C++\n",
69+
"content/russian/cs/arithmetic/floating-point.md\n",
70+
"Вещественные числа\n",
71+
"content/russian/cs/general-dynamic/sequences.md\n",
72+
"Динамика по подпоследовательностям\n",
73+
"content/russian/cs/basic-structures/stack.md\n",
74+
"Стек\n",
75+
"content/russian/cs/sorting/lower-bound.md\n",
76+
"Необходимое число сравнений для сортировки\n",
77+
"content/russian/cs/interactive/convex-functions.md\n",
78+
"Выпуклые функции\n",
79+
"Максим Иванов:\n",
80+
"content/russian/cs/interactive/ternary-search.md\n",
81+
"Тернарный поиск\n",
82+
"content/russian/cs/general-dynamic/sequences.md\n",
83+
"Динамика по подпоследовательностям\n",
84+
"content/russian/cs/combinatorial-objects/bracket-sequences.md\n",
85+
"Правильные скобочные последовательности\n",
86+
"content/russian/cs/shortest-paths/ford-bellman.md\n",
87+
"Алгоритм Форда-Беллмана\n",
88+
"content/russian/cs/arithmetic/big-integer.md\n",
89+
"Длинная арифметика\n",
90+
"content/russian/cs/factorization/primality-testing.md\n",
91+
"Тестирование на простоту\n",
92+
"content/russian/cs/shortest-paths/negative-cycle.md\n",
93+
"Нахождение отрицательного цикла\n",
94+
"content/russian/cs/games/sprague-grundy.md\n",
95+
"Теория Шпрага-Гранди\n",
96+
"content/russian/cs/combinatorial-objects/prufer.md\n",
97+
"Код Прюфера\n",
98+
"content/russian/cs/trees/tarjan.md\n",
99+
"Алгоритм Тарьяна\n",
100+
"content/russian/cs/flows/dinic.md\n",
101+
"Алгоритм Диница\n",
102+
"content/russian/cs/flows/ford-fulkerson.md\n",
103+
"Алгоритм Форда-Фалкерсона\n",
104+
"content/russian/cs/modular/discrete-root.md\n",
105+
"Дискретное извлечение корня\n",
106+
"content/russian/cs/modular/discrete-log.md\n",
107+
"Дискретное логарифмирование\n",
108+
"content/russian/cs/spanning-trees/kirchoff.md\n",
109+
"Матричная теорема Кирхгофа\n",
110+
"content/russian/cs/basic-structures/stack-minima.md\n",
111+
"Модификация стека и очереди для нахождения минимума\n",
112+
"content/russian/cs/spanning-trees/bridges-online.md\n",
113+
"Онлайн поиск мостов\n",
114+
"content/russian/cs/modular/primitive-root.md\n",
115+
"Первообразные корни\n",
116+
"content/russian/cs/sequences/max-avg-segment.md\n",
117+
"Поиск подотрезка массива с максимальной суммой\n",
118+
"Андрей Гаркавый:\n",
119+
"content/russian/cs/basic-structures/stack.md\n",
120+
"Стек\n",
121+
"Константин Амеличев:\n",
122+
"content/russian/cs/range-queries/disjoint-sparse-table.md\n",
123+
"Disjoint Sparse Table\n",
124+
"Глеб Лобанов:\n",
125+
"content/russian/cs/general-dynamic/sequences.md\n",
126+
"Динамика по подпоследовательностям\n",
127+
"Даниил Николенко:\n",
128+
"content/russian/cs/programming/cpp.md\n",
129+
"Ликбез по C++\n",
130+
"[Егор Горбачев](https://www.youtube.com/watch?v=5iW84xlL0j0):\n",
131+
"Александр Гришутин:\n",
132+
"content/russian/cs/set-structures/hash-table.md\n",
133+
"Хеш-таблица\n",
134+
"Станислав Алексеев:\n",
135+
"[Максим Иванов](https://e-maxx.ru/algo/bfs):\n",
136+
"Александр Кульков:\n",
137+
"content/russian/cs/string-structures/automaton.md\n",
138+
"Суффиксный автомат\n",
139+
"Иван Сафонов:\n",
140+
"content/russian/cs/modular/modulo-optimization.md\n",
141+
"Оптимизация операций по модулю\n",
142+
"Григорий Горюнов:\n",
143+
"content/russian/cs/segment-tree/bottom-up.md\n",
144+
"Реализация операций «снизу»\n",
145+
"[Александр Бачериков](https://codeforces.com/blog/entry/18051):\n",
146+
"content/russian/cs/segment-tree/bottom-up.md\n",
147+
"Реализация операций «снизу»\n",
148+
"Полина Романченко:\n",
149+
"Максим Деб Натх:\n",
150+
"content/russian/cs/string-searching/tandem-repeats.md\n",
151+
"Тандемные повторы\n",
152+
"Денис Акилов:\n",
153+
"Филипп Грибов:\n",
154+
"content/russian/cs/graph-traversals/dominators.md\n",
155+
"Дерево доминаторов\n"
156+
]
157+
}
158+
],
159+
"source": [
160+
"for author, articles in authors.items():\n",
161+
" print(f'{author}:')\n",
162+
" \n",
163+
" for article in filter(lambda x: x[2], articles):\n",
164+
" print('-', article[1])\n",
165+
" print('-', article[0])"
166+
]
167+
}
168+
],
169+
"metadata": {
170+
"interpreter": {
171+
"hash": "e7370f93d1d0cde622a1f8e1c04877d8463912d04d973331ad4851f04de6915a"
172+
},
173+
"kernelspec": {
174+
"display_name": "Python 3.8.10 64-bit",
175+
"language": "python",
176+
"name": "python3"
177+
},
178+
"language_info": {
179+
"codemirror_mode": {
180+
"name": "ipython",
181+
"version": 3
182+
},
183+
"file_extension": ".py",
184+
"mimetype": "text/x-python",
185+
"name": "python",
186+
"nbconvert_exporter": "python",
187+
"pygments_lexer": "ipython3",
188+
"version": "3.8.10"
189+
},
190+
"orig_nbformat": 4
191+
},
192+
"nbformat": 4,
193+
"nbformat_minor": 2
194+
}

0 commit comments

Comments
 (0)