spotify / luigi
File Change Frequency

File change frequency (churn) shows the distribution of file updates (days with at least one commit).

Overview
File Change Frequency Overall
  • There are 119 files with 20,093 lines of code.
    • 8 files changed more than 100 times (5,034 lines of code)
    • 11 files changed 51-100 times (2,467 lines of code)
    • 26 files changed 21-50 times (5,708 lines of code)
    • 54 files changed 6-20 times (5,396 lines of code)
    • 20 files changed 1-5 times (1,488 lines of code)
25% | 12% | 28% | 26% | 7%
Legend:
101+
51-100
21-50
6-20
1-5

explore: grouped by folders | grouped by update frequency | data
Contributors Count Frequency Overall
  • There are 119 files with 20,093 lines of code.
    • 27 files changed by more than 25 contributors (10,082 lines of code)
    • 34 files changed by 11-25 contributors (4,629 lines of code)
    • 35 files changed by 6-10 contributors (3,631 lines of code)
    • 20 files changed by 2-5 contributors (1,637 lines of code)
    • 3 files changed by 1 contributor (114 lines of code)
50% | 23% | 18% | 8% | <1%
Legend:
26+
11-25
6-10
2-5
1

explore: grouped by folders | grouped by contributors count | data
File Change Frequency per File Extension
py, js, rst, css, html, toml, yaml, sh, md, svg, cfg, gitignore, txt, ini, xml, json, properties
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
py22% | 11% | 31% | 30% | 3%
js55% | 0% | 19% | 0% | 25%
html0% | 65% | 0% | 22% | 11%
toml0% | 0% | 0% | 100% | 0%
css0% | 0% | 0% | 0% | 100%
yaml0% | 0% | 0% | 0% | 100%
File Change Frequency per Logical Decomposition
primary
primary (file change frequency)
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
luigi25% | 12% | 28% | 26% | 7%
doc0% | 0% | 100% | 0% | 0%
ROOT0% | 0% | 0% | 96% | 3%
Most Frequently Changed Files (Top 50)

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsfirst
contributor
latest
contributor
worker.py
in luigi
923 71 2012-01-04 2024-10-31 286 103 erikbern@spotify.com 35086881+tashrifbillah@user...
scheduler.py
in luigi
1227 125 2012-01-03 2024-10-31 260 79 erikbern@spotify.com 35086881+tashrifbillah@user...
task.py
in luigi
409 57 2012-01-03 2024-12-18 206 74 erikbern@spotify.com dlstadther@gmail.com
parameter.py
in luigi
608 89 2012-01-03 2024-11-30 182 75 erikbern@spotify.com dlstadther@gmail.com
interface.py
in luigi
155 7 2012-01-03 2024-10-31 173 61 erikbern@spotify.com 35086881+tashrifbillah@user...
server.py
in luigi
259 26 2012-01-03 2024-11-30 117 47 erikbern@spotify.com dlstadther@gmail.com
visualiserApp.js
in luigi/static/visualiser/js
1325 98 2013-05-24 2024-10-31 115 42 davw@spotify.com 35086881+tashrifbillah@user...
rpc.py
in luigi
128 16 2012-03-30 2024-10-31 112 47 freider@spotify.com 35086881+tashrifbillah@user...
index.html
in luigi/static/visualiser
563 - 2013-05-21 2024-10-31 89 33 davw@spotify.com 35086881+tashrifbillah@user...
__init__.py
in luigi
59 - 2012-01-03 2025-04-23 79 39 erikbern@spotify.com 100569684+rrap0so@users.nor...
redshift.py
in luigi/contrib
398 48 2014-02-11 2020-06-09 68 44 rantav@gmail.com alexander.senov@gmail.com
util.py
in luigi
120 10 2012-08-01 2024-10-31 64 35 erikbern@spotify.com 35086881+tashrifbillah@user...
284 14 2012-12-20 2024-10-31 64 40 freider@spotify.com 35086881+tashrifbillah@user...
spark.py
in luigi/contrib
246 51 2014-02-11 2024-10-31 62 36 enewett@spotify.com 35086881+tashrifbillah@user...
target.py
in luigi
107 26 2012-01-03 2024-10-31 59 35 erikbern@spotify.com 35086881+tashrifbillah@user...
mock.py
in luigi
101 15 2012-01-03 2020-06-09 56 29 erikbern@spotify.com alexander.senov@gmail.com
lock.py
in luigi
81 5 2012-01-10 2024-10-31 54 34 erikbern@spotify.com 35086881+tashrifbillah@user...
169 19 2013-07-24 2024-11-30 52 31 erikbern@spotify.com dlstadther@gmail.com
format.py
in luigi
339 66 2012-07-11 2024-10-31 51 31 nyman@spotify.com 35086881+tashrifbillah@user...
bigquery.py
in luigi/contrib
400 29 2015-06-08 2024-10-31 50 34 mkaplinskiy@twitter.com 35086881+tashrifbillah@user...
ssh.py
in luigi/contrib
226 30 2013-08-12 2024-11-30 49 30 freider@spotify.com dlstadther@gmail.com
hadoop.py
in luigi/contrib
651 60 2015-04-28 2024-10-31 48 33 arash@spotify.com 35086881+tashrifbillah@user...
ftp.py
in luigi/contrib
257 32 2014-06-26 2024-11-30 43 28 albert.jornet@ic3.cat dlstadther@gmail.com
sqla.py
in luigi/contrib
153 15 2015-01-03 2024-10-31 41 30 gouthambs@gmail.com 35086881+tashrifbillah@user...
range.py
in luigi/tools
427 58 2014-10-02 2020-06-09 41 25 uldis@spotify.com alexander.senov@gmail.com
hive.py
in luigi/contrib
325 46 2015-02-06 2024-10-31 39 26 erik@malfunction.org 35086881+tashrifbillah@user...
luigi.js
in luigi/static/visualiser/js
182 44 2013-05-21 2019-08-20 38 20 davw@spotify.com riga@users.noreply.github.com
process.py
in luigi
83 6 2012-07-16 2020-06-09 35 21 freider@spotify.com alexander.senov@gmail.com
graph.js
in luigi/static/visualiser/js
285 17 2013-05-21 2024-10-31 34 22 davw@spotify.com 35086881+tashrifbillah@user...
162 38 2012-01-22 2020-06-09 32 19 erikbern@spotify.com alexander.senov@gmail.com
gcs.py
in luigi/contrib
308 33 2015-06-08 2024-10-31 31 23 mkaplinskiy@twitter.com 35086881+tashrifbillah@user...
320 27 2015-07-24 2024-10-31 30 22 niched@spotify.com 35086881+tashrifbillah@user...
webhdfs.py
in luigi/contrib
54 11 2014-11-11 2020-06-09 29 19 df.rodriguez143@gmail.com alexander.senov@gmail.com
rdbms.py
in luigi/contrib
144 30 2014-03-03 2024-10-31 29 27 rantav@gmail.com 35086881+tashrifbillah@user...
s3.py
in luigi/contrib
425 48 2017-01-24 2024-10-31 29 26 arashrk@vng.com.vn 35086881+tashrifbillah@user...
esindex.py
in luigi/contrib
194 27 2014-06-27 2020-06-09 28 21 martin.czygan@gmail.com alexander.senov@gmail.com
conf.py
in doc
79 3 2014-02-08 2025-04-23 27 20 joecrow@gmail.com 100569684+rrap0so@users.nor...
pig.py
in luigi/contrib
116 17 2015-02-03 2020-06-09 26 22 jkarn@mortardata.com alexander.senov@gmail.com
scalding.py
in luigi/contrib
167 22 2015-01-16 2020-06-09 26 18 erik@malfunction.org alexander.senov@gmail.com
target.py
in luigi/contrib
40 3 2014-08-07 2020-06-09 25 16 arash@spotify.com alexander.senov@gmail.com
131 16 2015-03-08 2024-10-31 25 19 erik@malfunction.org 35086881+tashrifbillah@user...
32 9 2013-05-10 2020-06-09 23 19 jennever@foursquare.com alexander.senov@gmail.com
deps.py
in luigi/tools
73 6 2015-03-09 2020-06-09 23 17 stefaan@netlog.com alexander.senov@gmail.com
postgres.py
in luigi/contrib
256 21 2017-01-24 2024-12-04 23 20 arashrk@vng.com.vn dlstadther@gmail.com
kubernetes.py
in luigi/contrib
218 26 2017-02-24 2020-11-27 21 14 m.capuccini@gmail.com tashrifbillah@gmail.com
external_program.py
in luigi/contrib
161 14 2016-01-21 2024-10-31 19 17 ehdr@erichansander.com 35086881+tashrifbillah@user...
__init__.py
in luigi/contrib/hdfs
35 - 2015-04-29 2020-06-09 18 9 arash@spotify.com alexander.senov@gmail.com
sge.py
in luigi/contrib
155 12 2015-08-12 2020-06-09 18 13 jacob_feala@h3biomedicine.com alexander.senov@gmail.com
clients.py
in luigi/contrib/hdfs
28 2 2015-04-30 2020-06-09 17 12 arash@spotify.com alexander.senov@gmail.com
cmdline.py
in luigi
29 2 2015-03-09 2018-11-25 17 12 stefaan@netlog.com master_fess@mail.ru
Files With Most Contributors (Top 50)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsfirst
contributor
latest
contributor
worker.py
in luigi
923 71 2012-01-04 2024-10-31 286 103 erikbern@spotify.com 35086881+tashrifbillah@user...
scheduler.py
in luigi
1227 125 2012-01-03 2024-10-31 260 79 erikbern@spotify.com 35086881+tashrifbillah@user...
parameter.py
in luigi
608 89 2012-01-03 2024-11-30 182 75 erikbern@spotify.com dlstadther@gmail.com
task.py
in luigi
409 57 2012-01-03 2024-12-18 206 74 erikbern@spotify.com dlstadther@gmail.com
interface.py
in luigi
155 7 2012-01-03 2024-10-31 173 61 erikbern@spotify.com 35086881+tashrifbillah@user...
server.py
in luigi
259 26 2012-01-03 2024-11-30 117 47 erikbern@spotify.com dlstadther@gmail.com
rpc.py
in luigi
128 16 2012-03-30 2024-10-31 112 47 freider@spotify.com 35086881+tashrifbillah@user...
redshift.py
in luigi/contrib
398 48 2014-02-11 2020-06-09 68 44 rantav@gmail.com alexander.senov@gmail.com
visualiserApp.js
in luigi/static/visualiser/js
1325 98 2013-05-24 2024-10-31 115 42 davw@spotify.com 35086881+tashrifbillah@user...
284 14 2012-12-20 2024-10-31 64 40 freider@spotify.com 35086881+tashrifbillah@user...
__init__.py
in luigi
59 - 2012-01-03 2025-04-23 79 39 erikbern@spotify.com 100569684+rrap0so@users.nor...
spark.py
in luigi/contrib
246 51 2014-02-11 2024-10-31 62 36 enewett@spotify.com 35086881+tashrifbillah@user...
util.py
in luigi
120 10 2012-08-01 2024-10-31 64 35 erikbern@spotify.com 35086881+tashrifbillah@user...
target.py
in luigi
107 26 2012-01-03 2024-10-31 59 35 erikbern@spotify.com 35086881+tashrifbillah@user...
lock.py
in luigi
81 5 2012-01-10 2024-10-31 54 34 erikbern@spotify.com 35086881+tashrifbillah@user...
bigquery.py
in luigi/contrib
400 29 2015-06-08 2024-10-31 50 34 mkaplinskiy@twitter.com 35086881+tashrifbillah@user...
index.html
in luigi/static/visualiser
563 - 2013-05-21 2024-10-31 89 33 davw@spotify.com 35086881+tashrifbillah@user...
hadoop.py
in luigi/contrib
651 60 2015-04-28 2024-10-31 48 33 arash@spotify.com 35086881+tashrifbillah@user...
169 19 2013-07-24 2024-11-30 52 31 erikbern@spotify.com dlstadther@gmail.com
format.py
in luigi
339 66 2012-07-11 2024-10-31 51 31 nyman@spotify.com 35086881+tashrifbillah@user...
ssh.py
in luigi/contrib
226 30 2013-08-12 2024-11-30 49 30 freider@spotify.com dlstadther@gmail.com
sqla.py
in luigi/contrib
153 15 2015-01-03 2024-10-31 41 30 gouthambs@gmail.com 35086881+tashrifbillah@user...
mock.py
in luigi
101 15 2012-01-03 2020-06-09 56 29 erikbern@spotify.com alexander.senov@gmail.com
ftp.py
in luigi/contrib
257 32 2014-06-26 2024-11-30 43 28 albert.jornet@ic3.cat dlstadther@gmail.com
rdbms.py
in luigi/contrib
144 30 2014-03-03 2024-10-31 29 27 rantav@gmail.com 35086881+tashrifbillah@user...
hive.py
in luigi/contrib
325 46 2015-02-06 2024-10-31 39 26 erik@malfunction.org 35086881+tashrifbillah@user...
s3.py
in luigi/contrib
425 48 2017-01-24 2024-10-31 29 26 arashrk@vng.com.vn 35086881+tashrifbillah@user...
range.py
in luigi/tools
427 58 2014-10-02 2020-06-09 41 25 uldis@spotify.com alexander.senov@gmail.com
gcs.py
in luigi/contrib
308 33 2015-06-08 2024-10-31 31 23 mkaplinskiy@twitter.com 35086881+tashrifbillah@user...
graph.js
in luigi/static/visualiser/js
285 17 2013-05-21 2024-10-31 34 22 davw@spotify.com 35086881+tashrifbillah@user...
320 27 2015-07-24 2024-10-31 30 22 niched@spotify.com 35086881+tashrifbillah@user...
pig.py
in luigi/contrib
116 17 2015-02-03 2020-06-09 26 22 jkarn@mortardata.com alexander.senov@gmail.com
process.py
in luigi
83 6 2012-07-16 2020-06-09 35 21 freider@spotify.com alexander.senov@gmail.com
esindex.py
in luigi/contrib
194 27 2014-06-27 2020-06-09 28 21 martin.czygan@gmail.com alexander.senov@gmail.com
luigi.js
in luigi/static/visualiser/js
182 44 2013-05-21 2019-08-20 38 20 davw@spotify.com riga@users.noreply.github.com
conf.py
in doc
79 3 2014-02-08 2025-04-23 27 20 joecrow@gmail.com 100569684+rrap0so@users.nor...
postgres.py
in luigi/contrib
256 21 2017-01-24 2024-12-04 23 20 arashrk@vng.com.vn dlstadther@gmail.com
162 38 2012-01-22 2020-06-09 32 19 erikbern@spotify.com alexander.senov@gmail.com
webhdfs.py
in luigi/contrib
54 11 2014-11-11 2020-06-09 29 19 df.rodriguez143@gmail.com alexander.senov@gmail.com
131 16 2015-03-08 2024-10-31 25 19 erik@malfunction.org 35086881+tashrifbillah@user...
32 9 2013-05-10 2020-06-09 23 19 jennever@foursquare.com alexander.senov@gmail.com
scalding.py
in luigi/contrib
167 22 2015-01-16 2020-06-09 26 18 erik@malfunction.org alexander.senov@gmail.com
deps.py
in luigi/tools
73 6 2015-03-09 2020-06-09 23 17 stefaan@netlog.com alexander.senov@gmail.com
external_program.py
in luigi/contrib
161 14 2016-01-21 2024-10-31 19 17 ehdr@erichansander.com 35086881+tashrifbillah@user...
target.py
in luigi/contrib
40 3 2014-08-07 2020-06-09 25 16 arash@spotify.com alexander.senov@gmail.com
kubernetes.py
in luigi/contrib
218 26 2017-02-24 2020-11-27 21 14 m.capuccini@gmail.com tashrifbillah@gmail.com
sge.py
in luigi/contrib
155 12 2015-08-12 2020-06-09 18 13 jacob_feala@h3biomedicine.com alexander.senov@gmail.com
target.py
in luigi/contrib/hdfs
120 14 2015-04-30 2024-10-31 16 13 arash@spotify.com 35086881+tashrifbillah@user...
opener.py
in luigi/contrib
121 9 2016-02-21 2020-06-09 15 13 kyle.walker@zefr.com alexander.senov@gmail.com
sge_runner.py
in luigi/contrib
37 3 2015-08-12 2024-10-31 13 13 jacob_feala@h3biomedicine.com 35086881+tashrifbillah@user...
Files With Least Contributors (Top 50)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsfirst
contributor
latest
contributor
datadog_metric.py
in luigi/contrib
89 10 2018-12-17 2018-12-17 1 1 cabouffard@users.noreply.gi... cabouffard@users.noreply.gi...
base_parser.py
in luigi/configuration
16 3 2018-07-28 2018-07-28 1 1 master_fess@mail.ru master_fess@mail.ru
__init__.py
in luigi/configuration
9 - 2018-07-28 2018-07-28 1 1 master_fess@mail.ru master_fess@mail.ru
mustache.js
in luigi/static/visualiser/lib
373 31 2013-05-24 2013-05-29 2 2 davw@spotify.com elias@freider.se
tipsy.js
in luigi/static/visualiser/js
223 20 2015-05-11 2015-05-12 2 2 hadesbox@gmail.com miffoljud@gmail.com
176 - 2025-01-18 2025-04-23 6 2 hiro.sassa@gmail.com 100569684+rrap0so@users.nor...
gcp.py
in luigi/contrib
28 1 2017-02-10 2018-03-05 2 2 freider@users.noreply.githu... thibaut.mattio.1@ens.etsmtl.ca
tipsy.css
in luigi/static/visualiser/css
17 - 2015-05-11 2015-05-12 2 2 hadesbox@gmail.com miffoljud@gmail.com
menu.html
in luigi/templates
15 - 2015-02-24 2015-04-02 2 2 yeseul.park@navercorp.com erik@malfunction.org
util.js
in luigi/static/visualiser/js
8 1 2023-03-14 2024-10-31 2 2 honnix@users.noreply.github... 35086881+tashrifbillah@user...
1 - 2025-01-19 2025-04-23 2 2 hiro.sassa@gmail.com 100569684+rrap0so@users.nor...
layout.html
in luigi/templates
87 - 2015-02-24 2017-03-12 5 3 yeseul.park@navercorp.com amarco90@gmail.com
core.py
in luigi/configuration
56 4 2018-07-28 2024-10-31 4 3 master_fess@mail.ru 35086881+tashrifbillah@user...
18 3 2024-09-04 2024-10-31 3 3 ali.razmjoo1994@gmail.com 35086881+tashrifbillah@user...
7 - 2022-08-30 2024-10-31 3 3 honnix@users.noreply.github... 35086881+tashrifbillah@user...
__main__.py
in luigi
3 - 2015-09-03 2016-01-25 3 3 e.iskandarov@corp.mail.ru erikbern@spotify.com
luigi.css
in luigi/static/visualiser/css
193 - 2017-05-26 2020-06-04 5 4 buck@houzz.com t.paine154@gmail.com
lsf.py
in luigi/contrib
178 14 2018-07-12 2024-10-31 4 4 markmcdowall@users.noreply.... 35086881+tashrifbillah@user...
prometheus_metric.py
in luigi/contrib
71 8 2019-04-18 2025-01-15 4 4 victoriaalee@users.noreply.... dlstadther@gmail.com
__init__.py
in luigi/tools
1 - 2014-10-02 2015-02-05 6 4 uldis@spotify.com pedro.salgado@mediaforge.com
mongodb.py
in luigi/contrib
86 19 2017-03-20 2024-10-31 6 5 mathias@short-edition.com 35086881+tashrifbillah@user...
mssqldb.py
in luigi/contrib
66 6 2016-04-21 2024-10-31 5 5 travis.e.cook@gmail.com 35086881+tashrifbillah@user...
30 2 2018-12-06 2020-06-09 5 5 brianmartin@gmail.com alexander.senov@gmail.com
mypy.py
in luigi
317 21 2024-09-12 2025-02-01 7 6 mr.nikoru918@gmail.com hiro.sassa@gmail.com
history.html
in luigi/templates
106 - 2015-02-24 2019-06-01 6 6 yeseul.park@navercorp.com jose.ignacio.riano@gmail.com
batch.py
in luigi/contrib
99 11 2018-02-16 2020-06-09 6 6 jfeala@gmail.com alexander.senov@gmail.com
redis_store.py
in luigi/contrib
41 5 2015-05-13 2024-10-31 6 6 patrick@samp.ly 35086881+tashrifbillah@user...
error.py
in luigi/contrib/hdfs
12 1 2015-05-07 2020-06-09 6 6 arash@spotify.com alexander.senov@gmail.com
beam_dataflow.py
in luigi/contrib
277 35 2019-03-13 2020-06-09 16 7 clairem@spotify.com alexander.senov@gmail.com
presto.py
in luigi/contrib
192 29 2020-04-12 2024-10-31 7 7 slavoshevskii.mihail@physte... 35086881+tashrifbillah@user...
toml_parser.py
in luigi/configuration
63 10 2018-07-28 2024-10-31 9 7 master_fess@mail.ru 35086881+tashrifbillah@user...
show.html
in luigi/templates
62 - 2013-05-10 2017-03-12 8 7 jennever@foursquare.com amarco90@gmail.com
deps_tree.py
in luigi/tools
40 2 2016-06-10 2024-10-31 7 7 talktopete@gmail.com 35086881+tashrifbillah@user...
freezing.py
in luigi
38 9 2019-11-26 2024-10-31 7 7 master_fess@mail.ru 35086881+tashrifbillah@user...
recent.html
in luigi/templates
28 - 2013-05-10 2017-03-12 8 7 jennever@foursquare.com amarco90@gmail.com
__init__.py
in luigi/contrib
1 - 2013-08-12 2015-02-05 9 7 freider@spotify.com pedro.salgado@mediaforge.com
format.py
in luigi/contrib/hdfs
120 22 2015-04-30 2019-01-21 9 8 arash@spotify.com rh@web.de
117 19 2016-11-09 2024-11-30 8 8 miffoljud@gmail.com dlstadther@gmail.com
abstract_client.py
in luigi/contrib/hdfs
38 12 2015-05-11 2020-06-09 7 8 miffoljud@gmail.com alexander.senov@gmail.com
lsf_runner.py
in luigi/contrib
36 3 2018-07-12 2024-10-31 8 8 markmcdowall@users.noreply.... 35086881+tashrifbillah@user...
salesforce.py
in luigi/contrib
379 57 2015-11-16 2020-06-09 14 9 dlstadther@gmail.com alexander.senov@gmail.com
dataproc.py
in luigi/contrib
196 14 2016-03-18 2018-03-05 11 9 cvisinescu@xebia.com thibaut.mattio.1@ens.etsmtl.ca
173 22 2016-11-07 2024-10-31 12 9 buck@houzz.com 35086881+tashrifbillah@user...
106 8 2018-11-25 2024-10-31 10 9 master_fess@mail.ru 35086881+tashrifbillah@user...
ecs.py
in luigi/contrib
80 8 2015-10-17 2024-10-31 9 9 jacob_feala@h3biomedicine.com 35086881+tashrifbillah@user...
metrics.py
in luigi
64 13 2018-12-17 2024-10-31 9 9 cabouffard@users.noreply.gi... 35086881+tashrifbillah@user...
mrrunner.py
in luigi/contrib
42 5 2017-01-24 2024-10-31 8 9 arashrk@vng.com.vn 35086881+tashrifbillah@user...
__init__.py
in luigi/contrib/hdfs
35 - 2015-04-29 2020-06-09 18 9 arash@spotify.com alexander.senov@gmail.com
azureblob.py
in luigi/contrib
204 32 2019-01-12 2024-10-31 10 10 masinha@microsoft.com 35086881+tashrifbillah@user...
hadoopcli_clients.py
in luigi/contrib/hdfs
187 18 2015-05-07 2020-06-09 12 10 arash@spotify.com alexander.senov@gmail.com
Correlations

