<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>bornomala</title><link>https://wirestaq.github.io/bornomala/</link><description>Recent content on bornomala</description><generator>Hugo</generator><language>bn</language><atom:link href="https://wirestaq.github.io/bornomala/index.xml" rel="self" type="application/rss+xml"/><item><title>Getting Started</title><link>https://wirestaq.github.io/bornomala/docs/getting-started/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wirestaq.github.io/bornomala/docs/getting-started/</guid><description>&lt;h1 id="getting-started"&gt;Getting Started&lt;a class="anchor" href="#getting-started"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="installation"&gt;Installation&lt;a class="anchor" href="#installation"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Install from PyPI (Python 3.5+ required, no extra dependencies):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pip install bornomala-py&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;With &lt;a href="https://github.com/astral-sh/uv"&gt;uv&lt;/a&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;uv add bornomala-py&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;With Poetry:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;poetry add bornomala-py&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="python-version-support"&gt;Python version support&lt;a class="anchor" href="#python-version-support"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Python&lt;/th&gt;
 &lt;th&gt;Supported&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;3.5&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3.6&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3.7&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3.8&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3.9&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3.10&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3.11&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3.12&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3.13&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="quick-tour"&gt;Quick tour&lt;a class="anchor" href="#quick-tour"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="numbers-in-words"&gt;Numbers in words&lt;a class="anchor" href="#numbers-in-words"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; num_to_words, words_to_num
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;শূন্য&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#bd93f9"&gt;42&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;বিয়াল্লিশ&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#bd93f9"&gt;1234&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;এক হাজার দুইশত চৌত্রিশ&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;7&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;ঋণাত্মক সাত&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#f1fa8c"&gt;&amp;#34;3.14&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;তিন দশমিক এক চার&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#f1fa8c"&gt;&amp;#34;১২৩&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;একশত তেইশ&amp;#39; ← Bangla digit string accepted&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;words_to_num(&lt;span style="color:#f1fa8c"&gt;&amp;#34;এক হাজার দুইশত চৌত্রিশ&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# 1234&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;words_to_num(&lt;span style="color:#f1fa8c"&gt;&amp;#34;তিন দশমিক এক চার&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# 3.14&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="digit-conversion"&gt;Digit conversion&lt;a class="anchor" href="#digit-conversion"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; to_bangla_digits, to_western_digits
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_digits(&lt;span style="color:#bd93f9"&gt;2026&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;২০২৬&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_digits(&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;3.14&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;-৩.১৪&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_western_digits(&lt;span style="color:#f1fa8c"&gt;&amp;#34;২০২৬&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;2026&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="ordinals"&gt;Ordinals&lt;a class="anchor" href="#ordinals"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; to_bangla_ordinal
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;১ম&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;4&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;৪র্থ&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;6&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;৬ষ্ঠ&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;11&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;১১তম&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="currency"&gt;Currency&lt;a class="anchor" href="#currency"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; format_currency
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;format_currency(&lt;span style="color:#bd93f9"&gt;500&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;পাঁচশত টাকা মাত্র&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;format_currency(&lt;span style="color:#f1fa8c"&gt;&amp;#34;1234.50&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;এক হাজার দুইশত চৌত্রিশ টাকা পঞ্চাশ পয়সা মাত্র&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="dates"&gt;Dates&lt;a class="anchor" href="#dates"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; BanglaDate, BanglaDatetime
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bd &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; BanglaDate(&lt;span style="color:#bd93f9"&gt;2026&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;12&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;(bd) &lt;span style="color:#6272a4"&gt;# &amp;#39;১২ মার্চ ২০২৬&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bd&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;strftime(&lt;span style="color:#f1fa8c"&gt;&amp;#34;%A, &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%e&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; %B %Y&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;বৃহস্পতিবার, ১২ মার্চ ২০২৬&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bdt &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; BanglaDatetime(&lt;span style="color:#bd93f9"&gt;2026&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;12&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;10&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;30&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;(bdt) &lt;span style="color:#6272a4"&gt;# &amp;#39;বৃহস্পতিবার, ১২ মার্চ ২০২৬, ১০:৩০&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="bangla-calendar"&gt;Bangla calendar&lt;a class="anchor" href="#bangla-calendar"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; gregorian_to_bangla
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; datetime &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; date
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bd &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; gregorian_to_bangla(date(&lt;span style="color:#bd93f9"&gt;2026&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;12&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;(bd) &lt;span style="color:#6272a4"&gt;# &amp;#39;২৮ ফাল্গুন ১৪৩২&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bd&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;season &lt;span style="color:#6272a4"&gt;# &amp;#39;বসন্ত&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="text-utilities"&gt;Text utilities&lt;a class="anchor" href="#text-utilities"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; normalize, is_bangla, is_pure_bangla, bangla_char_count
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;normalize(&lt;span style="color:#f1fa8c"&gt;&amp;#34;আমার সোনার বাংলা&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;আমার সোনার বাংলা&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;normalize(&lt;span style="color:#f1fa8c"&gt;&amp;#34;এক|দুই&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;এক।দুই&amp;#39; (pipe → daari)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;is_bangla(&lt;span style="color:#f1fa8c"&gt;&amp;#34;hello আমি&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;is_pure_bangla(&lt;span style="color:#f1fa8c"&gt;&amp;#34;আমার বাংলা।&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bangla_char_count(&lt;span style="color:#f1fa8c"&gt;&amp;#34;hello আমি&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# 3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="whats-next"&gt;What&amp;rsquo;s next&lt;a class="anchor" href="#whats-next"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://wirestaq.github.io/bornomala/docs/numbers/"&gt;Numbers →&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wirestaq.github.io/bornomala/docs/digits/"&gt;Digits →&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wirestaq.github.io/bornomala/docs/ordinals/"&gt;Ordinals →&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wirestaq.github.io/bornomala/docs/currency/"&gt;Currency →&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wirestaq.github.io/bornomala/docs/datetime/"&gt;Date &amp;amp; Time →&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wirestaq.github.io/bornomala/docs/calendar/"&gt;Bangla Calendar →&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wirestaq.github.io/bornomala/docs/text/"&gt;Text Utilities →&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Numbers</title><link>https://wirestaq.github.io/bornomala/docs/numbers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wirestaq.github.io/bornomala/docs/numbers/</guid><description>&lt;h1 id="numbers"&gt;Numbers&lt;a class="anchor" href="#numbers"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Convert integers, floats, and numeric strings to Bangla words and back.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; num_to_words, words_to_num&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="num_to_wordsn"&gt;&lt;code&gt;num_to_words(n)&lt;/code&gt;&lt;a class="anchor" href="#num_to_wordsn"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Convert a number to its Bangla word representation (কথায়).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Signature&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;num_to_words&lt;/span&gt;(n: &lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;float&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;) &lt;span style="color:#ff79c6"&gt;-&amp;gt;&lt;/span&gt; BanglaWords&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Parameters&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Parameter&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;n&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;int&lt;/code&gt;, &lt;code&gt;float&lt;/code&gt;, or &lt;code&gt;str&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The number to convert. Strings may contain Western (0–9) or Bangla (০–৯) digits.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Returns&lt;/strong&gt; — a &lt;a href="#banglawords"&gt;&lt;code&gt;BanglaWords&lt;/code&gt;&lt;/a&gt; instance (subclass of &lt;code&gt;str&lt;/code&gt;).&lt;/p&gt;
&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="integers"&gt;Integers&lt;a class="anchor" href="#integers"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;শূন্য&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;এক&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#bd93f9"&gt;10&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;দশ&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#bd93f9"&gt;100&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;একশত&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#bd93f9"&gt;1000&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;এক হাজার&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#bd93f9"&gt;100000&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;এক লক্ষ&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#bd93f9"&gt;10000000&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;এক কোটি&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#bd93f9"&gt;1234567&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;বারো লক্ষ চৌত্রিশ হাজার পাঁচশত সাতষট্টি&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="negative-numbers"&gt;Negative numbers&lt;a class="anchor" href="#negative-numbers"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;ঋণাত্মক এক&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;42&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;ঋণাত্মক বিয়াল্লিশ&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1000&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;ঋণাত্মক এক হাজার&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="decimals"&gt;Decimals&lt;a class="anchor" href="#decimals"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#f1fa8c"&gt;&amp;#34;3.14&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;তিন দশমিক এক চার&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#f1fa8c"&gt;&amp;#34;0.5&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;শূন্য দশমিক পাঁচ&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#f1fa8c"&gt;&amp;#34;-2.5&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;ঋণাত্মক দুই দশমিক পাঁচ&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#f1fa8c"&gt;&amp;#34;1.005&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;এক দশমিক শূন্য শূন্য পাঁচ&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="bangla-digit-string-input"&gt;Bangla digit string input&lt;a class="anchor" href="#bangla-digit-string-input"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#f1fa8c"&gt;&amp;#34;১২৩৪&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;এক হাজার দুইশত চৌত্রিশ&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;num_to_words(&lt;span style="color:#f1fa8c"&gt;&amp;#34;০&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;শূন্য&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="place-value-reference"&gt;Place value reference&lt;a class="anchor" href="#place-value-reference"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Number&lt;/th&gt;
 &lt;th&gt;Words&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;100&lt;/td&gt;
 &lt;td&gt;একশত&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1,000&lt;/td&gt;
 &lt;td&gt;এক হাজার&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;10,000&lt;/td&gt;
 &lt;td&gt;দশ হাজার&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1,00,000&lt;/td&gt;
 &lt;td&gt;এক লক্ষ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;10,00,000&lt;/td&gt;
 &lt;td&gt;দশ লক্ষ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1,00,00,000&lt;/td&gt;
 &lt;td&gt;এক কোটি&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;10,00,00,000&lt;/td&gt;
 &lt;td&gt;দশ কোটি&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1,00,00,00,000&lt;/td&gt;
 &lt;td&gt;এক হাজার কোটি&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="banglawords"&gt;&lt;code&gt;BanglaWords&lt;/code&gt;&lt;a class="anchor" href="#banglawords"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;num_to_words&lt;/code&gt; returns a &lt;code&gt;BanglaWords&lt;/code&gt; — a &lt;code&gt;str&lt;/code&gt; subclass with chainable suffix methods.&lt;/p&gt;</description></item><item><title>Digits</title><link>https://wirestaq.github.io/bornomala/docs/digits/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wirestaq.github.io/bornomala/docs/digits/</guid><description>&lt;h1 id="digits"&gt;Digits&lt;a class="anchor" href="#digits"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Convert between Western ASCII digits (&lt;code&gt;0&lt;/code&gt;–&lt;code&gt;9&lt;/code&gt;) and Bangla Unicode digits (&lt;code&gt;০&lt;/code&gt;–&lt;code&gt;৯&lt;/code&gt;).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; to_bangla_digits, to_western_digits&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="digit-mapping"&gt;Digit mapping&lt;a class="anchor" href="#digit-mapping"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Western&lt;/th&gt;
 &lt;th&gt;Bangla&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;td&gt;০&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;১&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;td&gt;২&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3&lt;/td&gt;
 &lt;td&gt;৩&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;4&lt;/td&gt;
 &lt;td&gt;৪&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;5&lt;/td&gt;
 &lt;td&gt;৫&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;6&lt;/td&gt;
 &lt;td&gt;৬&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;7&lt;/td&gt;
 &lt;td&gt;৭&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;8&lt;/td&gt;
 &lt;td&gt;৮&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;9&lt;/td&gt;
 &lt;td&gt;৯&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="to_bangla_digitsn"&gt;&lt;code&gt;to_bangla_digits(n)&lt;/code&gt;&lt;a class="anchor" href="#to_bangla_digitsn"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Convert Western digits in &lt;code&gt;n&lt;/code&gt; to Bangla Unicode digits. Non-digit characters are left unchanged.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Signature&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;to_bangla_digits&lt;/span&gt;(n: &lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;float&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;) &lt;span style="color:#ff79c6"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_digits(&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;০&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_digits(&lt;span style="color:#bd93f9"&gt;2026&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;২০২৬&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_digits(&lt;span style="color:#bd93f9"&gt;3.14&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;৩.১৪&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_digits(&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;42&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;-৪২&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_digits(&lt;span style="color:#f1fa8c"&gt;&amp;#34;3.14&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;৩.১৪&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_digits(&lt;span style="color:#f1fa8c"&gt;&amp;#34;abc&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;abc&amp;#39; ← non-digits unchanged&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_digits(&lt;span style="color:#f1fa8c"&gt;&amp;#34;year 2026&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;year ২০২৬&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="use-in-formatting"&gt;Use in formatting&lt;a class="anchor" href="#use-in-formatting"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Bangla page numbers&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pages &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; [&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;10&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;11&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bangla_pages &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; [to_bangla_digits(p) &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; p &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; pages]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [&amp;#39;১&amp;#39;, &amp;#39;২&amp;#39;, &amp;#39;৩&amp;#39;, &amp;#39;১০&amp;#39;, &amp;#39;১১&amp;#39;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Bangla phone number&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;phone &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;01712-345678&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_digits(phone) &lt;span style="color:#6272a4"&gt;# &amp;#39;০১৭১২-৩৪৫৬৭৮&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Bangla year in text&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;f&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;সাল: &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;to_bangla_digits(&lt;span style="color:#bd93f9"&gt;2026&lt;/span&gt;)&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#6272a4"&gt;# &amp;#39;সাল: ২০২৬&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="to_western_digitstext"&gt;&lt;code&gt;to_western_digits(text)&lt;/code&gt;&lt;a class="anchor" href="#to_western_digitstext"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Convert Bangla Unicode digits in &lt;code&gt;text&lt;/code&gt; to Western ASCII digits. Non-digit characters are left unchanged.&lt;/p&gt;</description></item><item><title>Ordinals</title><link>https://wirestaq.github.io/bornomala/docs/ordinals/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wirestaq.github.io/bornomala/docs/ordinals/</guid><description>&lt;h1 id="ordinals"&gt;Ordinals&lt;a class="anchor" href="#ordinals"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Generate Bangla ordinal strings — ১ম, ২য়, ৪র্থ, ১১তম, and so on.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; to_bangla_ordinal&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="to_bangla_ordinaln"&gt;&lt;code&gt;to_bangla_ordinal(n)&lt;/code&gt;&lt;a class="anchor" href="#to_bangla_ordinaln"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Signature&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;to_bangla_ordinal&lt;/span&gt;(n: &lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt;) &lt;span style="color:#ff79c6"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Parameters&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Parameter&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;n&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;A positive integer. Floats are truncated via &lt;code&gt;int()&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Raises&lt;/strong&gt; &lt;code&gt;ValueError&lt;/code&gt; for zero or negative input.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="suffix-rules"&gt;Suffix rules&lt;a class="anchor" href="#suffix-rules"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Range&lt;/th&gt;
 &lt;th&gt;Suffix&lt;/th&gt;
 &lt;th&gt;Example&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;ম&lt;/td&gt;
 &lt;td&gt;১ম&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;td&gt;য়&lt;/td&gt;
 &lt;td&gt;২য়&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3&lt;/td&gt;
 &lt;td&gt;য়&lt;/td&gt;
 &lt;td&gt;৩য়&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;4&lt;/td&gt;
 &lt;td&gt;র্থ&lt;/td&gt;
 &lt;td&gt;৪র্থ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;5&lt;/td&gt;
 &lt;td&gt;ম&lt;/td&gt;
 &lt;td&gt;৫ম&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;6&lt;/td&gt;
 &lt;td&gt;ষ্ঠ&lt;/td&gt;
 &lt;td&gt;৬ষ্ঠ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;7&lt;/td&gt;
 &lt;td&gt;ম&lt;/td&gt;
 &lt;td&gt;৭ম&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;8&lt;/td&gt;
 &lt;td&gt;ম&lt;/td&gt;
 &lt;td&gt;৮ম&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;9&lt;/td&gt;
 &lt;td&gt;ম&lt;/td&gt;
 &lt;td&gt;৯ম&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;10&lt;/td&gt;
 &lt;td&gt;ম&lt;/td&gt;
 &lt;td&gt;১০ম&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;11+&lt;/td&gt;
 &lt;td&gt;তম&lt;/td&gt;
 &lt;td&gt;১১তম, ১০০তম …&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="full-reference-table-120"&gt;Full reference table (1–20)&lt;a class="anchor" href="#full-reference-table-120"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;n&lt;/th&gt;
 &lt;th&gt;Ordinal&lt;/th&gt;
 &lt;th&gt;Meaning&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;১ম&lt;/td&gt;
 &lt;td&gt;প্রথম (first)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;td&gt;২য়&lt;/td&gt;
 &lt;td&gt;দ্বিতীয় (second)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3&lt;/td&gt;
 &lt;td&gt;৩য়&lt;/td&gt;
 &lt;td&gt;তৃতীয় (third)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;4&lt;/td&gt;
 &lt;td&gt;৪র্থ&lt;/td&gt;
 &lt;td&gt;চতুর্থ (fourth)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;5&lt;/td&gt;
 &lt;td&gt;৫ম&lt;/td&gt;
 &lt;td&gt;পঞ্চম (fifth)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;6&lt;/td&gt;
 &lt;td&gt;৬ষ্ঠ&lt;/td&gt;
 &lt;td&gt;ষষ্ঠ (sixth)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;7&lt;/td&gt;
 &lt;td&gt;৭ম&lt;/td&gt;
 &lt;td&gt;সপ্তম (seventh)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;8&lt;/td&gt;
 &lt;td&gt;৮ম&lt;/td&gt;
 &lt;td&gt;অষ্টম (eighth)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;9&lt;/td&gt;
 &lt;td&gt;৯ম&lt;/td&gt;
 &lt;td&gt;নবম (ninth)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;10&lt;/td&gt;
 &lt;td&gt;১০ম&lt;/td&gt;
 &lt;td&gt;দশম (tenth)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;11&lt;/td&gt;
 &lt;td&gt;১১তম&lt;/td&gt;
 &lt;td&gt;একাদশ (eleventh)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;12&lt;/td&gt;
 &lt;td&gt;১২তম&lt;/td&gt;
 &lt;td&gt;দ্বাদশ (twelfth)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;13&lt;/td&gt;
 &lt;td&gt;১৩তম&lt;/td&gt;
 &lt;td&gt;ত্রয়োদশ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;14&lt;/td&gt;
 &lt;td&gt;১৪তম&lt;/td&gt;
 &lt;td&gt;চতুর্দশ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;15&lt;/td&gt;
 &lt;td&gt;১৫তম&lt;/td&gt;
 &lt;td&gt;পঞ্চদশ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;20&lt;/td&gt;
 &lt;td&gt;২০তম&lt;/td&gt;
 &lt;td&gt;বিংশ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;১ম&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;২য়&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;৩য়&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;4&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;৪র্থ&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;6&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;৬ষ্ঠ&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;10&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;১০ম&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;11&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;১১তম&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;21&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;২১তম&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;100&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;১০০তম&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;999&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;৯৯৯তম&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="in-practice"&gt;In practice&lt;a class="anchor" href="#in-practice"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Class rankings&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;students &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; [&lt;span style="color:#f1fa8c"&gt;&amp;#34;রাফি&amp;#34;&lt;/span&gt;, &lt;span style="color:#f1fa8c"&gt;&amp;#34;সিয়াম&amp;#34;&lt;/span&gt;, &lt;span style="color:#f1fa8c"&gt;&amp;#34;নাফিসা&amp;#34;&lt;/span&gt;, &lt;span style="color:#f1fa8c"&gt;&amp;#34;তাহমিনা&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i, name &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;enumerate&lt;/span&gt;(students, &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;f&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;to_bangla_ordinal(i)&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; স্থান: &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;name&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# ১ম স্থান: রাফি&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# ২য় স্থান: সিয়াম&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# ৩য় স্থান: নাফিসা&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# ৪র্থ স্থান: তাহমিনা&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Exam question numbers&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;questions &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;range&lt;/span&gt;(&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;6&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; q &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; questions:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;f&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;to_bangla_ordinal(q)&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; প্রশ্ন&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# ১ম প্রশ্ন … ৫ম প্রশ্ন&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="error-handling"&gt;Error handling&lt;a class="anchor" href="#error-handling"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# ValueError: requires a positive integer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;to_bangla_ordinal(&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;5&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# ValueError: requires a positive integer&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Currency</title><link>https://wirestaq.github.io/bornomala/docs/currency/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wirestaq.github.io/bornomala/docs/currency/</guid><description>&lt;h1 id="currency"&gt;Currency&lt;a class="anchor" href="#currency"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Format monetary amounts as cheque-style Bangla strings — the kind you see on bank drafts and official receipts.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; format_currency&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="format_currencyamount-unit-paisa_unit"&gt;&lt;code&gt;format_currency(amount, unit, paisa_unit)&lt;/code&gt;&lt;a class="anchor" href="#format_currencyamount-unit-paisa_unit"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Signature&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;format_currency&lt;/span&gt;(
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; amount: &lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;float&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; unit: &lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;টাকা&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; paisa_unit: &lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;পয়সা&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;) &lt;span style="color:#ff79c6"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Parameters&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Parameter&lt;/th&gt;
 &lt;th&gt;Default&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;amount&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;td&gt;The monetary amount. Accepts &lt;code&gt;int&lt;/code&gt;, &lt;code&gt;float&lt;/code&gt;, or numeric string (Western or Bangla digits).&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;unit&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;quot;টাকা&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Main currency unit label.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;paisa_unit&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;quot;পয়সা&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Fractional unit label (1/100 of main unit).&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Returns&lt;/strong&gt; a &lt;code&gt;str&lt;/code&gt; of the form:&lt;/p&gt;</description></item><item><title>Date &amp; Time</title><link>https://wirestaq.github.io/bornomala/docs/datetime/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wirestaq.github.io/bornomala/docs/datetime/</guid><description>&lt;h1 id="date--time"&gt;Date &amp;amp; Time&lt;a class="anchor" href="#date--time"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Bangla-aware wrappers for Python&amp;rsquo;s &lt;code&gt;datetime.date&lt;/code&gt; and &lt;code&gt;datetime.datetime&lt;/code&gt;. Same constructors, same methods — all text output in Bangla.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; BanglaDate, BanglaDatetime, bangla_strftime
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; FMT_DATE_LONG, FMT_DATE_SHORT, FMT_DATE_WEEKDAY
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; FMT_DATETIME_LONG, FMT_DATETIME_SHORT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; FMT_TIME_12H, FMT_TIME_24H
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; timezone, timedelta&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="bangladate"&gt;&lt;code&gt;BanglaDate&lt;/code&gt;&lt;a class="anchor" href="#bangladate"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A wrapper for &lt;code&gt;datetime.date&lt;/code&gt; that returns Bangla text from &lt;code&gt;strftime&lt;/code&gt; and &lt;code&gt;__str__&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="construction"&gt;Construction&lt;a class="anchor" href="#construction"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;All three forms are equivalent:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; datetime &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; date
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; BanglaDate
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BanglaDate(&lt;span style="color:#bd93f9"&gt;2026&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;12&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# year, month, day&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BanglaDate(date(&lt;span style="color:#bd93f9"&gt;2026&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;12&lt;/span&gt;)) &lt;span style="color:#6272a4"&gt;# wrap an existing date&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BanglaDate&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;fromisoformat(&lt;span style="color:#f1fa8c"&gt;&amp;#34;2026-03-12&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BanglaDate&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;fromtimestamp(&lt;span style="color:#bd93f9"&gt;1741737600&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BanglaDate&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;today()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="strftimefmt"&gt;&lt;code&gt;strftime(fmt)&lt;/code&gt;&lt;a class="anchor" href="#strftimefmt"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bd &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; BanglaDate(&lt;span style="color:#bd93f9"&gt;2026&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;12&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bd&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;strftime(&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%e&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; %B %Y&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;১২ মার্চ ২০২৬&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bd&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;strftime(&lt;span style="color:#f1fa8c"&gt;&amp;#34;%A, &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%e&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; %B %Y&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;বৃহস্পতিবার, ১২ মার্চ ২০২৬&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bd&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;strftime(&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%d&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;/%m/%Y&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;১২/০৩/২০২৬&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bd&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;strftime(&lt;span style="color:#f1fa8c"&gt;&amp;#34;%b %Y&amp;#34;&lt;/span&gt;) &lt;span style="color:#6272a4"&gt;# &amp;#39;মার্চ ২০২৬&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="__str__"&gt;&lt;code&gt;__str__&lt;/code&gt;&lt;a class="anchor" href="#__str__"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Defaults to &lt;code&gt;FMT_DATE_LONG&lt;/code&gt; (&lt;code&gt;%e %B %Y&lt;/code&gt;):&lt;/p&gt;</description></item><item><title>Bangla Calendar</title><link>https://wirestaq.github.io/bornomala/docs/calendar/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wirestaq.github.io/bornomala/docs/calendar/</guid><description>&lt;h1 id="bangla-calendar-বঙগবদ"&gt;Bangla Calendar (বঙ্গাব্দ)&lt;a class="anchor" href="#bangla-calendar-%e0%a6%ac%e0%a6%99%e0%a6%97%e0%a6%ac%e0%a6%a6"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Convert between the Gregorian calendar and the &lt;strong&gt;Revised Bengali Calendar&lt;/strong&gt; (শংশোধিত বাংলা পঞ্জিকা) as standardised by the Bangla Academy, Bangladesh.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; (
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; BanglaCalendarDate,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; gregorian_to_bangla,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bangla_to_gregorian,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; BANGLA_CAL_MONTHS,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; BANGLA_SEASONS,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; datetime &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; date&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="calendar-overview"&gt;Calendar overview&lt;a class="anchor" href="#calendar-overview"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Revised Bengali Calendar (১৯৮৭):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The new year (&lt;strong&gt;পহেলা বৈশাখ&lt;/strong&gt;) always falls on &lt;strong&gt;14 April&lt;/strong&gt; (Gregorian).&lt;/li&gt;
&lt;li&gt;Months 1–5 have &lt;strong&gt;31 days&lt;/strong&gt;; months 6–11 have &lt;strong&gt;30 days&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Month 12 (চৈত্র) has &lt;strong&gt;30 days&lt;/strong&gt; in regular years, &lt;strong&gt;31&lt;/strong&gt; in leap years.&lt;/li&gt;
&lt;li&gt;The Bangla year = Gregorian year − 593 (on or after 14 April) or − 594 (before 14 April).&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="month-reference"&gt;Month reference&lt;a class="anchor" href="#month-reference"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;#&lt;/th&gt;
 &lt;th&gt;Month&lt;/th&gt;
 &lt;th&gt;Season (ঋতু)&lt;/th&gt;
 &lt;th&gt;Gregorian start&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;বৈশাখ&lt;/td&gt;
 &lt;td&gt;গ্রীষ্ম&lt;/td&gt;
 &lt;td&gt;14 April&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;td&gt;জ্যৈষ্ঠ&lt;/td&gt;
 &lt;td&gt;গ্রীষ্ম&lt;/td&gt;
 &lt;td&gt;15 May&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3&lt;/td&gt;
 &lt;td&gt;আষাঢ়&lt;/td&gt;
 &lt;td&gt;বর্ষা&lt;/td&gt;
 &lt;td&gt;15 June&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;4&lt;/td&gt;
 &lt;td&gt;শ্রাবণ&lt;/td&gt;
 &lt;td&gt;বর্ষা&lt;/td&gt;
 &lt;td&gt;16 July&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;5&lt;/td&gt;
 &lt;td&gt;ভাদ্র&lt;/td&gt;
 &lt;td&gt;শরৎ&lt;/td&gt;
 &lt;td&gt;16 August&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;6&lt;/td&gt;
 &lt;td&gt;আশ্বিন&lt;/td&gt;
 &lt;td&gt;শরৎ&lt;/td&gt;
 &lt;td&gt;17 September&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;7&lt;/td&gt;
 &lt;td&gt;কার্তিক&lt;/td&gt;
 &lt;td&gt;হেমন্ত&lt;/td&gt;
 &lt;td&gt;17 October&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;8&lt;/td&gt;
 &lt;td&gt;অগ্রহায়ণ&lt;/td&gt;
 &lt;td&gt;হেমন্ত&lt;/td&gt;
 &lt;td&gt;16 November&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;9&lt;/td&gt;
 &lt;td&gt;পৌষ&lt;/td&gt;
 &lt;td&gt;শীত&lt;/td&gt;
 &lt;td&gt;15 December&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;10&lt;/td&gt;
 &lt;td&gt;মাঘ&lt;/td&gt;
 &lt;td&gt;শীত&lt;/td&gt;
 &lt;td&gt;14 January&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;11&lt;/td&gt;
 &lt;td&gt;ফাল্গুন&lt;/td&gt;
 &lt;td&gt;বসন্ত&lt;/td&gt;
 &lt;td&gt;13 February&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;12&lt;/td&gt;
 &lt;td&gt;চৈত্র&lt;/td&gt;
 &lt;td&gt;বসন্ত&lt;/td&gt;
 &lt;td&gt;14 March&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="gregorian_to_banglagdate"&gt;&lt;code&gt;gregorian_to_bangla(gdate)&lt;/code&gt;&lt;a class="anchor" href="#gregorian_to_banglagdate"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Convert a &lt;code&gt;datetime.date&lt;/code&gt; to a &lt;code&gt;BanglaCalendarDate&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Text Utilities</title><link>https://wirestaq.github.io/bornomala/docs/text/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wirestaq.github.io/bornomala/docs/text/</guid><description>&lt;h1 id="text-utilities"&gt;Text Utilities&lt;a class="anchor" href="#text-utilities"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Unicode normalisation, script detection, and character utilities for Bangla text.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bornomala &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; normalize, is_bangla, is_pure_bangla, bangla_char_count&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="normalizetext"&gt;&lt;code&gt;normalize(text)&lt;/code&gt;&lt;a class="anchor" href="#normalizetext"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Clean and normalise Bangla Unicode text. Applies three fixes in order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;NFC normalisation&lt;/strong&gt; — canonical Unicode composition (the standard form for storing and comparing Bangla text).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;daari repair&lt;/strong&gt; — replaces the ASCII pipe &lt;code&gt;|&lt;/code&gt; with the Bangla daari &lt;code&gt;।&lt;/code&gt; when it appears in a Bangla context. This is a common OCR artefact in scanned documents.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Whitespace collapse&lt;/strong&gt; — collapses consecutive spaces (including no-break spaces U+00A0) to a single space, and strips leading/trailing whitespace.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Signature&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>