
    Ig                         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y
)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                   R    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y)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}|D cg c]  }t        |d   |d   |d   |       }} | |      S c c}w )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 Filer   r   r   )r   r   r   api_wrapperr   )	r   r   r   r	   r   r   r   r
   r   )clsr   
operationsactionr   s        n/var/www/html/answerous/venv/lib/python3.12/site-packages/langchain_community/agent_toolkits/gitlab/toolkit.pyfrom_gitlab_api_wrapperz%GitLabToolkit.from_gitlab_api_wrapper(   s     %$0 $#/ +*6 .-9 &%1 $#/ &%1 &%1I)"

b %
  F^"=1F^.	
 
 
s   A9c                     | j                   S )zGet the tools in the toolkit.r#   )selfs    r'   	get_toolszGitLabToolkit.get_toolsj   s    zz    N)__name__
__module____qualname____doc__r   r   r   __annotations__classmethodr   r(   r+    r,   r'   r   r      sJ     E4>? !1? 	?  ? B4> r,   r   N)r0   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   r3   r,   r'   <module>r:      s6      ) 1	 	 	 ? AVK Vr,   