File Size vs. Number of Changes: 119 points

doc/conf.py x: 79 lines of code y: 27 # changes luigi/__init__.py x: 59 lines of code y: 79 # changes luigi/__version__.py x: 1 lines of code y: 2 # changes pyproject.toml x: 176 lines of code y: 6 # changes luigi/mypy.py x: 317 lines of code y: 7 # changes luigi/contrib/prometheus_metric.py x: 71 lines of code y: 4 # changes luigi/task.py x: 409 lines of code y: 206 # changes luigi/contrib/postgres.py x: 256 lines of code y: 23 # changes luigi/contrib/dropbox.py x: 197 lines of code y: 12 # changes luigi/contrib/ftp.py x: 257 lines of code y: 43 # changes luigi/contrib/ssh.py x: 226 lines of code y: 49 # changes luigi/local_target.py x: 117 lines of code y: 8 # changes luigi/parameter.py x: 608 lines of code y: 182 # changes luigi/db_task_history.py x: 169 lines of code y: 52 # changes luigi/server.py x: 259 lines of code y: 117 # changes catalog-info.yaml x: 7 lines of code y: 3 # changes luigi/batch_notifier.py x: 173 lines of code y: 12 # changes luigi/configuration/cfg_parser.py x: 123 lines of code y: 12 # changes luigi/configuration/core.py x: 56 lines of code y: 4 # changes luigi/configuration/toml_parser.py x: 63 lines of code y: 9 # changes luigi/contrib/azureblob.py x: 204 lines of code y: 10 # changes luigi/contrib/bigquery.py x: 400 lines of code y: 50 # changes luigi/contrib/docker_runner.py x: 165 lines of code y: 12 # changes luigi/contrib/ecs.py x: 80 lines of code y: 9 # changes luigi/contrib/external_program.py x: 161 lines of code y: 19 # changes luigi/contrib/gcs.py x: 308 lines of code y: 31 # changes luigi/contrib/hadoop.py x: 651 lines of code y: 48 # changes luigi/contrib/hadoop_jar.py x: 83 lines of code y: 17 # changes luigi/contrib/hdfs/config.py x: 52 lines of code y: 13 # changes luigi/contrib/hdfs/target.py x: 120 lines of code y: 16 # changes luigi/contrib/hive.py x: 325 lines of code y: 39 # changes luigi/contrib/lsf.py x: 178 lines of code y: 4 # changes luigi/contrib/lsf_runner.py x: 36 lines of code y: 8 # changes luigi/contrib/mongodb.py x: 86 lines of code y: 6 # changes luigi/contrib/mrrunner.py x: 42 lines of code y: 8 # changes luigi/contrib/mssqldb.py x: 66 lines of code y: 5 # changes luigi/contrib/mysqldb.py x: 128 lines of code y: 13 # changes luigi/contrib/pai.py x: 169 lines of code y: 10 # changes luigi/contrib/presto.py x: 192 lines of code y: 7 # changes luigi/contrib/rdbms.py x: 144 lines of code y: 29 # changes luigi/contrib/redis_store.py x: 41 lines of code y: 6 # changes luigi/contrib/s3.py x: 425 lines of code y: 29 # changes luigi/contrib/sge_runner.py x: 37 lines of code y: 13 # changes luigi/contrib/simulate.py x: 42 lines of code y: 11 # changes luigi/contrib/spark.py x: 246 lines of code y: 62 # changes luigi/contrib/sqla.py x: 153 lines of code y: 41 # changes luigi/execution_summary.py x: 320 lines of code y: 30 # changes luigi/format.py x: 339 lines of code y: 51 # changes luigi/freezing.py x: 38 lines of code y: 7 # changes luigi/interface.py x: 155 lines of code y: 173 # changes luigi/lock.py x: 81 lines of code y: 54 # changes luigi/notifications.py x: 284 lines of code y: 64 # changes luigi/rpc.py x: 128 lines of code y: 112 # changes luigi/safe_extractor.py x: 18 lines of code y: 3 # changes luigi/scheduler.py x: 1227 lines of code y: 260 # changes luigi/setup_logging.py x: 106 lines of code y: 10 # changes luigi/static/visualiser/index.html x: 563 lines of code y: 89 # changes luigi/static/visualiser/js/graph.js x: 285 lines of code y: 34 # changes luigi/static/visualiser/js/util.js x: 8 lines of code y: 2 # changes luigi/static/visualiser/js/visualiserApp.js x: 1325 lines of code y: 115 # changes luigi/target.py x: 107 lines of code y: 59 # changes luigi/task_register.py x: 131 lines of code y: 25 # changes luigi/tools/deps_tree.py x: 40 lines of code y: 7 # changes luigi/util.py x: 120 lines of code y: 64 # changes luigi/worker.py x: 923 lines of code y: 286 # changes luigi/contrib/kubernetes.py x: 218 lines of code y: 21 # changes luigi/cmdline_parser.py x: 81 lines of code y: 17 # changes luigi/contrib/batch.py x: 99 lines of code y: 6 # changes luigi/contrib/beam_dataflow.py x: 277 lines of code y: 16 # changes luigi/contrib/bigquery_avro.py x: 62 lines of code y: 17 # changes luigi/contrib/esindex.py x: 194 lines of code y: 28 # changes luigi/contrib/external_daily_snapshot.py x: 30 lines of code y: 5 # changes luigi/contrib/hdfs/__init__.py x: 35 lines of code y: 18 # changes luigi/contrib/hdfs/clients.py x: 28 lines of code y: 17 # changes luigi/contrib/hdfs/error.py x: 12 lines of code y: 6 # changes luigi/contrib/hdfs/hadoopcli_clients.py x: 187 lines of code y: 12 # changes luigi/contrib/hdfs/webhdfs_client.py x: 89 lines of code y: 13 # changes luigi/contrib/opener.py x: 121 lines of code y: 15 # changes luigi/contrib/pig.py x: 116 lines of code y: 26 # changes luigi/contrib/pyspark_runner.py x: 74 lines of code y: 13 # changes luigi/contrib/redshift.py x: 398 lines of code y: 68 # changes luigi/contrib/salesforce.py x: 379 lines of code y: 14 # changes luigi/contrib/scalding.py x: 167 lines of code y: 26 # changes luigi/contrib/sge.py x: 155 lines of code y: 18 # changes luigi/contrib/sparkey.py x: 20 lines of code y: 13 # changes luigi/contrib/target.py x: 40 lines of code y: 25 # changes luigi/contrib/webhdfs.py x: 54 lines of code y: 29 # changes luigi/date_interval.py x: 162 lines of code y: 32 # changes luigi/event.py x: 12 lines of code y: 12 # changes luigi/mock.py x: 101 lines of code y: 56 # changes luigi/process.py x: 83 lines of code y: 35 # changes luigi/task_history.py x: 32 lines of code y: 23 # changes luigi/tools/deps.py x: 73 lines of code y: 23 # changes luigi/tools/luigi_grep.py x: 62 lines of code y: 12 # changes luigi/tools/range.py x: 427 lines of code y: 41 # changes luigi/static/visualiser/css/luigi.css x: 193 lines of code y: 5 # changes luigi/static/visualiser/js/luigi.js x: 182 lines of code y: 38 # changes luigi/templates/history.html x: 106 lines of code y: 6 # changes luigi/contrib/hdfs/format.py x: 120 lines of code y: 9 # changes luigi/contrib/datadog_metric.py x: 89 lines of code y: 1 # changes luigi/cmdline.py x: 29 lines of code y: 17 # changes luigi/configuration/__init__.py x: 9 lines of code y: 1 # changes luigi/configuration/base_parser.py x: 16 lines of code y: 1 # changes luigi/contrib/dataproc.py x: 196 lines of code y: 11 # changes luigi/contrib/gcp.py x: 28 lines of code y: 2 # changes luigi/templates/recent.html x: 28 lines of code y: 8 # changes luigi/templates/show.html x: 62 lines of code y: 8 # changes luigi/templates/layout.html x: 87 lines of code y: 5 # changes luigi/task_status.py x: 8 lines of code y: 14 # changes luigi/__main__.py x: 3 lines of code y: 3 # changes luigi/static/visualiser/css/tipsy.css x: 17 lines of code y: 2 # changes luigi/static/visualiser/js/tipsy.js x: 223 lines of code y: 2 # changes luigi/templates/menu.html x: 15 lines of code y: 2 # changes luigi/contrib/__init__.py x: 1 lines of code y: 9 # changes luigi/tools/__init__.py x: 1 lines of code y: 6 # changes luigi/static/visualiser/lib/mustache.js x: 373 lines of code y: 2 # changes
286.0
# changes
  min: 1.0
  average: 30.71
  25th percentile: 7.0
  median: 13.0
  75th percentile: 32.0
  max: 286.0
