Team Ai
Apppublic

build-small-hackathon/git-commit-app

sourceHugging Faceupdated 4mo agoView on Hugging Face
3likes
git_graph.cpython-311.pyc80 linesDownload Raw Back to __pycache__
1�

2V�)j����ddlZejd��ddlmZddlmZmZddd�Zgd�Z	dZ3dZd	Zd4Z
dZdZd
ededefd�Zdedefd�Zdedeefd�Zdedeedeefd�Zdeedeeeffd�Zdeededededeef5d�Zdedeedededejf6d�Zdedededefd�Zdededeejeffd�ZdS) �N�Agg)�Repo�InvalidGitRepositoryErrorz#4C8BF5)�main�master)z#2ECC71z#E84B3Az#F39C12z#9B59B6z#1ABC9Cz#E67E22z#FFD700z#FFFFFFz#0D1117z#C9D1D9g�?gffffff��branch_name�index�returnc�x�t�|t|tt��z��S�N)�
BRANCH_COLORS�get�FALLBACK_COLORS�len)rr	s  �1C:\Users\bharg\Project\git-commit-ai\git_graph.py�get_branch_colorrs*�����[�/�%�#�o�BV�BV�:V�*W�X�X�X��	repo_pathc� �t|��Sr)r)rs r�	load_repors���	�?�?�r�repoc�r�t��}g}|�d��D]�}|j|vr�|�|j��|�|j|jdd�|j������dd�|jD��d�����|S)Nz--all�rc��g|]	}|j��7S�)�hexsha)�.0�ps  r�8<listcomp>z$get_commit_graph.<locals>.<listcomp>&s��9�9�9�Q���9�9�9r)�sha�	short_sha�message�parents)	�set�iter_commitsr�add�appendr"�strip�9splitlinesr#)r�seen�commits�commits    r�get_commit_graphr-s����5�5�D��G��#�#�G�,�,�	�	���=�D� �	��������������=���r��r�*��~�+�+�-�-�8�8�:�:�1�=�9�9�&�.�9�9�9�	10�11�	�	�	�	��Nrr+c��i}|jD]<}|jj}|�|g���|j���=|jjj}|D]0}|�|dg��|d<|d|k|d<�1|S)Nr �labels�is_head)�branchesr,r�12setdefaultr'�name�headr)rr+�
sha_to_labels�branch�tip�head_shar,s       r�tag_commits_with_branchesr9+s���*,�M��-�>�>���m�"��� � ��b�)�)�0�0���=�=�=�=��y��&�H��6�6��(�,�,�V�E�]�B�?�?��x��"�5�M�X�5��y����Nrc��i}g}|D]�}|d}|d}d}|D]}||vr||}|||kr|}n�|�|}	nK	|�d��}	n4#t$r't|��}	|�d��YnwxYw|	||<|	t|��kr|||	<��|�|����|S)Nr r#)r	�13ValueErrorrr')14r+�lane_by_sha�active_lanesr,r r#�inherited_lane�15parent_sha�	candidate�lanes16          r�assign_lanesrB8s,��"$�K�%'�L��%�%���U�m����#����!�	�	�J��[�(�
�'�17�3�	��	�*�j�8��%.�N��E���	*�!�D�D�
*�#�)�)�$�/�/�����
*�
*�
*��<�(�(���#�#�D�)�)�)�)�)�
*���� ��C���#�l�#�#�#�	%�!$�L��������$�$�$�$��s�A�.B	�B	r8�current_branchr"c�P�dd|���|gd|�d�gdd�}|g|zS)N�18GHOST_NEXT�nextu← z (next)F)r r!r"r#r/r0)r()r+r8rCr"�ghosts     r�inject_ghost_noderHZsG�����=�=�?�?��:�1�.�1�1�1�2��

�
�E�
�7�W��r�next_commit_messagec���� �|jjj}d}|���rt	||||��}t|���d�t
|��D��� t����d���dz}tdd|dzz��}td	t|��d19zdz��}tj||f���\}	}20|	j�
t��|21�
t��dtd
t t"t"ff�� fd�}|D]�}||d��\}
}�|d}t%d|��}|dD]Q}|� vr�||��\}}|
|k}|22�d||f|
|ft)d|dd|rdnd�����d����R��|D�]�}||d��\}}�|d}t%d|��}|d|k}|rE|23�||ddt,dd���|24�||ddt,dddd��	�	n_|d r<|25�||dd!|d�"��|26�||dd#t.d�"��n|27�||dd$|d�"��|d%�d&|d'dd(���}|28�|dz||d)d*d#t2d+d	�,�	�	|dz}|d-z}|d.D]Y}||k}|rd/nd0}|29�||d&|�d&�d)d*d1d2d+t)d3|d�4��d1�5�30�31|t|��d6zd32zz
}�Z���|33�d7|t6zd	z��|34�t|��t:zd8z35d8��|36�d9t2dd�:��|37�d;��tj ��|	S)<NrEc�&�i|]\}}|d|��S)r r)r�i�cs   r�38<dictcomp>z build_figure.<locals>.<dictcomp>ns"��?�?�?�D�A�q�A�e�H�a�?�?�?rr)�default�����g333333�?)�figsizer r39c�L���|}�|}|tz|tzfSr)�	X_SPACING�	Y_SPACING)r �idxrAr<�sha_to_indexs   ��r�
node_positionz#build_figure.<locals>.node_positionxs+����3����3����i���y��0�0r�r#z-|>g�������?z	arc3,rad=z0.3z0.0)�40arrowstyle�color�lw�connectionstyle)�xy�xytext�41arrowprops�zorder�o�
gffffff�?)�42markersizer^�alphard�nonez--�)rgr^�	fillstyle�markeredgewidth�	linestylerdr0�)rgr^rd��43r!z  r"�2�center�left�	monospace)�va�ha�fontsizer^�44fontfamilyrdg)\���(�?r/z#9E6A03z#238636r�whitezround,pad=0.25)�boxstyle�	facecolor�	edgecolor)rurvrwr^rx�bboxrdg333333�?g�������g�������?zGit Branch Graph)r^rw�pad�off)!r4r,rr(rHrB�	enumerate�max�valuesr�plt�subplots�patch�
set_facecolor�BG_COLOR�str�tuple�floatr�annotate�dict�plot�GHOST_COLOR�HEAD_RING_COLOR�text�45TEXT_COLOR�set_xlimrW�set_ylimrX�	set_title�axis�tight_layout)!rr+rCrIr8�	ghost_sha�	num_lanes�	fig_width�46fig_height�fig�axr[r,�x_child�y_childrA�47edge_colorr?�x_parent�y_parent�is_merge�x�y�48node_color�is_ghost�49label_text�badge_offset_x�badge_offset_y�label�50is_current�badge_bgr<rZs!                               @@r�build_figurer�fs������y��&�H��I�� � �"�"�\�#�G�X�~�GZ�[�[���w�'�'�K�?�?�I�g�,>�,>�?�?�?�L��K�&�&�(�(�!�4�4�4�q�8�I��B��I��M�)�*�*�I��Q��G���s�*�Q�.�/�/�J��l�I�z�#:�;�;�;�G�C���I���H�%�%�%����X����1�3�1�5����#6�1�1�1�1�1�1�1�51����(�=����7�7�����6�%�=�)��%�b�$�/�/�52� ��+�	�	�J���-�
��!.��z�!:�!:��H�h��(�*�H��K�K���h�'���)��$�$��$N��0L���u�$N�$N�	����
�
�
�
�
�	�$�!7�!7���}�V�E�]�+�+���1��6�%�=�)��%�b�$�/�/�53��%�=�I�-���	J��G�G�A�q�#�"�K�t�TU�G�V�V�V��G�G�A�q�#�"�K�6�$%��a�
�
A�
A�
A�
A�
�I�
�	J��G�G�A�q�#�"�J�q�G�I�I�I��G�G�A�q�#�!�?�1�G�M�M�M�M��G�G�A�q�#�"�J�q�G�I�I�I��{�+�G�G�v�i�/@��"��/E�G�G�54�55����D��!�Z�H���*��Q�	�	P�	P�	P��T����T����H�%�	7�	7�E��.�0�J�$.�=�y�y�I�H��G�G����U�������'�k��#3�x�SY�Z�Z�Z��

