Overview
File Change Frequency Overall
  • There are 27 files with 660 lines of code.
    • 0 files changed more than 100 times (0 lines of code)
    • 0 files changed 51-100 times (0 lines of code)
    • 0 files changed 21-50 times (0 lines of code)
    • 4 files changed 6-20 times (161 lines of code)
    • 23 files changed 1-5 times (499 lines of code)
0% | 0% | 0% | 24% | 75%
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 27 files with 660 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)
    • 0 files changed by 6-10 contributors (0 lines of code)
    • 5 files changed by 2-5 contributors (227 lines of code)
    • 22 files changed by 1 contributor (433 lines of code)
0% | 0% | 0% | 34% | 65%
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, txt, yml, md, in, cfg, gitignore
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
py0% | 0% | 0% | 24% | 75%
in0% | 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
spectator0% | 0% | 0% | 24% | 75%
ROOT0% | 0% | 0% | 0% | 100%
Most Frequently Changed Files (Top 27)

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
registry.py
in spectator
79 24 2018-04-09 2025-06-25 17 5 +318 / -437 dmuino mjjohnson33
__init__.py
in spectator
25 - 2019-08-15 2025-06-25 8 2 +71 / -35 mjjohnson33 mjjohnson33
file_writer.py
in spectator/writer
28 3 2024-07-12 2026-09-28 6 2 +50 / -12 mjjohnson33 64209066+kwy404
new_writer.py
in spectator/writer
29 1 2024-07-12 2026-09-01 6 1 +91 / -53 mjjohnson33 mjjohnson33
noop_writer.py
in spectator/writer
14 3 2024-07-12 2026-09-01 5 1 +25 / -4 mjjohnson33 mjjohnson33
config.py
in spectator
35 4 2024-07-12 2025-06-25 5 1 +107 / -28 mjjohnson33 mjjohnson33
monotonic_counter.py
in spectator/meter
13 2 2024-07-12 2025-06-25 4 1 +27 / -6 mjjohnson33 mjjohnson33
max_gauge.py
in spectator/meter
13 2 2024-07-12 2025-06-25 4 1 +27 / -6 mjjohnson33 mjjohnson33
counter.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +29 / -7 mjjohnson33 mjjohnson33
monotonic_counter_uint.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +32 / -8 mjjohnson33 mjjohnson33
percentile_dist_summary.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +35 / -6 mjjohnson33 mjjohnson33
timer.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +30 / -9 mjjohnson33 mjjohnson33
percentile_timer.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +33 / -6 mjjohnson33 mjjohnson33
dist_summary.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +30 / -6 mjjohnson33 mjjohnson33
age_gauge.py
in spectator/meter
16 3 2024-07-12 2025-06-25 4 1 +34 / -6 mjjohnson33 mjjohnson33
gauge.py
in spectator/meter
18 2 2024-07-12 2025-06-25 4 1 +36 / -7 mjjohnson33 mjjohnson33
memory_writer.py
in spectator/writer
20 7 2024-07-12 2025-10-02 4 1 +33 / -3 mjjohnson33 mjjohnson33
clock.py
in spectator
24 9 2022-04-07 2024-07-19 4 1 +55 / -61 mjjohnson33 mjjohnson33
socket_writer.py
in spectator/writer
91 9 2025-06-24 2026-09-24 4 2 +126 / -13 mjjohnson33 64209066+kwy404
protocol_parser.py
in spectator
37 2 2024-07-12 2025-10-02 3 1 +59 / -11 mjjohnson33 mjjohnson33
meter_id.py
in spectator/meter
53 11 2024-07-19 2025-10-02 3 1 +79 / -3 mjjohnson33 mjjohnson33
in
4 - 2024-07-12 2025-10-02 2 2 +2 / -0 mjjohnson33 carl-mastrangelo
__init__.py
in spectator/meter
10 2 2024-07-12 2024-07-19 2 1 +19 / -5 mjjohnson33 mjjohnson33
__init__.py
in spectator/writer
11 3 2024-07-12 2024-07-19 2 1 +16 / -1 mjjohnson33 mjjohnson33
common_tags.py
in spectator
25 3 2024-07-12 2025-10-02 2 1 +37 / -1 mjjohnson33 mjjohnson33
stopwatch.py
in spectator
14 4 2024-07-19 2024-07-19 1 1 +23 / -0 mjjohnson33 mjjohnson33
line_buffer.py
in spectator/writer
17 4 2025-06-24 2025-06-24 1 1 +25 / -0 mjjohnson33 mjjohnson33
Files With Most Churn (Top 27)
Based on the number of lines added and deleted across all commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
registry.py
in spectator
79 24 2018-04-09 2025-06-25 17 5 +318 / -437 dmuino mjjohnson33
new_writer.py
in spectator/writer
29 1 2024-07-12 2026-09-01 6 1 +91 / -53 mjjohnson33 mjjohnson33
socket_writer.py
in spectator/writer
91 9 2025-06-24 2026-09-24 4 2 +126 / -13 mjjohnson33 64209066+kwy404
config.py
in spectator
35 4 2024-07-12 2025-06-25 5 1 +107 / -28 mjjohnson33 mjjohnson33
clock.py
in spectator
24 9 2022-04-07 2024-07-19 4 1 +55 / -61 mjjohnson33 mjjohnson33
__init__.py
in spectator
25 - 2019-08-15 2025-06-25 8 2 +71 / -35 mjjohnson33 mjjohnson33
meter_id.py
in spectator/meter
53 11 2024-07-19 2025-10-02 3 1 +79 / -3 mjjohnson33 mjjohnson33
protocol_parser.py
in spectator
37 2 2024-07-12 2025-10-02 3 1 +59 / -11 mjjohnson33 mjjohnson33
file_writer.py
in spectator/writer
28 3 2024-07-12 2026-09-28 6 2 +50 / -12 mjjohnson33 64209066+kwy404
gauge.py
in spectator/meter
18 2 2024-07-12 2025-06-25 4 1 +36 / -7 mjjohnson33 mjjohnson33
percentile_dist_summary.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +35 / -6 mjjohnson33 mjjohnson33
monotonic_counter_uint.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +32 / -8 mjjohnson33 mjjohnson33
age_gauge.py
in spectator/meter
16 3 2024-07-12 2025-06-25 4 1 +34 / -6 mjjohnson33 mjjohnson33
timer.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +30 / -9 mjjohnson33 mjjohnson33
percentile_timer.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +33 / -6 mjjohnson33 mjjohnson33
common_tags.py
in spectator
25 3 2024-07-12 2025-10-02 2 1 +37 / -1 mjjohnson33 mjjohnson33
counter.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +29 / -7 mjjohnson33 mjjohnson33
dist_summary.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +30 / -6 mjjohnson33 mjjohnson33
memory_writer.py
in spectator/writer
20 7 2024-07-12 2025-10-02 4 1 +33 / -3 mjjohnson33 mjjohnson33
monotonic_counter.py
in spectator/meter
13 2 2024-07-12 2025-06-25 4 1 +27 / -6 mjjohnson33 mjjohnson33
max_gauge.py
in spectator/meter
13 2 2024-07-12 2025-06-25 4 1 +27 / -6 mjjohnson33 mjjohnson33
noop_writer.py
in spectator/writer
14 3 2024-07-12 2026-09-01 5 1 +25 / -4 mjjohnson33 mjjohnson33
line_buffer.py
in spectator/writer
17 4 2025-06-24 2025-06-24 1 1 +25 / -0 mjjohnson33 mjjohnson33
__init__.py
in spectator/meter
10 2 2024-07-12 2024-07-19 2 1 +19 / -5 mjjohnson33 mjjohnson33
stopwatch.py
in spectator
14 4 2024-07-19 2024-07-19 1 1 +23 / -0 mjjohnson33 mjjohnson33
__init__.py
in spectator/writer
11 3 2024-07-12 2024-07-19 2 1 +16 / -1 mjjohnson33 mjjohnson33
in
4 - 2024-07-12 2025-10-02 2 2 +2 / -0 mjjohnson33 carl-mastrangelo
Files With Most Contributors (Top 27)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
registry.py
in spectator
79 24 2018-04-09 2025-06-25 17 5 +318 / -437 dmuino mjjohnson33
__init__.py
in spectator
25 - 2019-08-15 2025-06-25 8 2 +71 / -35 mjjohnson33 mjjohnson33
file_writer.py
in spectator/writer
28 3 2024-07-12 2026-09-28 6 2 +50 / -12 mjjohnson33 64209066+kwy404
socket_writer.py
in spectator/writer
91 9 2025-06-24 2026-09-24 4 2 +126 / -13 mjjohnson33 64209066+kwy404
in
4 - 2024-07-12 2025-10-02 2 2 +2 / -0 mjjohnson33 carl-mastrangelo
new_writer.py
in spectator/writer
29 1 2024-07-12 2026-09-01 6 1 +91 / -53 mjjohnson33 mjjohnson33
config.py
in spectator
35 4 2024-07-12 2025-06-25 5 1 +107 / -28 mjjohnson33 mjjohnson33
noop_writer.py
in spectator/writer
14 3 2024-07-12 2026-09-01 5 1 +25 / -4 mjjohnson33 mjjohnson33
clock.py
in spectator
24 9 2022-04-07 2024-07-19 4 1 +55 / -61 mjjohnson33 mjjohnson33
memory_writer.py
in spectator/writer
20 7 2024-07-12 2025-10-02 4 1 +33 / -3 mjjohnson33 mjjohnson33
gauge.py
in spectator/meter
18 2 2024-07-12 2025-06-25 4 1 +36 / -7 mjjohnson33 mjjohnson33
dist_summary.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +30 / -6 mjjohnson33 mjjohnson33
percentile_timer.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +33 / -6 mjjohnson33 mjjohnson33
timer.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +30 / -9 mjjohnson33 mjjohnson33
percentile_dist_summary.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +35 / -6 mjjohnson33 mjjohnson33
max_gauge.py
in spectator/meter
13 2 2024-07-12 2025-06-25 4 1 +27 / -6 mjjohnson33 mjjohnson33
age_gauge.py
in spectator/meter
16 3 2024-07-12 2025-06-25 4 1 +34 / -6 mjjohnson33 mjjohnson33
monotonic_counter_uint.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +32 / -8 mjjohnson33 mjjohnson33
monotonic_counter.py
in spectator/meter
13 2 2024-07-12 2025-06-25 4 1 +27 / -6 mjjohnson33 mjjohnson33
counter.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +29 / -7 mjjohnson33 mjjohnson33
protocol_parser.py
in spectator
37 2 2024-07-12 2025-10-02 3 1 +59 / -11 mjjohnson33 mjjohnson33
meter_id.py
in spectator/meter
53 11 2024-07-19 2025-10-02 3 1 +79 / -3 mjjohnson33 mjjohnson33
common_tags.py
in spectator
25 3 2024-07-12 2025-10-02 2 1 +37 / -1 mjjohnson33 mjjohnson33
__init__.py
in spectator/writer
11 3 2024-07-12 2024-07-19 2 1 +16 / -1 mjjohnson33 mjjohnson33
__init__.py
in spectator/meter
10 2 2024-07-12 2024-07-19 2 1 +19 / -5 mjjohnson33 mjjohnson33
stopwatch.py
in spectator
14 4 2024-07-19 2024-07-19 1 1 +23 / -0 mjjohnson33 mjjohnson33
line_buffer.py
in spectator/writer
17 4 2025-06-24 2025-06-24 1 1 +25 / -0 mjjohnson33 mjjohnson33
Files With Least Contributors (Top 27)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
meter_id.py
in spectator/meter
53 11 2024-07-19 2025-10-02 3 1 +79 / -3 mjjohnson33 mjjohnson33
protocol_parser.py
in spectator
37 2 2024-07-12 2025-10-02 3 1 +59 / -11 mjjohnson33 mjjohnson33
config.py
in spectator
35 4 2024-07-12 2025-06-25 5 1 +107 / -28 mjjohnson33 mjjohnson33
new_writer.py
in spectator/writer
29 1 2024-07-12 2026-09-01 6 1 +91 / -53 mjjohnson33 mjjohnson33
common_tags.py
in spectator
25 3 2024-07-12 2025-10-02 2 1 +37 / -1 mjjohnson33 mjjohnson33
clock.py
in spectator
24 9 2022-04-07 2024-07-19 4 1 +55 / -61 mjjohnson33 mjjohnson33
memory_writer.py
in spectator/writer
20 7 2024-07-12 2025-10-02 4 1 +33 / -3 mjjohnson33 mjjohnson33
gauge.py
in spectator/meter
18 2 2024-07-12 2025-06-25 4 1 +36 / -7 mjjohnson33 mjjohnson33
line_buffer.py
in spectator/writer
17 4 2025-06-24 2025-06-24 1 1 +25 / -0 mjjohnson33 mjjohnson33
age_gauge.py
in spectator/meter
16 3 2024-07-12 2025-06-25 4 1 +34 / -6 mjjohnson33 mjjohnson33
stopwatch.py
in spectator
14 4 2024-07-19 2024-07-19 1 1 +23 / -0 mjjohnson33 mjjohnson33
noop_writer.py
in spectator/writer
14 3 2024-07-12 2026-09-01 5 1 +25 / -4 mjjohnson33 mjjohnson33
dist_summary.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +30 / -6 mjjohnson33 mjjohnson33
percentile_timer.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +33 / -6 mjjohnson33 mjjohnson33
timer.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +30 / -9 mjjohnson33 mjjohnson33
percentile_dist_summary.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +35 / -6 mjjohnson33 mjjohnson33
monotonic_counter_uint.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +32 / -8 mjjohnson33 mjjohnson33
counter.py
in spectator/meter
14 2 2024-07-12 2025-06-25 4 1 +29 / -7 mjjohnson33 mjjohnson33
max_gauge.py
in spectator/meter
13 2 2024-07-12 2025-06-25 4 1 +27 / -6 mjjohnson33 mjjohnson33
monotonic_counter.py
in spectator/meter
13 2 2024-07-12 2025-06-25 4 1 +27 / -6 mjjohnson33 mjjohnson33
__init__.py
in spectator/writer
11 3 2024-07-12 2024-07-19 2 1 +16 / -1 mjjohnson33 mjjohnson33
__init__.py
in spectator/meter
10 2 2024-07-12 2024-07-19 2 1 +19 / -5 mjjohnson33 mjjohnson33
socket_writer.py
in spectator/writer
91 9 2025-06-24 2026-09-24 4 2 +126 / -13 mjjohnson33 64209066+kwy404
file_writer.py
in spectator/writer
28 3 2024-07-12 2026-09-28 6 2 +50 / -12 mjjohnson33 64209066+kwy404
__init__.py
in spectator
25 - 2019-08-15 2025-06-25 8 2 +71 / -35 mjjohnson33 mjjohnson33
in
4 - 2024-07-12 2025-10-02 2 2 +2 / -0 mjjohnson33 carl-mastrangelo
registry.py
in spectator
79 24 2018-04-09 2025-06-25 17 5 +318 / -437 dmuino mjjohnson33
Correlations

