<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های m_20991959</title><link>https://virgool.ir/feed/@m_20991959</link><description></description><language>fa</language><pubDate>2026-11-10 20:00:09</pubDate><image><url>https://virgool.ir/images/default-avatar.jpg</url><title>m_20991959</title><link>https://virgool.ir/@m_20991959</link></image><item><title>🧰 معرفی persian-devkit: یک جعبه‌ابزار فارسی برای ترمینال</title><link>https://virgool.ir/@m_20991959/🧰-معرفی-persian-devkit-یک-جعبه-ابزار-فارسی-برای-ترمینال-qfspcfot7kqd</link><description>🧰 معرفی persian-devkit: یک جعبه‌ابزار فارسی برای ترمینالاگه اهل ترمینال هستی و پایتون‌کار، این ابزار رو از دست نده.چرا جالبه؟▪️ تبدیل تاریخ شمسی/میلادی/قمری در یک خط▪️ اصلاح خودکار نیم‌فاصله و ی/ک عربی در متن▪️ تبدیل اعداد به حروف فارسی▪️ تولید QR Code از متن فارسی، مستقیم در ترمینال▪️ کوئری JSON بدون یاد گرفتن jq▪️ ۵۶ دستور دیگه...نصب: pip install persian-devkit🔗 PyPI: https://pypi.org/project/persian-devkit/🔗 GitHub: https://github.com/sobhanosmanzadeh1-beep/persian-devkit</description><category>m_20991959</category><author>m_20991959</author><pubDate>Sun, 13 Sep 2026 10:03:55 +0330</pubDate></item><item><title>چطور در ۱۰ روز یک ابزار خط فرمان با ۶۲ دستور ساختم و روPYPI منتشر کردم....</title><link>https://virgool.ir/@m_20991959/چطور-در-۱۰-روز-یک-ابزار-خط-فرمان-با-۶۲-دستور-ساختم-و-روpypi-منتشر-کردم-xqizjzyqyyri</link><description>مقدمه: یک درد قدیمییادم میاد چند ماه پیش، وسط یک پروژهٔ وب بودم و باید یه تاریخ میلادی رو به شمسی تبدیل می‌کردم. مثل هر توسعه‌دهندهٔ دیگه‌ای، سریع رفتم سراغ jdatetime. کار کرد، ولی حس کردم چیزی کمه.چرا باید برای هر کار کوچیک، یه اسکریپت پایتون بنویسم؟تبدیل تاریخ؟ یه اسکریپتاصلاح نیم‌فاصله در متن؟ یه اسکریپتتبدیل عدد به حروف فارسی؟ یه اسکریپتتولید رمز قوی؟ یه اسکریپتاینجا بود که به خودم گفتم: چرا همهٔ این‌ها توی یک ابزار CLI نباشه؟این شروع ماجرای persian-devkit بود — یک جعبه‌ابزار خط فرمان که امروز به نسخهٔ ۲.۰.۰ با ۶۲ دستور رسیده.چرا ابزار CLI؟قبل از هر چیز، بذارید بگم چرا CLI و نه یه کتابخانهٔ پایتون معمولی.۱. سرعت: به‌جای نوشتن ۱۰ خط کد برای تبدیل تاریخ، فقط pdev date to-jalali 2024-03-21 می‌نویسی.۲. جایی که کار می‌کنی: توی ترمینال، همون‌جایی که بقیهٔ کارها رو انجام می‌دی.۳. قابل ترکیب: خروجی هر دستور، ورودی دستور بعدیه:bashcurl -s https://api.github.com/users/torvalds | pdev jq .name -r&#xA;# Linus Torvalds۴. زبان‌مستقل: هر کسی با هر زبانی می‌تونه ازش استفاده کنه.چرا Typer و Rich؟برای ساخت CLI در پایتون چند انتخاب داشتم: argparse (استاندارد ولی خسته‌کننده)، click (محبوب ولی verbose)، typer (مدرن، مبتنی بر type hints).Typer رو انتخاب کردم چون با type hints کار می‌کنه و کد رو تمیز نگه می‌داره:python@app.command(&#34;to-jalali&#34;)&#xA;def to_jalali(&#xA;    value: str = typer.Argument(..., help=&#34;تاریخ میلادی به شکل YYYY-MM-DD.&#34;),&#xA;) -&gt; None:&#xA;    &#34;&#34;&#34;تبدیل تاریخ میلادی به شمسی.&#34;&#34;&#34;&#xA;    g = parse_gregorian(value)&#xA;    j = gregorian_to_jalali(g)&#xA;    console.print(f&#34;[green]{format_jalali(j)}[/green]&#34;)و برای خروجی زیبا، Rich — جدول‌های رنگی، نوار پیشرفت، Syntax highlighting. نتیجه، CLI‌ای است که هم کار می‌کنه، هم زیباست.۱۰ نسخه، ۶۲ دستور، ۵۸۱ تستپروژه رو تدریجی و پله‌پله ساختم. هر نسخه یه حوزهٔ خاص رو پوشش می‌داد:نسخهموضوعدستورات کلیدی1.0.0هستهٔ فارسیdate, text, number, uuid, json1.1.0فارسی پیشرفتهcalendar, transliterate, hijri, sort1.2.0شبکهip, dns, http, ping, port1.3.0متن پیشرفتهcount, frequency, extract, uniq1.4.0سیستمsys (disk, memory, cpu, top)1.5.0امنیتsecurity (JWT, hash, cert)1.6.0دیتابیسsqlite, csv-query1.7.0فارسی پیشرفته ۲fa (hamza, kashida, prefix)1.8.0خودکارسازیauto (batch, watch, cron)1.9.0رسانهpdf, audio2.0.0معماری extensibleshell, config, pluginچند نمونهٔ واقعی از استفاده۱. تبدیل تاریخ برای CV:bash$ pdev date to-jalali 2024-03-21&#xA;1403/01/02۲. پاک‌سازی متن از Word:bash$ echo &#34;می روم به خانه&#34; | pdev text halfspace&#xA;می‌روم به خانه۳. کوئری روی API بدون jq:bash$ curl -s https://api.github.com/repos/torvalds/linux | pdev jq .stargazers_count -r&#xA;187432۴. ساخت QR برای متن فارسی:bash$ pdev qrcode &#34;https://github.com/sobhanosmanzadeh1-beep/persian-devkit&#34;خروجی: یک QR Code که مستقیم در ترمینال نمایش داده می‌شه.۵. شبیه‌سازی داده برای تست:bash$ pdev name profile -c 10 -j &gt; users.jsonفایل JSON با ۱۰ کاربر نمونهٔ فارسی، آمادهٔ استفاده در تست.بزرگ‌ترین چالش: تست روی ویندوزیکی از بزرگ‌ترین چالش‌ها، پشتیبانی از متن فارسی روی ویندوز بود. ویندوز به‌طور پیش‌فرض با کدپیج cp1252 کار می‌کنه، نه UTF-8. نتیجه:cmd&gt; echo می روم | pdev text halfspace&#xA;?? ???بعد از چند ساعت کلنجار رفتن، راه‌حل رو پیدا کردم:pythonif sys.platform == &#34;win32&#34;:&#xA;    for stream in (sys.stdin, sys.stdout, sys.stderr):&#xA;        if hasattr(stream, &#34;reconfigure&#34;):&#xA;            stream.reconfigure(encoding=&#34;utf-8&#34;)و در README برای کاربران ویندوز نوشتم: قبل از استفاده، chcp 65001 بزنن.درس‌های مهمی که یاد گرفتم۱. تست قبل از commit، نه بعدش.هر بار که فکر می‌کردم «کد کار می‌کنه»، یه باگ کوچیک پیدا می‌شد. ۵۸۱ تست، ۸۲٪ پوشش — این آمار تصادفی نیست.۲. انتشار نسخه‌های کوچیک، بهتر از یک نسخهٔ بزرگه.به‌جای اینکه ۶ ماه وقت بذارم، هر ۱-۲ هفته یه نسخه منتشر کردم. کاربران زودتر بازخورد می‌دن.۳. GitHub Actions یک نجات‌دهندهٔ واقعیه.وقتی از ایران می‌خوای در PyPI منتشر کنی، IP بلاک می‌شی. راه‌حل: GitHub Actions از سرور آمریکا آپلود می‌کنه.۴. مستندات فارسی، تمایز اصلیه.اکثر پکیج‌های پایتون مستندات انگلیسی دارن. ولی وقتی کل README فارسی باشه، برای توسعه‌دهندهٔ ایرانی خیلی دلپذیرتره.۵. جامعهٔ اوپن‌سورس فارسی، تشنهٔ ابزاره.در این مدت چند پیام از توسعه‌دهندگان ایرانی گرفتم که می‌گفتن «دقیقاً همین رو لازم داشتم». این انگیزه‌بخش‌ترین بخش کاره.الان کجای کاریم؟نسخهٔ ۲.۰.۰ سه قابلیت بزرگ اضافه کرده:۱. حالت تعاملی (REPL):bash$ pdev shell&#xA;╭─ ✨ pdev shell ─╮&#xA;│ 🧰 persian-devkit v2.0.0 — حالت تعاملی&#xA;│ دستورات داخلی: :help، :exit، :clear، :config، :plugins&#xA;╰──────────────────╯&#xA;pdev&gt; date now&#xA;pdev&gt; number words 1234&#xA;pdev&gt; :exit۲. فایل تنظیمات شخصی:bash$ pdev config set shell.banner false&#xA;$ pdev config get shell.prompt۳. سیستم پلاگین:هر کسی می‌تونه دستور دلخواهش رو اضافه کنه:python# ~/.pdev/plugins/myplugin.py&#xA;import typer&#xA;app = typer.Typer()&#xA;&#xA;@app.command(&#34;hello&#34;)&#xA;def hello():&#xA;    print(&#34;سلام از پلاگین!&#34;)بعدش pdev hello کار می‌کنه.و اما نصب و شروعbashpip install persian-devkitبعدش:bashpdev --help&#xA;pdev date now&#xA;pdev text halfspace &#34;می روم&#34;&#xA;pdev number words 1234&#xA;pdev qrcode &#34;سلام دنیا&#34;&#xA;pdev shellپیوندها🐍 PyPI: pypi.org/project/persian-devkit🐙 GitHub: github.com/sobhanosmanzadeh1-beep/persian-devkit📦 نسخهٔ فعلی: 2.0.0🧪 ۵۸۱ تست، ۸۲٪ پوشش📜 مجوز: MITدر پایاناین پروژه به من یاد داد که ابزار خوب، اگر مفید باشه، دیده می‌شه. جامعهٔ فارسی‌زبان، تشنهٔ ابزارهای بومی‌ست. و ساختن چیز مفید برای دیگران، انگیزه‌بخش‌ترین کار دنیاست.اگر این پروژه به کارت اومد، یه ⭐ توی GitHub بده. اگر باگ یا پیشنهادی داری، issue یا PR بفرست.پ.ن. فصل اول پروژه در نسخهٔ ۲.۰.۰ بسته شد. فصل دوم با قابلیت‌هایی مثل pdev serve (API)، pdev tui (رابط گرافیکی) و pdev watch پیشرفته در راهه.</description><category>m_20991959</category><author>m_20991959</author><pubDate>Sat, 12 Sep 2026 23:16:32 +0330</pubDate></item><item><title>جعبه فرمان فارسی</title><link>https://virgool.ir/@m_20991959/جعبه-فرمان-فارسی-qeg12xrem0nf</link><description>🧰 persian-devkit 2.0.0 منتشر شد!جعبه‌ابزار خط فرمان با ۶۲ دستور برای توسعه‌دهندگان فارسی‌زبان:📅 تاریخ شمسی/میلادی/قمری✍️ پردازش متن فارسی (نیم‌فاصله، همزه، کشیده)🔢 اعداد فارسی + ترتیبی🗂️ JSON / YAML / TOML / CSV / SQLite🌐 شبکه (IP، DNS، HTTP، ping)🔐 امنیت (JWT، PBKDF2، هش)🎨 رنگ، QR Code، تصویر📄 PDF و فایل‌های صوتی👤 داده‌های نمونهٔ فارسی🤖 خودکارسازی (batch، watch، cron)🔌 سیستم پلاگین + فایل configنصب:pip install persian-devkit🔗 PyPI: https://pypi.org/project/persian-devkit/🔗 GitHub: https://github.com/sobhanosmanzadeh1-beep/persian-devkit#Python #Persian #CLI #OpenSource</description><category>m_20991959</category><author>m_20991959</author><pubDate>Sat, 12 Sep 2026 22:45:10 +0330</pubDate></item></channel></rss>