55< head >
66 < meta charset ="utf-8 " />
77 < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
8- < title > danoan.llm_assistant.common.config — llm-assistant 0.4 .0 documentation</ title >
8+ < title > danoan.llm_assistant.common.config — llm-assistant 0.5 .0 documentation</ title >
99 < link rel ="stylesheet " type ="text/css " href ="../../../../_static/pygments.css?v=b86133f3 " />
1010 < link rel ="stylesheet " type ="text/css " href ="../../../../_static/css/theme.css?v=e59714d7 " />
1111 < link rel ="stylesheet " type ="text/css " href ="../../../../_static/css/custom.css?v=a3d76245 " />
1212
1313
1414 < script src ="../../../../_static/jquery.js?v=5d32c60e "> </ script >
1515 < script src ="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c "> </ script >
16- < script src ="../../../../_static/documentation_options.js?v=6c02275b "> </ script >
16+ < script src ="../../../../_static/documentation_options.js?v=1dd76d02 "> </ script >
1717 < script src ="../../../../_static/doctools.js?v=9bcbadda "> </ script >
1818 < script src ="../../../../_static/sphinx_highlight.js?v=dc90522c "> </ script >
1919 < script type ="module " src ="https://cdn.jsdelivr.net/npm/mermaid@11.2.0/dist/mermaid.esm.min.mjs "> </ script >
@@ -91,24 +91,18 @@ <h1>Source code for danoan.llm_assistant.common.config</h1><div class="highlight
9191< span > </ span > < span class ="sd "> """</ span >
9292< span class ="sd "> LLM-assistant configuration API.</ span >
9393< span class ="sd "> """</ span >
94+ < span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> danoan.llm_assistant.common</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> exception</ span > < span class ="p "> ,</ span > < span class ="n "> model</ span >
95+ < span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> danoan.llm_assistant.common.logging_config</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> setup_logging</ span >
9496
9597< span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> logging</ span >
9698< span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> os</ span >
97- < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> sys</ span >
9899< span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> functools</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> lru_cache</ span >
99100< span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> pathlib</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> Path</ span >
100- < span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> typing</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> Optional</ span >
101-
102101< span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> toml</ span >
102+ < span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> typing</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> Optional</ span >
103103
104- < span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> danoan.llm_assistant.common</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> exception</ span > < span class ="p "> ,</ span > < span class ="n "> model</ span >
105-
106- < span class ="n "> logger</ span > < span class ="o "> =</ span > < span class ="n "> logging</ span > < span class ="o "> .</ span > < span class ="n "> getLogger</ span > < span class ="p "> (</ span > < span class ="vm "> __file__</ span > < span class ="p "> )</ span >
107- < span class ="n "> handler</ span > < span class ="o "> =</ span > < span class ="n "> logging</ span > < span class ="o "> .</ span > < span class ="n "> StreamHandler</ span > < span class ="p "> (</ span > < span class ="n "> sys</ span > < span class ="o "> .</ span > < span class ="n "> stderr</ span > < span class ="p "> )</ span >
108- < span class ="n "> handler</ span > < span class ="o "> .</ span > < span class ="n "> setLevel</ span > < span class ="p "> (</ span > < span class ="n "> logging</ span > < span class ="o "> .</ span > < span class ="n "> DEBUG</ span > < span class ="p "> )</ span >
109- < span class ="n "> handler</ span > < span class ="o "> .</ span > < span class ="n "> setFormatter</ span > < span class ="p "> (</ span > < span class ="n "> logging</ span > < span class ="o "> .</ span > < span class ="n "> Formatter</ span > < span class ="p "> (</ span > < span class ="s2 "> "</ span > < span class ="si "> %(levelname)s</ span > < span class ="s2 "> : </ span > < span class ="si "> %(message)s</ span > < span class ="s2 "> "</ span > < span class ="p "> ))</ span >
110- < span class ="n "> logger</ span > < span class ="o "> .</ span > < span class ="n "> addHandler</ span > < span class ="p "> (</ span > < span class ="n "> handler</ span > < span class ="p "> )</ span >
111- < span class ="n "> logger</ span > < span class ="o "> .</ span > < span class ="n "> setLevel</ span > < span class ="p "> (</ span > < span class ="n "> logging</ span > < span class ="o "> .</ span > < span class ="n "> DEBUG</ span > < span class ="p "> )</ span >
104+ < span class ="n "> setup_logging</ span > < span class ="p "> ()</ span >
105+ < span class ="n "> logger</ span > < span class ="o "> =</ span > < span class ="n "> logging</ span > < span class ="o "> .</ span > < span class ="n "> getLogger</ span > < span class ="p "> (</ span > < span class ="vm "> __name__</ span > < span class ="p "> )</ span >
112106
113107< span class ="c1 "> ########################################</ span >
114108< span class ="c1 "> # Configuration files</ span >
@@ -132,6 +126,7 @@ <h1>Source code for danoan.llm_assistant.common.config</h1><div class="highlight
132126 < span class ="n "> cur_folder</ span > < span class ="o "> =</ span > < span class ="n "> folders_to_visit</ span > < span class ="o "> .</ span > < span class ="n "> pop</ span > < span class ="p "> ()</ span >
133127 < span class ="k "> if</ span > < span class ="n "> cur_folder</ span > < span class ="ow "> in</ span > < span class ="n "> visited</ span > < span class ="p "> :</ span >
134128 < span class ="k "> break</ span >
129+ < span class ="n "> logger</ span > < span class ="o "> .</ span > < span class ="n "> debug</ span > < span class ="p "> (</ span > < span class ="sa "> f</ span > < span class ="s2 "> "Visiting </ span > < span class ="si "> {</ span > < span class ="n "> cur_folder</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span > < span class ="p "> )</ span >
135130 < span class ="n "> visited</ span > < span class ="o "> .</ span > < span class ="n "> add</ span > < span class ="p "> (</ span > < span class ="n "> cur_folder</ span > < span class ="p "> )</ span >
136131 < span class ="n "> folders_to_visit</ span > < span class ="o "> .</ span > < span class ="n "> append</ span > < span class ="p "> (</ span > < span class ="n "> cur_folder</ span > < span class ="o "> .</ span > < span class ="n "> parent</ span > < span class ="p "> )</ span >
137132 < span class ="k "> for</ span > < span class ="n "> p</ span > < span class ="ow "> in</ span > < span class ="n "> cur_folder</ span > < span class ="o "> .</ span > < span class ="n "> iterdir</ span > < span class ="p "> ():</ span >
@@ -162,12 +157,16 @@ <h1>Source code for danoan.llm_assistant.common.config</h1><div class="highlight
162157< span class ="sd "> is not defined and a configuration file</ span >
163158< span class ="sd "> is not found in the file hierarchy</ span >
164159< span class ="sd "> """</ span >
160+ < span class ="n "> logger</ span > < span class ="o "> .</ span > < span class ="n "> debug</ span > < span class ="p "> (</ span > < span class ="s2 "> "Start hierarchical search of configuation file"</ span > < span class ="p "> )</ span >
165161 < span class ="n "> config_filepath</ span > < span class ="o "> =</ span > < span class ="n "> _get_first_configuration_filepath_within_file_hierarchy</ span > < span class ="p "> (</ span >
166162 < span class ="n "> Path</ span > < span class ="p "> (</ span > < span class ="n "> os</ span > < span class ="o "> .</ span > < span class ="n "> getcwd</ span > < span class ="p "> ())</ span >
167163 < span class ="p "> )</ span >
168164 < span class ="k "> if</ span > < span class ="n "> config_filepath</ span > < span class ="p "> :</ span >
169165 < span class ="k "> return</ span > < span class ="n "> config_filepath</ span > < span class ="o "> .</ span > < span class ="n "> parent</ span >
170166
167+ < span class ="n "> logger</ span > < span class ="o "> .</ span > < span class ="n "> debug</ span > < span class ="p "> (</ span >
168+ < span class ="s2 "> "Hierarchical search failed. Check environment variable </ span > < span class ="si "> {LLM_ASSISTANT_ENV_VARIABLE}</ span > < span class ="s2 "> "</ span >
169+ < span class ="p "> )</ span >
171170 < span class ="k "> if</ span > < span class ="n "> LLM_ASSISTANT_ENV_VARIABLE</ span > < span class ="ow "> in</ span > < span class ="n "> os</ span > < span class ="o "> .</ span > < span class ="n "> environ</ span > < span class ="p "> :</ span >
172171 < span class ="k "> return</ span > < span class ="n "> Path</ span > < span class ="p "> (</ span > < span class ="n "> os</ span > < span class ="o "> .</ span > < span class ="n "> environ</ span > < span class ="p "> [</ span > < span class ="n "> LLM_ASSISTANT_ENV_VARIABLE</ span > < span class ="p "> ])</ span > < span class ="o "> .</ span > < span class ="n "> expanduser</ span > < span class ="p "> ()</ span >
173172
@@ -232,11 +231,8 @@ <h1>Source code for danoan.llm_assistant.common.config</h1><div class="highlight
232231< span class ="sd "> """</ span >
233232 < span class ="n "> config</ span > < span class ="o "> =</ span > < span class ="n "> get_configuration</ span > < span class ="p "> ()</ span >
234233 < span class ="k "> if</ span > < span class ="n "> config</ span > < span class ="o "> .</ span > < span class ="n "> prompt</ span > < span class ="p "> :</ span >
235- < span class ="n "> prompt_config_filepath</ span > < span class ="o "> =</ span > < span class ="p "> (</ span >
236- < span class ="n "> get_configuration_folder</ span > < span class ="p "> ()</ span >
237- < span class ="o "> /</ span > < span class ="n "> config</ span > < span class ="o "> .</ span > < span class ="n "> prompt</ span > < span class ="o "> .</ span > < span class ="n "> prompt_collection_folder</ span >
238- < span class ="o "> /</ span > < span class ="n "> prompt_name</ span >
239- < span class ="o "> /</ span > < span class ="s2 "> "config.toml"</ span >
234+ < span class ="n "> prompt_config_filepath</ span > < span class ="o "> =</ span > < span class ="n "> get_absolute_configuration_path</ span > < span class ="p "> (</ span >
235+ < span class ="n "> config</ span > < span class ="o "> .</ span > < span class ="n "> prompt</ span > < span class ="o "> .</ span > < span class ="n "> prompt_collection_folder</ span > < span class ="o "> /</ span > < span class ="n "> prompt_name</ span > < span class ="o "> /</ span > < span class ="s2 "> "config.toml"</ span >
240236 < span class ="p "> )</ span >
241237 < span class ="k "> else</ span > < span class ="p "> :</ span >
242238 < span class ="k "> raise</ span > < span class ="ne "> FileNotFoundError</ span > < span class ="p "> (</ span >
@@ -248,6 +244,22 @@ <h1>Source code for danoan.llm_assistant.common.config</h1><div class="highlight
248244 < span class ="k "> with</ span > < span class ="nb "> open</ span > < span class ="p "> (</ span > < span class ="n "> prompt_config_filepath</ span > < span class ="p "> )</ span > < span class ="k "> as</ span > < span class ="n "> f</ span > < span class ="p "> :</ span >
249245 < span class ="k "> return</ span > < span class ="n "> model</ span > < span class ="o "> .</ span > < span class ="n "> PromptConfiguration</ span > < span class ="p "> (</ span > < span class ="o "> **</ span > < span class ="n "> toml</ span > < span class ="o "> .</ span > < span class ="n "> load</ span > < span class ="p "> (</ span > < span class ="n "> f</ span > < span class ="p "> ))</ span > </ div >
250246
247+
248+
249+ < div class ="viewcode-block " id ="get_absolute_configuration_path ">
250+ < a class ="viewcode-back " href ="../../../../reference/danoan.llm_assistant.common.config.html#danoan.llm_assistant.common.config.get_absolute_configuration_path "> [docs]</ a >
251+ < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> get_absolute_configuration_path</ span > < span class ="p "> (</ span > < span class ="n "> path</ span > < span class ="p "> :</ span > < span class ="n "> Path</ span > < span class ="p "> ):</ span >
252+ < span class ="w "> </ span > < span class ="sd "> """</ span >
253+ < span class ="sd "> Get absolute path of a configuration parameter.</ span >
254+
255+ < span class ="sd "> Paths in the configuration file are given relative to the location of</ span >
256+ < span class ="sd "> the configuration file. This function resolves to its absolute path.</ span >
257+ < span class ="sd "> """</ span >
258+ < span class ="k "> if</ span > < span class ="n "> path</ span > < span class ="o "> .</ span > < span class ="n "> is_absolute</ span > < span class ="p "> ():</ span >
259+ < span class ="k "> return</ span > < span class ="n "> path</ span >
260+ < span class ="k "> else</ span > < span class ="p "> :</ span >
261+ < span class ="k "> return</ span > < span class ="n "> get_configuration_folder</ span > < span class ="p "> ()</ span > < span class ="o "> /</ span > < span class ="n "> path</ span > </ div >
262+
251263</ pre > </ div >
252264
253265 </ div >
0 commit comments