File Size vs. Number of Changes: 27 points

spectator/writer/file_writer.py x: 28 lines of code y: 6 # changes spectator/writer/socket_writer.py x: 91 lines of code y: 4 # changes spectator/writer/new_writer.py x: 29 lines of code y: 6 # changes spectator/writer/noop_writer.py x: 14 lines of code y: 5 # changes MANIFEST.in x: 4 lines of code y: 2 # changes spectator/common_tags.py x: 25 lines of code y: 2 # changes spectator/meter/meter_id.py x: 53 lines of code y: 3 # changes spectator/protocol_parser.py x: 37 lines of code y: 3 # changes spectator/writer/memory_writer.py x: 20 lines of code y: 4 # changes spectator/__init__.py x: 25 lines of code y: 8 # changes spectator/config.py x: 35 lines of code y: 5 # changes spectator/meter/age_gauge.py x: 16 lines of code y: 4 # changes spectator/meter/counter.py x: 14 lines of code y: 4 # changes spectator/meter/gauge.py x: 18 lines of code y: 4 # changes spectator/meter/max_gauge.py x: 13 lines of code y: 4 # changes spectator/registry.py x: 79 lines of code y: 17 # changes spectator/writer/line_buffer.py x: 17 lines of code y: 1 # changes spectator/clock.py x: 24 lines of code y: 4 # changes spectator/meter/__init__.py x: 10 lines of code y: 2 # changes spectator/stopwatch.py x: 14 lines of code y: 1 # changes spectator/writer/__init__.py x: 11 lines of code y: 2 # changes
17.0
# changes
  min: 1.0
  average: 4.26
  25th percentile: 3.0
  median: 4.0
  75th percentile: 4.0
  max: 17.0
