diff --git a/docs/latex/Makefile b/docs/latex/Makefile new file mode 100644 index 0000000..07f226d --- /dev/null +++ b/docs/latex/Makefile @@ -0,0 +1,27 @@ +LATEX_CMD?=pdflatex +MKIDX_CMD?=makeindex +BIBTEX_CMD?=bibtex +LATEX_COUNT?=8 +MANUAL_FILE?=refman + +all: $(MANUAL_FILE).pdf + +pdf: $(MANUAL_FILE).pdf + +$(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex + $(LATEX_CMD) $(MANUAL_FILE) + $(MKIDX_CMD) $(MANUAL_FILE).idx + $(LATEX_CMD) $(MANUAL_FILE) + latex_count=$(LATEX_COUNT) ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + $(LATEX_CMD) $(MANUAL_FILE) ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + $(MKIDX_CMD) $(MANUAL_FILE).idx + $(LATEX_CMD) $(MANUAL_FILE) + + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf diff --git a/docs/latex/README_8md.tex b/docs/latex/README_8md.tex new file mode 100644 index 0000000..dd4e1ac --- /dev/null +++ b/docs/latex/README_8md.tex @@ -0,0 +1,2 @@ +\hypertarget{README_8md}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/\+README.md File Reference} +\label{README_8md}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/README.md@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/README.md}} diff --git a/docs/latex/annotated.tex b/docs/latex/annotated.tex new file mode 100644 index 0000000..404b927 --- /dev/null +++ b/docs/latex/annotated.tex @@ -0,0 +1,16 @@ +\doxysection{Class List} +Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList} +\item\contentsline{section}{\mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient}{penify\+\_\+hook.\+api\+\_\+client.\+APIClient}} }{\pageref{classpenify__hook_1_1api__client_1_1APIClient}}{} +\item\contentsline{section}{\mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer}{penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer}} }{\pageref{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer}}{} +\item\contentsline{section}{\mbox{\hyperlink{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook}{penify\+\_\+hook.\+commit\+\_\+analyzer.\+Commit\+Doc\+Gen\+Hook}} }{\pageref{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook}}{} +\item\contentsline{section}{\mbox{\hyperlink{classException}{Exception}} }{\pageref{classException}}{} +\item\contentsline{section}{\mbox{\hyperlink{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook}{penify\+\_\+hook.\+file\+\_\+analyzer.\+File\+Analyzer\+Gen\+Hook}} }{\pageref{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook}}{} +\item\contentsline{section}{\mbox{\hyperlink{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook}{penify\+\_\+hook.\+folder\+\_\+analyzer.\+Folder\+Analyzer\+Gen\+Hook}} }{\pageref{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook}}{} +\item\contentsline{section}{\mbox{\hyperlink{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook}{penify\+\_\+hook.\+git\+\_\+analyzer.\+Git\+Doc\+Gen\+Hook}} }{\pageref{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook}}{} +\item\contentsline{section}{\mbox{\hyperlink{classpenify__hook_1_1utils_1_1GitRepoNotFoundError}{penify\+\_\+hook.\+utils.\+Git\+Repo\+Not\+Found\+Error}} }{\pageref{classpenify__hook_1_1utils_1_1GitRepoNotFoundError}}{} +\item\contentsline{section}{\mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient}{penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client}} }{\pageref{classpenify__hook_1_1jira__client_1_1JiraClient}}{} +\item\contentsline{section}{\mbox{\hyperlink{classpenify__hook_1_1llm__client_1_1LLMClient}{penify\+\_\+hook.\+llm\+\_\+client.\+LLMClient}} }{\pageref{classpenify__hook_1_1llm__client_1_1LLMClient}}{} +\item\contentsline{section}{\mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands}{tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands}} }{\pageref{classtests_1_1test__commit__commands_1_1TestCommitCommands}}{} +\item\contentsline{section}{\mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands}{tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands}} }{\pageref{classtests_1_1test__config__commands_1_1TestConfigCommands}}{} +\item\contentsline{section}{\mbox{\hyperlink{classtests_1_1test__web__config_1_1TestWebConfig}{tests.\+test\+\_\+web\+\_\+config.\+Test\+Web\+Config}} }{\pageref{classtests_1_1test__web__config_1_1TestWebConfig}}{} +\end{DoxyCompactList} diff --git a/docs/latex/api__client_8py.tex b/docs/latex/api__client_8py.tex new file mode 100644 index 0000000..5c88c67 --- /dev/null +++ b/docs/latex/api__client_8py.tex @@ -0,0 +1,14 @@ +\hypertarget{api__client_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/api\+\_\+client.py File Reference} +\label{api__client_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/api\_client.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/api\_client.py}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient}{penify\+\_\+hook.\+api\+\_\+client.\+APIClient}} +\end{DoxyCompactItemize} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1api__client}{penify\+\_\+hook.\+api\+\_\+client}} +\end{DoxyCompactItemize} diff --git a/docs/latex/auth__commands_8py.tex b/docs/latex/auth__commands_8py.tex new file mode 100644 index 0000000..0d000ae --- /dev/null +++ b/docs/latex/auth__commands_8py.tex @@ -0,0 +1,18 @@ +\hypertarget{auth__commands_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/commands/auth\+\_\+commands.py File Reference} +\label{auth__commands_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commands/auth\_commands.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commands/auth\_commands.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands}{penify\+\_\+hook.\+commands}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1auth__commands}{penify\+\_\+hook.\+commands.\+auth\+\_\+commands}} +\end{DoxyCompactItemize} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24}{penify\+\_\+hook.\+commands.\+auth\+\_\+commands.\+save\+\_\+credentials}} (api\+\_\+key) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655}{penify\+\_\+hook.\+commands.\+auth\+\_\+commands.\+login}} (api\+\_\+url, dashboard\+\_\+url) +\end{DoxyCompactItemize} diff --git a/docs/latex/base__analyzer_8py.tex b/docs/latex/base__analyzer_8py.tex new file mode 100644 index 0000000..2010fe0 --- /dev/null +++ b/docs/latex/base__analyzer_8py.tex @@ -0,0 +1,14 @@ +\hypertarget{base__analyzer_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/base\+\_\+analyzer.py File Reference} +\label{base__analyzer_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/base\_analyzer.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/base\_analyzer.py}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer}{penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer}} +\end{DoxyCompactItemize} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1base__analyzer}{penify\+\_\+hook.\+base\+\_\+analyzer}} +\end{DoxyCompactItemize} diff --git a/docs/latex/classException.tex b/docs/latex/classException.tex new file mode 100644 index 0000000..99a8354 --- /dev/null +++ b/docs/latex/classException.tex @@ -0,0 +1,27 @@ +\hypertarget{classException}{}\doxysection{Exception Class Reference} +\label{classException}\index{Exception@{Exception}} + + +Inheritance diagram for Exception\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=222pt]{classException__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for Exception\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=145pt]{classException__coll__graph} +\end{center} +\end{figure} + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{utils_8py}{utils.\+py}}\end{DoxyCompactItemize} diff --git a/docs/latex/classException__coll__graph.md5 b/docs/latex/classException__coll__graph.md5 new file mode 100644 index 0000000..38ed226 --- /dev/null +++ b/docs/latex/classException__coll__graph.md5 @@ -0,0 +1 @@ +8bfc7cbaf3c53c3b1288446104b2c7ee \ No newline at end of file diff --git a/docs/latex/classException__coll__graph.pdf b/docs/latex/classException__coll__graph.pdf new file mode 100644 index 0000000..b993645 Binary files /dev/null and b/docs/latex/classException__coll__graph.pdf differ diff --git a/docs/latex/classException__inherit__graph.md5 b/docs/latex/classException__inherit__graph.md5 new file mode 100644 index 0000000..9da9907 --- /dev/null +++ b/docs/latex/classException__inherit__graph.md5 @@ -0,0 +1 @@ +0369339521e829fc6d9c723dfaa74cc8 \ No newline at end of file diff --git a/docs/latex/classException__inherit__graph.pdf b/docs/latex/classException__inherit__graph.pdf new file mode 100644 index 0000000..2c5b885 Binary files /dev/null and b/docs/latex/classException__inherit__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1api__client_1_1APIClient.tex b/docs/latex/classpenify__hook_1_1api__client_1_1APIClient.tex new file mode 100644 index 0000000..a4615dd --- /dev/null +++ b/docs/latex/classpenify__hook_1_1api__client_1_1APIClient.tex @@ -0,0 +1,142 @@ +\hypertarget{classpenify__hook_1_1api__client_1_1APIClient}{}\doxysection{penify\+\_\+hook.\+api\+\_\+client.\+APIClient Class Reference} +\label{classpenify__hook_1_1api__client_1_1APIClient}\index{penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}} + + +Collaboration diagram for penify\+\_\+hook.\+api\+\_\+client.\+APIClient\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=253pt]{classpenify__hook_1_1api__client_1_1APIClient__coll__graph} +\end{center} +\end{figure} +\doxysubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient_ad9cb741a8baf2d13f845e25a36311086}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self, \mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient_a130cf688ed35dc0e8cbd8320b6b2d872}{api\+\_\+url}}, str api\+\_\+token=None, str bearer\+\_\+token=None) +\item +def \mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient_ac5aad61508c2cafdf6e88e6c7d6c82b3}{send\+\_\+file\+\_\+for\+\_\+docstring\+\_\+generation}} (self, file\+\_\+name, content, line\+\_\+numbers, repo\+\_\+details=None) +\item +def \mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient_a7ff74798e7d428b4e2f20095287eb2ce}{generate\+\_\+commit\+\_\+summary}} (self, git\+\_\+diff, str instruction=\char`\"{}\char`\"{}, repo\+\_\+details=None, dict jira\+\_\+context=None) +\item +list\mbox{[}str\mbox{]} \mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient_a5d2b4a26b24352d951ea79ecc4ff3402}{get\+\_\+supported\+\_\+file\+\_\+types}} (self) +\item +def \mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient_ac0ada470b897935f9fb372cd0e7e51e3}{generate\+\_\+commit\+\_\+summary\+\_\+with\+\_\+llm}} (self, diff, message, bool generate\+\_\+description, repo\+\_\+details, \mbox{\hyperlink{classpenify__hook_1_1llm__client_1_1LLMClient}{LLMClient}} llm\+\_\+client, jira\+\_\+context=None) +\item +def \mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient_ad15b790608e703c8c122aa2ead7dfa99}{get\+\_\+api\+\_\+key}} (self) +\end{DoxyCompactItemize} +\doxysubsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient_a130cf688ed35dc0e8cbd8320b6b2d872}{api\+\_\+url}} +\item +\mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient_a5bb502603717946ad710b49ad9d95237}{AUTH\+\_\+\+TOKEN}} +\item +\mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient_a7d7e2cf42c54eb4f25adee96a09ee7b0}{BEARER\+\_\+\+TOKEN}} +\end{DoxyCompactItemize} + + +\doxysubsection{Constructor \& Destructor Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1api__client_1_1APIClient_ad9cb741a8baf2d13f845e25a36311086}\label{classpenify__hook_1_1api__client_1_1APIClient_ad9cb741a8baf2d13f845e25a36311086}} +\index{penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}!\_\_init\_\_@{\_\_init\_\_}} +\index{\_\_init\_\_@{\_\_init\_\_}!penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}} +\doxysubsubsection{\texorpdfstring{\_\_init\_\_()}{\_\_init\_\_()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+api\+\_\+client.\+APIClient.\+\_\+\+\_\+init\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{api\+\_\+url, }\item[{str }]{api\+\_\+token = {\ttfamily None}, }\item[{str }]{bearer\+\_\+token = {\ttfamily None} }\end{DoxyParamCaption})} + + + +\doxysubsection{Member Function Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1api__client_1_1APIClient_a7ff74798e7d428b4e2f20095287eb2ce}\label{classpenify__hook_1_1api__client_1_1APIClient_a7ff74798e7d428b4e2f20095287eb2ce}} +\index{penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}!generate\_commit\_summary@{generate\_commit\_summary}} +\index{generate\_commit\_summary@{generate\_commit\_summary}!penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}} +\doxysubsubsection{\texorpdfstring{generate\_commit\_summary()}{generate\_commit\_summary()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+api\+\_\+client.\+APIClient.\+generate\+\_\+commit\+\_\+summary (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{git\+\_\+diff, }\item[{str }]{instruction = {\ttfamily \char`\"{}\char`\"{}}, }\item[{}]{repo\+\_\+details = {\ttfamily None}, }\item[{dict }]{jira\+\_\+context = {\ttfamily None} }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Generates a commit summary by sending a POST request to the API endpoint. + +This function constructs a payload containing the git diff and any additional +instructions provided. It then sends this payload to a specified API endpoint +to generate a summary of the commit. If the request is successful, it returns +the response from the API; otherwise, it returns None. The function also +handles optional repository details and JIRA context if they are provided. + +Args: + git_diff (str): The git diff of the commit. + instruction (str): Additional instruction for the commit. Defaults to "". + repo_details (dict): Details of the git repository. Defaults to None. + jira_context (dict): JIRA issue details to enhance the commit summary. Defaults to None. + +Returns: + dict: The response from the API if the request is successful, None otherwise. +\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1api__client_1_1APIClient_a7ff74798e7d428b4e2f20095287eb2ce_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1api__client_1_1APIClient_ac0ada470b897935f9fb372cd0e7e51e3}\label{classpenify__hook_1_1api__client_1_1APIClient_ac0ada470b897935f9fb372cd0e7e51e3}} +\index{penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}!generate\_commit\_summary\_with\_llm@{generate\_commit\_summary\_with\_llm}} +\index{generate\_commit\_summary\_with\_llm@{generate\_commit\_summary\_with\_llm}!penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}} +\doxysubsubsection{\texorpdfstring{generate\_commit\_summary\_with\_llm()}{generate\_commit\_summary\_with\_llm()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+api\+\_\+client.\+APIClient.\+generate\+\_\+commit\+\_\+summary\+\_\+with\+\_\+llm (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{diff, }\item[{}]{message, }\item[{bool}]{generate\+\_\+description, }\item[{}]{repo\+\_\+details, }\item[{\mbox{\hyperlink{classpenify__hook_1_1llm__client_1_1LLMClient}{LLMClient}}}]{llm\+\_\+client, }\item[{}]{jira\+\_\+context = {\ttfamily None} }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Generates a commit summary using a local LLM client; falls back to API on +error.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1api__client_1_1APIClient_ac0ada470b897935f9fb372cd0e7e51e3_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1api__client_1_1APIClient_ad15b790608e703c8c122aa2ead7dfa99}\label{classpenify__hook_1_1api__client_1_1APIClient_ad15b790608e703c8c122aa2ead7dfa99}} +\index{penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}!get\_api\_key@{get\_api\_key}} +\index{get\_api\_key@{get\_api\_key}!penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}} +\doxysubsubsection{\texorpdfstring{get\_api\_key()}{get\_api\_key()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+api\+\_\+client.\+APIClient.\+get\+\_\+api\+\_\+key (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Fetch an API key from a specified URL using a Bearer token.\end{DoxyVerb} + \mbox{\Hypertarget{classpenify__hook_1_1api__client_1_1APIClient_a5d2b4a26b24352d951ea79ecc4ff3402}\label{classpenify__hook_1_1api__client_1_1APIClient_a5d2b4a26b24352d951ea79ecc4ff3402}} +\index{penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}!get\_supported\_file\_types@{get\_supported\_file\_types}} +\index{get\_supported\_file\_types@{get\_supported\_file\_types}!penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}} +\doxysubsubsection{\texorpdfstring{get\_supported\_file\_types()}{get\_supported\_file\_types()}} +{\footnotesize\ttfamily list\mbox{[}str\mbox{]} penify\+\_\+hook.\+api\+\_\+client.\+APIClient.\+get\+\_\+supported\+\_\+file\+\_\+types (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Retrieve supported file types from the API or return a default list.\end{DoxyVerb} + \mbox{\Hypertarget{classpenify__hook_1_1api__client_1_1APIClient_ac5aad61508c2cafdf6e88e6c7d6c82b3}\label{classpenify__hook_1_1api__client_1_1APIClient_ac5aad61508c2cafdf6e88e6c7d6c82b3}} +\index{penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}!send\_file\_for\_docstring\_generation@{send\_file\_for\_docstring\_generation}} +\index{send\_file\_for\_docstring\_generation@{send\_file\_for\_docstring\_generation}!penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}} +\doxysubsubsection{\texorpdfstring{send\_file\_for\_docstring\_generation()}{send\_file\_for\_docstring\_generation()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+api\+\_\+client.\+APIClient.\+send\+\_\+file\+\_\+for\+\_\+docstring\+\_\+generation (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{file\+\_\+name, }\item[{}]{content, }\item[{}]{line\+\_\+numbers, }\item[{}]{repo\+\_\+details = {\ttfamily None} }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Send file content and modified lines to the API and return modified content.\end{DoxyVerb} + + +\doxysubsection{Member Data Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1api__client_1_1APIClient_a130cf688ed35dc0e8cbd8320b6b2d872}\label{classpenify__hook_1_1api__client_1_1APIClient_a130cf688ed35dc0e8cbd8320b6b2d872}} +\index{penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}!api\_url@{api\_url}} +\index{api\_url@{api\_url}!penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}} +\doxysubsubsection{\texorpdfstring{api\_url}{api\_url}} +{\footnotesize\ttfamily penify\+\_\+hook.\+api\+\_\+client.\+APIClient.\+api\+\_\+url} + +\mbox{\Hypertarget{classpenify__hook_1_1api__client_1_1APIClient_a5bb502603717946ad710b49ad9d95237}\label{classpenify__hook_1_1api__client_1_1APIClient_a5bb502603717946ad710b49ad9d95237}} +\index{penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}!AUTH\_TOKEN@{AUTH\_TOKEN}} +\index{AUTH\_TOKEN@{AUTH\_TOKEN}!penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}} +\doxysubsubsection{\texorpdfstring{AUTH\_TOKEN}{AUTH\_TOKEN}} +{\footnotesize\ttfamily penify\+\_\+hook.\+api\+\_\+client.\+APIClient.\+AUTH\+\_\+\+TOKEN} + +\mbox{\Hypertarget{classpenify__hook_1_1api__client_1_1APIClient_a7d7e2cf42c54eb4f25adee96a09ee7b0}\label{classpenify__hook_1_1api__client_1_1APIClient_a7d7e2cf42c54eb4f25adee96a09ee7b0}} +\index{penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}!BEARER\_TOKEN@{BEARER\_TOKEN}} +\index{BEARER\_TOKEN@{BEARER\_TOKEN}!penify\_hook.api\_client.APIClient@{penify\_hook.api\_client.APIClient}} +\doxysubsubsection{\texorpdfstring{BEARER\_TOKEN}{BEARER\_TOKEN}} +{\footnotesize\ttfamily penify\+\_\+hook.\+api\+\_\+client.\+APIClient.\+BEARER\+\_\+\+TOKEN} + + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{api__client_8py}{api\+\_\+client.\+py}}\end{DoxyCompactItemize} diff --git a/docs/latex/classpenify__hook_1_1api__client_1_1APIClient__coll__graph.md5 b/docs/latex/classpenify__hook_1_1api__client_1_1APIClient__coll__graph.md5 new file mode 100644 index 0000000..2c7b583 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1api__client_1_1APIClient__coll__graph.md5 @@ -0,0 +1 @@ +92a3e9cee2cd5e4975e6a42b548f0d62 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1api__client_1_1APIClient__coll__graph.pdf b/docs/latex/classpenify__hook_1_1api__client_1_1APIClient__coll__graph.pdf new file mode 100644 index 0000000..4195610 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1api__client_1_1APIClient__coll__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1api__client_1_1APIClient_a7ff74798e7d428b4e2f20095287eb2ce_icgraph.md5 b/docs/latex/classpenify__hook_1_1api__client_1_1APIClient_a7ff74798e7d428b4e2f20095287eb2ce_icgraph.md5 new file mode 100644 index 0000000..057ae7a --- /dev/null +++ b/docs/latex/classpenify__hook_1_1api__client_1_1APIClient_a7ff74798e7d428b4e2f20095287eb2ce_icgraph.md5 @@ -0,0 +1 @@ +c32bbe2c64601ea3a3ae63d4ee184f5c \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1api__client_1_1APIClient_a7ff74798e7d428b4e2f20095287eb2ce_icgraph.pdf b/docs/latex/classpenify__hook_1_1api__client_1_1APIClient_a7ff74798e7d428b4e2f20095287eb2ce_icgraph.pdf new file mode 100644 index 0000000..efe6c7d Binary files /dev/null and b/docs/latex/classpenify__hook_1_1api__client_1_1APIClient_a7ff74798e7d428b4e2f20095287eb2ce_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1api__client_1_1APIClient_ac0ada470b897935f9fb372cd0e7e51e3_cgraph.md5 b/docs/latex/classpenify__hook_1_1api__client_1_1APIClient_ac0ada470b897935f9fb372cd0e7e51e3_cgraph.md5 new file mode 100644 index 0000000..003c9e9 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1api__client_1_1APIClient_ac0ada470b897935f9fb372cd0e7e51e3_cgraph.md5 @@ -0,0 +1 @@ +1edc4dc702a27cb3bbe6a36743a7fda9 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1api__client_1_1APIClient_ac0ada470b897935f9fb372cd0e7e51e3_cgraph.pdf b/docs/latex/classpenify__hook_1_1api__client_1_1APIClient_ac0ada470b897935f9fb372cd0e7e51e3_cgraph.pdf new file mode 100644 index 0000000..44cad83 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1api__client_1_1APIClient_ac0ada470b897935f9fb372cd0e7e51e3_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer.tex b/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer.tex new file mode 100644 index 0000000..7a3de00 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer.tex @@ -0,0 +1,107 @@ +\hypertarget{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer}{}\doxysection{penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer Class Reference} +\label{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer}\index{penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}} + + +Inheritance diagram for penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=232pt]{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer__coll__graph} +\end{center} +\end{figure} +\doxysubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_ab1296a3d1e9070d891801876b66f7344}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self, str \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_aa67c06dd12b1bafaeaee81c41dcb7e25}{folder\+\_\+path}}, \mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient}{APIClient}} \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a81e9c55709205aaf4ebbe2b41683baf2}{api\+\_\+client}}) +\end{DoxyCompactItemize} +\doxysubsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_aa67c06dd12b1bafaeaee81c41dcb7e25}{folder\+\_\+path}} +\item +\mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a957e81a1ab561f6cecfbe999e7b85499}{repo\+\_\+path}} +\item +\mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a3a9ddfa1dfba81fe21214fe486389369}{repo}} +\item +\mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a9cca3465b0cc00d78324b0a9eac1d7f5}{repo\+\_\+details}} +\item +\mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_ab702c0c3ba81d159d7c3bcd7ea2abba4}{relative\+\_\+file\+\_\+path}} +\item +\mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a81e9c55709205aaf4ebbe2b41683baf2}{api\+\_\+client}} +\item +\mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a0cac0310ec635aa64a34857cf30ce1eb}{supported\+\_\+file\+\_\+types}} +\end{DoxyCompactItemize} + + +\doxysubsection{Constructor \& Destructor Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_ab1296a3d1e9070d891801876b66f7344}\label{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_ab1296a3d1e9070d891801876b66f7344}} +\index{penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}!\_\_init\_\_@{\_\_init\_\_}} +\index{\_\_init\_\_@{\_\_init\_\_}!penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}} +\doxysubsubsection{\texorpdfstring{\_\_init\_\_()}{\_\_init\_\_()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer.\+\_\+\+\_\+init\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{folder\+\_\+path, }\item[{\mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient}{APIClient}}}]{api\+\_\+client }\end{DoxyParamCaption})} + + + +Reimplemented in \mbox{\hyperlink{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a1bb0358140931d82c7616f12efe31821}{penify\+\_\+hook.\+folder\+\_\+analyzer.\+Folder\+Analyzer\+Gen\+Hook}}, \mbox{\hyperlink{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a190c473090b2a07e7cb43073a3211c4b}{penify\+\_\+hook.\+file\+\_\+analyzer.\+File\+Analyzer\+Gen\+Hook}}, \mbox{\hyperlink{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c}{penify\+\_\+hook.\+git\+\_\+analyzer.\+Git\+Doc\+Gen\+Hook}}, and \mbox{\hyperlink{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e}{penify\+\_\+hook.\+commit\+\_\+analyzer.\+Commit\+Doc\+Gen\+Hook}}. + + + +\doxysubsection{Member Data Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a81e9c55709205aaf4ebbe2b41683baf2}\label{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a81e9c55709205aaf4ebbe2b41683baf2}} +\index{penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}!api\_client@{api\_client}} +\index{api\_client@{api\_client}!penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}} +\doxysubsubsection{\texorpdfstring{api\_client}{api\_client}} +{\footnotesize\ttfamily penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer.\+api\+\_\+client} + +\mbox{\Hypertarget{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_aa67c06dd12b1bafaeaee81c41dcb7e25}\label{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_aa67c06dd12b1bafaeaee81c41dcb7e25}} +\index{penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}!folder\_path@{folder\_path}} +\index{folder\_path@{folder\_path}!penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}} +\doxysubsubsection{\texorpdfstring{folder\_path}{folder\_path}} +{\footnotesize\ttfamily penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer.\+folder\+\_\+path} + +\mbox{\Hypertarget{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_ab702c0c3ba81d159d7c3bcd7ea2abba4}\label{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_ab702c0c3ba81d159d7c3bcd7ea2abba4}} +\index{penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}!relative\_file\_path@{relative\_file\_path}} +\index{relative\_file\_path@{relative\_file\_path}!penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}} +\doxysubsubsection{\texorpdfstring{relative\_file\_path}{relative\_file\_path}} +{\footnotesize\ttfamily penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer.\+relative\+\_\+file\+\_\+path} + +\mbox{\Hypertarget{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a3a9ddfa1dfba81fe21214fe486389369}\label{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a3a9ddfa1dfba81fe21214fe486389369}} +\index{penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}!repo@{repo}} +\index{repo@{repo}!penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}} +\doxysubsubsection{\texorpdfstring{repo}{repo}} +{\footnotesize\ttfamily penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer.\+repo} + +\mbox{\Hypertarget{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a9cca3465b0cc00d78324b0a9eac1d7f5}\label{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a9cca3465b0cc00d78324b0a9eac1d7f5}} +\index{penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}!repo\_details@{repo\_details}} +\index{repo\_details@{repo\_details}!penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}} +\doxysubsubsection{\texorpdfstring{repo\_details}{repo\_details}} +{\footnotesize\ttfamily penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer.\+repo\+\_\+details} + +\mbox{\Hypertarget{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a957e81a1ab561f6cecfbe999e7b85499}\label{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a957e81a1ab561f6cecfbe999e7b85499}} +\index{penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}!repo\_path@{repo\_path}} +\index{repo\_path@{repo\_path}!penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}} +\doxysubsubsection{\texorpdfstring{repo\_path}{repo\_path}} +{\footnotesize\ttfamily penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer.\+repo\+\_\+path} + +\mbox{\Hypertarget{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a0cac0310ec635aa64a34857cf30ce1eb}\label{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a0cac0310ec635aa64a34857cf30ce1eb}} +\index{penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}!supported\_file\_types@{supported\_file\_types}} +\index{supported\_file\_types@{supported\_file\_types}!penify\_hook.base\_analyzer.BaseAnalyzer@{penify\_hook.base\_analyzer.BaseAnalyzer}} +\doxysubsubsection{\texorpdfstring{supported\_file\_types}{supported\_file\_types}} +{\footnotesize\ttfamily penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer.\+supported\+\_\+file\+\_\+types} + + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{base__analyzer_8py}{base\+\_\+analyzer.\+py}}\end{DoxyCompactItemize} diff --git a/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer__coll__graph.md5 b/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer__coll__graph.md5 new file mode 100644 index 0000000..8f67765 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer__coll__graph.md5 @@ -0,0 +1 @@ +ba0c3a1d5b95dea65df70168e43976e0 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer__coll__graph.pdf b/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer__coll__graph.pdf new file mode 100644 index 0000000..b1b3bce Binary files /dev/null and b/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer__coll__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer__inherit__graph.md5 b/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer__inherit__graph.md5 new file mode 100644 index 0000000..8ac4d16 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer__inherit__graph.md5 @@ -0,0 +1 @@ +78c7a1fd0d3db6799e694367914b2b16 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer__inherit__graph.pdf b/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer__inherit__graph.pdf new file mode 100644 index 0000000..4301d5f Binary files /dev/null and b/docs/latex/classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer__inherit__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook.tex b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook.tex new file mode 100644 index 0000000..64d4f3a --- /dev/null +++ b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook.tex @@ -0,0 +1,209 @@ +\hypertarget{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook}{}\doxysection{penify\+\_\+hook.\+commit\+\_\+analyzer.\+Commit\+Doc\+Gen\+Hook Class Reference} +\label{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook}\index{penify\_hook.commit\_analyzer.CommitDocGenHook@{penify\_hook.commit\_analyzer.CommitDocGenHook}} + + +Inheritance diagram for penify\+\_\+hook.\+commit\+\_\+analyzer.\+Commit\+Doc\+Gen\+Hook\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=249pt]{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for penify\+\_\+hook.\+commit\+\_\+analyzer.\+Commit\+Doc\+Gen\+Hook\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=249pt]{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook__coll__graph} +\end{center} +\end{figure} +\doxysubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self, str \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a957e81a1ab561f6cecfbe999e7b85499}{repo\+\_\+path}}, \mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient}{APIClient}} \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a81e9c55709205aaf4ebbe2b41683baf2}{api\+\_\+client}}, \mbox{\hyperlink{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_ad93360e31f2ec58a0d7c9f08b219028a}{llm\+\_\+client}}=None, jira\+\_\+client=None) +\item +dict \mbox{\hyperlink{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37}{get\+\_\+summary}} (self, str instruction, bool generate\+\_\+description) +\item +def \mbox{\hyperlink{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a6370a03f7ed9175ef6f81e931a105ea9}{run}} (self, Optional\mbox{[}str\mbox{]} msg, bool edit\+\_\+commit\+\_\+message, bool generate\+\_\+description) +\item +tuple \mbox{\hyperlink{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f}{process\+\_\+jira\+\_\+integration}} (self, str title, str description, str msg) +\end{DoxyCompactItemize} +\doxysubsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_ad93360e31f2ec58a0d7c9f08b219028a}{llm\+\_\+client}} +\end{DoxyCompactItemize} +\doxysubsection*{Private Member Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_ac999c5cbc852a7ec3b412ccb43c274ca}{\+\_\+amend\+\_\+commit}} (self) +\end{DoxyCompactItemize} + + +\doxysubsection{Constructor \& Destructor Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e}\label{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e}} +\index{penify\_hook.commit\_analyzer.CommitDocGenHook@{penify\_hook.commit\_analyzer.CommitDocGenHook}!\_\_init\_\_@{\_\_init\_\_}} +\index{\_\_init\_\_@{\_\_init\_\_}!penify\_hook.commit\_analyzer.CommitDocGenHook@{penify\_hook.commit\_analyzer.CommitDocGenHook}} +\doxysubsubsection{\texorpdfstring{\_\_init\_\_()}{\_\_init\_\_()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commit\+\_\+analyzer.\+Commit\+Doc\+Gen\+Hook.\+\_\+\+\_\+init\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{repo\+\_\+path, }\item[{\mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient}{APIClient}}}]{api\+\_\+client, }\item[{}]{llm\+\_\+client = {\ttfamily None}, }\item[{}]{jira\+\_\+client = {\ttfamily None} }\end{DoxyParamCaption})} + + + +Reimplemented from \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_ab1296a3d1e9070d891801876b66f7344}{penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer}}. + +Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=252pt]{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=252pt]{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e_icgraph} +\end{center} +\end{figure} + + +\doxysubsection{Member Function Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_ac999c5cbc852a7ec3b412ccb43c274ca}\label{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_ac999c5cbc852a7ec3b412ccb43c274ca}} +\index{penify\_hook.commit\_analyzer.CommitDocGenHook@{penify\_hook.commit\_analyzer.CommitDocGenHook}!\_amend\_commit@{\_amend\_commit}} +\index{\_amend\_commit@{\_amend\_commit}!penify\_hook.commit\_analyzer.CommitDocGenHook@{penify\_hook.commit\_analyzer.CommitDocGenHook}} +\doxysubsubsection{\texorpdfstring{\_amend\_commit()}{\_amend\_commit()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commit\+\_\+analyzer.\+Commit\+Doc\+Gen\+Hook.\+\_\+amend\+\_\+commit (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}} + +\begin{DoxyVerb}Amends the last commit message in the repository.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_ac999c5cbc852a7ec3b412ccb43c274ca_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37}\label{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37}} +\index{penify\_hook.commit\_analyzer.CommitDocGenHook@{penify\_hook.commit\_analyzer.CommitDocGenHook}!get\_summary@{get\_summary}} +\index{get\_summary@{get\_summary}!penify\_hook.commit\_analyzer.CommitDocGenHook@{penify\_hook.commit\_analyzer.CommitDocGenHook}} +\doxysubsubsection{\texorpdfstring{get\_summary()}{get\_summary()}} +{\footnotesize\ttfamily dict penify\+\_\+hook.\+commit\+\_\+analyzer.\+Commit\+Doc\+Gen\+Hook.\+get\+\_\+summary (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{instruction, }\item[{bool}]{generate\+\_\+description }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Generate a summary for the commit based on the staged changes. + +This function retrieves the differences of the staged changes in the repository +and generates a commit summary using the provided instruction. If there are no +changes staged for commit, an exception is raised. If a JIRA client is +connected, it will attempt to extract issue keys from the current branch and +use them to fetch context. The summary can be generated either with a Language +Model (LLM) client or through the API client. + +Args: + instruction (str): A string containing instructions for generating the commit summary. + generate_description (bool): Whether to include detailed descriptions in the summary. + +Raises: + ValueError: If there are no changes staged for commit. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f}\label{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f}} +\index{penify\_hook.commit\_analyzer.CommitDocGenHook@{penify\_hook.commit\_analyzer.CommitDocGenHook}!process\_jira\_integration@{process\_jira\_integration}} +\index{process\_jira\_integration@{process\_jira\_integration}!penify\_hook.commit\_analyzer.CommitDocGenHook@{penify\_hook.commit\_analyzer.CommitDocGenHook}} +\doxysubsubsection{\texorpdfstring{process\_jira\_integration()}{process\_jira\_integration()}} +{\footnotesize\ttfamily tuple penify\+\_\+hook.\+commit\+\_\+analyzer.\+Commit\+Doc\+Gen\+Hook.\+process\+\_\+jira\+\_\+integration (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{title, }\item[{str}]{description, }\item[{str}]{msg }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Process JIRA integration by extracting issue keys from commit message +components and branch name. + +This function looks for JIRA issue keys in the provided commit title, +description, original user message, and the active branch name. It uses these +keys to update the commit message with JIRA information and adds comments to +the corresponding JIRA issues. If no keys are found, it logs a warning. + +Args: + title (str): The generated commit title. + description (str): The generated commit description. + msg (str): The original user message that might contain JIRA references. + +Returns: + tuple: A tuple containing the updated commit title and description with included JIRA + information. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a6370a03f7ed9175ef6f81e931a105ea9}\label{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a6370a03f7ed9175ef6f81e931a105ea9}} +\index{penify\_hook.commit\_analyzer.CommitDocGenHook@{penify\_hook.commit\_analyzer.CommitDocGenHook}!run@{run}} +\index{run@{run}!penify\_hook.commit\_analyzer.CommitDocGenHook@{penify\_hook.commit\_analyzer.CommitDocGenHook}} +\doxysubsubsection{\texorpdfstring{run()}{run()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commit\+\_\+analyzer.\+Commit\+Doc\+Gen\+Hook.\+run (\begin{DoxyParamCaption}\item[{}]{self, }\item[{Optional\mbox{[}str\mbox{]}}]{msg, }\item[{bool}]{edit\+\_\+commit\+\_\+message, }\item[{bool}]{generate\+\_\+description }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Run the post-commit hook. + +This method processes the modified files from the last commit, stages them, and +creates an auto-commit with an optional message. It also handles JIRA +integration if available. If there is an error generating the commit summary, +an exception is raised. + +Args: + msg (Optional[str]): An optional message to include in the commit. + edit_commit_message (bool): A flag indicating whether to open the git commit + edit terminal after committing. + generate_description (bool): A flag indicating whether to include a description + in the commit message. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a6370a03f7ed9175ef6f81e931a105ea9_cgraph} +\end{center} +\end{figure} + + +\doxysubsection{Member Data Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_ad93360e31f2ec58a0d7c9f08b219028a}\label{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_ad93360e31f2ec58a0d7c9f08b219028a}} +\index{penify\_hook.commit\_analyzer.CommitDocGenHook@{penify\_hook.commit\_analyzer.CommitDocGenHook}!llm\_client@{llm\_client}} +\index{llm\_client@{llm\_client}!penify\_hook.commit\_analyzer.CommitDocGenHook@{penify\_hook.commit\_analyzer.CommitDocGenHook}} +\doxysubsubsection{\texorpdfstring{llm\_client}{llm\_client}} +{\footnotesize\ttfamily penify\+\_\+hook.\+commit\+\_\+analyzer.\+Commit\+Doc\+Gen\+Hook.\+llm\+\_\+client} + + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{commit__analyzer_8py}{commit\+\_\+analyzer.\+py}}\end{DoxyCompactItemize} diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook__coll__graph.md5 b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook__coll__graph.md5 new file mode 100644 index 0000000..35df147 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook__coll__graph.md5 @@ -0,0 +1 @@ +7b1e9da3153fe718973c563cc1f30008 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook__coll__graph.pdf b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook__coll__graph.pdf new file mode 100644 index 0000000..bd975c7 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook__coll__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook__inherit__graph.md5 b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook__inherit__graph.md5 new file mode 100644 index 0000000..35df147 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook__inherit__graph.md5 @@ -0,0 +1 @@ +7b1e9da3153fe718973c563cc1f30008 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook__inherit__graph.pdf b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook__inherit__graph.pdf new file mode 100644 index 0000000..bd975c7 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook__inherit__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a6370a03f7ed9175ef6f81e931a105ea9_cgraph.md5 b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a6370a03f7ed9175ef6f81e931a105ea9_cgraph.md5 new file mode 100644 index 0000000..ba338a1 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a6370a03f7ed9175ef6f81e931a105ea9_cgraph.md5 @@ -0,0 +1 @@ +5902c80c1d724536feb6bf090e4c6e48 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a6370a03f7ed9175ef6f81e931a105ea9_cgraph.pdf b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a6370a03f7ed9175ef6f81e931a105ea9_cgraph.pdf new file mode 100644 index 0000000..04be3c4 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a6370a03f7ed9175ef6f81e931a105ea9_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37_cgraph.md5 b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37_cgraph.md5 new file mode 100644 index 0000000..509e440 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37_cgraph.md5 @@ -0,0 +1 @@ +13c7d6aeed6f4fa79b99539888c943c5 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37_cgraph.pdf b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37_cgraph.pdf new file mode 100644 index 0000000..e7c9599 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37_icgraph.md5 b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37_icgraph.md5 new file mode 100644 index 0000000..7c7ea1e --- /dev/null +++ b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37_icgraph.md5 @@ -0,0 +1 @@ +16dda8bcf7bb544a1ac1a3ee749a4c12 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37_icgraph.pdf b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37_icgraph.pdf new file mode 100644 index 0000000..041dd2f Binary files /dev/null and b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_a8496194276441fa2eb2fa014eaab9a37_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_ac999c5cbc852a7ec3b412ccb43c274ca_icgraph.md5 b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_ac999c5cbc852a7ec3b412ccb43c274ca_icgraph.md5 new file mode 100644 index 0000000..60c5b76 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_ac999c5cbc852a7ec3b412ccb43c274ca_icgraph.md5 @@ -0,0 +1 @@ +227f3af6dd4655e93382d230110c696c \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_ac999c5cbc852a7ec3b412ccb43c274ca_icgraph.pdf b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_ac999c5cbc852a7ec3b412ccb43c274ca_icgraph.pdf new file mode 100644 index 0000000..61f9a81 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_ac999c5cbc852a7ec3b412ccb43c274ca_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f_cgraph.md5 b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f_cgraph.md5 new file mode 100644 index 0000000..7d58051 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f_cgraph.md5 @@ -0,0 +1 @@ +71c8bbc9a0279bebdaf9302e6ef06f8c \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f_cgraph.pdf b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f_cgraph.pdf new file mode 100644 index 0000000..171b7ee Binary files /dev/null and b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f_icgraph.md5 b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f_icgraph.md5 new file mode 100644 index 0000000..5d17f80 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f_icgraph.md5 @@ -0,0 +1 @@ +3d7dac766372b5b869a22364e1f96e2e \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f_icgraph.pdf b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f_icgraph.pdf new file mode 100644 index 0000000..8196166 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_adda13cc121d96342476ccf72b63a007f_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e_cgraph.md5 b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e_cgraph.md5 new file mode 100644 index 0000000..308ea89 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e_cgraph.md5 @@ -0,0 +1 @@ +7e5b42cf201193b45ebc6a2301be181f \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e_cgraph.pdf b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e_cgraph.pdf new file mode 100644 index 0000000..ba0f925 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e_icgraph.md5 b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e_icgraph.md5 new file mode 100644 index 0000000..dd65a22 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e_icgraph.md5 @@ -0,0 +1 @@ +07f6c9f36c4b1be5bb1cf0c8fc522d64 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e_icgraph.pdf b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e_icgraph.pdf new file mode 100644 index 0000000..1884141 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook_af127d86729e226d74dbeb095b008db3e_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook.tex b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook.tex new file mode 100644 index 0000000..4a80143 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook.tex @@ -0,0 +1,137 @@ +\hypertarget{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook}{}\doxysection{penify\+\_\+hook.\+file\+\_\+analyzer.\+File\+Analyzer\+Gen\+Hook Class Reference} +\label{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook}\index{penify\_hook.file\_analyzer.FileAnalyzerGenHook@{penify\_hook.file\_analyzer.FileAnalyzerGenHook}} + + +Inheritance diagram for penify\+\_\+hook.\+file\+\_\+analyzer.\+File\+Analyzer\+Gen\+Hook\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=232pt]{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for penify\+\_\+hook.\+file\+\_\+analyzer.\+File\+Analyzer\+Gen\+Hook\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=232pt]{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook__coll__graph} +\end{center} +\end{figure} +\doxysubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a190c473090b2a07e7cb43073a3211c4b}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self, str \mbox{\hyperlink{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a9b03b88a9ce1b9af945279375048dc32}{file\+\_\+path}}, \mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient}{APIClient}} \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a81e9c55709205aaf4ebbe2b41683baf2}{api\+\_\+client}}) +\item +def \mbox{\hyperlink{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e}{process\+\_\+file}} (self, \mbox{\hyperlink{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a9b03b88a9ce1b9af945279375048dc32}{file\+\_\+path}}, pbar, str new\+\_\+param=\char`\"{}\char`\"{}) +\item +def \mbox{\hyperlink{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a6ab39391dfb7686f2a2d21a702dd3073}{print\+\_\+processing}} (self, \mbox{\hyperlink{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a9b03b88a9ce1b9af945279375048dc32}{file\+\_\+path}}) +\item +def \mbox{\hyperlink{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a4f4dffbc432fac3e259d957dd1e187f1}{run}} (self) +\end{DoxyCompactItemize} +\doxysubsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a9b03b88a9ce1b9af945279375048dc32}{file\+\_\+path}} +\end{DoxyCompactItemize} + + +\doxysubsection{Constructor \& Destructor Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a190c473090b2a07e7cb43073a3211c4b}\label{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a190c473090b2a07e7cb43073a3211c4b}} +\index{penify\_hook.file\_analyzer.FileAnalyzerGenHook@{penify\_hook.file\_analyzer.FileAnalyzerGenHook}!\_\_init\_\_@{\_\_init\_\_}} +\index{\_\_init\_\_@{\_\_init\_\_}!penify\_hook.file\_analyzer.FileAnalyzerGenHook@{penify\_hook.file\_analyzer.FileAnalyzerGenHook}} +\doxysubsubsection{\texorpdfstring{\_\_init\_\_()}{\_\_init\_\_()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+file\+\_\+analyzer.\+File\+Analyzer\+Gen\+Hook.\+\_\+\+\_\+init\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{file\+\_\+path, }\item[{\mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient}{APIClient}}}]{api\+\_\+client }\end{DoxyParamCaption})} + + + +Reimplemented from \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_ab1296a3d1e9070d891801876b66f7344}{penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer}}. + + + +\doxysubsection{Member Function Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a6ab39391dfb7686f2a2d21a702dd3073}\label{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a6ab39391dfb7686f2a2d21a702dd3073}} +\index{penify\_hook.file\_analyzer.FileAnalyzerGenHook@{penify\_hook.file\_analyzer.FileAnalyzerGenHook}!print\_processing@{print\_processing}} +\index{print\_processing@{print\_processing}!penify\_hook.file\_analyzer.FileAnalyzerGenHook@{penify\_hook.file\_analyzer.FileAnalyzerGenHook}} +\doxysubsubsection{\texorpdfstring{print\_processing()}{print\_processing()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+file\+\_\+analyzer.\+File\+Analyzer\+Gen\+Hook.\+print\+\_\+processing (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{file\+\_\+path }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Prints a message indicating that a file is being processed.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a6ab39391dfb7686f2a2d21a702dd3073_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e}\label{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e}} +\index{penify\_hook.file\_analyzer.FileAnalyzerGenHook@{penify\_hook.file\_analyzer.FileAnalyzerGenHook}!process\_file@{process\_file}} +\index{process\_file@{process\_file}!penify\_hook.file\_analyzer.FileAnalyzerGenHook@{penify\_hook.file\_analyzer.FileAnalyzerGenHook}} +\doxysubsubsection{\texorpdfstring{process\_file()}{process\_file()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+file\+\_\+analyzer.\+File\+Analyzer\+Gen\+Hook.\+process\+\_\+file (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{file\+\_\+path, }\item[{}]{pbar, }\item[{str }]{new\+\_\+param = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Processes a file by validating its extension, reading content, +generating documentation, and writing changes back to the file. The function +performs several stages of processing: 1. Validates the file's extension to +ensure it is supported. 2. Reads the content of the file. 3. Sends the file +content for documentation generation. 4. Writes the generated documentation +back to the file if there are changes. + +Args: + file_path (str): The path of the file to be processed. + pbar (tqdm.tqdm): A progress bar object to update the status of processing stages. + new_param (str?): An additional parameter for future use. Defaults to an empty string.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a4f4dffbc432fac3e259d957dd1e187f1}\label{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a4f4dffbc432fac3e259d957dd1e187f1}} +\index{penify\_hook.file\_analyzer.FileAnalyzerGenHook@{penify\_hook.file\_analyzer.FileAnalyzerGenHook}!run@{run}} +\index{run@{run}!penify\_hook.file\_analyzer.FileAnalyzerGenHook@{penify\_hook.file\_analyzer.FileAnalyzerGenHook}} +\doxysubsubsection{\texorpdfstring{run()}{run()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+file\+\_\+analyzer.\+File\+Analyzer\+Gen\+Hook.\+run (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Runs the documentation process with a progress bar. + +This method orchestrates the documentation process by creating a progress bar, +processing the file, and handling exceptions to ensure the progress bar +completes properly. It updates the progress bar through various stages and +provides feedback based on the result of the file processing. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a4f4dffbc432fac3e259d957dd1e187f1_cgraph} +\end{center} +\end{figure} + + +\doxysubsection{Member Data Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a9b03b88a9ce1b9af945279375048dc32}\label{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a9b03b88a9ce1b9af945279375048dc32}} +\index{penify\_hook.file\_analyzer.FileAnalyzerGenHook@{penify\_hook.file\_analyzer.FileAnalyzerGenHook}!file\_path@{file\_path}} +\index{file\_path@{file\_path}!penify\_hook.file\_analyzer.FileAnalyzerGenHook@{penify\_hook.file\_analyzer.FileAnalyzerGenHook}} +\doxysubsubsection{\texorpdfstring{file\_path}{file\_path}} +{\footnotesize\ttfamily penify\+\_\+hook.\+file\+\_\+analyzer.\+File\+Analyzer\+Gen\+Hook.\+file\+\_\+path} + + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{file__analyzer_8py}{file\+\_\+analyzer.\+py}}\end{DoxyCompactItemize} diff --git a/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook__coll__graph.md5 b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook__coll__graph.md5 new file mode 100644 index 0000000..72d294f --- /dev/null +++ b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook__coll__graph.md5 @@ -0,0 +1 @@ +f623cc67d7a4a31617b4c5845170b4e6 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook__coll__graph.pdf b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook__coll__graph.pdf new file mode 100644 index 0000000..73a7604 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook__coll__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook__inherit__graph.md5 b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook__inherit__graph.md5 new file mode 100644 index 0000000..72d294f --- /dev/null +++ b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook__inherit__graph.md5 @@ -0,0 +1 @@ +f623cc67d7a4a31617b4c5845170b4e6 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook__inherit__graph.pdf b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook__inherit__graph.pdf new file mode 100644 index 0000000..73a7604 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook__inherit__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e_cgraph.md5 b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e_cgraph.md5 new file mode 100644 index 0000000..2e49928 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e_cgraph.md5 @@ -0,0 +1 @@ +1efb0855e6048d713024cec5d6e365a2 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e_cgraph.pdf b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e_cgraph.pdf new file mode 100644 index 0000000..889132b Binary files /dev/null and b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e_icgraph.md5 b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e_icgraph.md5 new file mode 100644 index 0000000..e69240d --- /dev/null +++ b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e_icgraph.md5 @@ -0,0 +1 @@ +5f3ec66eaa94bda06214ac6b7da5c11e \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e_icgraph.pdf b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e_icgraph.pdf new file mode 100644 index 0000000..7e567df Binary files /dev/null and b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a2cc6c22ef588fccf3eed9bbc57fb6d6e_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a4f4dffbc432fac3e259d957dd1e187f1_cgraph.md5 b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a4f4dffbc432fac3e259d957dd1e187f1_cgraph.md5 new file mode 100644 index 0000000..919e132 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a4f4dffbc432fac3e259d957dd1e187f1_cgraph.md5 @@ -0,0 +1 @@ +021ee7d254db5a7eecf98c56f461c558 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a4f4dffbc432fac3e259d957dd1e187f1_cgraph.pdf b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a4f4dffbc432fac3e259d957dd1e187f1_cgraph.pdf new file mode 100644 index 0000000..ce540e9 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a4f4dffbc432fac3e259d957dd1e187f1_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a6ab39391dfb7686f2a2d21a702dd3073_cgraph.md5 b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a6ab39391dfb7686f2a2d21a702dd3073_cgraph.md5 new file mode 100644 index 0000000..183ef73 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a6ab39391dfb7686f2a2d21a702dd3073_cgraph.md5 @@ -0,0 +1 @@ +000b7c30ac00693a301980d5799ae8a3 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a6ab39391dfb7686f2a2d21a702dd3073_cgraph.pdf b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a6ab39391dfb7686f2a2d21a702dd3073_cgraph.pdf new file mode 100644 index 0000000..6cbfef7 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook_a6ab39391dfb7686f2a2d21a702dd3073_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook.tex b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook.tex new file mode 100644 index 0000000..88f43e4 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook.tex @@ -0,0 +1,105 @@ +\hypertarget{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook}{}\doxysection{penify\+\_\+hook.\+folder\+\_\+analyzer.\+Folder\+Analyzer\+Gen\+Hook Class Reference} +\label{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook}\index{penify\_hook.folder\_analyzer.FolderAnalyzerGenHook@{penify\_hook.folder\_analyzer.FolderAnalyzerGenHook}} + + +Inheritance diagram for penify\+\_\+hook.\+folder\+\_\+analyzer.\+Folder\+Analyzer\+Gen\+Hook\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=264pt]{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for penify\+\_\+hook.\+folder\+\_\+analyzer.\+Folder\+Analyzer\+Gen\+Hook\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=264pt]{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook__coll__graph} +\end{center} +\end{figure} +\doxysubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a1bb0358140931d82c7616f12efe31821}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self, str \mbox{\hyperlink{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a53f73d69cc0f00763ee4830e4f0f7393}{dir\+\_\+path}}, \mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient}{APIClient}} \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a81e9c55709205aaf4ebbe2b41683baf2}{api\+\_\+client}}) +\item +def \mbox{\hyperlink{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a70b845318fc7ac3b607daf26378e19ec}{list\+\_\+all\+\_\+files\+\_\+in\+\_\+dir}} (self, str \mbox{\hyperlink{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a53f73d69cc0f00763ee4830e4f0f7393}{dir\+\_\+path}}) +\item +def \mbox{\hyperlink{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_afd189d1b8c773bf710a899eb21fd76cc}{run}} (self) +\end{DoxyCompactItemize} +\doxysubsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a53f73d69cc0f00763ee4830e4f0f7393}{dir\+\_\+path}} +\end{DoxyCompactItemize} + + +\doxysubsection{Constructor \& Destructor Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a1bb0358140931d82c7616f12efe31821}\label{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a1bb0358140931d82c7616f12efe31821}} +\index{penify\_hook.folder\_analyzer.FolderAnalyzerGenHook@{penify\_hook.folder\_analyzer.FolderAnalyzerGenHook}!\_\_init\_\_@{\_\_init\_\_}} +\index{\_\_init\_\_@{\_\_init\_\_}!penify\_hook.folder\_analyzer.FolderAnalyzerGenHook@{penify\_hook.folder\_analyzer.FolderAnalyzerGenHook}} +\doxysubsubsection{\texorpdfstring{\_\_init\_\_()}{\_\_init\_\_()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+folder\+\_\+analyzer.\+Folder\+Analyzer\+Gen\+Hook.\+\_\+\+\_\+init\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{dir\+\_\+path, }\item[{\mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient}{APIClient}}}]{api\+\_\+client }\end{DoxyParamCaption})} + + + +Reimplemented from \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_ab1296a3d1e9070d891801876b66f7344}{penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer}}. + + + +\doxysubsection{Member Function Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a70b845318fc7ac3b607daf26378e19ec}\label{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a70b845318fc7ac3b607daf26378e19ec}} +\index{penify\_hook.folder\_analyzer.FolderAnalyzerGenHook@{penify\_hook.folder\_analyzer.FolderAnalyzerGenHook}!list\_all\_files\_in\_dir@{list\_all\_files\_in\_dir}} +\index{list\_all\_files\_in\_dir@{list\_all\_files\_in\_dir}!penify\_hook.folder\_analyzer.FolderAnalyzerGenHook@{penify\_hook.folder\_analyzer.FolderAnalyzerGenHook}} +\doxysubsubsection{\texorpdfstring{list\_all\_files\_in\_dir()}{list\_all\_files\_in\_dir()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+folder\+\_\+analyzer.\+Folder\+Analyzer\+Gen\+Hook.\+list\+\_\+all\+\_\+files\+\_\+in\+\_\+dir (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{dir\+\_\+path }\end{DoxyParamCaption})} + +\begin{DoxyVerb}List all non-hidden files in a directory and its subdirectories. + +This function recursively traverses the specified directory and its +subdirectories, collecting paths of all non-hidden files. It filters out hidden +directories and files (those starting with a dot) to ensure only visible files +are returned. + +Args: + dir_path (str): The path to the directory whose files and subdirectory files need to be listed. +\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a70b845318fc7ac3b607daf26378e19ec_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_afd189d1b8c773bf710a899eb21fd76cc}\label{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_afd189d1b8c773bf710a899eb21fd76cc}} +\index{penify\_hook.folder\_analyzer.FolderAnalyzerGenHook@{penify\_hook.folder\_analyzer.FolderAnalyzerGenHook}!run@{run}} +\index{run@{run}!penify\_hook.folder\_analyzer.FolderAnalyzerGenHook@{penify\_hook.folder\_analyzer.FolderAnalyzerGenHook}} +\doxysubsubsection{\texorpdfstring{run()}{run()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+folder\+\_\+analyzer.\+Folder\+Analyzer\+Gen\+Hook.\+run (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Run the post-commit hook and process files with a progress bar.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_afd189d1b8c773bf710a899eb21fd76cc_cgraph} +\end{center} +\end{figure} + + +\doxysubsection{Member Data Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a53f73d69cc0f00763ee4830e4f0f7393}\label{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a53f73d69cc0f00763ee4830e4f0f7393}} +\index{penify\_hook.folder\_analyzer.FolderAnalyzerGenHook@{penify\_hook.folder\_analyzer.FolderAnalyzerGenHook}!dir\_path@{dir\_path}} +\index{dir\_path@{dir\_path}!penify\_hook.folder\_analyzer.FolderAnalyzerGenHook@{penify\_hook.folder\_analyzer.FolderAnalyzerGenHook}} +\doxysubsubsection{\texorpdfstring{dir\_path}{dir\_path}} +{\footnotesize\ttfamily penify\+\_\+hook.\+folder\+\_\+analyzer.\+Folder\+Analyzer\+Gen\+Hook.\+dir\+\_\+path} + + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{folder__analyzer_8py}{folder\+\_\+analyzer.\+py}}\end{DoxyCompactItemize} diff --git a/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook__coll__graph.md5 b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook__coll__graph.md5 new file mode 100644 index 0000000..f267fb5 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook__coll__graph.md5 @@ -0,0 +1 @@ +e2418599999dd43b3b774ba832ff7679 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook__coll__graph.pdf b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook__coll__graph.pdf new file mode 100644 index 0000000..c821a4d Binary files /dev/null and b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook__coll__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook__inherit__graph.md5 b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook__inherit__graph.md5 new file mode 100644 index 0000000..f267fb5 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook__inherit__graph.md5 @@ -0,0 +1 @@ +e2418599999dd43b3b774ba832ff7679 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook__inherit__graph.pdf b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook__inherit__graph.pdf new file mode 100644 index 0000000..c821a4d Binary files /dev/null and b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook__inherit__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a70b845318fc7ac3b607daf26378e19ec_icgraph.md5 b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a70b845318fc7ac3b607daf26378e19ec_icgraph.md5 new file mode 100644 index 0000000..9edbb7f --- /dev/null +++ b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a70b845318fc7ac3b607daf26378e19ec_icgraph.md5 @@ -0,0 +1 @@ +4b626a5d73186fe5984747cb8eb5699e \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a70b845318fc7ac3b607daf26378e19ec_icgraph.pdf b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a70b845318fc7ac3b607daf26378e19ec_icgraph.pdf new file mode 100644 index 0000000..4965f70 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_a70b845318fc7ac3b607daf26378e19ec_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_afd189d1b8c773bf710a899eb21fd76cc_cgraph.md5 b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_afd189d1b8c773bf710a899eb21fd76cc_cgraph.md5 new file mode 100644 index 0000000..0845786 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_afd189d1b8c773bf710a899eb21fd76cc_cgraph.md5 @@ -0,0 +1 @@ +feda0e58feb9f9a10947ea8378ae74dd \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_afd189d1b8c773bf710a899eb21fd76cc_cgraph.pdf b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_afd189d1b8c773bf710a899eb21fd76cc_cgraph.pdf new file mode 100644 index 0000000..3e59576 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook_afd189d1b8c773bf710a899eb21fd76cc_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook.tex b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook.tex new file mode 100644 index 0000000..95a820e --- /dev/null +++ b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook.tex @@ -0,0 +1,172 @@ +\hypertarget{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook}{}\doxysection{penify\+\_\+hook.\+git\+\_\+analyzer.\+Git\+Doc\+Gen\+Hook Class Reference} +\label{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook}\index{penify\_hook.git\_analyzer.GitDocGenHook@{penify\_hook.git\_analyzer.GitDocGenHook}} + + +Inheritance diagram for penify\+\_\+hook.\+git\+\_\+analyzer.\+Git\+Doc\+Gen\+Hook\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=232pt]{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for penify\+\_\+hook.\+git\+\_\+analyzer.\+Git\+Doc\+Gen\+Hook\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=232pt]{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook__coll__graph} +\end{center} +\end{figure} +\doxysubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self, str \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a957e81a1ab561f6cecfbe999e7b85499}{repo\+\_\+path}}, \mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient}{APIClient}} \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_a81e9c55709205aaf4ebbe2b41683baf2}{api\+\_\+client}}) +\item +def \mbox{\hyperlink{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a17549766100e91eb94b5f1a1d34bf481}{get\+\_\+modified\+\_\+files\+\_\+in\+\_\+last\+\_\+commit}} (self) +\item +def \mbox{\hyperlink{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a974d2f51315ed6a1965a7fd7e2ced0cd}{get\+\_\+modified\+\_\+lines}} (self, diff\+\_\+text) +\item +def \mbox{\hyperlink{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85}{process\+\_\+file}} (self, file\+\_\+path) +\item +def \mbox{\hyperlink{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a3beba14e92d717391a74bb70b1fab0ae}{run}} (self) +\end{DoxyCompactItemize} +\doxysubsection*{Additional Inherited Members} + + +\doxysubsection{Constructor \& Destructor Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c}\label{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c}} +\index{penify\_hook.git\_analyzer.GitDocGenHook@{penify\_hook.git\_analyzer.GitDocGenHook}!\_\_init\_\_@{\_\_init\_\_}} +\index{\_\_init\_\_@{\_\_init\_\_}!penify\_hook.git\_analyzer.GitDocGenHook@{penify\_hook.git\_analyzer.GitDocGenHook}} +\doxysubsubsection{\texorpdfstring{\_\_init\_\_()}{\_\_init\_\_()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+git\+\_\+analyzer.\+Git\+Doc\+Gen\+Hook.\+\_\+\+\_\+init\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{repo\+\_\+path, }\item[{\mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient}{APIClient}}}]{api\+\_\+client }\end{DoxyParamCaption})} + + + +Reimplemented from \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer_ab1296a3d1e9070d891801876b66f7344}{penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer}}. + +Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=221pt]{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=221pt]{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c_icgraph} +\end{center} +\end{figure} + + +\doxysubsection{Member Function Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a17549766100e91eb94b5f1a1d34bf481}\label{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a17549766100e91eb94b5f1a1d34bf481}} +\index{penify\_hook.git\_analyzer.GitDocGenHook@{penify\_hook.git\_analyzer.GitDocGenHook}!get\_modified\_files\_in\_last\_commit@{get\_modified\_files\_in\_last\_commit}} +\index{get\_modified\_files\_in\_last\_commit@{get\_modified\_files\_in\_last\_commit}!penify\_hook.git\_analyzer.GitDocGenHook@{penify\_hook.git\_analyzer.GitDocGenHook}} +\doxysubsubsection{\texorpdfstring{get\_modified\_files\_in\_last\_commit()}{get\_modified\_files\_in\_last\_commit()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+git\+\_\+analyzer.\+Git\+Doc\+Gen\+Hook.\+get\+\_\+modified\+\_\+files\+\_\+in\+\_\+last\+\_\+commit (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Get the list of files modified in the last commit.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a17549766100e91eb94b5f1a1d34bf481_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a974d2f51315ed6a1965a7fd7e2ced0cd}\label{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a974d2f51315ed6a1965a7fd7e2ced0cd}} +\index{penify\_hook.git\_analyzer.GitDocGenHook@{penify\_hook.git\_analyzer.GitDocGenHook}!get\_modified\_lines@{get\_modified\_lines}} +\index{get\_modified\_lines@{get\_modified\_lines}!penify\_hook.git\_analyzer.GitDocGenHook@{penify\_hook.git\_analyzer.GitDocGenHook}} +\doxysubsubsection{\texorpdfstring{get\_modified\_lines()}{get\_modified\_lines()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+git\+\_\+analyzer.\+Git\+Doc\+Gen\+Hook.\+get\+\_\+modified\+\_\+lines (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{diff\+\_\+text }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Extract modified line numbers from a diff text. + +This function processes a diff text to identify and extract the line numbers +that have been modified. It distinguishes between added and deleted lines and +keeps track of the current line number as it parses through the diff. The +function handles hunk headers and ensures that any deletions at the end of the +file are also captured. + +Args: + diff_text (str): A string containing the diff text to be processed. +\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a974d2f51315ed6a1965a7fd7e2ced0cd_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85}\label{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85}} +\index{penify\_hook.git\_analyzer.GitDocGenHook@{penify\_hook.git\_analyzer.GitDocGenHook}!process\_file@{process\_file}} +\index{process\_file@{process\_file}!penify\_hook.git\_analyzer.GitDocGenHook@{penify\_hook.git\_analyzer.GitDocGenHook}} +\doxysubsubsection{\texorpdfstring{process\_file()}{process\_file()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+git\+\_\+analyzer.\+Git\+Doc\+Gen\+Hook.\+process\+\_\+file (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{file\+\_\+path }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Processes a file by checking its type, reading its content, and sending it to +an API. + +This method constructs the absolute path of the specified file and verifies if +the file has a valid extension. If the file type is supported, it reads the +content of the file and retrieves the differences from the last commit in the +repository. If changes are detected, it sends the file content along with the +modified lines to an API for further processing. If the API response indicates +no changes, the original file will not be overwritten. + +Args: + file_path (str): The relative path to the file to be processed. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a3beba14e92d717391a74bb70b1fab0ae}\label{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a3beba14e92d717391a74bb70b1fab0ae}} +\index{penify\_hook.git\_analyzer.GitDocGenHook@{penify\_hook.git\_analyzer.GitDocGenHook}!run@{run}} +\index{run@{run}!penify\_hook.git\_analyzer.GitDocGenHook@{penify\_hook.git\_analyzer.GitDocGenHook}} +\doxysubsubsection{\texorpdfstring{run()}{run()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+git\+\_\+analyzer.\+Git\+Doc\+Gen\+Hook.\+run (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Run the post-commit hook. + +This method retrieves the list of modified files from the last commit and +processes each file. It stages any files that have been modified during +processing and creates an auto-commit if changes were made. A progress bar is +displayed to indicate the processing status of each file. The method handles +any exceptions that occur during file processing, printing an error message for +each file that fails to process. If any modifications are made to the files, an +auto-commit is created to save those changes. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a3beba14e92d717391a74bb70b1fab0ae_cgraph} +\end{center} +\end{figure} + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{git__analyzer_8py}{git\+\_\+analyzer.\+py}}\end{DoxyCompactItemize} diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook__coll__graph.md5 b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook__coll__graph.md5 new file mode 100644 index 0000000..0d79f1e --- /dev/null +++ b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook__coll__graph.md5 @@ -0,0 +1 @@ +ba80f175c8cd7a8a783b166fbb3a2ca2 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook__coll__graph.pdf b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook__coll__graph.pdf new file mode 100644 index 0000000..f37ac98 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook__coll__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook__inherit__graph.md5 b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook__inherit__graph.md5 new file mode 100644 index 0000000..0d79f1e --- /dev/null +++ b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook__inherit__graph.md5 @@ -0,0 +1 @@ +ba80f175c8cd7a8a783b166fbb3a2ca2 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook__inherit__graph.pdf b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook__inherit__graph.pdf new file mode 100644 index 0000000..f37ac98 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook__inherit__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85_cgraph.md5 b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85_cgraph.md5 new file mode 100644 index 0000000..b91e421 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85_cgraph.md5 @@ -0,0 +1 @@ +81df036896289c80f1003b3dadbab751 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85_cgraph.pdf b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85_cgraph.pdf new file mode 100644 index 0000000..6523f87 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85_icgraph.md5 b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85_icgraph.md5 new file mode 100644 index 0000000..8f064ad --- /dev/null +++ b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85_icgraph.md5 @@ -0,0 +1 @@ +33b112b67f2f608b8139e9b2d4d8036a \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85_icgraph.pdf b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85_icgraph.pdf new file mode 100644 index 0000000..0c48010 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a05313caa22b173ce75638f0db08eeb85_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a17549766100e91eb94b5f1a1d34bf481_icgraph.md5 b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a17549766100e91eb94b5f1a1d34bf481_icgraph.md5 new file mode 100644 index 0000000..f69765c --- /dev/null +++ b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a17549766100e91eb94b5f1a1d34bf481_icgraph.md5 @@ -0,0 +1 @@ +f90a7307f64d3cc918b7a108f87099ba \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a17549766100e91eb94b5f1a1d34bf481_icgraph.pdf b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a17549766100e91eb94b5f1a1d34bf481_icgraph.pdf new file mode 100644 index 0000000..35f809e Binary files /dev/null and b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a17549766100e91eb94b5f1a1d34bf481_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a3beba14e92d717391a74bb70b1fab0ae_cgraph.md5 b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a3beba14e92d717391a74bb70b1fab0ae_cgraph.md5 new file mode 100644 index 0000000..f8b92d2 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a3beba14e92d717391a74bb70b1fab0ae_cgraph.md5 @@ -0,0 +1 @@ +31223da7995a497de7dfb15cad3db840 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a3beba14e92d717391a74bb70b1fab0ae_cgraph.pdf b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a3beba14e92d717391a74bb70b1fab0ae_cgraph.pdf new file mode 100644 index 0000000..dbe1da8 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a3beba14e92d717391a74bb70b1fab0ae_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c_cgraph.md5 b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c_cgraph.md5 new file mode 100644 index 0000000..eb830b8 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c_cgraph.md5 @@ -0,0 +1 @@ +dc504961442038a74f38d545279487ec \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c_cgraph.pdf b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c_cgraph.pdf new file mode 100644 index 0000000..3cd65e2 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c_icgraph.md5 b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c_icgraph.md5 new file mode 100644 index 0000000..8fb1cfb --- /dev/null +++ b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c_icgraph.md5 @@ -0,0 +1 @@ +ce5e5759ae8990671a19084de5b38951 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c_icgraph.pdf b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c_icgraph.pdf new file mode 100644 index 0000000..45b0b0d Binary files /dev/null and b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a92275fddb43dbef6dfdb6c1ed6e96d0c_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a974d2f51315ed6a1965a7fd7e2ced0cd_icgraph.md5 b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a974d2f51315ed6a1965a7fd7e2ced0cd_icgraph.md5 new file mode 100644 index 0000000..575d3a3 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a974d2f51315ed6a1965a7fd7e2ced0cd_icgraph.md5 @@ -0,0 +1 @@ +ec09b97c599665269fd73299b9fa3d02 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a974d2f51315ed6a1965a7fd7e2ced0cd_icgraph.pdf b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a974d2f51315ed6a1965a7fd7e2ced0cd_icgraph.pdf new file mode 100644 index 0000000..5858ee3 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1git__analyzer_1_1GitDocGenHook_a974d2f51315ed6a1965a7fd7e2ced0cd_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient.tex b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient.tex new file mode 100644 index 0000000..f2bf7b2 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient.tex @@ -0,0 +1,385 @@ +\hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient}{}\doxysection{penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client Class Reference} +\label{classpenify__hook_1_1jira__client_1_1JiraClient}\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} + + +Collaboration diagram for penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=249pt]{classpenify__hook_1_1jira__client_1_1JiraClient__coll__graph} +\end{center} +\end{figure} +\doxysubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_a47efc1ec07389c960f2dfb37ba8c09f5}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self, str \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_a3c0cfecff02a75cb7001509a595b8197}{jira\+\_\+url}}=None, str \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_ae56104d5aa7bda7bb26d169c4b46038c}{jira\+\_\+user}}=None, str \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_afc5c90e53b702f9fc27e2ee7d3f991b9}{jira\+\_\+api\+\_\+token}}=None) +\item +bool \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_a00d0f9ae006313a21576362d26ac5ec8}{is\+\_\+connected}} (self) +\item +List\mbox{[}str\mbox{]} \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_a093d6456fe053ef7a7862d5d6851910c}{extract\+\_\+issue\+\_\+keys\+\_\+from\+\_\+branch}} (self, str branch\+\_\+name) +\item +List\mbox{[}str\mbox{]} \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_ad2823ad1d3baaedd38039913c3a97fd7}{extract\+\_\+issue\+\_\+keys}} (self, str text) +\item +Optional\mbox{[}Dict\mbox{[}str, Any\mbox{]}\mbox{]} \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a}{get\+\_\+issue\+\_\+details}} (self, str issue\+\_\+key) +\item +bool \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1}{add\+\_\+comment}} (self, str issue\+\_\+key, str comment) +\item +bool \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_aca8837552d37bfd611de23441a240826}{update\+\_\+issue\+\_\+status}} (self, str issue\+\_\+key, str transition\+\_\+name) +\item +tuple \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23}{format\+\_\+commit\+\_\+message\+\_\+with\+\_\+jira\+\_\+info}} (self, str commit\+\_\+title, str commit\+\_\+description, List\mbox{[}str\mbox{]} issue\+\_\+keys=None) +\item +Dict\mbox{[}str, Any\mbox{]} \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746}{get\+\_\+detailed\+\_\+issue\+\_\+context}} (self, str issue\+\_\+key) +\item +Dict\mbox{[}str, Any\mbox{]} \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd}{get\+\_\+commit\+\_\+context\+\_\+from\+\_\+issues}} (self, List\mbox{[}str\mbox{]} issue\+\_\+keys) +\item +tuple \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_a70d2c5a6432aa6f238da0ff65d49a760}{enhance\+\_\+commit\+\_\+message}} (self, str title, str description, List\mbox{[}str\mbox{]} issue\+\_\+keys) +\end{DoxyCompactItemize} +\doxysubsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_a3c0cfecff02a75cb7001509a595b8197}{jira\+\_\+url}} +\item +\mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_ae56104d5aa7bda7bb26d169c4b46038c}{jira\+\_\+user}} +\item +\mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_afc5c90e53b702f9fc27e2ee7d3f991b9}{jira\+\_\+api\+\_\+token}} +\item +\mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient_aefb3f96c79358cf3a95d96d3747235b6}{jira\+\_\+client}} +\end{DoxyCompactItemize} + + +\doxysubsection{Detailed Description} +\begin{DoxyVerb}Client for interacting with JIRA API +\end{DoxyVerb} + + +\doxysubsection{Constructor \& Destructor Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_a47efc1ec07389c960f2dfb37ba8c09f5}\label{classpenify__hook_1_1jira__client_1_1JiraClient_a47efc1ec07389c960f2dfb37ba8c09f5}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!\_\_init\_\_@{\_\_init\_\_}} +\index{\_\_init\_\_@{\_\_init\_\_}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{\_\_init\_\_()}{\_\_init\_\_()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+\_\+\+\_\+init\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str }]{jira\+\_\+url = {\ttfamily None}, }\item[{str }]{jira\+\_\+user = {\ttfamily None}, }\item[{str }]{jira\+\_\+api\+\_\+token = {\ttfamily None} }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Initialize the JIRA client. + +Args: + jira_url: Base URL for JIRA instance (e.g., "https://your-domain.atlassian.net") + jira_user: JIRA username or email + jira_api_token: JIRA API token +\end{DoxyVerb} + + +\doxysubsection{Member Function Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1}\label{classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!add\_comment@{add\_comment}} +\index{add\_comment@{add\_comment}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{add\_comment()}{add\_comment()}} +{\footnotesize\ttfamily bool penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+add\+\_\+comment (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{issue\+\_\+key, }\item[{str}]{comment }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Adds a comment to a JIRA issue.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=214pt]{classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_a70d2c5a6432aa6f238da0ff65d49a760}\label{classpenify__hook_1_1jira__client_1_1JiraClient_a70d2c5a6432aa6f238da0ff65d49a760}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!enhance\_commit\_message@{enhance\_commit\_message}} +\index{enhance\_commit\_message@{enhance\_commit\_message}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{enhance\_commit\_message()}{enhance\_commit\_message()}} +{\footnotesize\ttfamily tuple penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+enhance\+\_\+commit\+\_\+message (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{title, }\item[{str}]{description, }\item[{List\mbox{[}str\mbox{]}}]{issue\+\_\+keys }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Enhance a commit message with business and technical context from JIRA issues. + +This function first checks if the list of issue keys is empty or if there is no +connection. If so, it returns the original title and description without +modification. It then retrieves context information from the specified JIRA +issues. If the primary issue is missing, it formats the commit message with +basic JIRA info. The function enhances the commit title by prefixing it with +the primary issue key if not already included. It appends a business context +section to the description, including details like issue type, status, +priority, sprint, acceptance criteria, and a condensed issue description. If +comments are available, they are added as technical notes. Finally, related +issues are listed. + +Args: + title (str): Original commit title. + description (str): Original commit description. + issue_keys (List[str]): List of JIRA issue keys to include in the enhanced commit message. + +Returns: + tuple: A tuple containing the enhanced commit title and description with added + context from JIRA issues. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1jira__client_1_1JiraClient_a70d2c5a6432aa6f238da0ff65d49a760_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_ad2823ad1d3baaedd38039913c3a97fd7}\label{classpenify__hook_1_1jira__client_1_1JiraClient_ad2823ad1d3baaedd38039913c3a97fd7}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!extract\_issue\_keys@{extract\_issue\_keys}} +\index{extract\_issue\_keys@{extract\_issue\_keys}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{extract\_issue\_keys()}{extract\_issue\_keys()}} +{\footnotesize\ttfamily List\mbox{[}str\mbox{]} penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+extract\+\_\+issue\+\_\+keys (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{text }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Extract unique JIRA issue keys from the given text.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1jira__client_1_1JiraClient_ad2823ad1d3baaedd38039913c3a97fd7_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_a093d6456fe053ef7a7862d5d6851910c}\label{classpenify__hook_1_1jira__client_1_1JiraClient_a093d6456fe053ef7a7862d5d6851910c}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!extract\_issue\_keys\_from\_branch@{extract\_issue\_keys\_from\_branch}} +\index{extract\_issue\_keys\_from\_branch@{extract\_issue\_keys\_from\_branch}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{extract\_issue\_keys\_from\_branch()}{extract\_issue\_keys\_from\_branch()}} +{\footnotesize\ttfamily List\mbox{[}str\mbox{]} penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+extract\+\_\+issue\+\_\+keys\+\_\+from\+\_\+branch (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{branch\+\_\+name }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Extracts unique JIRA issue keys from a branch name.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1jira__client_1_1JiraClient_a093d6456fe053ef7a7862d5d6851910c_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23}\label{classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!format\_commit\_message\_with\_jira\_info@{format\_commit\_message\_with\_jira\_info}} +\index{format\_commit\_message\_with\_jira\_info@{format\_commit\_message\_with\_jira\_info}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{format\_commit\_message\_with\_jira\_info()}{format\_commit\_message\_with\_jira\_info()}} +{\footnotesize\ttfamily tuple penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+format\+\_\+commit\+\_\+message\+\_\+with\+\_\+jira\+\_\+info (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{commit\+\_\+title, }\item[{str}]{commit\+\_\+description, }\item[{List\mbox{[}str\mbox{]} }]{issue\+\_\+keys = {\ttfamily None} }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Format commit message with JIRA issue information. + +This function updates the provided commit title and description by +incorporating JIRA issue keys. If no issue keys are supplied, it extracts them +from the commit title and description. It then formats the commit title to +include the first issue key if not already present and appends detailed +information about each issue to the commit description. + +Args: + commit_title (str): The original commit title. + commit_description (str): The original commit description. + issue_keys (List[str]?): A list of JIRA issue keys to include in the commit message. If not + provided, issue keys will be extracted from both the title and the description. + +Returns: + tuple: A tuple containing the updated commit title and description with JIRA + information included. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd}\label{classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!get\_commit\_context\_from\_issues@{get\_commit\_context\_from\_issues}} +\index{get\_commit\_context\_from\_issues@{get\_commit\_context\_from\_issues}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{get\_commit\_context\_from\_issues()}{get\_commit\_context\_from\_issues()}} +{\footnotesize\ttfamily Dict\mbox{[}str, Any\mbox{]} penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+get\+\_\+commit\+\_\+context\+\_\+from\+\_\+issues (\begin{DoxyParamCaption}\item[{}]{self, }\item[{List\mbox{[}str\mbox{]}}]{issue\+\_\+keys }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Gather contextual information from JIRA issues to improve commit messages. + +This function processes a list of JIRA issue keys, retrieves detailed context +for each issue, and aggregates it into a dictionary that can be used to enhance +commit messages. It first retrieves the primary issue (the first key in the +list) and then gathers basic details for any related issues. The resulting +context includes information from both the primary and related issues, along +with all issue keys. + +Args: + issue_keys: List of JIRA issue keys to gather information from + +Returns: + Dict containing business and technical context from the issues +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746}\label{classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!get\_detailed\_issue\_context@{get\_detailed\_issue\_context}} +\index{get\_detailed\_issue\_context@{get\_detailed\_issue\_context}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{get\_detailed\_issue\_context()}{get\_detailed\_issue\_context()}} +{\footnotesize\ttfamily Dict\mbox{[}str, Any\mbox{]} penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+get\+\_\+detailed\+\_\+issue\+\_\+context (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{issue\+\_\+key }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Retrieve comprehensive details about a JIRA issue including context for better +commit messages. + +This function fetches detailed information from a specified JIRA issue and +constructs a dictionary containing various context fields such as the issue +summary, description, type, status, priority, comments, URL, and additional +custom fields like acceptance criteria and sprint information. It handles +errors by logging appropriate warnings or errors. + +Args: + issue_key (str): The JIRA issue key (e.g., "PROJECT-123"). + +Returns: + Dict[str, Any]: A dictionary containing business and technical context from the issue. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a}\label{classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!get\_issue\_details@{get\_issue\_details}} +\index{get\_issue\_details@{get\_issue\_details}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{get\_issue\_details()}{get\_issue\_details()}} +{\footnotesize\ttfamily Optional\mbox{[}Dict\mbox{[}str, Any\mbox{]}\mbox{]} penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+get\+\_\+issue\+\_\+details (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{issue\+\_\+key }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Retrieve details of a JIRA issue based on its key. + +This function fetches detailed information about a specified JIRA issue using +the provided issue key. It first checks if the JIRA client is connected; if +not, it logs a warning and returns `None`. If connected, it attempts to +retrieve the issue from the JIRA server. On success, it constructs and returns +a dictionary containing various details such as the issue's key, summary, +status, description, assignee, reporter, type, priority, and URL. Errors during +this process are logged, and `None` is returned. + +Args: + issue_key (str): The JIRA issue key (e.g., "PROJECT-123"). +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_a00d0f9ae006313a21576362d26ac5ec8}\label{classpenify__hook_1_1jira__client_1_1JiraClient_a00d0f9ae006313a21576362d26ac5ec8}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!is\_connected@{is\_connected}} +\index{is\_connected@{is\_connected}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{is\_connected()}{is\_connected()}} +{\footnotesize\ttfamily bool penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+is\+\_\+connected (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Check if the JIRA client is connected.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1jira__client_1_1JiraClient_a00d0f9ae006313a21576362d26ac5ec8_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_aca8837552d37bfd611de23441a240826}\label{classpenify__hook_1_1jira__client_1_1JiraClient_aca8837552d37bfd611de23441a240826}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!update\_issue\_status@{update\_issue\_status}} +\index{update\_issue\_status@{update\_issue\_status}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{update\_issue\_status()}{update\_issue\_status()}} +{\footnotesize\ttfamily bool penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+update\+\_\+issue\+\_\+status (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{issue\+\_\+key, }\item[{str}]{transition\+\_\+name }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Update the status of a JIRA issue. + +This method checks if the JIRA client is connected, retrieves available +transitions for the given issue, finds the transition ID by name, and updates +the issue's status accordingly. If any step fails or the specified transition +is not found, appropriate logs are generated, and False is returned. + +Args: + issue_key (str): The key of the JIRA issue to be updated. + transition_name (str): The name of the desired transition. + +Returns: + bool: True if the status was successfully updated, False otherwise. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1jira__client_1_1JiraClient_aca8837552d37bfd611de23441a240826_cgraph} +\end{center} +\end{figure} + + +\doxysubsection{Member Data Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_afc5c90e53b702f9fc27e2ee7d3f991b9}\label{classpenify__hook_1_1jira__client_1_1JiraClient_afc5c90e53b702f9fc27e2ee7d3f991b9}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!jira\_api\_token@{jira\_api\_token}} +\index{jira\_api\_token@{jira\_api\_token}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{jira\_api\_token}{jira\_api\_token}} +{\footnotesize\ttfamily penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+jira\+\_\+api\+\_\+token} + +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_aefb3f96c79358cf3a95d96d3747235b6}\label{classpenify__hook_1_1jira__client_1_1JiraClient_aefb3f96c79358cf3a95d96d3747235b6}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!jira\_client@{jira\_client}} +\index{jira\_client@{jira\_client}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{jira\_client}{jira\_client}} +{\footnotesize\ttfamily penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+jira\+\_\+client} + +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_a3c0cfecff02a75cb7001509a595b8197}\label{classpenify__hook_1_1jira__client_1_1JiraClient_a3c0cfecff02a75cb7001509a595b8197}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!jira\_url@{jira\_url}} +\index{jira\_url@{jira\_url}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{jira\_url}{jira\_url}} +{\footnotesize\ttfamily penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+jira\+\_\+url} + +\mbox{\Hypertarget{classpenify__hook_1_1jira__client_1_1JiraClient_ae56104d5aa7bda7bb26d169c4b46038c}\label{classpenify__hook_1_1jira__client_1_1JiraClient_ae56104d5aa7bda7bb26d169c4b46038c}} +\index{penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}!jira\_user@{jira\_user}} +\index{jira\_user@{jira\_user}!penify\_hook.jira\_client.JiraClient@{penify\_hook.jira\_client.JiraClient}} +\doxysubsubsection{\texorpdfstring{jira\_user}{jira\_user}} +{\footnotesize\ttfamily penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client.\+jira\+\_\+user} + + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{jira__client_8py}{jira\+\_\+client.\+py}}\end{DoxyCompactItemize} diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient__coll__graph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient__coll__graph.md5 new file mode 100644 index 0000000..fd79a8c --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient__coll__graph.md5 @@ -0,0 +1 @@ +6c94c8bb54063a87c9a021e499d2535a \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient__coll__graph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient__coll__graph.pdf new file mode 100644 index 0000000..b59615b Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient__coll__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a00d0f9ae006313a21576362d26ac5ec8_icgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a00d0f9ae006313a21576362d26ac5ec8_icgraph.md5 new file mode 100644 index 0000000..4f76689 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a00d0f9ae006313a21576362d26ac5ec8_icgraph.md5 @@ -0,0 +1 @@ +d9c961753cc4792464fe3c85cedbe856 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a00d0f9ae006313a21576362d26ac5ec8_icgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a00d0f9ae006313a21576362d26ac5ec8_icgraph.pdf new file mode 100644 index 0000000..f17348b Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a00d0f9ae006313a21576362d26ac5ec8_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a093d6456fe053ef7a7862d5d6851910c_cgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a093d6456fe053ef7a7862d5d6851910c_cgraph.md5 new file mode 100644 index 0000000..bc6a797 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a093d6456fe053ef7a7862d5d6851910c_cgraph.md5 @@ -0,0 +1 @@ +74ab897115bdf73d0673ae4d3c453424 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a093d6456fe053ef7a7862d5d6851910c_cgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a093d6456fe053ef7a7862d5d6851910c_cgraph.pdf new file mode 100644 index 0000000..73b8554 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a093d6456fe053ef7a7862d5d6851910c_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23_cgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23_cgraph.md5 new file mode 100644 index 0000000..a70b9c4 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23_cgraph.md5 @@ -0,0 +1 @@ +5319eca6878b7d6832e9bdc8be03738a \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23_cgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23_cgraph.pdf new file mode 100644 index 0000000..4de59e3 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23_icgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23_icgraph.md5 new file mode 100644 index 0000000..cd2ab30 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23_icgraph.md5 @@ -0,0 +1 @@ +59f65545c475e1236f381b97e10a73b2 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23_icgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23_icgraph.pdf new file mode 100644 index 0000000..3e7ccf1 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a49ea1149758f7f5212149d357b13cc23_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a_cgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a_cgraph.md5 new file mode 100644 index 0000000..d1d416c --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a_cgraph.md5 @@ -0,0 +1 @@ +108eaf4e9eb179fe34b5c143d8f3b77f \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a_cgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a_cgraph.pdf new file mode 100644 index 0000000..5875948 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a_icgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a_icgraph.md5 new file mode 100644 index 0000000..29d336d --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a_icgraph.md5 @@ -0,0 +1 @@ +be94ea6e8f451a00f89ca284d3ee8a3d \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a_icgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a_icgraph.pdf new file mode 100644 index 0000000..17b5f53 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a65f6924819084b7c8d268956a784804a_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a70d2c5a6432aa6f238da0ff65d49a760_cgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a70d2c5a6432aa6f238da0ff65d49a760_cgraph.md5 new file mode 100644 index 0000000..4137dd0 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a70d2c5a6432aa6f238da0ff65d49a760_cgraph.md5 @@ -0,0 +1 @@ +4c42f4b9261fd8bafc0cdbd84c4a2d06 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a70d2c5a6432aa6f238da0ff65d49a760_cgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a70d2c5a6432aa6f238da0ff65d49a760_cgraph.pdf new file mode 100644 index 0000000..0962a4a Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_a70d2c5a6432aa6f238da0ff65d49a760_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1_cgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1_cgraph.md5 new file mode 100644 index 0000000..95b147d --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1_cgraph.md5 @@ -0,0 +1 @@ +0798f9beeb60a44c1bc5ca62261ada05 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1_cgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1_cgraph.pdf new file mode 100644 index 0000000..9a7cd82 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1_icgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1_icgraph.md5 new file mode 100644 index 0000000..95c2a13 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1_icgraph.md5 @@ -0,0 +1 @@ +82a924fb803bae4eea70d4d2949f0e40 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1_icgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1_icgraph.pdf new file mode 100644 index 0000000..8aeb218 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa1f374116c64cd5f1492ec7f7e40f9c1_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746_cgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746_cgraph.md5 new file mode 100644 index 0000000..37101d3 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746_cgraph.md5 @@ -0,0 +1 @@ +7a6ed880c269c90b02697722d952c6fd \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746_cgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746_cgraph.pdf new file mode 100644 index 0000000..a1f2150 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746_icgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746_icgraph.md5 new file mode 100644 index 0000000..19f1c1f --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746_icgraph.md5 @@ -0,0 +1 @@ +246e9f67fc708d577ce4f865ea93dfe6 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746_icgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746_icgraph.pdf new file mode 100644 index 0000000..c6e514d Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aa967169a4b7970c67c0947b9ac56f746_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aca8837552d37bfd611de23441a240826_cgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aca8837552d37bfd611de23441a240826_cgraph.md5 new file mode 100644 index 0000000..0cdb932 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aca8837552d37bfd611de23441a240826_cgraph.md5 @@ -0,0 +1 @@ +84c0ac4cc42a31fa0084643ff5dfef52 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aca8837552d37bfd611de23441a240826_cgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aca8837552d37bfd611de23441a240826_cgraph.pdf new file mode 100644 index 0000000..26ce94b Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_aca8837552d37bfd611de23441a240826_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_ad2823ad1d3baaedd38039913c3a97fd7_icgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_ad2823ad1d3baaedd38039913c3a97fd7_icgraph.md5 new file mode 100644 index 0000000..054af3e --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_ad2823ad1d3baaedd38039913c3a97fd7_icgraph.md5 @@ -0,0 +1 @@ +2778ffc1c7608101c6acfd0955cdbab0 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_ad2823ad1d3baaedd38039913c3a97fd7_icgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_ad2823ad1d3baaedd38039913c3a97fd7_icgraph.pdf new file mode 100644 index 0000000..f21afbc Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_ad2823ad1d3baaedd38039913c3a97fd7_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd_cgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd_cgraph.md5 new file mode 100644 index 0000000..7549805 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd_cgraph.md5 @@ -0,0 +1 @@ +4958523d483bc2dacf73dab4fccf8adf \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd_cgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd_cgraph.pdf new file mode 100644 index 0000000..89e2285 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd_icgraph.md5 b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd_icgraph.md5 new file mode 100644 index 0000000..689761a --- /dev/null +++ b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd_icgraph.md5 @@ -0,0 +1 @@ +d563cdebf5480e94abacfee4e435799c \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd_icgraph.pdf b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd_icgraph.pdf new file mode 100644 index 0000000..e493fed Binary files /dev/null and b/docs/latex/classpenify__hook_1_1jira__client_1_1JiraClient_afb41ce6f13c30b1265d439ddf04bf2cd_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient.tex b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient.tex new file mode 100644 index 0000000..eeaaef2 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient.tex @@ -0,0 +1,134 @@ +\hypertarget{classpenify__hook_1_1llm__client_1_1LLMClient}{}\doxysection{penify\+\_\+hook.\+llm\+\_\+client.\+LLMClient Class Reference} +\label{classpenify__hook_1_1llm__client_1_1LLMClient}\index{penify\_hook.llm\_client.LLMClient@{penify\_hook.llm\_client.LLMClient}} + + +Collaboration diagram for penify\+\_\+hook.\+llm\+\_\+client.\+LLMClient\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=258pt]{classpenify__hook_1_1llm__client_1_1LLMClient__coll__graph} +\end{center} +\end{figure} +\doxysubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{classpenify__hook_1_1llm__client_1_1LLMClient_a76d92354f585ab4bb291169f9f530764}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self, str \mbox{\hyperlink{classpenify__hook_1_1llm__client_1_1LLMClient_abc2cb6b1d6d9b5dc16401ca078ec8c10}{model}}=None, str api\+\_\+base=None, str api\+\_\+key=None) +\item +def \mbox{\hyperlink{classpenify__hook_1_1llm__client_1_1LLMClient_ad6f06658ca922793f879474f2234518e}{litellm}} (self) +\item +Dict \mbox{\hyperlink{classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000}{generate\+\_\+commit\+\_\+summary}} (self, str diff, str message, bool generate\+\_\+description, Dict repo\+\_\+details, Dict jira\+\_\+context=None) +\end{DoxyCompactItemize} +\doxysubsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{classpenify__hook_1_1llm__client_1_1LLMClient_abc2cb6b1d6d9b5dc16401ca078ec8c10}{model}} +\end{DoxyCompactItemize} +\doxysubsection*{Private Attributes} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{classpenify__hook_1_1llm__client_1_1LLMClient_a76c2e9805f805624ab9c55a9f1f8d362}{\+\_\+litellm}} +\end{DoxyCompactItemize} + + +\doxysubsection{Detailed Description} +\begin{DoxyVerb}Client for interacting with LLM models using LiteLLM. +\end{DoxyVerb} + + +\doxysubsection{Constructor \& Destructor Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1llm__client_1_1LLMClient_a76d92354f585ab4bb291169f9f530764}\label{classpenify__hook_1_1llm__client_1_1LLMClient_a76d92354f585ab4bb291169f9f530764}} +\index{penify\_hook.llm\_client.LLMClient@{penify\_hook.llm\_client.LLMClient}!\_\_init\_\_@{\_\_init\_\_}} +\index{\_\_init\_\_@{\_\_init\_\_}!penify\_hook.llm\_client.LLMClient@{penify\_hook.llm\_client.LLMClient}} +\doxysubsubsection{\texorpdfstring{\_\_init\_\_()}{\_\_init\_\_()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+llm\+\_\+client.\+LLMClient.\+\_\+\+\_\+init\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str }]{model = {\ttfamily None}, }\item[{str }]{api\+\_\+base = {\ttfamily None}, }\item[{str }]{api\+\_\+key = {\ttfamily None} }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Initialize the LLM client. + +Args: + model: LLM model to use (e.g., "gpt-4", "ollama/llama2", etc.) + api_base: Base URL for API requests (e.g., "http://localhost:11434" for Ollama) + api_key: API key for the LLM service +\end{DoxyVerb} + + +\doxysubsection{Member Function Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000}\label{classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000}} +\index{penify\_hook.llm\_client.LLMClient@{penify\_hook.llm\_client.LLMClient}!generate\_commit\_summary@{generate\_commit\_summary}} +\index{generate\_commit\_summary@{generate\_commit\_summary}!penify\_hook.llm\_client.LLMClient@{penify\_hook.llm\_client.LLMClient}} +\doxysubsubsection{\texorpdfstring{generate\_commit\_summary()}{generate\_commit\_summary()}} +{\footnotesize\ttfamily Dict penify\+\_\+hook.\+llm\+\_\+client.\+LLMClient.\+generate\+\_\+commit\+\_\+summary (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{diff, }\item[{str}]{message, }\item[{bool}]{generate\+\_\+description, }\item[{Dict}]{repo\+\_\+details, }\item[{Dict }]{jira\+\_\+context = {\ttfamily None} }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Generate a concise and descriptive commit summary based on Git diff, user +instructions, repository details, and optional JIRA context. + +This function constructs a prompt for an LLM to produce a commit title and, if +requested, a detailed description. The summary adheres to Semantic Commit +Messages guidelines. If JIRA context is provided, it enriches the prompt with +relevant issue information. + +Args: + diff (str): Git diff of changes. + message (str): User-provided commit message or instructions. + generate_description (bool): Flag indicating whether to include a detailed description in the summary. + repo_details (Dict): Details about the repository. + jira_context (Dict?): Optional JIRA issue context to enhance the summary. + +Returns: + Dict: A dictionary containing the title and description for the commit. If + `generate_description` is False, the 'description' key may be absent. + +Raises: + ValueError: If the LLM model is not configured. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classpenify__hook_1_1llm__client_1_1LLMClient_ad6f06658ca922793f879474f2234518e}\label{classpenify__hook_1_1llm__client_1_1LLMClient_ad6f06658ca922793f879474f2234518e}} +\index{penify\_hook.llm\_client.LLMClient@{penify\_hook.llm\_client.LLMClient}!litellm@{litellm}} +\index{litellm@{litellm}!penify\_hook.llm\_client.LLMClient@{penify\_hook.llm\_client.LLMClient}} +\doxysubsubsection{\texorpdfstring{litellm()}{litellm()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+llm\+\_\+client.\+LLMClient.\+litellm (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Returns the litellm module, loading it if necessary.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classpenify__hook_1_1llm__client_1_1LLMClient_ad6f06658ca922793f879474f2234518e_icgraph} +\end{center} +\end{figure} + + +\doxysubsection{Member Data Documentation} +\mbox{\Hypertarget{classpenify__hook_1_1llm__client_1_1LLMClient_a76c2e9805f805624ab9c55a9f1f8d362}\label{classpenify__hook_1_1llm__client_1_1LLMClient_a76c2e9805f805624ab9c55a9f1f8d362}} +\index{penify\_hook.llm\_client.LLMClient@{penify\_hook.llm\_client.LLMClient}!\_litellm@{\_litellm}} +\index{\_litellm@{\_litellm}!penify\_hook.llm\_client.LLMClient@{penify\_hook.llm\_client.LLMClient}} +\doxysubsubsection{\texorpdfstring{\_litellm}{\_litellm}} +{\footnotesize\ttfamily penify\+\_\+hook.\+llm\+\_\+client.\+LLMClient.\+\_\+litellm\hspace{0.3cm}{\ttfamily [private]}} + +\mbox{\Hypertarget{classpenify__hook_1_1llm__client_1_1LLMClient_abc2cb6b1d6d9b5dc16401ca078ec8c10}\label{classpenify__hook_1_1llm__client_1_1LLMClient_abc2cb6b1d6d9b5dc16401ca078ec8c10}} +\index{penify\_hook.llm\_client.LLMClient@{penify\_hook.llm\_client.LLMClient}!model@{model}} +\index{model@{model}!penify\_hook.llm\_client.LLMClient@{penify\_hook.llm\_client.LLMClient}} +\doxysubsubsection{\texorpdfstring{model}{model}} +{\footnotesize\ttfamily penify\+\_\+hook.\+llm\+\_\+client.\+LLMClient.\+model} + + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{llm__client_8py}{llm\+\_\+client.\+py}}\end{DoxyCompactItemize} diff --git a/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient__coll__graph.md5 b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient__coll__graph.md5 new file mode 100644 index 0000000..6db17d2 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient__coll__graph.md5 @@ -0,0 +1 @@ +98e4897c5b45a162671e50e760d299ce \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient__coll__graph.pdf b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient__coll__graph.pdf new file mode 100644 index 0000000..3cf5dac Binary files /dev/null and b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient__coll__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000_cgraph.md5 b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000_cgraph.md5 new file mode 100644 index 0000000..c5f4239 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000_cgraph.md5 @@ -0,0 +1 @@ +b9ba1c97807d802a29ce91d786445eb1 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000_cgraph.pdf b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000_cgraph.pdf new file mode 100644 index 0000000..5b70aa8 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000_cgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000_icgraph.md5 b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000_icgraph.md5 new file mode 100644 index 0000000..4a2ae5f --- /dev/null +++ b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000_icgraph.md5 @@ -0,0 +1 @@ +dc5241e4c3ad5601ac52862d2cb0fc00 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000_icgraph.pdf b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000_icgraph.pdf new file mode 100644 index 0000000..22bb9da Binary files /dev/null and b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_a2ad3014dac466ee1d8e00306d0cf2000_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_ad6f06658ca922793f879474f2234518e_icgraph.md5 b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_ad6f06658ca922793f879474f2234518e_icgraph.md5 new file mode 100644 index 0000000..0fa3961 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_ad6f06658ca922793f879474f2234518e_icgraph.md5 @@ -0,0 +1 @@ +1877c6aa43a0000e92c849c9a84bae25 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_ad6f06658ca922793f879474f2234518e_icgraph.pdf b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_ad6f06658ca922793f879474f2234518e_icgraph.pdf new file mode 100644 index 0000000..92779e9 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1llm__client_1_1LLMClient_ad6f06658ca922793f879474f2234518e_icgraph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError.tex b/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError.tex new file mode 100644 index 0000000..7f24815 --- /dev/null +++ b/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError.tex @@ -0,0 +1,27 @@ +\hypertarget{classpenify__hook_1_1utils_1_1GitRepoNotFoundError}{}\doxysection{penify\+\_\+hook.\+utils.\+Git\+Repo\+Not\+Found\+Error Class Reference} +\label{classpenify__hook_1_1utils_1_1GitRepoNotFoundError}\index{penify\_hook.utils.GitRepoNotFoundError@{penify\_hook.utils.GitRepoNotFoundError}} + + +Inheritance diagram for penify\+\_\+hook.\+utils.\+Git\+Repo\+Not\+Found\+Error\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=222pt]{classpenify__hook_1_1utils_1_1GitRepoNotFoundError__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for penify\+\_\+hook.\+utils.\+Git\+Repo\+Not\+Found\+Error\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=222pt]{classpenify__hook_1_1utils_1_1GitRepoNotFoundError__coll__graph} +\end{center} +\end{figure} + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{utils_8py}{utils.\+py}}\end{DoxyCompactItemize} diff --git a/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError__coll__graph.md5 b/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError__coll__graph.md5 new file mode 100644 index 0000000..1be38be --- /dev/null +++ b/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError__coll__graph.md5 @@ -0,0 +1 @@ +fc4615bb344e1dfa7e3a4dfdff48f342 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError__coll__graph.pdf b/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError__coll__graph.pdf new file mode 100644 index 0000000..a937c60 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError__coll__graph.pdf differ diff --git a/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError__inherit__graph.md5 b/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError__inherit__graph.md5 new file mode 100644 index 0000000..1be38be --- /dev/null +++ b/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError__inherit__graph.md5 @@ -0,0 +1 @@ +fc4615bb344e1dfa7e3a4dfdff48f342 \ No newline at end of file diff --git a/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError__inherit__graph.pdf b/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError__inherit__graph.pdf new file mode 100644 index 0000000..a937c60 Binary files /dev/null and b/docs/latex/classpenify__hook_1_1utils_1_1GitRepoNotFoundError__inherit__graph.pdf differ diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands.tex b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands.tex new file mode 100644 index 0000000..6877977 --- /dev/null +++ b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands.tex @@ -0,0 +1,335 @@ +\hypertarget{classtests_1_1test__commit__commands_1_1TestCommitCommands}{}\doxysection{tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands Class Reference} +\label{classtests_1_1test__commit__commands_1_1TestCommitCommands}\index{tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}} + + +Collaboration diagram for tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=247pt]{classtests_1_1test__commit__commands_1_1TestCommitCommands__coll__graph} +\end{center} +\end{figure} +\doxysubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_abcd2354a2af4afe19e57877628d3acc2}{mock\+\_\+api\+\_\+client}} (self) +\item +def \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_a20e78370ff5bd6223cc1dd4323a86ea4}{mock\+\_\+llm\+\_\+client}} (self) +\item +def \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_a05adaa9a713ff1be657455d0667bc6be}{mock\+\_\+jira\+\_\+client}} (self) +\item +def \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_aa9b25a4bf692b8736164695072a398f6}{mock\+\_\+commit\+\_\+doc\+\_\+gen}} (self) +\item +def \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_a2842f456a8c0f1bf0f4def17c183c04e}{mock\+\_\+git\+\_\+folder\+\_\+search}} (self) +\item +def \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_afafbae3c9aeb0e50a75996256c02c8be}{mock\+\_\+print\+\_\+functions}} (self) +\item +def \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_acc4b1e4189792a3f7c11d2a745f479c0}{test\+\_\+commit\+\_\+code\+\_\+with\+\_\+llm\+\_\+client}} (self, mock\+\_\+error, mock\+\_\+warning, mock\+\_\+info, \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_a2842f456a8c0f1bf0f4def17c183c04e}{mock\+\_\+git\+\_\+folder\+\_\+search}}, mock\+\_\+doc\+\_\+gen, \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_a20e78370ff5bd6223cc1dd4323a86ea4}{mock\+\_\+llm\+\_\+client}}, \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_abcd2354a2af4afe19e57877628d3acc2}{mock\+\_\+api\+\_\+client}}) +\item +def \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_af9c09013055ec39ddde86b487aefcf8b}{test\+\_\+commit\+\_\+code\+\_\+with\+\_\+jira\+\_\+client}} (self, mock\+\_\+error, mock\+\_\+warning, mock\+\_\+info, \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_a2842f456a8c0f1bf0f4def17c183c04e}{mock\+\_\+git\+\_\+folder\+\_\+search}}, mock\+\_\+doc\+\_\+gen, \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_a05adaa9a713ff1be657455d0667bc6be}{mock\+\_\+jira\+\_\+client}}, \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_a20e78370ff5bd6223cc1dd4323a86ea4}{mock\+\_\+llm\+\_\+client}}, \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_abcd2354a2af4afe19e57877628d3acc2}{mock\+\_\+api\+\_\+client}}) +\item +def \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_acea0d934ee0f2b914b0b893736e8fe4e}{test\+\_\+commit\+\_\+code\+\_\+with\+\_\+jira\+\_\+connection\+\_\+failure}} (self, mock\+\_\+error, mock\+\_\+warning, mock\+\_\+info, \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_a2842f456a8c0f1bf0f4def17c183c04e}{mock\+\_\+git\+\_\+folder\+\_\+search}}, mock\+\_\+doc\+\_\+gen, \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_a05adaa9a713ff1be657455d0667bc6be}{mock\+\_\+jira\+\_\+client}}, \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_abcd2354a2af4afe19e57877628d3acc2}{mock\+\_\+api\+\_\+client}}) +\item +def \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_a43c2ff3707124aa48e8eb581106b8691}{test\+\_\+commit\+\_\+code\+\_\+error\+\_\+handling}} (self, mock\+\_\+print, mock\+\_\+exit, \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_a2842f456a8c0f1bf0f4def17c183c04e}{mock\+\_\+git\+\_\+folder\+\_\+search}}, mock\+\_\+doc\+\_\+gen, \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_abcd2354a2af4afe19e57877628d3acc2}{mock\+\_\+api\+\_\+client}}) +\item +def \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_a4d04b125e102190a768f65f1948f15bc}{test\+\_\+setup\+\_\+commit\+\_\+parser}} (self) +\item +def \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands_ac13e368262340af98b30fd8ebdac6597}{test\+\_\+handle\+\_\+commit}} (self, mock\+\_\+print\+\_\+info, mock\+\_\+commit\+\_\+code, mock\+\_\+get\+\_\+token, mock\+\_\+get\+\_\+llm\+\_\+config, mock\+\_\+get\+\_\+jira\+\_\+config) +\end{DoxyCompactItemize} + + +\doxysubsection{Member Function Documentation} +\mbox{\Hypertarget{classtests_1_1test__commit__commands_1_1TestCommitCommands_abcd2354a2af4afe19e57877628d3acc2}\label{classtests_1_1test__commit__commands_1_1TestCommitCommands_abcd2354a2af4afe19e57877628d3acc2}} +\index{tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}!mock\_api\_client@{mock\_api\_client}} +\index{mock\_api\_client@{mock\_api\_client}!tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}} +\doxysubsubsection{\texorpdfstring{mock\_api\_client()}{mock\_api\_client()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands.\+mock\+\_\+api\+\_\+client (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Mocks an instance of APIClient using unittest.mock. + +This function creates a mock object for APIClient and yields it along +with the mocked instance. It is useful for testing purposes where real +API calls should be avoided. + +Yields: + tuple: A tuple containing the mock of APIClient and the mocked instance of + APIClient. +\end{DoxyVerb} + \mbox{\Hypertarget{classtests_1_1test__commit__commands_1_1TestCommitCommands_aa9b25a4bf692b8736164695072a398f6}\label{classtests_1_1test__commit__commands_1_1TestCommitCommands_aa9b25a4bf692b8736164695072a398f6}} +\index{tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}!mock\_commit\_doc\_gen@{mock\_commit\_doc\_gen}} +\index{mock\_commit\_doc\_gen@{mock\_commit\_doc\_gen}!tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}} +\doxysubsubsection{\texorpdfstring{mock\_commit\_doc\_gen()}{mock\_commit\_doc\_gen()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands.\+mock\+\_\+commit\+\_\+doc\+\_\+gen (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Mocks the CommitDocGenHook class and returns a MagicMock instance. + +This function uses the `patch` decorator from the `unittest.mock` module +to create a mock of the `CommitDocGenHook` class. It then sets up this +mock to return a new `MagicMock` instance when invoked. The function +yields both the mock object and the mocked instance, allowing for easy +testing of functions that rely on `CommitDocGenHook`. + +Returns: + tuple: A tuple containing two elements: + - mock (patch): The patch object used to mock the `CommitDocGenHook` + class. + - doc_gen_instance (MagicMock): The mocked instance of + `CommitDocGenHook`. +\end{DoxyVerb} + \mbox{\Hypertarget{classtests_1_1test__commit__commands_1_1TestCommitCommands_a2842f456a8c0f1bf0f4def17c183c04e}\label{classtests_1_1test__commit__commands_1_1TestCommitCommands_a2842f456a8c0f1bf0f4def17c183c04e}} +\index{tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}!mock\_git\_folder\_search@{mock\_git\_folder\_search}} +\index{mock\_git\_folder\_search@{mock\_git\_folder\_search}!tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}} +\doxysubsubsection{\texorpdfstring{mock\_git\_folder\_search()}{mock\_git\_folder\_search()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands.\+mock\+\_\+git\+\_\+folder\+\_\+search (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Mock the `recursive_search_git_folder` function to return a predefined +git folder path. + +This function uses the `patch` decorator from the `unittest.mock` module +to intercept calls to `penify_hook.utils.recursive_search_git_folder`. +When called, it will return '/mock/git/folder' instead of performing an +actual search. This is useful for testing purposes where you need a +consistent response without interacting with the file system. + +Yields: + MagicMock: A mock object that simulates the `recursive_search_git_folder` function. +\end{DoxyVerb} + \mbox{\Hypertarget{classtests_1_1test__commit__commands_1_1TestCommitCommands_a05adaa9a713ff1be657455d0667bc6be}\label{classtests_1_1test__commit__commands_1_1TestCommitCommands_a05adaa9a713ff1be657455d0667bc6be}} +\index{tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}!mock\_jira\_client@{mock\_jira\_client}} +\index{mock\_jira\_client@{mock\_jira\_client}!tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}} +\doxysubsubsection{\texorpdfstring{mock\_jira\_client()}{mock\_jira\_client()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands.\+mock\+\_\+jira\+\_\+client (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Create a mock JIRA client for testing purposes. + +This function yields a tuple containing a mock JIRA client instance and +its `is_connected` method. The mock client is configured to simulate an +active connection. This is useful for unit tests that require +interaction with a JIRA client without making actual network calls. + +Yields: + tuple: A tuple containing the mocked JIRA client instance and its + `is_connected` method. +\end{DoxyVerb} + \mbox{\Hypertarget{classtests_1_1test__commit__commands_1_1TestCommitCommands_a20e78370ff5bd6223cc1dd4323a86ea4}\label{classtests_1_1test__commit__commands_1_1TestCommitCommands_a20e78370ff5bd6223cc1dd4323a86ea4}} +\index{tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}!mock\_llm\_client@{mock\_llm\_client}} +\index{mock\_llm\_client@{mock\_llm\_client}!tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}} +\doxysubsubsection{\texorpdfstring{mock\_llm\_client()}{mock\_llm\_client()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands.\+mock\+\_\+llm\+\_\+client (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Mock an instance of LLMClient for testing purposes. + +This function yields a mock object representing an instance of +LLMClient, which can be used to simulate interactions with a language +model during testing. The mock is patched to replace the actual +LLMClient class from the penify_hook module. + +Yields: + tuple: A tuple containing two elements: + - mock (MagicMock): The mock object for LLMClient. + - llm_client_instance (MagicMock): An instance of the mocked LLMClient. +\end{DoxyVerb} + \mbox{\Hypertarget{classtests_1_1test__commit__commands_1_1TestCommitCommands_afafbae3c9aeb0e50a75996256c02c8be}\label{classtests_1_1test__commit__commands_1_1TestCommitCommands_afafbae3c9aeb0e50a75996256c02c8be}} +\index{tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}!mock\_print\_functions@{mock\_print\_functions}} +\index{mock\_print\_functions@{mock\_print\_functions}!tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}} +\doxysubsubsection{\texorpdfstring{mock\_print\_functions()}{mock\_print\_functions()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands.\+mock\+\_\+print\+\_\+functions (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Mocks the print functions from `penify_hook.ui_utils` for testing +purposes. + +This function uses Python's `unittest.mock.patch` to replace the actual +print functions (`print`, `print_warning`, and `print_error`) with mock +objects. These mock objects can be used in tests to capture calls made +to these print functions without actually printing anything. + +Yields: + tuple: A tuple containing three mock objects corresponding to `print_info`, + `print_warning`, + and `print_error`. +\end{DoxyVerb} + \mbox{\Hypertarget{classtests_1_1test__commit__commands_1_1TestCommitCommands_a43c2ff3707124aa48e8eb581106b8691}\label{classtests_1_1test__commit__commands_1_1TestCommitCommands_a43c2ff3707124aa48e8eb581106b8691}} +\index{tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}!test\_commit\_code\_error\_handling@{test\_commit\_code\_error\_handling}} +\index{test\_commit\_code\_error\_handling@{test\_commit\_code\_error\_handling}!tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}} +\doxysubsubsection{\texorpdfstring{test\_commit\_code\_error\_handling()}{test\_commit\_code\_error\_handling()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands.\+test\+\_\+commit\+\_\+code\+\_\+error\+\_\+handling (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+print, }\item[{}]{mock\+\_\+exit, }\item[{}]{mock\+\_\+git\+\_\+folder\+\_\+search, }\item[{}]{mock\+\_\+doc\+\_\+gen, }\item[{}]{mock\+\_\+api\+\_\+client }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the error handling in the test_commit_code function. + +This function sets up mocks to simulate exceptions and test the error +handling of the commit_code function. It verifies that the function +correctly prints an error message and exits with a status code of 1 when +an exception occurs during documentation generation. + +Args: + mock_print (MagicMock): Mock for the print function, used to verify error message output. + mock_exit (MagicMock): Mock for the sys.exit function, used to verify exit behavior. + mock_git_folder_search (MagicMock): Mock for the git_folder_search function, returning a mock Git folder + path. + mock_doc_gen (MagicMock): Mock for the doc_gen function, simulating an exception during + documentation generation. + mock_api_client (MagicMock): Mock for the API client class, not directly used but referenced in the + function signature. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__commit__commands_1_1TestCommitCommands_a43c2ff3707124aa48e8eb581106b8691_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__commit__commands_1_1TestCommitCommands_af9c09013055ec39ddde86b487aefcf8b}\label{classtests_1_1test__commit__commands_1_1TestCommitCommands_af9c09013055ec39ddde86b487aefcf8b}} +\index{tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}!test\_commit\_code\_with\_jira\_client@{test\_commit\_code\_with\_jira\_client}} +\index{test\_commit\_code\_with\_jira\_client@{test\_commit\_code\_with\_jira\_client}!tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}} +\doxysubsubsection{\texorpdfstring{test\_commit\_code\_with\_jira\_client()}{test\_commit\_code\_with\_jira\_client()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands.\+test\+\_\+commit\+\_\+code\+\_\+with\+\_\+jira\+\_\+client (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+error, }\item[{}]{mock\+\_\+warning, }\item[{}]{mock\+\_\+info, }\item[{}]{mock\+\_\+git\+\_\+folder\+\_\+search, }\item[{}]{mock\+\_\+doc\+\_\+gen, }\item[{}]{mock\+\_\+jira\+\_\+client, }\item[{}]{mock\+\_\+llm\+\_\+client, }\item[{}]{mock\+\_\+api\+\_\+client }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test committing code using a JIRA client. + +This function tests the commit_code function with various parameters, +including API and JIRA credentials. It sets up mock objects for +dependencies such as the JIRA client, LLM client, and doc generator to +simulate the behavior of the real classes. The function then calls +commit_code and verifies that the JIRA client and doc generator are +called with the correct parameters. + +Args: + mock_error (MagicMock): A MagicMock object for simulating error logging. + mock_warning (MagicMock): A MagicMock object for simulating warning logging. + mock_info (MagicMock): A MagicMock object for simulating info logging. + mock_git_folder_search (MagicMock): A MagicMock object for simulating the git folder search function. + mock_doc_gen (MagicMock): A MagicMock object for simulating the doc generator function. + mock_jira_client (MagicMock): A MagicMock object for simulating the JIRA client class. + mock_llm_client (MagicMock): A MagicMock object for simulating the LLM client class. + mock_api_client (MagicMock): A MagicMock object for simulating the API client class. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__commit__commands_1_1TestCommitCommands_af9c09013055ec39ddde86b487aefcf8b_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__commit__commands_1_1TestCommitCommands_acea0d934ee0f2b914b0b893736e8fe4e}\label{classtests_1_1test__commit__commands_1_1TestCommitCommands_acea0d934ee0f2b914b0b893736e8fe4e}} +\index{tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}!test\_commit\_code\_with\_jira\_connection\_failure@{test\_commit\_code\_with\_jira\_connection\_failure}} +\index{test\_commit\_code\_with\_jira\_connection\_failure@{test\_commit\_code\_with\_jira\_connection\_failure}!tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}} +\doxysubsubsection{\texorpdfstring{test\_commit\_code\_with\_jira\_connection\_failure()}{test\_commit\_code\_with\_jira\_connection\_failure()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands.\+test\+\_\+commit\+\_\+code\+\_\+with\+\_\+jira\+\_\+connection\+\_\+failure (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+error, }\item[{}]{mock\+\_\+warning, }\item[{}]{mock\+\_\+info, }\item[{}]{mock\+\_\+git\+\_\+folder\+\_\+search, }\item[{}]{mock\+\_\+doc\+\_\+gen, }\item[{}]{mock\+\_\+jira\+\_\+client, }\item[{}]{mock\+\_\+api\+\_\+client }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the commit_code function when JIRA connection fails. + +This function tests the scenario where the JIRA connection fails during +a code commit. It sets up various mocks to simulate different components +of the system and then calls the `commit_code` function with specific +parameters. The function is expected to handle the JIRA connection +failure gracefully by logging an appropriate warning. + +Args: + mock_error (MagicMock): Mock for error logging. + mock_warning (MagicMock): Mock for warning logging. + mock_info (MagicMock): Mock for info logging. + mock_git_folder_search (MagicMock): Mock for searching the Git folder. + mock_doc_gen (MagicMock): Mock for generating documentation. + mock_jira_client (MagicMock): Mock for creating a JIRA client. + mock_api_client (MagicMock): Mock for creating an API client. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__commit__commands_1_1TestCommitCommands_acea0d934ee0f2b914b0b893736e8fe4e_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__commit__commands_1_1TestCommitCommands_acc4b1e4189792a3f7c11d2a745f479c0}\label{classtests_1_1test__commit__commands_1_1TestCommitCommands_acc4b1e4189792a3f7c11d2a745f479c0}} +\index{tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}!test\_commit\_code\_with\_llm\_client@{test\_commit\_code\_with\_llm\_client}} +\index{test\_commit\_code\_with\_llm\_client@{test\_commit\_code\_with\_llm\_client}!tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}} +\doxysubsubsection{\texorpdfstring{test\_commit\_code\_with\_llm\_client()}{test\_commit\_code\_with\_llm\_client()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands.\+test\+\_\+commit\+\_\+code\+\_\+with\+\_\+llm\+\_\+client (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+error, }\item[{}]{mock\+\_\+warning, }\item[{}]{mock\+\_\+info, }\item[{}]{mock\+\_\+git\+\_\+folder\+\_\+search, }\item[{}]{mock\+\_\+doc\+\_\+gen, }\item[{}]{mock\+\_\+llm\+\_\+client, }\item[{}]{mock\+\_\+api\+\_\+client }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test committing code using an LLM client. + +This function sets up mock objects for various components and then calls +the `commit_code` function with specified parameters. It verifies that +the correct mocks are created and called with the appropriate arguments. + +Args: + mock_error (MagicMock): Mock object for error handling. + mock_warning (MagicMock): Mock object for warning logging. + mock_info (MagicMock): Mock object for info logging. + mock_git_folder_search (MagicMock): Mock object to simulate git folder search. + mock_doc_gen (MagicMock): Mock object for document generation. + mock_llm_client (MagicMock): Mock object for LLM client interaction. + mock_api_client (MagicMock): Mock object for API client interaction. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__commit__commands_1_1TestCommitCommands_acc4b1e4189792a3f7c11d2a745f479c0_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__commit__commands_1_1TestCommitCommands_ac13e368262340af98b30fd8ebdac6597}\label{classtests_1_1test__commit__commands_1_1TestCommitCommands_ac13e368262340af98b30fd8ebdac6597}} +\index{tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}!test\_handle\_commit@{test\_handle\_commit}} +\index{test\_handle\_commit@{test\_handle\_commit}!tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}} +\doxysubsubsection{\texorpdfstring{test\_handle\_commit()}{test\_handle\_commit()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands.\+test\+\_\+handle\+\_\+commit (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+print\+\_\+info, }\item[{}]{mock\+\_\+commit\+\_\+code, }\item[{}]{mock\+\_\+get\+\_\+token, }\item[{}]{mock\+\_\+get\+\_\+llm\+\_\+config, }\item[{}]{mock\+\_\+get\+\_\+jira\+\_\+config }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the handle_commit function with various mock objects. + +This function sets up mocks for retrieving LLM configuration, JIRA +configuration, and commit code. It then creates an argument object and +calls the handle_commit function. Finally, it verifies that the mock +functions were called with the expected arguments. + +Args: + mock_print_info (MagicMock): Mock object for printing information. + mock_commit_code (MagicMock): Mock object for committing code. + mock_get_token (MagicMock): Mock object for retrieving API token. + mock_get_llm_config (MagicMock): Mock object for retrieving LLM configuration. + mock_get_jira_config (MagicMock): Mock object for retrieving JIRA configuration. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__commit__commands_1_1TestCommitCommands_ac13e368262340af98b30fd8ebdac6597_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__commit__commands_1_1TestCommitCommands_a4d04b125e102190a768f65f1948f15bc}\label{classtests_1_1test__commit__commands_1_1TestCommitCommands_a4d04b125e102190a768f65f1948f15bc}} +\index{tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}!test\_setup\_commit\_parser@{test\_setup\_commit\_parser}} +\index{test\_setup\_commit\_parser@{test\_setup\_commit\_parser}!tests.test\_commit\_commands.TestCommitCommands@{tests.test\_commit\_commands.TestCommitCommands}} +\doxysubsubsection{\texorpdfstring{test\_setup\_commit\_parser()}{test\_setup\_commit\_parser()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands.\+test\+\_\+setup\+\_\+commit\+\_\+parser (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Set up the argument parser for the commit command. + +This function configures an argument parser to handle various options +for committing changes. It adds three arguments: - '-m' or '--message': +An optional argument to specify a contextual commit message with a +default value of "N/A". - '-e' or '--terminal': A boolean flag to open +an edit terminal before committing. - '-d' or '--description': A boolean +flag that, when set to False, indicates the generation of a commit +message with title and description. + +Args: + parser (MagicMock): The argument parser to be configured. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__commit__commands_1_1TestCommitCommands_a4d04b125e102190a768f65f1948f15bc_cgraph} +\end{center} +\end{figure} + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/\mbox{\hyperlink{test__commit__commands_8py}{test\+\_\+commit\+\_\+commands.\+py}}\end{DoxyCompactItemize} diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands__coll__graph.md5 b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands__coll__graph.md5 new file mode 100644 index 0000000..9d383d8 --- /dev/null +++ b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands__coll__graph.md5 @@ -0,0 +1 @@ +01c384c51b9b9d20ecd5af3519740055 \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands__coll__graph.pdf b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands__coll__graph.pdf new file mode 100644 index 0000000..a083f0b Binary files /dev/null and b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands__coll__graph.pdf differ diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_a43c2ff3707124aa48e8eb581106b8691_cgraph.md5 b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_a43c2ff3707124aa48e8eb581106b8691_cgraph.md5 new file mode 100644 index 0000000..0bcb06b --- /dev/null +++ b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_a43c2ff3707124aa48e8eb581106b8691_cgraph.md5 @@ -0,0 +1 @@ +b4207e4a0a9cc4b560c2bdd086fa6992 \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_a43c2ff3707124aa48e8eb581106b8691_cgraph.pdf b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_a43c2ff3707124aa48e8eb581106b8691_cgraph.pdf new file mode 100644 index 0000000..61b6e4b Binary files /dev/null and b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_a43c2ff3707124aa48e8eb581106b8691_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_a4d04b125e102190a768f65f1948f15bc_cgraph.md5 b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_a4d04b125e102190a768f65f1948f15bc_cgraph.md5 new file mode 100644 index 0000000..560cecf --- /dev/null +++ b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_a4d04b125e102190a768f65f1948f15bc_cgraph.md5 @@ -0,0 +1 @@ +ee848429cf8a98c730ddc19e4e1345b4 \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_a4d04b125e102190a768f65f1948f15bc_cgraph.pdf b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_a4d04b125e102190a768f65f1948f15bc_cgraph.pdf new file mode 100644 index 0000000..87e1dd5 Binary files /dev/null and b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_a4d04b125e102190a768f65f1948f15bc_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_ac13e368262340af98b30fd8ebdac6597_cgraph.md5 b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_ac13e368262340af98b30fd8ebdac6597_cgraph.md5 new file mode 100644 index 0000000..892a6cf --- /dev/null +++ b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_ac13e368262340af98b30fd8ebdac6597_cgraph.md5 @@ -0,0 +1 @@ +04d529f303db72fc9a1fcdac8b95a8fb \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_ac13e368262340af98b30fd8ebdac6597_cgraph.pdf b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_ac13e368262340af98b30fd8ebdac6597_cgraph.pdf new file mode 100644 index 0000000..e6e1e37 Binary files /dev/null and b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_ac13e368262340af98b30fd8ebdac6597_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_acc4b1e4189792a3f7c11d2a745f479c0_cgraph.md5 b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_acc4b1e4189792a3f7c11d2a745f479c0_cgraph.md5 new file mode 100644 index 0000000..16564c3 --- /dev/null +++ b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_acc4b1e4189792a3f7c11d2a745f479c0_cgraph.md5 @@ -0,0 +1 @@ +bf3e55821a05a3419069ce0a3c280436 \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_acc4b1e4189792a3f7c11d2a745f479c0_cgraph.pdf b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_acc4b1e4189792a3f7c11d2a745f479c0_cgraph.pdf new file mode 100644 index 0000000..8b68e97 Binary files /dev/null and b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_acc4b1e4189792a3f7c11d2a745f479c0_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_acea0d934ee0f2b914b0b893736e8fe4e_cgraph.md5 b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_acea0d934ee0f2b914b0b893736e8fe4e_cgraph.md5 new file mode 100644 index 0000000..bfc64bc --- /dev/null +++ b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_acea0d934ee0f2b914b0b893736e8fe4e_cgraph.md5 @@ -0,0 +1 @@ +b030395a323a2c2b33a5d701f4a8d16f \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_acea0d934ee0f2b914b0b893736e8fe4e_cgraph.pdf b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_acea0d934ee0f2b914b0b893736e8fe4e_cgraph.pdf new file mode 100644 index 0000000..051796a Binary files /dev/null and b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_acea0d934ee0f2b914b0b893736e8fe4e_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_af9c09013055ec39ddde86b487aefcf8b_cgraph.md5 b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_af9c09013055ec39ddde86b487aefcf8b_cgraph.md5 new file mode 100644 index 0000000..ba887dd --- /dev/null +++ b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_af9c09013055ec39ddde86b487aefcf8b_cgraph.md5 @@ -0,0 +1 @@ +ec33c0d0af8706cda57456821aa23353 \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_af9c09013055ec39ddde86b487aefcf8b_cgraph.pdf b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_af9c09013055ec39ddde86b487aefcf8b_cgraph.pdf new file mode 100644 index 0000000..058cddb Binary files /dev/null and b/docs/latex/classtests_1_1test__commit__commands_1_1TestCommitCommands_af9c09013055ec39ddde86b487aefcf8b_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands.tex b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands.tex new file mode 100644 index 0000000..d4efe16 --- /dev/null +++ b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands.tex @@ -0,0 +1,384 @@ +\hypertarget{classtests_1_1test__config__commands_1_1TestConfigCommands}{}\doxysection{tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands Class Reference} +\label{classtests_1_1test__config__commands_1_1TestConfigCommands}\index{tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}} + + +Collaboration diagram for tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=239pt]{classtests_1_1test__config__commands_1_1TestConfigCommands__coll__graph} +\end{center} +\end{figure} +\doxysubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands_a2e8162082bcdd5652bb37bdb14cf453a}{test\+\_\+get\+\_\+penify\+\_\+config\+\_\+existing\+\_\+dir}} (self, mock\+\_\+file\+\_\+open, mock\+\_\+makedirs, mock\+\_\+path, mock\+\_\+git\+\_\+folder) +\item +def \mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands_a33d4760eee3b67e1cde3aed755ebb948}{test\+\_\+get\+\_\+penify\+\_\+config\+\_\+new\+\_\+dir}} (self, mock\+\_\+file\+\_\+open, mock\+\_\+makedirs, mock\+\_\+path, mock\+\_\+git\+\_\+folder) +\item +def \mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands_adf9f2233a3f4cc5725b9d4f05758b167}{test\+\_\+get\+\_\+llm\+\_\+config\+\_\+exists}} (self, mock\+\_\+file\+\_\+open, mock\+\_\+get\+\_\+config) +\item +def \mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands_abd12f028b89aa9cd1152c0b9ece5d3cd}{test\+\_\+get\+\_\+llm\+\_\+config\+\_\+empty}} (self, mock\+\_\+file\+\_\+open, mock\+\_\+get\+\_\+config) +\item +def \mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands_a473984d31452b56acd6ce4011a1248bd}{test\+\_\+get\+\_\+llm\+\_\+config\+\_\+invalid\+\_\+json}} (self, mock\+\_\+print, mock\+\_\+file\+\_\+open, mock\+\_\+get\+\_\+config) +\item +def \mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands_aee37b97432821d19758c6325d4c74bcf}{test\+\_\+get\+\_\+jira\+\_\+config\+\_\+exists}} (self, mock\+\_\+file\+\_\+open, mock\+\_\+get\+\_\+config) +\item +def \mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands_acd8df8219441b9e9871b903a681400d9}{test\+\_\+save\+\_\+llm\+\_\+config\+\_\+success}} (self, mock\+\_\+print, mock\+\_\+json\+\_\+dump, mock\+\_\+file\+\_\+open, mock\+\_\+get\+\_\+config) +\item +def \mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands_a73a264dfb21e16003e095b79f6eab2ac}{test\+\_\+save\+\_\+llm\+\_\+config\+\_\+failure}} (self, mock\+\_\+print, mock\+\_\+file\+\_\+open, mock\+\_\+get\+\_\+config) +\item +def \mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands_af8d62310da2d768e21770f8f01ff5375}{test\+\_\+save\+\_\+jira\+\_\+config\+\_\+success}} (self, mock\+\_\+print, mock\+\_\+json\+\_\+dump, mock\+\_\+file\+\_\+open, mock\+\_\+path) +\item +def \mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands_a3355f7d313bebaa71694387cf2bc5232}{test\+\_\+get\+\_\+token\+\_\+from\+\_\+env}} (self, mock\+\_\+file\+\_\+open, mock\+\_\+path, mock\+\_\+getenv) +\item +def \mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands_a6c0207be563c3de59a6d16277805114c}{test\+\_\+get\+\_\+token\+\_\+from\+\_\+config}} (self, mock\+\_\+file\+\_\+open, mock\+\_\+path, mock\+\_\+getenv) +\item +def \mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands_a400ca5d9fcdc159714e8df54920f9436}{test\+\_\+get\+\_\+token\+\_\+not\+\_\+found}} (self, mock\+\_\+file\+\_\+open, mock\+\_\+path, mock\+\_\+getenv) +\end{DoxyCompactItemize} + + +\doxysubsection{Member Function Documentation} +\mbox{\Hypertarget{classtests_1_1test__config__commands_1_1TestConfigCommands_aee37b97432821d19758c6325d4c74bcf}\label{classtests_1_1test__config__commands_1_1TestConfigCommands_aee37b97432821d19758c6325d4c74bcf}} +\index{tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}!test\_get\_jira\_config\_exists@{test\_get\_jira\_config\_exists}} +\index{test\_get\_jira\_config\_exists@{test\_get\_jira\_config\_exists}!tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}} +\doxysubsubsection{\texorpdfstring{test\_get\_jira\_config\_exists()}{test\_get\_jira\_config\_exists()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands.\+test\+\_\+get\+\_\+jira\+\_\+config\+\_\+exists (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+file\+\_\+open, }\item[{}]{mock\+\_\+get\+\_\+config }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test that get_jira_config returns the correct JIRA configuration when +the configuration file exists. + +It sets up a mock for the configuration file to simulate its existence +and verifies that the function reads from the correct file and returns +the expected JIRA configuration dictionary. Additionally, it checks that +the mock file open is called with the appropriate arguments. + +Args: + mock_file_open (MagicMock): A mock for the `open` function. + mock_get_config (MagicMock): A mock for the `get_config` function, which is expected to return a mock + configuration file object. + +Returns: + None: This test function does not explicitly return anything. Its assertions + serve as the verification of its correctness. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__config__commands_1_1TestConfigCommands_aee37b97432821d19758c6325d4c74bcf_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__config__commands_1_1TestConfigCommands_abd12f028b89aa9cd1152c0b9ece5d3cd}\label{classtests_1_1test__config__commands_1_1TestConfigCommands_abd12f028b89aa9cd1152c0b9ece5d3cd}} +\index{tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}!test\_get\_llm\_config\_empty@{test\_get\_llm\_config\_empty}} +\index{test\_get\_llm\_config\_empty@{test\_get\_llm\_config\_empty}!tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}} +\doxysubsubsection{\texorpdfstring{test\_get\_llm\_config\_empty()}{test\_get\_llm\_config\_empty()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands.\+test\+\_\+get\+\_\+llm\+\_\+config\+\_\+empty (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+file\+\_\+open, }\item[{}]{mock\+\_\+get\+\_\+config }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the behavior of get_llm_config when called with an empty +configuration file. + +This function sets up a mock configuration file that exists but returns +no content. It then calls the `get_llm_config` function and asserts that +it returns an empty dictionary and that the file open method was called +exactly once with the correct arguments. + +Args: + mock_file_open (MagicMock): A MagicMock object simulating the built-in open function. + mock_get_config (MagicMock): A MagicMock object simulating the get_config function. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__config__commands_1_1TestConfigCommands_abd12f028b89aa9cd1152c0b9ece5d3cd_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__config__commands_1_1TestConfigCommands_adf9f2233a3f4cc5725b9d4f05758b167}\label{classtests_1_1test__config__commands_1_1TestConfigCommands_adf9f2233a3f4cc5725b9d4f05758b167}} +\index{tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}!test\_get\_llm\_config\_exists@{test\_get\_llm\_config\_exists}} +\index{test\_get\_llm\_config\_exists@{test\_get\_llm\_config\_exists}!tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}} +\doxysubsubsection{\texorpdfstring{test\_get\_llm\_config\_exists()}{test\_get\_llm\_config\_exists()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands.\+test\+\_\+get\+\_\+llm\+\_\+config\+\_\+exists (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+file\+\_\+open, }\item[{}]{mock\+\_\+get\+\_\+config }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the get_llm_config function when the configuration file exists. + +This function sets up a mock configuration file that exists and returns +it when called. It then calls the get_llm_config function and asserts +that it returns the correct configuration dictionary. Additionally, it +checks that the mock_file_open function was called with the correct +arguments. + +Args: + mock_file_open (MagicMock): A mock for the open() function. + mock_get_config (MagicMock): A mock for the get_config() function. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__config__commands_1_1TestConfigCommands_adf9f2233a3f4cc5725b9d4f05758b167_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__config__commands_1_1TestConfigCommands_a473984d31452b56acd6ce4011a1248bd}\label{classtests_1_1test__config__commands_1_1TestConfigCommands_a473984d31452b56acd6ce4011a1248bd}} +\index{tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}!test\_get\_llm\_config\_invalid\_json@{test\_get\_llm\_config\_invalid\_json}} +\index{test\_get\_llm\_config\_invalid\_json@{test\_get\_llm\_config\_invalid\_json}!tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}} +\doxysubsubsection{\texorpdfstring{test\_get\_llm\_config\_invalid\_json()}{test\_get\_llm\_config\_invalid\_json()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands.\+test\+\_\+get\+\_\+llm\+\_\+config\+\_\+invalid\+\_\+json (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+print, }\item[{}]{mock\+\_\+file\+\_\+open, }\item[{}]{mock\+\_\+get\+\_\+config }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test function to verify the behavior of get_llm_config when reading an +invalid JSON file. + +It sets up a mock configuration file that exists but contains invalid +JSON. The function is expected to handle this gracefully by printing an +error message and returning an empty dictionary. + +Args: + mock_print (MagicMock): Mock for the print function. + mock_file_open (MagicMock): Mock for the open function. + mock_get_config (MagicMock): Mock for the get_config function, which returns the mock configuration + file. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__config__commands_1_1TestConfigCommands_a473984d31452b56acd6ce4011a1248bd_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__config__commands_1_1TestConfigCommands_a2e8162082bcdd5652bb37bdb14cf453a}\label{classtests_1_1test__config__commands_1_1TestConfigCommands_a2e8162082bcdd5652bb37bdb14cf453a}} +\index{tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}!test\_get\_penify\_config\_existing\_dir@{test\_get\_penify\_config\_existing\_dir}} +\index{test\_get\_penify\_config\_existing\_dir@{test\_get\_penify\_config\_existing\_dir}!tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}} +\doxysubsubsection{\texorpdfstring{test\_get\_penify\_config\_existing\_dir()}{test\_get\_penify\_config\_existing\_dir()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands.\+test\+\_\+get\+\_\+penify\+\_\+config\+\_\+existing\+\_\+dir (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+file\+\_\+open, }\item[{}]{mock\+\_\+makedirs, }\item[{}]{mock\+\_\+path, }\item[{}]{mock\+\_\+git\+\_\+folder }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the get_penify_config function when the .penify config directory +exists. + +It should not create a new directory and assert that all mocked +functions were called correctly. + +Args: + mock_file_open (MagicMock): A MagicMock object simulating the open() function. + mock_makedirs (MagicMock): A MagicMock object simulating the os.makedirs() function. + mock_path (MagicMock): A MagicMock object simulating the Path class from pathlib module. + mock_git_folder (MagicMock): A MagicMock object simulating the git_folder_search() function. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__config__commands_1_1TestConfigCommands_a2e8162082bcdd5652bb37bdb14cf453a_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__config__commands_1_1TestConfigCommands_a33d4760eee3b67e1cde3aed755ebb948}\label{classtests_1_1test__config__commands_1_1TestConfigCommands_a33d4760eee3b67e1cde3aed755ebb948}} +\index{tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}!test\_get\_penify\_config\_new\_dir@{test\_get\_penify\_config\_new\_dir}} +\index{test\_get\_penify\_config\_new\_dir@{test\_get\_penify\_config\_new\_dir}!tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}} +\doxysubsubsection{\texorpdfstring{test\_get\_penify\_config\_new\_dir()}{test\_get\_penify\_config\_new\_dir()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands.\+test\+\_\+get\+\_\+penify\+\_\+config\+\_\+new\+\_\+dir (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+file\+\_\+open, }\item[{}]{mock\+\_\+makedirs, }\item[{}]{mock\+\_\+path, }\item[{}]{mock\+\_\+git\+\_\+folder }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the behavior of get_penify_config when the .penify directory does +not exist. + +This function mocks various system calls to simulate a scenario where +the .penify directory is not present. It then asserts that the +appropriate actions are taken to create the directory and write an empty +JSON file. + +Args: + mock_file_open (MagicMock): A MagicMock object simulating the `open` function. + mock_makedirs (MagicMock): A MagicMock object simulating the `os.makedirs` function. + mock_path (MagicMock): A MagicMock object simulating the `Path` class from `pathlib`. + mock_git_folder (MagicMock): A MagicMock object simulating a git folder search function. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__config__commands_1_1TestConfigCommands_a33d4760eee3b67e1cde3aed755ebb948_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__config__commands_1_1TestConfigCommands_a6c0207be563c3de59a6d16277805114c}\label{classtests_1_1test__config__commands_1_1TestConfigCommands_a6c0207be563c3de59a6d16277805114c}} +\index{tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}!test\_get\_token\_from\_config@{test\_get\_token\_from\_config}} +\index{test\_get\_token\_from\_config@{test\_get\_token\_from\_config}!tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}} +\doxysubsubsection{\texorpdfstring{test\_get\_token\_from\_config()}{test\_get\_token\_from\_config()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands.\+test\+\_\+get\+\_\+token\+\_\+from\+\_\+config (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+file\+\_\+open, }\item[{}]{mock\+\_\+path, }\item[{}]{mock\+\_\+getenv }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test retrieving a token from the configuration. + +This function sets up mocks for environment variables and configuration +files, calls the `get_token` function, and asserts its behavior. It +verifies that when the environment variable is not found, the function +reads a token from a configuration file located in the user's home +directory. + +Args: + mock_file_open (MagicMock): A mock for the `open` function. + mock_path (MagicMock): A mock for the `pathlib.Path` class. + mock_getenv (MagicMock): A mock for the `os.getenv` function. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__config__commands_1_1TestConfigCommands_a6c0207be563c3de59a6d16277805114c_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__config__commands_1_1TestConfigCommands_a3355f7d313bebaa71694387cf2bc5232}\label{classtests_1_1test__config__commands_1_1TestConfigCommands_a3355f7d313bebaa71694387cf2bc5232}} +\index{tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}!test\_get\_token\_from\_env@{test\_get\_token\_from\_env}} +\index{test\_get\_token\_from\_env@{test\_get\_token\_from\_env}!tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}} +\doxysubsubsection{\texorpdfstring{test\_get\_token\_from\_env()}{test\_get\_token\_from\_env()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands.\+test\+\_\+get\+\_\+token\+\_\+from\+\_\+env (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+file\+\_\+open, }\item[{}]{mock\+\_\+path, }\item[{}]{mock\+\_\+getenv }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test retrieving a token from the environment variable. + +This function tests the behavior of `get_token` when an environment +variable is set. It verifies that if the 'PENIFY_API_TOKEN' environment +variable exists, the function returns its value without attempting to +read a file. + +Args: + mock_file_open (MagicMock): A MagicMock object for simulating file operations. + mock_path (MagicMock): A MagicMock object for simulating path operations. + mock_getenv (MagicMock): A MagicMock object for simulating environment variable retrieval. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__config__commands_1_1TestConfigCommands_a3355f7d313bebaa71694387cf2bc5232_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__config__commands_1_1TestConfigCommands_a400ca5d9fcdc159714e8df54920f9436}\label{classtests_1_1test__config__commands_1_1TestConfigCommands_a400ca5d9fcdc159714e8df54920f9436}} +\index{tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}!test\_get\_token\_not\_found@{test\_get\_token\_not\_found}} +\index{test\_get\_token\_not\_found@{test\_get\_token\_not\_found}!tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}} +\doxysubsubsection{\texorpdfstring{test\_get\_token\_not\_found()}{test\_get\_token\_not\_found()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands.\+test\+\_\+get\+\_\+token\+\_\+not\+\_\+found (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+file\+\_\+open, }\item[{}]{mock\+\_\+path, }\item[{}]{mock\+\_\+getenv }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the get_token function when the API token environment variable is +not found. + +This function tests the scenario where the `PENIFY_API_TOKEN` +environment variable is not set. It mocks the environment variable to +return `None`, and verifies that the function returns `None`. The test +also checks that the environment variable is accessed once and that a +file open operation is attempted on a configuration file located in the +user's home directory. + +Args: + mock_file_open (MagicMock): Mock for the built-in `open` function. + mock_path (MagicMock): Mock for the `pathlib.Path` module. + mock_getenv (MagicMock): Mock for the `os.getenv` function. + +Returns: + None: The function does not return anything; it asserts conditions to verify + correctness. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__config__commands_1_1TestConfigCommands_a400ca5d9fcdc159714e8df54920f9436_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__config__commands_1_1TestConfigCommands_af8d62310da2d768e21770f8f01ff5375}\label{classtests_1_1test__config__commands_1_1TestConfigCommands_af8d62310da2d768e21770f8f01ff5375}} +\index{tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}!test\_save\_jira\_config\_success@{test\_save\_jira\_config\_success}} +\index{test\_save\_jira\_config\_success@{test\_save\_jira\_config\_success}!tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}} +\doxysubsubsection{\texorpdfstring{test\_save\_jira\_config\_success()}{test\_save\_jira\_config\_success()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands.\+test\+\_\+save\+\_\+jira\+\_\+config\+\_\+success (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+print, }\item[{}]{mock\+\_\+json\+\_\+dump, }\item[{}]{mock\+\_\+file\+\_\+open, }\item[{}]{mock\+\_\+path }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the save_jira_config function to ensure it saves JIRA configuration +successfully. + +This function sets up mocks for various dependencies and tests the +functionality of saving a JIRA configuration. It asserts that the +function returns `True`, the JSON dump is called with the correct +configuration, and the print statement contains the expected message. + +Args: + mock_print (MagicMock): Mock for the print function. + mock_json_dump (MagicMock): Mock for the json.dump function. + mock_file_open (MagicMock): Mock for the open function. + mock_path (MagicMock): Mock for the path module. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__config__commands_1_1TestConfigCommands_af8d62310da2d768e21770f8f01ff5375_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__config__commands_1_1TestConfigCommands_a73a264dfb21e16003e095b79f6eab2ac}\label{classtests_1_1test__config__commands_1_1TestConfigCommands_a73a264dfb21e16003e095b79f6eab2ac}} +\index{tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}!test\_save\_llm\_config\_failure@{test\_save\_llm\_config\_failure}} +\index{test\_save\_llm\_config\_failure@{test\_save\_llm\_config\_failure}!tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}} +\doxysubsubsection{\texorpdfstring{test\_save\_llm\_config\_failure()}{test\_save\_llm\_config\_failure()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands.\+test\+\_\+save\+\_\+llm\+\_\+config\+\_\+failure (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+print, }\item[{}]{mock\+\_\+file\+\_\+open, }\item[{}]{mock\+\_\+get\+\_\+config }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test function to verify that the save_llm_config function returns False +and prints an error message when it fails to save the LLM configuration +due to a permission error. + +It sets up a mock configuration file that exists and calls the +save_llm_config function with valid parameters. The function is expected +to return False and print "Error saving LLM configuration: Permission +denied" in case of a failure. + +Args: + self (TestLLMConfig): An instance of the test class. + mock_print (MagicMock): A MagicMock object representing the print function, which will be used + to assert that it was called with the expected error message. + mock_file_open (MagicMock): A MagicMock object representing the open function, which is not used in + this test but is included as a parameter for completeness. + mock_get_config (MagicMock): A MagicMock object representing the get_config function, which will be + used to return the mock configuration file. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__config__commands_1_1TestConfigCommands_a73a264dfb21e16003e095b79f6eab2ac_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__config__commands_1_1TestConfigCommands_acd8df8219441b9e9871b903a681400d9}\label{classtests_1_1test__config__commands_1_1TestConfigCommands_acd8df8219441b9e9871b903a681400d9}} +\index{tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}!test\_save\_llm\_config\_success@{test\_save\_llm\_config\_success}} +\index{test\_save\_llm\_config\_success@{test\_save\_llm\_config\_success}!tests.test\_config\_commands.TestConfigCommands@{tests.test\_config\_commands.TestConfigCommands}} +\doxysubsubsection{\texorpdfstring{test\_save\_llm\_config\_success()}{test\_save\_llm\_config\_success()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands.\+test\+\_\+save\+\_\+llm\+\_\+config\+\_\+success (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+print, }\item[{}]{mock\+\_\+json\+\_\+dump, }\item[{}]{mock\+\_\+file\+\_\+open, }\item[{}]{mock\+\_\+get\+\_\+config }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the save_llm_config function successfully. + +This function tests that the save_llm_config function correctly saves an +LLM configuration and handles various mock objects and side effects. It +ensures that the function returns True upon successful execution, writes +the expected configuration to a file, and prints a confirmation message. + +Args: + mock_print (MagicMock): A mock object for the print function. + mock_json_dump (MagicMock): A mock object for json.dump. + mock_file_open (MagicMock): A mock object for file opening. + mock_get_config (MagicMock): A mock object to return a configuration file mock. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__config__commands_1_1TestConfigCommands_acd8df8219441b9e9871b903a681400d9_cgraph} +\end{center} +\end{figure} + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/\mbox{\hyperlink{test__config__commands_8py}{test\+\_\+config\+\_\+commands.\+py}}\end{DoxyCompactItemize} diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands__coll__graph.md5 b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands__coll__graph.md5 new file mode 100644 index 0000000..eb46690 --- /dev/null +++ b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands__coll__graph.md5 @@ -0,0 +1 @@ +2db6cf58d997b43a776fb21752d4aa29 \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands__coll__graph.pdf b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands__coll__graph.pdf new file mode 100644 index 0000000..31d84ef Binary files /dev/null and b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands__coll__graph.pdf differ diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a2e8162082bcdd5652bb37bdb14cf453a_cgraph.md5 b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a2e8162082bcdd5652bb37bdb14cf453a_cgraph.md5 new file mode 100644 index 0000000..f0c10d1 --- /dev/null +++ b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a2e8162082bcdd5652bb37bdb14cf453a_cgraph.md5 @@ -0,0 +1 @@ +ec72b7094cae9497ce7ecd6e5b1465fa \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a2e8162082bcdd5652bb37bdb14cf453a_cgraph.pdf b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a2e8162082bcdd5652bb37bdb14cf453a_cgraph.pdf new file mode 100644 index 0000000..1825081 Binary files /dev/null and b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a2e8162082bcdd5652bb37bdb14cf453a_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a3355f7d313bebaa71694387cf2bc5232_cgraph.md5 b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a3355f7d313bebaa71694387cf2bc5232_cgraph.md5 new file mode 100644 index 0000000..2481d46 --- /dev/null +++ b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a3355f7d313bebaa71694387cf2bc5232_cgraph.md5 @@ -0,0 +1 @@ +573ce7b19062640c5f6e81c7b952ccc6 \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a3355f7d313bebaa71694387cf2bc5232_cgraph.pdf b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a3355f7d313bebaa71694387cf2bc5232_cgraph.pdf new file mode 100644 index 0000000..f2534b5 Binary files /dev/null and b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a3355f7d313bebaa71694387cf2bc5232_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a33d4760eee3b67e1cde3aed755ebb948_cgraph.md5 b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a33d4760eee3b67e1cde3aed755ebb948_cgraph.md5 new file mode 100644 index 0000000..fc5ed8e --- /dev/null +++ b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a33d4760eee3b67e1cde3aed755ebb948_cgraph.md5 @@ -0,0 +1 @@ +142d84ea13e73e204d9d01d0e00b0d71 \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a33d4760eee3b67e1cde3aed755ebb948_cgraph.pdf b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a33d4760eee3b67e1cde3aed755ebb948_cgraph.pdf new file mode 100644 index 0000000..cc528f6 Binary files /dev/null and b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a33d4760eee3b67e1cde3aed755ebb948_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a400ca5d9fcdc159714e8df54920f9436_cgraph.md5 b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a400ca5d9fcdc159714e8df54920f9436_cgraph.md5 new file mode 100644 index 0000000..ed548b1 --- /dev/null +++ b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a400ca5d9fcdc159714e8df54920f9436_cgraph.md5 @@ -0,0 +1 @@ +f1019232940cd3a7a81ee8d607905541 \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a400ca5d9fcdc159714e8df54920f9436_cgraph.pdf b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a400ca5d9fcdc159714e8df54920f9436_cgraph.pdf new file mode 100644 index 0000000..98a3edb Binary files /dev/null and b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a400ca5d9fcdc159714e8df54920f9436_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a473984d31452b56acd6ce4011a1248bd_cgraph.md5 b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a473984d31452b56acd6ce4011a1248bd_cgraph.md5 new file mode 100644 index 0000000..792b59c --- /dev/null +++ b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a473984d31452b56acd6ce4011a1248bd_cgraph.md5 @@ -0,0 +1 @@ +03d53e62697311ea7b9a43f7827d29c5 \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a473984d31452b56acd6ce4011a1248bd_cgraph.pdf b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a473984d31452b56acd6ce4011a1248bd_cgraph.pdf new file mode 100644 index 0000000..dcbd7f4 Binary files /dev/null and b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a473984d31452b56acd6ce4011a1248bd_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a6c0207be563c3de59a6d16277805114c_cgraph.md5 b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a6c0207be563c3de59a6d16277805114c_cgraph.md5 new file mode 100644 index 0000000..ab1decd --- /dev/null +++ b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a6c0207be563c3de59a6d16277805114c_cgraph.md5 @@ -0,0 +1 @@ +0139477054b3cfbf20ff3570dd3062bf \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a6c0207be563c3de59a6d16277805114c_cgraph.pdf b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a6c0207be563c3de59a6d16277805114c_cgraph.pdf new file mode 100644 index 0000000..3ff28a3 Binary files /dev/null and b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a6c0207be563c3de59a6d16277805114c_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a73a264dfb21e16003e095b79f6eab2ac_cgraph.md5 b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a73a264dfb21e16003e095b79f6eab2ac_cgraph.md5 new file mode 100644 index 0000000..e42c089 --- /dev/null +++ b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a73a264dfb21e16003e095b79f6eab2ac_cgraph.md5 @@ -0,0 +1 @@ +a3362b573c3e3033972de2c850c0679a \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a73a264dfb21e16003e095b79f6eab2ac_cgraph.pdf b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a73a264dfb21e16003e095b79f6eab2ac_cgraph.pdf new file mode 100644 index 0000000..468eb4b Binary files /dev/null and b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_a73a264dfb21e16003e095b79f6eab2ac_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_abd12f028b89aa9cd1152c0b9ece5d3cd_cgraph.md5 b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_abd12f028b89aa9cd1152c0b9ece5d3cd_cgraph.md5 new file mode 100644 index 0000000..483383b --- /dev/null +++ b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_abd12f028b89aa9cd1152c0b9ece5d3cd_cgraph.md5 @@ -0,0 +1 @@ +6623d4f0bccfce20d750d1e6830f6bba \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_abd12f028b89aa9cd1152c0b9ece5d3cd_cgraph.pdf b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_abd12f028b89aa9cd1152c0b9ece5d3cd_cgraph.pdf new file mode 100644 index 0000000..2f93716 Binary files /dev/null and b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_abd12f028b89aa9cd1152c0b9ece5d3cd_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_acd8df8219441b9e9871b903a681400d9_cgraph.md5 b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_acd8df8219441b9e9871b903a681400d9_cgraph.md5 new file mode 100644 index 0000000..8b1c575 --- /dev/null +++ b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_acd8df8219441b9e9871b903a681400d9_cgraph.md5 @@ -0,0 +1 @@ +f096c5ec7ace89525adfbcec7d3a4ca9 \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_acd8df8219441b9e9871b903a681400d9_cgraph.pdf b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_acd8df8219441b9e9871b903a681400d9_cgraph.pdf new file mode 100644 index 0000000..8be1b64 Binary files /dev/null and b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_acd8df8219441b9e9871b903a681400d9_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_adf9f2233a3f4cc5725b9d4f05758b167_cgraph.md5 b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_adf9f2233a3f4cc5725b9d4f05758b167_cgraph.md5 new file mode 100644 index 0000000..e4950a9 --- /dev/null +++ b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_adf9f2233a3f4cc5725b9d4f05758b167_cgraph.md5 @@ -0,0 +1 @@ +a8e18e621bb6b89f2a1b847642cd5a0d \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_adf9f2233a3f4cc5725b9d4f05758b167_cgraph.pdf b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_adf9f2233a3f4cc5725b9d4f05758b167_cgraph.pdf new file mode 100644 index 0000000..0c83abd Binary files /dev/null and b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_adf9f2233a3f4cc5725b9d4f05758b167_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_aee37b97432821d19758c6325d4c74bcf_cgraph.md5 b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_aee37b97432821d19758c6325d4c74bcf_cgraph.md5 new file mode 100644 index 0000000..64be669 --- /dev/null +++ b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_aee37b97432821d19758c6325d4c74bcf_cgraph.md5 @@ -0,0 +1 @@ +8fc60631824470ca6b54faab7f384a96 \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_aee37b97432821d19758c6325d4c74bcf_cgraph.pdf b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_aee37b97432821d19758c6325d4c74bcf_cgraph.pdf new file mode 100644 index 0000000..c5c3ba5 Binary files /dev/null and b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_aee37b97432821d19758c6325d4c74bcf_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_af8d62310da2d768e21770f8f01ff5375_cgraph.md5 b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_af8d62310da2d768e21770f8f01ff5375_cgraph.md5 new file mode 100644 index 0000000..5517a0b --- /dev/null +++ b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_af8d62310da2d768e21770f8f01ff5375_cgraph.md5 @@ -0,0 +1 @@ +5b59f0d15af0ea4040d846fc1f89d18a \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_af8d62310da2d768e21770f8f01ff5375_cgraph.pdf b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_af8d62310da2d768e21770f8f01ff5375_cgraph.pdf new file mode 100644 index 0000000..16c4787 Binary files /dev/null and b/docs/latex/classtests_1_1test__config__commands_1_1TestConfigCommands_af8d62310da2d768e21770f8f01ff5375_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig.tex b/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig.tex new file mode 100644 index 0000000..ae256da --- /dev/null +++ b/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig.tex @@ -0,0 +1,82 @@ +\hypertarget{classtests_1_1test__web__config_1_1TestWebConfig}{}\doxysection{tests.\+test\+\_\+web\+\_\+config.\+Test\+Web\+Config Class Reference} +\label{classtests_1_1test__web__config_1_1TestWebConfig}\index{tests.test\_web\_config.TestWebConfig@{tests.test\_web\_config.TestWebConfig}} + + +Collaboration diagram for tests.\+test\+\_\+web\+\_\+config.\+Test\+Web\+Config\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=225pt]{classtests_1_1test__web__config_1_1TestWebConfig__coll__graph} +\end{center} +\end{figure} +\doxysubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{classtests_1_1test__web__config_1_1TestWebConfig_afc6440352201d207ea8b4d26f8ccfa35}{test\+\_\+config\+\_\+llm\+\_\+web\+\_\+server\+\_\+setup}} (self, mock\+\_\+resource\+\_\+filename, mock\+\_\+server, mock\+\_\+webbrowser) +\item +def \mbox{\hyperlink{classtests_1_1test__web__config_1_1TestWebConfig_a06e600222e426b003850509cb1d3190a}{test\+\_\+config\+\_\+jira\+\_\+web\+\_\+server\+\_\+setup}} (self, mock\+\_\+resource\+\_\+filename, mock\+\_\+server, mock\+\_\+webbrowser) +\end{DoxyCompactItemize} + + +\doxysubsection{Member Function Documentation} +\mbox{\Hypertarget{classtests_1_1test__web__config_1_1TestWebConfig_a06e600222e426b003850509cb1d3190a}\label{classtests_1_1test__web__config_1_1TestWebConfig_a06e600222e426b003850509cb1d3190a}} +\index{tests.test\_web\_config.TestWebConfig@{tests.test\_web\_config.TestWebConfig}!test\_config\_jira\_web\_server\_setup@{test\_config\_jira\_web\_server\_setup}} +\index{test\_config\_jira\_web\_server\_setup@{test\_config\_jira\_web\_server\_setup}!tests.test\_web\_config.TestWebConfig@{tests.test\_web\_config.TestWebConfig}} +\doxysubsubsection{\texorpdfstring{test\_config\_jira\_web\_server\_setup()}{test\_config\_jira\_web\_server\_setup()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+web\+\_\+config.\+Test\+Web\+Config.\+test\+\_\+config\+\_\+jira\+\_\+web\+\_\+server\+\_\+setup (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+resource\+\_\+filename, }\item[{}]{mock\+\_\+server, }\item[{}]{mock\+\_\+webbrowser }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the configuration and setup of a JIRA web server. + +This function tests the entire process of setting up a JIRA web server, +including mocking necessary resources, configuring the server to shut +down after handling one request, and verifying that the web browser is +opened with the correct URL. The function uses several mocks to simulate +external dependencies such as resource files, servers, and web browsers. + +Args: + mock_resource_filename (MagicMock): A MagicMock object for simulating the `resource_filename` function. + mock_server (MagicMock): A MagicMock object for simulating the server setup. + mock_webbrowser (MagicMock): A MagicMock object for simulating the web browser opening. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__web__config_1_1TestWebConfig_a06e600222e426b003850509cb1d3190a_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{classtests_1_1test__web__config_1_1TestWebConfig_afc6440352201d207ea8b4d26f8ccfa35}\label{classtests_1_1test__web__config_1_1TestWebConfig_afc6440352201d207ea8b4d26f8ccfa35}} +\index{tests.test\_web\_config.TestWebConfig@{tests.test\_web\_config.TestWebConfig}!test\_config\_llm\_web\_server\_setup@{test\_config\_llm\_web\_server\_setup}} +\index{test\_config\_llm\_web\_server\_setup@{test\_config\_llm\_web\_server\_setup}!tests.test\_web\_config.TestWebConfig@{tests.test\_web\_config.TestWebConfig}} +\doxysubsubsection{\texorpdfstring{test\_config\_llm\_web\_server\_setup()}{test\_config\_llm\_web\_server\_setup()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+web\+\_\+config.\+Test\+Web\+Config.\+test\+\_\+config\+\_\+llm\+\_\+web\+\_\+server\+\_\+setup (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{mock\+\_\+resource\+\_\+filename, }\item[{}]{mock\+\_\+server, }\item[{}]{mock\+\_\+webbrowser }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Set up and test the web server configuration for an LLM (Large Language +Model) web interface. + +This function configures a mock web server for testing purposes, +including setting up resource filenames, mocking server behavior, and +verifying that the web browser is opened and the server starts +correctly. The function uses various mocks to simulate external +dependencies such as `resource_filename` and `server`. + +Args: + mock_resource_filename (MagicMock): A MagicMock object simulating the `resource_filename` function. + mock_server (MagicMock): A MagicMock object simulating the context manager for the web server. + mock_webbrowser (MagicMock): A MagicMock object simulating the `webbrowser` module. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{classtests_1_1test__web__config_1_1TestWebConfig_afc6440352201d207ea8b4d26f8ccfa35_cgraph} +\end{center} +\end{figure} + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/\mbox{\hyperlink{test__web__config_8py}{test\+\_\+web\+\_\+config.\+py}}\end{DoxyCompactItemize} diff --git a/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig__coll__graph.md5 b/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig__coll__graph.md5 new file mode 100644 index 0000000..f0a528b --- /dev/null +++ b/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig__coll__graph.md5 @@ -0,0 +1 @@ +ab8cbd57a4ebb302c58c19a4efbc1c6e \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig__coll__graph.pdf b/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig__coll__graph.pdf new file mode 100644 index 0000000..4e78b3d Binary files /dev/null and b/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig__coll__graph.pdf differ diff --git a/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig_a06e600222e426b003850509cb1d3190a_cgraph.md5 b/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig_a06e600222e426b003850509cb1d3190a_cgraph.md5 new file mode 100644 index 0000000..0562557 --- /dev/null +++ b/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig_a06e600222e426b003850509cb1d3190a_cgraph.md5 @@ -0,0 +1 @@ +ec26a3b9a81024c5143a2b7c2ee67936 \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig_a06e600222e426b003850509cb1d3190a_cgraph.pdf b/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig_a06e600222e426b003850509cb1d3190a_cgraph.pdf new file mode 100644 index 0000000..0b7c2e7 Binary files /dev/null and b/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig_a06e600222e426b003850509cb1d3190a_cgraph.pdf differ diff --git a/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig_afc6440352201d207ea8b4d26f8ccfa35_cgraph.md5 b/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig_afc6440352201d207ea8b4d26f8ccfa35_cgraph.md5 new file mode 100644 index 0000000..4b88b9f --- /dev/null +++ b/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig_afc6440352201d207ea8b4d26f8ccfa35_cgraph.md5 @@ -0,0 +1 @@ +8ee149c998fe22f7ba6638bf1cf94e3b \ No newline at end of file diff --git a/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig_afc6440352201d207ea8b4d26f8ccfa35_cgraph.pdf b/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig_afc6440352201d207ea8b4d26f8ccfa35_cgraph.pdf new file mode 100644 index 0000000..772f8b8 Binary files /dev/null and b/docs/latex/classtests_1_1test__web__config_1_1TestWebConfig_afc6440352201d207ea8b4d26f8ccfa35_cgraph.pdf differ diff --git a/docs/latex/commit-commands_8md.tex b/docs/latex/commit-commands_8md.tex new file mode 100644 index 0000000..1a0ba6c --- /dev/null +++ b/docs/latex/commit-commands_8md.tex @@ -0,0 +1,2 @@ +\hypertarget{commit-commands_8md}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/docs/commit-\/commands.md File Reference} +\label{commit-commands_8md}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/docs/commit-\/commands.md@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/docs/commit-\/commands.md}} diff --git a/docs/latex/commit__analyzer_8py.tex b/docs/latex/commit__analyzer_8py.tex new file mode 100644 index 0000000..5f1717f --- /dev/null +++ b/docs/latex/commit__analyzer_8py.tex @@ -0,0 +1,14 @@ +\hypertarget{commit__analyzer_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/commit\+\_\+analyzer.py File Reference} +\label{commit__analyzer_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commit\_analyzer.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commit\_analyzer.py}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook}{penify\+\_\+hook.\+commit\+\_\+analyzer.\+Commit\+Doc\+Gen\+Hook}} +\end{DoxyCompactItemize} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commit__analyzer}{penify\+\_\+hook.\+commit\+\_\+analyzer}} +\end{DoxyCompactItemize} diff --git a/docs/latex/commit__commands_8py.tex b/docs/latex/commit__commands_8py.tex new file mode 100644 index 0000000..dde5bab --- /dev/null +++ b/docs/latex/commit__commands_8py.tex @@ -0,0 +1,20 @@ +\hypertarget{commit__commands_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/commands/commit\+\_\+commands.py File Reference} +\label{commit__commands_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commands/commit\_commands.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commands/commit\_commands.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands}{penify\+\_\+hook.\+commands}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1commit__commands}{penify\+\_\+hook.\+commands.\+commit\+\_\+commands}} +\end{DoxyCompactItemize} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a}{penify\+\_\+hook.\+commands.\+commit\+\_\+commands.\+commit\+\_\+code}} (api\+\_\+url, token, message, open\+\_\+terminal, generate\+\_\+description, llm\+\_\+model=None, llm\+\_\+api\+\_\+base=None, llm\+\_\+api\+\_\+key=None, jira\+\_\+url=None, jira\+\_\+user=None, jira\+\_\+api\+\_\+token=None) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1commit__commands_a8627583116eb78e31a4d3cdc16d2f15c}{penify\+\_\+hook.\+commands.\+commit\+\_\+commands.\+setup\+\_\+commit\+\_\+parser}} (parser) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23}{penify\+\_\+hook.\+commands.\+commit\+\_\+commands.\+handle\+\_\+commit}} (args) +\end{DoxyCompactItemize} diff --git a/docs/latex/config-commands_8md.tex b/docs/latex/config-commands_8md.tex new file mode 100644 index 0000000..05a13f5 --- /dev/null +++ b/docs/latex/config-commands_8md.tex @@ -0,0 +1,2 @@ +\hypertarget{config-commands_8md}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/docs/config-\/commands.md File Reference} +\label{config-commands_8md}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/docs/config-\/commands.md@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/docs/config-\/commands.md}} diff --git a/docs/latex/config__command_8py.tex b/docs/latex/config__command_8py.tex new file mode 100644 index 0000000..c3a8e6d --- /dev/null +++ b/docs/latex/config__command_8py.tex @@ -0,0 +1,16 @@ +\hypertarget{config__command_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/config\+\_\+command.py File Reference} +\label{config__command_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/config\_command.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/config\_command.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1config__command}{penify\+\_\+hook.\+config\+\_\+command}} +\end{DoxyCompactItemize} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1config__command_a4f3eb92164a69df1446d745f8a09285e}{penify\+\_\+hook.\+config\+\_\+command.\+setup\+\_\+config\+\_\+parser}} (parent\+\_\+parser) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde}{penify\+\_\+hook.\+config\+\_\+command.\+handle\+\_\+config}} (args) +\end{DoxyCompactItemize} diff --git a/docs/latex/config__commands_8py.tex b/docs/latex/config__commands_8py.tex new file mode 100644 index 0000000..ab69910 --- /dev/null +++ b/docs/latex/config__commands_8py.tex @@ -0,0 +1,41 @@ +\hypertarget{config__commands_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/commands/config\+\_\+commands.py File Reference} +\label{config__commands_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commands/config\_commands.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commands/config\_commands.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands}{penify\+\_\+hook.\+commands}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands}{penify\+\_\+hook.\+commands.\+config\+\_\+commands}} +\end{DoxyCompactItemize} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +None \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae}{penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+load\+\_\+env\+\_\+files}} () +\item +Path \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20}{penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+get\+\_\+penify\+\_\+config}} () +\item +Any \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a3caf2b062dd33b1f1d7ddc7224f0ff87}{penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+get\+\_\+env\+\_\+var\+\_\+or\+\_\+default}} (str env\+\_\+var, Any default=None) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4}{penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+save\+\_\+llm\+\_\+config}} (model, api\+\_\+base, api\+\_\+key) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4}{penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+save\+\_\+jira\+\_\+config}} (url, username, api\+\_\+token) +\item +Dict\mbox{[}str, str\mbox{]} \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0}{penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+get\+\_\+llm\+\_\+config}} () +\item +Dict\mbox{[}str, str\mbox{]} \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2}{penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+get\+\_\+jira\+\_\+config}} () +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a185dfc34a655ed80e6c95939b6f3c35c}{penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+config\+\_\+llm\+\_\+web}} () +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06}{penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+config\+\_\+jira\+\_\+web}} () +\item +Optional\mbox{[}str\mbox{]} \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812}{penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+get\+\_\+token}} () +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +bool \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a152642ab83cf6219b604bda6122aba67}{penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+DOTENV\+\_\+\+AVAILABLE}} = True +\item +\mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a4b202072a3a3b8515c9c254622e9c880}{penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+path}} +\end{DoxyCompactItemize} diff --git a/docs/latex/conftest_8py.tex b/docs/latex/conftest_8py.tex new file mode 100644 index 0000000..f2aff9d --- /dev/null +++ b/docs/latex/conftest_8py.tex @@ -0,0 +1,9 @@ +\hypertarget{conftest_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/conftest.py File Reference} +\label{conftest_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/tests/conftest.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/tests/conftest.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacetests}{tests}} +\item +namespace \mbox{\hyperlink{namespacetests_1_1conftest}{tests.\+conftest}} +\end{DoxyCompactItemize} diff --git a/docs/latex/constants_8py.tex b/docs/latex/constants_8py.tex new file mode 100644 index 0000000..234d12a --- /dev/null +++ b/docs/latex/constants_8py.tex @@ -0,0 +1,16 @@ +\hypertarget{constants_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/constants.py File Reference} +\label{constants_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/constants.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/constants.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1constants}{penify\+\_\+hook.\+constants}} +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1constants_af198b5d1fc2f44657a2061aa324af3e0}{penify\+\_\+hook.\+constants.\+API\+\_\+\+URL}} = \textquotesingle{}http\+://localhost\+:8000/api\textquotesingle{} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1constants_a316c5a606e4440fb8224c6544c3a15f0}{penify\+\_\+hook.\+constants.\+DASHBOARD\+\_\+\+URL}} = \char`\"{}https\+://dashboard.\+penify.\+dev/auth/localhost/login\char`\"{} +\end{DoxyCompactItemize} diff --git a/docs/latex/detailed-usage_8md.tex b/docs/latex/detailed-usage_8md.tex new file mode 100644 index 0000000..1d1e762 --- /dev/null +++ b/docs/latex/detailed-usage_8md.tex @@ -0,0 +1,2 @@ +\hypertarget{detailed-usage_8md}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/docs/detailed-\/usage.md File Reference} +\label{detailed-usage_8md}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/docs/detailed-\/usage.md@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/docs/detailed-\/usage.md}} diff --git a/docs/latex/dir_063e2d5fe58a131099a7fe4200cca78c.tex b/docs/latex/dir_063e2d5fe58a131099a7fe4200cca78c.tex new file mode 100644 index 0000000..eefbfc9 --- /dev/null +++ b/docs/latex/dir_063e2d5fe58a131099a7fe4200cca78c.tex @@ -0,0 +1,25 @@ +\hypertarget{dir_063e2d5fe58a131099a7fe4200cca78c}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests Directory Reference} +\label{dir_063e2d5fe58a131099a7fe4200cca78c}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/tests Directory Reference@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/tests Directory Reference}} +Directory dependency graph for tests\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=166pt]{dir_063e2d5fe58a131099a7fe4200cca78c_dep} +\end{center} +\end{figure} +\doxysubsection*{Files} +\begin{DoxyCompactItemize} +\item +file \mbox{\hyperlink{tests_2____init_____8py}{\+\_\+\+\_\+init\+\_\+\+\_\+.\+py}} +\item +file \mbox{\hyperlink{conftest_8py}{conftest.\+py}} +\item +file \mbox{\hyperlink{test__commit__commands_8py}{test\+\_\+commit\+\_\+commands.\+py}} +\item +file \mbox{\hyperlink{test__config__commands_8py}{test\+\_\+config\+\_\+commands.\+py}} +\item +file \mbox{\hyperlink{test__doc__commands_8py}{test\+\_\+doc\+\_\+commands.\+py}} +\item +file \mbox{\hyperlink{test__web__config_8py}{test\+\_\+web\+\_\+config.\+py}} +\end{DoxyCompactItemize} diff --git a/docs/latex/dir_063e2d5fe58a131099a7fe4200cca78c_dep.md5 b/docs/latex/dir_063e2d5fe58a131099a7fe4200cca78c_dep.md5 new file mode 100644 index 0000000..afb9081 --- /dev/null +++ b/docs/latex/dir_063e2d5fe58a131099a7fe4200cca78c_dep.md5 @@ -0,0 +1 @@ +fdbdbdbe253c547a3b41063e5036418d \ No newline at end of file diff --git a/docs/latex/dir_063e2d5fe58a131099a7fe4200cca78c_dep.pdf b/docs/latex/dir_063e2d5fe58a131099a7fe4200cca78c_dep.pdf new file mode 100644 index 0000000..f1b5bad Binary files /dev/null and b/docs/latex/dir_063e2d5fe58a131099a7fe4200cca78c_dep.pdf differ diff --git a/docs/latex/dir_1648a057408aae8db85b8e3797335623.tex b/docs/latex/dir_1648a057408aae8db85b8e3797335623.tex new file mode 100644 index 0000000..081b62d --- /dev/null +++ b/docs/latex/dir_1648a057408aae8db85b8e3797335623.tex @@ -0,0 +1,10 @@ +\hypertarget{dir_1648a057408aae8db85b8e3797335623}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/docs Directory Reference} +\label{dir_1648a057408aae8db85b8e3797335623}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/docs Directory Reference@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/docs Directory Reference}} +Directory dependency graph for docs\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=166pt]{dir_1648a057408aae8db85b8e3797335623_dep} +\end{center} +\end{figure} diff --git a/docs/latex/dir_1648a057408aae8db85b8e3797335623_dep.md5 b/docs/latex/dir_1648a057408aae8db85b8e3797335623_dep.md5 new file mode 100644 index 0000000..2214ec5 --- /dev/null +++ b/docs/latex/dir_1648a057408aae8db85b8e3797335623_dep.md5 @@ -0,0 +1 @@ +103c12b563793db32ed50b111f45bada \ No newline at end of file diff --git a/docs/latex/dir_1648a057408aae8db85b8e3797335623_dep.pdf b/docs/latex/dir_1648a057408aae8db85b8e3797335623_dep.pdf new file mode 100644 index 0000000..a735ea4 Binary files /dev/null and b/docs/latex/dir_1648a057408aae8db85b8e3797335623_dep.pdf differ diff --git a/docs/latex/dir_624fa2a8bce97f0444ac5cca335d4e23.tex b/docs/latex/dir_624fa2a8bce97f0444ac5cca335d4e23.tex new file mode 100644 index 0000000..94ac70c --- /dev/null +++ b/docs/latex/dir_624fa2a8bce97f0444ac5cca335d4e23.tex @@ -0,0 +1,25 @@ +\hypertarget{dir_624fa2a8bce97f0444ac5cca335d4e23}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/commands Directory Reference} +\label{dir_624fa2a8bce97f0444ac5cca335d4e23}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commands Directory Reference@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commands Directory Reference}} +Directory dependency graph for commands\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=184pt]{dir_624fa2a8bce97f0444ac5cca335d4e23_dep} +\end{center} +\end{figure} +\doxysubsection*{Files} +\begin{DoxyCompactItemize} +\item +file \mbox{\hyperlink{penify__hook_2commands_2____init_____8py}{\+\_\+\+\_\+init\+\_\+\+\_\+.\+py}} +\item +file \mbox{\hyperlink{auth__commands_8py}{auth\+\_\+commands.\+py}} +\item +file \mbox{\hyperlink{commit__commands_8py}{commit\+\_\+commands.\+py}} +\item +file \mbox{\hyperlink{config__commands_8py}{config\+\_\+commands.\+py}} +\item +file \mbox{\hyperlink{doc__commands_8py}{doc\+\_\+commands.\+py}} +\item +file \mbox{\hyperlink{hook__commands_8py}{hook\+\_\+commands.\+py}} +\end{DoxyCompactItemize} diff --git a/docs/latex/dir_624fa2a8bce97f0444ac5cca335d4e23_dep.md5 b/docs/latex/dir_624fa2a8bce97f0444ac5cca335d4e23_dep.md5 new file mode 100644 index 0000000..597f466 --- /dev/null +++ b/docs/latex/dir_624fa2a8bce97f0444ac5cca335d4e23_dep.md5 @@ -0,0 +1 @@ +1c8b9302d49050442030c2a1fe004137 \ No newline at end of file diff --git a/docs/latex/dir_624fa2a8bce97f0444ac5cca335d4e23_dep.pdf b/docs/latex/dir_624fa2a8bce97f0444ac5cca335d4e23_dep.pdf new file mode 100644 index 0000000..93673cf Binary files /dev/null and b/docs/latex/dir_624fa2a8bce97f0444ac5cca335d4e23_dep.pdf differ diff --git a/docs/latex/dir_b3b22d2ab7966b65f6b237e3231b41be.tex b/docs/latex/dir_b3b22d2ab7966b65f6b237e3231b41be.tex new file mode 100644 index 0000000..a19fe27 --- /dev/null +++ b/docs/latex/dir_b3b22d2ab7966b65f6b237e3231b41be.tex @@ -0,0 +1,16 @@ +\hypertarget{dir_b3b22d2ab7966b65f6b237e3231b41be}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli Directory Reference} +\label{dir_b3b22d2ab7966b65f6b237e3231b41be}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli Directory Reference@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli Directory Reference}} +\doxysubsection*{Directories} +\begin{DoxyCompactItemize} +\item +directory \mbox{\hyperlink{dir_1648a057408aae8db85b8e3797335623}{docs}} +\item +directory \mbox{\hyperlink{dir_f88c3381c1861b3f7ca1f3d63cf244b5}{penify\+\_\+hook}} +\item +directory \mbox{\hyperlink{dir_063e2d5fe58a131099a7fe4200cca78c}{tests}} +\end{DoxyCompactItemize} +\doxysubsection*{Files} +\begin{DoxyCompactItemize} +\item +file \mbox{\hyperlink{setup_8py}{setup.\+py}} +\end{DoxyCompactItemize} diff --git a/docs/latex/dir_f88c3381c1861b3f7ca1f3d63cf244b5.tex b/docs/latex/dir_f88c3381c1861b3f7ca1f3d63cf244b5.tex new file mode 100644 index 0000000..5dadcb6 --- /dev/null +++ b/docs/latex/dir_f88c3381c1861b3f7ca1f3d63cf244b5.tex @@ -0,0 +1,48 @@ +\hypertarget{dir_f88c3381c1861b3f7ca1f3d63cf244b5}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook Directory Reference} +\label{dir_f88c3381c1861b3f7ca1f3d63cf244b5}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook Directory Reference@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook Directory Reference}} +Directory dependency graph for penify\+\_\+hook\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=294pt]{dir_f88c3381c1861b3f7ca1f3d63cf244b5_dep} +\end{center} +\end{figure} +\doxysubsection*{Directories} +\begin{DoxyCompactItemize} +\item +directory \mbox{\hyperlink{dir_624fa2a8bce97f0444ac5cca335d4e23}{commands}} +\end{DoxyCompactItemize} +\doxysubsection*{Files} +\begin{DoxyCompactItemize} +\item +file \mbox{\hyperlink{penify__hook_2____init_____8py}{\+\_\+\+\_\+init\+\_\+\+\_\+.\+py}} +\item +file \mbox{\hyperlink{api__client_8py}{api\+\_\+client.\+py}} +\item +file \mbox{\hyperlink{base__analyzer_8py}{base\+\_\+analyzer.\+py}} +\item +file \mbox{\hyperlink{commit__analyzer_8py}{commit\+\_\+analyzer.\+py}} +\item +file \mbox{\hyperlink{config__command_8py}{config\+\_\+command.\+py}} +\item +file \mbox{\hyperlink{constants_8py}{constants.\+py}} +\item +file \mbox{\hyperlink{file__analyzer_8py}{file\+\_\+analyzer.\+py}} +\item +file \mbox{\hyperlink{folder__analyzer_8py}{folder\+\_\+analyzer.\+py}} +\item +file \mbox{\hyperlink{git__analyzer_8py}{git\+\_\+analyzer.\+py}} +\item +file \mbox{\hyperlink{jira__client_8py}{jira\+\_\+client.\+py}} +\item +file \mbox{\hyperlink{llm__client_8py}{llm\+\_\+client.\+py}} +\item +file \mbox{\hyperlink{login__command_8py}{login\+\_\+command.\+py}} +\item +file \mbox{\hyperlink{main_8py}{main.\+py}} +\item +file \mbox{\hyperlink{ui__utils_8py}{ui\+\_\+utils.\+py}} +\item +file \mbox{\hyperlink{utils_8py}{utils.\+py}} +\end{DoxyCompactItemize} diff --git a/docs/latex/dir_f88c3381c1861b3f7ca1f3d63cf244b5_dep.md5 b/docs/latex/dir_f88c3381c1861b3f7ca1f3d63cf244b5_dep.md5 new file mode 100644 index 0000000..577134d --- /dev/null +++ b/docs/latex/dir_f88c3381c1861b3f7ca1f3d63cf244b5_dep.md5 @@ -0,0 +1 @@ +81055f3442546e3f091686cb9eef1bc5 \ No newline at end of file diff --git a/docs/latex/dir_f88c3381c1861b3f7ca1f3d63cf244b5_dep.pdf b/docs/latex/dir_f88c3381c1861b3f7ca1f3d63cf244b5_dep.pdf new file mode 100644 index 0000000..d8df7e3 Binary files /dev/null and b/docs/latex/dir_f88c3381c1861b3f7ca1f3d63cf244b5_dep.pdf differ diff --git a/docs/latex/doc__commands_8md.tex b/docs/latex/doc__commands_8md.tex new file mode 100644 index 0000000..455e296 --- /dev/null +++ b/docs/latex/doc__commands_8md.tex @@ -0,0 +1,2 @@ +\hypertarget{doc__commands_8md}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/docs/doc\+\_\+commands.md File Reference} +\label{doc__commands_8md}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/docs/doc\_commands.md@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/docs/doc\_commands.md}} diff --git a/docs/latex/doc__commands_8py.tex b/docs/latex/doc__commands_8py.tex new file mode 100644 index 0000000..a41f1c7 --- /dev/null +++ b/docs/latex/doc__commands_8py.tex @@ -0,0 +1,25 @@ +\hypertarget{doc__commands_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/commands/doc\+\_\+commands.py File Reference} +\label{doc__commands_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commands/doc\_commands.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commands/doc\_commands.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands}{penify\+\_\+hook.\+commands}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1doc__commands}{penify\+\_\+hook.\+commands.\+doc\+\_\+commands}} +\end{DoxyCompactItemize} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1doc__commands_a4daac68bc563432bf25c85dc78081a25}{penify\+\_\+hook.\+commands.\+doc\+\_\+commands.\+generate\+\_\+doc}} (api\+\_\+url, token, location=None) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1doc__commands_acc7f4ead1b11951d885fa5c151c2cbe0}{penify\+\_\+hook.\+commands.\+doc\+\_\+commands.\+setup\+\_\+docgen\+\_\+parser}} (parser) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704}{penify\+\_\+hook.\+commands.\+doc\+\_\+commands.\+handle\+\_\+docgen}} (args) +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1doc__commands_a3e42540047da37565afffeaf106cb948}{penify\+\_\+hook.\+commands.\+doc\+\_\+commands.\+docgen\+\_\+description}} +\end{DoxyCompactItemize} diff --git a/docs/latex/doxygen.sty b/docs/latex/doxygen.sty new file mode 100644 index 0000000..bde67ed --- /dev/null +++ b/docs/latex/doxygen.sty @@ -0,0 +1,596 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} + +% Packages used by this style file +\RequirePackage{alltt} +%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package +\RequirePackage{calc} +\RequirePackage{float} +%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package +\RequirePackage{verbatim} +\RequirePackage[table]{xcolor} +\RequirePackage{longtable_doxygen} +\RequirePackage{tabu_doxygen} +\RequirePackage{fancyvrb} +\RequirePackage{tabularx} +\RequirePackage{multicol} +\RequirePackage{multirow} +\RequirePackage{hanging} +\RequirePackage{ifpdf} +\RequirePackage{adjustbox} +\RequirePackage{amssymb} +\RequirePackage{stackengine} +\RequirePackage{enumitem} +\RequirePackage{alphalph} +\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis +\RequirePackage{enumitem} + +%---------- Internal commands used in this style file ---------------- + +\newcommand{\ensurespace}[1]{% + \begingroup% + \setlength{\dimen@}{#1}% + \vskip\z@\@plus\dimen@% + \penalty -100\vskip\z@\@plus -\dimen@% + \vskip\dimen@% + \penalty 9999% + \vskip -\dimen@% + \vskip\z@skip% hide the previous |\vskip| from |\addvspace| + \endgroup% +} + +\newcommand{\DoxyHorRuler}[1]{% + \setlength{\parskip}{0ex plus 0ex minus 0ex}% + \ifthenelse{#1=0}% + {% + \hrule% + }% + {% + \hrulefilll% + }% +} +\newcommand{\DoxyLabelFont}{} +\newcommand{\entrylabel}[1]{% + {% + \parbox[b]{\labelwidth-4pt}{% + \makebox[0pt][l]{\DoxyLabelFont#1}% + \vspace{1.5\baselineskip}% + }% + }% +} + +\newenvironment{DoxyDesc}[1]{% + \ensurespace{4\baselineskip}% + \begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + %\setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + }% + \item[#1]% +}{% + \end{list}% +} + +\newsavebox{\xrefbox} +\newlength{\xreflength} +\newcommand{\xreflabel}[1]{% + \sbox{\xrefbox}{#1}% + \setlength{\xreflength}{\wd\xrefbox}% + \ifthenelse{\xreflength>\labelwidth}{% + \begin{minipage}{\textwidth}% + \setlength{\parindent}{0pt}% + \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}% + \end{minipage}% + }{% + \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}% + }% +} + +%---------- Commands used by doxygen LaTeX output generator ---------- + +% Used by
 ... 
+\newenvironment{DoxyPre}{% + \small% + \begin{alltt}% +}{% + \end{alltt}% + \normalsize% +} +% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output. +\newlength{\CodeWidthChar} +\newlength{\CodeHeightChar} +\settowidth{\CodeWidthChar}{?} +\settoheight{\CodeHeightChar}{?} +% Necessary for hanging indent +\newlength{\DoxyCodeWidth} + +\newcommand\DoxyCodeLine[1]{\hangpara{\DoxyCodeWidth}{1}{#1}\par} + +\newcommand\NiceSpace{% + \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}% +} + +% Used by @code ... @endcode +\newenvironment{DoxyCode}[1]{% + \par% + \scriptsize% + \normalfont\ttfamily% + \rightskip0pt plus 1fil% + \settowidth{\DoxyCodeWidth}{000000}% + \settowidth{\CodeWidthChar}{?}% + \settoheight{\CodeHeightChar}{?}% + \setlength{\parskip}{0ex plus 0ex minus 0ex}% + \ifthenelse{\equal{#1}{0}} + { + {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces% + } + { + {\lccode`~32 \lowercase{\global\let~}}\obeyspaces% + } + +}{% + \normalfont% + \normalsize% + \settowidth{\CodeWidthChar}{?}% + \settoheight{\CodeHeightChar}{?}% +} + +% Redefining not defined characters, i.e. "Replacement Character" in tex output. +\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{% + \textcolor{white}{\sffamily\bfseries\small ?}}{% + \rotatebox{45}{$\blacksquare$}}}} + +% Used by @example, @include, @includelineno and @dontinclude +\newenvironment{DoxyCodeInclude}[1]{% + \DoxyCode{#1}% +}{% + \endDoxyCode% +} + +% Used by @verbatim ... @endverbatim +\newenvironment{DoxyVerb}{% + \par% + \footnotesize% + \verbatim% +}{% + \endverbatim% + \normalsize% +} + +% Used by @verbinclude +\newenvironment{DoxyVerbInclude}{% + \DoxyVerb% +}{% + \endDoxyVerb% +} + +% Used by numbered lists (using '-#' or
    ...
) +\setlistdepth{12} +\newlist{DoxyEnumerate}{enumerate}{12} +\setlist[DoxyEnumerate,1]{label=\arabic*.} +\setlist[DoxyEnumerate,2]{label=(\enumalphalphcnt*)} +\setlist[DoxyEnumerate,3]{label=\roman*.} +\setlist[DoxyEnumerate,4]{label=\enumAlphAlphcnt*.} +\setlist[DoxyEnumerate,5]{label=\arabic*.} +\setlist[DoxyEnumerate,6]{label=(\enumalphalphcnt*)} +\setlist[DoxyEnumerate,7]{label=\roman*.} +\setlist[DoxyEnumerate,8]{label=\enumAlphAlphcnt*.} +\setlist[DoxyEnumerate,9]{label=\arabic*.} +\setlist[DoxyEnumerate,10]{label=(\enumalphalphcnt*)} +\setlist[DoxyEnumerate,11]{label=\roman*.} +\setlist[DoxyEnumerate,12]{label=\enumAlphAlphcnt*.} + +% Used by bullet lists (using '-', @li, @arg, or ) +\setlistdepth{12} +\newlist{DoxyItemize}{itemize}{12} +\setlist[DoxyItemize]{label=\textperiodcentered} + +\setlist[DoxyItemize,1]{label=\textbullet} +\setlist[DoxyItemize,2]{label=\normalfont\bfseries \textendash} +\setlist[DoxyItemize,3]{label=\textasteriskcentered} +\setlist[DoxyItemize,4]{label=\textperiodcentered} + +% Used by description lists (using
...
) +\newenvironment{DoxyDescription}{% + \description% +}{% + \enddescription% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if caption is specified) +\newenvironment{DoxyImage}{% + \begin{figure}[H]% + \centering% +}{% + \end{figure}% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if no caption is specified) +\newenvironment{DoxyImageNoCaption}{% + \begin{center}% +}{% + \end{center}% +} + +% Used by @image +% (only if inline is specified) +\newenvironment{DoxyInlineImage}{% +}{% +} + +% Used by @attention +\newenvironment{DoxyAttention}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @author and @authors +\newenvironment{DoxyAuthor}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @date +\newenvironment{DoxyDate}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @invariant +\newenvironment{DoxyInvariant}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @note +\newenvironment{DoxyNote}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @post +\newenvironment{DoxyPostcond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @pre +\newenvironment{DoxyPrecond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @copyright +\newenvironment{DoxyCopyright}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @remark +\newenvironment{DoxyRemark}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @return and @returns +\newenvironment{DoxyReturn}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @since +\newenvironment{DoxySince}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @see +\newenvironment{DoxySeeAlso}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @version +\newenvironment{DoxyVersion}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @warning +\newenvironment{DoxyWarning}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @par and @paragraph +\newenvironment{DoxyParagraph}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by parameter lists +\newenvironment{DoxyParams}[2][]{% + \tabulinesep=1mm% + \par% + \ifthenelse{\equal{#1}{}}% + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description + {\ifthenelse{\equal{#1}{1}}% + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc + } + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for fields of simple structs +\newenvironment{DoxyFields}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}% + \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for fields simple class style enums +\newenvironment{DoxyEnumFields}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for parameters within a detailed function description +\newenvironment{DoxyParamCaption}{% + \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% +}{% +} + +% Used by return value lists +\newenvironment{DoxyRetVals}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used by exception lists +\newenvironment{DoxyExceptions}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used by template parameter lists +\newenvironment{DoxyTemplParams}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for member lists +\newenvironment{DoxyCompactItemize}{% + \begin{itemize}% + \setlength{\itemsep}{-3pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \setlength{\partopsep}{0pt}% +}{% + \end{itemize}% +} + +% Used for member descriptions +\newenvironment{DoxyCompactList}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + \setlength{\itemsep}{0pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \renewcommand{\makelabel}{\hfill}% + }% +}{% + \end{list}% +} + +% Used for reference lists (@bug, @deprecated, @todo, etc.) +\newenvironment{DoxyRefList}{% + \begin{list}{}{% + \setlength{\labelwidth}{10pt}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + \renewcommand{\makelabel}{\xreflabel}% + }% +}{% + \end{list}% +} + +% Used by @bug, @deprecated, @todo, etc. +\newenvironment{DoxyRefDesc}[1]{% + \begin{list}{}{% + \renewcommand\makelabel[1]{\textbf{##1}}% + \settowidth\labelwidth{\makelabel{#1}}% + \setlength\leftmargin{\labelwidth+\labelsep}% + }% +}{% + \end{list}% +} + +% Used by parameter lists and simple sections +\newenvironment{Desc} +{\begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + \setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + } +}{% + \end{list}% +} + +% Used by tables +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}% +\newenvironment{TabularC}[1]% +{\tabulinesep=1mm +\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}% +{\end{longtabu*}\par}% + +\newenvironment{TabularNC}[1]% +{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}% +{\end{tabu}\par}% + +% Used for member group headers +\newenvironment{Indent}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + }% + \item[]\ignorespaces% +}{% + \unskip% + \end{list}% +} + +% Used when hyperlinks are turned off +\newcommand{\doxyref}[3]{% + \textbf{#1} (\textnormal{#2}\,\pageref{#3})% +} + +% Used to link to a table when hyperlinks are turned on +\newcommand{\doxytablelink}[2]{% + \ref{#1}% +} + +% Used to link to a table when hyperlinks are turned off +\newcommand{\doxytableref}[3]{% + \ref{#3}% +} + +% Used by @addindex +\newcommand{\lcurly}{\{} +\newcommand{\rcurly}{\}} + +% Colors used for syntax highlighting +\definecolor{comment}{rgb}{0.5,0.0,0.0} +\definecolor{keyword}{rgb}{0.0,0.5,0.0} +\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} +\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} +\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} +\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} +\definecolor{charliteral}{rgb}{0.0,0.5,0.5} +\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} +\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} +\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} +\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} + +% Color used for table heading +\newcommand{\tableheadbgcolor}{lightgray}% + +% Version of hypertarget with correct landing location +\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}} + +% possibility to have sections etc. be within the margins +% unfortunately had to copy part of book.cls and add \raggedright +\makeatletter +\newcommand\doxysection{\@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedright\normalfont\Large\bfseries}} +\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\large\bfseries}} +\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxyparagraph{\@startsection{paragraph}{4}{\z@}% + {3.25ex \@plus1ex \@minus.2ex}% + {-1em}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxysubparagraph{\@startsection{subparagraph}{5}{\parindent}% + {3.25ex \@plus1ex \@minus .2ex}% + {-1em}% + {\raggedright\normalfont\normalsize\bfseries}} +\makeatother +% Define caption that is also suitable in a table +\makeatletter +\def\doxyfigcaption{% +\H@refstepcounter{figure}% +\@dblarg{\@caption{figure}}} +\makeatother + +% Define alpha enumarative names for counters > 26 +\makeatletter +\def\enumalphalphcnt#1{\expandafter\@enumalphalphcnt\csname c@#1\endcsname} +\def\@enumalphalphcnt#1{\alphalph{#1}} +\def\enumAlphAlphcnt#1{\expandafter\@enumAlphAlphcnt\csname c@#1\endcsname} +\def\@enumAlphAlphcnt#1{\AlphAlph{#1}} +\makeatother +\AddEnumerateCounter{\enumalphalphcnt}{\@enumalphalphcnt}{aa} +\AddEnumerateCounter{\enumAlphAlphcnt}{\@enumAlphAlphcnt}{AA} diff --git a/docs/latex/example-workflows_8md.tex b/docs/latex/example-workflows_8md.tex new file mode 100644 index 0000000..14af800 --- /dev/null +++ b/docs/latex/example-workflows_8md.tex @@ -0,0 +1,2 @@ +\hypertarget{example-workflows_8md}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/docs/example-\/workflows.md File Reference} +\label{example-workflows_8md}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/docs/example-\/workflows.md@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/docs/example-\/workflows.md}} diff --git a/docs/latex/file__analyzer_8py.tex b/docs/latex/file__analyzer_8py.tex new file mode 100644 index 0000000..1b93968 --- /dev/null +++ b/docs/latex/file__analyzer_8py.tex @@ -0,0 +1,19 @@ +\hypertarget{file__analyzer_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/file\+\_\+analyzer.py File Reference} +\label{file__analyzer_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/file\_analyzer.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/file\_analyzer.py}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook}{penify\+\_\+hook.\+file\+\_\+analyzer.\+File\+Analyzer\+Gen\+Hook}} +\end{DoxyCompactItemize} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1file__analyzer}{penify\+\_\+hook.\+file\+\_\+analyzer}} +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{namespacepenify__hook_1_1file__analyzer_af419a4965f079d58cac5a5281ddb1828}{penify\+\_\+hook.\+file\+\_\+analyzer.\+logger}} = logging.\+get\+Logger(\+\_\+\+\_\+name\+\_\+\+\_\+) +\end{DoxyCompactItemize} diff --git a/docs/latex/files.tex b/docs/latex/files.tex new file mode 100644 index 0000000..ca98dd1 --- /dev/null +++ b/docs/latex/files.tex @@ -0,0 +1,31 @@ +\doxysection{File List} +Here is a list of all files with brief descriptions\+:\begin{DoxyCompactList} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/\mbox{\hyperlink{setup_8py}{setup.\+py}} }{\pageref{setup_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{penify__hook_2____init_____8py}{\+\_\+\+\_\+init\+\_\+\+\_\+.\+py}} }{\pageref{penify__hook_2____init_____8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{api__client_8py}{api\+\_\+client.\+py}} }{\pageref{api__client_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{base__analyzer_8py}{base\+\_\+analyzer.\+py}} }{\pageref{base__analyzer_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{commit__analyzer_8py}{commit\+\_\+analyzer.\+py}} }{\pageref{commit__analyzer_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{config__command_8py}{config\+\_\+command.\+py}} }{\pageref{config__command_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{constants_8py}{constants.\+py}} }{\pageref{constants_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{file__analyzer_8py}{file\+\_\+analyzer.\+py}} }{\pageref{file__analyzer_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{folder__analyzer_8py}{folder\+\_\+analyzer.\+py}} }{\pageref{folder__analyzer_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{git__analyzer_8py}{git\+\_\+analyzer.\+py}} }{\pageref{git__analyzer_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{jira__client_8py}{jira\+\_\+client.\+py}} }{\pageref{jira__client_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{llm__client_8py}{llm\+\_\+client.\+py}} }{\pageref{llm__client_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{login__command_8py}{login\+\_\+command.\+py}} }{\pageref{login__command_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{main_8py}{main.\+py}} }{\pageref{main_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{ui__utils_8py}{ui\+\_\+utils.\+py}} }{\pageref{ui__utils_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\mbox{\hyperlink{utils_8py}{utils.\+py}} }{\pageref{utils_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/commands/\mbox{\hyperlink{penify__hook_2commands_2____init_____8py}{\+\_\+\+\_\+init\+\_\+\+\_\+.\+py}} }{\pageref{penify__hook_2commands_2____init_____8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/commands/\mbox{\hyperlink{auth__commands_8py}{auth\+\_\+commands.\+py}} }{\pageref{auth__commands_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/commands/\mbox{\hyperlink{commit__commands_8py}{commit\+\_\+commands.\+py}} }{\pageref{commit__commands_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/commands/\mbox{\hyperlink{config__commands_8py}{config\+\_\+commands.\+py}} }{\pageref{config__commands_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/commands/\mbox{\hyperlink{doc__commands_8py}{doc\+\_\+commands.\+py}} }{\pageref{doc__commands_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/commands/\mbox{\hyperlink{hook__commands_8py}{hook\+\_\+commands.\+py}} }{\pageref{hook__commands_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/\mbox{\hyperlink{tests_2____init_____8py}{\+\_\+\+\_\+init\+\_\+\+\_\+.\+py}} }{\pageref{tests_2____init_____8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/\mbox{\hyperlink{conftest_8py}{conftest.\+py}} }{\pageref{conftest_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/\mbox{\hyperlink{test__commit__commands_8py}{test\+\_\+commit\+\_\+commands.\+py}} }{\pageref{test__commit__commands_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/\mbox{\hyperlink{test__config__commands_8py}{test\+\_\+config\+\_\+commands.\+py}} }{\pageref{test__config__commands_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/\mbox{\hyperlink{test__doc__commands_8py}{test\+\_\+doc\+\_\+commands.\+py}} }{\pageref{test__doc__commands_8py}}{} +\item\contentsline{section}{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/\mbox{\hyperlink{test__web__config_8py}{test\+\_\+web\+\_\+config.\+py}} }{\pageref{test__web__config_8py}}{} +\end{DoxyCompactList} diff --git a/docs/latex/folder__analyzer_8py.tex b/docs/latex/folder__analyzer_8py.tex new file mode 100644 index 0000000..bfb3c69 --- /dev/null +++ b/docs/latex/folder__analyzer_8py.tex @@ -0,0 +1,14 @@ +\hypertarget{folder__analyzer_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/folder\+\_\+analyzer.py File Reference} +\label{folder__analyzer_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/folder\_analyzer.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/folder\_analyzer.py}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook}{penify\+\_\+hook.\+folder\+\_\+analyzer.\+Folder\+Analyzer\+Gen\+Hook}} +\end{DoxyCompactItemize} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1folder__analyzer}{penify\+\_\+hook.\+folder\+\_\+analyzer}} +\end{DoxyCompactItemize} diff --git a/docs/latex/git__analyzer_8py.tex b/docs/latex/git__analyzer_8py.tex new file mode 100644 index 0000000..d53ed2b --- /dev/null +++ b/docs/latex/git__analyzer_8py.tex @@ -0,0 +1,19 @@ +\hypertarget{git__analyzer_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/git\+\_\+analyzer.py File Reference} +\label{git__analyzer_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/git\_analyzer.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/git\_analyzer.py}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook}{penify\+\_\+hook.\+git\+\_\+analyzer.\+Git\+Doc\+Gen\+Hook}} +\end{DoxyCompactItemize} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1git__analyzer}{penify\+\_\+hook.\+git\+\_\+analyzer}} +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{namespacepenify__hook_1_1git__analyzer_ac4ce143fdca789a79c66852c37d7363a}{penify\+\_\+hook.\+git\+\_\+analyzer.\+logger}} = logging.\+get\+Logger(\+\_\+\+\_\+name\+\_\+\+\_\+) +\end{DoxyCompactItemize} diff --git a/docs/latex/hierarchy.tex b/docs/latex/hierarchy.tex new file mode 100644 index 0000000..da5b034 --- /dev/null +++ b/docs/latex/hierarchy.tex @@ -0,0 +1,20 @@ +\doxysection{Class Hierarchy} +This inheritance list is sorted roughly, but not completely, alphabetically\+:\begin{DoxyCompactList} +\item \contentsline{section}{penify\+\_\+hook.\+api\+\_\+client.\+APIClient}{\pageref{classpenify__hook_1_1api__client_1_1APIClient}}{} +\item \contentsline{section}{penify\+\_\+hook.\+base\+\_\+analyzer.\+Base\+Analyzer}{\pageref{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer}}{} +\begin{DoxyCompactList} +\item \contentsline{section}{penify\+\_\+hook.\+commit\+\_\+analyzer.\+Commit\+Doc\+Gen\+Hook}{\pageref{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook}}{} +\item \contentsline{section}{penify\+\_\+hook.\+file\+\_\+analyzer.\+File\+Analyzer\+Gen\+Hook}{\pageref{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook}}{} +\item \contentsline{section}{penify\+\_\+hook.\+folder\+\_\+analyzer.\+Folder\+Analyzer\+Gen\+Hook}{\pageref{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook}}{} +\item \contentsline{section}{penify\+\_\+hook.\+git\+\_\+analyzer.\+Git\+Doc\+Gen\+Hook}{\pageref{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook}}{} +\end{DoxyCompactList} +\item \contentsline{section}{Exception}{\pageref{classException}}{} +\begin{DoxyCompactList} +\item \contentsline{section}{penify\+\_\+hook.\+utils.\+Git\+Repo\+Not\+Found\+Error}{\pageref{classpenify__hook_1_1utils_1_1GitRepoNotFoundError}}{} +\end{DoxyCompactList} +\item \contentsline{section}{penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client}{\pageref{classpenify__hook_1_1jira__client_1_1JiraClient}}{} +\item \contentsline{section}{penify\+\_\+hook.\+llm\+\_\+client.\+LLMClient}{\pageref{classpenify__hook_1_1llm__client_1_1LLMClient}}{} +\item \contentsline{section}{tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands}{\pageref{classtests_1_1test__commit__commands_1_1TestCommitCommands}}{} +\item \contentsline{section}{tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands}{\pageref{classtests_1_1test__config__commands_1_1TestConfigCommands}}{} +\item \contentsline{section}{tests.\+test\+\_\+web\+\_\+config.\+Test\+Web\+Config}{\pageref{classtests_1_1test__web__config_1_1TestWebConfig}}{} +\end{DoxyCompactList} diff --git a/docs/latex/hook__commands_8py.tex b/docs/latex/hook__commands_8py.tex new file mode 100644 index 0000000..4794846 --- /dev/null +++ b/docs/latex/hook__commands_8py.tex @@ -0,0 +1,25 @@ +\hypertarget{hook__commands_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/commands/hook\+\_\+commands.py File Reference} +\label{hook__commands_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commands/hook\_commands.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commands/hook\_commands.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands}{penify\+\_\+hook.\+commands}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1hook__commands}{penify\+\_\+hook.\+commands.\+hook\+\_\+commands}} +\end{DoxyCompactItemize} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1hook__commands_adff8f5d3bf1c3795974a391ee95b72b2}{penify\+\_\+hook.\+commands.\+hook\+\_\+commands.\+install\+\_\+git\+\_\+hook}} (location, token) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1hook__commands_a81543eb5fa835fd1237f24e8bce6201d}{penify\+\_\+hook.\+commands.\+hook\+\_\+commands.\+uninstall\+\_\+git\+\_\+hook}} (location) +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1hook__commands_ae82fd46e5a9219da1478b0476b8214b1}{penify\+\_\+hook.\+commands.\+hook\+\_\+commands.\+HOOK\+\_\+\+FILENAME}} = \char`\"{}post-\/commit\char`\"{} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1hook__commands_a6a45aad71c8d32ce11a6dff8cee8bee7}{penify\+\_\+hook.\+commands.\+hook\+\_\+commands.\+HOOK\+\_\+\+TEMPLATE}} +\end{DoxyCompactItemize} diff --git a/docs/latex/jira__client_8py.tex b/docs/latex/jira__client_8py.tex new file mode 100644 index 0000000..f26bf5b --- /dev/null +++ b/docs/latex/jira__client_8py.tex @@ -0,0 +1,19 @@ +\hypertarget{jira__client_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/jira\+\_\+client.py File Reference} +\label{jira__client_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/jira\_client.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/jira\_client.py}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient}{penify\+\_\+hook.\+jira\+\_\+client.\+Jira\+Client}} +\end{DoxyCompactItemize} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1jira__client}{penify\+\_\+hook.\+jira\+\_\+client}} +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +bool \mbox{\hyperlink{namespacepenify__hook_1_1jira__client_a5593ea3415081eca1eea92e4c1ad1aa2}{penify\+\_\+hook.\+jira\+\_\+client.\+JIRA\+\_\+\+AVAILABLE}} = True +\end{DoxyCompactItemize} diff --git a/docs/latex/llm__client_8py.tex b/docs/latex/llm__client_8py.tex new file mode 100644 index 0000000..990979d --- /dev/null +++ b/docs/latex/llm__client_8py.tex @@ -0,0 +1,14 @@ +\hypertarget{llm__client_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/llm\+\_\+client.py File Reference} +\label{llm__client_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/llm\_client.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/llm\_client.py}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1llm__client_1_1LLMClient}{penify\+\_\+hook.\+llm\+\_\+client.\+LLMClient}} +\end{DoxyCompactItemize} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1llm__client}{penify\+\_\+hook.\+llm\+\_\+client}} +\end{DoxyCompactItemize} diff --git a/docs/latex/login__command_8py.tex b/docs/latex/login__command_8py.tex new file mode 100644 index 0000000..a7c9bec --- /dev/null +++ b/docs/latex/login__command_8py.tex @@ -0,0 +1,16 @@ +\hypertarget{login__command_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/login\+\_\+command.py File Reference} +\label{login__command_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/login\_command.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/login\_command.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1login__command}{penify\+\_\+hook.\+login\+\_\+command}} +\end{DoxyCompactItemize} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1login__command_aae63db4c484797bead34b7d874020c6a}{penify\+\_\+hook.\+login\+\_\+command.\+setup\+\_\+login\+\_\+parser}} (parser) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd}{penify\+\_\+hook.\+login\+\_\+command.\+handle\+\_\+login}} (args) +\end{DoxyCompactItemize} diff --git a/docs/latex/longtable_doxygen.sty b/docs/latex/longtable_doxygen.sty new file mode 100644 index 0000000..a0eb314 --- /dev/null +++ b/docs/latex/longtable_doxygen.sty @@ -0,0 +1,448 @@ +%% +%% This is file `longtable.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% longtable.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% The source is maintained by the LaTeX Project team and bug +%% reports for it can be opened at http://latex-project.org/bugs.html +%% (but please observe conditions on bug reports sent to that address!) +%% +%% Copyright 1993-2016 +%% The LaTeX3 Project and any individual authors listed elsewhere +%% in this file. +%% +%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'. +%% -------------------------------------------------------------------------- +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This file may only be distributed together with a copy of the LaTeX +%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle' +%% without such generated files. +%% +%% The list of all files belonging to the LaTeX `Tools Bundle' is +%% given in the file `manifest.txt'. +%% +%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\ProvidesPackage{longtable_doxygen} + [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen] +\def\LT@err{\PackageError{longtable}} +\def\LT@warn{\PackageWarning{longtable}} +\def\LT@final@warn{% + \AtEndDocument{% + \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}% + \global\let\LT@final@warn\relax} +\DeclareOption{errorshow}{% + \def\LT@warn{\PackageInfo{longtable}}} +\DeclareOption{pausing}{% + \def\LT@warn#1{% + \LT@err{#1}{This is not really an error}}} +\DeclareOption{set}{} +\DeclareOption{final}{} +\ProcessOptions +\newskip\LTleft \LTleft=\fill +\newskip\LTright \LTright=\fill +\newskip\LTpre \LTpre=\bigskipamount +\newskip\LTpost \LTpost=\bigskipamount +\newcount\LTchunksize \LTchunksize=20 +\let\c@LTchunksize\LTchunksize +\newdimen\LTcapwidth \LTcapwidth=4in +\newbox\LT@head +\newbox\LT@firsthead +\newbox\LT@foot +\newbox\LT@lastfoot +\newcount\LT@cols +\newcount\LT@rows +\newcounter{LT@tables} +\newcounter{LT@chunks}[LT@tables] +\ifx\c@table\undefined + \newcounter{table} + \def\fnum@table{\tablename~\thetable} +\fi +\ifx\tablename\undefined + \def\tablename{Table} +\fi +\newtoks\LT@p@ftn +\mathchardef\LT@end@pen=30000 +\def\longtable{% + \par + \ifx\multicols\@undefined + \else + \ifnum\col@number>\@ne + \@twocolumntrue + \fi + \fi + \if@twocolumn + \LT@err{longtable not in 1-column mode}\@ehc + \fi + \begingroup + \@ifnextchar[\LT@array{\LT@array[x]}} +\def\LT@array[#1]#2{% + \refstepcounter{table}\stepcounter{LT@tables}% + \if l#1% + \LTleft\z@ \LTright\fill + \else\if r#1% + \LTleft\fill \LTright\z@ + \else\if c#1% + \LTleft\fill \LTright\fill + \fi\fi\fi + \let\LT@mcol\multicolumn + \let\LT@@tabarray\@tabarray + \let\LT@@hl\hline + \def\@tabarray{% + \let\hline\LT@@hl + \LT@@tabarray}% + \let\\\LT@tabularcr\let\tabularnewline\\% + \def\newpage{\noalign{\break}}% + \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}% + \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}% + \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption + \@tempdima\ht\strutbox + \let\@endpbox\LT@endpbox + \ifx\extrarowheight\@undefined + \let\@acol\@tabacol + \let\@classz\@tabclassz \let\@classiv\@tabclassiv + \def\@startpbox{\vtop\LT@startpbox}% + \let\@@startpbox\@startpbox + \let\@@endpbox\@endpbox + \let\LT@LL@FM@cr\@tabularcr + \else + \advance\@tempdima\extrarowheight + \col@sep\tabcolsep + \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr + \fi + \setbox\@arstrutbox\hbox{\vrule + \@height \arraystretch \@tempdima + \@depth \arraystretch \dp \strutbox + \@width \z@}% + \let\@sharp##\let\protect\relax + \begingroup + \@mkpream{#2}% + \xdef\LT@bchunk{% + \global\advance\c@LT@chunks\@ne + \global\LT@rows\z@\setbox\z@\vbox\bgroup + \LT@setprevdepth + \tabskip\LTleft \noexpand\halign to\hsize\bgroup + \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}% + \endgroup + \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols + \LT@make@row + \m@th\let\par\@empty + \everycr{}\lineskip\z@\baselineskip\z@ + \LT@bchunk} +\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}} +\def\LT@start{% + \let\LT@start\endgraf + \endgraf\penalty\z@\vskip\LTpre + \dimen@\pagetotal + \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi + \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi + \advance\dimen@ \ht\LT@foot + \dimen@ii\vfuzz + \vfuzz\maxdimen + \setbox\tw@\copy\z@ + \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox + \setbox\tw@\vbox{\unvbox\tw@}% + \vfuzz\dimen@ii + \advance\dimen@ \ht + \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi + \advance\dimen@\dp + \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi + \advance\dimen@ -\pagegoal + \ifdim \dimen@>\z@\vfil\break\fi + \global\@colroom\@colht + \ifvoid\LT@foot\else + \advance\vsize-\ht\LT@foot + \global\advance\@colroom-\ht\LT@foot + \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@ + \maxdepth\z@ + \fi + \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak + \output{\LT@output}} +\def\endlongtable{% + \crcr + \noalign{% + \let\LT@entry\LT@entry@chop + \xdef\LT@save@row{\LT@save@row}}% + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \if@filesw + {\let\LT@entry\LT@entry@write\immediate\write\@auxout{% + \gdef\expandafter\noexpand + \csname LT@\romannumeral\c@LT@tables\endcsname + {\LT@save@row}}}% + \fi + \ifx\LT@save@row\LT@@save@row + \else + \LT@warn{Column \@width s have changed\MessageBreak + in table \thetable}% + \LT@final@warn + \fi + \endgraf\penalty -\LT@end@pen + \endgroup + \global\@mparbottom\z@ + \pagegoal\vsize + \endgraf\penalty\z@\addvspace\LTpost + \ifvoid\footins\else\insert\footins{}\fi} +\def\LT@nofcols#1&{% + \futurelet\@let@token\LT@n@fcols} +\def\LT@n@fcols{% + \advance\LT@cols\@ne + \ifx\@let@token\LT@nofcols + \expandafter\@gobble + \else + \expandafter\LT@nofcols + \fi} +\def\LT@tabularcr{% + \relax\iffalse{\fi\ifnum0=`}\fi + \@ifstar + {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr + \LT@t@bularcr}% + {\LT@t@bularcr}} +\let\LT@crcr\crcr +\let\LT@setprevdepth\relax +\def\LT@t@bularcr{% + \global\advance\LT@rows\@ne + \ifnum\LT@rows=\LTchunksize + \gdef\LT@setprevdepth{% + \prevdepth\z@\global + \global\let\LT@setprevdepth\relax}% + \expandafter\LT@xtabularcr + \else + \ifnum0=`{}\fi + \expandafter\LT@LL@FM@cr + \fi} +\def\LT@xtabularcr{% + \@ifnextchar[\LT@argtabularcr\LT@ntabularcr} +\def\LT@ntabularcr{% + \ifnum0=`{}\fi + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \LT@bchunk} +\def\LT@argtabularcr[#1]{% + \ifnum0=`{}\fi + \ifdim #1>\z@ + \unskip\@xargarraycr{#1}% + \else + \@yargarraycr{#1}% + \fi + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \LT@bchunk} +\def\LT@echunk{% + \crcr\LT@save@row\cr\egroup + \global\setbox\@ne\lastbox + \unskip + \egroup} +\def\LT@entry#1#2{% + \ifhmode\@firstofone{&}\fi\omit + \ifnum#1=\c@LT@chunks + \else + \kern#2\relax + \fi} +\def\LT@entry@chop#1#2{% + \noexpand\LT@entry + {\ifnum#1>\c@LT@chunks + 1}{0pt% + \else + #1}{#2% + \fi}} +\def\LT@entry@write{% + \noexpand\LT@entry^^J% + \@spaces} +\def\LT@kill{% + \LT@echunk + \LT@get@widths + \expandafter\LT@rebox\LT@bchunk} +\def\LT@rebox#1\bgroup{% + #1\bgroup + \unvbox\z@ + \unskip + \setbox\z@\lastbox} +\def\LT@blank@row{% + \xdef\LT@save@row{\expandafter\LT@build@blank + \romannumeral\number\LT@cols 001 }} +\def\LT@build@blank#1{% + \if#1m% + \noexpand\LT@entry{1}{0pt}% + \expandafter\LT@build@blank + \fi} +\def\LT@make@row{% + \global\expandafter\let\expandafter\LT@save@row + \csname LT@\romannumeral\c@LT@tables\endcsname + \ifx\LT@save@row\relax + \LT@blank@row + \else + {\let\LT@entry\or + \if!% + \ifcase\expandafter\expandafter\expandafter\LT@cols + \expandafter\@gobble\LT@save@row + \or + \else + \relax + \fi + !% + \else + \aftergroup\LT@blank@row + \fi}% + \fi} +\let\setlongtables\relax +\def\LT@get@widths{% + \setbox\tw@\hbox{% + \unhbox\@ne + \let\LT@old@row\LT@save@row + \global\let\LT@save@row\@empty + \count@\LT@cols + \loop + \unskip + \setbox\tw@\lastbox + \ifhbox\tw@ + \LT@def@row + \advance\count@\m@ne + \repeat}% + \ifx\LT@@save@row\@undefined + \let\LT@@save@row\LT@save@row + \fi} +\def\LT@def@row{% + \let\LT@entry\or + \edef\@tempa{% + \ifcase\expandafter\count@\LT@old@row + \else + {1}{0pt}% + \fi}% + \let\LT@entry\relax + \xdef\LT@save@row{% + \LT@entry + \expandafter\LT@max@sel\@tempa + \LT@save@row}} +\def\LT@max@sel#1#2{% + {\ifdim#2=\wd\tw@ + #1% + \else + \number\c@LT@chunks + \fi}% + {\the\wd\tw@}} +\def\LT@hline{% + \noalign{\ifnum0=`}\fi + \penalty\@M + \futurelet\@let@token\LT@@hline} +\def\LT@@hline{% + \ifx\@let@token\hline + \global\let\@gtempa\@gobble + \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}% + \else + \global\let\@gtempa\@empty + \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}% + \fi + \ifnum0=`{\fi}% + \multispan\LT@cols + \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr + \noalign{\LT@sep}% + \multispan\LT@cols + \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr + \noalign{\penalty\@M}% + \@gtempa} +\def\LT@caption{% + \noalign\bgroup + \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n} +\def\LT@c@ption#1[#2]#3{% + \LT@makecaption#1\fnum@table{#3}% + \def\@tempa{#2}% + \ifx\@tempa\@empty\else + {\let\\\space + \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}% + \fi} +\def\LT@capti@n{% + \@ifstar + {\egroup\LT@c@ption\@gobble[]}% + {\egroup\@xdblarg{\LT@c@ption\@firstofone}}} +\def\LT@makecaption#1#2#3{% + \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{% + \sbox\@tempboxa{#1{#2: }#3}% + \ifdim\wd\@tempboxa>\hsize + #1{#2: }#3% + \else + \hbox to\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \endgraf\vskip\baselineskip}% + \hss}}} +\def\LT@output{% + \ifnum\outputpenalty <-\@Mi + \ifnum\outputpenalty > -\LT@end@pen + \LT@err{floats and marginpars not allowed in a longtable}\@ehc + \else + \setbox\z@\vbox{\unvbox\@cclv}% + \ifdim \ht\LT@lastfoot>\ht\LT@foot + \dimen@\pagegoal + \advance\dimen@-\ht\LT@lastfoot + \ifdim\dimen@<\ht\z@ + \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}% + \@makecol + \@outputpage + \setbox\z@\vbox{\box\LT@head}% + \fi + \fi + \global\@colroom\@colht + \global\vsize\@colht + \vbox + {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}% + \fi + \else + \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}% + \@makecol + \@outputpage + \global\vsize\@colroom + \copy\LT@head\nobreak + \fi} +\def\LT@end@hd@ft#1{% + \LT@echunk + \ifx\LT@start\endgraf + \LT@err + {Longtable head or foot not at start of table}% + {Increase LTchunksize}% + \fi + \setbox#1\box\z@ + \LT@get@widths + \LT@bchunk} +\def\endfirsthead{\LT@end@hd@ft\LT@firsthead} +\def\endhead{\LT@end@hd@ft\LT@head} +\def\endfoot{\LT@end@hd@ft\LT@foot} +\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot} +\def\LT@startpbox#1{% + \bgroup + \let\@footnotetext\LT@p@ftntext + \setlength\hsize{#1}% + \@arrayparboxrestore + \vrule \@height \ht\@arstrutbox \@width \z@} +\def\LT@endpbox{% + \@finalstrut\@arstrutbox + \egroup + \the\LT@p@ftn + \global\LT@p@ftn{}% + \hfil} +\def\LT@p@ftntext#1{% + \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}% + \global\LT@p@ftn\expandafter{\@tempa{#1}}}% + +\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen} +\endinput +%% +%% End of file `longtable.sty'. diff --git a/docs/latex/main_8py.tex b/docs/latex/main_8py.tex new file mode 100644 index 0000000..7f75354 --- /dev/null +++ b/docs/latex/main_8py.tex @@ -0,0 +1,14 @@ +\hypertarget{main_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/main.py File Reference} +\label{main_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/main.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/main.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1main}{penify\+\_\+hook.\+main}} +\end{DoxyCompactItemize} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f}{penify\+\_\+hook.\+main.\+main}} () +\end{DoxyCompactItemize} diff --git a/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README.tex b/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README.tex new file mode 100644 index 0000000..b92b239 --- /dev/null +++ b/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README.tex @@ -0,0 +1,151 @@ + + +A CLI tool to generate smart commit messages, code documentation, and more.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md157}{}\doxysection{Features}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md157} + +\begin{DoxyItemize} +\item Automatically generate documentation for your code +\item Support for multiple programming languages +\item Git hook integration for automatic documentation on commits +\item Folder and file analysis +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md158}{}\doxysection{Installation}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md158} +Install from Py\+PI\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{pip install penify} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md159}{}\doxysection{Usage}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md159} +Penify CLI provides several subcommands for different functionalities, organized into basic commands (no login required) and advanced commands (login required).\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md160}{}\doxysection{Basic Commands (\+No login required)}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md160} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md161}{}\doxysubsection{Commit}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md161} +Generate smart commit messages using local LLM\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify commit [-\/m "{}Optional message"{}] [-\/e] [-\/d]} + +\end{DoxyCode} + + +Options\+: +\begin{DoxyItemize} +\item {\ttfamily -\/m, -\/-\/message}\+: Optional custom commit message +\item {\ttfamily -\/e, -\/-\/terminal}\+: Open editor to modify commit message before committing +\item {\ttfamily -\/d, -\/-\/description}\+: Generate commit message with both title and description (without this flag, only title is generated) +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md162}{}\doxysubsection{Config}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md162} +Configure local LLM and JIRA settings\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Configure LLM settings} +\DoxyCodeLine{penify config llm -\/-\/model MODEL\_NAME [-\/-\/api-\/base API\_URL] [-\/-\/api-\/key API\_KEY]} +\DoxyCodeLine{} +\DoxyCodeLine{\# Configure LLM settings through web interface} +\DoxyCodeLine{penify config llm-\/web} +\DoxyCodeLine{} +\DoxyCodeLine{\# Configure JIRA settings} +\DoxyCodeLine{penify config jira -\/-\/url JIRA\_URL -\/-\/username USERNAME -\/-\/api-\/token TOKEN [-\/-\/verify]} +\DoxyCodeLine{} +\DoxyCodeLine{\# Configure JIRA settings through web interface} +\DoxyCodeLine{penify config jira-\/web} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md163}{}\doxysection{Advanced Commands (\+Login required)}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md163} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md164}{}\doxysubsection{Login}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md164} +To log in and obtain an API token\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify login} + +\end{DoxyCode} + + +This command will open a browser window for authentication. After successful login, the API key will be saved locally for future use.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md165}{}\doxysubsection{Documentation Generation}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md165} +Generate documentation for Git diff, files or folders\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Generate documentation for latest Git commit diff} +\DoxyCodeLine{penify docgen} +\DoxyCodeLine{} +\DoxyCodeLine{\# Generate documentation for specific file or folder} +\DoxyCodeLine{penify docgen -\/l /path/to/file/or/folder} + +\end{DoxyCode} + + +Options\+: +\begin{DoxyItemize} +\item {\ttfamily -\/l, -\/-\/location}\+: Path to specific file or folder for documentation generation (defaults to current directory) +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md166}{}\doxysubsection{Git Hook Management}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md166} +Install or uninstall Git post-\/commit hooks\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Install Git hook} +\DoxyCodeLine{penify docgen install-\/hook [-\/l /path/to/repo]} +\DoxyCodeLine{} +\DoxyCodeLine{\# Uninstall Git hook} +\DoxyCodeLine{penify docgen uninstall-\/hook [-\/l /path/to/repo]} + +\end{DoxyCode} + + +Options\+: +\begin{DoxyItemize} +\item {\ttfamily -\/l, -\/-\/location}\+: Path to the Git repository (defaults to current directory) +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md167}{}\doxysection{Authentication}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md167} +Penify CLI uses an API token for authentication with advanced features. + +If no token is available and you try to access an advanced feature, you\textquotesingle{}ll be prompted to log in.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md168}{}\doxysection{Local LLM Configuration}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md168} +For commit message generation, Penify can use a local LLM. Configure it using\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify config llm -\/-\/model MODEL\_NAME -\/-\/api-\/base API\_URL -\/-\/api-\/key API\_KEY} + +\end{DoxyCode} + + +Common configurations\+: +\begin{DoxyItemize} +\item Open\+AI\+: {\ttfamily -\/-\/model gpt-\/3.\+5-\/turbo -\/-\/api-\/base \href{https://api.openai.com/v1}{\texttt{ https\+://api.\+openai.\+com/v1}} -\/-\/api-\/key YOUR\+\_\+\+KEY} +\item Anthropic\+: {\ttfamily -\/-\/model claude-\/2 -\/-\/api-\/base \href{https://api.anthropic.com}{\texttt{ https\+://api.\+anthropic.\+com}} -\/-\/api-\/key YOUR\+\_\+\+KEY} +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md169}{}\doxysection{JIRA Integration}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md169} +Configure JIRA integration to enhance commit messages with issue details\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify config jira -\/-\/url https://your-\/domain.atlassian.net -\/-\/username your-\/email@example.com -\/-\/api-\/token YOUR\_API\_TOKEN} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md170}{}\doxysection{Development}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md170} +To set up the development environment\+: + + +\begin{DoxyEnumerate} +\item Clone the repository\+: +\begin{DoxyCode}{0} +\DoxyCodeLine{git clone https://github.com/SingularityX-\/ai/penify-\/cli.git} + +\end{DoxyCode} + +\item Install the package in editable mode\+: +\begin{DoxyCode}{0} +\DoxyCodeLine{pip install -\/e .} + +\end{DoxyCode} + +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md171}{}\doxysubsection{Running Tests}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md171} + +\begin{DoxyCode}{0} +\DoxyCodeLine{pytest} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md172}{}\doxysection{License}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md172} +This project is licensed under the MIT License.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md173}{}\doxysection{Author}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md173} +Suman Saurabh (\href{mailto:ss.sumansaurabh92@gmail.com}{\texttt{ ss.\+sumansaurabh92@gmail.\+com}})\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md174}{}\doxysection{Contributing}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md174} +Contributions are welcome! Please feel free to submit a Pull Request.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md175}{}\doxysection{Issues}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md175} +If you encounter any problems or have suggestions, please file an issue on the \href{https://github.com/SingularityX-ai/penify/issues}{\texttt{ Git\+Hub repository}}.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md176}{}\doxysection{Support}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README_autotoc_md176} +For automated API Documentation, Architecture Documentation, Code Documentation, Pull Request Documentation, or if you need a demo, please join our \href{https://discord.gg/wqrc8JeV}{\texttt{ Discord support channel}}. \ No newline at end of file diff --git a/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands.tex b/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands.tex new file mode 100644 index 0000000..e73bbcb --- /dev/null +++ b/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands.tex @@ -0,0 +1,162 @@ +The {\ttfamily commit} command allows you to generate smart, AI-\/powered commit messages for your Git changes. This document explains all available options and combinations.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md1}{}\doxysection{Basic Usage}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md1} + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify commit} + +\end{DoxyCode} + + +By default, this command\+: +\begin{DoxyItemize} +\item Analyzes your staged Git changes +\item Generates a concise commit title only +\item Uses local LLM if configured, or falls back to Penify API +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md2}{}\doxysection{Command Options}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md2} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md3}{}\doxysubsection{$<$tt$>$-\/m, -\/-\/message$<$/tt$>$}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md3} +Provide context for the commit message generation\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify commit -\/m "{}Fix login flow"{}} + +\end{DoxyCode} + + +This hint helps the AI understand your intention and improves the quality of the generated message.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md4}{}\doxysubsection{$<$tt$>$-\/e, -\/-\/terminal$<$/tt$>$}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md4} +Open an editor to review and edit the generated commit message before committing\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify commit -\/e} + +\end{DoxyCode} + + +This opens your default Git editor with the generated message for review.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md5}{}\doxysubsection{$<$tt$>$-\/d, -\/-\/description$<$/tt$>$}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md5} +Generate a detailed commit message with both title and description\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify commit -\/d} + +\end{DoxyCode} + + +Without this flag, only the commit title is generated.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md6}{}\doxysection{Option Combinations}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md6} +You can combine these options for different workflows\+:\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md7}{}\doxysubsection{Generate Title Only with Context}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md7} + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify commit -\/m "{}Update login UI"{}} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md8}{}\doxysubsection{Generate Title and Description with Context}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md8} + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify commit -\/m "{}Update login UI"{} -\/d} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md9}{}\doxysubsection{Generate and Edit Full Commit Message}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md9} + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify commit -\/d -\/e} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md10}{}\doxysubsection{Generate, Edit, and Provide Context}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md10} + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify commit -\/m "{}Refactor authentication"{} -\/d -\/e} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md11}{}\doxysection{LLM and JIRA Integration}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md11} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md12}{}\doxysubsection{Using Local LLM}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md12} +If you\textquotesingle{}ve configured a local LLM using {\ttfamily penify config llm}, the commit command will automatically use it for message generation. + +Benefits\+: +\begin{DoxyItemize} +\item Privacy\+: your code changes don\textquotesingle{}t leave your machine +\item Speed\+: no network latency +\item Works offline +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md13}{}\doxysubsection{JIRA Enhancement}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md13} +If you\textquotesingle{}ve configured JIRA integration using {\ttfamily penify config jira}, the commit command will\+: + + +\begin{DoxyEnumerate} +\item Detect JIRA issue references in your changes +\item Fetch issue details from your JIRA instance +\item Include issue information in the commit message +\item Format the commit message according to JIRA\textquotesingle{}s smart commit format +\end{DoxyEnumerate} + +Example output\+: +\begin{DoxyCode}{0} +\DoxyCodeLine{PROJ-\/123: Fix authentication bug in login flow} +\DoxyCodeLine{} +\DoxyCodeLine{-\/ Updated OAuth token validation} +\DoxyCodeLine{-\/ Fixed session timeout handling} +\DoxyCodeLine{-\/ Added unit tests for edge cases} +\DoxyCodeLine{} +\DoxyCodeLine{[PROJ-\/123]} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md14}{}\doxysection{Configuration Requirements}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md14} +For the {\ttfamily commit} command to work\+: + + +\begin{DoxyEnumerate} +\item You must have configured either\+: +\begin{DoxyItemize} +\item Local LLM via {\ttfamily penify config llm}, OR +\item Logged in via {\ttfamily penify login} +\end{DoxyItemize} +\item For JIRA enhancement (optional)\+: +\begin{DoxyItemize} +\item Configure JIRA via {\ttfamily penify config jira} +\end{DoxyItemize} +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md15}{}\doxysection{Examples}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md15} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md16}{}\doxysubsection{Basic Commit with Default Settings}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md16} + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Stage your changes} +\DoxyCodeLine{git add .} +\DoxyCodeLine{} +\DoxyCodeLine{\# Generate commit message} +\DoxyCodeLine{penify commit} +\DoxyCodeLine{} +\DoxyCodeLine{\# Commit with the generated message} +\DoxyCodeLine{git commit -\/m "{}Generated message here"{}} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md17}{}\doxysubsection{Full Workflow with All Features}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md17} + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Stage your changes} +\DoxyCodeLine{git add .} +\DoxyCodeLine{} +\DoxyCodeLine{\# Generate detailed commit message with JIRA integration, } +\DoxyCodeLine{\# provide context, and open editor for review} +\DoxyCodeLine{penify commit -\/m "{}Fix login issue"{} -\/d -\/e} +\DoxyCodeLine{} +\DoxyCodeLine{\# The commit is automatically completed after you save and exit the editor} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md18}{}\doxysection{Troubleshooting}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md18} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md19}{}\doxysubsection{Common Issues}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands_autotoc_md19} + +\begin{DoxyEnumerate} +\item $\ast$$\ast$\char`\"{}\+No LLM model or API token provided\char`\"{}$\ast$$\ast$ +\begin{DoxyItemize} +\item Run {\ttfamily penify config llm} to configure a local LLM, or +\item Run {\ttfamily penify login} to authenticate with Penify +\end{DoxyItemize} +\item $\ast$$\ast$\char`\"{}\+Failed to connect to JIRA\char`\"{}$\ast$$\ast$ +\begin{DoxyItemize} +\item Check your JIRA configuration with {\ttfamily cat $\sim$/.penify} +\item Verify your network connection +\item Ensure your JIRA credentials are valid +\end{DoxyItemize} +\item $\ast$$\ast$\char`\"{}\+Error initializing LLM client\char`\"{}$\ast$$\ast$ +\begin{DoxyItemize} +\item Verify your LLM configuration settings +\item Ensure the LLM API is accessible +\end{DoxyItemize} +\end{DoxyEnumerate} \ No newline at end of file diff --git a/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands.tex b/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands.tex new file mode 100644 index 0000000..eef6cd1 --- /dev/null +++ b/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands.tex @@ -0,0 +1,167 @@ +The {\ttfamily config} command allows you to set up and manage configuration settings for Penify CLI. This document explains all available configuration options and how to use them.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md21}{}\doxysection{Configuration Overview}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md21} +Penify CLI stores configuration in a JSON file at {\ttfamily $\sim$/.penify/config.\+json}. The configuration includes\+: + + +\begin{DoxyItemize} +\item LLM (Large Language Model) settings for local commit message generation +\item JIRA integration settings for enhanced commit messages +\item API tokens and other credentials +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md22}{}\doxysection{Basic Usage}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md22} + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Configure LLM settings} +\DoxyCodeLine{penify config llm} +\DoxyCodeLine{} +\DoxyCodeLine{\# Configure JIRA integration} +\DoxyCodeLine{penify config jira} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md23}{}\doxysection{LLM Configuration}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md23} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md24}{}\doxysubsection{Web Interface}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md24} +Running {\ttfamily penify config llm} opens a web interface in your browser where you can configure\+: + + +\begin{DoxyEnumerate} +\item {\bfseries{Model}}\+: The LLM model to use (e.\+g., {\ttfamily gpt-\/3.\+5-\/turbo}) +\item {\bfseries{API Base URL}}\+: The endpoint URL for your LLM API (e.\+g., {\ttfamily \href{https://api.openai.com/v1}{\texttt{ https\+://api.\+openai.\+com/v1}}}) +\item {\bfseries{API Key}}\+: Your authentication key for the LLM API +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md25}{}\doxysubsection{Supported LLMs}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md25} +Penify CLI supports various LLM providers\+:\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md26}{}\doxysubsubsection{Open\+AI}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md26} + +\begin{DoxyItemize} +\item Model\+: {\ttfamily gpt-\/3.\+5-\/turbo} or {\ttfamily gpt-\/4} +\item API Base\+: {\ttfamily \href{https://api.openai.com/v1}{\texttt{ https\+://api.\+openai.\+com/v1}}} +\item API Key\+: Your Open\+AI API key +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md27}{}\doxysubsubsection{Anthropic}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md27} + +\begin{DoxyItemize} +\item Model\+: {\ttfamily claude-\/instant-\/1} or {\ttfamily claude-\/2} +\item API Base\+: {\ttfamily \href{https://api.anthropic.com/v1}{\texttt{ https\+://api.\+anthropic.\+com/v1}}} +\item API Key\+: Your Anthropic API key +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md28}{}\doxysubsubsection{Ollama (\+Local)}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md28} + +\begin{DoxyItemize} +\item Model\+: {\ttfamily llama2} or any model you have installed +\item API Base\+: {\ttfamily \href{http://localhost:11434}{\texttt{ http\+://localhost\+:11434}}} +\item API Key\+: (leave blank) +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md29}{}\doxysubsubsection{Azure Open\+AI}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md29} + +\begin{DoxyItemize} +\item Model\+: Your deployed model name +\item API Base\+: Your Azure endpoint +\item API Key\+: Your Azure API key +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md30}{}\doxysubsection{Configuration File Structure}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md30} +After configuration, your {\ttfamily $\sim$/.penify/config.\+json} will contain\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\{} +\DoxyCodeLine{ "{}llm"{}: \{} +\DoxyCodeLine{ "{}model"{}: "{}gpt-\/3.5-\/turbo"{},} +\DoxyCodeLine{ "{}api\_base"{}: "{}https://api.openai.com/v1"{},} +\DoxyCodeLine{ "{}api\_key"{}: "{}sk-\/..."{}} +\DoxyCodeLine{ \}} +\DoxyCodeLine{\}} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md31}{}\doxysection{JIRA Configuration}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md31} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md32}{}\doxysubsection{Web Interface}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md32} +Running {\ttfamily penify config jira} opens a web interface where you can configure\+: + + +\begin{DoxyEnumerate} +\item {\bfseries{JIRA URL}}\+: Your JIRA instance URL (e.\+g., {\ttfamily \href{https://yourcompany.atlassian.net}{\texttt{ https\+://yourcompany.\+atlassian.\+net}}}) +\item {\bfseries{Username}}\+: Your JIRA username (typically your email) +\item {\bfseries{API Token}}\+: Your JIRA API token +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md33}{}\doxysubsection{Creating a JIRA API Token}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md33} + +\begin{DoxyEnumerate} +\item Log in to \href{https://id.atlassian.com/manage-profile/security/api-tokens}{\texttt{ https\+://id.\+atlassian.\+com/manage-\/profile/security/api-\/tokens}} +\item Click \char`\"{}\+Create API token\char`\"{} +\item Give it a name (e.\+g., \char`\"{}\+Penify CLI\char`\"{}) +\item Copy the generated token and paste it into the configuration +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md34}{}\doxysubsection{Configuration File Structure}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md34} +After configuration, your {\ttfamily $\sim$/.penify/config.\+json} will contain\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\{} +\DoxyCodeLine{ "{}jira"{}: \{} +\DoxyCodeLine{ "{}url"{}: "{}https://yourcompany.atlassian.net"{},} +\DoxyCodeLine{ "{}username"{}: "{}your.email@example.com"{},} +\DoxyCodeLine{ "{}api\_token"{}: "{}your-\/jira-\/api-\/token"{}} +\DoxyCodeLine{ \}} +\DoxyCodeLine{\}} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md35}{}\doxysection{Configuration Locations}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md35} +Penify CLI looks for configuration in multiple locations\+: + + +\begin{DoxyEnumerate} +\item Project-\/specific\+: {\ttfamily .penify/config.\+json} in the Git repository root +\item User-\/specific\+: {\ttfamily $\sim$/.penify/config.\+json} in your home directory +\end{DoxyEnumerate} + +The project-\/specific configuration takes precedence if both exist.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md36}{}\doxysection{Environment Variables}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md36} +You can override configuration settings using environment variables\+: + + +\begin{DoxyItemize} +\item {\ttfamily PENIFY\+\_\+\+API\+\_\+\+TOKEN}\+: Override the stored API token +\item {\ttfamily PENIFY\+\_\+\+LLM\+\_\+\+MODEL}\+: Override the configured LLM model +\item {\ttfamily PENIFY\+\_\+\+LLM\+\_\+\+API\+\_\+\+BASE}\+: Override the configured LLM API base URL +\item {\ttfamily PENIFY\+\_\+\+LLM\+\_\+\+API\+\_\+\+KEY}\+: Override the configured LLM API key +\item {\ttfamily PENIFY\+\_\+\+JIRA\+\_\+\+URL}\+: Override the configured JIRA URL +\item {\ttfamily PENIFY\+\_\+\+JIRA\+\_\+\+USER}\+: Override the configured JIRA username +\item {\ttfamily PENIFY\+\_\+\+JIRA\+\_\+\+TOKEN}\+: Override the configured JIRA API token +\end{DoxyItemize} + +Example\+: +\begin{DoxyCode}{0} +\DoxyCodeLine{export PENIFY\_LLM\_MODEL="{}gpt-\/4"{}} +\DoxyCodeLine{penify commit} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md37}{}\doxysection{Command-\/\+Line Configuration}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md37} +For advanced users or scripting, you can directly edit the configuration file\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# View current configuration} +\DoxyCodeLine{cat \string~/.penify/config.json} +\DoxyCodeLine{} +\DoxyCodeLine{\# Edit configuration with your preferred editor} +\DoxyCodeLine{nano \string~/.penify/config.json} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md38}{}\doxysection{Sharing Configuration}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md38} +You can share configuration between machines by copying the {\ttfamily .penify/config.\+json} file. However, be cautious with API keys and credentials. + +For team settings, consider\+: +\begin{DoxyEnumerate} +\item Using a project-\/specific {\ttfamily .penify/config.\+json} with shared settings +\item Excluding API keys from shared configuration +\item Using environment variables for sensitive credentials +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md39}{}\doxysection{Troubleshooting}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md39} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md40}{}\doxysubsection{Common Issues}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands_autotoc_md40} + +\begin{DoxyEnumerate} +\item $\ast$$\ast$\char`\"{}\+Error reading configuration file\char`\"{}$\ast$$\ast$ +\begin{DoxyItemize} +\item Check if the file exists\+: {\ttfamily ls -\/la $\sim$/.penify} +\item Ensure it contains valid JSON\+: {\ttfamily cat $\sim$/.penify/config.\+json} +\end{DoxyItemize} +\item $\ast$$\ast$\char`\"{}\+Failed to connect to LLM API\char`\"{}$\ast$$\ast$ +\begin{DoxyItemize} +\item Verify API base URL and API key +\item Check network connectivity to the API endpoint +\item Ensure your account has access to the specified model +\end{DoxyItemize} +\item $\ast$$\ast$\char`\"{}\+Failed to connect to JIRA\char`\"{}$\ast$$\ast$ +\begin{DoxyItemize} +\item Check JIRA URL format (should include {\ttfamily \href{https://}{\texttt{ https\+://}}}) +\item Verify username and API token +\item Ensure your JIRA account has API access permissions +\end{DoxyItemize} +\end{DoxyEnumerate} \ No newline at end of file diff --git a/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage.tex b/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage.tex new file mode 100644 index 0000000..812b7a8 --- /dev/null +++ b/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage.tex @@ -0,0 +1,155 @@ +This document provides in-\/depth information about all features and capabilities of the Penify CLI tool.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md42}{}\doxysection{Table of Contents}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md42} + +\begin{DoxyItemize} +\item Penify CLI -\/ Detailed Usage Guide +\begin{DoxyItemize} +\item Table of Contents +\item Authentication +\begin{DoxyItemize} +\item Login Process +\item API Token Storage +\item Token Precedence +\end{DoxyItemize} +\item Command Overview +\item Commit Message Generation +\item Code Documentation Generation +\begin{DoxyItemize} +\item Use Cases +\item Authentication Requirement +\end{DoxyItemize} +\item Configuration Settings +\item Git Hooks +\begin{DoxyItemize} +\item Post-\/\+Commit Hook +\item Custom Hook Location +\end{DoxyItemize} +\item Advanced Use Cases +\begin{DoxyItemize} +\item CI/\+CD Integration +\item Remote Repository Documentation +\end{DoxyItemize} +\item Troubleshooting +\begin{DoxyItemize} +\item Common Issues +\item Logs +\item Support +\end{DoxyItemize} +\end{DoxyItemize} +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md43}{}\doxysection{Authentication}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md43} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md44}{}\doxysubsection{Login Process}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md44} +When you run {\ttfamily penify login}, the tool\+: + + +\begin{DoxyEnumerate} +\item Opens your default web browser +\item Redirects you to Penify\textquotesingle{}s login page +\item Captures the authentication token after successful login +\item Saves the token in {\ttfamily $\sim$/.penify} file +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md45}{}\doxysubsection{API Token Storage}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md45} +API tokens are stored in your home directory in the {\ttfamily .penify} file. This JSON file contains\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\{} +\DoxyCodeLine{ "{}api\_keys"{}: "{}your-\/api-\/token"{},} +\DoxyCodeLine{ "{}llm"{}: \{ "{}model"{}: "{}..."{}, "{}api\_base"{}: "{}..."{}, "{}api\_key"{}: "{}..."{} \},} +\DoxyCodeLine{ "{}jira"{}: \{ "{}url"{}: "{}..."{}, "{}username"{}: "{}..."{}, "{}api\_token"{}: "{}..."{} \}} +\DoxyCodeLine{\}} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md46}{}\doxysubsection{Token Precedence}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md46} + +\begin{DoxyEnumerate} +\item Environment variable {\ttfamily PENIFY\+\_\+\+API\+\_\+\+TOKEN} (highest priority) +\item Token in {\ttfamily $\sim$/.penify} file +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md47}{}\doxysection{Command Overview}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md47} + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify} +\DoxyCodeLine{├── commit Generate smart commit messages} +\DoxyCodeLine{├── config Configure local LLM and JIRA} +\DoxyCodeLine{│ ├── llm Configure local LLM settings} +\DoxyCodeLine{│ └── jira Configure JIRA integration} +\DoxyCodeLine{├── login Log in to Penify account} +\DoxyCodeLine{└── docgen Generate code documentation} +\DoxyCodeLine{ ├── install-\/hook Install Git post-\/commit hook} +\DoxyCodeLine{ └── uninstall-\/hook Remove Git post-\/commit hook} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md48}{}\doxysection{Commit Message Generation}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md48} +The {\ttfamily commit} command analyzes your staged changes and generates meaningful commit messages. It can\+: + + +\begin{DoxyItemize} +\item Use a local LLM if configured +\item Enhance messages with JIRA issue details +\item Provide both title and description +\end{DoxyItemize} + +For specific options and examples, see \mbox{\hyperlink{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands}{docs/commit-\/commands.md}}.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md49}{}\doxysection{Code Documentation Generation}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md49} +The {\ttfamily docgen} command generates documentation for your code\+:\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md50}{}\doxysubsection{Use Cases}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md50} + +\begin{DoxyEnumerate} +\item {\bfseries{Current Git Diff}}\+: Default behavior, documents only changed files +\item {\bfseries{Specific File}}\+: Pass a file path with {\ttfamily -\/l path/to/file.\+py} +\item {\bfseries{Entire Folder}}\+: Pass a folder path with {\ttfamily -\/l path/to/folder} +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md51}{}\doxysubsection{Authentication Requirement}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md51} +This feature requires authentication with a Penify account. Run {\ttfamily penify login} before using documentation features.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md52}{}\doxysection{Configuration Settings}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md52} +Configure local settings using the {\ttfamily config} command\+: + + +\begin{DoxyItemize} +\item {\bfseries{LLM Settings}}\+: Configure a local LLM for commit message generation +\item {\bfseries{JIRA Settings}}\+: Set up JIRA integration for enhanced commit messages +\end{DoxyItemize} + +For detailed configuration options, see \mbox{\hyperlink{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands}{docs/config-\/commands.md}}.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md53}{}\doxysection{Git Hooks}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md53} +Penify can install Git hooks to automate documentation generation\+:\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md54}{}\doxysubsection{Post-\/\+Commit Hook}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md54} + +\begin{DoxyItemize} +\item {\bfseries{Install}}\+: {\ttfamily penify docgen install-\/hook} +\item {\bfseries{What it does}}\+: Automatically generates documentation for changed files after each commit +\item {\bfseries{Uninstall}}\+: {\ttfamily penify docgen uninstall-\/hook} +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md55}{}\doxysubsection{Custom Hook Location}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md55} +You can specify a custom location for Git hooks\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify docgen install-\/hook -\/l /path/to/git/repo} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md56}{}\doxysection{Advanced Use Cases}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md56} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md57}{}\doxysubsection{CI/\+CD Integration}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md57} +For CI/\+CD pipelines\+: + + +\begin{DoxyEnumerate} +\item Set {\ttfamily PENIFY\+\_\+\+API\+\_\+\+TOKEN} as an environment variable +\item Run commands without requiring interactive login +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md58}{}\doxysubsection{Remote Repository Documentation}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md58} +Generate documentation for an entire repository\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{git clone https://github.com/user/repo} +\DoxyCodeLine{cd repo} +\DoxyCodeLine{penify docgen -\/l .} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md59}{}\doxysection{Troubleshooting}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md59} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md60}{}\doxysubsection{Common Issues}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md60} + +\begin{DoxyEnumerate} +\item {\bfseries{API Key Errors}}\+: Ensure you\textquotesingle{}ve run {\ttfamily penify login} or set {\ttfamily PENIFY\+\_\+\+API\+\_\+\+TOKEN} +\item {\bfseries{LLM Configuration}}\+: Check your LLM settings with {\ttfamily cat $\sim$/.penify} +\item {\bfseries{JIRA Integration}}\+: Verify JIRA credentials in your configuration +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md61}{}\doxysubsection{Logs}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md61} +For more detailed logs, you can set the environment variable\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{export PENIFY\_DEBUG=1} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md62}{}\doxysubsection{Support}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage_autotoc_md62} +For additional help, visit \href{https://docs.penify.dev/}{\texttt{ https\+://docs.\+penify.\+dev/}} or contact \href{mailto:support@penify.dev}{\texttt{ support@penify.\+dev}} \ No newline at end of file diff --git a/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands.tex b/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands.tex new file mode 100644 index 0000000..58a1286 --- /dev/null +++ b/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands.tex @@ -0,0 +1,327 @@ +This document provides a detailed guide to all permutations and combinations of the {\ttfamily docgen} command, including extensive information about Git hook commands for automating documentation generation.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md64}{}\doxysection{Table of Contents}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md64} + +\begin{DoxyItemize} +\item Basic Usage +\item Command Options +\item Option Combinations +\item Git Hook Commands +\begin{DoxyItemize} +\item Hook Installation +\item Hook Customization +\item Hook Uninstallation +\end{DoxyItemize} +\item Advanced Use Cases +\item Troubleshooting +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md65}{}\doxysection{Basic Usage}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md65} + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify docgen} + +\end{DoxyCode} + + +By default, this command\+: +\begin{DoxyItemize} +\item Analyzes the current Git diff (changes since last commit) +\item Generates documentation for changed files only +\item Requires authentication via {\ttfamily penify login} +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md66}{}\doxysection{Command Options}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md66} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md67}{}\doxysubsection{$<$tt$>$-\/l, -\/-\/location$<$/tt$>$}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md67} +Specify a target for documentation generation\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Generate documentation for a specific file} +\DoxyCodeLine{penify docgen -\/l path/to/file.py} +\DoxyCodeLine{} +\DoxyCodeLine{\# Generate documentation for a specific folder} +\DoxyCodeLine{penify docgen -\/l path/to/folder} + +\end{DoxyCode} + + +Without this flag, Penify analyzes only Git-\/tracked modified files.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md68}{}\doxysubsection{Subcommands}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md68} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md69}{}\doxysubsubsection{$<$tt$>$install-\/hook$<$/tt$>$}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md69} +Install a Git post-\/commit hook to automatically generate documentation\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify docgen install-\/hook} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md70}{}\doxysubsubsection{$<$tt$>$uninstall-\/hook$<$/tt$>$}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md70} +Remove the Git post-\/commit hook\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify docgen uninstall-\/hook} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md71}{}\doxysection{Option Combinations}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md71} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md72}{}\doxysubsection{Generate Documentation for Current Git Diff}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md72} + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Basic usage -\/ current Git diff} +\DoxyCodeLine{penify docgen} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md73}{}\doxysubsection{Generate Documentation for a Specific File}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md73} + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Single file documentation} +\DoxyCodeLine{penify docgen -\/l src/main.py} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md74}{}\doxysubsection{Generate Documentation for a Folder}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md74} + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Folder documentation} +\DoxyCodeLine{penify docgen -\/l src/models/} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md75}{}\doxysubsection{Install Hook in Current Repository}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md75} + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Install hook in current Git repository} +\DoxyCodeLine{penify docgen install-\/hook} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md76}{}\doxysubsection{Install Hook in Specific Repository}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md76} + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Install hook in a specific Git repository} +\DoxyCodeLine{penify docgen install-\/hook -\/l /path/to/repo} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md77}{}\doxysubsection{Uninstall Hook from Current Repository}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md77} + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Uninstall hook from current Git repository} +\DoxyCodeLine{penify docgen uninstall-\/hook} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md78}{}\doxysubsection{Uninstall Hook from Specific Repository}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md78} + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Uninstall hook from a specific Git repository} +\DoxyCodeLine{penify docgen uninstall-\/hook -\/l /path/to/repo} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md79}{}\doxysection{Git Hook Commands}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md79} +Penify provides Git hook commands to automate documentation generation as part of your Git workflow.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md80}{}\doxysubsection{Hook Installation}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md80} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md81}{}\doxysubsubsection{How Hooks Work}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md81} +When you install a Git hook with {\ttfamily penify docgen install-\/hook}, Penify\+: + + +\begin{DoxyEnumerate} +\item Creates a post-\/commit hook script in the {\ttfamily .git/hooks} directory +\item Makes the script executable +\item Configures the hook to run {\ttfamily penify docgen} after each commit +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md82}{}\doxysubsubsection{Hook Script Content}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md82} +The generated post-\/commit hook contains\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\#!/bin/sh} +\DoxyCodeLine{\# This is a post-\/commit hook generated by penify.} +\DoxyCodeLine{\# Automatically generates documentation for changed files after each commit.} +\DoxyCodeLine{} +\DoxyCodeLine{penify docgen -\/gf /path/to/git/repository -\/t your\_api\_token} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md83}{}\doxysubsubsection{Installation Location}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md83} +By default, hooks are installed in the current Git repository. You can specify a different location\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify docgen install-\/hook -\/l /path/to/repo} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md84}{}\doxysubsubsection{Installation Requirements}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md84} +To install hooks, you need\+: +\begin{DoxyItemize} +\item A valid Penify API token (login first with {\ttfamily penify login}) +\item Write permissions to the {\ttfamily .git/hooks} directory +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md85}{}\doxysubsubsection{Verifying Installation}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md85} +After installation, you can verify that the hook is installed\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{cat .git/hooks/post-\/commit} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md86}{}\doxysubsection{Hook Customization}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md86} +You can customize the post-\/commit hook after installation\+:\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md87}{}\doxysubsubsection{Modifying Hook Behavior}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md87} + +\begin{DoxyEnumerate} +\item Edit the {\ttfamily .git/hooks/post-\/commit} file +\item Add additional options to the {\ttfamily penify docgen} command +\item Add other commands to run after commit +\end{DoxyEnumerate} + +Example of a customized hook\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\#!/bin/sh} +\DoxyCodeLine{\# This is a post-\/commit hook generated by penify.} +\DoxyCodeLine{\# Automatically generates documentation for changed files after each commit.} +\DoxyCodeLine{} +\DoxyCodeLine{\# Generate documentation} +\DoxyCodeLine{penify docgen -\/gf /path/to/git/repository -\/t your\_api\_token} +\DoxyCodeLine{} +\DoxyCodeLine{\# Additional custom commands} +\DoxyCodeLine{echo "{}Documentation generation complete!"{}} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md88}{}\doxysubsubsection{Advanced Hook Scenarios}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md88} +{\bfseries{Conditional Documentation Generation}}\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\#!/bin/sh} +\DoxyCodeLine{\# Only generate documentation for commits to the main branch} +\DoxyCodeLine{BRANCH=\$(git rev-\/parse -\/-\/abbrev-\/ref HEAD)} +\DoxyCodeLine{if [ "{}\$BRANCH"{} = "{}main"{} ]; then} +\DoxyCodeLine{ penify docgen -\/gf /path/to/git/repository -\/t your\_api\_token} +\DoxyCodeLine{fi} + +\end{DoxyCode} + + +{\bfseries{Documenting Specific Files/\+Folders}}\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\#!/bin/sh} +\DoxyCodeLine{\# Only document Python files in the src directory} +\DoxyCodeLine{penify docgen -\/l src/ -\/gf /path/to/git/repository -\/t your\_api\_token} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md89}{}\doxysubsection{Hook Uninstallation}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md89} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md90}{}\doxysubsubsection{Standard Uninstallation}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md90} +To remove a hook from the current repository\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify docgen uninstall-\/hook} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md91}{}\doxysubsubsection{Specific Repository Uninstallation}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md91} +To remove a hook from a specific repository\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify docgen uninstall-\/hook -\/l /path/to/repo} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md92}{}\doxysubsubsection{Manual Hook Removal}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md92} +If needed, you can manually remove the hook\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{rm .git/hooks/post-\/commit} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md93}{}\doxysubsubsection{Verifying Uninstallation}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md93} +Check that the hook was successfully removed\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{ls -\/la .git/hooks/post-\/commit \# Should return "{}No such file or directory"{}} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md94}{}\doxysection{Advanced Use Cases}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md94} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md95}{}\doxysubsection{Continuous Integration}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md95} +Run documentation generation in CI pipelines\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# In your CI script} +\DoxyCodeLine{export PENIFY\_API\_TOKEN=your\_api\_token} +\DoxyCodeLine{penify docgen -\/l src/} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md96}{}\doxysubsection{Batch Documentation}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md96} +Generate documentation for multiple repositories\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Bash script for batch documentation} +\DoxyCodeLine{for repo in repo1 repo2 repo3; do} +\DoxyCodeLine{ cd /path/to/\$repo} +\DoxyCodeLine{ penify docgen -\/l .} +\DoxyCodeLine{done} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md97}{}\doxysubsection{Custom Git Hook Integration}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md97} +Integrate with other Git hooks\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# In .git/hooks/pre-\/push} +\DoxyCodeLine{penify docgen -\/l src/} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md98}{}\doxysubsection{Documenting Release Tags}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md98} +Generate documentation when creating a release tag\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Document everything when creating a tag} +\DoxyCodeLine{git tag -\/a v1.0.0} +\DoxyCodeLine{penify docgen -\/l . \# Document entire codebase} +\DoxyCodeLine{git commit -\/-\/amend -\/m "{}Release v1.0.0 with updated documentation"{}} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md99}{}\doxysection{Troubleshooting}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md99} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md100}{}\doxysubsection{Common Issues}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md100} + +\begin{DoxyEnumerate} +\item $\ast$$\ast$\char`\"{}\+Authentication required\char`\"{}$\ast$$\ast$ +\begin{DoxyItemize} +\item Run {\ttfamily penify login} before using documentation features +\item Check your API token with {\ttfamily cat $\sim$/.penify} +\end{DoxyItemize} +\item $\ast$$\ast$\char`\"{}\+Permission denied when installing hook\char`\"{}$\ast$$\ast$ +\begin{DoxyItemize} +\item Check Git repository permissions +\item Try running with sudo (if appropriate for your environment) +\item Ensure the {\ttfamily .git/hooks} directory exists +\end{DoxyItemize} +\item $\ast$$\ast$\char`\"{}\+Hook installed but not running\char`\"{}$\ast$$\ast$ +\begin{DoxyItemize} +\item Check if the hook is executable\+: {\ttfamily ls -\/la .git/hooks/post-\/commit} +\item Make it executable if needed\+: {\ttfamily chmod +x .git/hooks/post-\/commit} +\item Check for syntax errors in the hook script +\end{DoxyItemize} +\item $\ast$$\ast$\char`\"{}\+File or directory not found\char`\"{}$\ast$$\ast$ +\begin{DoxyItemize} +\item Verify the path provided to the {\ttfamily -\/l} option +\item Ensure you\textquotesingle{}re running the command from the correct directory +\end{DoxyItemize} +\item $\ast$$\ast$\char`\"{}\+Hook uninstallation failed\char`\"{}$\ast$$\ast$ +\begin{DoxyItemize} +\item Check permissions on the {\ttfamily .git/hooks} directory +\item Try manual removal\+: {\ttfamily rm .git/hooks/post-\/commit} +\end{DoxyItemize} +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md101}{}\doxysubsection{Debugging}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md101} +For detailed output when running documentation commands\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{export PENIFY\_DEBUG=1} +\DoxyCodeLine{penify docgen -\/l src/} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md102}{}\doxysubsection{Getting Help}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands_autotoc_md102} +For command-\/specific help\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify docgen -\/-\/help} +\DoxyCodeLine{penify docgen install-\/hook -\/-\/help} +\DoxyCodeLine{penify docgen uninstall-\/hook -\/-\/help} + +\end{DoxyCode} + \ No newline at end of file diff --git a/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows.tex b/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows.tex new file mode 100644 index 0000000..ac2efc9 --- /dev/null +++ b/docs/latex/md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows.tex @@ -0,0 +1,155 @@ +This document demonstrates how to use Penify CLI in real-\/world development workflows to improve your productivity.\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md104}{}\doxysection{Workflow 1\+: Efficient Git Commits with AI}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md104} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md105}{}\doxysubsection{Setup}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md105} +First, configure your local LLM for offline operation\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify config llm} + +\end{DoxyCode} + + +Configure your JIRA integration for enhanced commit messages\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify config jira} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md106}{}\doxysubsection{Daily Workflow}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md106} + +\begin{DoxyEnumerate} +\item Make your code changes as usual +\item When ready to commit, use Penify to generate a smart commit message\+: +\end{DoxyEnumerate} + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify commit} + +\end{DoxyCode} + + + +\begin{DoxyEnumerate} +\item Review and confirm the generated commit message +\item Git commit and push as usual +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md107}{}\doxysubsection{Benefits}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md107} + +\begin{DoxyItemize} +\item Consistent and descriptive commit messages +\item Automatic inclusion of relevant JIRA ticket information +\item Time saved from writing detailed commit messages +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md108}{}\doxysection{Workflow 2\+: Documentation Generation Pipeline}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md108} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md109}{}\doxysubsection{Setup}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md109} +Login to Penify to access advanced documentation features\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify login} + +\end{DoxyCode} + + +Install the Git hook for automatic documentation generation\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify docgen install-\/hook} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md110}{}\doxysubsection{Daily Workflow}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md110} + +\begin{DoxyEnumerate} +\item Make your code changes as usual +\item Commit your changes +\item Documentation is automatically generated for changed files +\item Review the generated documentation +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md111}{}\doxysubsection{Manual Documentation}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md111} +For specific files or folders\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify docgen -\/l src/components/authentication} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md112}{}\doxysubsection{Benefits}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md112} + +\begin{DoxyItemize} +\item Always up-\/to-\/date documentation +\item Consistent documentation style +\item Time saved from writing detailed documentation +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md113}{}\doxysection{Workflow 3\+: Code Review Enhancement}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md113} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md114}{}\doxysubsection{Setup}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md114} +Ensure you\textquotesingle{}re logged into Penify\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify login} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md115}{}\doxysubsection{Workflow}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md115} + +\begin{DoxyEnumerate} +\item Before submitting a PR, generate documentation for changed files\+: +\end{DoxyEnumerate} + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify docgen} + +\end{DoxyCode} + + + +\begin{DoxyEnumerate} +\item Include the generated documentation in your PR +\item Reviewers can better understand your changes with the AI-\/generated explanations +\end{DoxyEnumerate}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md116}{}\doxysubsection{Benefits}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md116} + +\begin{DoxyItemize} +\item Improved PR quality +\item Faster code reviews +\item Better team understanding of code changes +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md117}{}\doxysection{Workflow 4\+: Onboarding New Team Members}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md117} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md118}{}\doxysubsection{For Team Leads}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md118} +Generate comprehensive documentation for the entire codebase\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify docgen -\/l .} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md119}{}\doxysubsection{For New Team Members}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md119} +Generate focused documentation for components you\textquotesingle{}re working on\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{penify docgen -\/l src/components/my-\/feature} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md120}{}\doxysubsection{Benefits}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md120} + +\begin{DoxyItemize} +\item Faster onboarding +\item Better understanding of code structure +\item Reduced questions to senior team members +\end{DoxyItemize}\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md121}{}\doxysection{Workflow 5\+: Legacy Code Understanding}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md121} +When working with unfamiliar legacy code\+: + + +\begin{DoxyCode}{0} +\DoxyCodeLine{\# Document a specific complex file} +\DoxyCodeLine{penify docgen -\/l src/legacy/complex\_module.py} +\DoxyCodeLine{} +\DoxyCodeLine{\# Document an entire legacy component} +\DoxyCodeLine{penify docgen -\/l src/legacy/old\_component} + +\end{DoxyCode} +\hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md122}{}\doxysubsection{Benefits}\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows_autotoc_md122} + +\begin{DoxyItemize} +\item Quickly understand complex legacy systems +\item Reduce time spent deciphering undocumented code +\item Make safer changes to legacy systems +\end{DoxyItemize} \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook.tex b/docs/latex/namespacepenify__hook.tex new file mode 100644 index 0000000..74b001c --- /dev/null +++ b/docs/latex/namespacepenify__hook.tex @@ -0,0 +1,35 @@ +\hypertarget{namespacepenify__hook}{}\doxysection{penify\+\_\+hook Namespace Reference} +\label{namespacepenify__hook}\index{penify\_hook@{penify\_hook}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1api__client}{api\+\_\+client}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1base__analyzer}{base\+\_\+analyzer}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands}{commands}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commit__analyzer}{commit\+\_\+analyzer}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1config__command}{config\+\_\+command}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1constants}{constants}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1file__analyzer}{file\+\_\+analyzer}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1folder__analyzer}{folder\+\_\+analyzer}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1git__analyzer}{git\+\_\+analyzer}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1jira__client}{jira\+\_\+client}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1llm__client}{llm\+\_\+client}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1login__command}{login\+\_\+command}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1main}{main}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils}{ui\+\_\+utils}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1utils}{utils}} +\end{DoxyCompactItemize} diff --git a/docs/latex/namespacepenify__hook_1_1api__client.tex b/docs/latex/namespacepenify__hook_1_1api__client.tex new file mode 100644 index 0000000..de870ae --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1api__client.tex @@ -0,0 +1,7 @@ +\hypertarget{namespacepenify__hook_1_1api__client}{}\doxysection{penify\+\_\+hook.\+api\+\_\+client Namespace Reference} +\label{namespacepenify__hook_1_1api__client}\index{penify\_hook.api\_client@{penify\_hook.api\_client}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1api__client_1_1APIClient}{APIClient}} +\end{DoxyCompactItemize} diff --git a/docs/latex/namespacepenify__hook_1_1base__analyzer.tex b/docs/latex/namespacepenify__hook_1_1base__analyzer.tex new file mode 100644 index 0000000..f5427b8 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1base__analyzer.tex @@ -0,0 +1,7 @@ +\hypertarget{namespacepenify__hook_1_1base__analyzer}{}\doxysection{penify\+\_\+hook.\+base\+\_\+analyzer Namespace Reference} +\label{namespacepenify__hook_1_1base__analyzer}\index{penify\_hook.base\_analyzer@{penify\_hook.base\_analyzer}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer}{Base\+Analyzer}} +\end{DoxyCompactItemize} diff --git a/docs/latex/namespacepenify__hook_1_1commands.tex b/docs/latex/namespacepenify__hook_1_1commands.tex new file mode 100644 index 0000000..6cdba2d --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands.tex @@ -0,0 +1,15 @@ +\hypertarget{namespacepenify__hook_1_1commands}{}\doxysection{penify\+\_\+hook.\+commands Namespace Reference} +\label{namespacepenify__hook_1_1commands}\index{penify\_hook.commands@{penify\_hook.commands}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1auth__commands}{auth\+\_\+commands}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1commit__commands}{commit\+\_\+commands}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands}{config\+\_\+commands}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1doc__commands}{doc\+\_\+commands}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1hook__commands}{hook\+\_\+commands}} +\end{DoxyCompactItemize} diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands.tex b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands.tex new file mode 100644 index 0000000..32993a6 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands.tex @@ -0,0 +1,76 @@ +\hypertarget{namespacepenify__hook_1_1commands_1_1auth__commands}{}\doxysection{penify\+\_\+hook.\+commands.\+auth\+\_\+commands Namespace Reference} +\label{namespacepenify__hook_1_1commands_1_1auth__commands}\index{penify\_hook.commands.auth\_commands@{penify\_hook.commands.auth\_commands}} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24}{save\+\_\+credentials}} (api\+\_\+key) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655}{login}} (api\+\_\+url, dashboard\+\_\+url) +\end{DoxyCompactItemize} + + +\doxysubsection{Function Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655}\label{namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655}} +\index{penify\_hook.commands.auth\_commands@{penify\_hook.commands.auth\_commands}!login@{login}} +\index{login@{login}!penify\_hook.commands.auth\_commands@{penify\_hook.commands.auth\_commands}} +\doxysubsubsection{\texorpdfstring{login()}{login()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commands.\+auth\+\_\+commands.\+login (\begin{DoxyParamCaption}\item[{}]{api\+\_\+url, }\item[{}]{dashboard\+\_\+url }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Open the login page in a web browser and capture the token via redirect.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24}\label{namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24}} +\index{penify\_hook.commands.auth\_commands@{penify\_hook.commands.auth\_commands}!save\_credentials@{save\_credentials}} +\index{save\_credentials@{save\_credentials}!penify\_hook.commands.auth\_commands@{penify\_hook.commands.auth\_commands}} +\doxysubsubsection{\texorpdfstring{save\_credentials()}{save\_credentials()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commands.\+auth\+\_\+commands.\+save\+\_\+credentials (\begin{DoxyParamCaption}\item[{}]{api\+\_\+key }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Save the API key in a priority-based manner. + +This function attempts to save the API key in two locations, based on priority: +1. In a `.env` file located in the root of the Git repository if one is found. +2. In a global `.penify` file located in the user's home directory as a +fallback. The function first tries to locate the Git repository using +`recursive_search_git_folder`. If a Git repository is found, it reads the +existing `.env` file (if present), updates or adds the API key under the key +`PENIFY_API_TOKEN`, and writes the updated content back. If any error occurs +during this process, it falls back to saving the credentials in the global +`.penify` file. The function handles exceptions and prints appropriate error +messages. + +Args: + api_key (str): The API key to save. + +Returns: + bool: True if the API key is saved successfully, False otherwise. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24_icgraph} +\end{center} +\end{figure} diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655_cgraph.md5 new file mode 100644 index 0000000..d68cbe9 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655_cgraph.md5 @@ -0,0 +1 @@ +1790a20abec8f6d16a5be410097ca80b \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655_cgraph.pdf new file mode 100644 index 0000000..878f393 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655_icgraph.md5 new file mode 100644 index 0000000..e2a4d6c --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655_icgraph.md5 @@ -0,0 +1 @@ +6cb89be59e6f34a2a19f5fd537dbaee9 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655_icgraph.pdf new file mode 100644 index 0000000..e2eaf2c Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_a78f375c58bb6f69f98675e6a9ac84655_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24_cgraph.md5 new file mode 100644 index 0000000..38c7b14 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24_cgraph.md5 @@ -0,0 +1 @@ +8a70311750ed60c6ae87e9278c57fa69 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24_cgraph.pdf new file mode 100644 index 0000000..17bab0b Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24_icgraph.md5 new file mode 100644 index 0000000..027c8db --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24_icgraph.md5 @@ -0,0 +1 @@ +45b92f5d2e6efa07f2987352c7b7475c \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24_icgraph.pdf new file mode 100644 index 0000000..23d5bb6 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1auth__commands_aa3956ca1749d4218ea1dc6e5b6218b24_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands.tex b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands.tex new file mode 100644 index 0000000..0c86bc6 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands.tex @@ -0,0 +1,95 @@ +\hypertarget{namespacepenify__hook_1_1commands_1_1commit__commands}{}\doxysection{penify\+\_\+hook.\+commands.\+commit\+\_\+commands Namespace Reference} +\label{namespacepenify__hook_1_1commands_1_1commit__commands}\index{penify\_hook.commands.commit\_commands@{penify\_hook.commands.commit\_commands}} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a}{commit\+\_\+code}} (api\+\_\+url, token, message, open\+\_\+terminal, generate\+\_\+description, llm\+\_\+model=None, llm\+\_\+api\+\_\+base=None, llm\+\_\+api\+\_\+key=None, jira\+\_\+url=None, jira\+\_\+user=None, jira\+\_\+api\+\_\+token=None) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1commit__commands_a8627583116eb78e31a4d3cdc16d2f15c}{setup\+\_\+commit\+\_\+parser}} (parser) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23}{handle\+\_\+commit}} (args) +\end{DoxyCompactItemize} + + +\doxysubsection{Function Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a}\label{namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a}} +\index{penify\_hook.commands.commit\_commands@{penify\_hook.commands.commit\_commands}!commit\_code@{commit\_code}} +\index{commit\_code@{commit\_code}!penify\_hook.commands.commit\_commands@{penify\_hook.commands.commit\_commands}} +\doxysubsubsection{\texorpdfstring{commit\_code()}{commit\_code()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commands.\+commit\+\_\+commands.\+commit\+\_\+code (\begin{DoxyParamCaption}\item[{}]{api\+\_\+url, }\item[{}]{token, }\item[{}]{message, }\item[{}]{open\+\_\+terminal, }\item[{}]{generate\+\_\+description, }\item[{}]{llm\+\_\+model = {\ttfamily None}, }\item[{}]{llm\+\_\+api\+\_\+base = {\ttfamily None}, }\item[{}]{llm\+\_\+api\+\_\+key = {\ttfamily None}, }\item[{}]{jira\+\_\+url = {\ttfamily None}, }\item[{}]{jira\+\_\+user = {\ttfamily None}, }\item[{}]{jira\+\_\+api\+\_\+token = {\ttfamily None} }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Enhance Git commits with AI-powered commit messages. + +This function allows for the generation of enhanced commit messages using +natural language processing models and optionally integrates with JIRA for +additional context. It processes the current Git folder to find relevant files +and generates a detailed commit message based on the provided parameters. + +Args: + api_url (str): URL of the API endpoint. + token (str): Authentication token for the API. + message (str): Initial commit message provided by the user. + open_terminal (bool): Whether to open the terminal after committing. + generate_description (bool): Whether to generate a detailed description in the commit message. + llm_model (str?): The language model to use for generating the commit message. Defaults to None. + llm_api_base (str?): Base URL of the LLM API. Defaults to None. + llm_api_key (str?): API key for accessing the LLM service. Defaults to None. + jira_url (str?): URL of the JIRA instance. Defaults to None. + jira_user (str?): Username for authenticating with JIRA. Defaults to None. + jira_api_token (str?): API token for accessing JIRA. Defaults to None. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23}\label{namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23}} +\index{penify\_hook.commands.commit\_commands@{penify\_hook.commands.commit\_commands}!handle\_commit@{handle\_commit}} +\index{handle\_commit@{handle\_commit}!penify\_hook.commands.commit\_commands@{penify\_hook.commands.commit\_commands}} +\doxysubsubsection{\texorpdfstring{handle\_commit()}{handle\_commit()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commands.\+commit\+\_\+commands.\+handle\+\_\+commit (\begin{DoxyParamCaption}\item[{}]{args }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Handle commit functionality by processing arguments and invoking the +appropriate commands.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1commit__commands_a8627583116eb78e31a4d3cdc16d2f15c}\label{namespacepenify__hook_1_1commands_1_1commit__commands_a8627583116eb78e31a4d3cdc16d2f15c}} +\index{penify\_hook.commands.commit\_commands@{penify\_hook.commands.commit\_commands}!setup\_commit\_parser@{setup\_commit\_parser}} +\index{setup\_commit\_parser@{setup\_commit\_parser}!penify\_hook.commands.commit\_commands@{penify\_hook.commands.commit\_commands}} +\doxysubsubsection{\texorpdfstring{setup\_commit\_parser()}{setup\_commit\_parser()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commands.\+commit\+\_\+commands.\+setup\+\_\+commit\+\_\+parser (\begin{DoxyParamCaption}\item[{}]{parser }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Sets up an argument parser for generating smart commit messages.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1commit__commands_a8627583116eb78e31a4d3cdc16d2f15c_icgraph} +\end{center} +\end{figure} diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a_cgraph.md5 new file mode 100644 index 0000000..a3950a9 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a_cgraph.md5 @@ -0,0 +1 @@ +632e31dae2aa0889e92ba4cc06f62191 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a_cgraph.pdf new file mode 100644 index 0000000..ccc8f1d Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a_icgraph.md5 new file mode 100644 index 0000000..1301299 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a_icgraph.md5 @@ -0,0 +1 @@ +f0d905da4decb398695d467c119f8f69 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a_icgraph.pdf new file mode 100644 index 0000000..53b2885 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a62564c4e8ad59fc46d56cb0f9122a71a_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a8627583116eb78e31a4d3cdc16d2f15c_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a8627583116eb78e31a4d3cdc16d2f15c_icgraph.md5 new file mode 100644 index 0000000..f41cc50 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a8627583116eb78e31a4d3cdc16d2f15c_icgraph.md5 @@ -0,0 +1 @@ +436649aae33ef40b115e36ef17293415 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a8627583116eb78e31a4d3cdc16d2f15c_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a8627583116eb78e31a4d3cdc16d2f15c_icgraph.pdf new file mode 100644 index 0000000..780c3a3 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_a8627583116eb78e31a4d3cdc16d2f15c_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23_cgraph.md5 new file mode 100644 index 0000000..807844a --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23_cgraph.md5 @@ -0,0 +1 @@ +2970a04a6c8a560cdfebf6cd78f3bc87 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23_cgraph.pdf new file mode 100644 index 0000000..4fe895c Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23_icgraph.md5 new file mode 100644 index 0000000..e524984 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23_icgraph.md5 @@ -0,0 +1 @@ +a916bf8a27b663ddb62c58220f250dbe \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23_icgraph.pdf new file mode 100644 index 0000000..6d448dc Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1commit__commands_af4f739f524c38b437e4e47673d683e23_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands.tex b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands.tex new file mode 100644 index 0000000..c08e75f --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands.tex @@ -0,0 +1,314 @@ +\hypertarget{namespacepenify__hook_1_1commands_1_1config__commands}{}\doxysection{penify\+\_\+hook.\+commands.\+config\+\_\+commands Namespace Reference} +\label{namespacepenify__hook_1_1commands_1_1config__commands}\index{penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +None \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae}{load\+\_\+env\+\_\+files}} () +\item +Path \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20}{get\+\_\+penify\+\_\+config}} () +\item +Any \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a3caf2b062dd33b1f1d7ddc7224f0ff87}{get\+\_\+env\+\_\+var\+\_\+or\+\_\+default}} (str env\+\_\+var, Any default=None) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4}{save\+\_\+llm\+\_\+config}} (model, api\+\_\+base, api\+\_\+key) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4}{save\+\_\+jira\+\_\+config}} (url, username, api\+\_\+token) +\item +Dict\mbox{[}str, str\mbox{]} \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0}{get\+\_\+llm\+\_\+config}} () +\item +Dict\mbox{[}str, str\mbox{]} \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2}{get\+\_\+jira\+\_\+config}} () +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a185dfc34a655ed80e6c95939b6f3c35c}{config\+\_\+llm\+\_\+web}} () +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06}{config\+\_\+jira\+\_\+web}} () +\item +Optional\mbox{[}str\mbox{]} \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812}{get\+\_\+token}} () +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +bool \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a152642ab83cf6219b604bda6122aba67}{DOTENV\+\_\+\+AVAILABLE}} = True +\item +\mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands_a4b202072a3a3b8515c9c254622e9c880}{path}} +\end{DoxyCompactItemize} + + +\doxysubsection{Function Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06}\label{namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06}} +\index{penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}!config\_jira\_web@{config\_jira\_web}} +\index{config\_jira\_web@{config\_jira\_web}!penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}} +\doxysubsubsection{\texorpdfstring{config\_jira\_web()}{config\_jira\_web()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+config\+\_\+jira\+\_\+web (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Starts a web server for configuring JIRA settings.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1config__commands_a185dfc34a655ed80e6c95939b6f3c35c}\label{namespacepenify__hook_1_1commands_1_1config__commands_a185dfc34a655ed80e6c95939b6f3c35c}} +\index{penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}!config\_llm\_web@{config\_llm\_web}} +\index{config\_llm\_web@{config\_llm\_web}!penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}} +\doxysubsubsection{\texorpdfstring{config\_llm\_web()}{config\_llm\_web()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+config\+\_\+llm\+\_\+web (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Starts an HTTP server for configuring LLM settings via a web interface.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_a185dfc34a655ed80e6c95939b6f3c35c_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1config__commands_a3caf2b062dd33b1f1d7ddc7224f0ff87}\label{namespacepenify__hook_1_1commands_1_1config__commands_a3caf2b062dd33b1f1d7ddc7224f0ff87}} +\index{penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}!get\_env\_var\_or\_default@{get\_env\_var\_or\_default}} +\index{get\_env\_var\_or\_default@{get\_env\_var\_or\_default}!penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}} +\doxysubsubsection{\texorpdfstring{get\_env\_var\_or\_default()}{get\_env\_var\_or\_default()}} +{\footnotesize\ttfamily Any penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+get\+\_\+env\+\_\+var\+\_\+or\+\_\+default (\begin{DoxyParamCaption}\item[{str}]{env\+\_\+var, }\item[{Any }]{default = {\ttfamily None} }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Get environment variable or return default value.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_a3caf2b062dd33b1f1d7ddc7224f0ff87_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2}\label{namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2}} +\index{penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}!get\_jira\_config@{get\_jira\_config}} +\index{get\_jira\_config@{get\_jira\_config}!penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}} +\doxysubsubsection{\texorpdfstring{get\_jira\_config()}{get\_jira\_config()}} +{\footnotesize\ttfamily Dict\mbox{[}str, str\mbox{]} penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+get\+\_\+jira\+\_\+config (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Retrieve JIRA configuration from environment variables.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0}\label{namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0}} +\index{penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}!get\_llm\_config@{get\_llm\_config}} +\index{get\_llm\_config@{get\_llm\_config}!penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}} +\doxysubsubsection{\texorpdfstring{get\_llm\_config()}{get\_llm\_config()}} +{\footnotesize\ttfamily Dict\mbox{[}str, str\mbox{]} penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+get\+\_\+llm\+\_\+config (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Retrieve LLM configuration from environment variables.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20}\label{namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20}} +\index{penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}!get\_penify\_config@{get\_penify\_config}} +\index{get\_penify\_config@{get\_penify\_config}!penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}} +\doxysubsubsection{\texorpdfstring{get\_penify\_config()}{get\_penify\_config()}} +{\footnotesize\ttfamily Path penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+get\+\_\+penify\+\_\+config (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Returns the path to the `config.json` file within the `.penify` directory, +creating it if necessary.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812}\label{namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812}} +\index{penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}!get\_token@{get\_token}} +\index{get\_token@{get\_token}!penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}} +\doxysubsubsection{\texorpdfstring{get\_token()}{get\_token()}} +{\footnotesize\ttfamily Optional\mbox{[}str\mbox{]} penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+get\+\_\+token (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Retrieves an API token using a prioritized method. + +This function first attempts to load environment variables from all `.env` +files and checks if the `PENIFY_API_TOKEN` environment variable is set. If +found, it returns the token. If not, it looks for the API key in a +configuration file named 'api_keys'. If both methods fail, it returns None. + +Returns: + str or None: The API token if found, otherwise None. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae}\label{namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae}} +\index{penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}!load\_env\_files@{load\_env\_files}} +\index{load\_env\_files@{load\_env\_files}!penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}} +\doxysubsubsection{\texorpdfstring{load\_env\_files()}{load\_env\_files()}} +{\footnotesize\ttfamily None penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+load\+\_\+env\+\_\+files (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Load environment variables from .env files in various locations with proper +priority. + +This function loads environment variables from .env files located in different +directories, prioritizing the current directory over the Git repo root and the +user home directory. The loading process ensures that later files override +earlier ones. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4}\label{namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4}} +\index{penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}!save\_jira\_config@{save\_jira\_config}} +\index{save\_jira\_config@{save\_jira\_config}!penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}} +\doxysubsubsection{\texorpdfstring{save\_jira\_config()}{save\_jira\_config()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+save\+\_\+jira\+\_\+config (\begin{DoxyParamCaption}\item[{}]{url, }\item[{}]{username, }\item[{}]{api\+\_\+token }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Save JIRA configuration settings to a .env file. + +This function saves JIRA configuration following these steps: 1. Determine the +target .env file location based on whether the current directory is inside a +Git repository. 2. If inside a Git repo, use the Git repo root's .env file; +otherwise, use the user home directory's .env file. 3. Read the existing +content of the .env file (if it exists) to preserve other settings. 4. Update +the .env content with the new JIRA configuration. 5. Write the updated content +back to the .env file. 6. Optionally, reload environment variables to make +changes immediately available. + +Args: + url (str): The JIRA URL to be saved in the .env file. + username (str): The JIRA username to be saved in the .env file. + api_token (str): The JIRA API token to be saved in the .env file. + +Returns: + bool: True if the configuration was successfully saved, False otherwise. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4}\label{namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4}} +\index{penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}!save\_llm\_config@{save\_llm\_config}} +\index{save\_llm\_config@{save\_llm\_config}!penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}} +\doxysubsubsection{\texorpdfstring{save\_llm\_config()}{save\_llm\_config()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+save\+\_\+llm\+\_\+config (\begin{DoxyParamCaption}\item[{}]{model, }\item[{}]{api\+\_\+base, }\item[{}]{api\+\_\+key }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Save LLM configuration settings to an .env file. + +This function saves the LLM configuration following a specific priority: 1. Git +repo root .env (if inside a git repo) 2. User home directory .env It handles +the detection of the Git repo root, reads the existing .env content, updates it +with the new LLM configuration, and writes it back to the file. It also reloads +the environment variables to make changes immediately available. + +Args: + model (str): The name of the language model. + api_base (str): The base URL for the API. + api_key (str): The API key for authentication. + +Returns: + bool: True if the configuration is saved successfully, False otherwise. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4_icgraph} +\end{center} +\end{figure} + + +\doxysubsection{Variable Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1config__commands_a152642ab83cf6219b604bda6122aba67}\label{namespacepenify__hook_1_1commands_1_1config__commands_a152642ab83cf6219b604bda6122aba67}} +\index{penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}!DOTENV\_AVAILABLE@{DOTENV\_AVAILABLE}} +\index{DOTENV\_AVAILABLE@{DOTENV\_AVAILABLE}!penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}} +\doxysubsubsection{\texorpdfstring{DOTENV\_AVAILABLE}{DOTENV\_AVAILABLE}} +{\footnotesize\ttfamily bool penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+DOTENV\+\_\+\+AVAILABLE = True} + +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1config__commands_a4b202072a3a3b8515c9c254622e9c880}\label{namespacepenify__hook_1_1commands_1_1config__commands_a4b202072a3a3b8515c9c254622e9c880}} +\index{penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}!path@{path}} +\index{path@{path}!penify\_hook.commands.config\_commands@{penify\_hook.commands.config\_commands}} +\doxysubsubsection{\texorpdfstring{path}{path}} +{\footnotesize\ttfamily penify\+\_\+hook.\+commands.\+config\+\_\+commands.\+path} + diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2_cgraph.md5 new file mode 100644 index 0000000..7ff5d49 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2_cgraph.md5 @@ -0,0 +1 @@ +965bf4b7f85ff277fc85db670f036631 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2_cgraph.pdf new file mode 100644 index 0000000..9c4fec3 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2_icgraph.md5 new file mode 100644 index 0000000..026b6c4 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2_icgraph.md5 @@ -0,0 +1 @@ +c45eeefa954ff715ef253a7d5e5d12d4 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2_icgraph.pdf new file mode 100644 index 0000000..479f14f Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a15bf3685c4dcb5c15ba6a4055e484cf2_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a185dfc34a655ed80e6c95939b6f3c35c_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a185dfc34a655ed80e6c95939b6f3c35c_icgraph.md5 new file mode 100644 index 0000000..0b8000c --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a185dfc34a655ed80e6c95939b6f3c35c_icgraph.md5 @@ -0,0 +1 @@ +9567daab2dd867e014ccfcb18d744040 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a185dfc34a655ed80e6c95939b6f3c35c_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a185dfc34a655ed80e6c95939b6f3c35c_icgraph.pdf new file mode 100644 index 0000000..3955c9f Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a185dfc34a655ed80e6c95939b6f3c35c_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a3caf2b062dd33b1f1d7ddc7224f0ff87_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a3caf2b062dd33b1f1d7ddc7224f0ff87_icgraph.md5 new file mode 100644 index 0000000..93d4cc5 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a3caf2b062dd33b1f1d7ddc7224f0ff87_icgraph.md5 @@ -0,0 +1 @@ +4e36cfbc476359d4042b7bd0cc95d691 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a3caf2b062dd33b1f1d7ddc7224f0ff87_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a3caf2b062dd33b1f1d7ddc7224f0ff87_icgraph.pdf new file mode 100644 index 0000000..d383315 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a3caf2b062dd33b1f1d7ddc7224f0ff87_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4_cgraph.md5 new file mode 100644 index 0000000..78dee8e --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4_cgraph.md5 @@ -0,0 +1 @@ +91b626e03ce341e599fc50cb8d893d76 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4_cgraph.pdf new file mode 100644 index 0000000..b4ad99f Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4_icgraph.md5 new file mode 100644 index 0000000..ab097fa --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4_icgraph.md5 @@ -0,0 +1 @@ +efd8a035a3f6606a04e8b16f3de53bdc \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4_icgraph.pdf new file mode 100644 index 0000000..357a971 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a4617bc5956e502c9555dc0dda0376df4_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812_cgraph.md5 new file mode 100644 index 0000000..17f4a7a --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812_cgraph.md5 @@ -0,0 +1 @@ +1c22fefba6033bc55a604eeac08bb90f \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812_cgraph.pdf new file mode 100644 index 0000000..bb359d4 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812_icgraph.md5 new file mode 100644 index 0000000..80f2615 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812_icgraph.md5 @@ -0,0 +1 @@ +6ff1bb2bacb5f4e75625aedd3fe504f5 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812_icgraph.pdf new file mode 100644 index 0000000..5f563f2 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a5503d51c905e2f1b299b12d2a73bd812_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0_cgraph.md5 new file mode 100644 index 0000000..4b6309b --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0_cgraph.md5 @@ -0,0 +1 @@ +769d44022c81a6e87762df7aa812beb9 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0_cgraph.pdf new file mode 100644 index 0000000..cb5b334 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0_icgraph.md5 new file mode 100644 index 0000000..7b00828 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0_icgraph.md5 @@ -0,0 +1 @@ +37703e4979e38c280c9e2aeb453e968e \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0_icgraph.pdf new file mode 100644 index 0000000..e3aef9f Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6492bc8e7df6e38bb06ad05e572d4cc0_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20_cgraph.md5 new file mode 100644 index 0000000..d7eaeeb --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20_cgraph.md5 @@ -0,0 +1 @@ +42a74c31017cf9e879f3c537cc064095 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20_cgraph.pdf new file mode 100644 index 0000000..bfa1b26 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20_icgraph.md5 new file mode 100644 index 0000000..741375f --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20_icgraph.md5 @@ -0,0 +1 @@ +679023a69335aa28dabdc05c1a80c009 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20_icgraph.pdf new file mode 100644 index 0000000..20cb16f Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_a6559a82d0bf727703d550d1003d3ed20_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae_cgraph.md5 new file mode 100644 index 0000000..a2e3b3c --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae_cgraph.md5 @@ -0,0 +1 @@ +ec1da9c2e912b91385c85806113944ce \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae_cgraph.pdf new file mode 100644 index 0000000..1eec9b8 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae_icgraph.md5 new file mode 100644 index 0000000..68e354f --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae_icgraph.md5 @@ -0,0 +1 @@ +941ade1c343a2072db72411b39902d83 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae_icgraph.pdf new file mode 100644 index 0000000..2173a3b Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_aabe277132ce0bc0aacef951cf1dee2ae_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4_cgraph.md5 new file mode 100644 index 0000000..d4e5bcc --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4_cgraph.md5 @@ -0,0 +1 @@ +614782956e822e2c199b0eb08b1f5ccb \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4_cgraph.pdf new file mode 100644 index 0000000..d45c477 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4_icgraph.md5 new file mode 100644 index 0000000..045547c --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4_icgraph.md5 @@ -0,0 +1 @@ +8bb0342a637d265a89b07ca4e6ebeaf8 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4_icgraph.pdf new file mode 100644 index 0000000..df89b2f Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_ab2486ac2bf16b4a671e49625bfa4f9b4_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06_cgraph.md5 new file mode 100644 index 0000000..3cb4470 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06_cgraph.md5 @@ -0,0 +1 @@ +d28c1ecaa8daa7cec1572942c38e9e46 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06_cgraph.pdf new file mode 100644 index 0000000..2589158 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06_icgraph.md5 new file mode 100644 index 0000000..b977c0e --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06_icgraph.md5 @@ -0,0 +1 @@ +94801fd9951ba74f105068424d97eb72 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06_icgraph.pdf new file mode 100644 index 0000000..f47ea49 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1config__commands_af115198ea5d6808ccb98733957f50b06_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands.tex b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands.tex new file mode 100644 index 0000000..dac95f1 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands.tex @@ -0,0 +1,106 @@ +\hypertarget{namespacepenify__hook_1_1commands_1_1doc__commands}{}\doxysection{penify\+\_\+hook.\+commands.\+doc\+\_\+commands Namespace Reference} +\label{namespacepenify__hook_1_1commands_1_1doc__commands}\index{penify\_hook.commands.doc\_commands@{penify\_hook.commands.doc\_commands}} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1doc__commands_a4daac68bc563432bf25c85dc78081a25}{generate\+\_\+doc}} (api\+\_\+url, token, location=None) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1doc__commands_acc7f4ead1b11951d885fa5c151c2cbe0}{setup\+\_\+docgen\+\_\+parser}} (parser) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704}{handle\+\_\+docgen}} (args) +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1doc__commands_a3e42540047da37565afffeaf106cb948}{docgen\+\_\+description}} +\end{DoxyCompactItemize} + + +\doxysubsection{Function Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1doc__commands_a4daac68bc563432bf25c85dc78081a25}\label{namespacepenify__hook_1_1commands_1_1doc__commands_a4daac68bc563432bf25c85dc78081a25}} +\index{penify\_hook.commands.doc\_commands@{penify\_hook.commands.doc\_commands}!generate\_doc@{generate\_doc}} +\index{generate\_doc@{generate\_doc}!penify\_hook.commands.doc\_commands@{penify\_hook.commands.doc\_commands}} +\doxysubsubsection{\texorpdfstring{generate\_doc()}{generate\_doc()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commands.\+doc\+\_\+commands.\+generate\+\_\+doc (\begin{DoxyParamCaption}\item[{}]{api\+\_\+url, }\item[{}]{token, }\item[{}]{location = {\ttfamily None} }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Generates documentation based on the given parameters. + +This function initializes an API client using the provided API URL and token. +It then generates documentation by analyzing the specified location, which can +be a folder, a file, or the current working directory if no location is +provided. The function handles different types of analysis based on the input +location and reports any errors encountered during the process. + +Args: + api_url (str): The URL of the API to connect to for documentation generation. + token (str): The authentication token for accessing the API. + location (str?): The path to a specific file or folder to analyze. If not provided, + the current working directory is used. +\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1doc__commands_a4daac68bc563432bf25c85dc78081a25_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704}\label{namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704}} +\index{penify\_hook.commands.doc\_commands@{penify\_hook.commands.doc\_commands}!handle\_docgen@{handle\_docgen}} +\index{handle\_docgen@{handle\_docgen}!penify\_hook.commands.doc\_commands@{penify\_hook.commands.doc\_commands}} +\doxysubsubsection{\texorpdfstring{handle\_docgen()}{handle\_docgen()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commands.\+doc\+\_\+commands.\+handle\+\_\+docgen (\begin{DoxyParamCaption}\item[{}]{args }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Handle document generation and hook management based on subcommands.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1doc__commands_acc7f4ead1b11951d885fa5c151c2cbe0}\label{namespacepenify__hook_1_1commands_1_1doc__commands_acc7f4ead1b11951d885fa5c151c2cbe0}} +\index{penify\_hook.commands.doc\_commands@{penify\_hook.commands.doc\_commands}!setup\_docgen\_parser@{setup\_docgen\_parser}} +\index{setup\_docgen\_parser@{setup\_docgen\_parser}!penify\_hook.commands.doc\_commands@{penify\_hook.commands.doc\_commands}} +\doxysubsubsection{\texorpdfstring{setup\_docgen\_parser()}{setup\_docgen\_parser()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commands.\+doc\+\_\+commands.\+setup\+\_\+docgen\+\_\+parser (\begin{DoxyParamCaption}\item[{}]{parser }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Configure a parser for generating documentation using Git commands.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1doc__commands_acc7f4ead1b11951d885fa5c151c2cbe0_icgraph} +\end{center} +\end{figure} + + +\doxysubsection{Variable Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1doc__commands_a3e42540047da37565afffeaf106cb948}\label{namespacepenify__hook_1_1commands_1_1doc__commands_a3e42540047da37565afffeaf106cb948}} +\index{penify\_hook.commands.doc\_commands@{penify\_hook.commands.doc\_commands}!docgen\_description@{docgen\_description}} +\index{docgen\_description@{docgen\_description}!penify\_hook.commands.doc\_commands@{penify\_hook.commands.doc\_commands}} +\doxysubsubsection{\texorpdfstring{docgen\_description}{docgen\_description}} +{\footnotesize\ttfamily string penify\+\_\+hook.\+commands.\+doc\+\_\+commands.\+docgen\+\_\+description} + +{\bfseries Initial value\+:} +\begin{DoxyCode}{0} +\DoxyCodeLine{1 = \textcolor{stringliteral}{"{}"{}"{}Generate code documentation using Penify.}} +\DoxyCodeLine{2 \textcolor{stringliteral}{}} +\DoxyCodeLine{3 \textcolor{stringliteral}{This command requires you to be logged in to your Penify account.}} +\DoxyCodeLine{4 \textcolor{stringliteral}{You can generate documentation for:}} +\DoxyCodeLine{5 \textcolor{stringliteral}{-\/ Current Git diff (default)}} +\DoxyCodeLine{6 \textcolor{stringliteral}{-\/ Specific file}} +\DoxyCodeLine{7 \textcolor{stringliteral}{-\/ Specific folder}} +\DoxyCodeLine{8 \textcolor{stringliteral}{"{}"{}"{}}} + +\end{DoxyCode} diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704_cgraph.md5 new file mode 100644 index 0000000..b3e7254 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704_cgraph.md5 @@ -0,0 +1 @@ +4826c595e815560721e83662efce43b9 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704_cgraph.pdf new file mode 100644 index 0000000..879aacc Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704_icgraph.md5 new file mode 100644 index 0000000..3db713a --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704_icgraph.md5 @@ -0,0 +1 @@ +eb18247b90a160d0810b9e87723d7345 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704_icgraph.pdf new file mode 100644 index 0000000..f1b5bcf Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a2006ab13bff718ef783868a910c0b704_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a4daac68bc563432bf25c85dc78081a25_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a4daac68bc563432bf25c85dc78081a25_icgraph.md5 new file mode 100644 index 0000000..a134505 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a4daac68bc563432bf25c85dc78081a25_icgraph.md5 @@ -0,0 +1 @@ +ff6425176cefee06705ed1cab6346e6a \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a4daac68bc563432bf25c85dc78081a25_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a4daac68bc563432bf25c85dc78081a25_icgraph.pdf new file mode 100644 index 0000000..fd0bea5 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_a4daac68bc563432bf25c85dc78081a25_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_acc7f4ead1b11951d885fa5c151c2cbe0_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_acc7f4ead1b11951d885fa5c151c2cbe0_icgraph.md5 new file mode 100644 index 0000000..6a86c1f --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_acc7f4ead1b11951d885fa5c151c2cbe0_icgraph.md5 @@ -0,0 +1 @@ +3f6edcd0db01662d5cfbf69fc85c5088 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_acc7f4ead1b11951d885fa5c151c2cbe0_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_acc7f4ead1b11951d885fa5c151c2cbe0_icgraph.pdf new file mode 100644 index 0000000..07cc870 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1doc__commands_acc7f4ead1b11951d885fa5c151c2cbe0_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands.tex b/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands.tex new file mode 100644 index 0000000..f6c7b5a --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands.tex @@ -0,0 +1,74 @@ +\hypertarget{namespacepenify__hook_1_1commands_1_1hook__commands}{}\doxysection{penify\+\_\+hook.\+commands.\+hook\+\_\+commands Namespace Reference} +\label{namespacepenify__hook_1_1commands_1_1hook__commands}\index{penify\_hook.commands.hook\_commands@{penify\_hook.commands.hook\_commands}} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1hook__commands_adff8f5d3bf1c3795974a391ee95b72b2}{install\+\_\+git\+\_\+hook}} (location, token) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1hook__commands_a81543eb5fa835fd1237f24e8bce6201d}{uninstall\+\_\+git\+\_\+hook}} (location) +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1hook__commands_ae82fd46e5a9219da1478b0476b8214b1}{HOOK\+\_\+\+FILENAME}} = \char`\"{}post-\/commit\char`\"{} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1hook__commands_a6a45aad71c8d32ce11a6dff8cee8bee7}{HOOK\+\_\+\+TEMPLATE}} +\end{DoxyCompactItemize} + + +\doxysubsection{Function Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1hook__commands_adff8f5d3bf1c3795974a391ee95b72b2}\label{namespacepenify__hook_1_1commands_1_1hook__commands_adff8f5d3bf1c3795974a391ee95b72b2}} +\index{penify\_hook.commands.hook\_commands@{penify\_hook.commands.hook\_commands}!install\_git\_hook@{install\_git\_hook}} +\index{install\_git\_hook@{install\_git\_hook}!penify\_hook.commands.hook\_commands@{penify\_hook.commands.hook\_commands}} +\doxysubsubsection{\texorpdfstring{install\_git\_hook()}{install\_git\_hook()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commands.\+hook\+\_\+commands.\+install\+\_\+git\+\_\+hook (\begin{DoxyParamCaption}\item[{}]{location, }\item[{}]{token }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Install a post-commit Git hook that generates documentation for changed files.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1hook__commands_adff8f5d3bf1c3795974a391ee95b72b2_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1hook__commands_a81543eb5fa835fd1237f24e8bce6201d}\label{namespacepenify__hook_1_1commands_1_1hook__commands_a81543eb5fa835fd1237f24e8bce6201d}} +\index{penify\_hook.commands.hook\_commands@{penify\_hook.commands.hook\_commands}!uninstall\_git\_hook@{uninstall\_git\_hook}} +\index{uninstall\_git\_hook@{uninstall\_git\_hook}!penify\_hook.commands.hook\_commands@{penify\_hook.commands.hook\_commands}} +\doxysubsubsection{\texorpdfstring{uninstall\_git\_hook()}{uninstall\_git\_hook()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+commands.\+hook\+\_\+commands.\+uninstall\+\_\+git\+\_\+hook (\begin{DoxyParamCaption}\item[{}]{location }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Uninstalls the post-commit hook from the specified location.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1commands_1_1hook__commands_a81543eb5fa835fd1237f24e8bce6201d_icgraph} +\end{center} +\end{figure} + + +\doxysubsection{Variable Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1hook__commands_ae82fd46e5a9219da1478b0476b8214b1}\label{namespacepenify__hook_1_1commands_1_1hook__commands_ae82fd46e5a9219da1478b0476b8214b1}} +\index{penify\_hook.commands.hook\_commands@{penify\_hook.commands.hook\_commands}!HOOK\_FILENAME@{HOOK\_FILENAME}} +\index{HOOK\_FILENAME@{HOOK\_FILENAME}!penify\_hook.commands.hook\_commands@{penify\_hook.commands.hook\_commands}} +\doxysubsubsection{\texorpdfstring{HOOK\_FILENAME}{HOOK\_FILENAME}} +{\footnotesize\ttfamily string penify\+\_\+hook.\+commands.\+hook\+\_\+commands.\+HOOK\+\_\+\+FILENAME = \char`\"{}post-\/commit\char`\"{}} + +\mbox{\Hypertarget{namespacepenify__hook_1_1commands_1_1hook__commands_a6a45aad71c8d32ce11a6dff8cee8bee7}\label{namespacepenify__hook_1_1commands_1_1hook__commands_a6a45aad71c8d32ce11a6dff8cee8bee7}} +\index{penify\_hook.commands.hook\_commands@{penify\_hook.commands.hook\_commands}!HOOK\_TEMPLATE@{HOOK\_TEMPLATE}} +\index{HOOK\_TEMPLATE@{HOOK\_TEMPLATE}!penify\_hook.commands.hook\_commands@{penify\_hook.commands.hook\_commands}} +\doxysubsubsection{\texorpdfstring{HOOK\_TEMPLATE}{HOOK\_TEMPLATE}} +{\footnotesize\ttfamily string penify\+\_\+hook.\+commands.\+hook\+\_\+commands.\+HOOK\+\_\+\+TEMPLATE} + +{\bfseries Initial value\+:} +\begin{DoxyCode}{0} +\DoxyCodeLine{1 = \textcolor{stringliteral}{"{}"{}"{}\#!/bin/sh}} +\DoxyCodeLine{2 \textcolor{stringliteral}{\# This is a post-\/commit hook generated by penify.}} +\DoxyCodeLine{3 \textcolor{stringliteral}{\# Automatically generates documentation for changed files after each commit.}} +\DoxyCodeLine{4 \textcolor{stringliteral}{}} +\DoxyCodeLine{5 \textcolor{stringliteral}{penify docgen -\/gf \{git\_folder\_path\} -\/t \{token\}}} +\DoxyCodeLine{6 \textcolor{stringliteral}{"{}"{}"{}}} + +\end{DoxyCode} diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands_a81543eb5fa835fd1237f24e8bce6201d_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands_a81543eb5fa835fd1237f24e8bce6201d_icgraph.md5 new file mode 100644 index 0000000..e6f0d50 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands_a81543eb5fa835fd1237f24e8bce6201d_icgraph.md5 @@ -0,0 +1 @@ +3e6ee611bb96eb0620f817dfec914d88 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands_a81543eb5fa835fd1237f24e8bce6201d_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands_a81543eb5fa835fd1237f24e8bce6201d_icgraph.pdf new file mode 100644 index 0000000..9d9bb04 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands_a81543eb5fa835fd1237f24e8bce6201d_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands_adff8f5d3bf1c3795974a391ee95b72b2_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands_adff8f5d3bf1c3795974a391ee95b72b2_icgraph.md5 new file mode 100644 index 0000000..05be577 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands_adff8f5d3bf1c3795974a391ee95b72b2_icgraph.md5 @@ -0,0 +1 @@ +0efcaa8d06e456e09266dd9054ce82b8 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands_adff8f5d3bf1c3795974a391ee95b72b2_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands_adff8f5d3bf1c3795974a391ee95b72b2_icgraph.pdf new file mode 100644 index 0000000..4bfbc32 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1commands_1_1hook__commands_adff8f5d3bf1c3795974a391ee95b72b2_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1commit__analyzer.tex b/docs/latex/namespacepenify__hook_1_1commit__analyzer.tex new file mode 100644 index 0000000..514f5c9 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1commit__analyzer.tex @@ -0,0 +1,7 @@ +\hypertarget{namespacepenify__hook_1_1commit__analyzer}{}\doxysection{penify\+\_\+hook.\+commit\+\_\+analyzer Namespace Reference} +\label{namespacepenify__hook_1_1commit__analyzer}\index{penify\_hook.commit\_analyzer@{penify\_hook.commit\_analyzer}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook}{Commit\+Doc\+Gen\+Hook}} +\end{DoxyCompactItemize} diff --git a/docs/latex/namespacepenify__hook_1_1config__command.tex b/docs/latex/namespacepenify__hook_1_1config__command.tex new file mode 100644 index 0000000..dbebaef --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1config__command.tex @@ -0,0 +1,60 @@ +\hypertarget{namespacepenify__hook_1_1config__command}{}\doxysection{penify\+\_\+hook.\+config\+\_\+command Namespace Reference} +\label{namespacepenify__hook_1_1config__command}\index{penify\_hook.config\_command@{penify\_hook.config\_command}} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1config__command_a4f3eb92164a69df1446d745f8a09285e}{setup\+\_\+config\+\_\+parser}} (parent\+\_\+parser) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde}{handle\+\_\+config}} (args) +\end{DoxyCompactItemize} + + +\doxysubsection{Function Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde}\label{namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde}} +\index{penify\_hook.config\_command@{penify\_hook.config\_command}!handle\_config@{handle\_config}} +\index{handle\_config@{handle\_config}!penify\_hook.config\_command@{penify\_hook.config\_command}} +\doxysubsubsection{\texorpdfstring{handle\_config()}{handle\_config()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+config\+\_\+command.\+handle\+\_\+config (\begin{DoxyParamCaption}\item[{}]{args }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Handle configuration settings based on the specified config type. + +This function processes different types of configurations such as LLM (Language +Model) and JIRA. It saves configurations, sets up web-based configurations, and +verifies JIRA connections. Depending on the `args.config_type`, it imports +necessary modules, handles configuration saving or setup, and optionally +verifies JIRA connectivity. + +Args: + args (argparse.Namespace): Command-line arguments containing the type of configuration to handle. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1config__command_a4f3eb92164a69df1446d745f8a09285e}\label{namespacepenify__hook_1_1config__command_a4f3eb92164a69df1446d745f8a09285e}} +\index{penify\_hook.config\_command@{penify\_hook.config\_command}!setup\_config\_parser@{setup\_config\_parser}} +\index{setup\_config\_parser@{setup\_config\_parser}!penify\_hook.config\_command@{penify\_hook.config\_command}} +\doxysubsubsection{\texorpdfstring{setup\_config\_parser()}{setup\_config\_parser()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+config\+\_\+command.\+setup\+\_\+config\+\_\+parser (\begin{DoxyParamCaption}\item[{}]{parent\+\_\+parser }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Set up configuration parsers with subcommands for LLM and JIRA settings.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1config__command_a4f3eb92164a69df1446d745f8a09285e_icgraph} +\end{center} +\end{figure} diff --git a/docs/latex/namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde_cgraph.md5 new file mode 100644 index 0000000..432ac5d --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde_cgraph.md5 @@ -0,0 +1 @@ +7d218e1a67faf0c8150186b0bdc2af80 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde_cgraph.pdf new file mode 100644 index 0000000..189fe79 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde_icgraph.md5 new file mode 100644 index 0000000..cb1b519 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde_icgraph.md5 @@ -0,0 +1 @@ +33adefb58b86eb054bfb05bc7210a23a \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde_icgraph.pdf new file mode 100644 index 0000000..68637af Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1config__command_a240e5331681eb574ac319d7458783bde_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1config__command_a4f3eb92164a69df1446d745f8a09285e_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1config__command_a4f3eb92164a69df1446d745f8a09285e_icgraph.md5 new file mode 100644 index 0000000..692bb4e --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1config__command_a4f3eb92164a69df1446d745f8a09285e_icgraph.md5 @@ -0,0 +1 @@ +5e2328eafad628ba4bcef3b5361c85ae \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1config__command_a4f3eb92164a69df1446d745f8a09285e_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1config__command_a4f3eb92164a69df1446d745f8a09285e_icgraph.pdf new file mode 100644 index 0000000..2b5dcb5 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1config__command_a4f3eb92164a69df1446d745f8a09285e_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1constants.tex b/docs/latex/namespacepenify__hook_1_1constants.tex new file mode 100644 index 0000000..96b46a6 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1constants.tex @@ -0,0 +1,24 @@ +\hypertarget{namespacepenify__hook_1_1constants}{}\doxysection{penify\+\_\+hook.\+constants Namespace Reference} +\label{namespacepenify__hook_1_1constants}\index{penify\_hook.constants@{penify\_hook.constants}} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1constants_af198b5d1fc2f44657a2061aa324af3e0}{API\+\_\+\+URL}} = \textquotesingle{}http\+://localhost\+:8000/api\textquotesingle{} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1constants_a316c5a606e4440fb8224c6544c3a15f0}{DASHBOARD\+\_\+\+URL}} = \char`\"{}https\+://dashboard.\+penify.\+dev/auth/localhost/login\char`\"{} +\end{DoxyCompactItemize} + + +\doxysubsection{Variable Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1constants_af198b5d1fc2f44657a2061aa324af3e0}\label{namespacepenify__hook_1_1constants_af198b5d1fc2f44657a2061aa324af3e0}} +\index{penify\_hook.constants@{penify\_hook.constants}!API\_URL@{API\_URL}} +\index{API\_URL@{API\_URL}!penify\_hook.constants@{penify\_hook.constants}} +\doxysubsubsection{\texorpdfstring{API\_URL}{API\_URL}} +{\footnotesize\ttfamily string penify\+\_\+hook.\+constants.\+API\+\_\+\+URL = \textquotesingle{}http\+://localhost\+:8000/api\textquotesingle{}} + +\mbox{\Hypertarget{namespacepenify__hook_1_1constants_a316c5a606e4440fb8224c6544c3a15f0}\label{namespacepenify__hook_1_1constants_a316c5a606e4440fb8224c6544c3a15f0}} +\index{penify\_hook.constants@{penify\_hook.constants}!DASHBOARD\_URL@{DASHBOARD\_URL}} +\index{DASHBOARD\_URL@{DASHBOARD\_URL}!penify\_hook.constants@{penify\_hook.constants}} +\doxysubsubsection{\texorpdfstring{DASHBOARD\_URL}{DASHBOARD\_URL}} +{\footnotesize\ttfamily string penify\+\_\+hook.\+constants.\+DASHBOARD\+\_\+\+URL = \char`\"{}https\+://dashboard.\+penify.\+dev/auth/localhost/login\char`\"{}} + diff --git a/docs/latex/namespacepenify__hook_1_1file__analyzer.tex b/docs/latex/namespacepenify__hook_1_1file__analyzer.tex new file mode 100644 index 0000000..450369a --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1file__analyzer.tex @@ -0,0 +1,21 @@ +\hypertarget{namespacepenify__hook_1_1file__analyzer}{}\doxysection{penify\+\_\+hook.\+file\+\_\+analyzer Namespace Reference} +\label{namespacepenify__hook_1_1file__analyzer}\index{penify\_hook.file\_analyzer@{penify\_hook.file\_analyzer}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook}{File\+Analyzer\+Gen\+Hook}} +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{namespacepenify__hook_1_1file__analyzer_af419a4965f079d58cac5a5281ddb1828}{logger}} = logging.\+get\+Logger(\+\_\+\+\_\+name\+\_\+\+\_\+) +\end{DoxyCompactItemize} + + +\doxysubsection{Variable Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1file__analyzer_af419a4965f079d58cac5a5281ddb1828}\label{namespacepenify__hook_1_1file__analyzer_af419a4965f079d58cac5a5281ddb1828}} +\index{penify\_hook.file\_analyzer@{penify\_hook.file\_analyzer}!logger@{logger}} +\index{logger@{logger}!penify\_hook.file\_analyzer@{penify\_hook.file\_analyzer}} +\doxysubsubsection{\texorpdfstring{logger}{logger}} +{\footnotesize\ttfamily penify\+\_\+hook.\+file\+\_\+analyzer.\+logger = logging.\+get\+Logger(\+\_\+\+\_\+name\+\_\+\+\_\+)} + diff --git a/docs/latex/namespacepenify__hook_1_1folder__analyzer.tex b/docs/latex/namespacepenify__hook_1_1folder__analyzer.tex new file mode 100644 index 0000000..527b99e --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1folder__analyzer.tex @@ -0,0 +1,7 @@ +\hypertarget{namespacepenify__hook_1_1folder__analyzer}{}\doxysection{penify\+\_\+hook.\+folder\+\_\+analyzer Namespace Reference} +\label{namespacepenify__hook_1_1folder__analyzer}\index{penify\_hook.folder\_analyzer@{penify\_hook.folder\_analyzer}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook}{Folder\+Analyzer\+Gen\+Hook}} +\end{DoxyCompactItemize} diff --git a/docs/latex/namespacepenify__hook_1_1git__analyzer.tex b/docs/latex/namespacepenify__hook_1_1git__analyzer.tex new file mode 100644 index 0000000..3cd151e --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1git__analyzer.tex @@ -0,0 +1,21 @@ +\hypertarget{namespacepenify__hook_1_1git__analyzer}{}\doxysection{penify\+\_\+hook.\+git\+\_\+analyzer Namespace Reference} +\label{namespacepenify__hook_1_1git__analyzer}\index{penify\_hook.git\_analyzer@{penify\_hook.git\_analyzer}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook}{Git\+Doc\+Gen\+Hook}} +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{namespacepenify__hook_1_1git__analyzer_ac4ce143fdca789a79c66852c37d7363a}{logger}} = logging.\+get\+Logger(\+\_\+\+\_\+name\+\_\+\+\_\+) +\end{DoxyCompactItemize} + + +\doxysubsection{Variable Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1git__analyzer_ac4ce143fdca789a79c66852c37d7363a}\label{namespacepenify__hook_1_1git__analyzer_ac4ce143fdca789a79c66852c37d7363a}} +\index{penify\_hook.git\_analyzer@{penify\_hook.git\_analyzer}!logger@{logger}} +\index{logger@{logger}!penify\_hook.git\_analyzer@{penify\_hook.git\_analyzer}} +\doxysubsubsection{\texorpdfstring{logger}{logger}} +{\footnotesize\ttfamily penify\+\_\+hook.\+git\+\_\+analyzer.\+logger = logging.\+get\+Logger(\+\_\+\+\_\+name\+\_\+\+\_\+)} + diff --git a/docs/latex/namespacepenify__hook_1_1jira__client.tex b/docs/latex/namespacepenify__hook_1_1jira__client.tex new file mode 100644 index 0000000..372e126 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1jira__client.tex @@ -0,0 +1,21 @@ +\hypertarget{namespacepenify__hook_1_1jira__client}{}\doxysection{penify\+\_\+hook.\+jira\+\_\+client Namespace Reference} +\label{namespacepenify__hook_1_1jira__client}\index{penify\_hook.jira\_client@{penify\_hook.jira\_client}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1jira__client_1_1JiraClient}{Jira\+Client}} +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +bool \mbox{\hyperlink{namespacepenify__hook_1_1jira__client_a5593ea3415081eca1eea92e4c1ad1aa2}{JIRA\+\_\+\+AVAILABLE}} = True +\end{DoxyCompactItemize} + + +\doxysubsection{Variable Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1jira__client_a5593ea3415081eca1eea92e4c1ad1aa2}\label{namespacepenify__hook_1_1jira__client_a5593ea3415081eca1eea92e4c1ad1aa2}} +\index{penify\_hook.jira\_client@{penify\_hook.jira\_client}!JIRA\_AVAILABLE@{JIRA\_AVAILABLE}} +\index{JIRA\_AVAILABLE@{JIRA\_AVAILABLE}!penify\_hook.jira\_client@{penify\_hook.jira\_client}} +\doxysubsubsection{\texorpdfstring{JIRA\_AVAILABLE}{JIRA\_AVAILABLE}} +{\footnotesize\ttfamily bool penify\+\_\+hook.\+jira\+\_\+client.\+JIRA\+\_\+\+AVAILABLE = True} + diff --git a/docs/latex/namespacepenify__hook_1_1llm__client.tex b/docs/latex/namespacepenify__hook_1_1llm__client.tex new file mode 100644 index 0000000..6549539 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1llm__client.tex @@ -0,0 +1,7 @@ +\hypertarget{namespacepenify__hook_1_1llm__client}{}\doxysection{penify\+\_\+hook.\+llm\+\_\+client Namespace Reference} +\label{namespacepenify__hook_1_1llm__client}\index{penify\_hook.llm\_client@{penify\_hook.llm\_client}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1llm__client_1_1LLMClient}{LLMClient}} +\end{DoxyCompactItemize} diff --git a/docs/latex/namespacepenify__hook_1_1login__command.tex b/docs/latex/namespacepenify__hook_1_1login__command.tex new file mode 100644 index 0000000..12ae192 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1login__command.tex @@ -0,0 +1,51 @@ +\hypertarget{namespacepenify__hook_1_1login__command}{}\doxysection{penify\+\_\+hook.\+login\+\_\+command Namespace Reference} +\label{namespacepenify__hook_1_1login__command}\index{penify\_hook.login\_command@{penify\_hook.login\_command}} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1login__command_aae63db4c484797bead34b7d874020c6a}{setup\+\_\+login\+\_\+parser}} (parser) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd}{handle\+\_\+login}} (args) +\end{DoxyCompactItemize} + + +\doxysubsection{Function Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd}\label{namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd}} +\index{penify\_hook.login\_command@{penify\_hook.login\_command}!handle\_login@{handle\_login}} +\index{handle\_login@{handle\_login}!penify\_hook.login\_command@{penify\_hook.login\_command}} +\doxysubsubsection{\texorpdfstring{handle\_login()}{handle\_login()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+login\+\_\+command.\+handle\+\_\+login (\begin{DoxyParamCaption}\item[{}]{args }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Initiates a user login process using predefined constants and the `login` +function.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1login__command_aae63db4c484797bead34b7d874020c6a}\label{namespacepenify__hook_1_1login__command_aae63db4c484797bead34b7d874020c6a}} +\index{penify\_hook.login\_command@{penify\_hook.login\_command}!setup\_login\_parser@{setup\_login\_parser}} +\index{setup\_login\_parser@{setup\_login\_parser}!penify\_hook.login\_command@{penify\_hook.login\_command}} +\doxysubsubsection{\texorpdfstring{setup\_login\_parser()}{setup\_login\_parser()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+login\+\_\+command.\+setup\+\_\+login\+\_\+parser (\begin{DoxyParamCaption}\item[{}]{parser }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Set up command-line arguments for login.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1login__command_aae63db4c484797bead34b7d874020c6a_icgraph} +\end{center} +\end{figure} diff --git a/docs/latex/namespacepenify__hook_1_1login__command_aae63db4c484797bead34b7d874020c6a_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1login__command_aae63db4c484797bead34b7d874020c6a_icgraph.md5 new file mode 100644 index 0000000..8a3aead --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1login__command_aae63db4c484797bead34b7d874020c6a_icgraph.md5 @@ -0,0 +1 @@ +172992aa7cc5b424663feb2e0011348b \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1login__command_aae63db4c484797bead34b7d874020c6a_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1login__command_aae63db4c484797bead34b7d874020c6a_icgraph.pdf new file mode 100644 index 0000000..17c715e Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1login__command_aae63db4c484797bead34b7d874020c6a_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd_cgraph.md5 new file mode 100644 index 0000000..b1d9392 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd_cgraph.md5 @@ -0,0 +1 @@ +fb3dd54ef6847ed4a80947f9acdbaa6f \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd_cgraph.pdf new file mode 100644 index 0000000..349a4d3 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd_icgraph.md5 new file mode 100644 index 0000000..5e4f8ba --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd_icgraph.md5 @@ -0,0 +1 @@ +9951577b3315cf72a98a67d67261f8ef \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd_icgraph.pdf new file mode 100644 index 0000000..df1e953 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1login__command_ae4bf932fbafeff834b0a0c5a37f74ccd_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1main.tex b/docs/latex/namespacepenify__hook_1_1main.tex new file mode 100644 index 0000000..d3ed9ae --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1main.tex @@ -0,0 +1,41 @@ +\hypertarget{namespacepenify__hook_1_1main}{}\doxysection{penify\+\_\+hook.\+main Namespace Reference} +\label{namespacepenify__hook_1_1main}\index{penify\_hook.main@{penify\_hook.main}} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f}{main}} () +\end{DoxyCompactItemize} + + +\doxysubsection{Function Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f}\label{namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f}} +\index{penify\_hook.main@{penify\_hook.main}!main@{main}} +\index{main@{main}!penify\_hook.main@{penify\_hook.main}} +\doxysubsubsection{\texorpdfstring{main()}{main()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+main.\+main (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Main function to handle command-line interface (CLI) interactions with Penify +services. + +This tool provides a command-line interface for generating smart commit +messages, configuring local-LLM and JIRA, and generating code documentation. It +supports basic commands that do not require login and advanced commands that +require user authentication. The `--version` flag can be used to display the +version information. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=211pt]{namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f_icgraph} +\end{center} +\end{figure} diff --git a/docs/latex/namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f_cgraph.md5 new file mode 100644 index 0000000..fee8688 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f_cgraph.md5 @@ -0,0 +1 @@ +dfdacf5b7ffb2357adbfdfeb415b8317 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f_cgraph.pdf new file mode 100644 index 0000000..0f38111 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f_icgraph.md5 new file mode 100644 index 0000000..e17084b --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f_icgraph.md5 @@ -0,0 +1 @@ +d98dd8d9a0dda1a3528354d99d382f7b \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f_icgraph.pdf new file mode 100644 index 0000000..687f63a Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1main_a16838b20df4bd14ee4b5e1dd2906738f_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils.tex b/docs/latex/namespacepenify__hook_1_1ui__utils.tex new file mode 100644 index 0000000..89c1478 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils.tex @@ -0,0 +1,413 @@ +\hypertarget{namespacepenify__hook_1_1ui__utils}{}\doxysection{penify\+\_\+hook.\+ui\+\_\+utils Namespace Reference} +\label{namespacepenify__hook_1_1ui__utils}\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a92c3e466d1912058167be2eacf85b9f6}{format\+\_\+info}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a532cdb4de7c679ce8b29c3e9116c4776}{format\+\_\+success}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a0a6fd2613c6fe053b6e4356cd9e5cda2}{format\+\_\+warning}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a4dd934568897433fa73f9cc182ac4a3e}{format\+\_\+error}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_adcb97fc26b405d2b9cdf5eb7aecc5452}{format\+\_\+highlight}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_af3441fb3c2c3850b8b3b6455a9fdaba4}{format\+\_\+file\+\_\+path}} (file\+\_\+path) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44}{print\+\_\+info}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a}{print\+\_\+success}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa}{print\+\_\+warning}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f}{print\+\_\+error}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115}{print\+\_\+processing}} (file\+\_\+path) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_aa6e684c00e26199440137a87ed9b195c}{print\+\_\+status}} (status, message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c}{create\+\_\+progress\+\_\+bar}} (total, desc=\char`\"{}Processing\char`\"{}, unit=\char`\"{}item\char`\"{}) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef}{create\+\_\+stage\+\_\+progress\+\_\+bar}} (stages, desc=\char`\"{}Processing\char`\"{}) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a5a7340d0fc60fb80f17514d60bf45f1d}{update\+\_\+stage}} (pbar, stage\+\_\+name) +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_ab560cfade398ac1e0bd47befb52d9f71}{autoreset}} +\item +\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a9fdcb180915696f5d217032a62c3857c}{INFO\+\_\+\+COLOR}} = Fore.\+CYAN +\item +\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a22c450c5e2b5394618ecf9b636560df4}{SUCCESS\+\_\+\+COLOR}} = Fore.\+GREEN +\item +\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a177bc9b44157844c999e0c1c2c6936ff}{WARNING\+\_\+\+COLOR}} = Fore.\+YELLOW +\item +\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a4ab4e61dfab7973c87bef59c6e1977fe}{ERROR\+\_\+\+COLOR}} = Fore.\+RED +\item +\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_aba01b8259f0d66cdc2b4a1b58f9736fc}{HIGHLIGHT\+\_\+\+COLOR}} = Fore.\+BLUE +\item +\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_aca0fcee81606857497520ae4290bc9f5}{NEUTRAL\+\_\+\+COLOR}} = Fore.\+WHITE +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a3c6fe4bd17c1a5fe76587225ae4beb3e}{SUCCESS\+\_\+\+SYMBOL}} = \char`\"{}✓\char`\"{} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a6eaea98f1a8cbe16a181647da2fc0a16}{WARNING\+\_\+\+SYMBOL}} = \char`\"{}○\char`\"{} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_aa564e1e1d016c8227d076542e74cecb0}{ERROR\+\_\+\+SYMBOL}} = \char`\"{}✗\char`\"{} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a3b208e2750a38dd09467a73e4afd9756}{PROCESSING\+\_\+\+SYMBOL}} = \char`\"{}⟳\char`\"{} +\end{DoxyCompactItemize} + + +\doxysubsection{Detailed Description} +\begin{DoxyVerb}UI utilities for Penify CLI. + +This module provides utility functions for consistent UI formatting, +colored output, and progress indicators across the Penify CLI application. +\end{DoxyVerb} + + +\doxysubsection{Function Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c}\label{namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!create\_progress\_bar@{create\_progress\_bar}} +\index{create\_progress\_bar@{create\_progress\_bar}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{create\_progress\_bar()}{create\_progress\_bar()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+create\+\_\+progress\+\_\+bar (\begin{DoxyParamCaption}\item[{}]{total, }\item[{}]{desc = {\ttfamily \char`\"{}Processing\char`\"{}}, }\item[{}]{unit = {\ttfamily \char`\"{}item\char`\"{}} }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Create a tqdm progress bar with consistent styling.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef}\label{namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!create\_stage\_progress\_bar@{create\_stage\_progress\_bar}} +\index{create\_stage\_progress\_bar@{create\_stage\_progress\_bar}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{create\_stage\_progress\_bar()}{create\_stage\_progress\_bar()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+create\+\_\+stage\+\_\+progress\+\_\+bar (\begin{DoxyParamCaption}\item[{}]{stages, }\item[{}]{desc = {\ttfamily \char`\"{}Processing\char`\"{}} }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Create a tqdm progress bar for processing stages with consistent styling.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a4dd934568897433fa73f9cc182ac4a3e}\label{namespacepenify__hook_1_1ui__utils_a4dd934568897433fa73f9cc182ac4a3e}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!format\_error@{format\_error}} +\index{format\_error@{format\_error}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{format\_error()}{format\_error()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+format\+\_\+error (\begin{DoxyParamCaption}\item[{}]{message }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Format an error message with the specified error color.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a4dd934568897433fa73f9cc182ac4a3e_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_af3441fb3c2c3850b8b3b6455a9fdaba4}\label{namespacepenify__hook_1_1ui__utils_af3441fb3c2c3850b8b3b6455a9fdaba4}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!format\_file\_path@{format\_file\_path}} +\index{format\_file\_path@{format\_file\_path}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{format\_file\_path()}{format\_file\_path()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+format\+\_\+file\+\_\+path (\begin{DoxyParamCaption}\item[{}]{file\+\_\+path }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Format a file path with a warning color.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_af3441fb3c2c3850b8b3b6455a9fdaba4_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_adcb97fc26b405d2b9cdf5eb7aecc5452}\label{namespacepenify__hook_1_1ui__utils_adcb97fc26b405d2b9cdf5eb7aecc5452}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!format\_highlight@{format\_highlight}} +\index{format\_highlight@{format\_highlight}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{format\_highlight()}{format\_highlight()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+format\+\_\+highlight (\begin{DoxyParamCaption}\item[{}]{message }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Format a highlighted message with appropriate color.\end{DoxyVerb} + \mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a92c3e466d1912058167be2eacf85b9f6}\label{namespacepenify__hook_1_1ui__utils_a92c3e466d1912058167be2eacf85b9f6}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!format\_info@{format\_info}} +\index{format\_info@{format\_info}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{format\_info()}{format\_info()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+format\+\_\+info (\begin{DoxyParamCaption}\item[{}]{message }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Format an informational message with appropriate color.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a92c3e466d1912058167be2eacf85b9f6_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a532cdb4de7c679ce8b29c3e9116c4776}\label{namespacepenify__hook_1_1ui__utils_a532cdb4de7c679ce8b29c3e9116c4776}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!format\_success@{format\_success}} +\index{format\_success@{format\_success}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{format\_success()}{format\_success()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+format\+\_\+success (\begin{DoxyParamCaption}\item[{}]{message }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Formats a success message with green color and reset style.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a532cdb4de7c679ce8b29c3e9116c4776_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a0a6fd2613c6fe053b6e4356cd9e5cda2}\label{namespacepenify__hook_1_1ui__utils_a0a6fd2613c6fe053b6e4356cd9e5cda2}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!format\_warning@{format\_warning}} +\index{format\_warning@{format\_warning}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{format\_warning()}{format\_warning()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+format\+\_\+warning (\begin{DoxyParamCaption}\item[{}]{message }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Format a warning message with appropriate color.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a0a6fd2613c6fe053b6e4356cd9e5cda2_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f}\label{namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!print\_error@{print\_error}} +\index{print\_error@{print\_error}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{print\_error()}{print\_error()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+print\+\_\+error (\begin{DoxyParamCaption}\item[{}]{message }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Print an error message with appropriate formatting.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44}\label{namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!print\_info@{print\_info}} +\index{print\_info@{print\_info}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{print\_info()}{print\_info()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+print\+\_\+info (\begin{DoxyParamCaption}\item[{}]{message }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Prints an informational message with formatting.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115}\label{namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!print\_processing@{print\_processing}} +\index{print\_processing@{print\_processing}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{print\_processing()}{print\_processing()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+print\+\_\+processing (\begin{DoxyParamCaption}\item[{}]{file\+\_\+path }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Print a processing message for a specified file.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_aa6e684c00e26199440137a87ed9b195c}\label{namespacepenify__hook_1_1ui__utils_aa6e684c00e26199440137a87ed9b195c}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!print\_status@{print\_status}} +\index{print\_status@{print\_status}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{print\_status()}{print\_status()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+print\+\_\+status (\begin{DoxyParamCaption}\item[{}]{status, }\item[{}]{message }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Print a status message with an appropriate symbol.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_aa6e684c00e26199440137a87ed9b195c_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a}\label{namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!print\_success@{print\_success}} +\index{print\_success@{print\_success}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{print\_success()}{print\_success()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+print\+\_\+success (\begin{DoxyParamCaption}\item[{}]{message }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Prints a formatted success message.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa}\label{namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!print\_warning@{print\_warning}} +\index{print\_warning@{print\_warning}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{print\_warning()}{print\_warning()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+print\+\_\+warning (\begin{DoxyParamCaption}\item[{}]{message }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Prints a warning message with formatted output.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa_icgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a5a7340d0fc60fb80f17514d60bf45f1d}\label{namespacepenify__hook_1_1ui__utils_a5a7340d0fc60fb80f17514d60bf45f1d}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!update\_stage@{update\_stage}} +\index{update\_stage@{update\_stage}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{update\_stage()}{update\_stage()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+ui\+\_\+utils.\+update\+\_\+stage (\begin{DoxyParamCaption}\item[{}]{pbar, }\item[{}]{stage\+\_\+name }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Update the progress bar with a new stage name.\end{DoxyVerb} + Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1ui__utils_a5a7340d0fc60fb80f17514d60bf45f1d_icgraph} +\end{center} +\end{figure} + + +\doxysubsection{Variable Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_ab560cfade398ac1e0bd47befb52d9f71}\label{namespacepenify__hook_1_1ui__utils_ab560cfade398ac1e0bd47befb52d9f71}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!autoreset@{autoreset}} +\index{autoreset@{autoreset}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{autoreset}{autoreset}} +{\footnotesize\ttfamily penify\+\_\+hook.\+ui\+\_\+utils.\+autoreset} + +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a4ab4e61dfab7973c87bef59c6e1977fe}\label{namespacepenify__hook_1_1ui__utils_a4ab4e61dfab7973c87bef59c6e1977fe}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!ERROR\_COLOR@{ERROR\_COLOR}} +\index{ERROR\_COLOR@{ERROR\_COLOR}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{ERROR\_COLOR}{ERROR\_COLOR}} +{\footnotesize\ttfamily penify\+\_\+hook.\+ui\+\_\+utils.\+ERROR\+\_\+\+COLOR = Fore.\+RED} + +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_aa564e1e1d016c8227d076542e74cecb0}\label{namespacepenify__hook_1_1ui__utils_aa564e1e1d016c8227d076542e74cecb0}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!ERROR\_SYMBOL@{ERROR\_SYMBOL}} +\index{ERROR\_SYMBOL@{ERROR\_SYMBOL}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{ERROR\_SYMBOL}{ERROR\_SYMBOL}} +{\footnotesize\ttfamily string penify\+\_\+hook.\+ui\+\_\+utils.\+ERROR\+\_\+\+SYMBOL = \char`\"{}✗\char`\"{}} + +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_aba01b8259f0d66cdc2b4a1b58f9736fc}\label{namespacepenify__hook_1_1ui__utils_aba01b8259f0d66cdc2b4a1b58f9736fc}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!HIGHLIGHT\_COLOR@{HIGHLIGHT\_COLOR}} +\index{HIGHLIGHT\_COLOR@{HIGHLIGHT\_COLOR}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{HIGHLIGHT\_COLOR}{HIGHLIGHT\_COLOR}} +{\footnotesize\ttfamily penify\+\_\+hook.\+ui\+\_\+utils.\+HIGHLIGHT\+\_\+\+COLOR = Fore.\+BLUE} + +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a9fdcb180915696f5d217032a62c3857c}\label{namespacepenify__hook_1_1ui__utils_a9fdcb180915696f5d217032a62c3857c}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!INFO\_COLOR@{INFO\_COLOR}} +\index{INFO\_COLOR@{INFO\_COLOR}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{INFO\_COLOR}{INFO\_COLOR}} +{\footnotesize\ttfamily penify\+\_\+hook.\+ui\+\_\+utils.\+INFO\+\_\+\+COLOR = Fore.\+CYAN} + +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_aca0fcee81606857497520ae4290bc9f5}\label{namespacepenify__hook_1_1ui__utils_aca0fcee81606857497520ae4290bc9f5}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!NEUTRAL\_COLOR@{NEUTRAL\_COLOR}} +\index{NEUTRAL\_COLOR@{NEUTRAL\_COLOR}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{NEUTRAL\_COLOR}{NEUTRAL\_COLOR}} +{\footnotesize\ttfamily penify\+\_\+hook.\+ui\+\_\+utils.\+NEUTRAL\+\_\+\+COLOR = Fore.\+WHITE} + +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a3b208e2750a38dd09467a73e4afd9756}\label{namespacepenify__hook_1_1ui__utils_a3b208e2750a38dd09467a73e4afd9756}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!PROCESSING\_SYMBOL@{PROCESSING\_SYMBOL}} +\index{PROCESSING\_SYMBOL@{PROCESSING\_SYMBOL}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{PROCESSING\_SYMBOL}{PROCESSING\_SYMBOL}} +{\footnotesize\ttfamily string penify\+\_\+hook.\+ui\+\_\+utils.\+PROCESSING\+\_\+\+SYMBOL = \char`\"{}⟳\char`\"{}} + +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a22c450c5e2b5394618ecf9b636560df4}\label{namespacepenify__hook_1_1ui__utils_a22c450c5e2b5394618ecf9b636560df4}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!SUCCESS\_COLOR@{SUCCESS\_COLOR}} +\index{SUCCESS\_COLOR@{SUCCESS\_COLOR}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{SUCCESS\_COLOR}{SUCCESS\_COLOR}} +{\footnotesize\ttfamily penify\+\_\+hook.\+ui\+\_\+utils.\+SUCCESS\+\_\+\+COLOR = Fore.\+GREEN} + +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a3c6fe4bd17c1a5fe76587225ae4beb3e}\label{namespacepenify__hook_1_1ui__utils_a3c6fe4bd17c1a5fe76587225ae4beb3e}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!SUCCESS\_SYMBOL@{SUCCESS\_SYMBOL}} +\index{SUCCESS\_SYMBOL@{SUCCESS\_SYMBOL}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{SUCCESS\_SYMBOL}{SUCCESS\_SYMBOL}} +{\footnotesize\ttfamily string penify\+\_\+hook.\+ui\+\_\+utils.\+SUCCESS\+\_\+\+SYMBOL = \char`\"{}✓\char`\"{}} + +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a177bc9b44157844c999e0c1c2c6936ff}\label{namespacepenify__hook_1_1ui__utils_a177bc9b44157844c999e0c1c2c6936ff}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!WARNING\_COLOR@{WARNING\_COLOR}} +\index{WARNING\_COLOR@{WARNING\_COLOR}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{WARNING\_COLOR}{WARNING\_COLOR}} +{\footnotesize\ttfamily penify\+\_\+hook.\+ui\+\_\+utils.\+WARNING\+\_\+\+COLOR = Fore.\+YELLOW} + +\mbox{\Hypertarget{namespacepenify__hook_1_1ui__utils_a6eaea98f1a8cbe16a181647da2fc0a16}\label{namespacepenify__hook_1_1ui__utils_a6eaea98f1a8cbe16a181647da2fc0a16}} +\index{penify\_hook.ui\_utils@{penify\_hook.ui\_utils}!WARNING\_SYMBOL@{WARNING\_SYMBOL}} +\index{WARNING\_SYMBOL@{WARNING\_SYMBOL}!penify\_hook.ui\_utils@{penify\_hook.ui\_utils}} +\doxysubsubsection{\texorpdfstring{WARNING\_SYMBOL}{WARNING\_SYMBOL}} +{\footnotesize\ttfamily string penify\+\_\+hook.\+ui\+\_\+utils.\+WARNING\+\_\+\+SYMBOL = \char`\"{}○\char`\"{}} + diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a0a6fd2613c6fe053b6e4356cd9e5cda2_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a0a6fd2613c6fe053b6e4356cd9e5cda2_icgraph.md5 new file mode 100644 index 0000000..af56411 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a0a6fd2613c6fe053b6e4356cd9e5cda2_icgraph.md5 @@ -0,0 +1 @@ +e663fa2eb615359cda55bc721e1ea8f6 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a0a6fd2613c6fe053b6e4356cd9e5cda2_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a0a6fd2613c6fe053b6e4356cd9e5cda2_icgraph.pdf new file mode 100644 index 0000000..ed469b7 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a0a6fd2613c6fe053b6e4356cd9e5cda2_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c_cgraph.md5 new file mode 100644 index 0000000..d1af907 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c_cgraph.md5 @@ -0,0 +1 @@ +19fce3e6997e2ef0633b1f73b2c61e53 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c_cgraph.pdf new file mode 100644 index 0000000..5893034 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c_icgraph.md5 new file mode 100644 index 0000000..01a1c99 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c_icgraph.md5 @@ -0,0 +1 @@ +300c1a1f6c4178fe5c6ea33451e858a9 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c_icgraph.pdf new file mode 100644 index 0000000..989df1f Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa_cgraph.md5 new file mode 100644 index 0000000..07d748c --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa_cgraph.md5 @@ -0,0 +1 @@ +70be5c25b8f76c9cbe722a4c845dacb4 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa_cgraph.pdf new file mode 100644 index 0000000..eda9efe Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa_icgraph.md5 new file mode 100644 index 0000000..82efec0 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa_icgraph.md5 @@ -0,0 +1 @@ +ca11cb4a1d1674ec6bcd140e0e92426c \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa_icgraph.pdf new file mode 100644 index 0000000..f933757 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a_cgraph.md5 new file mode 100644 index 0000000..8ca38f6 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a_cgraph.md5 @@ -0,0 +1 @@ +9c0df5b451b1b193b987fcaca416a372 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a_cgraph.pdf new file mode 100644 index 0000000..932c424 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a_icgraph.md5 new file mode 100644 index 0000000..1f5f074 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a_icgraph.md5 @@ -0,0 +1 @@ +34b1281180eb32df71f54579464a2fa1 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a_icgraph.pdf new file mode 100644 index 0000000..67d7084 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef_cgraph.md5 new file mode 100644 index 0000000..0ad3229 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef_cgraph.md5 @@ -0,0 +1 @@ +b0378d8fbf6334d6c77fb949c6b544c7 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef_cgraph.pdf new file mode 100644 index 0000000..854a72c Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef_icgraph.md5 new file mode 100644 index 0000000..9899454 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef_icgraph.md5 @@ -0,0 +1 @@ +fc34358015e84dbc051a8b0a2b054254 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef_icgraph.pdf new file mode 100644 index 0000000..ab28453 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a4dd934568897433fa73f9cc182ac4a3e_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a4dd934568897433fa73f9cc182ac4a3e_icgraph.md5 new file mode 100644 index 0000000..7ef5c64 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a4dd934568897433fa73f9cc182ac4a3e_icgraph.md5 @@ -0,0 +1 @@ +3fe1856d72a9cdb24dec0a23e208fd90 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a4dd934568897433fa73f9cc182ac4a3e_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a4dd934568897433fa73f9cc182ac4a3e_icgraph.pdf new file mode 100644 index 0000000..89a7554 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a4dd934568897433fa73f9cc182ac4a3e_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a532cdb4de7c679ce8b29c3e9116c4776_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a532cdb4de7c679ce8b29c3e9116c4776_icgraph.md5 new file mode 100644 index 0000000..2db7a9e --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a532cdb4de7c679ce8b29c3e9116c4776_icgraph.md5 @@ -0,0 +1 @@ +491384c48920332a4dde903091ffc468 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a532cdb4de7c679ce8b29c3e9116c4776_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a532cdb4de7c679ce8b29c3e9116c4776_icgraph.pdf new file mode 100644 index 0000000..2cde8c3 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a532cdb4de7c679ce8b29c3e9116c4776_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a5a7340d0fc60fb80f17514d60bf45f1d_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a5a7340d0fc60fb80f17514d60bf45f1d_icgraph.md5 new file mode 100644 index 0000000..d287e6e --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a5a7340d0fc60fb80f17514d60bf45f1d_icgraph.md5 @@ -0,0 +1 @@ +4d4a093b7aec08ccfb2e3c2fa9e02f93 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a5a7340d0fc60fb80f17514d60bf45f1d_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a5a7340d0fc60fb80f17514d60bf45f1d_icgraph.pdf new file mode 100644 index 0000000..e988e1f Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a5a7340d0fc60fb80f17514d60bf45f1d_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f_cgraph.md5 new file mode 100644 index 0000000..b8fd6fd --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f_cgraph.md5 @@ -0,0 +1 @@ +c07668a21f84a502971e51c3ec052a1d \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f_cgraph.pdf new file mode 100644 index 0000000..5397a4f Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f_icgraph.md5 new file mode 100644 index 0000000..9bac1c3 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f_icgraph.md5 @@ -0,0 +1 @@ +a63adb6c32baaadc7371e59f88486925 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f_icgraph.pdf new file mode 100644 index 0000000..b0ede8f Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44_cgraph.md5 new file mode 100644 index 0000000..72350e1 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44_cgraph.md5 @@ -0,0 +1 @@ +5e886512bfa3b5ecab8ffd1d27aa317e \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44_cgraph.pdf new file mode 100644 index 0000000..1afe42a Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44_icgraph.md5 new file mode 100644 index 0000000..464639d --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44_icgraph.md5 @@ -0,0 +1 @@ +e37788ed8581894cb82e64ff5d26478b \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44_icgraph.pdf new file mode 100644 index 0000000..8f23c9f Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a92c3e466d1912058167be2eacf85b9f6_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_a92c3e466d1912058167be2eacf85b9f6_icgraph.md5 new file mode 100644 index 0000000..9552aa1 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_a92c3e466d1912058167be2eacf85b9f6_icgraph.md5 @@ -0,0 +1 @@ +6390b9f91feee996985fec5b07a8d662 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_a92c3e466d1912058167be2eacf85b9f6_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_a92c3e466d1912058167be2eacf85b9f6_icgraph.pdf new file mode 100644 index 0000000..099d9fb Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_a92c3e466d1912058167be2eacf85b9f6_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_aa6e684c00e26199440137a87ed9b195c_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_aa6e684c00e26199440137a87ed9b195c_icgraph.md5 new file mode 100644 index 0000000..b327300 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_aa6e684c00e26199440137a87ed9b195c_icgraph.md5 @@ -0,0 +1 @@ +13ad7e031e0f0b0482a3fe947abea8ed \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_aa6e684c00e26199440137a87ed9b195c_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_aa6e684c00e26199440137a87ed9b195c_icgraph.pdf new file mode 100644 index 0000000..39a3c40 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_aa6e684c00e26199440137a87ed9b195c_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115_cgraph.md5 new file mode 100644 index 0000000..c5b1891 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115_cgraph.md5 @@ -0,0 +1 @@ +b526078e85ee560b544ee7131cc9773c \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115_cgraph.pdf new file mode 100644 index 0000000..353af39 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115_icgraph.md5 new file mode 100644 index 0000000..7ec52bf --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115_icgraph.md5 @@ -0,0 +1 @@ +970262b12fb8d1d44ba27eecb2c5fb46 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115_icgraph.pdf new file mode 100644 index 0000000..1059921 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_af3441fb3c2c3850b8b3b6455a9fdaba4_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1ui__utils_af3441fb3c2c3850b8b3b6455a9fdaba4_icgraph.md5 new file mode 100644 index 0000000..ceef957 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1ui__utils_af3441fb3c2c3850b8b3b6455a9fdaba4_icgraph.md5 @@ -0,0 +1 @@ +52e65524883c80f70b6b5e7f4f8e7d0b \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1ui__utils_af3441fb3c2c3850b8b3b6455a9fdaba4_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1ui__utils_af3441fb3c2c3850b8b3b6455a9fdaba4_icgraph.pdf new file mode 100644 index 0000000..c6ceb05 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1ui__utils_af3441fb3c2c3850b8b3b6455a9fdaba4_icgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1utils.tex b/docs/latex/namespacepenify__hook_1_1utils.tex new file mode 100644 index 0000000..026440a --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1utils.tex @@ -0,0 +1,87 @@ +\hypertarget{namespacepenify__hook_1_1utils}{}\doxysection{penify\+\_\+hook.\+utils Namespace Reference} +\label{namespacepenify__hook_1_1utils}\index{penify\_hook.utils@{penify\_hook.utils}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1utils_1_1GitRepoNotFoundError}{Git\+Repo\+Not\+Found\+Error}} +\end{DoxyCompactItemize} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1utils_ae236f3c4c8bf5dcddbb92b4c2065eea3}{get\+\_\+repo\+\_\+details}} (Repo repo) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f}{recursive\+\_\+search\+\_\+git\+\_\+folder}} (folder\+\_\+path) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1utils_a4ec5335a4026c22a34a3a8ccf665a5f2}{find\+\_\+git\+\_\+parent}} (path) +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{namespacepenify__hook_1_1utils_a0c0c1ed6b197038085c94a90ceedfb01}{logger}} = logging.\+get\+Logger(\+\_\+\+\_\+name\+\_\+\+\_\+) +\end{DoxyCompactItemize} + + +\doxysubsection{Function Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1utils_a4ec5335a4026c22a34a3a8ccf665a5f2}\label{namespacepenify__hook_1_1utils_a4ec5335a4026c22a34a3a8ccf665a5f2}} +\index{penify\_hook.utils@{penify\_hook.utils}!find\_git\_parent@{find\_git\_parent}} +\index{find\_git\_parent@{find\_git\_parent}!penify\_hook.utils@{penify\_hook.utils}} +\doxysubsubsection{\texorpdfstring{find\_git\_parent()}{find\_git\_parent()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+utils.\+find\+\_\+git\+\_\+parent (\begin{DoxyParamCaption}\item[{}]{path }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Traverse up from the given path to find the nearest directory containing a .git +subdirectory.\end{DoxyVerb} + \mbox{\Hypertarget{namespacepenify__hook_1_1utils_ae236f3c4c8bf5dcddbb92b4c2065eea3}\label{namespacepenify__hook_1_1utils_ae236f3c4c8bf5dcddbb92b4c2065eea3}} +\index{penify\_hook.utils@{penify\_hook.utils}!get\_repo\_details@{get\_repo\_details}} +\index{get\_repo\_details@{get\_repo\_details}!penify\_hook.utils@{penify\_hook.utils}} +\doxysubsubsection{\texorpdfstring{get\_repo\_details()}{get\_repo\_details()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+utils.\+get\+\_\+repo\+\_\+details (\begin{DoxyParamCaption}\item[{Repo}]{repo }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Determine the details of a repository including its remote URL, hosting +service, organization name, and repository name. + +This function extracts the remote URL from the given Git repository object and +determines the hosting service (e.g., GitHub, Azure DevOps, Bitbucket, GitLab). +It then parses the URL to extract the organization name and repository name. If +the URL does not match any known hosting service pattern, it sets the hosting +service as "Unknown". The function handles exceptions that may occur during +this process and logs an error message if needed. + +Args: + repo (Repo): A GitPython Repo object representing the local git repository. + +Returns: + dict: A dictionary containing the organization name, repository name, and hosting + service. +\end{DoxyVerb} + \mbox{\Hypertarget{namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f}\label{namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f}} +\index{penify\_hook.utils@{penify\_hook.utils}!recursive\_search\_git\_folder@{recursive\_search\_git\_folder}} +\index{recursive\_search\_git\_folder@{recursive\_search\_git\_folder}!penify\_hook.utils@{penify\_hook.utils}} +\doxysubsubsection{\texorpdfstring{recursive\_search\_git\_folder()}{recursive\_search\_git\_folder()}} +{\footnotesize\ttfamily def penify\+\_\+hook.\+utils.\+recursive\+\_\+search\+\_\+git\+\_\+folder (\begin{DoxyParamCaption}\item[{}]{folder\+\_\+path }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Recursively searches for a .git folder starting from the given directory.\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=228pt]{namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f_cgraph} +\end{center} +\end{figure} +Here is the caller graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f_icgraph} +\end{center} +\end{figure} + + +\doxysubsection{Variable Documentation} +\mbox{\Hypertarget{namespacepenify__hook_1_1utils_a0c0c1ed6b197038085c94a90ceedfb01}\label{namespacepenify__hook_1_1utils_a0c0c1ed6b197038085c94a90ceedfb01}} +\index{penify\_hook.utils@{penify\_hook.utils}!logger@{logger}} +\index{logger@{logger}!penify\_hook.utils@{penify\_hook.utils}} +\doxysubsubsection{\texorpdfstring{logger}{logger}} +{\footnotesize\ttfamily penify\+\_\+hook.\+utils.\+logger = logging.\+get\+Logger(\+\_\+\+\_\+name\+\_\+\+\_\+)} + diff --git a/docs/latex/namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f_cgraph.md5 b/docs/latex/namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f_cgraph.md5 new file mode 100644 index 0000000..78bbf32 --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f_cgraph.md5 @@ -0,0 +1 @@ +b51fc064bcca3ad23807f3addc7355aa \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f_cgraph.pdf b/docs/latex/namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f_cgraph.pdf new file mode 100644 index 0000000..1ce9f23 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f_cgraph.pdf differ diff --git a/docs/latex/namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f_icgraph.md5 b/docs/latex/namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f_icgraph.md5 new file mode 100644 index 0000000..f17a45b --- /dev/null +++ b/docs/latex/namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f_icgraph.md5 @@ -0,0 +1 @@ +253fafa9cbc0e256de834d2b70dee073 \ No newline at end of file diff --git a/docs/latex/namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f_icgraph.pdf b/docs/latex/namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f_icgraph.pdf new file mode 100644 index 0000000..17eb5f6 Binary files /dev/null and b/docs/latex/namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f_icgraph.pdf differ diff --git a/docs/latex/namespaces.tex b/docs/latex/namespaces.tex new file mode 100644 index 0000000..a46ac4c --- /dev/null +++ b/docs/latex/namespaces.tex @@ -0,0 +1,31 @@ +\doxysection{Namespace List} +Here is a list of all namespaces with brief descriptions\+:\begin{DoxyCompactList} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} }{\pageref{namespacepenify__hook}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1api__client}{penify\+\_\+hook.\+api\+\_\+client}} }{\pageref{namespacepenify__hook_1_1api__client}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1base__analyzer}{penify\+\_\+hook.\+base\+\_\+analyzer}} }{\pageref{namespacepenify__hook_1_1base__analyzer}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1commands}{penify\+\_\+hook.\+commands}} }{\pageref{namespacepenify__hook_1_1commands}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1auth__commands}{penify\+\_\+hook.\+commands.\+auth\+\_\+commands}} }{\pageref{namespacepenify__hook_1_1commands_1_1auth__commands}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1commit__commands}{penify\+\_\+hook.\+commands.\+commit\+\_\+commands}} }{\pageref{namespacepenify__hook_1_1commands_1_1commit__commands}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1config__commands}{penify\+\_\+hook.\+commands.\+config\+\_\+commands}} }{\pageref{namespacepenify__hook_1_1commands_1_1config__commands}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1doc__commands}{penify\+\_\+hook.\+commands.\+doc\+\_\+commands}} }{\pageref{namespacepenify__hook_1_1commands_1_1doc__commands}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1commands_1_1hook__commands}{penify\+\_\+hook.\+commands.\+hook\+\_\+commands}} }{\pageref{namespacepenify__hook_1_1commands_1_1hook__commands}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1commit__analyzer}{penify\+\_\+hook.\+commit\+\_\+analyzer}} }{\pageref{namespacepenify__hook_1_1commit__analyzer}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1config__command}{penify\+\_\+hook.\+config\+\_\+command}} }{\pageref{namespacepenify__hook_1_1config__command}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1constants}{penify\+\_\+hook.\+constants}} }{\pageref{namespacepenify__hook_1_1constants}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1file__analyzer}{penify\+\_\+hook.\+file\+\_\+analyzer}} }{\pageref{namespacepenify__hook_1_1file__analyzer}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1folder__analyzer}{penify\+\_\+hook.\+folder\+\_\+analyzer}} }{\pageref{namespacepenify__hook_1_1folder__analyzer}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1git__analyzer}{penify\+\_\+hook.\+git\+\_\+analyzer}} }{\pageref{namespacepenify__hook_1_1git__analyzer}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1jira__client}{penify\+\_\+hook.\+jira\+\_\+client}} }{\pageref{namespacepenify__hook_1_1jira__client}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1llm__client}{penify\+\_\+hook.\+llm\+\_\+client}} }{\pageref{namespacepenify__hook_1_1llm__client}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1login__command}{penify\+\_\+hook.\+login\+\_\+command}} }{\pageref{namespacepenify__hook_1_1login__command}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1main}{penify\+\_\+hook.\+main}} }{\pageref{namespacepenify__hook_1_1main}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils}{penify\+\_\+hook.\+ui\+\_\+utils}} }{\pageref{namespacepenify__hook_1_1ui__utils}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacepenify__hook_1_1utils}{penify\+\_\+hook.\+utils}} }{\pageref{namespacepenify__hook_1_1utils}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacesetup}{setup}} }{\pageref{namespacesetup}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacetests}{tests}} }{\pageref{namespacetests}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacetests_1_1conftest}{tests.\+conftest}} }{\pageref{namespacetests_1_1conftest}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacetests_1_1test__commit__commands}{tests.\+test\+\_\+commit\+\_\+commands}} }{\pageref{namespacetests_1_1test__commit__commands}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacetests_1_1test__config__commands}{tests.\+test\+\_\+config\+\_\+commands}} }{\pageref{namespacetests_1_1test__config__commands}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacetests_1_1test__doc__commands}{tests.\+test\+\_\+doc\+\_\+commands}} }{\pageref{namespacetests_1_1test__doc__commands}}{} +\item\contentsline{section}{\mbox{\hyperlink{namespacetests_1_1test__web__config}{tests.\+test\+\_\+web\+\_\+config}} }{\pageref{namespacetests_1_1test__web__config}}{} +\end{DoxyCompactList} diff --git a/docs/latex/namespacesetup.tex b/docs/latex/namespacesetup.tex new file mode 100644 index 0000000..e6ce9dc --- /dev/null +++ b/docs/latex/namespacesetup.tex @@ -0,0 +1,112 @@ +\hypertarget{namespacesetup}{}\doxysection{setup Namespace Reference} +\label{namespacesetup}\index{setup@{setup}} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{namespacesetup_ab3a7a0638d76a01367c5bc3cc699447f}{name}} +\item +\mbox{\hyperlink{namespacesetup_a2aa722b36a933088812b50ea79b97a5c}{version}} +\item +\mbox{\hyperlink{namespacesetup_aff2375a361fd5865c77bd9aa093be747}{packages}} +\item +\mbox{\hyperlink{namespacesetup_abead4f26b530856f858f0d44c7cf2588}{install\+\_\+requires}} +\item +\mbox{\hyperlink{namespacesetup_ada7058afc98897f073d3f3b8b9157059}{entry\+\_\+points}} +\item +\mbox{\hyperlink{namespacesetup_a3a57a4772d418a06835249cbade0d86a}{author}} +\item +\mbox{\hyperlink{namespacesetup_a5b08034343aa2be607722a8b315f3625}{author\+\_\+email}} +\item +\mbox{\hyperlink{namespacesetup_aedf461ec52a946bda975938ba0b93ec0}{description}} +\item +\mbox{\hyperlink{namespacesetup_a4cda9dbfb952875376a0749fe08a5bde}{long\+\_\+description}} +\item +\mbox{\hyperlink{namespacesetup_a3796ea10c998699d07d391414ff5d720}{long\+\_\+description\+\_\+content\+\_\+type}} +\item +\mbox{\hyperlink{namespacesetup_afc13124aa5c0124e84e1d965e3f4b0fb}{url}} +\item +\mbox{\hyperlink{namespacesetup_abe96a9c38c1c61f9f0fdb002c482f785}{classifiers}} +\item +\mbox{\hyperlink{namespacesetup_aa7ca7bc9391b217e81efeb03689d8dbf}{python\+\_\+requires}} +\end{DoxyCompactItemize} + + +\doxysubsection{Variable Documentation} +\mbox{\Hypertarget{namespacesetup_a3a57a4772d418a06835249cbade0d86a}\label{namespacesetup_a3a57a4772d418a06835249cbade0d86a}} +\index{setup@{setup}!author@{author}} +\index{author@{author}!setup@{setup}} +\doxysubsubsection{\texorpdfstring{author}{author}} +{\footnotesize\ttfamily setup.\+author} + +\mbox{\Hypertarget{namespacesetup_a5b08034343aa2be607722a8b315f3625}\label{namespacesetup_a5b08034343aa2be607722a8b315f3625}} +\index{setup@{setup}!author\_email@{author\_email}} +\index{author\_email@{author\_email}!setup@{setup}} +\doxysubsubsection{\texorpdfstring{author\_email}{author\_email}} +{\footnotesize\ttfamily setup.\+author\+\_\+email} + +\mbox{\Hypertarget{namespacesetup_abe96a9c38c1c61f9f0fdb002c482f785}\label{namespacesetup_abe96a9c38c1c61f9f0fdb002c482f785}} +\index{setup@{setup}!classifiers@{classifiers}} +\index{classifiers@{classifiers}!setup@{setup}} +\doxysubsubsection{\texorpdfstring{classifiers}{classifiers}} +{\footnotesize\ttfamily setup.\+classifiers} + +\mbox{\Hypertarget{namespacesetup_aedf461ec52a946bda975938ba0b93ec0}\label{namespacesetup_aedf461ec52a946bda975938ba0b93ec0}} +\index{setup@{setup}!description@{description}} +\index{description@{description}!setup@{setup}} +\doxysubsubsection{\texorpdfstring{description}{description}} +{\footnotesize\ttfamily setup.\+description} + +\mbox{\Hypertarget{namespacesetup_ada7058afc98897f073d3f3b8b9157059}\label{namespacesetup_ada7058afc98897f073d3f3b8b9157059}} +\index{setup@{setup}!entry\_points@{entry\_points}} +\index{entry\_points@{entry\_points}!setup@{setup}} +\doxysubsubsection{\texorpdfstring{entry\_points}{entry\_points}} +{\footnotesize\ttfamily setup.\+entry\+\_\+points} + +\mbox{\Hypertarget{namespacesetup_abead4f26b530856f858f0d44c7cf2588}\label{namespacesetup_abead4f26b530856f858f0d44c7cf2588}} +\index{setup@{setup}!install\_requires@{install\_requires}} +\index{install\_requires@{install\_requires}!setup@{setup}} +\doxysubsubsection{\texorpdfstring{install\_requires}{install\_requires}} +{\footnotesize\ttfamily setup.\+install\+\_\+requires} + +\mbox{\Hypertarget{namespacesetup_a4cda9dbfb952875376a0749fe08a5bde}\label{namespacesetup_a4cda9dbfb952875376a0749fe08a5bde}} +\index{setup@{setup}!long\_description@{long\_description}} +\index{long\_description@{long\_description}!setup@{setup}} +\doxysubsubsection{\texorpdfstring{long\_description}{long\_description}} +{\footnotesize\ttfamily setup.\+long\+\_\+description} + +\mbox{\Hypertarget{namespacesetup_a3796ea10c998699d07d391414ff5d720}\label{namespacesetup_a3796ea10c998699d07d391414ff5d720}} +\index{setup@{setup}!long\_description\_content\_type@{long\_description\_content\_type}} +\index{long\_description\_content\_type@{long\_description\_content\_type}!setup@{setup}} +\doxysubsubsection{\texorpdfstring{long\_description\_content\_type}{long\_description\_content\_type}} +{\footnotesize\ttfamily setup.\+long\+\_\+description\+\_\+content\+\_\+type} + +\mbox{\Hypertarget{namespacesetup_ab3a7a0638d76a01367c5bc3cc699447f}\label{namespacesetup_ab3a7a0638d76a01367c5bc3cc699447f}} +\index{setup@{setup}!name@{name}} +\index{name@{name}!setup@{setup}} +\doxysubsubsection{\texorpdfstring{name}{name}} +{\footnotesize\ttfamily setup.\+name} + +\mbox{\Hypertarget{namespacesetup_aff2375a361fd5865c77bd9aa093be747}\label{namespacesetup_aff2375a361fd5865c77bd9aa093be747}} +\index{setup@{setup}!packages@{packages}} +\index{packages@{packages}!setup@{setup}} +\doxysubsubsection{\texorpdfstring{packages}{packages}} +{\footnotesize\ttfamily setup.\+packages} + +\mbox{\Hypertarget{namespacesetup_aa7ca7bc9391b217e81efeb03689d8dbf}\label{namespacesetup_aa7ca7bc9391b217e81efeb03689d8dbf}} +\index{setup@{setup}!python\_requires@{python\_requires}} +\index{python\_requires@{python\_requires}!setup@{setup}} +\doxysubsubsection{\texorpdfstring{python\_requires}{python\_requires}} +{\footnotesize\ttfamily setup.\+python\+\_\+requires} + +\mbox{\Hypertarget{namespacesetup_afc13124aa5c0124e84e1d965e3f4b0fb}\label{namespacesetup_afc13124aa5c0124e84e1d965e3f4b0fb}} +\index{setup@{setup}!url@{url}} +\index{url@{url}!setup@{setup}} +\doxysubsubsection{\texorpdfstring{url}{url}} +{\footnotesize\ttfamily setup.\+url} + +\mbox{\Hypertarget{namespacesetup_a2aa722b36a933088812b50ea79b97a5c}\label{namespacesetup_a2aa722b36a933088812b50ea79b97a5c}} +\index{setup@{setup}!version@{version}} +\index{version@{version}!setup@{setup}} +\doxysubsubsection{\texorpdfstring{version}{version}} +{\footnotesize\ttfamily setup.\+version} + diff --git a/docs/latex/namespacetests.tex b/docs/latex/namespacetests.tex new file mode 100644 index 0000000..a22c9d9 --- /dev/null +++ b/docs/latex/namespacetests.tex @@ -0,0 +1,15 @@ +\hypertarget{namespacetests}{}\doxysection{tests Namespace Reference} +\label{namespacetests}\index{tests@{tests}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacetests_1_1conftest}{conftest}} +\item +namespace \mbox{\hyperlink{namespacetests_1_1test__commit__commands}{test\+\_\+commit\+\_\+commands}} +\item +namespace \mbox{\hyperlink{namespacetests_1_1test__config__commands}{test\+\_\+config\+\_\+commands}} +\item +namespace \mbox{\hyperlink{namespacetests_1_1test__doc__commands}{test\+\_\+doc\+\_\+commands}} +\item +namespace \mbox{\hyperlink{namespacetests_1_1test__web__config}{test\+\_\+web\+\_\+config}} +\end{DoxyCompactItemize} diff --git a/docs/latex/namespacetests_1_1conftest.tex b/docs/latex/namespacetests_1_1conftest.tex new file mode 100644 index 0000000..12ab1d5 --- /dev/null +++ b/docs/latex/namespacetests_1_1conftest.tex @@ -0,0 +1,2 @@ +\hypertarget{namespacetests_1_1conftest}{}\doxysection{tests.\+conftest Namespace Reference} +\label{namespacetests_1_1conftest}\index{tests.conftest@{tests.conftest}} diff --git a/docs/latex/namespacetests_1_1test__commit__commands.tex b/docs/latex/namespacetests_1_1test__commit__commands.tex new file mode 100644 index 0000000..32b7e14 --- /dev/null +++ b/docs/latex/namespacetests_1_1test__commit__commands.tex @@ -0,0 +1,7 @@ +\hypertarget{namespacetests_1_1test__commit__commands}{}\doxysection{tests.\+test\+\_\+commit\+\_\+commands Namespace Reference} +\label{namespacetests_1_1test__commit__commands}\index{tests.test\_commit\_commands@{tests.test\_commit\_commands}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands}{Test\+Commit\+Commands}} +\end{DoxyCompactItemize} diff --git a/docs/latex/namespacetests_1_1test__config__commands.tex b/docs/latex/namespacetests_1_1test__config__commands.tex new file mode 100644 index 0000000..52a1b4c --- /dev/null +++ b/docs/latex/namespacetests_1_1test__config__commands.tex @@ -0,0 +1,7 @@ +\hypertarget{namespacetests_1_1test__config__commands}{}\doxysection{tests.\+test\+\_\+config\+\_\+commands Namespace Reference} +\label{namespacetests_1_1test__config__commands}\index{tests.test\_config\_commands@{tests.test\_config\_commands}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands}{Test\+Config\+Commands}} +\end{DoxyCompactItemize} diff --git a/docs/latex/namespacetests_1_1test__doc__commands.tex b/docs/latex/namespacetests_1_1test__doc__commands.tex new file mode 100644 index 0000000..70935c2 --- /dev/null +++ b/docs/latex/namespacetests_1_1test__doc__commands.tex @@ -0,0 +1,323 @@ +\hypertarget{namespacetests_1_1test__doc__commands}{}\doxysection{tests.\+test\+\_\+doc\+\_\+commands Namespace Reference} +\label{namespacetests_1_1test__doc__commands}\index{tests.test\_doc\_commands@{tests.test\_doc\_commands}} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_a806110833eb0aad547156faf014b31d8}{test\+\_\+generate\+\_\+doc\+\_\+no\+\_\+location}} (mock\+\_\+getcwd, mock\+\_\+api\+\_\+client, mock\+\_\+folder\+\_\+analyzer, mock\+\_\+file\+\_\+analyzer, mock\+\_\+git\+\_\+analyzer) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_a0e74c920f258f442914771164fe26b45}{test\+\_\+generate\+\_\+doc\+\_\+file\+\_\+location}} (mock\+\_\+api\+\_\+client, mock\+\_\+folder\+\_\+analyzer, mock\+\_\+file\+\_\+analyzer, mock\+\_\+git\+\_\+analyzer) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_a4bb75610e40d94d42bc169b25403c186}{test\+\_\+generate\+\_\+doc\+\_\+folder\+\_\+location}} (mock\+\_\+api\+\_\+client, mock\+\_\+folder\+\_\+analyzer, mock\+\_\+file\+\_\+analyzer, mock\+\_\+git\+\_\+analyzer) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_aec76cc25c23476794234cdadbcaef0c0}{test\+\_\+generate\+\_\+doc\+\_\+error\+\_\+handling}} (mock\+\_\+api\+\_\+client, mock\+\_\+git\+\_\+analyzer, mock\+\_\+exit) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_a0f27751d0ba2acfe40ef7e85bccf47d7}{test\+\_\+setup\+\_\+docgen\+\_\+parser}} () +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_ab74688baa8c9b5ba302c2877a9789d05}{test\+\_\+handle\+\_\+docgen\+\_\+install\+\_\+hook}} (mock\+\_\+exit, mock\+\_\+get\+\_\+token, mock\+\_\+generate\+\_\+doc, mock\+\_\+uninstall\+\_\+hook, mock\+\_\+install\+\_\+hook) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_a1458af9ad0128c3ca1263b552fd5e482}{test\+\_\+handle\+\_\+docgen\+\_\+uninstall\+\_\+hook}} (mock\+\_\+exit, mock\+\_\+get\+\_\+token, mock\+\_\+generate\+\_\+doc, mock\+\_\+uninstall\+\_\+hook, mock\+\_\+install\+\_\+hook) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_ab158ffa48469b6c097a7a55fcb20c21a}{test\+\_\+handle\+\_\+docgen\+\_\+generate}} (mock\+\_\+get\+\_\+token, mock\+\_\+generate\+\_\+doc, mock\+\_\+uninstall\+\_\+hook, mock\+\_\+install\+\_\+hook) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_af9b01e5fc89255cac96747fa081c442c}{test\+\_\+handle\+\_\+docgen\+\_\+no\+\_\+token}} (mock\+\_\+exit, mock\+\_\+get\+\_\+token) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_a335e7fd4912192c7276cf31bbebc6eb0}{test\+\_\+generate\+\_\+doc\+\_\+with\+\_\+file\+\_\+exception}} (mock\+\_\+api\+\_\+client, mock\+\_\+getcwd) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_a64165ddfdb3071a88422f080f0e529a3}{test\+\_\+generate\+\_\+doc\+\_\+with\+\_\+folder\+\_\+exception}} (mock\+\_\+api\+\_\+client, mock\+\_\+getcwd) +\end{DoxyCompactItemize} + + +\doxysubsection{Function Documentation} +\mbox{\Hypertarget{namespacetests_1_1test__doc__commands_aec76cc25c23476794234cdadbcaef0c0}\label{namespacetests_1_1test__doc__commands_aec76cc25c23476794234cdadbcaef0c0}} +\index{tests.test\_doc\_commands@{tests.test\_doc\_commands}!test\_generate\_doc\_error\_handling@{test\_generate\_doc\_error\_handling}} +\index{test\_generate\_doc\_error\_handling@{test\_generate\_doc\_error\_handling}!tests.test\_doc\_commands@{tests.test\_doc\_commands}} +\doxysubsubsection{\texorpdfstring{test\_generate\_doc\_error\_handling()}{test\_generate\_doc\_error\_handling()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+generate\+\_\+doc\+\_\+error\+\_\+handling (\begin{DoxyParamCaption}\item[{}]{mock\+\_\+api\+\_\+client, }\item[{}]{mock\+\_\+git\+\_\+analyzer, }\item[{}]{mock\+\_\+exit }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Generate a documentation string for the provided code snippet using +Google Docstring style. + +Short one line description: Test function to ensure proper error +handling during API calls with GitAnalyzer. Multiline long description: +This test function is designed to verify that the generate_doc function +handles exceptions correctly when an error occurs during API interaction +with GitAnalyzer. It sets up a mock API client and a mock Git analyzer, +causing the analyzer to raise an exception to simulate a failure +condition. The function then asserts that the exit code is set to 1 when +the error handling mechanism is invoked. + +Args: + mock_api_client (MagicMock): A mock object simulating the API client. + mock_git_analyzer (MagicMock): A mock object simulating the Git analyzer, configured to raise an + exception. + mock_exit (MagicMock): A mock object representing the exit function, which should be called + with an error code. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacetests_1_1test__doc__commands_aec76cc25c23476794234cdadbcaef0c0_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacetests_1_1test__doc__commands_a0e74c920f258f442914771164fe26b45}\label{namespacetests_1_1test__doc__commands_a0e74c920f258f442914771164fe26b45}} +\index{tests.test\_doc\_commands@{tests.test\_doc\_commands}!test\_generate\_doc\_file\_location@{test\_generate\_doc\_file\_location}} +\index{test\_generate\_doc\_file\_location@{test\_generate\_doc\_file\_location}!tests.test\_doc\_commands@{tests.test\_doc\_commands}} +\doxysubsubsection{\texorpdfstring{test\_generate\_doc\_file\_location()}{test\_generate\_doc\_file\_location()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+generate\+\_\+doc\+\_\+file\+\_\+location (\begin{DoxyParamCaption}\item[{}]{mock\+\_\+api\+\_\+client, }\item[{}]{mock\+\_\+folder\+\_\+analyzer, }\item[{}]{mock\+\_\+file\+\_\+analyzer, }\item[{}]{mock\+\_\+git\+\_\+analyzer }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test generating a documentation file location. + +This function tests the process of generating a documentation file +location using mock objects for API client, folder analyzer, file +analyzer, and Git analyzer. It sets up the necessary mocks, calls the +`generate_doc` function with specified parameters, and asserts that the +appropriate methods on the mock objects are called as expected. + +Args: + mock_api_client (MagicMock): Mock object for the API client. + mock_folder_analyzer (MagicMock): Mock object for the folder analyzer. + mock_file_analyzer (MagicMock): Mock object for the file analyzer. + mock_git_analyzer (MagicMock): Mock object for the Git analyzer. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacetests_1_1test__doc__commands_a0e74c920f258f442914771164fe26b45_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacetests_1_1test__doc__commands_a4bb75610e40d94d42bc169b25403c186}\label{namespacetests_1_1test__doc__commands_a4bb75610e40d94d42bc169b25403c186}} +\index{tests.test\_doc\_commands@{tests.test\_doc\_commands}!test\_generate\_doc\_folder\_location@{test\_generate\_doc\_folder\_location}} +\index{test\_generate\_doc\_folder\_location@{test\_generate\_doc\_folder\_location}!tests.test\_doc\_commands@{tests.test\_doc\_commands}} +\doxysubsubsection{\texorpdfstring{test\_generate\_doc\_folder\_location()}{test\_generate\_doc\_folder\_location()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+generate\+\_\+doc\+\_\+folder\+\_\+location (\begin{DoxyParamCaption}\item[{}]{mock\+\_\+api\+\_\+client, }\item[{}]{mock\+\_\+folder\+\_\+analyzer, }\item[{}]{mock\+\_\+file\+\_\+analyzer, }\item[{}]{mock\+\_\+git\+\_\+analyzer }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the function to generate documentation for a folder location. + +It sets up mock objects for API client, folder analyzer, file analyzer, +and Git analyzer, then calls the `generate_doc` function with specified +parameters. Finally, it asserts that the correct methods on the mock +objects were called as expected. + +Args: + mock_api_client (MagicMock): Mock object for the API client. + mock_folder_analyzer (MagicMock): Mock object for the folder analyzer. + mock_file_analyzer (MagicMock): Mock object for the file analyzer. + mock_git_analyzer (MagicMock): Mock object for the Git analyzer. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacetests_1_1test__doc__commands_a4bb75610e40d94d42bc169b25403c186_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacetests_1_1test__doc__commands_a806110833eb0aad547156faf014b31d8}\label{namespacetests_1_1test__doc__commands_a806110833eb0aad547156faf014b31d8}} +\index{tests.test\_doc\_commands@{tests.test\_doc\_commands}!test\_generate\_doc\_no\_location@{test\_generate\_doc\_no\_location}} +\index{test\_generate\_doc\_no\_location@{test\_generate\_doc\_no\_location}!tests.test\_doc\_commands@{tests.test\_doc\_commands}} +\doxysubsubsection{\texorpdfstring{test\_generate\_doc\_no\_location()}{test\_generate\_doc\_no\_location()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+generate\+\_\+doc\+\_\+no\+\_\+location (\begin{DoxyParamCaption}\item[{}]{mock\+\_\+getcwd, }\item[{}]{mock\+\_\+api\+\_\+client, }\item[{}]{mock\+\_\+folder\+\_\+analyzer, }\item[{}]{mock\+\_\+file\+\_\+analyzer, }\item[{}]{mock\+\_\+git\+\_\+analyzer }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test function to generate documentation without location information. + +This function sets up mocks for the API client, current working +directory, and Git analyzer. It then calls the `generate_doc` function +with a fake API URL and token. The function is expected to initialize +the API client, configure the Git analyzer, and run it without any +location information. + +Args: + mock_getcwd (MagicMock): Mock for os.getcwd(). + mock_api_client (MagicMock): Mock for creating an API client. + mock_folder_analyzer (MagicMock): Mock for folder analysis. + mock_file_analyzer (MagicMock): Mock for file analysis. + mock_git_analyzer (MagicMock): Mock for Git analyzer setup. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacetests_1_1test__doc__commands_a806110833eb0aad547156faf014b31d8_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacetests_1_1test__doc__commands_a335e7fd4912192c7276cf31bbebc6eb0}\label{namespacetests_1_1test__doc__commands_a335e7fd4912192c7276cf31bbebc6eb0}} +\index{tests.test\_doc\_commands@{tests.test\_doc\_commands}!test\_generate\_doc\_with\_file\_exception@{test\_generate\_doc\_with\_file\_exception}} +\index{test\_generate\_doc\_with\_file\_exception@{test\_generate\_doc\_with\_file\_exception}!tests.test\_doc\_commands@{tests.test\_doc\_commands}} +\doxysubsubsection{\texorpdfstring{test\_generate\_doc\_with\_file\_exception()}{test\_generate\_doc\_with\_file\_exception()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+generate\+\_\+doc\+\_\+with\+\_\+file\+\_\+exception (\begin{DoxyParamCaption}\item[{}]{mock\+\_\+api\+\_\+client, }\item[{}]{mock\+\_\+getcwd }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Generate documentation from a Python source file. + +This function reads a Python file and generates a docstring based on its +content. It uses mock objects to simulate API calls and directory +operations during testing. + +Args: + mock_api_client (unittest.mock.MagicMock): A mock object for simulating API client behavior. + mock_getcwd (unittest.mock.MagicMock): A mock object for simulating the current working directory function. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacetests_1_1test__doc__commands_a335e7fd4912192c7276cf31bbebc6eb0_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacetests_1_1test__doc__commands_a64165ddfdb3071a88422f080f0e529a3}\label{namespacetests_1_1test__doc__commands_a64165ddfdb3071a88422f080f0e529a3}} +\index{tests.test\_doc\_commands@{tests.test\_doc\_commands}!test\_generate\_doc\_with\_folder\_exception@{test\_generate\_doc\_with\_folder\_exception}} +\index{test\_generate\_doc\_with\_folder\_exception@{test\_generate\_doc\_with\_folder\_exception}!tests.test\_doc\_commands@{tests.test\_doc\_commands}} +\doxysubsubsection{\texorpdfstring{test\_generate\_doc\_with\_folder\_exception()}{test\_generate\_doc\_with\_folder\_exception()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+generate\+\_\+doc\+\_\+with\+\_\+folder\+\_\+exception (\begin{DoxyParamCaption}\item[{}]{mock\+\_\+api\+\_\+client, }\item[{}]{mock\+\_\+getcwd }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Generate documentation from a given API endpoint and save it to a +folder. + +This function fetches data from the specified API endpoint, processes +it, and saves the generated documentation in the provided folder. If an +error occurs during the fetching process, a SystemExit exception is +raised with an appropriate message. + +Args: + api_url (str): The URL of the API endpoint from which data will be fetched. + token (str): The authentication token required to access the API. + folder_path (str): The path to the folder where the documentation will be saved. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacetests_1_1test__doc__commands_a64165ddfdb3071a88422f080f0e529a3_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacetests_1_1test__doc__commands_ab158ffa48469b6c097a7a55fcb20c21a}\label{namespacetests_1_1test__doc__commands_ab158ffa48469b6c097a7a55fcb20c21a}} +\index{tests.test\_doc\_commands@{tests.test\_doc\_commands}!test\_handle\_docgen\_generate@{test\_handle\_docgen\_generate}} +\index{test\_handle\_docgen\_generate@{test\_handle\_docgen\_generate}!tests.test\_doc\_commands@{tests.test\_doc\_commands}} +\doxysubsubsection{\texorpdfstring{test\_handle\_docgen\_generate()}{test\_handle\_docgen\_generate()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+handle\+\_\+docgen\+\_\+generate (\begin{DoxyParamCaption}\item[{}]{mock\+\_\+get\+\_\+token, }\item[{}]{mock\+\_\+generate\+\_\+doc, }\item[{}]{mock\+\_\+uninstall\+\_\+hook, }\item[{}]{mock\+\_\+install\+\_\+hook }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the direct documentation generation functionality. + +This function tests the `handle_docgen` function when no subcommand is +provided. It verifies that the document generation hook is called and +the uninstall and install hooks are not called. + +Args: + mock_get_token (MagicMock): Mocked function to get authentication token. + mock_generate_doc (MagicMock): Mocked function for generating documentation. + mock_uninstall_hook (MagicMock): Mocked function for uninstalling the document generation hook. + mock_install_hook (MagicMock): Mocked function for installing the document generation hook. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacetests_1_1test__doc__commands_ab158ffa48469b6c097a7a55fcb20c21a_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacetests_1_1test__doc__commands_ab74688baa8c9b5ba302c2877a9789d05}\label{namespacetests_1_1test__doc__commands_ab74688baa8c9b5ba302c2877a9789d05}} +\index{tests.test\_doc\_commands@{tests.test\_doc\_commands}!test\_handle\_docgen\_install\_hook@{test\_handle\_docgen\_install\_hook}} +\index{test\_handle\_docgen\_install\_hook@{test\_handle\_docgen\_install\_hook}!tests.test\_doc\_commands@{tests.test\_doc\_commands}} +\doxysubsubsection{\texorpdfstring{test\_handle\_docgen\_install\_hook()}{test\_handle\_docgen\_install\_hook()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+handle\+\_\+docgen\+\_\+install\+\_\+hook (\begin{DoxyParamCaption}\item[{}]{mock\+\_\+exit, }\item[{}]{mock\+\_\+get\+\_\+token, }\item[{}]{mock\+\_\+generate\+\_\+doc, }\item[{}]{mock\+\_\+uninstall\+\_\+hook, }\item[{}]{mock\+\_\+install\+\_\+hook }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the handling of the 'install-hook' subcommand. + +This function sets up a mock environment where it simulates the +execution of the 'install-hook' subcommand. It verifies that the +`mock_install_hook` is called with the correct arguments, while +`mock_generate_doc` and `mock_uninstall_hook` are not called. + +Args: + mock_exit (MagicMock): Mock object for sys.exit. + mock_get_token (MagicMock): Mock object to simulate fetching a token. + mock_generate_doc (MagicMock): Mock object to simulate generating documentation. + mock_uninstall_hook (MagicMock): Mock object to simulate uninstalling a hook. + mock_install_hook (MagicMock): Mock object to simulate installing a hook. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacetests_1_1test__doc__commands_ab74688baa8c9b5ba302c2877a9789d05_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacetests_1_1test__doc__commands_af9b01e5fc89255cac96747fa081c442c}\label{namespacetests_1_1test__doc__commands_af9b01e5fc89255cac96747fa081c442c}} +\index{tests.test\_doc\_commands@{tests.test\_doc\_commands}!test\_handle\_docgen\_no\_token@{test\_handle\_docgen\_no\_token}} +\index{test\_handle\_docgen\_no\_token@{test\_handle\_docgen\_no\_token}!tests.test\_doc\_commands@{tests.test\_doc\_commands}} +\doxysubsubsection{\texorpdfstring{test\_handle\_docgen\_no\_token()}{test\_handle\_docgen\_no\_token()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+handle\+\_\+docgen\+\_\+no\+\_\+token (\begin{DoxyParamCaption}\item[{}]{mock\+\_\+exit, }\item[{}]{mock\+\_\+get\+\_\+token }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the behavior of the `handle_docgen` function when no token is +provided. + +This function asserts that if no token is returned by `mock_get_token`, +the `handle_docgen` function will call `mock_exit` with a status code of +1. + +Args: + mock_exit (MagicMock): A MagicMock object simulating the `exit` function. + mock_get_token (MagicMock): A MagicMock object simulating the `get_token` function. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacetests_1_1test__doc__commands_af9b01e5fc89255cac96747fa081c442c_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacetests_1_1test__doc__commands_a1458af9ad0128c3ca1263b552fd5e482}\label{namespacetests_1_1test__doc__commands_a1458af9ad0128c3ca1263b552fd5e482}} +\index{tests.test\_doc\_commands@{tests.test\_doc\_commands}!test\_handle\_docgen\_uninstall\_hook@{test\_handle\_docgen\_uninstall\_hook}} +\index{test\_handle\_docgen\_uninstall\_hook@{test\_handle\_docgen\_uninstall\_hook}!tests.test\_doc\_commands@{tests.test\_doc\_commands}} +\doxysubsubsection{\texorpdfstring{test\_handle\_docgen\_uninstall\_hook()}{test\_handle\_docgen\_uninstall\_hook()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+handle\+\_\+docgen\+\_\+uninstall\+\_\+hook (\begin{DoxyParamCaption}\item[{}]{mock\+\_\+exit, }\item[{}]{mock\+\_\+get\+\_\+token, }\item[{}]{mock\+\_\+generate\+\_\+doc, }\item[{}]{mock\+\_\+uninstall\+\_\+hook, }\item[{}]{mock\+\_\+install\+\_\+hook }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the uninstall-hook subcommand of the handle_docgen function. +This test case sets up a mock environment and verifies that the +uninstall-hook is called with the correct location, while generate_doc +and install_hook are not called. + +Args: + mock_exit (MagicMock): A mock for the exit function. + mock_get_token (MagicMock): A mock for the get_token function. + mock_generate_doc (MagicMock): A mock for the generate_doc function. + mock_uninstall_hook (MagicMock): A mock for the uninstall_hook function. + mock_install_hook (MagicMock): A mock for the install_hook function. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacetests_1_1test__doc__commands_a1458af9ad0128c3ca1263b552fd5e482_cgraph} +\end{center} +\end{figure} +\mbox{\Hypertarget{namespacetests_1_1test__doc__commands_a0f27751d0ba2acfe40ef7e85bccf47d7}\label{namespacetests_1_1test__doc__commands_a0f27751d0ba2acfe40ef7e85bccf47d7}} +\index{tests.test\_doc\_commands@{tests.test\_doc\_commands}!test\_setup\_docgen\_parser@{test\_setup\_docgen\_parser}} +\index{test\_setup\_docgen\_parser@{test\_setup\_docgen\_parser}!tests.test\_doc\_commands@{tests.test\_doc\_commands}} +\doxysubsubsection{\texorpdfstring{test\_setup\_docgen\_parser()}{test\_setup\_docgen\_parser()}} +{\footnotesize\ttfamily def tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+setup\+\_\+docgen\+\_\+parser (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + +\begin{DoxyVerb}Test the setup_docgen_parser function to ensure it properly configures +the ArgumentParser for docgen options. + +It verifies that the parser correctly sets up docgen options and handles +different subcommands like 'install-hook' and 'uninstall-hook'. +\end{DoxyVerb} + Here is the call graph for this function\+: +\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{namespacetests_1_1test__doc__commands_a0f27751d0ba2acfe40ef7e85bccf47d7_cgraph} +\end{center} +\end{figure} diff --git a/docs/latex/namespacetests_1_1test__doc__commands_a0e74c920f258f442914771164fe26b45_cgraph.md5 b/docs/latex/namespacetests_1_1test__doc__commands_a0e74c920f258f442914771164fe26b45_cgraph.md5 new file mode 100644 index 0000000..38063b8 --- /dev/null +++ b/docs/latex/namespacetests_1_1test__doc__commands_a0e74c920f258f442914771164fe26b45_cgraph.md5 @@ -0,0 +1 @@ +bebe62b14f610638316a2a25fabc668d \ No newline at end of file diff --git a/docs/latex/namespacetests_1_1test__doc__commands_a0e74c920f258f442914771164fe26b45_cgraph.pdf b/docs/latex/namespacetests_1_1test__doc__commands_a0e74c920f258f442914771164fe26b45_cgraph.pdf new file mode 100644 index 0000000..c42610c Binary files /dev/null and b/docs/latex/namespacetests_1_1test__doc__commands_a0e74c920f258f442914771164fe26b45_cgraph.pdf differ diff --git a/docs/latex/namespacetests_1_1test__doc__commands_a0f27751d0ba2acfe40ef7e85bccf47d7_cgraph.md5 b/docs/latex/namespacetests_1_1test__doc__commands_a0f27751d0ba2acfe40ef7e85bccf47d7_cgraph.md5 new file mode 100644 index 0000000..f3855d4 --- /dev/null +++ b/docs/latex/namespacetests_1_1test__doc__commands_a0f27751d0ba2acfe40ef7e85bccf47d7_cgraph.md5 @@ -0,0 +1 @@ +a94db77f756f7bcd37a17f967e893c7e \ No newline at end of file diff --git a/docs/latex/namespacetests_1_1test__doc__commands_a0f27751d0ba2acfe40ef7e85bccf47d7_cgraph.pdf b/docs/latex/namespacetests_1_1test__doc__commands_a0f27751d0ba2acfe40ef7e85bccf47d7_cgraph.pdf new file mode 100644 index 0000000..240aecf Binary files /dev/null and b/docs/latex/namespacetests_1_1test__doc__commands_a0f27751d0ba2acfe40ef7e85bccf47d7_cgraph.pdf differ diff --git a/docs/latex/namespacetests_1_1test__doc__commands_a1458af9ad0128c3ca1263b552fd5e482_cgraph.md5 b/docs/latex/namespacetests_1_1test__doc__commands_a1458af9ad0128c3ca1263b552fd5e482_cgraph.md5 new file mode 100644 index 0000000..d938254 --- /dev/null +++ b/docs/latex/namespacetests_1_1test__doc__commands_a1458af9ad0128c3ca1263b552fd5e482_cgraph.md5 @@ -0,0 +1 @@ +f4c38217f64d14f20bfbc310f126bdc3 \ No newline at end of file diff --git a/docs/latex/namespacetests_1_1test__doc__commands_a1458af9ad0128c3ca1263b552fd5e482_cgraph.pdf b/docs/latex/namespacetests_1_1test__doc__commands_a1458af9ad0128c3ca1263b552fd5e482_cgraph.pdf new file mode 100644 index 0000000..87a26f5 Binary files /dev/null and b/docs/latex/namespacetests_1_1test__doc__commands_a1458af9ad0128c3ca1263b552fd5e482_cgraph.pdf differ diff --git a/docs/latex/namespacetests_1_1test__doc__commands_a335e7fd4912192c7276cf31bbebc6eb0_cgraph.md5 b/docs/latex/namespacetests_1_1test__doc__commands_a335e7fd4912192c7276cf31bbebc6eb0_cgraph.md5 new file mode 100644 index 0000000..13f2afa --- /dev/null +++ b/docs/latex/namespacetests_1_1test__doc__commands_a335e7fd4912192c7276cf31bbebc6eb0_cgraph.md5 @@ -0,0 +1 @@ +f47eaaf82d8b7d055dfdf5a521447021 \ No newline at end of file diff --git a/docs/latex/namespacetests_1_1test__doc__commands_a335e7fd4912192c7276cf31bbebc6eb0_cgraph.pdf b/docs/latex/namespacetests_1_1test__doc__commands_a335e7fd4912192c7276cf31bbebc6eb0_cgraph.pdf new file mode 100644 index 0000000..964e1ca Binary files /dev/null and b/docs/latex/namespacetests_1_1test__doc__commands_a335e7fd4912192c7276cf31bbebc6eb0_cgraph.pdf differ diff --git a/docs/latex/namespacetests_1_1test__doc__commands_a4bb75610e40d94d42bc169b25403c186_cgraph.md5 b/docs/latex/namespacetests_1_1test__doc__commands_a4bb75610e40d94d42bc169b25403c186_cgraph.md5 new file mode 100644 index 0000000..b0edccf --- /dev/null +++ b/docs/latex/namespacetests_1_1test__doc__commands_a4bb75610e40d94d42bc169b25403c186_cgraph.md5 @@ -0,0 +1 @@ +c5da81cf11bd8848054152bf200ba04d \ No newline at end of file diff --git a/docs/latex/namespacetests_1_1test__doc__commands_a4bb75610e40d94d42bc169b25403c186_cgraph.pdf b/docs/latex/namespacetests_1_1test__doc__commands_a4bb75610e40d94d42bc169b25403c186_cgraph.pdf new file mode 100644 index 0000000..95567cb Binary files /dev/null and b/docs/latex/namespacetests_1_1test__doc__commands_a4bb75610e40d94d42bc169b25403c186_cgraph.pdf differ diff --git a/docs/latex/namespacetests_1_1test__doc__commands_a64165ddfdb3071a88422f080f0e529a3_cgraph.md5 b/docs/latex/namespacetests_1_1test__doc__commands_a64165ddfdb3071a88422f080f0e529a3_cgraph.md5 new file mode 100644 index 0000000..c499932 --- /dev/null +++ b/docs/latex/namespacetests_1_1test__doc__commands_a64165ddfdb3071a88422f080f0e529a3_cgraph.md5 @@ -0,0 +1 @@ +27396df9a6a29e57e365501f97f2aa93 \ No newline at end of file diff --git a/docs/latex/namespacetests_1_1test__doc__commands_a64165ddfdb3071a88422f080f0e529a3_cgraph.pdf b/docs/latex/namespacetests_1_1test__doc__commands_a64165ddfdb3071a88422f080f0e529a3_cgraph.pdf new file mode 100644 index 0000000..7d73438 Binary files /dev/null and b/docs/latex/namespacetests_1_1test__doc__commands_a64165ddfdb3071a88422f080f0e529a3_cgraph.pdf differ diff --git a/docs/latex/namespacetests_1_1test__doc__commands_a806110833eb0aad547156faf014b31d8_cgraph.md5 b/docs/latex/namespacetests_1_1test__doc__commands_a806110833eb0aad547156faf014b31d8_cgraph.md5 new file mode 100644 index 0000000..787ec0b --- /dev/null +++ b/docs/latex/namespacetests_1_1test__doc__commands_a806110833eb0aad547156faf014b31d8_cgraph.md5 @@ -0,0 +1 @@ +332a5f7e6185bee69c46a8d7ce7f85a6 \ No newline at end of file diff --git a/docs/latex/namespacetests_1_1test__doc__commands_a806110833eb0aad547156faf014b31d8_cgraph.pdf b/docs/latex/namespacetests_1_1test__doc__commands_a806110833eb0aad547156faf014b31d8_cgraph.pdf new file mode 100644 index 0000000..bfdda08 Binary files /dev/null and b/docs/latex/namespacetests_1_1test__doc__commands_a806110833eb0aad547156faf014b31d8_cgraph.pdf differ diff --git a/docs/latex/namespacetests_1_1test__doc__commands_ab158ffa48469b6c097a7a55fcb20c21a_cgraph.md5 b/docs/latex/namespacetests_1_1test__doc__commands_ab158ffa48469b6c097a7a55fcb20c21a_cgraph.md5 new file mode 100644 index 0000000..444a811 --- /dev/null +++ b/docs/latex/namespacetests_1_1test__doc__commands_ab158ffa48469b6c097a7a55fcb20c21a_cgraph.md5 @@ -0,0 +1 @@ +967352abdfbe0d2786817b991fa1c65a \ No newline at end of file diff --git a/docs/latex/namespacetests_1_1test__doc__commands_ab158ffa48469b6c097a7a55fcb20c21a_cgraph.pdf b/docs/latex/namespacetests_1_1test__doc__commands_ab158ffa48469b6c097a7a55fcb20c21a_cgraph.pdf new file mode 100644 index 0000000..7d9a1b8 Binary files /dev/null and b/docs/latex/namespacetests_1_1test__doc__commands_ab158ffa48469b6c097a7a55fcb20c21a_cgraph.pdf differ diff --git a/docs/latex/namespacetests_1_1test__doc__commands_ab74688baa8c9b5ba302c2877a9789d05_cgraph.md5 b/docs/latex/namespacetests_1_1test__doc__commands_ab74688baa8c9b5ba302c2877a9789d05_cgraph.md5 new file mode 100644 index 0000000..66a328c --- /dev/null +++ b/docs/latex/namespacetests_1_1test__doc__commands_ab74688baa8c9b5ba302c2877a9789d05_cgraph.md5 @@ -0,0 +1 @@ +d7ddc37501263c07a7e100f483957fe5 \ No newline at end of file diff --git a/docs/latex/namespacetests_1_1test__doc__commands_ab74688baa8c9b5ba302c2877a9789d05_cgraph.pdf b/docs/latex/namespacetests_1_1test__doc__commands_ab74688baa8c9b5ba302c2877a9789d05_cgraph.pdf new file mode 100644 index 0000000..e9a0c06 Binary files /dev/null and b/docs/latex/namespacetests_1_1test__doc__commands_ab74688baa8c9b5ba302c2877a9789d05_cgraph.pdf differ diff --git a/docs/latex/namespacetests_1_1test__doc__commands_aec76cc25c23476794234cdadbcaef0c0_cgraph.md5 b/docs/latex/namespacetests_1_1test__doc__commands_aec76cc25c23476794234cdadbcaef0c0_cgraph.md5 new file mode 100644 index 0000000..6f700d5 --- /dev/null +++ b/docs/latex/namespacetests_1_1test__doc__commands_aec76cc25c23476794234cdadbcaef0c0_cgraph.md5 @@ -0,0 +1 @@ +adeebf86e1cd0feff265cc15fe15e799 \ No newline at end of file diff --git a/docs/latex/namespacetests_1_1test__doc__commands_aec76cc25c23476794234cdadbcaef0c0_cgraph.pdf b/docs/latex/namespacetests_1_1test__doc__commands_aec76cc25c23476794234cdadbcaef0c0_cgraph.pdf new file mode 100644 index 0000000..453de76 Binary files /dev/null and b/docs/latex/namespacetests_1_1test__doc__commands_aec76cc25c23476794234cdadbcaef0c0_cgraph.pdf differ diff --git a/docs/latex/namespacetests_1_1test__doc__commands_af9b01e5fc89255cac96747fa081c442c_cgraph.md5 b/docs/latex/namespacetests_1_1test__doc__commands_af9b01e5fc89255cac96747fa081c442c_cgraph.md5 new file mode 100644 index 0000000..998811c --- /dev/null +++ b/docs/latex/namespacetests_1_1test__doc__commands_af9b01e5fc89255cac96747fa081c442c_cgraph.md5 @@ -0,0 +1 @@ +698c7c0868cd8f81860d94f7472bdd8e \ No newline at end of file diff --git a/docs/latex/namespacetests_1_1test__doc__commands_af9b01e5fc89255cac96747fa081c442c_cgraph.pdf b/docs/latex/namespacetests_1_1test__doc__commands_af9b01e5fc89255cac96747fa081c442c_cgraph.pdf new file mode 100644 index 0000000..8384989 Binary files /dev/null and b/docs/latex/namespacetests_1_1test__doc__commands_af9b01e5fc89255cac96747fa081c442c_cgraph.pdf differ diff --git a/docs/latex/namespacetests_1_1test__web__config.tex b/docs/latex/namespacetests_1_1test__web__config.tex new file mode 100644 index 0000000..390c297 --- /dev/null +++ b/docs/latex/namespacetests_1_1test__web__config.tex @@ -0,0 +1,7 @@ +\hypertarget{namespacetests_1_1test__web__config}{}\doxysection{tests.\+test\+\_\+web\+\_\+config Namespace Reference} +\label{namespacetests_1_1test__web__config}\index{tests.test\_web\_config@{tests.test\_web\_config}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classtests_1_1test__web__config_1_1TestWebConfig}{Test\+Web\+Config}} +\end{DoxyCompactItemize} diff --git a/docs/latex/penify-cli-documentation_8md.tex b/docs/latex/penify-cli-documentation_8md.tex new file mode 100644 index 0000000..dca0dbd --- /dev/null +++ b/docs/latex/penify-cli-documentation_8md.tex @@ -0,0 +1,2 @@ +\hypertarget{penify-cli-documentation_8md}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/docs/penify-\/cli-\/documentation.md File Reference} +\label{penify-cli-documentation_8md}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/docs/penify-\/cli-\/documentation.md@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/docs/penify-\/cli-\/documentation.md}} diff --git a/docs/latex/penify__hook_2____init_____8py.tex b/docs/latex/penify__hook_2____init_____8py.tex new file mode 100644 index 0000000..51ede27 --- /dev/null +++ b/docs/latex/penify__hook_2____init_____8py.tex @@ -0,0 +1,2 @@ +\hypertarget{penify__hook_2____init_____8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/\+\_\+\+\_\+init\+\_\+\+\_\+.py File Reference} +\label{penify__hook_2____init_____8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/\_\_init\_\_.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/\_\_init\_\_.py}} diff --git a/docs/latex/penify__hook_2commands_2____init_____8py.tex b/docs/latex/penify__hook_2commands_2____init_____8py.tex new file mode 100644 index 0000000..3024fa8 --- /dev/null +++ b/docs/latex/penify__hook_2commands_2____init_____8py.tex @@ -0,0 +1,9 @@ +\hypertarget{penify__hook_2commands_2____init_____8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/commands/\+\_\+\+\_\+init\+\_\+\+\_\+.py File Reference} +\label{penify__hook_2commands_2____init_____8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commands/\_\_init\_\_.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/commands/\_\_init\_\_.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1commands}{penify\+\_\+hook.\+commands}} +\end{DoxyCompactItemize} diff --git a/docs/latex/refman.tex b/docs/latex/refman.tex new file mode 100644 index 0000000..3b5933c --- /dev/null +++ b/docs/latex/refman.tex @@ -0,0 +1,298 @@ + % Handle batch mode + % to overcome problems with too many open files + \let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage} + % Set document class depending on configuration + \documentclass[twoside]{book} + %% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package + \usepackage{ifthen} + \ifx\requestedLaTeXdate\undefined + \usepackage{array} + \else + \usepackage{array}[=2016-10-06] + \fi + %% + % Packages required by doxygen + \usepackage{fixltx2e} % for \textsubscript + \usepackage{doxygen} + \usepackage{graphicx} + \usepackage[utf8]{inputenc} + \usepackage{makeidx} + \PassOptionsToPackage{warn}{textcomp} + \usepackage{textcomp} + \usepackage[nointegrals]{wasysym} + \usepackage{ifxetex} + % NLS support packages + % Define default fonts + % Font selection + \usepackage[T1]{fontenc} + % set main and monospaced font + \usepackage[scaled=.90]{helvet} +\usepackage{courier} +\renewcommand{\familydefault}{\sfdefault} + \usepackage{sectsty} + \allsectionsfont{% + \fontseries{bc}\selectfont% + \color{darkgray}% + } + \renewcommand{\DoxyLabelFont}{% + \fontseries{bc}\selectfont% + \color{darkgray}% + } + \newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}} + % Arguments of doxygenemoji: + % 1) '::' form of the emoji, already LaTeX-escaped + % 2) file with the name of the emoji without the .png extension + % in case image exist use this otherwise use the '::' form + \newcommand{\doxygenemoji}[2]{% + \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}% + } + % Page & text layout + \usepackage{geometry} + \geometry{% + a4paper,% + top=2.5cm,% + bottom=2.5cm,% + left=2.5cm,% + right=2.5cm% + } + % Allow a bit of overflow to go unnoticed by other means + \tolerance=750 + \hfuzz=15pt + \hbadness=750 + \setlength{\emergencystretch}{15pt} + \setlength{\parindent}{0cm} + \newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}} + \newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}} + \doxynormalparskip + % Redefine paragraph/subparagraph environments, using sectsty fonts + \makeatletter + \renewcommand{\paragraph}{% + \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@parafont% + }% + } + \renewcommand{\subparagraph}{% + \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@subparafont% + }% + } + \makeatother + \makeatletter + \newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@} + \makeatother + % Headers & footers + \usepackage{fancyhdr} + \pagestyle{fancyplain} + \renewcommand{\footrulewidth}{0.4pt} + \fancypagestyle{fancyplain}{ + \fancyhf{} + \fancyhead[LE, RO]{\bfseries\thepage} + \fancyhead[LO]{\bfseries\rightmark} + \fancyhead[RE]{\bfseries\leftmark} + \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } + } + \fancypagestyle{plain}{ + \fancyhf{} + \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } + \renewcommand{\headrulewidth}{0pt} + } + \pagestyle{fancyplain} + \renewcommand{\chaptermark}[1]{% + \markboth{#1}{}% + } + \renewcommand{\sectionmark}[1]{% + \markright{\thesection\ #1}% + } + % ToC, LoF, LoT, bibliography, and index + % Indices & bibliography + \usepackage{natbib} + \usepackage[titles]{tocloft} + \setcounter{tocdepth}{3} + \setcounter{secnumdepth}{5} + % creating indexes + \makeindex + \usepackage{newunicodechar} + \newunicodechar{⁻}{${}^{-}$}% Superscript minus + \newunicodechar{²}{${}^{2}$}% Superscript two + \newunicodechar{³}{${}^{3}$}% Superscript three + % Hyperlinks + % Hyperlinks (required, but should be loaded last) + \ifpdf + \usepackage[pdftex,pagebackref=true]{hyperref} + \else + \ifxetex + \usepackage[pagebackref=true]{hyperref} + \else + \usepackage[ps2pdf,pagebackref=true]{hyperref} + \fi + \fi + \hypersetup{% + colorlinks=true,% + linkcolor=blue,% + citecolor=blue,% + unicode,% + pdftitle={penify-\/cli},% + pdfsubject={}% + } + % Custom commands used by the header + % Custom commands + \newcommand{\clearemptydoublepage}{% + \newpage{\pagestyle{empty}\cleardoublepage}% + } + % caption style definition + \usepackage{caption} + \captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top} + % in page table of contents + \usepackage{etoc} + \etocsettocstyle{\doxytocparskip}{\doxynormalparskip} + % prevent numbers overlap the titles in toc + \renewcommand{\numberline}[1]{#1~} +% End of preamble, now comes the document contents +%===== C O N T E N T S ===== +\begin{document} + \raggedbottom + % Titlepage & ToC + % To avoid duplicate page anchors due to reuse of same numbers for + % the index (be it as roman numbers) + \hypersetup{pageanchor=false, + bookmarksnumbered=true, + pdfencoding=unicode + } + \pagenumbering{alph} + \begin{titlepage} + \vspace*{7cm} + \begin{center}% + {\Large penify-\/cli}\\ + \vspace*{1cm} + {\large Generated by Doxygen 1.9.4}\\ + \end{center} + \end{titlepage} + \clearemptydoublepage + \pagenumbering{roman} + \tableofcontents + \clearemptydoublepage + \pagenumbering{arabic} + % re-enable anchors again + \hypersetup{pageanchor=true} +%--- Begin generated contents --- +\chapter{Penify CLI -\/ Commit Commands} +\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands} +\Hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands} +\input{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_commit_commands} +\chapter{Penify CLI -\/ Configuration Commands} +\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands} +\Hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands} +\input{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_config_commands} +\chapter{Penify CLI -\/ Detailed Usage Guide} +\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage} +\Hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage} +\input{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_detailed_usage} +\chapter{Penify CLI -\/ Documentation Generation Commands} +\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands} +\Hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands} +\input{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_doc_commands} +\chapter{Penify CLI Example Workflows} +\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows} +\Hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows} +\input{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_docs_example_workflows} +\chapter{Penify CLI Tool} +\label{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README} +\Hypertarget{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README} +\input{md__tmp_github_reposRepoArchDocGenContext_Penify_dev_penify_cli_README} +\chapter{Namespace Index} +\input{namespaces} +\chapter{Hierarchical Index} +\input{hierarchy} +\chapter{Class Index} +\input{annotated} +\chapter{File Index} +\input{files} +\chapter{Namespace Documentation} +\input{namespacepenify__hook} +\input{namespacepenify__hook_1_1api__client} +\input{namespacepenify__hook_1_1base__analyzer} +\input{namespacepenify__hook_1_1commands} +\input{namespacepenify__hook_1_1commands_1_1auth__commands} +\input{namespacepenify__hook_1_1commands_1_1commit__commands} +\input{namespacepenify__hook_1_1commands_1_1config__commands} +\input{namespacepenify__hook_1_1commands_1_1doc__commands} +\input{namespacepenify__hook_1_1commands_1_1hook__commands} +\input{namespacepenify__hook_1_1commit__analyzer} +\input{namespacepenify__hook_1_1config__command} +\input{namespacepenify__hook_1_1constants} +\input{namespacepenify__hook_1_1file__analyzer} +\input{namespacepenify__hook_1_1folder__analyzer} +\input{namespacepenify__hook_1_1git__analyzer} +\input{namespacepenify__hook_1_1jira__client} +\input{namespacepenify__hook_1_1llm__client} +\input{namespacepenify__hook_1_1login__command} +\input{namespacepenify__hook_1_1main} +\input{namespacepenify__hook_1_1ui__utils} +\input{namespacepenify__hook_1_1utils} +\input{namespacesetup} +\input{namespacetests} +\input{namespacetests_1_1conftest} +\input{namespacetests_1_1test__commit__commands} +\input{namespacetests_1_1test__config__commands} +\input{namespacetests_1_1test__doc__commands} +\input{namespacetests_1_1test__web__config} +\chapter{Class Documentation} +\input{classpenify__hook_1_1api__client_1_1APIClient} +\input{classpenify__hook_1_1base__analyzer_1_1BaseAnalyzer} +\input{classpenify__hook_1_1commit__analyzer_1_1CommitDocGenHook} +\input{classException} +\input{classpenify__hook_1_1file__analyzer_1_1FileAnalyzerGenHook} +\input{classpenify__hook_1_1folder__analyzer_1_1FolderAnalyzerGenHook} +\input{classpenify__hook_1_1git__analyzer_1_1GitDocGenHook} +\input{classpenify__hook_1_1utils_1_1GitRepoNotFoundError} +\input{classpenify__hook_1_1jira__client_1_1JiraClient} +\input{classpenify__hook_1_1llm__client_1_1LLMClient} +\input{classtests_1_1test__commit__commands_1_1TestCommitCommands} +\input{classtests_1_1test__config__commands_1_1TestConfigCommands} +\input{classtests_1_1test__web__config_1_1TestWebConfig} +\chapter{File Documentation} +\input{commit-commands_8md} +\input{config-commands_8md} +\input{detailed-usage_8md} +\input{doc__commands_8md} +\input{example-workflows_8md} +\input{penify-cli-documentation_8md} +\input{api__client_8py} +\input{base__analyzer_8py} +\input{penify__hook_2____init_____8py} +\input{penify__hook_2commands_2____init_____8py} +\input{tests_2____init_____8py} +\input{auth__commands_8py} +\input{commit__commands_8py} +\input{config__commands_8py} +\input{doc__commands_8py} +\input{hook__commands_8py} +\input{commit__analyzer_8py} +\input{config__command_8py} +\input{constants_8py} +\input{file__analyzer_8py} +\input{folder__analyzer_8py} +\input{git__analyzer_8py} +\input{jira__client_8py} +\input{llm__client_8py} +\input{login__command_8py} +\input{main_8py} +\input{ui__utils_8py} +\input{utils_8py} +\input{README_8md} +\input{setup_8py} +\input{conftest_8py} +\input{test__commit__commands_8py} +\input{test__config__commands_8py} +\input{test__doc__commands_8py} +\input{test__web__config_8py} +%--- End generated contents --- +% Index + \backmatter + \newpage + \phantomsection + \clearemptydoublepage + \addcontentsline{toc}{chapter}{\indexname} + \printindex +% Required for some languages (in combination with latexdocumentpre from the header) +\end{document} diff --git a/docs/latex/setup_8py.tex b/docs/latex/setup_8py.tex new file mode 100644 index 0000000..54e4aba --- /dev/null +++ b/docs/latex/setup_8py.tex @@ -0,0 +1,36 @@ +\hypertarget{setup_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/setup.py File Reference} +\label{setup_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/setup.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/setup.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacesetup}{setup}} +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{namespacesetup_ab3a7a0638d76a01367c5bc3cc699447f}{setup.\+name}} +\item +\mbox{\hyperlink{namespacesetup_a2aa722b36a933088812b50ea79b97a5c}{setup.\+version}} +\item +\mbox{\hyperlink{namespacesetup_aff2375a361fd5865c77bd9aa093be747}{setup.\+packages}} +\item +\mbox{\hyperlink{namespacesetup_abead4f26b530856f858f0d44c7cf2588}{setup.\+install\+\_\+requires}} +\item +\mbox{\hyperlink{namespacesetup_ada7058afc98897f073d3f3b8b9157059}{setup.\+entry\+\_\+points}} +\item +\mbox{\hyperlink{namespacesetup_a3a57a4772d418a06835249cbade0d86a}{setup.\+author}} +\item +\mbox{\hyperlink{namespacesetup_a5b08034343aa2be607722a8b315f3625}{setup.\+author\+\_\+email}} +\item +\mbox{\hyperlink{namespacesetup_aedf461ec52a946bda975938ba0b93ec0}{setup.\+description}} +\item +\mbox{\hyperlink{namespacesetup_a4cda9dbfb952875376a0749fe08a5bde}{setup.\+long\+\_\+description}} +\item +\mbox{\hyperlink{namespacesetup_a3796ea10c998699d07d391414ff5d720}{setup.\+long\+\_\+description\+\_\+content\+\_\+type}} +\item +\mbox{\hyperlink{namespacesetup_afc13124aa5c0124e84e1d965e3f4b0fb}{setup.\+url}} +\item +\mbox{\hyperlink{namespacesetup_abe96a9c38c1c61f9f0fdb002c482f785}{setup.\+classifiers}} +\item +\mbox{\hyperlink{namespacesetup_aa7ca7bc9391b217e81efeb03689d8dbf}{setup.\+python\+\_\+requires}} +\end{DoxyCompactItemize} diff --git a/docs/latex/tabu_doxygen.sty b/docs/latex/tabu_doxygen.sty new file mode 100644 index 0000000..3f17d1d --- /dev/null +++ b/docs/latex/tabu_doxygen.sty @@ -0,0 +1,2557 @@ +%% +%% This is file `tabu.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tabu.dtx (with options: `package') +%% +%% This is a generated file. +%% Copyright (FC) 2010-2011 - lppl +%% +%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars +%% +%% ********************************************************************************************** +%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal +%% \begin{tabu} to { preamble } => target specified +%% \begin{tabu} spread { preamble } => target relative to the ``natural width'' +%% +%% tabu works in text and in math modes. +%% +%% X columns: automatic width adjustment + horizontal and vertical alignment +%% \begin{tabu} { X[4c] X[1c] X[-2ml] } +%% +%% Horizontal lines and / or leaders: +%% \hline\hline => double horizontal line +%% \firsthline\hline => for nested tabulars +%% \lasthline\hline => for nested tabulars +%% \tabucline[line spec]{column-column} => ``funny'' lines (dash/leader) +%% Automatic lines / leaders : +%% \everyrow{\hline\hline} +%% +%% Vertical lines and / or leaders: +%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] } +%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] } +%% +%% Fixed vertical spacing adjustment: +%% \extrarowheight= \extrarowdepth= +%% or: \extrarowsep= => may be prefixed by \global +%% +%% Dynamic vertical spacing adjustment: +%% \abovetabulinesep= \belowtabulinesep= +%% or: \tabulinesep= => may be prefixed by \global +%% +%% delarray.sty shortcuts: in math and text modes +%% \begin{tabu} .... \({ preamble }\) +%% +%% Algorithms reports: +%% \tracingtabu=1 \tracingtabu=2 +%% +%% ********************************************************************************************** +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3 of this license or (at your option) any later +%% version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% +%% This work consists of the main source file tabu.dtx +%% and the derived files +%% tabu.sty, tabu.pdf, tabu.ins +%% +%% tabu : Flexible LaTeX tabulars +%% lppl copyright 2010-2011 by FC +%% + +\NeedsTeXFormat{LaTeX2e}[2005/12/01] +\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen] +\RequirePackage{array}[2008/09/09] +\RequirePackage{varwidth}[2009/03/30] +\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined} +\let\tabu@AtEnd\@empty +\def\TMP@EnsureCode#1={% + \edef\tabu@AtEnd{\tabu@AtEnd + \catcode#1 \the\catcode#1}% + \catcode#1=% +}% \TMP@EnsureCode +\TMP@EnsureCode 33 = 12 % ! +\TMP@EnsureCode 58 = 12 % : (for siunitx) +\TMP@EnsureCode124 = 12 % | +\TMP@EnsureCode 36 = 3 % $ = math shift +\TMP@EnsureCode 38 = 4 % & = tab alignment character +\TMP@EnsureCode 32 = 10 % space +\TMP@EnsureCode 94 = 7 % ^ +\TMP@EnsureCode 95 = 8 % _ +%% Constants -------------------------------------------------------- +\newcount \c@taburow \def\thetaburow {\number\c@taburow} +\newcount \tabu@nbcols +\newcount \tabu@cnt +\newcount \tabu@Xcol +\let\tabu@start \@tempcnta +\let\tabu@stop \@tempcntb +\newcount \tabu@alloc \tabu@alloc=\m@ne +\newcount \tabu@nested +\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc} +\newdimen \tabu@target +\newdimen \tabu@spreadtarget +\newdimen \tabu@naturalX +\newdimen \tabucolX +\let\tabu@DELTA \@tempdimc +\let\tabu@thick \@tempdima +\let\tabu@on \@tempdimb +\let\tabu@off \@tempdimc +\newdimen \tabu@Xsum +\newdimen \extrarowdepth +\newdimen \abovetabulinesep +\newdimen \belowtabulinesep +\newdimen \tabustrutrule \tabustrutrule \z@ +\newtoks \tabu@thebody +\newtoks \tabu@footnotes +\newsavebox \tabu@box +\newsavebox \tabu@arstrutbox +\newsavebox \tabu@hleads +\newsavebox \tabu@vleads +\newif \iftabu@colortbl +\newif \iftabu@siunitx +\newif \iftabu@measuring +\newif \iftabu@spread +\newif \iftabu@negcoef +\newif \iftabu@everyrow +\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue} +\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse} +\newif \iftabu@long +\newif \iftabuscantokens +\def\tabu@rescan {\tabu@verbatim \scantokens } +%% Utilities (for internal usage) ----------------------------------- +\def\tabu@gobblespace #1 {#1} +\def\tabu@gobbletoken #1#2{#1} +\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex} +\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble + \else\ifx \@sptoken\@let@token + \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX + \fi\fi +}% \tabu@gobblex +\def\tabu@X{^^J} +{\obeyspaces +\global\let\tabu@spxiii= % saves an active space (for \ifx) +\gdef\tabu@@spxiii{ }} +\def\tabu@ifenvir {% only for \multicolumn + \expandafter\tabu@if@nvir\csname\@currenvir\endcsname +}% \tabu@ifenvir +\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else + \ifx\longtabu#1first\else + second\fi\fi oftwo\endcsname +}% \tabu@ifenvir +\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi} +{\catcode`\&=3 +\gdef\tabu@strtrim #1{% #1 = control sequence to trim + \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi + \let\tabu@c@l@r \@empty \let#1\@empty + \else \expandafter \tabu@trimspaces #1\@nnil + \fi +}% \tabu@strtrim +\gdef\tabu@trimspaces #1\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& }% +\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&} +\gdef\tabu@lastspace #1{\def #3{#1}% + \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi + \tabu@trimspaces #1\@nnil} +}% \catcode +\def\tabu@sanitizearg #1#2{{% + \csname \ifcsname if@safe@actives\endcsname % + @safe@activestrue\else + relax\fi \endcsname + \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2% + \expandafter}\expandafter\def\expandafter#2\expandafter{#2}% +}% \tabu@sanitizearg +\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}% + \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!! +}% \tabu@textbar +\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi} +\def\tabu@everyrow@egroup{% + \iftabu@everyrow \expandafter \endgroup \the\toks@ + \else \ifnum0=`{\fi}% + \fi +}% \tabu@everyrow@egroup +\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule + height \arraystretch \dimexpr\ht\strutbox+\extrarowheight + depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth + width \z@}% +}% \tabu@arstrut +\def\tabu@rearstrut {% + \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax + \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth \relax + \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima + \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi + \tabu@mkarstrut + \fi +}% \tabu@rearstrut +\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi} +\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox + \hbox to\z@{\hbox to\z@{\hss + {\tabu@DBG{cyan}\vrule + height \arraystretch \dimexpr\ht\strutbox+\extrarowheight + depth \z@ + width \tabustrutrule}\kern-\tabustrutrule + {\tabu@DBG{pink}\vrule + height \z@ + depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth + width \tabustrutrule}}}% +}% \tabu@DBG@arstrut +\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@ + \@nextchar}}% +\def\tabu@savedecl{\ifcat$\d@llarend\else + \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode +}% \tabu@savedecl +\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@} +\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k } +\let\tabu@trialh@@k \@empty +\def\tabu@nowrite #1#{{\afterassignment}\toks@} +\let\tabu@write\write +\let\tabu@immediate\immediate +\def\tabu@WRITE{\begingroup + \def\immediate\write{\aftergroup\endgroup + \tabu@immediate\tabu@write}% +}% \tabu@WRITE +\expandafter\def\expandafter\tabu@GenericError\expandafter{% + \expandafter\tabu@WRITE\GenericError} +\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}} +\def\tabu@noxfootnote [#1]{\@gobble} +\def\tabu@nocolor #1#{\@gobble} +\newcommand*\tabu@norowcolor[2][]{} +\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}% + \futurelet\@let@token \tabu@m@ybesiunitx} +\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {% + \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi + \tabu@temp}% \tabu@m@ybesiunitx +}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname +\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}% +%% Fixed vertical spacing adjustment: \extrarowsep ------------------ +\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}% + \iftabu@everyrow \aftergroup\tabu@Gextra + \else \aftergroup\tabu@n@Gextra + \fi + \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra +}% \extrarowsep +\def\tabu@extra {\@ifnextchar_% + {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}} + {\ifx ^\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}% + \else \let\tabu@temp \@empty + \afterassignment \tabu@setextrasep \extrarowdepth + \fi \tabu@temp}% +}% \tabu@extra +\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2} +\def\tabu@extr@ #1#2{\@ifnextchar^% + {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}} + {\ifx _\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}% + \else \let\tabu@temp \@empty + \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth + \fi \tabu@temp}% +}% \tabu@extr@ +\def\tabu@setextrasep {\extrarowheight=\extrarowdepth + \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth +}% \tabu@setextrasep +\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi} +\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi} +\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra} +\let\tabu@C@extra \z@ +\let\tabu@G@extra \@empty +%% Dynamic vertical spacing adjustment: \tabulinesep ---------------- +\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}% + \iftabu@everyrow \aftergroup\tabu@Glinesep + \else \aftergroup\tabu@n@Glinesep + \fi + \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep +}% \tabulinesep +\def\tabu@linesep {\@ifnextchar_% + {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}} + {\ifx ^\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}% + \else \let\tabu@temp \@empty + \afterassignment \tabu@setlinesep \abovetabulinesep + \fi \tabu@temp}% +}% \tabu@linesep +\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2} +\def\tabu@sets@p #1#2{\@ifnextchar^% + {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}} + {\ifx _\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}% + \else \let\tabu@temp \@empty + \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep + \fi \tabu@temp}% +}% \tabu@sets@p +\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep + \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep +}% \tabu@setlinesep +\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi} +\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi} +\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep} +\let\tabu@C@linesep \z@ +\let\tabu@G@linesep \@empty +%% \global\extrarowsep and \global\tabulinesep ------------------- +\def\tabu@Gsave #1#2#3#4{\xdef#1{#1% + \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}% +}% \tabu@Gsave +\def\tabu@Grestore#1#2{% + \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax + \ifcat$\the\toks\currentgrouplevel$\else + \global\let#1\@empty \global\let#2\z@ + \the\toks\currentgrouplevel + \fi +}% \tabu@Grestore +%% Setting code for every row --------------------------------------- +\newcommand*\everyrow{\tabu@everyrow@bgroup + \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop +}% \everyrow +\def\tabu@evrstartstop {\@ifnextchar^% + {\afterassignment \tabu@evrstartstop \tabu@stop=}% + {\ifx ^\@let@token + \afterassignment\tabu@evrstartstop \tabu@start=% + \else \afterassignment\tabu@everyr@w \toks@ + \fi}% +}% \tabu@evrstartstop +\def\tabu@everyr@w {% + \xdef\tabu@everyrow{% + \noexpand\tabu@everyrowfalse + \let\noalign \relax + \noexpand\tabu@rowfontreset + \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors + \let\noexpand\tabu@docline \noexpand\tabu@docline@evr + \the\toks@ + \noexpand\tabu@evrh@@k + \noexpand\tabu@rearstrut + \global\advance\c@taburow \@ne}% + \iftabu@everyrow \toks@\expandafter + {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}% + \else \xdef\tabu@evr@G{\the\toks@}% + \fi + \tabu@everyrow@egroup +}% \tabu@everyr@w +\def\tabu@evr {\def\tabu@evrh@@k} % for internal use only +\tabu@evr{} +%% line style and leaders ------------------------------------------- +\newcommand*\newtabulinestyle [1]{% + {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}% +}% \newtabulinestyle +\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}% + \tabu@sanitizearg {#1}\@tempa + \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi + \global\expandafter\let + \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi +}% \tabu@newlinestyle +\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}% + \iftabu@everyrow + \toks@\expandafter{\expandafter \def \expandafter + \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}% + \gdef\tabu@ls@{\tabu@ls@L}% + \else + \global\let\tabu@ls@G \tabu@thestyle + \gdef\tabu@ls@{\tabu@ls@G}% + \fi + \tabu@everyrow@egroup +}% \tabulinestyle +\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor} +\def\tabu@rulecolor #1{\toks@{}% + \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1% + \tabu@temp + \tabu@rulearc +}% \tabu@rulecolor +\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp + \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}% + \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}% + \fi + \tabu@temp +}% \tabu@ruledrsc@ +\def\tabu@ruledrsc@ #1#{\tabu@rule@drsc@ {#1}} +\def\tabu@rule@drsc@ #1#2{% + \iftabu@everyrow + \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}% + \else \toks@{\def\CT@drsc@{\color #1{#2}}}% + \fi + \else + \ifx \\#1#2\\\global\let\CT@drsc@ \relax + \else \gdef\CT@drsc@{\color #1{#2}}% + \fi + \fi + \tabu@rulearc +}% \tabu@rule@drsc@ +\def\tabu@rulearc #1#{\tabu@rule@arc@ {#1}} +\def\tabu@rule@arc@ #1#2{% + \iftabu@everyrow + \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}% + \else \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}% + \fi + \toks@\expandafter{\the\toks@ + \let\tabu@arc@L \CT@arc@ + \let\tabu@drsc@L \CT@drsc@ + \ignorespaces}% + \else + \ifx \\#1#2\\\gdef\CT@arc@{}% + \else \gdef\CT@arc@{\color #1{#2}}% + \fi + \global\let\tabu@arc@G \CT@arc@ + \global\let\tabu@drsc@G \CT@drsc@ + \fi + \tabu@everyrow@egroup +}% \tabu@rule@arc@ +\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1} +\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}} +\def\tabu@rowc@lors #1#2#3{% + \toks@{}\@defaultunits \count@ =\number0#2\relax \@nnil + \@defaultunits \tabu@start =\number0#1\relax \@nnil + \ifnum \count@<\tw@ \count@=\tw@ \fi + \advance\tabu@start \m@ne + \ifnum \tabu@start<\z@ \tabu@start \z@ \fi + \tabu@rowcolorseries #3\in@..\in@ \@nnil +}% \tabu@rowcolors +\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {% + \ifx \in@#1\relax + \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}% + \else \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@ + \fi + \else + \ifx \\#2\\\tabu@rowcolorserieserror \fi + \tabu@sanitizearg{#1}\tabu@temp + \tabu@sanitizearg{#2}\@tempa + \advance\count@ \m@ne + \iftabu@everyrow + \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{% + \ifnum ##2=\c@taburow + \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi + \ifnum \c@taburow<##2 \else + \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@ + \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \rowcolor{tabu@rc@\the\tabu@nested}\fi}% + }\edef\x{\noexpand\tabu@rc@ {\the\count@} + {\the\tabu@start} + {\tabu@temp} + {\@tempa}% + }\x + \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}% + \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}% + \else % inside \noalign + \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}% + \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}% + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}% + \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{% + \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne + \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \rowcolor{tabu@rc@\the\tabu@nested}}% + }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x + \global\let\tabu@rc@G \tabu@rc@ + \fi + \fi + \tabu@everyrow@egroup +}% \tabu@rowcolorseries +\tabuDisableCommands {\let\tabu@rc@ \@empty } +\def\tabu@rowcolorserieserror {\PackageError{tabu} + {Invalid syntax for \string\taburowcolors + \MessageBreak Please look at the documentation!}\@ehd +}% \tabu@rowcolorserieserror +\newcommand*\tabureset {% + \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@ + \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}% +}% \tabureset +%% Parsing the line styles ------------------------------------------ +\def\tabu@getline #1{\begingroup + \csname \ifcsname if@safe@actives\endcsname % + @safe@activestrue\else + relax\fi \endcsname + \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa + \let\tabu@thestyle \relax + \ifcsname tabu@linestyle@\@tempa \endcsname + \edef\tabu@thestyle{\endgroup + \def\tabu@thestyle{\expandafter\noexpand + \csname tabu@linestyle@\@tempa\endcsname}% + }\tabu@thestyle + \else \expandafter\tabu@definestyle \tabu@temp \@nil + \fi +}% \tabu@getline +\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter + \tabu@thick \maxdimen \tabu@on \maxdimen \tabu@off \maxdimen + \let\tabu@c@lon \@undefined \let\tabu@c@loff \@undefined + \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs + \def\tabu@temp{\tabu@getparam{thick}}% + \else \def\tabu@temp{\tabu@getparam{thick}\maxdimen}% + \fi + {% + \let\tabu@ \relax + \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-)) + \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}% + \expandafter}\expandafter + \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-) + \def\;{\def\:}% + \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10) + \let\tabu@ \tabu@getcolor \:% all arguments are ready now ;-) + \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi + \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi + \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty \fi + \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen + \tabu@on \tabulineon \fi\fi + \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen + \tabu@off \tabulineoff \fi\fi + \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi + \in@true % + \else \in@false % + \fi + \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}% + \else \edef\tabu@thick{\the\tabu@thick}% + \fi + \edef \tabu@thestyle ##1##2{\endgroup + \def\tabu@thestyle{% + \ifin@ \noexpand\tabu@leadersstyle {\tabu@thick} + {\the\tabu@on}{##1} + {\the\tabu@off}{##2}% + \else \noexpand\tabu@rulesstyle + {##1\vrule width \tabu@thick}% + {##1\leaders \hrule height \tabu@thick \hfil}% + \fi}% + }\expandafter \expandafter + \expandafter \tabu@thestyle \expandafter + \expandafter \expandafter + {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}% +}% \tabu@definestyle +{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active + \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}} + \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space} +}% \catcode +\def\tabu@oxiii #1{% + \ifcase \ifx n#1\z@ \else + \ifx f#1\@ne\else + \tw@ \fi\fi + \expandafter\tabu@onxiii + \or \expandafter\tabu@ofxiii + \else o% + \fi#1}% +\def\tabu@onxiii #1#2{% + \ifcase \ifx !#2\tw@ \else + \ifcat.\noexpand#2\z@ \else + \ifx \tabu@spxiii#2\@ne\else + \tw@ \fi\fi\fi + \tabu@getparam{on}#2\expandafter\@gobble + \or \expandafter\tabu@onxiii % (space is active) + \else o\expandafter\@firstofone + \fi{#1#2}}% +\def\tabu@ofxiii #1#2{% + \ifx #2f\expandafter\tabu@offxiii + \else o\expandafter\@firstofone + \fi{#1#2}} +\def\tabu@offxiii #1#2{% + \ifcase \ifx !#2\tw@ \else + \ifcat.\noexpand#2\z@ \else + \ifx\tabu@spxiii#2\@ne \else + \tw@ \fi\fi\fi + \tabu@getparam{off}#2\expandafter\@gobble + \or \expandafter\tabu@offxiii % (space is active) + \else o\expandafter\@firstofone + \fi{#1#2}} +\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=} +\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef + \ifx \tabu@#1\else % no more spec + \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi +}% \tabu@getcolor +\def\tabu@getc@l@r #1\tabu@ {% + \def\tabu@temp{#1}\tabu@strtrim \tabu@temp + \ifx \tabu@temp\@empty + \else%\ifcsname \string\color@\tabu@temp \endcsname % if the color exists + \ifx \tabu@theparam \tabu@off \let\tabu@c@loff \tabu@c@l@r + \else \let\tabu@c@lon \tabu@c@l@r + \fi + %\else \tabu@warncolour{\tabu@temp}% + \fi%\fi + \tabu@ % next spec +}% \tabu@getc@l@r +\def\tabu@warncolour #1{\PackageWarning{tabu} + {Color #1 is not defined. Default color used}% +}% \tabu@warncolour +\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}% + \ifx \tabu@leaders\tabu@leaders@G \else + \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi +}% \tabu@leadersstyle +\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined + \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}% +}% \tabu@rulesstyle +%% The leaders boxes ------------------------------------------------ +\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color + {\let\color \tabu@color % => during trials -> \color = \tabu@nocolor + {% % but the leaders boxes should have colors ! + \def\@therule{\vrule}\def\@thick{height}\def\@length{width}% + \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}% + \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}% + \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% + \global\let\tabu@thehleaders \tabu@theleaders + }% + {% + \def\@therule{\hrule}\def\@thick{width}\def\@length{height}% + \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}% + \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}% + \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% + \global\let\tabu@thevleaders \tabu@theleaders + }% + \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}% + }% +}% \tabu@LEADERS +\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@} +\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color + \global\setbox \tabu@leads=\@box{% + {#3\tabu@therule{#1}{#2}}% + \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi + {#3\tabu@therule{#1}{#2}}}% + \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss + {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}% + \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {% + {##1\tabu@therule{#1}{#2}}% + \xleaders \copy\tabu@leads \@ss + \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}% + }\tabu@theleaders{#3}% +}% \tabu@l@@d@rs +%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ---------- +\newcommand*\tabu {\tabu@longfalse + \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}% + \else \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi + \expandafter\let\csname tabu*\endcsname \tabu + \expandafter\def\csname endtabu*\endcsname{\endtabu}% + \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget +}% {tabu} +\let\tabu@tabular \tabular % +\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu} +\newcommand*\longtabu {\tabu@longtrue + \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi + \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}% + \LTchunksize=\@M + \expandafter\let\csname tabu*\endcsname \tabu + \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}% + \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts } + \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget +}% {longtabu} +\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu} +\def\tabu@nolongtabu{\PackageError{tabu} + {longtabu requires the longtable package}\@ehd} +%% Read the target and then : \tabular or \@array ------------------ +\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget } +\def\tabu@sett@rget {\tabu@target \z@ + \ifcase \ifx \bgroup\@let@token \z@ \else + \ifx \@sptoken\@let@token \@ne \else + \if t\@let@token \tw@ \else + \if s\@let@token \thr@@\else + \z@\fi\fi\fi\fi + \expandafter\tabu@begin + \or \expandafter\tabu@gobblespace\expandafter\tabu@settarget + \or \expandafter\tabu@to + \or \expandafter\tabu@spread + \fi +}% \tabu@sett@rget +\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget} +\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget} +\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target } +\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget } +\def\tabu@linegoalt@rget {% + \ifx \tabu@temp\LNGL@setlinegoal + \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal + \tabu@begin +}% \tabu@linegoalt@rget +\def\tabu@begin #1#{% + \iftabu@measuring \expandafter\tabu@nestedmeasure \fi + \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty + \else \edef\tabu@halignto{\tabu@halignto\the\tabu@target}% + \fi + \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil +}% \tabu@begin +\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup + \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}% + \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }% +}% \tabu@tabu@ +\def\tabu@nestedmeasure {% + \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax + \tabu@spreadtrue + \else \begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}% + \expandafter\tabu@collectbody\expandafter\tabu@quickrule + \expandafter\endgroup + \fi +}% \tabu@nestedmeasure +\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target} +%% \tabu@setup \tabu@init \tabu@indent +\def\tabu@setup{\tabu@alloc@ + \ifcase \tabu@nested + \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@ + \let\tabu@afterendpar \par + \fi\fi\fi + \def\tabu@aligndefault{c}\tabu@init \tabu@indent + \else % + \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth + \fi + \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined + \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}% + \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu... + \let\@endpbox \tabu@endpbox % idem " " " " " " + \let\@tabarray \tabu@tabarray % idem " " " " " " + \tabu@setcleanup \tabu@setreset +}% \tabu@setup +\def\tabu@init{\tabu@starttimer \tabu@measuringfalse + \edef\tabu@hfuzz {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}% + \let\firsthline \tabu@firsthline \let\lasthline \tabu@lasthline + \let\firstline \tabu@firstline \let\lastline \tabu@lastline + \let\hline \tabu@hline \let\@xhline \tabu@xhline + \let\color \tabu@color \let\@arstrutbox \tabu@arstrutbox + \iftabu@colortbl\else\let\LT@@hline \tabu@LT@@hline \fi + \tabu@trivlist % + \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext + \let\@xfootnote \tabu@xfootnote \let\centering \tabu@centering + \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft + \let\tabudecimal \tabu@tabudecimal \let\Centering \tabu@Centering + \let\RaggedRight \tabu@RaggedRight \let\RaggedLeft \tabu@RaggedLeft + \let\justifying \tabu@justifying \let\rowfont \tabu@rowfont + \let\fbox \tabu@fbox \let\color@b@x \tabu@color@b@x + \let\tabu@@everycr \everycr \let\tabu@@everypar \everypar + \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok \tabu@prepnext@tok + \let\tabu@multicolumnORI\multicolumn \let\multicolumn \tabu@multicolumn + \let\tabu@startpbox \@startpbox % for nested tabu inside longtabu pfff !!! + \let\tabu@endpbox \@endpbox % idem " " " " " " " + \let\tabu@tabarray \@tabarray % idem " " " " " " " + \tabu@adl@fix \let\endarray \tabu@endarray % colortbl & arydshln (delarray) + \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi +}% \tabu@init +\def\tabu@indent{% correction for indentation + \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget + \everypar\expandafter{% + \the\everypar\everypar\expandafter{\the\everypar}% + \setbox\z@=\lastbox + \ifdim\wd\z@>\z@ \edef\tabu@thetarget + {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi + \box\z@}% + \fi\fi +}% \tabu@indent +\def\tabu@setcleanup {% saves last global assignments + \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax + \def\tabu@aftergroupcleanup{% + \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}% + \else + \def\tabu@aftergroupcleanup{% + \aftergroup\aftergroup\aftergroup\tabu@cleanup + \let\tabu@aftergroupcleanup \relax}% + \fi + \let\tabu@arc@Gsave \tabu@arc@G + \let\tabu@arc@G \tabu@arc@L % + \let\tabu@drsc@Gsave \tabu@drsc@G + \let\tabu@drsc@G \tabu@drsc@L % + \let\tabu@ls@Gsave \tabu@ls@G + \let\tabu@ls@G \tabu@ls@L % + \let\tabu@rc@Gsave \tabu@rc@G + \let\tabu@rc@G \tabu@rc@L % + \let\tabu@evr@Gsave \tabu@evr@G + \let\tabu@evr@G \tabu@evr@L % + \let\tabu@celllalign@save \tabu@celllalign + \let\tabu@cellralign@save \tabu@cellralign + \let\tabu@cellleft@save \tabu@cellleft + \let\tabu@cellright@save \tabu@cellright + \let\tabu@@celllalign@save \tabu@@celllalign + \let\tabu@@cellralign@save \tabu@@cellralign + \let\tabu@@cellleft@save \tabu@@cellleft + \let\tabu@@cellright@save \tabu@@cellright + \let\tabu@rowfontreset@save \tabu@rowfontreset + \let\tabu@@rowfontreset@save\tabu@@rowfontreset + \let\tabu@rowfontreset \@empty + \edef\tabu@alloc@save {\the\tabu@alloc}% restore at \tabu@reset + \edef\c@taburow@save {\the\c@taburow}% + \edef\tabu@naturalX@save {\the\tabu@naturalX}% + \let\tabu@naturalXmin@save \tabu@naturalXmin + \let\tabu@naturalXmax@save \tabu@naturalXmax + \let\tabu@mkarstrut@save \tabu@mkarstrut + \edef\tabu@clarstrut{% + \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax + \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax + \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}% +}% \tabu@setcleanup +\def\tabu@cleanup {\begingroup + \globaldefs\@ne \tabu@everyrowtrue + \let\tabu@arc@G \tabu@arc@Gsave + \let\CT@arc@ \tabu@arc@G + \let\tabu@drsc@G \tabu@drsc@Gsave + \let\CT@drsc@ \tabu@drsc@G + \let\tabu@ls@G \tabu@ls@Gsave + \let\tabu@ls@ \tabu@ls@G + \let\tabu@rc@G \tabu@rc@Gsave + \let\tabu@rc@ \tabu@rc@G + \let\CT@do@color \relax + \let\tabu@evr@G \tabu@evr@Gsave + \let\tabu@celllalign \tabu@celllalign@save + \let\tabu@cellralign \tabu@cellralign@save + \let\tabu@cellleft \tabu@cellleft@save + \let\tabu@cellright \tabu@cellright@save + \let\tabu@@celllalign \tabu@@celllalign@save + \let\tabu@@cellralign \tabu@@cellralign@save + \let\tabu@@cellleft \tabu@@cellleft@save + \let\tabu@@cellright \tabu@@cellright@save + \let\tabu@rowfontreset \tabu@rowfontreset@save + \let\tabu@@rowfontreset \tabu@@rowfontreset@save + \tabu@naturalX =\tabu@naturalX@save + \let\tabu@naturalXmax \tabu@naturalXmax@save + \let\tabu@naturalXmin \tabu@naturalXmin@save + \let\tabu@mkarstrut \tabu@mkarstrut@save + \c@taburow =\c@taburow@save + \ifcase \tabu@nested \tabu@alloc \m@ne\fi + \endgroup % + \ifcase \tabu@nested + \the\tabu@footnotes \global\tabu@footnotes{}% + \tabu@afterendpar \tabu@elapsedtime + \fi + \tabu@clarstrut + \everyrow\expandafter {\tabu@evr@G}% +}% \tabu@cleanup +\let\tabu@afterendpar \relax +\def\tabu@setreset {% + \edef\tabu@savedparams {% \relax for \tabu@message@save + \ifmmode \col@sep \the\arraycolsep + \else \col@sep \the\tabcolsep \fi \relax + \arrayrulewidth \the\arrayrulewidth \relax + \doublerulesep \the\doublerulesep \relax + \extratabsurround \the\extratabsurround \relax + \extrarowheight \the\extrarowheight \relax + \extrarowdepth \the\extrarowdepth \relax + \abovetabulinesep \the\abovetabulinesep \relax + \belowtabulinesep \the\belowtabulinesep \relax + \def\noexpand\arraystretch{\arraystretch}% + \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}% + \begingroup + \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu + \ifx \tabu@arc@L\relax \else \tabu@setsave \tabu@arc@L \fi + \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi + \tabu@setsave \tabu@ls@L \tabu@setsave \tabu@evr@L + \expandafter \endgroup \expandafter + \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena + \let\tabu@arc@G \tabu@arc@L + \let\tabu@drsc@G \tabu@drsc@L + \let\tabu@ls@G \tabu@ls@L + \let\tabu@rc@G \tabu@rc@L + \let\tabu@evr@G \tabu@evr@L}% + \def\tabu@reset{\tabu@savedparams + \tabu@everyrowtrue \c@taburow \z@ + \let\CT@arc@ \tabu@arc@L + \let\CT@drsc@ \tabu@drsc@L + \let\tabu@ls@ \tabu@ls@L + \let\tabu@rc@ \tabu@rc@L + \global\tabu@alloc \tabu@alloc@save + \everyrow\expandafter{\tabu@evr@L}}% +}% \tabu@reset +\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}} +\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}} +%% The Rewriting Process ------------------------------------------- +\def\tabu@newcolumntype #1{% + \expandafter\tabu@new@columntype + \csname NC@find@\string#1\expandafter\endcsname + \csname NC@rewrite@\string#1\endcsname + {#1}% +}% \tabu@newcolumntype +\def\tabu@new@columntype #1#2#3{% + \def#1##1#3{\NC@{##1}}% + \let#2\relax \newcommand*#2% +}% \tabu@new@columntype +\def\tabu@privatecolumntype #1{% + \expandafter\tabu@private@columntype + \csname NC@find@\string#1\expandafter\endcsname + \csname NC@rewrite@\string#1\expandafter\endcsname + \csname tabu@NC@find@\string#1\expandafter\endcsname + \csname tabu@NC@rewrite@\string#1\endcsname + {#1}% +}% \tabu@privatecolumntype +\def\tabu@private@columntype#1#2#3#4{% + \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}% + \tabu@new@columntype#3#4% +}% \tabu@private@columntype +\let\tabu@privatecolumns \@empty +\newcommand*\tabucolumn [1]{\expandafter \def \expandafter + \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns + \NC@do #1}}% +\let\tabu@highprioritycolumns \@empty +%% The | ``column'' : rewriting process -------------------------- +\tabu@privatecolumntype |{\tabu@rewritevline} +\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}% + \expandafter \NC@find \tabu@rewritten} +\def\tabu@lines #1{% + \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi + \NC@list\expandafter{\the\NC@list \NC@do #1}% +}% \tabu@lines@ +\def\tabu@vlinearg #1{% + \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}% + \else\tabu@getline {#1}% + \fi + \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}% + }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}% + \expandafter \tabu@keepls \tabu@thestyle \@nil +}% \tabu@vlinearg +\def\tabu@keepls #1\@nil{% + \ifcat $\@cdr #1\@nil $% + \ifx \relax#1\else + \ifx \tabu@ls@#1\else + \let#1\relax + \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer + \tabu@savels\noexpand#1}\fi\fi\fi +}% \tabu@keepls +\def\tabu@thevline {\begingroup + \ifdefined\tabu@leaders + \setbox\@tempboxa=\vtop to\dimexpr + \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}% + \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox + \box\@tempboxa + \else + \tabu@thevrule + \fi \endgroup +}% \tabu@thevline +\def\tabu@savels #1{% + \expandafter\let\csname\string#1\endcsname #1% + \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset + \tabu@resetls#1}}% +\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}% +%% \multicolumn inside tabu environment ----------------------------- +\tabu@newcolumntype \tabu@rewritemulticolumn{% + \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group + \NC@list{\NC@do *}\tabu@textbar \tabu@lines + \tabu@savedecl + \tabu@privatecolumns + \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}% + \let\tabu@savels \relax + \NC@find +}% \tabu@rewritemulticolumn +\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup} +\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI} +\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup + \tabu@everyrowtrue + \NC@list{\NC@do \tabu@rewritemulticolumn}% + \expandafter\@gobbletwo % gobbles \multispan{#1} + \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}% + {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi + {#3}}% +}% \tabu@multic@lumn +%% The X column(s): rewriting process ----------------------------- +\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}} +\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten } +\def\tabu@siunitx #1{\@ifnextchar \bgroup + {\tabu@rewriteX@Ss{#1}} + {\tabu@nosiunitx{#1}}} +\def\tabu@rewriteX@Ss #1#2{\@temptokena{}% + \@defaultunits \let\tabu@temp =#2\relax\@nnil + \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi + \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}% + }\expandafter\NC@find \the\@temptokena \relax + }\expandafter\NC@rewrite@S \@gobble #2\relax + \else \tabu@siunitxerror + \fi + \expandafter \NC@find \tabu@rewritten +}% \tabu@rewriteX@Ss +\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column ! + \MessageBreak X column can only embed siunitx S or s columns}\@ehd +}% \tabu@siunitxerror +\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}% + \iftabu@measuring + \else \tabu@measuringtrue % first X column found in the preamble + \let\@halignto \relax \let\tabu@halignto \relax + \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@ + \else \tabu@spreadtarget \z@ \fi + \ifdim \tabu@target=\z@ + \setlength\tabu@target \tabu@thetarget + \tabu@message{\tabu@message@defaulttarget}% + \else \tabu@message{\tabu@message@target}\fi + \fi +}% \tabu@rewriteX +\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax + \def\tabu@rewritten{l}} +\def\tabu@Xarg #1#2#3{% + \advance\tabu@Xcol \@ne \let\tabu@Xlcr \@empty + \let\tabu@Xdisp \@empty \let\tabu@Xmath \@empty + \ifx\\#1\\% + \def\tabu@rewritten{p}\tabucolX \p@ % + \else + \let\tabu@rewritten \@empty \let\tabu@temp \@empty \tabucolX \z@ + \tabu@Xparse {}#1\relax + \fi + \tabu@Xrewritten{#2}{#3}% +}% \tabu@Xarg +\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest} +\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}} +\def\tabu@Xtest{% + \ifcase \ifx \relax\@let@token \z@ \else + \if ,\@let@token \m@ne\else + \if p\@let@token 1\else + \if m\@let@token 2\else + \if b\@let@token 3\else + \if l\@let@token 4\else + \if c\@let@token 5\else + \if r\@let@token 6\else + \if j\@let@token 7\else + \if L\@let@token 8\else + \if C\@let@token 9\else + \if R\@let@token 10\else + \if J\@let@token 11\else + \ifx \@sptoken\@let@token 12\else + \if .\@let@token 13\else + \if -\@let@token 13\else + \ifcat $\@let@token 14\else + 15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax + \or \tabu@Xtype {p}% + \or \tabu@Xtype {m}% + \or \tabu@Xtype {b}% + \or \tabu@Xalign \raggedright\relax + \or \tabu@Xalign \centering\relax + \or \tabu@Xalign \raggedleft\relax + \or \tabu@Xalign \tabu@justify\relax + \or \tabu@Xalign \RaggedRight\raggedright + \or \tabu@Xalign \Centering\centering + \or \tabu@Xalign \RaggedLeft\raggedleft + \or \tabu@Xalign \justifying\tabu@justify + \or \expandafter \tabu@Xparsespace + \or \expandafter \tabu@Xcoef + \or \expandafter \tabu@Xm@th + \or \tabu@Xcoef{}% + \else\expandafter \tabu@Xparse + \fi +}% \tabu@Xtest +\def\tabu@Xalign #1#2{% + \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu} + {Duplicate horizontal alignment specification}\fi + \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax + \else \def\tabu@Xlcr{#2}\let#2\relax\fi + \expandafter\tabu@Xparse +}% \tabu@Xalign +\def\tabu@Xtype #1{% + \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu} + {Duplicate vertical alignment specification}\fi + \def\tabu@rewritten{#1}\expandafter\tabu@Xparse +}% \tabu@Xtype +\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}% + \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi +}% \tabu@Xcoef +\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@ + \tabu@Xparse{}% +}% \tabu@Xc@ef +\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp} +\def\tabu@Xd@sp{\let\tabu@Xmath=$% + \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}% + \expandafter\tabu@Xparse + \else \expandafter\tabu@Xparse\expandafter{\expandafter}% + \fi +}% \tabu@Xd@sp +\def\tabu@Xrewritten {% + \ifx \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi + \ifdim \tabucolX<\z@ \tabu@negcoeftrue + \else\ifdim \tabucolX=\z@ \tabucolX \p@ + \fi\fi + \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}% + \edef\tabu@Xcoefs{\tabu@Xcoefs \tabu@ \tabu@temp}% + \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{% + >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}% + \tabu@rewritten {\tabu@hsize \tabu@temp}% + <{##2\ifx$\tabu@Xmath$\fi}}% + }\tabu@rewritten +}% \tabu@Xrewritten +\def\tabu@hsize #1#2{% + \ifdim #2\p@<\z@ + \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else + \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi + \fi + \else #2\tabucolX + \fi +}% \tabu@hsize +%% \usetabu and \preamble: rewriting process --------------------- +\tabu@privatecolumntype \usetabu [1]{% + \ifx\\#1\\\tabu@saveerr{}\else + \@ifundefined{tabu@saved@\string#1} + {\tabu@saveerr{#1}} + {\let\tabu@rewriteX \tabu@rewriteXrestore + \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}% + \fi +}% \NC@rewrite@\usetabu +\tabu@privatecolumntype \preamble [1]{% + \ifx\\#1\\\tabu@saveerr{}\else + \@ifundefined{tabu@saved@\string#1} + {\tabu@saveerr{#1}} + {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}% + \fi +}% \NC@rewrite@\preamble +%% Controlling the rewriting process ------------------------------- +\tabu@newcolumntype \tabu@rewritefirst{% + \iftabu@long \aftergroup \tabu@longpream % + \else \aftergroup \tabu@pream + \fi + \let\tabu@ \relax \let\tabu@hsize \relax + \let\tabu@Xcoefs \@empty \let\tabu@savels \relax + \tabu@Xcol \z@ \tabu@cnt \tw@ + \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse + \global\setbox\@arstrutbox \box\@arstrutbox + \NC@list{\NC@do *}\tabu@textbar \tabu@lines + \NC@list\expandafter{\the\NC@list \NC@do X}% + \iftabu@siunitx % + \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi + \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}% + \expandafter\def\expandafter\tabu@NC@list\expandafter{% + \the\expandafter\NC@list \tabu@NC@list}% % * | X S + \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu + \expandafter \NC@do \expandafter\preamble + \the\NC@list \NC@do \tabu@rewritemiddle + \NC@do \tabu@rewritelast}% + \tabu@savedecl + \tabu@privatecolumns + \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle +}% NC@rewrite@\tabu@rewritefirst +\tabu@newcolumntype \tabu@rewritemiddle{% + \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast +}% \NC@rewrite@\tabu@rewritemiddle +\tabu@newcolumntype \tabu@rewritelast{% + \ifx \tabu@temp\tabu@prev \advance\tabu@cnt \m@ne + \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle + \NC@do \tabu@rewritelast}% + \else \let\tabu@prev\tabu@temp + \fi + \ifcase \tabu@cnt \expandafter\tabu@endrewrite + \else \expandafter\NC@find \expandafter\tabu@rewritemiddle + \fi +}% \NC@rewrite@\tabu@rewritelast +%% Choosing the strategy -------------------------------------------- +\def\tabu@endrewrite {% + \let\tabu@temp \NC@find + \ifx \@arrayright\relax \let\@arrayright \@empty \fi + \count@=% + \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print + \iftabu@measuring + \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer + \tabu@target \csname tabu@\the\tabu@nested.T\endcsname + \tabucolX \csname tabu@\the\tabu@nested.X\endcsname + \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}% + \fi + \else\iftabu@measuring 4 % X columns + \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer + \tabu@target \the\tabu@target + \tabu@spreadtarget \the\tabu@spreadtarget}% + \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}% + \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}% + \let\tabu@Xcoefs \relax + \else\ifcase\tabu@nested \thr@@ % outer, no X + \global\let\tabu@afterendpar \relax + \else \@ne % inner, no X, outer in mode 1 or 2 + \fi + \ifdefined\tabu@usetabu + \else \ifdim\tabu@target=\z@ + \else \let\tabu@temp \tabu@extracolsep + \fi\fi + \fi + \fi + \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}% + \tabu@temp +}% \tabu@endrewrite +\def\tabu@extracolsep{\@defaultunits \expandafter\let + \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil + \ifx \tabu@temp\@sptoken + \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep + \else + \edef\tabu@temp{\noexpand\NC@find + \if |\noexpand\tabu@temp @% + \else\if !\noexpand\tabu@temp @% + \else !% + \fi\fi + {\noexpand\extracolsep\noexpand\@flushglue}}% + \fi + \tabu@temp +}% \tabu@extrac@lsep +%% Implementing the strategy ---------------------------------------- +\long\def\tabu@pream #1\@preamble {% + \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup + \NC@list\expandafter {\tabu@NC@list}% in case of nesting... + \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi + \let\tabu@savedpreamble \@preamble + \global\let\tabu@elapsedtime \relax + \tabu@thebody ={#1\tabu@aftergroupcleanup}% + \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody + \@preamble}% + \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) + \tabu@select +}% \tabu@pream +\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{% + \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup + \NC@list\expandafter {\tabu@NC@list}% in case of nesting... + \let\tabu@savedpreamble \@preamble + \global\let\tabu@elapsedtime \relax + \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}% + \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) + \tabu@select +}% \tabu@longpream +\def\tabu@select {% + \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi + \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi + \ifcase \count@ + \global\let\tabu@elapsedtime \relax + \tabu@seteverycr + \expandafter \tabuthepreamble % vertical adjustment (inherited from outer) + \or % exit in vertical measure + struts per cell because no X and outer in mode 3 + \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \tabu@seteverycr + \expandafter \tabuthepreamble + \or % exit without measure because no X and outer in mode 4 + \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty + \tabu@seteverycr + \expandafter \tabuthepreamble + \else % needs trials + \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty + \tabu@savecounters + \expandafter \tabu@setstrategy + \fi +}% \tabu@select +\def\tabu@@ {\gdef\tabu@mkpreambuffer} +%% Protections to set up before trials ------------------------------ +\def\tabu@setstrategy {\begingroup % + \tabu@trialh@@k \tabu@cnt \z@ % number of trials + \hbadness \@M \let\hbadness \@tempcnta + \hfuzz \maxdimen \let\hfuzz \@tempdima + \let\write \tabu@nowrite\let\GenericError \tabu@GenericError + \let\savetabu \@gobble \let\tabudefaulttarget \linewidth + \let\@footnotetext \@gobble \let\@xfootnote \tabu@xfootnote + \let\color \tabu@nocolor\let\rowcolor \tabu@norowcolor + \let\tabu@aftergroupcleanup \relax % only after the last trial + \tabu@mkpreambuffer + \ifnum \count@>\thr@@ \let\@halignto \@empty \tabucolX@init + \def\tabu@lasttry{\m@ne\p@}\fi + \begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi % + \tabu@collectbody \tabu@strategy % +}% \tabu@setstrategy +\def\tabu@savecounters{% + \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}% + \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax +}% \tabu@savecounters +\def\tabucolX@init {% \tabucolX <= \tabu@target / (sum coefs > 0) + \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs + \ifdim \dimen@>\z@ + \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax + \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi + \fi +}% \tabucolX@init +\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum + \ifdim #2\p@>\z@ #2\p@ \advance\dimen@ #2\p@ + \else -#2\p@ \tabu@negcoeftrue + \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax + \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi + \tabu@wddef{#1}{0pt}% + \fi +}% \tabu@Xinit +%% Collecting the environment body ---------------------------------- +\long\def\tabu@collectbody #1#2\end #3{% + \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}% + \ifx \tabu@stack\@empty + \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}% + \def\tabu@end@envir{\end{#3}}% + \iftabuscantokens + \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}% + \else \def\tabu@endenvir {\let\endarray \@empty + \end{#3}\tabu@gobbleX}% + \fi + \else \def\tabu@endenvir {\end{#3}}\fi}% + \let\tabu@collectbody \tabu@endofcollect + \else\def\tabu@temp{#3}% + \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }% + \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}% + \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}% + \else \toks@\expandafter{\the\toks@ #2\end{#3}}% + \fi\fi\fi + \fi + \tabu@collectbody{#1}% +}% \tabu@collectbody +\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}% +\def\tabu@endofcollect #1{\ifnum0=`{}\fi + \expandafter\endgroup \the\toks@ #1% +}% \tabu@endofcollect +%% The trials: switching between strategies ------------------------- +\def\tabu@strategy {\relax % stops \count@ assignment ! + \ifcase\count@ % case 0 = print with vertical adjustment (outer is finished) + \expandafter \tabu@endoftrials + \or % case 1 = exit in vertical measure (outer in mode 3) + \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}% + \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}% + \expandafter \tabu@endoftrials + \or % case 2 = exit with a rule replacing the table (outer in mode 4) + \expandafter \tabu@quickend + \or % case 3 = outer is in mode 3 because of no X + \begingroup + \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \expandafter \tabu@measuring + \else % case 4 = horizontal measure + \begingroup + \global\let\tabu@elapsedtime \tabu@message@etime + \long\def\multicolumn##1##2##3{\multispan{##1}}% + \let\tabu@startpboxORI \@startpbox + \iftabu@spread + \def\tabu@naturalXmax {\z@}% + \let\tabu@naturalXmin \tabu@naturalXmax + \tabu@evr{\global\tabu@naturalX \z@}% + \let\@startpbox \tabu@startpboxmeasure + \else\iftabu@negcoef + \let\@startpbox \tabu@startpboxmeasure + \else \let\@startpbox \tabu@startpboxquick + \fi\fi + \expandafter \tabu@measuring + \fi +}% \tabu@strategy +\def\tabu@measuring{\expandafter \tabu@trial \expandafter + \count@ \the\count@ \tabu@endtrial +}% \tabu@measuring +\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi} +\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr + \ifx \tabu@savecounters\relax \else + \let\tabu@savecounters \relax \tabu@clckpt \fi + $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi + \expandafter{\expandafter \tabuthepreamble + \the\tabu@thebody + \csname tabu@adl@endtrial\endcsname + \endarray}$\egroup % got \tabu@box +}% \tabu@shorttrial +\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr + \ifx \tabu@savecounters\relax \else + \let\tabu@savecounters \relax \tabu@clckpt \fi + \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi + \expandafter{\expandafter \tabuthepreamble + \the\tabu@thebody + \tabuendlongtrial}\egroup % got \tabu@box +}% \tabu@longtrial +\def\tabuendlongtrial{% no @ allowed for \scantokens + \LT@echunk \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne + \LT@get@widths +}% \tabuendlongtrial +\def\tabu@adl@endtrial{% + \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails ! +\def\tabu@seteverycr {\tabu@reset + \everycr \expandafter{\the\everycr \tabu@everycr}% + \let\everycr \tabu@noeverycr % +}% \tabu@seteverycr +\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@} +\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr} +\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi} +\def\tabu@endoftrials {% + \iftabuscantokens \expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi + {\expandafter \tabu@closetrialsgroup \expandafter + \tabu@rescan \expandafter{% + \expandafter\tabuthepreamble + \the\expandafter\tabu@thebody + \iftabu@long \else \endarray \fi}} + {\expandafter\tabu@closetrialsgroup \expandafter + \tabuthepreamble + \the\tabu@thebody}% + \tabu@endenvir % Finish ! +}% \tabu@endoftrials +\def\tabu@closetrialsgroup {% + \toks@\expandafter{\tabu@endenvir}% + \edef\tabu@bufferX{\endgroup + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target + \tabu@cnt \the\tabu@cnt + \def\noexpand\tabu@endenvir{\the\toks@}% + %Quid de \@halignto = \tabu@halignto ?? + }% \tabu@bufferX + \tabu@bufferX + \ifcase\tabu@nested % print out (outer in mode 0) + \global\tabu@cnt \tabu@cnt + \tabu@evr{\tabu@verticaldynamicadjustment}% + \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty + \let\@finalstrut \tabu@finalstrut + \else % vertical measure of nested tabu + \tabu@evr{\tabu@verticalinit}% + \tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \fi + \tabu@clckpt \let\@halignto \tabu@halignto + \let\@halignto \@empty + \tabu@seteverycr + \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@ + \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts) + \fi\fi +}% \tabu@closetrialsgroup +\def\tabu@quickend {\expandafter \endgroup \expandafter + \tabu@target \the\tabu@target \tabu@quickrule + \let\endarray \relax \tabu@endenvir +}% \tabu@quickend +\def\tabu@endtrial {\relax % stops \count@ assignment ! + \ifcase \count@ \tabu@err % case 0 = impossible here + \or \tabu@err % case 1 = impossible here + \or \tabu@err % case 2 = impossible here + \or % case 3 = outer goes into mode 0 + \def\tabu@bufferX{\endgroup}\count@ \z@ + \else % case 4 = outer goes into mode 3 + \iftabu@spread \tabu@spreadarith % inner into mode 1 (outer in mode 3) + \else \tabu@arith % or 2 (outer in mode 4) + \fi + \count@=% + \ifcase\tabu@nested \thr@@ % outer goes into mode 3 + \else\iftabu@measuring \tw@ % outer is in mode 4 + \else \@ne % outer is in mode 3 + \fi\fi + \edef\tabu@bufferX{\endgroup + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target}% + \fi + \expandafter \tabu@bufferX \expandafter + \count@ \the\count@ \tabu@strategy +}% \tabu@endtrial +\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}} +%% The algorithms: compute the widths / stop or go on --------------- +\def\tabu@arithnegcoef {% + \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs +}% \tabu@arithnegcoef +\def\tabu@arith@negcoef #1#2{% + \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ % saturated by definition + \advance\@tempdima #2\tabucolX + \else + \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated + \advance\dimen@ -#2\p@ + \advance\@tempdima -#2\tabucolX + \else + \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised + \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised + \advance\dimen@ -#2\p@ % saturated (natural width = tabu@target) + \fi + \fi + \fi +}% \tabu@arith@negcoef +\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@ + \ifdim \@tempdima=\z@ + \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}% + \else + \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2} + *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}% + \fi +}% \tabu@givespace +\def\tabu@arith {\advance\tabu@cnt \@ne + \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi + \tabu@arithnegcoef + \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax % + \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax + \tabu@message{\tabu@message@arith}% + \ifdim \tabu@DELTA <\tabu@hfuzz + \ifdim \tabu@DELTA<\z@ % wd (tabu)<\tabu@target ? + \let\tabu@ \tabu@givespace \tabu@Xcoefs + \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message + \else % already converged: nothing to do but nearly impossible... + \fi + \tabucolX \maxdimen + \tabu@measuringfalse + \else % need for narrower X columns + \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax + \tabu@measuringtrue + \@whilesw \iftabu@measuring\fi {% + \advance\tabu@cnt \@ne + \tabu@arithnegcoef + \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here + \tabu@message{\tabu@header + \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ + \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@ + \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ + \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ + \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else + \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@ + \fi}% + \ifdim -\tabu@DELTA<\tabu@hfuzz + \advance\@tempdima \@tempdimb % for message + \tabu@measuringfalse + \else + \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax + \fi + }% + \fi + \tabu@message{\tabu@message@reached}% + \edef\tabu@bufferX{\endgroup \tabu@cnt \the\tabu@cnt + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target}% +}% \tabu@arith +\def\tabu@spreadarith {% + \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs + \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}% + \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax + \iftabu@measuring + \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax + \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}% + \else + \tabu@message{\tabu@message@spreadarith}% + \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target + \tabu@message{(tabu) spread + \ifdim \@tempdimc>\tabu@target useless here: default target used% + \else too large: reduced to fit default target\fi.}% + \else + \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax + \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}% + \fi + \begingroup \let\tabu@wddef \@gobbletwo + \@tempdimb \@tempdima + \tabucolX@init + \tabu@arithnegcoef + \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax + \expandafter\endgroup \expandafter\tabucolX \the\tabucolX + \tabu@arith + \fi +}% \tabu@spreadarith +\def\tabu@spread@arith #1#2{% + \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ + \else \advance\@tempdima \tabu@wd{#1}\relax + \fi +}% \tabu@spread@arith +%% Reporting in the .log file --------------------------------------- +\def\tabu@message@defaulttarget{% + \ifnum\tabu@nested=\z@^^J(tabu) Default target: + \ifx\tabudefaulttarget\linewidth \string\linewidth + \ifdim \tabu@thetarget=\linewidth \else + -\the\dimexpr\linewidth-\tabu@thetarget\fi = + \else\ifx\tabudefaulttarget\linegoal\string\linegoal= + \fi\fi + \else (tabu) Default target (nested): \fi + \the\tabu@target \on@line + \ifnum\tabu@nested=\z@ , page \the\c@page\fi} +\def\tabu@message@target {^^J(tabu) Target specified: + \the\tabu@target \on@line, page \the\c@page} +\def\tabu@message@arith {\tabu@header + \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ + \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@ + \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ + \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ + \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else + \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@ + \fi +}% \tabu@message@arith +\def\tabu@message@spreadarith {\tabu@spreadheader + \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@ + \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@ + \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@ + \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@ + \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target + \else \@tempdimc+\tabu@spreadtarget \fi + {}{}{}{}{}\@@} +\def\tabu@message@negcoef #1#2{ + \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]: + \space width = \tabu@wd {#1} + \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname + \ifdim -\tabu@pt#2\tabucolX<\tabu@target + < \number-\rem@pt#2 X + = \the\dimexpr -\tabu@pt#2\tabucolX \relax + \else + <= \the\tabu@target\space < \number-\rem@pt#2 X\fi} +\def\tabu@message@reached{\tabu@header + ******* Reached Target: + hfuzz = \tabu@hfuzz\on@line\space *******} +\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}% + \tabu@message{(tabu)\tabu@spaces Time elapsed during measure: + \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec + \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime) + -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax + *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space + cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}} +\def\tabu@message@verticalsp {% + \ifdim \@tempdima>\tabu@ht + \ifdim \@tempdimb>\tabu@dp + \expandafter\expandafter\expandafter\string\tabu@ht = + \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@ + \expandafter\expandafter\expandafter\string\tabu@dp = + \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J% + \else + \expandafter\expandafter\expandafter\string\tabu@ht = + \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J% + \fi + \else\ifdim \@tempdimb>\tabu@dp + \tabu@spaces\tabu@spaces\tabu@spaces + \expandafter\expandafter\expandafter\string\tabu@dp = + \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi + \fi +}% \tabu@message@verticalsp +\edef\tabu@spaces{\@spaces} +\def\tabu@strippt{\expandafter\tabu@pt\the} +{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}} +\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr} +\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt} +\def\do #1{% + \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{% + \ifnum##1<10 #1 #1\else + \ifnum##1<100 #1 \else + \ifnum##1<\@m #1\fi\fi\fi + ##1.##2##3##4##5##6##7##8#1}% + \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }% + \def\tabu@titles{\ifnum \tabu@nested=\z@ + (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target + #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}% + \def\tabu@spreadheader{% + (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min. + #1 New Target^^J% + (tabu) sprd} + \def\tabu@message@save {\begingroup + \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@} + \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt + \dimexpr####1\p@{ }{ }}}% + \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}% + \let\CT@arc@ \relax \let\@preamble \@gobble + \let\tabu@savedpream \@firstofone + \let\tabu@savedparams \@firstofone + \def\tabu@target ####1\relax {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}% + \def\tabucolX ####1\relax {(tabu) X columns width#1 = \x{####1}^^J}% + \def\tabu@nbcols ####1\relax {(tabu) Number of columns: \z{####1}^^J}% + \def\tabu@aligndefault ####1{(tabu) Default alignment: #1 #1 ####1^^J}% + \def\col@sep ####1\relax {(tabu) column sep #1 #1 #1 = \x{####1}^^J}% + \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}% + \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}% + \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}% + \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}% + \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}% + \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }% + \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}% + \def\arraystretch ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}% + \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}% + \def\tabu@arc@L ####1{(tabu) taburulecolor #1 #1 = ####1^^J}% + \def\tabu@drsc@L ####1{(tabu) tabudoublerulecolor= ####1^^J}% + \def\tabu@evr@L ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}% + \def\tabu@ls@L ####1{(tabu) line style = \detokenize{####1}^^J}% + \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}% + \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}% + \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo + \tabu@message{% + (tabu) \string\savetabu{\tabu@temp}: \on@line^^J% + \tabu@usetabu \@nil^^J}% + \endgroup} +}\do{ } +%% Measuring the natural width (varwidth) - store the results ------- +\def\tabu@startpboxmeasure #1{\bgroup % entering \vtop + \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}% + \ifodd 1\ifx \tabu@temp\@empty 0 \else % starts with \tabu@hsize ? + \iftabu@spread \else % if spread -> measure + \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure + \let\@startpbox \tabu@startpboxORI % restore immediately (nesting) + \tabu@measuringtrue % for the quick option... + \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi + \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target + \tabu@target=\tabu@temp\tabucolX \fi\fi + \setbox\tabu@box \hbox \bgroup + \begin{varwidth}\tabu@target + \let\FV@ListProcessLine \tabu@FV@ListProcessLine % \hbox to natural width... + \narrowragged \arraybackslash \parfillskip \@flushglue + \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi + \bgroup \aftergroup\tabu@endpboxmeasure + \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi + \else \expandafter\@gobble + \tabu@startpboxquick{#1}% \@gobble \bgroup + \fi +}% \tabu@startpboxmeasure +\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty + \bgroup\color@begingroup} +\def\tabu@endpboxmeasure {% + \@finalstrut \@arstrutbox + \end{varwidth}\egroup % + \ifdim \tabu@temp\p@ <\z@ % neg coef + \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box + \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}% + \tabu@debug{\tabu@message@endpboxmeasure}% + \fi + \else % spread coef>0 + \global\advance \tabu@naturalX \wd\tabu@box + \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax + \ifdim \tabu@naturalXmax <\tabu@naturalX + \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi + \ifdim \tabu@naturalXmin <\@tempdima + \xdef\tabu@naturalXmin {\the\@tempdima}\fi + \fi + \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target +}% \tabu@endpboxmeasure +\def\tabu@wddef #1{\expandafter\xdef + \csname tabu@\the\tabu@nested.W\number#1\endcsname} +\def\tabu@wd #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname} +\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd + \the\tabu@Xcol. X[\tabu@temp]: + target = \the\tabucolX \space + \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol + =\tabu@wd\tabu@Xcol +}% \tabu@message@endpboxmeasure +\def\tabu@startpboxquick {\bgroup + \let\@startpbox \tabu@startpboxORI % restore immediately + \let\tabu \tabu@quick % \begin is expanded before... + \expandafter\@gobble \@startpbox % gobbles \bgroup +}% \tabu@startpboxquick +\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick +}% \tabu@quick +\def\tabu@endquick {% + \ifodd 1\ifx\tabu@end@envir\tabu@endtabu \else + \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax + \endgroup + \else \let\endtabu \relax + \tabu@end@envir + \fi +}% \tabu@quick +\def\tabu@endtabu {\end{tabu}} +\def\tabu@endtabus {\end{tabu*}} +%% Measuring the heights and depths - store the results ------------- +\def\tabu@verticalmeasure{\everypar{}% + \ifnum \currentgrouptype>12 % 14=semi-simple, 15=math shift group + \setbox\tabu@box =\hbox\bgroup + \let\tabu@verticalspacing \tabu@verticalsp@lcr + \d@llarbegin % after \hbox ... + \else + \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop + \else\ifnum\currentgrouptype=12\vcenter + \else\vbox\fi\fi}% + \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup + \let\tabu@verticalspacing \tabu@verticalsp@pmb + \fi +}% \tabu@verticalmeasure +\def\tabu@verticalsp@lcr{% + \d@llarend \egroup % + \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep + \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax + \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi + \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi + \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi + \noindent\vrule height\@tempdima depth\@tempdimb +}% \tabu@verticalsp@lcr +\def\tabu@verticalsp@pmb{% inserts struts as needed + \par \expandafter\egroup + \expandafter$\expandafter + \egroup \expandafter + \@tempdimc \the\prevdepth + \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep + \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax + \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi + \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi + \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi + \let\@finalstrut \@gobble + \hrule height\@tempdima depth\@tempdimb width\hsize +%% \box\tabu@box +}% \tabu@verticalsp@pmb + +\def\tabu@verticalinit{% + \ifnum \c@taburow=\z@ \tabu@rearstrut \fi % after \tabu@reset ! + \advance\c@taburow \@ne + \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}% + \advance\c@taburow \m@ne +}% \tabu@verticalinit +\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} +\def\tabu@ht {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} +\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} +\def\tabu@dp {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} +\def\tabu@verticaldynamicadjustment {% + \advance\c@taburow \@ne + \extrarowheight \dimexpr\tabu@ht - \ht\strutbox + \extrarowdepth \dimexpr\tabu@dp - \dp\strutbox + \let\arraystretch \@empty + \advance\c@taburow \m@ne +}% \tabu@verticaldynamicadjustment +\def\tabuphantomline{\crcr \noalign{% + {\globaldefs \@ne + \setbox\@arstrutbox \box\voidb@x + \let\tabu@@celllalign \tabu@celllalign + \let\tabu@@cellralign \tabu@cellralign + \let\tabu@@cellleft \tabu@cellleft + \let\tabu@@cellright \tabu@cellright + \let\tabu@@thevline \tabu@thevline + \let\tabu@celllalign \@empty + \let\tabu@cellralign \@empty + \let\tabu@cellright \@empty + \let\tabu@cellleft \@empty + \let\tabu@thevline \relax}% + \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}% + \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr + \noalign{\tabu@rearstrut + {\globaldefs\@ne + \let\tabu@celllalign \tabu@@celllalign + \let\tabu@cellralign \tabu@@cellralign + \let\tabu@cellleft \tabu@@cellleft + \let\tabu@cellright \tabu@@cellright + \let\tabu@thevline \tabu@@thevline}}}% + \expandafter}\the\toks@ +}% \tabuphantomline +%% \firsthline and \lasthline corrections --------------------------- +\def\tabu@firstline {\tabu@hlineAZ \tabu@firsthlinecorrection {}} +\def\tabu@firsthline{\tabu@hlineAZ \tabu@firsthlinecorrection \hline} +\def\tabu@lastline {\tabu@hlineAZ \tabu@lasthlinecorrection {}} +\def\tabu@lasthline {\tabu@hlineAZ \tabu@lasthlinecorrection \hline} +\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument) + \noalign{\ifnum0=`}\fi + {\CT@arc@\hrule height\arrayrulewidth}% + \futurelet \tabu@temp \tabu@xhline +}% \tabu@hline +\def\tabu@xhline{% + \ifx \tabu@temp \hline + {\ifx \CT@drsc@\relax \vskip + \else\ifx \CT@drsc@\@empty \vskip + \else \CT@drsc@\hrule height + \fi\fi + \doublerulesep}% + \fi + \ifnum0=`{\fi}% +}% \tabu@xhline +\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@ + \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}% + \tabu@hlineAZsurround +}% \tabu@hlineAZ +\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{% + \extratabsurround #1\let\tabucline \tabucline@scan + \let\hline \tabu@hlinescan \let\firsthline \hline + \let\cline \tabu@clinescan \let\lasthline \hline + \expandafter \futurelet \expandafter \tabu@temp + \expandafter \tabu@nexthlineAZ \tabu@temp +}% \tabu@hlineAZsurround +\def\tabu@hlinescan {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline} +\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}} +\def\tabucline@scan{\@testopt \tabucline@sc@n {}} +\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}} +\def\tabu@nexthlineAZ{% + \ifx \tabu@temp\hline \else + \ifx \tabu@temp\cline \else + \ifx \tabu@temp\tabucline \else + \tabu@hlinecorrection + \fi\fi\fi +}% \tabu@nexthlineAZ +\def\tabu@xhlineAZ #1{% + \toks@\expandafter{\the\toks@ #1}% + \@tempdimc \tabu@thick % The last line width + \ifcase\count@ \@tempdimb \tabu@thick % The first line width + \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax + \fi + \advance\count@ \@ne \futurelet \tabu@temp \tabu@nexthlineAZ +}% \tabu@xhlineAZ +\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1 + \@tempdima \dimexpr \ht\@arstrutbox+\dimen@ + \edef\firsthline{% + \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule + height \the\dimexpr\@tempdima+\extratabsurround + depth \dp\@arstrutbox + width \tabustrutrule}\hss}\cr + \noalign{\vskip -\the\dimexpr \@tempdima+\@tempdimb + +\dp\@arstrutbox \relax}% + \the\toks@ + }\ifnum0=`{\fi + \expandafter}\firsthline % we are then ! +}% \tabu@firsthlinecorrection +\def\tabu@lasthlinecorrection{% + \@tempdima \dimexpr \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc + \edef\lasthline{% + \the\toks@ + \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}% + \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule + depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@ + +\extratabsurround-\@tempdimc + height \z@ + width \tabustrutrule}\hss}\cr + }\ifnum0=`{\fi + \expandafter}\lasthline % we are then ! +}% \tabu@lasthlinecorrection +\def\tabu@LT@@hline{% + \ifx\LT@next\hline + \global\let\LT@next \@gobble + \ifx \CT@drsc@\relax + \gdef\CT@LT@sep{% + \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}% + \else + \gdef\CT@LT@sep{% + \multispan\LT@cols{% + \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}% + \fi + \else + \global\let\LT@next\empty + \gdef\CT@LT@sep{% + \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}% + \fi + \ifnum0=`{\fi}% + \multispan\LT@cols + {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr + \CT@LT@sep + \multispan\LT@cols + {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr + \noalign{\penalty\@M}% + \LT@next +}% \tabu@LT@@hline +%% Horizontal lines : \tabucline ------------------------------------ +\let\tabu@start \@tempcnta +\let\tabu@stop \@tempcntb +\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline} +\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}% + \ifnum \tabu@stop<\z@ \toks@{}% + \else \tabu@clinearg{#1}\tabu@thestyle + \edef\tabucline{\toks@{% + \ifnum \tabu@start>\z@ \omit + \tabu@multispan\tabu@start {\span\omit}&\fi + \omit \tabu@multispan\tabu@stop {\span\omit}% + \tabu@thehline\cr + }}\tabucline + \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}% + \fi + \futurelet \tabu@temp \tabu@xcline +}% \tabu@cline +\def\tabu@clinearg #1{% + \ifx\\#1\\\let\tabu@thestyle \tabu@ls@ + \else \@defaultunits \expandafter\let\expandafter\@tempa + \romannumeral-`\0#1\relax \@nnil + \ifx \hbox\@tempa \tabu@clinebox{#1}% + \else\ifx \box\@tempa \tabu@clinebox{#1}% + \else\ifx \vbox\@tempa \tabu@clinebox{#1}% + \else\ifx \vtop\@tempa \tabu@clinebox{#1}% + \else\ifx \copy\@tempa \tabu@clinebox{#1}% + \else\ifx \leaders\@tempa \tabu@clineleads{#1}% + \else\ifx \cleaders\@tempa \tabu@clineleads{#1}% + \else\ifx \xleaders\@tempa \tabu@clineleads{#1}% + \else\tabu@getline {#1}% + \fi\fi\fi\fi\fi\fi\fi\fi + \fi +}% \tabu@clinearg +\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}} +\def\tabu@clineleads #1{% + \let\tabu@thestyle \relax \let\tabu@leaders \@undefined + \gdef\tabu@thehrule{#1}} +\def\tabu@thehline{\begingroup + \ifdefined\tabu@leaders + \noexpand\tabu@thehleaders + \else \noexpand\tabu@thehrule + \fi \endgroup +}% \tabu@thehline +\def\tabu@xcline{% + \ifx \tabu@temp\tabucline + \toks@\expandafter{\the\toks@ \noalign + {\ifx\CT@drsc@\relax \vskip + \else \CT@drsc@\hrule height + \fi + \doublerulesep}}% + \fi + \tabu@docline +}% \tabu@xcline +\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@} +\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}% + \ifnum0=`{\fi}\aftergroup\tabu@doclineafter} +\def\tabu@multispan #1#2{% + \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan + \else \expandafter\@gobbletwo + \fi {#1-1}{#2}% +}% \tabu@multispan +\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil} +\def\tabu@start@stop #1-#2\@nnil{% + \@defaultunits \tabu@start\number 0#1\relax \@nnil + \@defaultunits \tabu@stop \number 0#2\relax \@nnil + \tabu@stop \ifnum \tabu@start>\tabu@nbcols \m@ne + \else\ifnum \tabu@stop=\z@ \tabu@nbcols + \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols + \else \tabu@stop + \fi\fi\fi + \advance\tabu@start \m@ne + \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi +}% \tabu@start@stop +%% Numbers: siunitx S columns (and \tabudecimal) ------------------- +\def\tabu@tabudecimal #1{% + \def\tabu@decimal{#1}\@temptokena{}% + \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces + \tabu@scandecimal +}% \tabu@tabudecimal +\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@} +\def\tabu@skipdecimal#1{#1\tabu@scandecimal} +\def\tabu@getdecimal@ignorespaces{% + \ifcase 0\ifx\tabu@temp\ignorespaces\else + \ifx\tabu@temp\@sptoken1\else + 2\fi\fi\relax + \let\tabu@getdecimal@ \tabu@getdecimal + \expandafter\tabu@skipdecimal + \or \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal + \else \expandafter\tabu@skipdecimal + \fi +}% \tabu@getdecimal@ignorespaces +\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}% + \tabu@scandecimal} +\def\do#1{% + \def\tabu@get@decimalspace#1{% + \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}% +}\do{ } +\let\tabu@@tabudecimal \tabu@tabudecimal +\def\tabu@getdecimal{% + \ifcase 0\ifx 0\tabu@temp\else + \ifx 1\tabu@temp\else + \ifx 2\tabu@temp\else + \ifx 3\tabu@temp\else + \ifx 4\tabu@temp\else + \ifx 5\tabu@temp\else + \ifx 6\tabu@temp\else + \ifx 7\tabu@temp\else + \ifx 8\tabu@temp\else + \ifx 9\tabu@temp\else + \ifx .\tabu@temp\else + \ifx ,\tabu@temp\else + \ifx -\tabu@temp\else + \ifx +\tabu@temp\else + \ifx e\tabu@temp\else + \ifx E\tabu@temp\else + \ifx\tabu@cellleft\tabu@temp1\else + \ifx\ignorespaces\tabu@temp1\else + \ifx\@sptoken\tabu@temp2\else + 3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax + \expandafter\tabu@get@decimal + \or \expandafter\tabu@skipdecimal + \or \expandafter\tabu@get@decimalspace + \else\expandafter\tabu@printdecimal + \fi +}% \tabu@getdecimal +\def\tabu@printdecimal{% + \edef\tabu@temp{\the\@temptokena}% + \ifx\tabu@temp\@empty\else + \ifx\tabu@temp\space\else + \expandafter\tabu@decimal\expandafter{\the\@temptokena}% + \fi\fi +}% \tabu@printdecimal +%% Verbatim inside X columns ---------------------------------------- +\def\tabu@verbatim{% + \let\verb \tabu@verb + \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd +}% \tabu@verbatim +\let\tabu@ltx@verb \verb +\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb} +\def\tabu@fancyvrb {% + \def\tabu@FV@DefineCheckEnd ##1{% + \def\tabu@FV@DefineCheckEnd{% + ##1% + \let\FV@CheckEnd \tabu@FV@CheckEnd + \let\FV@@CheckEnd \tabu@FV@@CheckEnd + \let\FV@@@CheckEnd \tabu@FV@@@CheckEnd + \edef\FV@EndScanning{% + \def\noexpand\next{\noexpand\end{\FV@EnvironName}}% + \global\let\noexpand\FV@EnvironName\relax + \noexpand\next}% + \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}% + }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd} +}% \tabu@fancyvrb +\def\tabu@FV@CheckEnd #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil} +\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}} +\begingroup +\catcode`\[1 \catcode`\]2 +\@makeother\{ \@makeother\} + \edef\x[\endgroup + \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3% + ]\x \@nil{\def\@tempa{#2}\def\@tempb{#3}} +\def\tabu@FV@ListProcessLine #1{% + \hbox {%to \hsize{% + \kern\leftmargin + \hbox {%to \linewidth{% + \FV@LeftListNumber + \FV@LeftListFrame + \FancyVerbFormatLine{#1}\hss +%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on) +%% \FV@RightListFrame}% + \FV@RightListFrame + \FV@RightListNumber}% +%% DG/SR modification end + \hss}} +%% \savetabu -------------------------------------------------------- +\newcommand*\savetabu[1]{\noalign{% + \tabu@sanitizearg{#1}\tabu@temp + \ifx \tabu@temp\@empty \tabu@savewarn{}{The tabu will not be saved}\else + \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}% + \ifdefined\tabu@restored \expandafter\let + \csname tabu@saved@\tabu@temp \endcsname \tabu@restored + \else {\tabu@save}% + \fi + \fi}% +}% \savetabu +\def\tabu@save {% + \toks0\expandafter{\tabu@saved@}% + \iftabu@negcoef + \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}% + \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi + \toks1\expandafter{\tabu@savedpream}% + \toks2\expandafter{\tabu@savedpreamble}% + \let\@preamble \relax + \let\tabu@savedpream \relax \let\tabu@savedparams \relax + \edef\tabu@preamble{% + \def\noexpand\tabu@aligndefault{\tabu@align}% + \def\tabu@savedparams {\noexpand\the\toks0}% + \def\tabu@savedpream {\noexpand\the\toks1}}% + \edef\tabu@usetabu{% + \def\@preamble {\noexpand\the\toks2}% + \tabu@target \the\tabu@target \relax + \tabucolX \the\tabucolX \relax + \tabu@nbcols \the\tabu@nbcols \relax + \def\noexpand\tabu@aligndefault{\tabu@align}% + \def\tabu@savedparams {\noexpand\the\toks0}% + \def\tabu@savedpream {\noexpand\the\toks1}}% + \let\tabu@aligndefault \relax \let\@sharp \relax + \edef\@tempa{\noexpand\tabu@s@ved + {\tabu@usetabu} + {\tabu@preamble} + {\the\toks1}}\@tempa + \tabu@message@save +}% \tabu@save +\long\def\tabu@s@ved #1#2#3{% + \def\tabu@usetabu{#1}% + \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{% + \ifodd ##1% \usetabu + \tabu@measuringfalse \tabu@spreadfalse % Just in case... + \gdef\tabu@usetabu {% + \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi + \global\let\tabu@usetabu \@undefined + \def\@halignto {to\tabu@target}% + #1% + \ifx \tabu@align\tabu@aligndefault@text + \ifnum \tabu@nested=\z@ + \let\tabu@align \tabu@aligndefault \fi\fi}% + \else % \preamble + \gdef\tabu@preamble {% + \global\let\tabu@preamble \@undefined + #2% + \ifx \tabu@align\tabu@aligndefault@text + \ifnum \tabu@nested=\z@ + \let\tabu@align \tabu@aligndefault \fi\fi}% + \fi + #3}% +}% \tabu@s@ved +\def\tabu@aligndefault@text {\tabu@aligndefault}% +\def\tabu@warn@usetabu {\PackageWarning{tabu} + {Specifying a target with \string\usetabu\space is useless + \MessageBreak The target cannot be changed!}} +\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi} +\def\tabu@savewarn#1#2{\PackageInfo{tabu} + {User-name `#1' already used for \string\savetabu + \MessageBreak #2}}% +\def\tabu@saveerr#1{\PackageError{tabu} + {User-name `#1' is unknown for \string\usetabu + \MessageBreak I cannot restore an unknown preamble!}\@ehd} +%% \rowfont --------------------------------------------------------- +\newskip \tabu@cellskip +\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi + {\ifnum0=`}\fi \tabu@row@font} +\newcommand*\tabu@row@font[2][]{% + \ifnum7=\currentgrouptype + \global\let\tabu@@cellleft \tabu@cellleft + \global\let\tabu@@cellright \tabu@cellright + \global\let\tabu@@celllalign \tabu@celllalign + \global\let\tabu@@cellralign \tabu@cellralign + \global\let\tabu@@rowfontreset\tabu@rowfontreset + \fi + \global\let\tabu@rowfontreset \tabu@rowfont@reset + \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}% + \ifcsname tabu@cell@#1\endcsname % row alignment + \csname tabu@cell@#1\endcsname \fi + \ifnum0=`{\fi}% end of group / noalign group +}% \rowfont +\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}% +\def\tabu@rowfont@reset{% + \global\let\tabu@rowfontreset \tabu@@rowfontreset + \global\let\tabu@cellleft \tabu@@cellleft + \global\let\tabu@cellright \tabu@@cellright + \global\let\tabu@cellfont \@empty + \global\let\tabu@celllalign \tabu@@celllalign + \global\let\tabu@cellralign \tabu@@cellralign +}% \tabu@@rowfontreset +\let\tabu@rowfontreset \@empty % overwritten \AtBeginDocument if colortbl +%% \tabu@prepnext@tok ----------------------------------------------- +\newif \iftabu@cellright +\def\tabu@prepnext@tok{% + \ifnum \count@<\z@ % + \@tempcnta \@M % + \tabu@nbcols\z@ + \let\tabu@fornoopORI \@fornoop + \tabu@cellrightfalse + \else + \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left + \advance \tabu@nbcols \@ne + \iftabu@cellright % before-previous token is right and is finished + \tabu@cellrightfalse % + \tabu@righttok + \fi + \tabu@lefttok + \or % (case 1) previous token is right + \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop + \else % special column: do not change the token + \iftabu@cellright % before-previous token is right + \tabu@cellrightfalse + \tabu@righttok + \fi + \fi % \ifcase + \fi + \tabu@prepnext@tokORI +}% \tabu@prepnext@tok +\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@} +\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{% + \ifx \in@#2\else + \let\@fornoop \tabu@fornoopORI + \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}% + \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}% + \expandafter\prepnext@tok + \fi +}% \tabu@lastnoop +\def\tabu@righttok{% + \advance \count@ \m@ne + \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}% + \advance \count@ \@ne +}% \tabu@righttok +\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign + \the\toks\count@ \tabu@cellleft}% after because of $ +}% \tabu@lefttok +%% Neutralisation of glues ------------------------------------------ +\let\tabu@cellleft \@empty +\let\tabu@cellright \@empty +\tabu@celllalign@def{\tabu@cellleft}% +\let\tabu@cellralign \@empty +\def\tabu@cell@align #1#2#3{% + \let\tabu@maybesiunitx \toks@ \tabu@celllalign + \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}% + \toks@\expandafter{\tabu@cellralign #2}% + \xdef\tabu@cellralign{\the\toks@}% + \toks@\expandafter{\tabu@cellleft #3}% + \xdef\tabu@cellleft{\the\toks@}% +}% \tabu@cell@align +\def\tabu@cell@l{% force alignment to left + \tabu@cell@align + {\tabu@removehfil \raggedright \tabu@cellleft}% left + {\tabu@flush1\tabu@ignorehfil}% right + \raggedright +}% \tabu@cell@l +\def\tabu@cell@c{% force alignment to center + \tabu@cell@align + {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft} + {\tabu@flush{.5}\tabu@ignorehfil} + \centering +}% \tabu@cell@c +\def\tabu@cell@r{% force alignment to right + \tabu@cell@align + {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft} + \tabu@ignorehfil + \raggedleft +}% \tabu@cell@r +\def\tabu@cell@j{% force justification (for p, m, b columns) + \tabu@cell@align + {\tabu@justify\tabu@cellleft} + {} + \tabu@justify +}% \tabu@cell@j +\def\tabu@justify{% + \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip + \parfillskip\@flushglue +}% \tabu@justify +%% ragged2e settings +\def\tabu@cell@L{% force alignment to left (ragged2e) + \tabu@cell@align + {\tabu@removehfil \RaggedRight \tabu@cellleft} + {\tabu@flush 1\tabu@ignorehfil} + \RaggedRight +}% \tabu@cell@L +\def\tabu@cell@C{% force alignment to center (ragged2e) + \tabu@cell@align + {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft} + {\tabu@flush{.5}\tabu@ignorehfil} + \Centering +}% \tabu@cell@C +\def\tabu@cell@R{% force alignment to right (ragged2e) + \tabu@cell@align + {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft} + \tabu@ignorehfil + \RaggedLeft +}% \tabu@cell@R +\def\tabu@cell@J{% force justification (ragged2e) + \tabu@cell@align + {\justifying \tabu@cellleft} + {} + \justifying +}% \tabu@cell@J +\def\tabu@flush#1{% + \iftabu@colortbl % colortbl uses \hfill rather than \hfil + \hskip \ifnum13<\currentgrouptype \stretch{#1}% + \else \ifdim#1pt<\p@ \tabu@cellskip + \else \stretch{#1} + \fi\fi \relax + \else % array.sty + \ifnum 13<\currentgrouptype + \hfil \hskip1sp \relax \fi + \fi +}% \tabu@flush +\let\tabu@hfil \hfil +\let\tabu@hfill \hfill +\let\tabu@hskip \hskip +\def\tabu@removehfil{% + \iftabu@colortbl + \unkern \tabu@cellskip =\lastskip + \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip + \else \tabu@cellskip \z@skip + \fi + \else + \ifdim\lastskip=1sp\unskip\fi + \ifnum\gluestretchorder\lastskip =\@ne + \hfilneg % \hfilneg for array.sty but not for colortbl... + \fi + \fi +}% \tabu@removehfil +\def\tabu@ignorehfil{\aftergroup \tabu@nohfil} +\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil + \def\hfil{\let\hfil \tabu@hfil}% local to (alignment template) group +}% \tabu@nohfil +\def\tabu@colortblalignments {% if colortbl + \def\tabu@nohfil{% + \def\hfil {\let\hfil \tabu@hfil}% local to (alignment template) group + \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff... + \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local +}% \tabu@colortblalignments +%% Taking care of footnotes and hyperfootnotes ---------------------- +\long\def\tabu@footnotetext #1{% + \edef\@tempa{\the\tabu@footnotes + \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}% + \global\tabu@footnotes\expandafter{\@tempa {#1}}}% +\long\def\tabu@xfootnotetext [#1]#2{% + \global\tabu@footnotes\expandafter{\the\tabu@footnotes + \footnotetext [{#1}]{#2}}} +\let\tabu@xfootnote \@xfootnote +\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }} +\long\def\tabu@Hy@xfootnote [#1]{% + \begingroup + \value\@mpfn #1\relax + \protected@xdef \@thefnmark {\thempfn}% + \endgroup + \@footnotemark \tabu@Hy@ftntxt {#1}% +}% \tabu@Hy@xfootnote +\long\def\tabu@Hy@ftntxt #1#2{% + \edef\@tempa{% + \the\tabu@footnotes + \begingroup + \value\@mpfn #1\relax + \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}% + \expandafter \noexpand \expandafter + \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}% + }% + \global\tabu@footnotes\expandafter{\@tempa {#2}% + \endgroup}% +}% \tabu@Hy@ftntxt +\long\def\tabu@Hy@footnotetext #1#2{% + \H@@footnotetext{% + \ifHy@nesting + \hyper@@anchor {#1}{#2}% + \else + \Hy@raisedlink{% + \hyper@@anchor {#1}{\relax}% + }% + \def\@currentHref {#1}% + \let\@currentlabelname \@empty + #2% + \fi + }% +}% \tabu@Hy@footnotetext +%% No need for \arraybackslash ! ------------------------------------ +\def\tabu@latextwoe {% +\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} +\tabu@temp \tabu@centering \centering \arraybackslash +\tabu@temp \tabu@raggedleft \raggedleft \arraybackslash +\tabu@temp \tabu@raggedright \raggedright \arraybackslash +}% \tabu@latextwoe +\def\tabu@raggedtwoe {% +\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} +\tabu@temp \tabu@Centering \Centering \arraybackslash +\tabu@temp \tabu@RaggedLeft \RaggedLeft \arraybackslash +\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash +\tabu@temp \tabu@justifying \justifying \arraybackslash +}% \tabu@raggedtwoe +\def\tabu@normalcrbackslash{\let\\\@normalcr} +\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{% + \expandafter\tabu@normalcrbackslash \@trivlist}} +%% Utilities: \fbox \fcolorbox and \tabudecimal ------------------- +\def\tabu@fbox {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox} +\def\tabu@beginfbox {\bgroup \kern\fboxsep + \bgroup\aftergroup\tabu@endfbox} +\def\tabu@endfbox {\kern\fboxsep\egroup\egroup + \@frameb@x\relax} +\def\tabu@color@b@x #1#2{\leavevmode \bgroup + \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}% + \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox +}% \tabu@color@b@x +\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup + \aftergroup\tabu@endcolor@b@x \set@color} +\def\tabu@endcolor@b@x {\kern\fboxsep \egroup + \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@ + \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@ + \tabu@docolor@b@x \egroup +}% \tabu@endcolor@b@x +%% Corrections (arydshln, delarray, colortbl) ----------------------- +\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray + \iftabu@colortbl + \ifdefined\adl@array % + \def\tabu@endarray{% + \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup % + \@arrayright % + \gdef\@preamble{}}% + \else % + \def\tabu@endarray{% + \crcr \egroup \egroup % + \@arrayright % + \gdef\@preamble{}\CT@end}% + \fi + \else + \ifdefined\adl@array % + \def\tabu@endarray{% + \adl@endarray \egroup \adl@arrayrestore \egroup % + \@arrayright % + \gdef\@preamble{}}% + \else % + \PackageWarning{tabu} + {\string\@arrayright\space is missing from the + \MessageBreak definition of \string\endarray. + \MessageBreak Compatibility with delarray.sty is broken.}% + \fi\fi +}% \tabu@fix@arrayright +\def\tabu@adl@xarraydashrule #1#2#3{% + \ifnum\@lastchclass=\adl@class@start\else + \ifnum\@lastchclass=\@ne\else + \ifnum\@lastchclass=5 \else % @-arg (class 5) and !-arg (class 1) + \adl@leftrulefalse \fi\fi % must be treated the same + \fi + \ifadl@zwvrule\else \ifadl@inactive\else + \@addtopreamble{\vrule\@width\arrayrulewidth + \@height\z@ \@depth\z@}\fi \fi + \ifadl@leftrule + \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}% + {\number#1}#3}% + \else \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}% + {\number#2}#3} + \fi +}% \tabu@adl@xarraydashrule +\def\tabu@adl@act@endpbox {% + \unskip \ifhmode \nobreak \fi \@finalstrut \@arstrutbox + \egroup \egroup + \adl@colhtdp \box\adl@box \hfil +}% \tabu@adl@act@endpbox +\def\tabu@adl@fix {% + \let\adl@xarraydashrule \tabu@adl@xarraydashrule % arydshln + \let\adl@act@endpbox \tabu@adl@act@endpbox % arydshln + \let\adl@act@@endpbox \tabu@adl@act@endpbox % arydshln + \let\@preamerror \@preamerr % arydshln +}% \tabu@adl@fix +%% Correction for longtable' \@startbox definition ------------------ +%% => \everypar is ``missing'' : TeX should be in vertical mode +\def\tabu@LT@startpbox #1{% + \bgroup + \let\@footnotetext\LT@p@ftntext + \setlength\hsize{#1}% + \@arrayparboxrestore + \everypar{% + \vrule \@height \ht\@arstrutbox \@width \z@ + \everypar{}}% +}% \tabu@LT@startpbox +%% \tracingtabu and the package options ------------------ +\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}} +\DeclareOption{linegoal}{% + \AtEndOfPackage{% + \RequirePackage{linegoal}[2010/12/07]% + \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX +}} +\DeclareOption{scantokens}{\tabuscantokenstrue} +\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}} +\def\tracingtabu {\begingroup\@ifnextchar=% + {\afterassignment\tabu@tracing\count@} + {\afterassignment\tabu@tracing\count@1\relax}} +\def\tabu@tracing{\expandafter\endgroup + \expandafter\tabu@tr@cing \the\count@ \relax +}% \tabu@tracing +\def\tabu@tr@cing #1\relax {% + \ifnum#1>\thr@@ \let\tabu@tracinglines\message + \else \let\tabu@tracinglines\@gobble + \fi + \ifnum#1>\tw@ \let\tabu@DBG \tabu@@DBG + \def\tabu@mkarstrut {\tabu@DBG@arstrut}% + \tabustrutrule 1.5\p@ + \else \let\tabu@DBG \@gobble + \def\tabu@mkarstrut {\tabu@arstrut}% + \tabustrutrule \z@ + \fi + \ifnum#1>\@ne \let\tabu@debug \message + \else \let\tabu@debug \@gobble + \fi + \ifnum#1>\z@ + \let\tabu@message \message + \let\tabu@tracing@save \tabu@message@save + \let\tabu@starttimer \tabu@pdftimer + \else + \let\tabu@message \@gobble + \let\tabu@tracing@save \@gobble + \let\tabu@starttimer \relax + \fi +}% \tabu@tr@cing +%% Setup \AtBeginDocument +\AtBeginDocument{\tabu@AtBeginDocument} +\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined + \ifdefined\arrayrulecolor \tabu@colortbltrue % + \tabu@colortblalignments % different glues are used + \else \tabu@colortblfalse \fi + \ifdefined\CT@arc@ \else \let\CT@arc@ \relax \fi + \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi + \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@ + \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname % + \expandafter\ifx + \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax + \tabu@siunitxtrue + \else \let\tabu@maybesiunitx \@firstofone % + \let\tabu@siunitx \tabu@nosiunitx + \tabu@siunitxfalse + \fi + \ifdefined\adl@array % + \else \let\tabu@adl@fix \relax + \let\tabu@adl@endtrial \@empty \fi + \ifdefined\longtable % + \else \let\longtabu \tabu@nolongtabu \fi + \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi + \csname\ifcsname ifHy@hyperfootnotes\endcsname % + ifHy@hyperfootnotes\else iffalse\fi\endcsname + \let\tabu@footnotetext \tabu@Hy@ftntext + \let\tabu@xfootnote \tabu@Hy@xfootnote \fi + \ifdefined\FV@DefineCheckEnd% + \tabu@fancyvrb \fi + \ifdefined\color % + \let\tabu@color \color + \def\tabu@leavevmodecolor ##1{% + \def\tabu@leavevmodecolor {\leavevmode ##1}% + }\expandafter\tabu@leavevmodecolor\expandafter{\color}% + \else + \let\tabu@color \tabu@nocolor + \let\tabu@leavevmodecolor \@firstofone \fi + \tabu@latextwoe + \ifdefined\@raggedtwoe@everyselectfont % + \tabu@raggedtwoe + \else + \let\tabu@cell@L \tabu@cell@l + \let\tabu@cell@R \tabu@cell@r + \let\tabu@cell@C \tabu@cell@c + \let\tabu@cell@J \tabu@cell@j \fi + \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}% + \ifin@ \let\tabu@endarray \endarray + \else \tabu@fix@arrayright \fi% + \everyrow{}% +}% \tabu@AtBeginDocument +\def\tabu@warn@cellspace{% + \PackageWarning{tabu}{% + Package cellspace has some limitations + \MessageBreak And redefines some macros of array.sty. + \MessageBreak Please use \string\tabulinesep\space to control + \MessageBreak vertical spacing of lines inside tabu environment}% +}% \tabu@warn@cellspace +%% tabu Package initialisation +\tabuscantokensfalse +\let\tabu@arc@G \relax +\let\tabu@drsc@G \relax +\let\tabu@evr@G \@empty +\let\tabu@rc@G \@empty +\def\tabu@ls@G {\tabu@linestyle@}% +\let\tabu@@rowfontreset \@empty % +\let\tabu@@celllalign \@empty +\let\tabu@@cellralign \@empty +\let\tabu@@cellleft \@empty +\let\tabu@@cellright \@empty +\def\tabu@naturalXmin {\z@} +\def\tabu@naturalXmax {\z@} +\let\tabu@rowfontreset \@empty +\def\tabulineon {4pt}\let\tabulineoff \tabulineon +\tabu@everyrowtrue +\ifdefined\pdfelapsedtime % + \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}% +\else \let\tabu@pdftimer \relax \let\tabu@message@etime \relax +\fi +\tracingtabu=\z@ +\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@ +\tabulinestyle{} +\taburowcolors{} +\let\tabudefaulttarget \linewidth +\ProcessOptions* % \ProcessOptions* is quicker ! +\endinput +%% +%% End of file `tabu.sty'. diff --git a/docs/latex/test__commit__commands_8py.tex b/docs/latex/test__commit__commands_8py.tex new file mode 100644 index 0000000..f296e5f --- /dev/null +++ b/docs/latex/test__commit__commands_8py.tex @@ -0,0 +1,14 @@ +\hypertarget{test__commit__commands_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/test\+\_\+commit\+\_\+commands.py File Reference} +\label{test__commit__commands_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/tests/test\_commit\_commands.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/tests/test\_commit\_commands.py}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classtests_1_1test__commit__commands_1_1TestCommitCommands}{tests.\+test\+\_\+commit\+\_\+commands.\+Test\+Commit\+Commands}} +\end{DoxyCompactItemize} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacetests}{tests}} +\item +namespace \mbox{\hyperlink{namespacetests_1_1test__commit__commands}{tests.\+test\+\_\+commit\+\_\+commands}} +\end{DoxyCompactItemize} diff --git a/docs/latex/test__config__commands_8py.tex b/docs/latex/test__config__commands_8py.tex new file mode 100644 index 0000000..4526e6d --- /dev/null +++ b/docs/latex/test__config__commands_8py.tex @@ -0,0 +1,14 @@ +\hypertarget{test__config__commands_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/test\+\_\+config\+\_\+commands.py File Reference} +\label{test__config__commands_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/tests/test\_config\_commands.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/tests/test\_config\_commands.py}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classtests_1_1test__config__commands_1_1TestConfigCommands}{tests.\+test\+\_\+config\+\_\+commands.\+Test\+Config\+Commands}} +\end{DoxyCompactItemize} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacetests}{tests}} +\item +namespace \mbox{\hyperlink{namespacetests_1_1test__config__commands}{tests.\+test\+\_\+config\+\_\+commands}} +\end{DoxyCompactItemize} diff --git a/docs/latex/test__doc__commands_8py.tex b/docs/latex/test__doc__commands_8py.tex new file mode 100644 index 0000000..5d94064 --- /dev/null +++ b/docs/latex/test__doc__commands_8py.tex @@ -0,0 +1,34 @@ +\hypertarget{test__doc__commands_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/test\+\_\+doc\+\_\+commands.py File Reference} +\label{test__doc__commands_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/tests/test\_doc\_commands.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/tests/test\_doc\_commands.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacetests}{tests}} +\item +namespace \mbox{\hyperlink{namespacetests_1_1test__doc__commands}{tests.\+test\+\_\+doc\+\_\+commands}} +\end{DoxyCompactItemize} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_a806110833eb0aad547156faf014b31d8}{tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+generate\+\_\+doc\+\_\+no\+\_\+location}} (mock\+\_\+getcwd, mock\+\_\+api\+\_\+client, mock\+\_\+folder\+\_\+analyzer, mock\+\_\+file\+\_\+analyzer, mock\+\_\+git\+\_\+analyzer) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_a0e74c920f258f442914771164fe26b45}{tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+generate\+\_\+doc\+\_\+file\+\_\+location}} (mock\+\_\+api\+\_\+client, mock\+\_\+folder\+\_\+analyzer, mock\+\_\+file\+\_\+analyzer, mock\+\_\+git\+\_\+analyzer) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_a4bb75610e40d94d42bc169b25403c186}{tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+generate\+\_\+doc\+\_\+folder\+\_\+location}} (mock\+\_\+api\+\_\+client, mock\+\_\+folder\+\_\+analyzer, mock\+\_\+file\+\_\+analyzer, mock\+\_\+git\+\_\+analyzer) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_aec76cc25c23476794234cdadbcaef0c0}{tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+generate\+\_\+doc\+\_\+error\+\_\+handling}} (mock\+\_\+api\+\_\+client, mock\+\_\+git\+\_\+analyzer, mock\+\_\+exit) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_a0f27751d0ba2acfe40ef7e85bccf47d7}{tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+setup\+\_\+docgen\+\_\+parser}} () +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_ab74688baa8c9b5ba302c2877a9789d05}{tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+handle\+\_\+docgen\+\_\+install\+\_\+hook}} (mock\+\_\+exit, mock\+\_\+get\+\_\+token, mock\+\_\+generate\+\_\+doc, mock\+\_\+uninstall\+\_\+hook, mock\+\_\+install\+\_\+hook) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_a1458af9ad0128c3ca1263b552fd5e482}{tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+handle\+\_\+docgen\+\_\+uninstall\+\_\+hook}} (mock\+\_\+exit, mock\+\_\+get\+\_\+token, mock\+\_\+generate\+\_\+doc, mock\+\_\+uninstall\+\_\+hook, mock\+\_\+install\+\_\+hook) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_ab158ffa48469b6c097a7a55fcb20c21a}{tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+handle\+\_\+docgen\+\_\+generate}} (mock\+\_\+get\+\_\+token, mock\+\_\+generate\+\_\+doc, mock\+\_\+uninstall\+\_\+hook, mock\+\_\+install\+\_\+hook) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_af9b01e5fc89255cac96747fa081c442c}{tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+handle\+\_\+docgen\+\_\+no\+\_\+token}} (mock\+\_\+exit, mock\+\_\+get\+\_\+token) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_a335e7fd4912192c7276cf31bbebc6eb0}{tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+generate\+\_\+doc\+\_\+with\+\_\+file\+\_\+exception}} (mock\+\_\+api\+\_\+client, mock\+\_\+getcwd) +\item +def \mbox{\hyperlink{namespacetests_1_1test__doc__commands_a64165ddfdb3071a88422f080f0e529a3}{tests.\+test\+\_\+doc\+\_\+commands.\+test\+\_\+generate\+\_\+doc\+\_\+with\+\_\+folder\+\_\+exception}} (mock\+\_\+api\+\_\+client, mock\+\_\+getcwd) +\end{DoxyCompactItemize} diff --git a/docs/latex/test__web__config_8py.tex b/docs/latex/test__web__config_8py.tex new file mode 100644 index 0000000..345bde0 --- /dev/null +++ b/docs/latex/test__web__config_8py.tex @@ -0,0 +1,14 @@ +\hypertarget{test__web__config_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/test\+\_\+web\+\_\+config.py File Reference} +\label{test__web__config_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/tests/test\_web\_config.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/tests/test\_web\_config.py}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classtests_1_1test__web__config_1_1TestWebConfig}{tests.\+test\+\_\+web\+\_\+config.\+Test\+Web\+Config}} +\end{DoxyCompactItemize} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacetests}{tests}} +\item +namespace \mbox{\hyperlink{namespacetests_1_1test__web__config}{tests.\+test\+\_\+web\+\_\+config}} +\end{DoxyCompactItemize} diff --git a/docs/latex/tests_2____init_____8py.tex b/docs/latex/tests_2____init_____8py.tex new file mode 100644 index 0000000..a063f1a --- /dev/null +++ b/docs/latex/tests_2____init_____8py.tex @@ -0,0 +1,7 @@ +\hypertarget{tests_2____init_____8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/tests/\+\_\+\+\_\+init\+\_\+\+\_\+.py File Reference} +\label{tests_2____init_____8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/tests/\_\_init\_\_.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/tests/\_\_init\_\_.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacetests}{tests}} +\end{DoxyCompactItemize} diff --git a/docs/latex/ui__utils_8py.tex b/docs/latex/ui__utils_8py.tex new file mode 100644 index 0000000..7c06518 --- /dev/null +++ b/docs/latex/ui__utils_8py.tex @@ -0,0 +1,67 @@ +\hypertarget{ui__utils_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/ui\+\_\+utils.py File Reference} +\label{ui__utils_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/ui\_utils.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/ui\_utils.py}} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils}{penify\+\_\+hook.\+ui\+\_\+utils}} +\end{DoxyCompactItemize} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a92c3e466d1912058167be2eacf85b9f6}{penify\+\_\+hook.\+ui\+\_\+utils.\+format\+\_\+info}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a532cdb4de7c679ce8b29c3e9116c4776}{penify\+\_\+hook.\+ui\+\_\+utils.\+format\+\_\+success}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a0a6fd2613c6fe053b6e4356cd9e5cda2}{penify\+\_\+hook.\+ui\+\_\+utils.\+format\+\_\+warning}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a4dd934568897433fa73f9cc182ac4a3e}{penify\+\_\+hook.\+ui\+\_\+utils.\+format\+\_\+error}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_adcb97fc26b405d2b9cdf5eb7aecc5452}{penify\+\_\+hook.\+ui\+\_\+utils.\+format\+\_\+highlight}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_af3441fb3c2c3850b8b3b6455a9fdaba4}{penify\+\_\+hook.\+ui\+\_\+utils.\+format\+\_\+file\+\_\+path}} (file\+\_\+path) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a811f0adf6e9bf71510c379b6fa155e44}{penify\+\_\+hook.\+ui\+\_\+utils.\+print\+\_\+info}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a2b16aa6b68a9edea5f29f84f1c4be79a}{penify\+\_\+hook.\+ui\+\_\+utils.\+print\+\_\+success}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a1ffbb9671dbe233770268e2dd66a67fa}{penify\+\_\+hook.\+ui\+\_\+utils.\+print\+\_\+warning}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a6f0acd7dd91abfe67d0807803bc3b65f}{penify\+\_\+hook.\+ui\+\_\+utils.\+print\+\_\+error}} (message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_adfcbbfe39029ab6d1dd33e7bf75ae115}{penify\+\_\+hook.\+ui\+\_\+utils.\+print\+\_\+processing}} (file\+\_\+path) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_aa6e684c00e26199440137a87ed9b195c}{penify\+\_\+hook.\+ui\+\_\+utils.\+print\+\_\+status}} (status, message) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a12b92532b1458af94f3649d411b5505c}{penify\+\_\+hook.\+ui\+\_\+utils.\+create\+\_\+progress\+\_\+bar}} (total, desc=\char`\"{}Processing\char`\"{}, unit=\char`\"{}item\char`\"{}) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a3da02cd1140179a9ce60f62c85fccfef}{penify\+\_\+hook.\+ui\+\_\+utils.\+create\+\_\+stage\+\_\+progress\+\_\+bar}} (stages, desc=\char`\"{}Processing\char`\"{}) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a5a7340d0fc60fb80f17514d60bf45f1d}{penify\+\_\+hook.\+ui\+\_\+utils.\+update\+\_\+stage}} (pbar, stage\+\_\+name) +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_ab560cfade398ac1e0bd47befb52d9f71}{penify\+\_\+hook.\+ui\+\_\+utils.\+autoreset}} +\item +\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a9fdcb180915696f5d217032a62c3857c}{penify\+\_\+hook.\+ui\+\_\+utils.\+INFO\+\_\+\+COLOR}} = Fore.\+CYAN +\item +\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a22c450c5e2b5394618ecf9b636560df4}{penify\+\_\+hook.\+ui\+\_\+utils.\+SUCCESS\+\_\+\+COLOR}} = Fore.\+GREEN +\item +\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a177bc9b44157844c999e0c1c2c6936ff}{penify\+\_\+hook.\+ui\+\_\+utils.\+WARNING\+\_\+\+COLOR}} = Fore.\+YELLOW +\item +\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a4ab4e61dfab7973c87bef59c6e1977fe}{penify\+\_\+hook.\+ui\+\_\+utils.\+ERROR\+\_\+\+COLOR}} = Fore.\+RED +\item +\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_aba01b8259f0d66cdc2b4a1b58f9736fc}{penify\+\_\+hook.\+ui\+\_\+utils.\+HIGHLIGHT\+\_\+\+COLOR}} = Fore.\+BLUE +\item +\mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_aca0fcee81606857497520ae4290bc9f5}{penify\+\_\+hook.\+ui\+\_\+utils.\+NEUTRAL\+\_\+\+COLOR}} = Fore.\+WHITE +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a3c6fe4bd17c1a5fe76587225ae4beb3e}{penify\+\_\+hook.\+ui\+\_\+utils.\+SUCCESS\+\_\+\+SYMBOL}} = \char`\"{}✓\char`\"{} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a6eaea98f1a8cbe16a181647da2fc0a16}{penify\+\_\+hook.\+ui\+\_\+utils.\+WARNING\+\_\+\+SYMBOL}} = \char`\"{}○\char`\"{} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_aa564e1e1d016c8227d076542e74cecb0}{penify\+\_\+hook.\+ui\+\_\+utils.\+ERROR\+\_\+\+SYMBOL}} = \char`\"{}✗\char`\"{} +\item +string \mbox{\hyperlink{namespacepenify__hook_1_1ui__utils_a3b208e2750a38dd09467a73e4afd9756}{penify\+\_\+hook.\+ui\+\_\+utils.\+PROCESSING\+\_\+\+SYMBOL}} = \char`\"{}⟳\char`\"{} +\end{DoxyCompactItemize} diff --git a/docs/latex/utils_8py.tex b/docs/latex/utils_8py.tex new file mode 100644 index 0000000..595fc7e --- /dev/null +++ b/docs/latex/utils_8py.tex @@ -0,0 +1,28 @@ +\hypertarget{utils_8py}{}\doxysection{/tmp/github\+\_\+repos\+Repo\+Arch\+Doc\+Gen\+Context/\+Penify-\/dev/penify-\/cli/penify\+\_\+hook/utils.py File Reference} +\label{utils_8py}\index{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/utils.py@{/tmp/github\_reposRepoArchDocGenContext/Penify-\/dev/penify-\/cli/penify\_hook/utils.py}} +\doxysubsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \mbox{\hyperlink{classpenify__hook_1_1utils_1_1GitRepoNotFoundError}{penify\+\_\+hook.\+utils.\+Git\+Repo\+Not\+Found\+Error}} +\end{DoxyCompactItemize} +\doxysubsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \mbox{\hyperlink{namespacepenify__hook}{penify\+\_\+hook}} +\item +namespace \mbox{\hyperlink{namespacepenify__hook_1_1utils}{penify\+\_\+hook.\+utils}} +\end{DoxyCompactItemize} +\doxysubsection*{Functions} +\begin{DoxyCompactItemize} +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1utils_ae236f3c4c8bf5dcddbb92b4c2065eea3}{penify\+\_\+hook.\+utils.\+get\+\_\+repo\+\_\+details}} (Repo repo) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1utils_a95c3f9c80860d6a2e2d061d2fb660a3f}{penify\+\_\+hook.\+utils.\+recursive\+\_\+search\+\_\+git\+\_\+folder}} (folder\+\_\+path) +\item +def \mbox{\hyperlink{namespacepenify__hook_1_1utils_a4ec5335a4026c22a34a3a8ccf665a5f2}{penify\+\_\+hook.\+utils.\+find\+\_\+git\+\_\+parent}} (path) +\end{DoxyCompactItemize} +\doxysubsection*{Variables} +\begin{DoxyCompactItemize} +\item +\mbox{\hyperlink{namespacepenify__hook_1_1utils_a0c0c1ed6b197038085c94a90ceedfb01}{penify\+\_\+hook.\+utils.\+logger}} = logging.\+get\+Logger(\+\_\+\+\_\+name\+\_\+\+\_\+) +\end{DoxyCompactItemize}