Ë
    µŒj&%  ã                   ó’   — d Z ddlmZmZmZmZmZ ddlmZ ddl	m
Z
mZmZ ddlmZ  G d„ de«      Z G d„ d	e«      Z G d
„ de
«      Zy)zUtil that calls Jira.é    )ÚAnyÚDictÚListÚOptionalÚUnion)Úget_from_dict_or_env)Ú	BaseModelÚ
ConfigDictÚmodel_validator)Ú	TypedDictc                   ó(   — e Zd ZU dZeed<   	 eed<   y)ÚJiraOauth2TokenzJira OAuth2 token.Úaccess_tokenÚ
token_typeN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstrÚ__annotations__© ó    úl/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/utilities/jira.pyr   r   
   s   … ÙàÓØ#ØƒOØ5r   r   c                   ó(   — e Zd ZU dZeed<   	 eed<   y)Ú
JiraOauth2zJira OAuth2.Ú	client_idÚtokenN)r   r   r   r   r   r   r   r   r   r   r   r      s   … ÙàƒNØ ØÓØr   r   c                   óv  — e Zd ZU dZdZeed<   dZeed<   dZe	e
   ed<   dZe	e
   ed<   	 dZe	eee
f      ed<   	 dZe	e
   ed<   dZe	e   ed	<    ed
¬«      Z ed¬«      ededefd„«       «       Zdedee   fd„Zdee   dee   fd„Zde
de
fd„Zde
fd„Zde
de
fd„Zde
de
fd„Zde
de
fd„Z de
de
de
fd„Z!y)ÚJiraAPIWrappera}  
    Wrapper for Jira API. You can connect to Jira with either an API token or OAuth2.
    - with API token, you need to provide the JIRA_USERNAME and JIRA_API_TOKEN
        environment variables or arguments.
    ex: JIRA_USERNAME=your_username JIRA_API_TOKEN=your_api_token
    - with OAuth2, you need to provide the JIRA_OAUTH2 environment variable or
        argument as a dict having as fields "client_id" and "token" which is
        a dict containing at least "access_token" and "token_type".
    ex: JIRA_OAUTH2='{"client_id": "your_client_id", "token":
        {"access_token": "your_access_token","token_type": "bearer"}}'
    NÚjiraÚ
confluenceÚjira_usernameÚjira_api_tokenÚjira_oauth2Újira_instance_urlÚ
jira_cloudÚforbid)ÚextraÚbefore)ÚmodeÚvaluesÚreturnc                 óð  — t        |ddd¬«      }||d<   t        |ddd¬«      }||d<   t        |ddd¬«      }||d<   |r&t        |t        «      r	 d	d
l}|j	                  |«      }t        |dd«      }||d<   d|v r|d   �t        |d   «      |d<   t        |dd«      }|j                  «       dk(  }	|	|d<   |r|rt        d«      ‚	 d	dl
m}
m} |r*|dk(  r ||||	¬«      }n |||||	¬«      } |
||||	¬«      }n|r ||||	¬«      } |
|||	¬«      }|d<   |d<   |S # t
        $ r t        d«      ‚j                  j                  $ r}t        d|› �«      ‚d
}~ww xY w# t
        $ r t        d«      ‚w xY w)z?Validate that api key and python package exists in environment.r"   ÚJIRA_USERNAMEÚ )Údefaultr#   ÚJIRA_API_TOKENr$   ÚJIRA_OAUTH2r   Nú@json is not installed. Please install it with `pip install json`z@The format of the JIRA_OAUTH2 string is not a valid dictionary: r%   ÚJIRA_INSTANCE_URLr&   Ú