0 1325.0
lines of code
min: 1.0 | average: 168.85 | 25th percentile: 42.0 | median: 107.0 | 75th percentile: 197.0 | max: 1325.0

Number of Contributors vs. Number of Changes: 119 points

doc/conf.py x: 20 # contributors y: 27 # changes luigi/__init__.py x: 39 # contributors y: 79 # changes luigi/__version__.py x: 2 # contributors y: 2 # changes pyproject.toml x: 2 # contributors y: 6 # changes luigi/mypy.py x: 6 # contributors y: 7 # changes luigi/contrib/prometheus_metric.py x: 4 # contributors y: 4 # changes luigi/task.py x: 74 # contributors y: 206 # changes luigi/contrib/postgres.py x: 20 # contributors y: 23 # changes luigi/contrib/dropbox.py x: 12 # contributors y: 12 # changes luigi/contrib/ftp.py x: 28 # contributors y: 43 # changes luigi/contrib/ssh.py x: 30 # contributors y: 49 # changes luigi/local_target.py x: 8 # contributors y: 8 # changes luigi/parameter.py x: 75 # contributors y: 182 # changes luigi/db_task_history.py x: 31 # contributors y: 52 # changes luigi/server.py x: 47 # contributors y: 117 # changes catalog-info.yaml x: 3 # contributors y: 3 # changes luigi/batch_notifier.py x: 9 # contributors y: 12 # changes luigi/configuration/core.py x: 3 # contributors y: 4 # changes luigi/configuration/toml_parser.py x: 7 # contributors y: 9 # changes luigi/contrib/azureblob.py x: 10 # contributors y: 10 # changes luigi/contrib/bigquery.py x: 34 # contributors y: 50 # changes luigi/contrib/ecs.py x: 9 # contributors y: 9 # changes luigi/contrib/external_program.py x: 17 # contributors y: 19 # changes luigi/contrib/gcs.py x: 23 # contributors y: 31 # changes luigi/contrib/hadoop.py x: 33 # contributors y: 48 # changes luigi/contrib/hadoop_jar.py x: 10 # contributors y: 17 # changes luigi/contrib/hdfs/config.py x: 11 # contributors y: 13 # changes luigi/contrib/hdfs/target.py x: 13 # contributors y: 16 # changes luigi/contrib/hive.py x: 26 # contributors y: 39 # changes luigi/contrib/mongodb.py x: 5 # contributors y: 6 # changes luigi/contrib/mssqldb.py x: 5 # contributors y: 5 # changes luigi/contrib/presto.py x: 7 # contributors y: 7 # changes luigi/contrib/rdbms.py x: 27 # contributors y: 29 # changes luigi/contrib/redis_store.py x: 6 # contributors y: 6 # changes luigi/contrib/s3.py x: 26 # contributors y: 29 # changes luigi/contrib/sge_runner.py x: 13 # contributors y: 13 # changes luigi/contrib/simulate.py x: 11 # contributors y: 11 # changes luigi/contrib/spark.py x: 36 # contributors y: 62 # changes luigi/contrib/sqla.py x: 30 # contributors y: 41 # changes luigi/execution_summary.py x: 22 # contributors y: 30 # changes luigi/format.py x: 31 # contributors y: 51 # changes luigi/interface.py x: 61 # contributors y: 173 # changes luigi/lock.py x: 34 # contributors y: 54 # changes luigi/notifications.py x: 40 # contributors y: 64 # changes luigi/rpc.py x: 47 # contributors y: 112 # changes luigi/scheduler.py x: 79 # contributors y: 260 # changes luigi/setup_logging.py x: 9 # contributors y: 10 # changes luigi/static/visualiser/index.html x: 33 # contributors y: 89 # changes luigi/static/visualiser/js/graph.js x: 22 # contributors y: 34 # changes luigi/static/visualiser/js/visualiserApp.js x: 42 # contributors y: 115 # changes luigi/target.py x: 35 # contributors y: 59 # changes luigi/task_register.py x: 19 # contributors y: 25 # changes luigi/util.py x: 35 # contributors y: 64 # changes luigi/worker.py x: 103 # contributors y: 286 # changes luigi/contrib/kubernetes.py x: 14 # contributors y: 21 # changes luigi/contrib/beam_dataflow.py x: 7 # contributors y: 16 # changes luigi/contrib/esindex.py x: 21 # contributors y: 28 # changes luigi/contrib/hdfs/__init__.py x: 9 # contributors y: 18 # changes luigi/contrib/hdfs/abstract_client.py x: 8 # contributors y: 7 # changes luigi/contrib/hdfs/clients.py x: 12 # contributors y: 17 # changes luigi/contrib/hdfs/hadoopcli_clients.py x: 10 # contributors y: 12 # changes luigi/contrib/hdfs/webhdfs_client.py x: 10 # contributors y: 13 # changes luigi/contrib/opener.py x: 13 # contributors y: 15 # changes luigi/contrib/pig.py x: 22 # contributors y: 26 # changes luigi/contrib/redshift.py x: 44 # contributors y: 68 # changes luigi/contrib/salesforce.py x: 9 # contributors y: 14 # changes luigi/contrib/scalding.py x: 18 # contributors y: 26 # changes luigi/contrib/sge.py x: 13 # contributors y: 18 # changes luigi/contrib/sparkey.py x: 12 # contributors y: 13 # changes luigi/contrib/target.py x: 16 # contributors y: 25 # changes luigi/contrib/webhdfs.py x: 19 # contributors y: 29 # changes luigi/date_interval.py x: 19 # contributors y: 32 # changes luigi/mock.py x: 29 # contributors y: 56 # changes luigi/process.py x: 21 # contributors y: 35 # changes luigi/task_history.py x: 19 # contributors y: 23 # changes luigi/tools/deps.py x: 17 # contributors y: 23 # changes luigi/tools/luigi_grep.py x: 13 # contributors y: 12 # changes luigi/tools/range.py x: 25 # contributors y: 41 # changes luigi/static/visualiser/css/luigi.css x: 4 # contributors y: 5 # changes luigi/static/visualiser/js/luigi.js x: 20 # contributors y: 38 # changes luigi/retcodes.py x: 11 # contributors y: 12 # changes luigi/contrib/datadog_metric.py x: 1 # contributors y: 1 # changes luigi/contrib/dataproc.py x: 9 # contributors y: 11 # changes luigi/templates/layout.html x: 3 # contributors y: 5 # changes luigi/task_status.py x: 10 # contributors y: 14 # changes luigi/tools/__init__.py x: 4 # contributors y: 6 # changes
286.0
# changes
  min: 1.0
  average: 30.71
  25th percentile: 7.0
  median: 13.0
  75th percentile: 32.0
  max: 286.0