0 91.0
lines of code
min: 4.0 | average: 24.44 | 25th percentile: 14.0 | median: 16.0 | 75th percentile: 28.0 | max: 91.0

Number of Contributors vs. Number of Changes: 27 points

spectator/writer/file_writer.py x: 2 # contributors y: 6 # changes spectator/writer/socket_writer.py x: 2 # contributors y: 4 # changes spectator/writer/new_writer.py x: 1 # contributors y: 6 # changes spectator/writer/noop_writer.py x: 1 # contributors y: 5 # changes MANIFEST.in x: 2 # contributors y: 2 # changes spectator/common_tags.py x: 1 # contributors y: 2 # changes spectator/meter/meter_id.py x: 1 # contributors y: 3 # changes spectator/writer/memory_writer.py x: 1 # contributors y: 4 # changes spectator/__init__.py x: 2 # contributors y: 8 # changes spectator/registry.py x: 5 # contributors y: 17 # changes spectator/writer/line_buffer.py x: 1 # contributors y: 1 # changes
17.0
# changes
  min: 1.0
  average: 4.26
  25th percentile: 3.0
  median: 4.0
  75th percentile: 4.0
  max: 17.0
0 5.0
# contributors
min: 1.0 | average: 1.3 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 1.0 | max: 5.0

