17 from collections
import OrderedDict
20 _ARTICLES = {
'a',
'an',
'the'}
55 _FRACTION_STRING_EN = {
78 _LONG_SCALE_EN = OrderedDict([
84 (1e24,
"quadrillion"),
85 (1e30,
"quintillion"),
91 (1e66,
"undecillion"),
92 (1e72,
"duodecillion"),
93 (1e78,
"tredecillion"),
94 (1e84,
"quattuordecillion"),
95 (1e90,
"quinquadecillion"),
96 (1e96,
"sedecillion"),
97 (1e102,
"septendecillion"),
98 (1e108,
"octodecillion"),
99 (1e114,
"novendecillion"),
100 (1e120,
"vigintillion"),
101 (1e306,
"unquinquagintillion"),
102 (1e312,
"duoquinquagintillion"),
103 (1e336,
"sesquinquagintillion"),
104 (1e366,
"unsexagintillion")
108 _SHORT_SCALE_EN = OrderedDict([
111 (1000000,
'million'),
114 (1e15,
"quadrillion"),
115 (1e18,
"quintillion"),
116 (1e21,
"sextillion"),
117 (1e24,
"septillion"),
121 (1e36,
"undecillion"),
122 (1e39,
"duodecillion"),
123 (1e42,
"tredecillion"),
124 (1e45,
"quattuordecillion"),
125 (1e48,
"quinquadecillion"),
126 (1e51,
"sedecillion"),
127 (1e54,
"septendecillion"),
128 (1e57,
"octodecillion"),
129 (1e60,
"novendecillion"),
130 (1e63,
"vigintillion"),
131 (1e66,
"unvigintillion"),
132 (1e69,
"uuovigintillion"),
133 (1e72,
"tresvigintillion"),
134 (1e75,
"quattuorvigintillion"),
135 (1e78,
"quinquavigintillion"),
136 (1e81,
"qesvigintillion"),
137 (1e84,
"septemvigintillion"),
138 (1e87,
"octovigintillion"),
139 (1e90,
"novemvigintillion"),
140 (1e93,
"trigintillion"),
141 (1e96,
"untrigintillion"),
142 (1e99,
"duotrigintillion"),
143 (1e102,
"trestrigintillion"),
144 (1e105,
"quattuortrigintillion"),
145 (1e108,
"quinquatrigintillion"),
146 (1e111,
"sestrigintillion"),
147 (1e114,
"septentrigintillion"),
148 (1e117,
"octotrigintillion"),
149 (1e120,
"noventrigintillion"),
150 (1e123,
"quadragintillion"),
151 (1e153,
"quinquagintillion"),
152 (1e183,
"sexagintillion"),
153 (1e213,
"septuagintillion"),
154 (1e243,
"octogintillion"),
155 (1e273,
"nonagintillion"),
156 (1e303,
"centillion"),
157 (1e306,
"uncentillion"),
158 (1e309,
"duocentillion"),
159 (1e312,
"trescentillion"),
160 (1e333,
"decicentillion"),
161 (1e336,
"undecicentillion"),
162 (1e363,
"viginticentillion"),
163 (1e366,
"unviginticentillion"),
164 (1e393,
"trigintacentillion"),
165 (1e423,
"quadragintacentillion"),
166 (1e453,
"quinquagintacentillion"),
167 (1e483,
"sexagintacentillion"),
168 (1e513,
"septuagintacentillion"),
169 (1e543,
"ctogintacentillion"),
170 (1e573,
"nonagintacentillion"),
171 (1e603,
"ducentillion"),
172 (1e903,
"trecentillion"),
173 (1e1203,
"quadringentillion"),
174 (1e1503,
"quingentillion"),
175 (1e1803,
"sescentillion"),
176 (1e2103,
"septingentillion"),
177 (1e2403,
"octingentillion"),
178 (1e2703,
"nongentillion"),
179 (1e3003,
"millinillion")
183 _ORDINAL_STRING_BASE_EN = {
216 _SHORT_ORDINAL_STRING_EN = {
220 1e15:
"quadrillionth",
221 1e18:
"quintillionth",
222 1e21:
"sextillionth",
223 1e24:
"septillionth",
229 _SHORT_ORDINAL_STRING_EN.update(_ORDINAL_STRING_BASE_EN)
232 _LONG_ORDINAL_STRING_EN = {
236 1e24:
"quadrillionth",
237 1e30:
"quintillionth",
238 1e36:
"sextillionth",
239 1e42:
"septillionth",
245 _LONG_ORDINAL_STRING_EN.update(_ORDINAL_STRING_BASE_EN)