<commit_before><div class="version-info">
{% if data.comment %}
<h4>{{ __("Comment") + " (" + data.comment_type }})</h4>
<p>{{ data.comment }}</p>
{% endif %}

{% if data.changed && data.changed.length %}
<h4>{{ __("Values Changed") }}</h4>
<table class="table table-bordered">
	<thead>
		<tr>
			<td style="width: 33%">{{ __("Property") }}</td>
			<td style="width: 33%">{{ __("Original Value") }}</td>
			<td style="width: 33%">{{ __("New Value") }}</td>
		</tr>
	</thead>
	<tbody>
		{% for item in data.changed %}
		<tr>
			<td>{{ frappe.meta.get_label(doc.ref_doctype, item[0]) }}</td>
			<td class="danger">{{ item[1] }}</td>
			<td class="success">{{ item[2] }}</td>
		</tr>
		{% endif %}
	</tbody>
</table>
{% endif %}

{% var _keys = ["added", "removed"]; %}
{% for key in _keys %}
	{% if data[key] && data[key].length %}
	{% var title = key==="added" ? __("Rows Added") : __("Rows Removed"); %}
	<h3>{{ title }}</h3>
	<table class="table table-bordered">
		<thead>
			<tr>
				<td style="width: 33%">{{ __("Property") }}</td>
				<td style="width: 67%">{{ title }}</td>
			</tr>
		</thead>
		<tbody>
			{% var values = data[key]; %}
			{% for item in values %}
			<tr>
				<td>{{ frappe.meta.get_label(doc.ref_doctype, item[0]) }}</td>
				<td class="{{
					key==="added" ? __("success") : __("danger") }}">
					{% var item_keys = keys(item[1]).sort(); %}
					<table class="table table-bordered">
						<tbody>
							{% for row_key in item_keys %}
							<tr>
								<td class="small">{{ row_key }}</td><commit_msg>fix keys not defined error (#5023)<commit_after><div class="version-info">
{% if data.comment %}
<h4>{{ __("Comment") + " (" + data.comment_type }})</h4>
<p>{{ data.comment }}</p>
{% endif %}

{% if data.changed && data.changed.length %}
<h4>{{ __("Values Changed") }}</h4>
<table class="table table-bordered">
	<thead>
		<tr>
			<td style="width: 33%">{{ __("Property") }}</td>
			<td style="width: 33%">{{ __("Original Value") }}</td>
			<td style="width: 33%">{{ __("New Value") }}</td>
		</tr>
	</thead>
	<tbody>
		{% for item in data.changed %}
		<tr>
			<td>{{ frappe.meta.get_label(doc.ref_doctype, item[0]) }}</td>
			<td class="danger">{{ item[1] }}</td>
			<td class="success">{{ item[2] }}</td>
		</tr>
		{% endif %}
	</tbody>
</table>
{% endif %}

{% var _keys = ["added", "removed"]; %}
{% for key in _keys %}
	{% if data[key] && data[key].length %}
	{% var title = key==="added" ? __("Rows Added") : __("Rows Removed"); %}
	<h3>{{ title }}</h3>
	<table class="table table-bordered">
		<thead>
			<tr>
				<td style="width: 33%">{{ __("Property") }}</td>
				<td style="width: 67%">{{ title }}</td>
			</tr>
		</thead>
		<tbody>
			{% var values = data[key]; %}
			{% for item in values %}
			<tr>
				<td>{{ frappe.meta.get_label(doc.ref_doctype, item[0]) }}</td>
				<td class="{{
					key==="added" ? __("success") : __("danger") }}">
					{% var item_keys = Object.keys(item[1]).sort(); %}
					<table class="table table-bordered">
						<tbody>
							{% for row_key in item_keys %}
							<tr>
								<td class="small">{{ row_key }}</td>
{'fraction_non_alphanumeric': 0.26895657809462087, 'fraction_numerical': 0.014906027219701879, 'mean_word_length': 3.493449781659389, 'pattern_counts': {'":': 0, '<': 103, '<?xml version=': 0, '>': 103, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3391478', 'n_tokens_mistral': 1449, 'n_tokens_neox': 1180, 'n_words': 280}