JIRA_CLOUDÚtruezGYou have to provide either a jira_api_token or a jira_oauth2. Not both.)Ú
ConfluenceÚJiraz`atlassian-python-api is not installed. Please install it with `pip install atlassian-python-api`)Úurlr   Úcloud)r9   ÚusernameÚpasswordr:   )r9   Úoauth2r:   r    r!   )r   Ú
isinstancer   ÚjsonÚloadsÚImportErrorÚdecoderÚJSONDecodeErrorÚ
ValueErrorÚlowerÚ	atlassianr7   r8   )Úclsr+   r"   r#   r$   r?   Úer%   Újira_cloud_strr&   r7   r8   r    r!   s                 r   Úvalidate_environmentz#JiraAPIWrapper.validate_environment8   s&  € ô -Ø�O _¸bô
ˆð #0ˆˆÑä-ØÐ$Ð&6Àô
ˆð $2ˆÐÑ ä*Ø�M =¸"ô
ˆð !,ˆˆ}Ñáœ: k´3Ô7ðÛà"Ÿj™j¨Ó5�ô 1ØÐ'Ð)<ó
Ðð '8ˆÐ"Ñ#à˜6Ñ! f¨\Ñ&:Ð&FÜ#& v¨lÑ';Ó#<ˆF�<Ñ ä-¨f°lÀLÓQˆØ#×)Ñ)Ó+¨vÑ5ˆ
Ø)ˆˆ|Ñá™kÜðóð ð
	ß2ñ Ø Ò"ÙØ)Ø(Ø$ô‘ñ Ø)Ø*Ø+Ø$ô	�ñ $Ø%Ø&Ø'Ø ô	‰Jñ ÙØ%Ø"Ø ôˆDñ
 $Ø%Ø"Ø ôˆJð ˆˆv‰Ø)ˆˆ|ÑàˆøôQ ò Ü!ØVóð ð —<‘<×/Ñ/ò Ü ð/Ø/0¨cð3óð ûðûô4 ò 	ÜðLóð ð	ús$   ÁD ÃE  Ä,EÅ
EÅEÅ E5Úissuesc                 óò  — g }|d   D ]Û  }|d   }|d   d   }|d   d   dd }d|d   v r|d   d   d	   }nd }|d   d
   d	   }	 |d   d   d   }	i }
|d   j                  dg «      D ]b  }d|j                  «       v r|d   d   }|d   d   }|d   d   d   }d|j                  «       v r|d   d   }|d   d   }|d   d   d   }dœ}
Œd |j                  ||||	|||
dœ«       ŒÝ |S # t         $ r d}	Y Œ¦w xY w)NrK   ÚkeyÚfieldsÚsummaryÚcreatedr   é
   ÚpriorityÚnameÚstatusÚassigneeÚdisplayNameÚNoneÚ
issuelinksÚinwardIssueÚtypeÚinwardÚoutwardIssueÚoutward)rZ   rM   rO   )rM   rO   rP   rU   rR   rT   Úrelated_issues)Ú	ExceptionÚgetÚkeysÚappend)ÚselfrK   ÚparsedÚissuerM   rO   rP   rR   rT   rU   Ú
rel_issuesÚrelated_issueÚrel_typeÚrel_keyÚrel_summarys                  r   Úparse_issueszJiraAPIWrapper.parse_issuesš   sŒ  € ØˆØ˜HÔ%ˆEØ˜‘,ˆCØ˜H‘o iÑ0ˆGØ˜H‘o iÑ0°°2Ð6ˆGØ˜U 8™_Ñ,Ø  ™?¨:Ñ6°vÑ>‘à�Ø˜8‘_ XÑ.¨vÑ6ˆFð"Ø  ™?¨:Ñ6°}ÑE�ð ˆJØ!& x¡×!4Ñ!4°\À2Ö!F�Ø  M×$6Ñ$6Ó$8Ñ8Ø,¨VÑ4°XÑ>�HØ+¨MÑ:¸5ÑA�GØ"/°Ñ">¸xÑ"HÈÑ"S�KØ! ]×%7Ñ%7Ó%9Ñ9Ø,¨VÑ4°YÑ?�HØ+¨NÑ;¸EÑB�GØ"/°Ñ"?ÀÑ"IÈ)Ñ"T�KØ&.°wÈ;ÑW‘
ð "Gð �M‰MàØ&Ø&Ø (Ø (Ø$Ø&0ñõ
ð1 &ðF ˆøô1 ò "Ø!’ð"ús   ÁC(Ã(C6Ã5C6Úprojectsc           	      ó¨   — g }|D ]J  }|d   }|d   }|d   }|j                  d«      }|j                  d«      }|j                  |||||dœ«       ŒL |S )NÚidrM   rS   ÚprojectTypeKeyÚstyle)rn   rM   rS   rZ   rp   )r`   rb   )	rc   rl   rd   Úprojectrn   rM   rS   rZ   rp   s	            r   Úparse_projectszJiraAPIWrapper.parse_projectsÁ   sj   € ØˆÛˆGØ˜‘ˆBØ˜%‘.ˆCØ˜6‘?ˆDØ—;‘;Ð/Ó0ˆDØ—K‘K Ó(ˆEØ�M‰MØ #¨t¸TÈEÑRõð  ð ˆr   Úqueryc                 óª   — | j                   j                  |«      }| j                  |«      }dt        t	        |«      «      z   dz   t        |«      z   }|S )NúFound z	 issues:
)r    Újqlrk   r   Úlen)rc   rs   rK   Úparsed_issuesÚparsed_issues_strs        r   ÚsearchzJiraAPIWrapper.searchÎ   sR   € Ø—‘—‘˜uÓ%ˆØ×)Ñ)¨&Ó1ˆà”sœ3˜}Ó-Ó.Ñ.°Ñ=ÄÀMÓ@RÑRð 	ð !Ð r   c                 ó¨   — | j                   j                  «       }| j                  |«      }dt        t	        |«      «      z   dz   t        |«      z   }|S )Nru   z projects:
)r    rl   rr   r   rw   )rc   rl   Úparsed_projectsÚparsed_projects_strs       r   rq   zJiraAPIWrapper.projectÖ   sR   € Ø—9‘9×%Ñ%Ó'ˆØ×-Ñ-¨hÓ7ˆà”sœ3˜Ó/Ó0Ñ0°>ÑAÄCÈÓDXÑXð 	ð #Ð"r   c                 ó¨   — 	 dd l }|j                  |«      }| j                  j	                  t        |«      ¬«      S # t        $ r t        d«      ‚w xY w)Nr   r3   )rN   )r?   rA   r@   r    Úissue_createÚdict©rc   rs   r?   Úparamss       r   r   zJiraAPIWrapper.issue_createÞ   sW   € ð	Ûð
 —‘˜EÓ"ˆØ�y‰y×%Ñ%¬T°&«\Ð%Ó:Ð:øô ò 	ÜØRóð ð	úó	   ‚< ¼Ac                 ó¨   — 	 dd l }|j                  |«      } | j                  j                  di t        |«      ¤ŽS # t        $ r t        d«      ‚w xY w)Nr   r3   r   )r?   rA   r@   r!   Úcreate_pager€   r�   s       r   Úpage_createzJiraAPIWrapper.page_createè   sY   € ð	Ûð
 —‘˜EÓ"ˆØ*ˆt�‰×*Ñ*Ñ:¬T°&«\Ñ:Ð:øô ò 	ÜØRóð ð	úrƒ   c                 óà   — 	 dd l }|j                  |«      }t        | j                  |d   «      } ||j                  dg «      i |j                  di «      ¤ŽS # t        $ r t        d«      ‚w xY w)Nr   r3   ÚfunctionÚargsÚkwargs)r?   rA   r@   Úgetattrr    r`   )rc   rs   r?   r‚   Újira_functions        r   ÚotherzJiraAPIWrapper.otherò   sv   € ð	Ûð
 —‘˜EÓ"ˆÜ §	¡	¨6°*Ñ+=Ó>ˆÙ˜fŸj™j¨°Ó4ÐQ¸¿
