Uber / doubles
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 28 files with 1,050 lines of code.
    • 0 files changed more than 100 times (0 lines of code)
    • 0 files changed 51-100 times (0 lines of code)
    • 6 files changed 21-50 times (544 lines of code)
    • 15 files changed 6-20 times (436 lines of code)
    • 7 files changed 1-5 times (70 lines of code)
0% | 0% | 51% | 41% | 6%
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 28 files with 1,050 lines of code.
    • 0 files changed by more than 25 contributors (0 lines of code)
    • 0 files changed by 11-25 contributors (0 lines of code)
    • 5 files changed by 6-10 contributors (398 lines of code)
    • 20 files changed by 2-5 contributors (629 lines of code)
    • 3 files changed by 1 contributor (23 lines of code)
0% | 0% | 37% | 59% | 2%
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, rst, txt, cfg, gitignore, json, yml
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
py0% | 0% | 52% | 41% | 6%
cfg0% | 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
doubles0% | 0% | 54% | 38% | 6%
ROOT0% | 0% | 0% | 90% | 9%
Most Frequently Changed Files (Top 28)

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsfirst
contributor
latest
contributor
__init__.py
in doubles
13 - 2014-05-30 2018-10-25 38 8 jimmy@jimmycuadra.com skudri@ext.uber.com
allowance.py
in doubles
182 30 2014-06-27 2018-09-12 32 9 jimmy@jimmycuadra.com skudri@ext.uber.com
proxy_method.py
in doubles
87 12 2014-07-08 2018-10-06 29 8 todd.sifleet@gmail.com charlesaxel.dein@gmail.com
verification.py
in doubles
88 10 2014-06-28 2018-07-29 29 5 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
testing.py
in doubles
99 29 2014-06-26 2018-07-23 25 7 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
target.py
in doubles
75 11 2014-07-09 2018-07-29 24 5 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
60 9 2014-06-06 2018-03-28 19 2 jimmy@jimmycuadra.com todd.sifleet@gmail.com
lifecycle.py
in doubles
28 6 2014-06-03 2018-07-29 16 4 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
space.py
in doubles
31 6 2014-06-03 2018-07-29 16 4 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
exceptions.py
in doubles
27 5 2014-06-20 2015-03-18 15 3 jimmy@jimmycuadra.com todd.sifleet@gmail.com
expectation_target.py
in doubles/targets
21 4 2014-06-03 2018-07-29 13 5 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
setup.py
in root
49 2 2014-06-20 2018-10-25 13 5 jimmy@jimmycuadra.com skudri@ext.uber.com
proxy.py
in doubles
20 6 2014-06-03 2015-03-17 12 2 jimmy@jimmycuadra.com todd.sifleet@gmail.com
allowance_target.py
in doubles/targets
21 4 2014-06-03 2018-07-29 12 5 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
class_double.py
in doubles
22 4 2014-06-28 2018-07-29 12 4 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
expectation.py
in doubles
27 7 2014-06-27 2018-07-23 11 4 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
25 2 2014-06-28 2015-03-17 10 2 jimmy@jimmycuadra.com todd.sifleet@gmail.com
10 1 2015-12-24 2018-07-23 9 3 todd.sifleet@gmail.com stas.kudriashev@gmail.com
12 2 2014-06-25 2015-03-17 9 3 jimmy@jimmycuadra.com todd.sifleet@gmail.com
nose.py
in doubles
17 2 2014-07-07 2018-07-29 8 6 toddsifleet@todds-macbook-p... stas.kudriashev@gmail.com
66 17 2014-07-24 2016-04-22 8 4 todd.sifleet@gmail.com denbeigh@uber.com
patch.py
in doubles
18 4 2015-02-06 2018-07-29 4 2 todd.sifleet@gmail.com stas.kudriashev@gmail.com
cfg
setup.cfg
in root
5 - 2014-06-06 2018-07-01 3 2 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
utils.py
in doubles
14 2 2015-02-06 2015-03-17 3 1 todd.sifleet@gmail.com todd.sifleet@gmail.com
unittest.py
in doubles
14 3 2014-06-26 2018-07-29 3 2 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
8 2 2014-11-05 2014-11-06 2 1 todd.sifleet@gmail.com todd.sifleet@gmail.com
patch_target.py
in doubles/targets
10 2 2015-02-06 2018-07-29 2 2 todd.sifleet@gmail.com stas.kudriashev@gmail.com
__init__.py
in doubles/targets
1 - 2014-06-03 2014-06-03 1 1 jimmy@jimmycuadra.com jimmy@jimmycuadra.com
Files With Most Contributors (Top 28)
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
allowance.py
in doubles
182 30 2014-06-27 2018-09-12 32 9 jimmy@jimmycuadra.com skudri@ext.uber.com
__init__.py
in doubles
13 - 2014-05-30 2018-10-25 38 8 jimmy@jimmycuadra.com skudri@ext.uber.com
proxy_method.py
in doubles
87 12 2014-07-08 2018-10-06 29 8 todd.sifleet@gmail.com charlesaxel.dein@gmail.com
testing.py
in doubles
99 29 2014-06-26 2018-07-23 25 7 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
nose.py
in doubles
17 2 2014-07-07 2018-07-29 8 6 toddsifleet@todds-macbook-p... stas.kudriashev@gmail.com
verification.py
in doubles
88 10 2014-06-28 2018-07-29 29 5 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
target.py
in doubles
75 11 2014-07-09 2018-07-29 24 5 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
expectation_target.py
in doubles/targets
21 4 2014-06-03 2018-07-29 13 5 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
setup.py
in root
49 2 2014-06-20 2018-10-25 13 5 jimmy@jimmycuadra.com skudri@ext.uber.com
allowance_target.py
in doubles/targets
21 4 2014-06-03 2018-07-29 12 5 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
lifecycle.py
in doubles
28 6 2014-06-03 2018-07-29 16 4 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
space.py
in doubles
31 6 2014-06-03 2018-07-29 16 4 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
class_double.py
in doubles
22 4 2014-06-28 2018-07-29 12 4 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
expectation.py
in doubles
27 7 2014-06-27 2018-07-23 11 4 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
66 17 2014-07-24 2016-04-22 8 4 todd.sifleet@gmail.com denbeigh@uber.com
exceptions.py
in doubles
27 5 2014-06-20 2015-03-18 15 3 jimmy@jimmycuadra.com todd.sifleet@gmail.com
12 2 2014-06-25 2015-03-17 9 3 jimmy@jimmycuadra.com todd.sifleet@gmail.com
10 1 2015-12-24 2018-07-23 9 3 todd.sifleet@gmail.com stas.kudriashev@gmail.com
60 9 2014-06-06 2018-03-28 19 2 jimmy@jimmycuadra.com todd.sifleet@gmail.com
proxy.py
in doubles
20 6 2014-06-03 2015-03-17 12 2 jimmy@jimmycuadra.com todd.sifleet@gmail.com
25 2 2014-06-28 2015-03-17 10 2 jimmy@jimmycuadra.com todd.sifleet@gmail.com
patch.py
in doubles
18 4 2015-02-06 2018-07-29 4 2 todd.sifleet@gmail.com stas.kudriashev@gmail.com
unittest.py
in doubles
14 3 2014-06-26 2018-07-29 3 2 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
cfg
setup.cfg
in root
5 - 2014-06-06 2018-07-01 3 2 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
patch_target.py
in doubles/targets
10 2 2015-02-06 2018-07-29 2 2 todd.sifleet@gmail.com stas.kudriashev@gmail.com
utils.py
in doubles
14 2 2015-02-06 2015-03-17 3 1 todd.sifleet@gmail.com todd.sifleet@gmail.com
8 2 2014-11-05 2014-11-06 2 1 todd.sifleet@gmail.com todd.sifleet@gmail.com
__init__.py
in doubles/targets
1 - 2014-06-03 2014-06-03 1 1 jimmy@jimmycuadra.com jimmy@jimmycuadra.com
Files With Least Contributors (Top 28)
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
utils.py
in doubles
14 2 2015-02-06 2015-03-17 3 1 todd.sifleet@gmail.com todd.sifleet@gmail.com
8 2 2014-11-05 2014-11-06 2 1 todd.sifleet@gmail.com todd.sifleet@gmail.com
__init__.py
in doubles/targets
1 - 2014-06-03 2014-06-03 1 1 jimmy@jimmycuadra.com jimmy@jimmycuadra.com
60 9 2014-06-06 2018-03-28 19 2 jimmy@jimmycuadra.com todd.sifleet@gmail.com
25 2 2014-06-28 2015-03-17 10 2 jimmy@jimmycuadra.com todd.sifleet@gmail.com
proxy.py
in doubles
20 6 2014-06-03 2015-03-17 12 2 jimmy@jimmycuadra.com todd.sifleet@gmail.com
patch.py
in doubles
18 4 2015-02-06 2018-07-29 4 2 todd.sifleet@gmail.com stas.kudriashev@gmail.com
unittest.py
in doubles
14 3 2014-06-26 2018-07-29 3 2 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
patch_target.py
in doubles/targets
10 2 2015-02-06 2018-07-29 2 2 todd.sifleet@gmail.com stas.kudriashev@gmail.com
cfg
setup.cfg
in root
5 - 2014-06-06 2018-07-01 3 2 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
exceptions.py
in doubles
27 5 2014-06-20 2015-03-18 15 3 jimmy@jimmycuadra.com todd.sifleet@gmail.com
12 2 2014-06-25 2015-03-17 9 3 jimmy@jimmycuadra.com todd.sifleet@gmail.com
10 1 2015-12-24 2018-07-23 9 3 todd.sifleet@gmail.com stas.kudriashev@gmail.com
66 17 2014-07-24 2016-04-22 8 4 todd.sifleet@gmail.com denbeigh@uber.com
space.py
in doubles
31 6 2014-06-03 2018-07-29 16 4 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
lifecycle.py
in doubles
28 6 2014-06-03 2018-07-29 16 4 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
expectation.py
in doubles
27 7 2014-06-27 2018-07-23 11 4 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
class_double.py
in doubles
22 4 2014-06-28 2018-07-29 12 4 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
verification.py
in doubles
88 10 2014-06-28 2018-07-29 29 5 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
target.py
in doubles
75 11 2014-07-09 2018-07-29 24 5 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
setup.py
in root
49 2 2014-06-20 2018-10-25 13 5 jimmy@jimmycuadra.com skudri@ext.uber.com
expectation_target.py
in doubles/targets
21 4 2014-06-03 2018-07-29 13 5 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
allowance_target.py
in doubles/targets
21 4 2014-06-03 2018-07-29 12 5 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
nose.py
in doubles
17 2 2014-07-07 2018-07-29 8 6 toddsifleet@todds-macbook-p... stas.kudriashev@gmail.com
testing.py
in doubles
99 29 2014-06-26 2018-07-23 25 7 jimmy@jimmycuadra.com stas.kudriashev@gmail.com
proxy_method.py
in doubles
87 12 2014-07-08 2018-10-06 29 8 todd.sifleet@gmail.com charlesaxel.dein@gmail.com
__init__.py
in doubles
13 - 2014-05-30 2018-10-25 38 8 jimmy@jimmycuadra.com skudri@ext.uber.com
allowance.py
in doubles
182 30 2014-06-27 2018-09-12 32 9 jimmy@jimmycuadra.com skudri@ext.uber.com
Correlations

