@@ -53,6 +53,7 @@ <h1>Source code for fluent.runtime.fallback</h1><div class="highlight"><pre>
5353< span class ="p "> )</ span >
5454
5555< span class ="kn "> from</ span > < span class ="nn "> fluent.syntax</ span > < span class ="kn "> import</ span > < span class ="n "> FluentParser</ span >
56+ < span class ="kn "> from</ span > < span class ="nn "> typing</ span > < span class ="kn "> import</ span > < span class ="n "> NamedTuple</ span >
5657
5758< span class ="kn "> from</ span > < span class ="nn "> .bundle</ span > < span class ="kn "> import</ span > < span class ="n "> FluentBundle</ span >
5859
@@ -62,6 +63,11 @@ <h1>Source code for fluent.runtime.fallback</h1><div class="highlight"><pre>
6263 < span class ="kn "> from</ span > < span class ="nn "> .types</ span > < span class ="kn "> import</ span > < span class ="n "> FluentType</ span >
6364
6465
66+ < div class ="viewcode-block " id ="FormattedMessage "> < a class ="viewcode-back " href ="../../../reference.html#fluent.runtime.FormattedMessage "> [docs]</ a > < span class ="k "> class</ span > < span class ="nc "> FormattedMessage</ span > < span class ="p "> (</ span > < span class ="n "> NamedTuple</ span > < span class ="p "> ):</ span >
67+ < span class ="n "> value</ span > < span class ="p "> :</ span > < span class ="n "> Union</ span > < span class ="p "> [</ span > < span class ="nb "> str</ span > < span class ="p "> ,</ span > < span class ="kc "> None</ span > < span class ="p "> ]</ span >
68+ < span class ="n "> attributes</ span > < span class ="p "> :</ span > < span class ="n "> Dict</ span > < span class ="p "> [</ span > < span class ="nb "> str</ span > < span class ="p "> ,</ span > < span class ="nb "> str</ span > < span class ="p "> ]</ span > </ div >
69+
70+
6571< div class ="viewcode-block " id ="FluentLocalization "> < a class ="viewcode-back " href ="../../../reference.html#fluent.runtime.FluentLocalization "> [docs]</ a > < span class ="k "> class</ span > < span class ="nc "> FluentLocalization</ span > < span class ="p "> :</ span >
6672< span class ="w "> </ span > < span class ="sd "> """</ span >
6773< span class ="sd "> Generic API for Fluent applications.</ span >
@@ -88,20 +94,47 @@ <h1>Source code for fluent.runtime.fallback</h1><div class="highlight"><pre>
8894 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _bundle_cache</ span > < span class ="p "> :</ span > < span class ="n "> List</ span > < span class ="p "> [</ span > < span class ="n "> FluentBundle</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="p "> []</ span >
8995 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _bundle_it</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _iterate_bundles</ span > < span class ="p "> ()</ span >
9096
97+ < span class ="k "> def</ span > < span class ="nf "> format_message</ span > < span class ="p "> (</ span >
98+ < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> msg_id</ span > < span class ="p "> :</ span > < span class ="nb "> str</ span > < span class ="p "> ,</ span > < span class ="n "> args</ span > < span class ="p "> :</ span > < span class ="n "> Union</ span > < span class ="p "> [</ span > < span class ="n "> Dict</ span > < span class ="p "> [</ span > < span class ="nb "> str</ span > < span class ="p "> ,</ span > < span class ="n "> Any</ span > < span class ="p "> ],</ span > < span class ="kc "> None</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span >
99+ < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="n "> FormattedMessage</ span > < span class ="p "> :</ span >
100+ < span class ="n "> bundle</ span > < span class ="p "> ,</ span > < span class ="n "> msg</ span > < span class ="o "> =</ span > < span class ="nb "> next</ span > < span class ="p "> ((</ span >
101+ < span class ="p "> (</ span > < span class ="n "> bundle</ span > < span class ="p "> ,</ span > < span class ="n "> bundle</ span > < span class ="o "> .</ span > < span class ="n "> get_message</ span > < span class ="p "> (</ span > < span class ="n "> msg_id</ span > < span class ="p "> ))</ span >
102+ < span class ="k "> for</ span > < span class ="n "> bundle</ span > < span class ="ow "> in</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _bundles</ span > < span class ="p "> ()</ span >
103+ < span class ="k "> if</ span > < span class ="n "> bundle</ span > < span class ="o "> .</ span > < span class ="n "> has_message</ span > < span class ="p "> (</ span > < span class ="n "> msg_id</ span > < span class ="p "> )</ span >
104+ < span class ="p "> ),</ span > < span class ="p "> (</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span > < span class ="kc "> None</ span > < span class ="p "> ))</ span >
105+ < span class ="k "> if</ span > < span class ="ow "> not</ span > < span class ="n "> bundle</ span > < span class ="ow "> or</ span > < span class ="ow "> not</ span > < span class ="n "> msg</ span > < span class ="p "> :</ span >
106+ < span class ="k "> return</ span > < span class ="n "> FormattedMessage</ span > < span class ="p "> (</ span > < span class ="n "> msg_id</ span > < span class ="p "> ,</ span > < span class ="p "> {})</ span >
107+ < span class ="n "> formatted_attrs</ span > < span class ="o "> =</ span > < span class ="p "> {</ span >
108+ < span class ="n "> attr</ span > < span class ="p "> :</ span > < span class ="n "> cast</ span > < span class ="p "> (</ span >
109+ < span class ="nb "> str</ span > < span class ="p "> ,</ span >
110+ < span class ="n "> bundle</ span > < span class ="o "> .</ span > < span class ="n "> format_pattern</ span > < span class ="p "> (</ span > < span class ="n "> msg</ span > < span class ="o "> .</ span > < span class ="n "> attributes</ span > < span class ="p "> [</ span > < span class ="n "> attr</ span > < span class ="p "> ],</ span > < span class ="n "> args</ span > < span class ="p "> )[</ span > < span class ="mi "> 0</ span > < span class ="p "> ],</ span >
111+ < span class ="p "> )</ span >
112+ < span class ="k "> for</ span > < span class ="n "> attr</ span > < span class ="ow "> in</ span > < span class ="n "> msg</ span > < span class ="o "> .</ span > < span class ="n "> attributes</ span >
113+ < span class ="p "> }</ span >
114+ < span class ="k "> if</ span > < span class ="ow "> not</ span > < span class ="n "> msg</ span > < span class ="o "> .</ span > < span class ="n "> value</ span > < span class ="p "> :</ span >
115+ < span class ="n "> val</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span >
116+ < span class ="k "> else</ span > < span class ="p "> :</ span >
117+ < span class ="n "> val</ span > < span class ="p "> ,</ span > < span class ="n "> _errors</ span > < span class ="o "> =</ span > < span class ="n "> bundle</ span > < span class ="o "> .</ span > < span class ="n "> format_pattern</ span > < span class ="p "> (</ span > < span class ="n "> msg</ span > < span class ="o "> .</ span > < span class ="n "> value</ span > < span class ="p "> ,</ span > < span class ="n "> args</ span > < span class ="p "> )</ span >
118+ < span class ="k "> return</ span > < span class ="n "> FormattedMessage</ span > < span class ="p "> (</ span >
119+ < span class ="c1 "> # Never FluentNone when format_pattern called externally</ span >
120+ < span class ="n "> cast</ span > < span class ="p "> (</ span > < span class ="nb "> str</ span > < span class ="p "> ,</ span > < span class ="n "> val</ span > < span class ="p "> ),</ span >
121+ < span class ="n "> formatted_attrs</ span > < span class ="p "> ,</ span >
122+ < span class ="p "> )</ span >
123+
91124 < span class ="k "> def</ span > < span class ="nf "> format_value</ span > < span class ="p "> (</ span >
92125 < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> msg_id</ span > < span class ="p "> :</ span > < span class ="nb "> str</ span > < span class ="p "> ,</ span > < span class ="n "> args</ span > < span class ="p "> :</ span > < span class ="n "> Union</ span > < span class ="p "> [</ span > < span class ="n "> Dict</ span > < span class ="p "> [</ span > < span class ="nb "> str</ span > < span class ="p "> ,</ span > < span class ="n "> Any</ span > < span class ="p "> ],</ span > < span class ="kc "> None</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span >
93126 < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="nb "> str</ span > < span class ="p "> :</ span >
94- < span class ="k " > for </ span > < span class =" n "> bundle</ span > < span class ="ow " > in </ span > < span class ="bp " > self </ span > < span class ="o "> . </ span > < span class ="n " > _bundles </ span > < span class ="p "> (): </ span >
95- < span class ="k " > if </ span > < span class ="ow " > not </ span > < span class ="n "> bundle</ span > < span class ="o "> .</ span > < span class ="n "> has_message </ span > < span class ="p "> (</ span > < span class ="n "> msg_id</ span > < span class ="p "> ): </ span >
96- < span class ="k " > continue </ span >
97- < span class ="n " > msg </ span > < span class ="o " > = </ span > < span class =" n "> bundle</ span > < span class ="o "> .</ span > < span class ="n "> get_message </ span > < span class ="p "> (</ span > < span class ="n "> msg_id</ span > < span class ="p "> )</ span >
98- < span class ="k " > if </ span > < span class ="ow " > not </ span > < span class ="n " > msg </ span > < span class ="o " > . </ span > < span class ="n " > value </ span > < span class ="p "> : </ span >
99- < span class ="k " > continue </ span >
100- < span class ="n " > val </ span > < span class =" p " > , </ span > < span class ="n "> _errors </ span > < span class =" o " > = </ span > < span class =" n " > bundle </ span > < span class =" o " > . </ span > < span class =" n " > format_pattern </ span > < span class =" p " > ( </ span > < span class =" n " > msg </ span > < span class =" o " > . </ span > < span class =" n " > value </ span > < span class =" p " > , </ span > < span class =" n " > args </ span > < span class =" p " > ) </ span >
101- < span class ="k " > return </ span > < span class ="n "> cast </ span > < span class ="p "> (</ span >
102- < span class ="nb " > str </ span > < span class ="p " > , </ span > < span class ="n " > val </ span >
103- < span class ="p " > ) </ span > < span class ="c1 " > # Never FluentNone when format_pattern called externally </ span >
104- < span class ="k " > return </ span > < span class ="n " > msg_id </ span >
127+ < span class ="n "> bundle</ span > < span class ="p " > , </ span > < span class ="n " > msg </ span > < span class ="o "> = </ span > < span class ="nb " > next </ span > < span class ="p "> (( </ span >
128+ < span class ="p " > ( </ span > < span class =" n " > bundle </ span > < span class ="p " > , </ span > < span class ="n "> bundle</ span > < span class ="o "> .</ span > < span class ="n "> get_message </ span > < span class ="p "> (</ span > < span class ="n "> msg_id</ span > < span class ="p "> )) </ span >
129+ < span class =" k " > for </ span > < span class =" n " > bundle </ span > < span class ="ow " > in </ span > < span class =" bp " > self </ span > < span class =" o " > . </ span > < span class =" n " > _bundles </ span > < span class =" p " > () </ span >
130+ < span class ="k " > if </ span > < span class ="n "> bundle</ span > < span class ="o "> .</ span > < span class ="n "> has_message </ span > < span class ="p "> (</ span > < span class ="n "> msg_id</ span > < span class ="p "> )</ span >
131+ < span class ="p " > ), </ span > < span class ="p " > ( </ span > < span class ="kc " > None </ span > < span class ="p " > , </ span > < span class ="kc " > None </ span > < span class ="p "> )) </ span >
132+ < span class =" k " > if </ span > < span class =" ow " > not </ span > < span class =" n " > bundle </ span > < span class =" ow " > or </ span > < span class ="ow " > not </ span > < span class =" n " > msg </ span > < span class =" ow " > or </ span > < span class =" ow " > not </ span > < span class =" n " > msg </ span > < span class =" o " > . </ span > < span class =" n " > value </ span > < span class =" p " > : </ span >
133+ < span class ="k " > return </ span > < span class ="n "> msg_id </ span >
134+ < span class =" n " > val </ span > < span class =" p " > , </ span > < span class =" n " > _errors </ span > < span class ="o " > = </ span > < span class ="n "> bundle </ span > < span class ="o " > . </ span > < span class =" n " > format_pattern </ span > < span class =" p "> (</ span > < span class =" n " > msg </ span > < span class =" o " > . </ span > < span class =" n " > value </ span > < span class =" p " > , </ span > < span class =" n " > args </ span > < span class =" p " > ) </ span >
135+ < span class ="k " > return </ span > < span class ="n " > cast </ span > < span class ="p " > ( </ span >
136+ < span class ="nb " > str </ span > < span class ="p " > , </ span > < span class =" n " > val </ span >
137+ < span class ="p " > ) </ span > < span class ="c1 " > # Never FluentNone when format_pattern called externally </ span >
105138
106139 < span class ="k "> def</ span > < span class ="nf "> _create_bundle</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> locales</ span > < span class ="p "> :</ span > < span class ="n "> List</ span > < span class ="p "> [</ span > < span class ="nb "> str</ span > < span class ="p "> ])</ span > < span class ="o "> -></ span > < span class ="n "> FluentBundle</ span > < span class ="p "> :</ span >
107140 < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> bundle_class</ span > < span class ="p "> (</ span >
0 commit comments