Number of Contributors vs. File Size: 27 points

spectator/writer/file_writer.py x: 2 # contributors y: 28 lines of code spectator/writer/socket_writer.py x: 2 # contributors y: 91 lines of code spectator/writer/new_writer.py x: 1 # contributors y: 29 lines of code spectator/writer/noop_writer.py x: 1 # contributors y: 14 lines of code MANIFEST.in x: 2 # contributors y: 4 lines of code spectator/common_tags.py x: 1 # contributors y: 25 lines of code spectator/meter/meter_id.py x: 1 # contributors y: 53 lines of code spectator/protocol_parser.py x: 1 # contributors y: 37 lines of code spectator/writer/memory_writer.py x: 1 # contributors y: 20 lines of code spectator/__init__.py x: 2 # contributors y: 25 lines of code spectator/config.py x: 1 # contributors y: 35 lines of code spectator/meter/age_gauge.py x: 1 # contributors y: 16 lines of code spectator/meter/gauge.py x: 1 # contributors y: 18 lines of code spectator/meter/max_gauge.py x: 1 # contributors y: 13 lines of code spectator/registry.py x: 5 # contributors y: 79 lines of code spectator/writer/line_buffer.py x: 1 # contributors y: 17 lines of code spectator/clock.py x: 1 # contributors y: 24 lines of code spectator/meter/__init__.py x: 1 # contributors y: 10 lines of code spectator/writer/__init__.py x: 1 # contributors y: 11 lines of code
91.0
lines of code
  min: 4.0
  average: 24.44
  25th percentile: 14.0
  median: 16.0
  75th percentile: 28.0
  max: 91.0