File Size vs. Number of Changes: 28 points

doubles/__init__.py x: 13 lines of code y: 38 # changes setup.py x: 49 lines of code y: 13 # changes doubles/proxy_method.py x: 87 lines of code y: 29 # changes doubles/allowance.py x: 182 lines of code y: 32 # changes doubles/class_double.py x: 22 lines of code y: 12 # changes doubles/lifecycle.py x: 28 lines of code y: 16 # changes doubles/nose.py x: 17 lines of code y: 8 # changes doubles/patch.py x: 18 lines of code y: 4 # changes doubles/space.py x: 31 lines of code y: 16 # changes doubles/target.py x: 75 lines of code y: 24 # changes doubles/targets/allowance_target.py x: 21 lines of code y: 12 # changes doubles/targets/expectation_target.py x: 21 lines of code y: 13 # changes doubles/targets/patch_target.py x: 10 lines of code y: 2 # changes doubles/unittest.py x: 14 lines of code y: 3 # changes doubles/verification.py x: 88 lines of code y: 29 # changes doubles/expectation.py x: 27 lines of code y: 11 # changes doubles/testing.py x: 99 lines of code y: 25 # changes doubles/pytest_plugin.py x: 10 lines of code y: 9 # changes setup.cfg x: 5 lines of code y: 3 # changes doubles/method_double.py x: 60 lines of code y: 19 # changes doubles/call_count_accumulator.py x: 66 lines of code y: 8 # changes doubles/exceptions.py x: 27 lines of code y: 15 # changes doubles/instance_double.py x: 25 lines of code y: 10 # changes doubles/object_double.py x: 12 lines of code y: 9 # changes doubles/proxy.py x: 20 lines of code y: 12 # changes doubles/proxy_property.py x: 8 lines of code y: 2 # changes doubles/targets/__init__.py x: 1 lines of code y: 1 # changes
38.0
# changes
  min: 1.0
  average: 13.5
  25th percentile: 5.0
  median: 12.0
  75th percentile: 18.25
  max: 38.0
