
    Ng                         d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	m
Z
mZmZmZmZmZmZ ddlmZ ddlmZ  G d d	e          Zd
S )zGitLab Toolkit.    )DictList)BaseTool)BaseToolkit)COMMENT_ON_ISSUE_PROMPTCREATE_FILE_PROMPTCREATE_PULL_REQUEST_PROMPTDELETE_FILE_PROMPTGET_ISSUE_PROMPTGET_ISSUES_PROMPTREAD_FILE_PROMPTUPDATE_FILE_PROMPTGitLabAction)GitLabAPIWrapperc                   f    e Zd ZU dZg Zee         ed<   ede	dd fd            Z
dee         fdZdS )GitLabToolkita  GitLab Toolkit.

    *Security Note*: This toolkit contains tools that can read and modify
        the state of a service; e.g., by creating, deleting, or updating,
        reading underlying data.

        For example, this toolkit can be used to create issues, pull requests,
        and comments on GitLab.

        See https://python.langchain.com/docs/security for more information.

    Parameters:
        tools: List[BaseTool]. The tools in the toolkit. Default is an empty list.
    toolsgitlab_api_wrapperreturnc                     ddt           dddt          dddt          ddd	t          dd
dt          dddt
          dddt          dddt          dg}fd|D             } | |          S )zCreate a GitLabToolkit from a GitLabAPIWrapper.

        Args:
            gitlab_api_wrapper: GitLabAPIWrapper. The GitLab API wrapper.

        Returns:
            GitLabToolkit. The GitLab toolkit.
        
get_issuesz
Get Issues)modenamedescription	get_issuez	Get Issuecomment_on_issuezComment on Issuecreate_pull_requestzCreate Pull Requestcreate_filezCreate File	read_filez	Read Fileupdate_filezUpdate Filedelete_filezDelete Filec                 Z    g | ]'}t          |d          |d         |d                   (S )r   r   r   )r   r   r   api_wrapperr   ).0actionr   s     m/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/agent_toolkits/gitlab/toolkit.py
<listcomp>z9GitLabToolkit.from_gitlab_api_wrapper.<locals>.<listcomp>_   sS     
 
 
  F^"=1F^.	  
 
 
    r   )r   r   r   r	   r   r   r   r
   )clsr   
operationsr   s    `  r'   from_gitlab_api_wrapperz%GitLabToolkit.from_gitlab_api_wrapper(   s     %$0  $#/  +*6  .-9  &%1  $#/  &%1  &%1 I)"

T
 
 
 
 %
 
 
 sr)   c                     | j         S )zGet the tools in the toolkit.r*   )selfs    r'   	get_toolszGitLabToolkit.get_toolsj   s
    zr)   N)__name__
__module____qualname____doc__r   r   r   __annotations__classmethodr   r-   r0    r)   r'   r   r      s           E4>? !1? 	?  ?  ?  [? B4>      r)   r   N)r4   typingr   r   langchain_core.toolsr   langchain_core.tools.baser   'langchain_community.tools.gitlab.promptr   r   r	   r
   r   r   r   r   %langchain_community.tools.gitlab.toolr   $langchain_community.utilities.gitlabr   r   r7   r)   r'   <module>r>      s             ) ) ) ) ) ) 1 1 1 1 1 1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ? > > > > > A A A A A AV V V V VK V V V V Vr)   