)]}'
{"swift/cli/manage_shard_ranges.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"86d9746417650d7d0fa67fba0827fb658faedc2f","unresolved":true,"context_lines":[{"line_number":682,"context_line":""},{"line_number":683,"context_line":"def analyze_shard_populations(shard_ranges, num_buckets\u003d40):"},{"line_number":684,"context_line":"    object_counts \u003d sorted([sr.object_count for sr in shard_ranges])"},{"line_number":685,"context_line":"    max_count \u003d object_counts[-1]"},{"line_number":686,"context_line":"    bucket_span \u003d max_count / num_buckets"},{"line_number":687,"context_line":"    nice_span \u003d 1"},{"line_number":688,"context_line":"    while bucket_span \u003e 10 * nice_span:"},{"line_number":689,"context_line":"        nice_span *\u003d 10"},{"line_number":690,"context_line":"    bucket_span \u003d nice_span"},{"line_number":691,"context_line":"    while bucket_span * num_buckets \u003c max_count:"},{"line_number":692,"context_line":"        bucket_span +\u003d nice_span"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    buckets \u003d {}"},{"line_number":695,"context_line":"    bucket_end \u003d bucket_span"},{"line_number":696,"context_line":"    bucket_count \u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"0743f876_65bde1df","line":693,"range":{"start_line":685,"start_character":4,"end_line":693,"end_character":0},"updated":"2021-05-14 14:03:38.000000000","message":"I feel that there must be a cleverer way to do this...I want buckets to be \u0027nice\u0027 sizes, like 100000 or 200000, but not 102345, andI want it to scale for arbitrary max count, so the bar chart spans just far enough to include all the counts","commit_id":"52dd88c262f7697981746db071eb1607677d1c9e"}]}