0 182.0
lines of code
min: 1.0 | average: 37.5 | 25th percentile: 13.25 | median: 21.5 | 75th percentile: 57.25 | max: 182.0

Number of Contributors vs. Number of Changes: 28 points

doubles/__init__.py x: 8 # contributors y: 38 # changes setup.py x: 5 # contributors y: 13 # changes doubles/proxy_method.py x: 8 # contributors y: 29 # changes doubles/allowance.py x: 9 # contributors y: 32 # changes doubles/class_double.py x: 4 # contributors y: 12 # changes doubles/lifecycle.py x: 4 # contributors y: 16 # changes doubles/nose.py x: 6 # contributors y: 8 # changes doubles/patch.py x: 2 # contributors y: 4 # changes doubles/target.py x: 5 # contributors y: 24 # changes doubles/targets/allowance_target.py x: 5 # contributors y: 12 # changes doubles/targets/patch_target.py x: 2 # contributors y: 2 # changes doubles/unittest.py x: 2 # contributors y: 3 # changes doubles/verification.py x: 5 # contributors y: 29 # changes doubles/expectation.py x: 4 # contributors y: 11 # changes doubles/testing.py x: 7 # contributors y: 25 # changes doubles/pytest_plugin.py x: 3 # contributors y: 9 # changes doubles/method_double.py x: 2 # contributors y: 19 # changes doubles/call_count_accumulator.py x: 4 # contributors y: 8 # changes doubles/exceptions.py x: 3 # contributors y: 15 # changes doubles/instance_double.py x: 2 # contributors y: 10 # changes doubles/proxy.py x: 2 # contributors y: 12 # changes doubles/utils.py x: 1 # contributors y: 3 # changes doubles/proxy_property.py x: 1 # contributors y: 2 # changes doubles/targets/__init__.py x: 1 # contributors y: 1 # changes
38.0
# changes
  min: 1.0
  average: 13.5
  25th percentile: 5.0
  median: 12.0
  75th percentile: 18.25
  max: 38.0