¹
À8ÈRÓ8PÑQÐQøô ò 	ÜØRóð ð	ús   ‚A ÁA-r*   c                 óø   — |dk(  r| j                  |«      S |dk(  r| j                  «       S |dk(  r| j                  |«      S |dk(  r| j                  |«      S |dk(  r| j	                  |«      S t        d|› �«      ‚)Nrv   Úget_projectsÚcreate_issuer�   r…   zGot unexpected mode )rz   rq   r   r�   r†   rD   )rc   r*   rs   s      r   ÚrunzJiraAPIWrapper.runý   s‡   € Ø�5Š=Ø—;‘;˜uÓ%Ð%Ø�^Ò#Ø—<‘<“>Ð!Ø�^Ò#Ø×$Ñ$ UÓ+Ð+Ø�WŠ_Ø—:‘:˜eÓ$Ð$Ø�]Ò"Ø×#Ñ# EÓ*Ð*äÐ3°D°6Ð:Ó;Ð;r   )"r   r   r   r   r    r   r   r!   r"   r   r   r#   r$   r   r   r%   r&   Úboolr
   Úmodel_configr   Úclassmethodr   rJ   r   r€   rk   rr   rz   rq   r   r†   r�   r‘   r   r   r   r   r      s]  … ñ
ð €Dˆ#ÓØ€J�ÓØ#'€M�8˜C‘=Ó'Ø$(€N�H˜S‘MÓ(ØKØ48€K�˜% 
¨C Ñ0Ñ1Ó8ØKØ'+Ð�x ‘}Ó+Ø!%€J�˜‘Ó%áØô€Lñ ˜(Ô#Øð^¨$ð ^°3ò ^ó ó $ð^ð@% 4ð %¨D°©Jó %ðN t¨D¡zð °d¸4±jó ð!˜Cð ! Có !ð#˜ó #ð; #ð ;¨#ó ;ð; ð ;¨ó ;ð	R˜3ð 	R 3ó 	Rð<˜ð < Cð <¨Cô <r   r   N)r   Útypingr   r   r   r   r   Úlangchain_core.utilsr   Úpydanticr	   r
   r   Útyping_extensionsr   r   r   r   r   r   r   Ú<module>r™      s@   ðÙ ç 3Õ 3å 5ß ;Ñ ;Ý 'ô6�iô 6ô�ô ôl<�Yõ l<r   