@@ -40,6 +40,7 @@ <h1>Source code for pyaml.configuration.factory</h1><div class="highlight"><pre>
4040< span > </ span > < span class ="c1 "> # PyAML factory (construct AML objects from config files)</ span >
4141< span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> importlib</ span >
4242< span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> threading</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> Lock</ span >
43+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> fnmatch</ span >
4344
4445< span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> ..common.exception</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> PyAMLConfigException</ span >
4546< span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> ..common.element</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> Element</ span >
@@ -165,10 +166,10 @@ <h1>Source code for pyaml.configuration.factory</h1><div class="highlight"><pre>
165166
166167 < span class ="k "> try</ span > < span class ="p "> :</ span >
167168 < span class ="n "> obj</ span > < span class ="o "> =</ span > < span class ="n "> elem_cls</ span > < span class ="p "> (</ span > < span class ="n "> cfg</ span > < span class ="p "> )</ span >
169+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> register_element</ span > < span class ="p "> (</ span > < span class ="n "> obj</ span > < span class ="p "> )</ span >
168170 < span class ="k "> except</ span > < span class ="ne "> Exception</ span > < span class ="k "> as</ span > < span class ="n "> e</ span > < span class ="p "> :</ span >
169171 < span class ="k "> raise</ span > < span class ="n "> PyAMLConfigException</ span > < span class ="p "> (</ span > < span class ="sa "> f</ span > < span class ="s2 "> "</ span > < span class ="si "> {</ span > < span class ="nb "> str</ span > < span class ="p "> (</ span > < span class ="n "> e</ span > < span class ="p "> )</ span > < span class ="si "> }</ span > < span class ="s2 "> when creating '</ span > < span class ="si "> {</ span > < span class ="n "> type_str</ span > < span class ="si "> }</ span > < span class ="s2 "> .</ span > < span class ="si "> {</ span > < span class ="n "> cls_name</ span > < span class ="si "> }</ span > < span class ="s2 "> ' </ span > < span class ="si "> {</ span > < span class ="n "> location_str</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span > < span class ="p "> )</ span >
170172
171- < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> register_element</ span > < span class ="p "> (</ span > < span class ="n "> obj</ span > < span class ="p "> )</ span >
172173 < span class ="k "> return</ span > < span class ="n "> obj</ span > </ div >
173174
174175
@@ -207,7 +208,6 @@ <h1>Source code for pyaml.configuration.factory</h1><div class="highlight"><pre>
207208 < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> elt</ span > < span class ="p "> ,</ span > < span class ="n "> Element</ span > < span class ="p "> ):</ span >
208209 < span class ="n "> name</ span > < span class ="o "> =</ span > < span class ="n "> elt</ span > < span class ="o "> .</ span > < span class ="n "> get_name</ span > < span class ="p "> ()</ span >
209210 < span class ="k "> if</ span > < span class ="n "> name</ span > < span class ="ow "> in</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _elements</ span > < span class ="p "> :</ span >
210- < span class ="nb "> print</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _elements</ span > < span class ="p "> )</ span >
211211 < span class ="k "> raise</ span > < span class ="n "> PyAMLConfigException</ span > < span class ="p "> (</ span > < span class ="sa "> f</ span > < span class ="s2 "> "element </ span > < span class ="si "> {</ span > < span class ="n "> name</ span > < span class ="si "> }</ span > < span class ="s2 "> already defined"</ span > < span class ="p "> )</ span >
212212 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _elements</ span > < span class ="p "> [</ span > < span class ="n "> name</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="n "> elt</ span >
213213
@@ -216,6 +216,12 @@ <h1>Source code for pyaml.configuration.factory</h1><div class="highlight"><pre>
216216 < span class ="k "> if</ span > < span class ="n "> name</ span > < span class ="ow "> not</ span > < span class ="ow "> in</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _elements</ span > < span class ="p "> :</ span >
217217 < span class ="k "> raise</ span > < span class ="n "> PyAMLConfigException</ span > < span class ="p "> (</ span > < span class ="sa "> f</ span > < span class ="s2 "> "element </ span > < span class ="si "> {</ span > < span class ="n "> name</ span > < span class ="si "> }</ span > < span class ="s2 "> not defined"</ span > < span class ="p "> )</ span >
218218 < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _elements</ span > < span class ="p "> [</ span > < span class ="n "> name</ span > < span class ="p "> ]</ span >
219+
220+ < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> get_elements_by_name</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> wildcard</ span > < span class ="p "> :</ span > < span class ="nb "> str</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="nb "> list</ span > < span class ="p "> [</ span > < span class ="n "> Element</ span > < span class ="p "> ]:</ span >
221+ < span class ="k "> return</ span > < span class ="p "> [</ span > < span class ="n "> e</ span > < span class ="k "> for</ span > < span class ="n "> k</ span > < span class ="p "> ,</ span > < span class ="n "> e</ span > < span class ="ow "> in</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _elements</ span > < span class ="o "> .</ span > < span class ="n "> items</ span > < span class ="p "> ()</ span > < span class ="k "> if</ span > < span class ="n "> fnmatch</ span > < span class ="o "> .</ span > < span class ="n "> fnmatch</ span > < span class ="p "> (</ span > < span class ="n "> k</ span > < span class ="p "> ,</ span > < span class ="n "> wildcard</ span > < span class ="p "> )]</ span >
222+
223+ < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> get_elements_by_type</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="nb "> type</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="nb "> list</ span > < span class ="p "> [</ span > < span class ="n "> Element</ span > < span class ="p "> ]:</ span >
224+ < span class ="k "> return</ span > < span class ="p "> [</ span > < span class ="n "> e</ span > < span class ="k "> for</ span > < span class ="n "> k</ span > < span class ="p "> ,</ span > < span class ="n "> e</ span > < span class ="ow "> in</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _elements</ span > < span class ="o "> .</ span > < span class ="n "> items</ span > < span class ="p "> ()</ span > < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> e</ span > < span class ="p "> ,</ span > < span class ="nb "> type</ span > < span class ="p "> )]</ span >
219225
220226 < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> clear</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ):</ span >
221227 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _elements</ span > < span class ="o "> .</ span > < span class ="n "> clear</ span > < span class ="p "> ()</ span > </ div >
0 commit comments