0 103.0
# contributors
min: 1.0 | average: 17.3 | 25th percentile: 7.0 | median: 11.0 | 75th percentile: 22.0 | max: 103.0

Number of Contributors vs. File Size: 119 points

doc/conf.py x: 20 # contributors y: 79 lines of code luigi/__init__.py x: 39 # contributors y: 59 lines of code luigi/__version__.py x: 2 # contributors y: 1 lines of code pyproject.toml x: 2 # contributors y: 176 lines of code luigi/mypy.py x: 6 # contributors y: 317 lines of code luigi/contrib/prometheus_metric.py x: 4 # contributors y: 71 lines of code luigi/task.py x: 74 # contributors y: 409 lines of code luigi/contrib/postgres.py x: 20 # contributors y: 256 lines of code luigi/contrib/dropbox.py x: 12 # contributors y: 197 lines of code luigi/contrib/ftp.py x: 28 # contributors y: 257 lines of code luigi/contrib/ssh.py x: 30 # contributors y: 226 lines of code luigi/local_target.py x: 8 # contributors y: 117 lines of code luigi/parameter.py x: 75 # contributors y: 608 lines of code luigi/db_task_history.py x: 31 # contributors y: 169 lines of code luigi/server.py x: 47 # contributors y: 259 lines of code catalog-info.yaml x: 3 # contributors y: 7 lines of code luigi/batch_notifier.py x: 9 # contributors y: 173 lines of code luigi/configuration/cfg_parser.py x: 12 # contributors y: 123 lines of code luigi/configuration/core.py x: 3 # contributors y: 56 lines of code luigi/configuration/toml_parser.py x: 7 # contributors y: 63 lines of code luigi/contrib/azureblob.py x: 10 # contributors y: 204 lines of code luigi/contrib/bigquery.py x: 34 # contributors y: 400 lines of code luigi/contrib/docker_runner.py x: 12 # contributors y: 165 lines of code luigi/contrib/ecs.py x: 9 # contributors y: 80 lines of code luigi/contrib/external_program.py x: 17 # contributors y: 161 lines of code luigi/contrib/gcs.py x: 23 # contributors y: 308 lines of code luigi/contrib/hadoop.py x: 33 # contributors y: 651 lines of code luigi/contrib/hadoop_jar.py x: 10 # contributors y: 83 lines of code luigi/contrib/hdfs/config.py x: 11 # contributors y: 52 lines of code luigi/contrib/hdfs/target.py x: 13 # contributors y: 120 lines of code luigi/contrib/hive.py x: 26 # contributors y: 325 lines of code luigi/contrib/lsf.py x: 4 # contributors y: 178 lines of code luigi/contrib/lsf_runner.py x: 8 # contributors y: 36 lines of code luigi/contrib/mongodb.py x: 5 # contributors y: 86 lines of code luigi/contrib/mrrunner.py x: 9 # contributors y: 42 lines of code luigi/contrib/mssqldb.py x: 5 # contributors y: 66 lines of code luigi/contrib/mysqldb.py x: 11 # contributors y: 128 lines of code luigi/contrib/pai.py x: 10 # contributors y: 169 lines of code luigi/contrib/presto.py x: 7 # contributors y: 192 lines of code luigi/contrib/rdbms.py x: 27 # contributors y: 144 lines of code luigi/contrib/redis_store.py x: 6 # contributors y: 41 lines of code luigi/contrib/s3.py x: 26 # contributors y: 425 lines of code luigi/contrib/sge_runner.py x: 13 # contributors y: 37 lines of code luigi/contrib/simulate.py x: 11 # contributors y: 42 lines of code luigi/contrib/spark.py x: 36 # contributors y: 246 lines of code luigi/contrib/sqla.py x: 30 # contributors y: 153 lines of code luigi/execution_summary.py x: 22 # contributors y: 320 lines of code luigi/format.py x: 31 # contributors y: 339 lines of code luigi/freezing.py x: 7 # contributors y: 38 lines of code luigi/interface.py x: 61 # contributors y: 155 lines of code luigi/lock.py x: 34 # contributors y: 81 lines of code luigi/metrics.py x: 9 # contributors y: 64 lines of code luigi/notifications.py x: 40 # contributors y: 284 lines of code luigi/rpc.py x: 47 # contributors y: 128 lines of code luigi/safe_extractor.py x: 3 # contributors y: 18 lines of code luigi/scheduler.py x: 79 # contributors y: 1227 lines of code luigi/setup_logging.py x: 9 # contributors y: 106 lines of code luigi/static/visualiser/index.html x: 33 # contributors y: 563 lines of code luigi/static/visualiser/js/graph.js x: 22 # contributors y: 285 lines of code luigi/static/visualiser/js/util.js x: 2 # contributors y: 8 lines of code luigi/static/visualiser/js/visualiserApp.js x: 42 # contributors y: 1325 lines of code luigi/target.py x: 35 # contributors y: 107 lines of code luigi/task_register.py x: 19 # contributors y: 131 lines of code luigi/util.py x: 35 # contributors y: 120 lines of code luigi/worker.py x: 103 # contributors y: 923 lines of code luigi/contrib/kubernetes.py x: 14 # contributors y: 218 lines of code luigi/contrib/batch.py x: 6 # contributors y: 99 lines of code luigi/contrib/beam_dataflow.py x: 7 # contributors y: 277 lines of code luigi/contrib/bigquery_avro.py x: 10 # contributors y: 62 lines of code luigi/contrib/esindex.py x: 21 # contributors y: 194 lines of code luigi/contrib/external_daily_snapshot.py x: 5 # contributors y: 30 lines of code luigi/contrib/hdfs/__init__.py x: 9 # contributors y: 35 lines of code luigi/contrib/hdfs/abstract_client.py x: 8 # contributors y: 38 lines of code luigi/contrib/hdfs/clients.py x: 12 # contributors y: 28 lines of code luigi/contrib/hdfs/error.py x: 6 # contributors y: 12 lines of code luigi/contrib/hdfs/hadoopcli_clients.py x: 10 # contributors y: 187 lines of code luigi/contrib/hdfs/webhdfs_client.py x: 10 # contributors y: 89 lines of code luigi/contrib/pig.py x: 22 # contributors y: 116 lines of code luigi/contrib/pyspark_runner.py x: 10 # contributors y: 74 lines of code luigi/contrib/redshift.py x: 44 # contributors y: 398 lines of code luigi/contrib/salesforce.py x: 9 # contributors y: 379 lines of code luigi/contrib/scalding.py x: 18 # contributors y: 167 lines of code luigi/contrib/sge.py x: 13 # contributors y: 155 lines of code luigi/contrib/sparkey.py x: 12 # contributors y: 20 lines of code luigi/contrib/target.py x: 16 # contributors y: 40 lines of code luigi/contrib/webhdfs.py x: 19 # contributors y: 54 lines of code luigi/date_interval.py x: 19 # contributors y: 162 lines of code luigi/event.py x: 10 # contributors y: 12 lines of code luigi/mock.py x: 29 # contributors y: 101 lines of code luigi/process.py x: 21 # contributors y: 83 lines of code luigi/task_history.py x: 19 # contributors y: 32 lines of code luigi/tools/deps.py x: 17 # contributors y: 73 lines of code luigi/tools/luigi_grep.py x: 13 # contributors y: 62 lines of code luigi/tools/range.py x: 25 # contributors y: 427 lines of code luigi/static/visualiser/css/luigi.css x: 4 # contributors y: 193 lines of code luigi/static/visualiser/js/luigi.js x: 20 # contributors y: 182 lines of code luigi/templates/history.html x: 6 # contributors y: 106 lines of code luigi/retcodes.py x: 11 # contributors y: 62 lines of code luigi/contrib/hdfs/format.py x: 8 # contributors y: 120 lines of code luigi/contrib/datadog_metric.py x: 1 # contributors y: 89 lines of code luigi/configuration/__init__.py x: 1 # contributors y: 9 lines of code luigi/configuration/base_parser.py x: 1 # contributors y: 16 lines of code luigi/contrib/dataproc.py x: 9 # contributors y: 196 lines of code luigi/contrib/gcp.py x: 2 # contributors y: 28 lines of code luigi/templates/recent.html x: 7 # contributors y: 28 lines of code luigi/templates/show.html x: 7 # contributors y: 62 lines of code luigi/templates/layout.html x: 3 # contributors y: 87 lines of code luigi/task_status.py x: 10 # contributors y: 8 lines of code luigi/__main__.py x: 3 # contributors y: 3 lines of code luigi/static/visualiser/css/tipsy.css x: 2 # contributors y: 17 lines of code luigi/static/visualiser/js/tipsy.js x: 2 # contributors y: 223 lines of code luigi/templates/menu.html x: 2 # contributors y: 15 lines of code luigi/contrib/__init__.py x: 7 # contributors y: 1 lines of code luigi/tools/__init__.py x: 4 # contributors y: 1 lines of code luigi/static/visualiser/lib/mustache.js x: 2 # contributors y: 373 lines of code
1325.0
lines of code
  min: 1.0
  average: 168.85
  25th percentile: 42.0
  median: 107.0
  75th percentile: 197.0
  max: 1325.0
0 103.0
# contributors
min: 1.0 | average: 17.3 | 25th percentile: 7.0 | median: 11.0 | 75th percentile: 22.0 | max: 103.0