0 5.0
# contributors
min: 1.0 | average: 1.3 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 1.0 | max: 5.0

Number of Changes vs. Line Churn: 104 points

spectator/writer/file_writer.py x: 6 # changes y: 62 line churn tests/writer/test_file_writer.py x: 4 # changes y: 58 line churn spectator/writer/socket_writer.py x: 4 # changes y: 139 line churn tests/writer/test_socket_writer_unix.py x: 3 # changes y: 26 line churn setup.cfg x: 13 # changes y: 61 line churn spectator/writer/new_writer.py x: 6 # changes y: 144 line churn spectator/writer/noop_writer.py x: 5 # changes y: 29 line churn tests/writer/test_noop_writer.py x: 6 # changes y: 43 line churn MANIFEST.in x: 2 # changes y: 2 line churn .github/workflows/pr.yml x: 8 # changes y: 82 line churn .github/workflows/snapshot.yml x: 9 # changes y: 88 line churn Makefile x: 3 # changes y: 137 line churn spectator/common_tags.py x: 2 # changes y: 38 line churn spectator/meter/meter_id.py x: 3 # changes y: 82 line churn spectator/protocol_parser.py x: 3 # changes y: 70 line churn spectator/writer/memory_writer.py x: 4 # changes y: 36 line churn tests/test_config.py x: 6 # changes y: 118 line churn spectator/__init__.py x: 8 # changes y: 106 line churn spectator/config.py x: 5 # changes y: 135 line churn spectator/meter/gauge.py x: 4 # changes y: 43 line churn spectator/meter/max_gauge.py x: 4 # changes y: 33 line churn spectator/registry.py x: 17 # changes y: 755 line churn tests/meter/test_meter_id.py x: 4 # changes y: 135 line churn tests/writer/test_memory_writer.py x: 3 # changes y: 29 line churn tests/writer/test_new_writer.py x: 2 # changes y: 69 line churn tests/writer/test_socket_writer_udp.py x: 2 # changes y: 27 line churn spectator/writer/line_buffer.py x: 1 # changes y: 25 line churn spectator/writer/udp_writer.py x: 4 # changes y: 104 line churn spectator/writer/unix_writer.py x: 2 # changes y: 70 line churn tests/writer/test_line_buffer.py x: 1 # changes y: 28 line churn tests/writer/test_udp_writer.py x: 3 # changes y: 130 line churn tests/writer/test_unix_writer.py x: 2 # changes y: 32 line churn tests/test_clock.py x: 4 # changes y: 155 line churn tests/test_registry.py x: 15 # changes y: 884 line churn tests/test_protocolparser.py x: 3 # changes y: 192 line churn .github/workflows/release.yml x: 8 # changes y: 98 line churn RELEASE_PROCESS.md x: 3 # changes y: 92 line churn setup.py x: 24 # changes y: 179 line churn spectator/clock.py x: 4 # changes y: 116 line churn spectator/meter/id.py x: 2 # changes y: 138 line churn spectator/writer/__init__.py x: 2 # changes y: 17 line churn tests/meter/test_id.py x: 2 # changes y: 208 line churn .pylintrc-relaxed x: 5 # changes y: 44 line churn spectator/commontags.py x: 2 # changes y: 46 line churn spectator/distsummary.py x: 3 # changes y: 169 line churn spectator/gauge.py x: 5 # changes y: 201 line churn spectator/histogram/percentiles.py x: 5 # changes y: 1238 line churn spectator/protocolparser.py x: 2 # changes y: 78 line churn spectator/sidecarconfig.py x: 3 # changes y: 142 line churn spectator/sidecarmeter.py x: 4 # changes y: 80 line churn spectator/sidecarwriter.py x: 6 # changes y: 297 line churn spectator/timer.py x: 3 # changes y: 226 line churn tests/histogram/test_percentiles.py x: 3 # changes y: 148 line churn tests/test_atomicnumber.py x: 2 # changes y: 85 line churn tests/test_commontags.py x: 2 # changes y: 120 line churn tests/test_distsummary.py x: 4 # changes y: 169 line churn tests/test_gauge.py x: 5 # changes y: 153 line churn tests/test_global_registry.py x: 1 # changes y: 16 line churn tests/test_sidecarconfig.py x: 4 # changes y: 176 line churn tests/test_sidecarmeter.py x: 3 # changes y: 56 line churn tests/test_udpwriter.py x: 2 # changes y: 128 line churn README.md x: 24 # changes y: 1759 line churn spectator/http.py x: 2 # changes y: 162 line churn tests/test_percentiles.py x: 3 # changes y: 294 line churn .gitignore x: 1 # changes y: 111 line churn tox.ini x: 12 # changes y: 64 line churn .travis.yml x: 9 # changes y: 38 line churn OSSMETADATA x: 1 # changes y: 1 line churn
1759.0
line churn
  min: 1.0
  average: 126.74
  25th percentile: 37.0
  median: 68.5
  75th percentile: 136.5
  max: 1759.0