0 9.0
# contributors
min: 1.0 | average: 3.89 | 25th percentile: 2.0 | median: 4.0 | 75th percentile: 5.0 | max: 9.0

Number of Contributors vs. File Size: 28 points

doubles/__init__.py x: 8 # contributors y: 13 lines of code setup.py x: 5 # contributors y: 49 lines of code doubles/proxy_method.py x: 8 # contributors y: 87 lines of code doubles/allowance.py x: 9 # contributors y: 182 lines of code doubles/class_double.py x: 4 # contributors y: 22 lines of code doubles/lifecycle.py x: 4 # contributors y: 28 lines of code doubles/nose.py x: 6 # contributors y: 17 lines of code doubles/patch.py x: 2 # contributors y: 18 lines of code doubles/space.py x: 4 # contributors y: 31 lines of code doubles/target.py x: 5 # contributors y: 75 lines of code doubles/targets/allowance_target.py x: 5 # contributors y: 21 lines of code doubles/targets/patch_target.py x: 2 # contributors y: 10 lines of code doubles/unittest.py x: 2 # contributors y: 14 lines of code doubles/verification.py x: 5 # contributors y: 88 lines of code doubles/expectation.py x: 4 # contributors y: 27 lines of code doubles/testing.py x: 7 # contributors y: 99 lines of code doubles/pytest_plugin.py x: 3 # contributors y: 10 lines of code setup.cfg x: 2 # contributors y: 5 lines of code doubles/method_double.py x: 2 # contributors y: 60 lines of code doubles/call_count_accumulator.py x: 4 # contributors y: 66 lines of code doubles/exceptions.py x: 3 # contributors y: 27 lines of code doubles/instance_double.py x: 2 # contributors y: 25 lines of code doubles/object_double.py x: 3 # contributors y: 12 lines of code doubles/proxy.py x: 2 # contributors y: 20 lines of code doubles/utils.py x: 1 # contributors y: 14 lines of code doubles/proxy_property.py x: 1 # contributors y: 8 lines of code doubles/targets/__init__.py x: 1 # contributors y: 1 lines of code
182.0
lines of code
  min: 1.0
  average: 37.5
  25th percentile: 13.25
  median: 21.5
  75th percentile: 57.25
  max: 182.0
0 9.0
# contributors
min: 1.0 | average: 3.89 | 25th percentile: 2.0 | median: 4.0 | 75th percentile: 5.0 | max: 9.0