DEFAULT_BUCKET = "lava"
+def json_type(string):
+ """
+ Argpase type for json args.
+ We expect a base dictionary.
+ """
+ passed_json = json.loads(string)
+ if not isinstance(passed_json, dict):
+ msg = "%r is not a dict" % string
+ raise argparse.ArgumentTypeError(msg)
+ return passed_json
+
def graph_get_color(branch):
"""
Get the color matching the branch.
plt.ylabel("User + system time (s)")
plt.xlabel("Latest commits")
plt.legend()
+ plt.grid(True)
# Put tick on the right side
ax.tick_params(labeltop=False, labelright=True)
plt.tight_layout()
return
-def plot_delta_between_point(branch, benchmark_type, x_data, y_data, labels, latest_values):
+
+def plot_delta_between_point(
+ branch, benchmark_type, x_data, y_data, labels, latest_values
+):
"""
Plot the graph of delta between each sequential commit.
"""
ax = plt.gca()
plt.xticks(x_data, labels, rotation=90, family="monospace")
- plt.title(graph_get_title(branch, benchmark_type) + " Delta to previous commit", fontweight="bold")
+ plt.title(
+ graph_get_title(branch, benchmark_type) + " Delta to previous commit",
+ fontweight="bold",
+ )
plt.ylabel("Seconds")
plt.xlabel("Latest commits")
plt.legend()
+ plt.grid(True)
# Put tick on the right side
ax.tick_params(labeltop=False, labelright=True)
plt.tight_layout()
return
+
def plot_ratio(branch, benchmark_type, x_data, y_data, labels, latest_values):
"""
Plot the graph using a ratio using first point as reference (0%).
plt.ylabel("Ratio")
plt.xlabel("Latest commits")
plt.legend()
+ plt.grid(True)
# Put tick on the right side
ax.tick_params(labeltop=False, labelright=True)
plt.tight_layout()
return
+
def generate_graph(branches, report_name, git_path):
# The PDF document
pdf_pages.savefig(fig)
fig = plt.figure(figsize=(width, 8.27), dpi=100)
- plot_delta_between_point(branch, b_type, x_data, y_data, labels, latest_values)
+ plot_delta_between_point(
+ branch, b_type, x_data, y_data, labels, latest_values
+ )
pdf_pages.savefig(fig)
pdf_pages.close()
parser.add_argument(
"--repo-path", help="The location of the git repo to use.", required=True
)
+ parser.add_argument(
+ "--overwrite-branches-cutoff",
+ help="A dictionary of the form {"
+ "'branch_name': 'commit_hash_cutoff',...}. Allow custom graphing and"
+ "jobs generation.",
+ required=False, type=json_type
+ )
args = parser.parse_args()
+ if args.overwrite_branches_cutoff:
+ bt_branches = args.overwrite_branches_cutoff
+
if not os.path.exists(args.repo_path):
print("Repository location does not exists.")
return 1