0 24.0
# changes
min: 1.0 | average: 4.36 | 25th percentile: 2.0 | median: 4.0 | 75th percentile: 4.0 | max: 24.0

Number of Contributors vs. Line Churn: 27 points

spectator/writer/file_writer.py x: 2 # contributors y: 62 line churn spectator/writer/socket_writer.py x: 2 # contributors y: 139 line churn spectator/writer/new_writer.py x: 1 # contributors y: 144 line churn spectator/writer/noop_writer.py x: 1 # contributors y: 29 line churn MANIFEST.in x: 2 # contributors y: 2 line churn spectator/common_tags.py x: 1 # contributors y: 38 line churn spectator/meter/meter_id.py x: 1 # contributors y: 82 line churn spectator/protocol_parser.py x: 1 # contributors y: 70 line churn spectator/__init__.py x: 2 # contributors y: 106 line churn spectator/config.py x: 1 # contributors y: 135 line churn spectator/meter/age_gauge.py x: 1 # contributors y: 40 line churn spectator/meter/gauge.py x: 1 # contributors y: 43 line churn spectator/meter/max_gauge.py x: 1 # contributors y: 33 line churn spectator/registry.py x: 5 # contributors y: 755 line churn spectator/writer/line_buffer.py x: 1 # contributors y: 25 line churn spectator/clock.py x: 1 # contributors y: 116 line churn spectator/stopwatch.py x: 1 # contributors y: 23 line churn spectator/writer/__init__.py x: 1 # contributors y: 17 line churn
755.0
line churn
  min: 2.0
  average: 80.85
  25th percentile: 33.0
  median: 39.0
  75th percentile: 82.0
  max: 755.0