�
�
�
�
�c�%�j�j�5�0�3�6�6�N�N�	7��K�K��i�)�+�a�/�0�0�0��K�K��G���y�(�3�.��4�4�4��L�L�#�:���L�K�K�K��G�G�E�N�N�N�������Jrc	�<�|jjj}d�|j�d��D��}|j}d|�d�d|dd��d�g}|r5|�dd�d	�|D����z��|r=|�d56d�d�|dd�D����z��|���r.|�d
|����d|�d���d�|��S)Nc��g|]	}|j��57Sr)�a_path)r�items  rrzbuild_info.<locals>.<listcomp>�s��D�D�D�D�D�K�D�D�Dr�HEADz**Current branch:** `�`z**HEAD:** `rz**Staged (ready to commit):** z, c3�"K�|]58}d|�d�V��dS�r�Nr�r�fs  r�	<genexpr>zbuild_info.<locals>.<genexpr>�s+����Ff�Ff�TU�x�1�x�x�x�Ff�Ff�Ff�Ff�Ff�Ffrz**Untracked:** c3�"K�|]59}d|�d�V��dSr�rr�s  rr�zbuild_info.<locals>.<genexpr>�s*����7X�7X�Q��A����7X�7X�7X�7X�7X�7Xrrjz**Next commit preview:** `u`  ← will land on `z60 61)	r4r,rr	�diff�untracked_filesr'�joinr()rrCrIr8�staged_files�	untracked�62info_liness       r�63build_infor��sS���y��&�H�D�D�D�J�O�O�F�,C�,C�D�D�D�L��$�I�	2��1�1�1�%�h�r��r�l�%�%�%��J��h����:�T�Y�Y�Ff�Ff�Ye�Ff�Ff�Ff�=f�=f�f�g�g�g��Z����+�d�i�i�7X�7X�)�TV�UV�TV�-�7X�7X�7X�.X�.X�X�Y�Y�Y�� � �"�"�64����l�)<�)B�)B�)D�)D�l�l�[i�l�l�l�	65�	66�	67��;�;�z�"�"�"rc���t|��}t|��}t||��}|jjs|jjnd}t||||��}t|||��}||fS)NzHEAD (detached))	rr-r9r4�is_detached�
active_branchr3r�r�)rrIrr+rCr��infos       r�render_branch_graphr��sv���Y���D��t�$�$�G�'��g�6�6�G�48�I�4I�`�T�'�,�,�O`�N�68�t�W�n�6I�69J�70J�C��d�N�,?�@�@�D���9�r)�71matplotlib�use�matplotlib.pyplot�pyplotr��gitrrr
rr�r�r�r�rWrXr��intrr�listr�r-r9rBrH�Figurer�r�r�r�rrr�<module>r�sa�������72��u����������/�/�/�/�/�/�/�/�
����
�U�T�T��������
�73��	��	�Y�#�Y�c�Y�c�Y�Y�Y�Y���������
�4�
�D��J�
�
�
�
� 74�D�75�4��:�76�$�t�*�77�78�79�80��$�t�*���c�3�h������D	�t�D�z�	�S�	�#�	�X[�	�`d�ei�`j�	�	�	�	�W�t�W�d�4�j�W�#�W�\_�W�dg�dn�W�W�W�W�t#�T�#�3�#�S�#�S�#�#�#�#�*�3��S��U�3�:�WZ�?�E[������r