Ë
    µŒj²  ã                   óN   — d dl Z d dlmZmZmZ d dlmZ d dlmZ  G d„ de«      Z	y)é    N)ÚCallableÚIteratorÚOptional)ÚDocument)Ú
BaseLoaderc                   ó`   — e Zd ZdZ	 	 	 d
dedee   dee   deeegef      fd„Zde	e
   fd	„Zy)Ú	GitLoadera¦  Load `Git` repository files.

    The Repository can be local on disk available at `repo_path`,
    or remote at `clone_url` that will be cloned to `repo_path`.
    Currently, supports only text files.

    Each document represents one file in the repository. The `path` points to
    the local Git repository, and the `branch` specifies the branch to load
    files from. By default, it loads from the `main` branch.
    NÚ	repo_pathÚ	clone_urlÚbranchÚfile_filterc                 ó<   — || _         || _        || _        || _        y)a‡  

        Args:
            repo_path: The path to the Git repository.
            clone_url: Optional. The URL to clone the repository from.
            branch: Optional. The branch to load files from. Defaults to `main`.
            file_filter: Optional. A function that takes a file path and returns
              a boolean indicating whether to load the file. Defaults to None.
        N)r
   r   r   r   )Úselfr
   r   r   r   s        úr/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/document_loaders/git.pyÚ__init__zGitLoader.__init__   s!   € ð  #ˆŒØ"ˆŒØˆŒØ&ˆÕó    Úreturnc              #   ól  K  — 	 ddl m}m} t        j
                  j                  | j                  «      s%| j                  €t        d| j                  › d�«      ‚| j                  rÝt        j
                  j                  t        j
                  j                  | j                  d«      «      rJ || j                  «      }|j                  j                  j                  | j                  k7  r1t        d«      ‚|j                  | j                  | j                  «      }|j                   j!                  | j"                  «       n7 || j                  «      }|j                   j!                  | j"                  «       |j%                  «       j'                  «       D �].  }t)        ||«      sŒt        j
                  j                  | j                  |j
                  «      }|j+                  |g«      }t-        |«      rŒc| j.                  r| j/                  |«      sŒ�t        j
                  j1                  || j                  «      }	 t3        |d«      5 }	|	j5                  «       }
t        j
                  j7                  |j8                  «      d	   }	 |
j;                  d
«      }|||j8                  |dœ}t?        ||¬«      –— d d d «       �Œ1 y # t        $ r}t        d«      |‚d }~ww xY w# t<        $ r Y d d d «       �Œdw xY w# 1 sw Y   ŒBxY w# t@        $ r}tC        d|› d|› �«       Y d }~�Œ”d }~ww xY w­w)Nr   )ÚBlobÚRepozTCould not import git python package. Please install it with `pip install GitPython`.zPath z does not existz.gitz6A different repository is already cloned at this path.Úrbé   zutf-8)ÚsourceÚ	file_pathÚ	file_nameÚ	file_type)Úpage_contentÚmetadatazError reading file z: )"Úgitr   r   ÚImportErrorÚosÚpathÚexistsr
   r   Ú
ValueErrorÚisdirÚjoinÚremotesÚoriginÚurlÚ
clone_fromÚcheckoutr   ÚtreeÚtraverseÚ
isinstanceÚignoredÚlenr   ÚrelpathÚopenÚreadÚsplitextÚnameÚdecodeÚUnicodeDecodeErrorr   Ú	ExceptionÚprint)r   r   r   ÚexÚrepoÚitemr   Úignored_filesÚrel_file_pathÚfÚcontentr   Útext_contentr   Úes                  r   Ú	lazy_loadzGitLoader.lazy_load*   s„  è ø€ ð	ß&ô �w‰w�~‰~˜dŸn™nÔ-°$·.±.Ð2HÜ˜u T§^¡^Ð$4°OÐDÓEÐEØ�^Š^ô �w‰w�}‰}œRŸW™WŸ\™\¨$¯.©.¸&ÓAÔBÙ˜DŸN™NÓ+�ð —<‘<×&Ñ&×*Ñ*¨d¯n©nÒ<Ü$ØPóð ð —‘ t§~¡~°t·~±~ÓF�Ø�H‰H×Ñ˜dŸk™kÕ*á˜Ÿ™Ó'ˆDØ�H‰H×Ñ˜dŸk™kÔ*à—I‘I“K×(Ñ(×*ˆDÜ˜d DÔ)ØäŸ™Ÿ™ T§^¡^°T·Y±YÓ?ˆIà ŸL™L¨)¨Ó5ˆMÜ�=Ô!Øð ×Ò¨×(8Ñ(8¸Ô(CØäŸG™GŸO™O¨I°t·~±~ÓFˆMð>Ü˜) TÔ*¨aØŸf™f›h�GÜ "§¡× 0Ñ 0°·±Ó ;¸AÑ >�Ið!Ø'.§~¡~°gÓ'>˜ð
 #0Ø%2Ø%)§Y¡YØ%.ñ	 �Hô #°ÀxÔPÒP÷! +ùñ! +øô5 ò 	ÜðBóð ðûð	ûôb .ò !Ø ÷ +Ñ*ð!ú÷ +Ð*ûô" ò >ÜÐ+¨I¨;°b¸¸Ð<×=Ò=ûð>üsš   ‚L4„K ŒH7L4ÉLÉ=L ÊK(Ê L Ê?LËL4Ë	K%ËK Ë K%Ë%L4Ë(	K=Ë1L Ë2LË:L4Ë<K=Ë=L Ì L		ÌLÌ	L1ÌL,Ì&L4Ì,L1Ì1L4)NÚmainN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   r   Úboolr   r   r   rC   © r   r   r	   r	   	   sf   „ ñ	ð $(Ø &Ø7;ñ'àð'ð ˜C‘=ð'ð ˜‘ð	'ð
 ˜h¨ u¨d {Ñ3Ñ4ó'ð*?>˜8 HÑ-ô ?>r   r	   )
r!   Útypingr   r   r   Úlangchain_core.documentsr   Ú)langchain_community.document_loaders.baser   r	   rK   r   r   Ú<module>rO      s"   ðÛ 	ß /Ñ /å -å @ô`>�
õ `>r   