0 5.0
# contributors
min: 1.0 | average: 1.3 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 1.0 | max: 5.0

File Size vs. Line Churn: 27 points

spectator/writer/file_writer.py x: 28 lines of code y: 62 line churn spectator/writer/socket_writer.py x: 91 lines of code y: 139 line churn spectator/writer/new_writer.py x: 29 lines of code y: 144 line churn spectator/writer/noop_writer.py x: 14 lines of code y: 29 line churn MANIFEST.in x: 4 lines of code y: 2 line churn spectator/common_tags.py x: 25 lines of code y: 38 line churn spectator/meter/meter_id.py x: 53 lines of code y: 82 line churn spectator/protocol_parser.py x: 37 lines of code y: 70 line churn spectator/writer/memory_writer.py x: 20 lines of code y: 36 line churn spectator/__init__.py x: 25 lines of code y: 106 line churn spectator/config.py x: 35 lines of code y: 135 line churn spectator/meter/age_gauge.py x: 16 lines of code y: 40 line churn spectator/meter/counter.py x: 14 lines of code y: 36 line churn spectator/meter/gauge.py x: 18 lines of code y: 43 line churn spectator/meter/max_gauge.py x: 13 lines of code y: 33 line churn spectator/meter/monotonic_counter_uint.py x: 14 lines of code y: 40 line churn spectator/registry.py x: 79 lines of code y: 755 line churn spectator/writer/line_buffer.py x: 17 lines of code y: 25 line churn spectator/clock.py x: 24 lines of code y: 116 line churn spectator/meter/__init__.py x: 10 lines of code y: 24 line churn spectator/stopwatch.py x: 14 lines of code y: 23 line churn spectator/writer/__init__.py x: 11 lines of code y: 17 line churn
755.0
line churn
  min: 2.0
  average: 80.85
  25th percentile: 33.0
  median: 39.0
  75th percentile: 82.0
  max: 755.0
0 91.0
lines of code
min: 4.0 | average: 24.44 | 25th percentile: 14.0 | median: 16.0 | 75th percentile: 28.0 | max: 91.0