Discuvr قالب‌بندی‌کننده Python

اداری و داده

CSV به Excel CSV را بچسبانید و فوراً آن را به شکل صفحه‌گسترده ببینید، با اعداد، تاریخ‌ها و شناسه‌ها در همان نوعی که Excel باید نگه دارد. فایل .xlsx تمیز را فقط هر وقت خواستید دانلود کنید. امضای PDF یک PDF را در مرورگر امضا کنید - امضا را بکشید، تایپ یا بارگذاری کنید، روی هر صفحه قرار دهید، تاریخ را اضافه کنید و نسخه امضاشده را دانلود کنید. فایل هرگز از دستگاه شما خارج نمی‌شود. حذف اطلاعات اطلاعات را برای همیشه از فایل‌های PDF، Word، Excel، PowerPoint، متنی و تصویری حذف کنید. موارد یافت‌شده و کادرها از خود فایل پاک می‌شوند، نه اینکه پوشانده شوند، و نتیجه پیش از دانلود دوباره بررسی می‌شود. IP من چیست آدرس IP عمومی‌ای را که وب‌سایت‌ها هنگام اتصال می‌بینند ببینید، اینکه اشتراکی (CGNAT) است یا خصوصی، و مرورگرتان دیگر چه چیزی را آشکار می‌کند. مبدل حالت حروف و ابزارهای خط متن را به حروف بزرگ، کوچک، حالت عنوان یا جمله تبدیل کنید، نام‌ها را به camelCase یا snake_case ببرید و خطوط تکراری را حذف یا فهرست را مرتب کنید. مقایسه متن دو نسخه از یک متن را جای‌گذاری کنید تا هر خط افزوده، حذف‌شده و تغییریافته را با کلمات تغییریافته برجسته ببینید.

نوشتن و پیشنهادها

ویرایش لحن بازقالب‌بندی نوشته شما با دستور زبان، ساختار و بیان مناسب - با لحن خودتان. یک جای‌گذاری، یک پاسخ، بدون جلسه چت. مولد پروپوزال فریلنسری مشکل مشتری را توصیف کنید و در چند ثانیه یک پروپوزال فریلنسری با محدوده، قیمت‌گذاری و آماده ارسال دریافت کنید.

حقوقی و انطباق

چت‌بات پرسش و پاسخ قوانین IP درباره قانون مالکیت فکری هند بپرسید - علامت تجاری، اختراع، حق نشر، طرح صنعتی و بیشتر، همراه با نتایج جستجوی وب استفاده‌شده بالای هر پاسخ. مولد پاسخ به FER ثبت اختراع اعتراض‌های گزارش اولین بررسی (FER) را بچسبانید تا پاسخی ساختاریافته پیش‌نویس شود، یا پیش‌نویسی را برای بررسی ریسک مالکیت فکری بارگذاری کنید. ابزار بررسی واجد شرایط بودن برای طرح‌های دولتی یک بار به مجموعه‌ای کوتاه از پرسش‌ها پاسخ دهید. وارد حساب خود شوید تا پاسخ‌هایتان را ذخیره کنیم، تا بتوانید بدون تایپ دوباره، طرح‌های دولت مرکزی که ممکن است واجد شرایط آن‌ها باشید را بررسی کنید.

حریم خصوصی و امنیت

اسکن امنیت وب‌سایت اسکن یک دامنه برای نقاط ضعف امنیتی واقعی و قابل بازتولید. هر یافته شامل مشاهده پشت آن و دستور تأیید آن توسط خودتان است. پاکسازی تصویر ببینید عکس شما دقیقاً چه اطلاعاتی از شما را فاش می‌کند - GPS، شماره سریال دوربین، نام شما - سپس آن را پاک کنید. برش، تغییر اندازه، تار کردن چهره‌ها و تبدیل، همگی بدون ذخیره تصویر در هیچ کجا.

ابزارهای برنامه‌نویسان

فرمت‌کننده JSON زیباسازی، فشرده‌سازی و اعتبارسنجی JSON تنها با یک جای‌گذاری - همراه با خط و ستون دقیق در صورت عدم تجزیه، و شمارش دقیق آنچه در سند وجود دارد. قالب‌بندی‌کننده Python بازقالب‌بندی Python به روش Black، با طول خط و مدیریت نقل‌قول انتخابی شما - و شمارش دقیق تعداد خطوط تغییر یافته. نمایش‌دهنده HTML کد HTML را جای‌گذاری کنید و رندر زنده آن را در یک سندباکس، در عرض تلفن، تبلت یا دسکتاپ ببینید - همراه با زیباسازی، فشرده‌سازی، کنسول برای اسکریپت‌ها و گزارشی از اشکالات ساختاری. ماشین‌حساب زیرشبکه IP نماد CIDR یا یک IP همراه با ماسک شبکه را وارد کنید و بلافاصله آدرس شبکه، آدرس پخش، محدوده میزبان‌های قابل استفاده و تعداد کل آدرس‌ها را دریافت کنید. رمزگذاری / رمزگشایی Base64، Base64URL، رمزگذاری درصدی URL، موجودیت‌های HTML و هگز را هنگام تایپ رمزگذاری یا رمزگشایی کنید، با پشتیبانی کامل از UTF-8. مبدل مهر زمانی Unix مهر زمانی Unix را بر حسب ثانیه، میلی‌ثانیه، میکروثانیه یا نانوثانیه به تاریخ به وقت UTC یا یکی از مناطق زمانی اصلی جهان تبدیل کنید، و تاریخ را به مهر زمانی برگردانید. سازنده نمودار سیستم پیکان هایی مثل User -> API -> Database بنویسید و نمودار معماری یا جریانِ چیده شده بگیرید. برای نمای کلی گروه ها را جمع کنید و برای جریان دقیق مراحل را شماره گذاری کنید.

میز کار هوش مصنوعی

محیط آزمایشی هوش مصنوعی مقایسه همزمان و کنار هم پاسخ‌های چندین ارائه‌دهنده LLM. کلیدهای API خودتان را وارد کنید. محیط آزمایشی عامل آزمایش با عوامل هوش مصنوعی که از ابزارها استفاده می‌کنند - جستجوی وب، ماشین حساب، فراخوانی URL - در میان چندین ارائه‌دهنده.

یادگیری

Study Buddy یک مربی آماده‌سازی برای مصاحبه شغلی در برترین مشاغل فناوری، از اولین روز مطالعه تا پذیرش پیشنهاد: برنامه‌ای شامل DSA، LLD، طراحی سیستم، رفتارشناسی و برنامه‌نویسی با کمک هوش مصنوعی، مصاحبه‌های آزمایشی، بررسی رزومه، ردیاب درخواست‌ها و مقایسه پیشنهادها.

کمک‌های روزمره

تولیدکننده کد QR کدهای QR را از متن، URL، اطلاعات WiFi یا اطلاعات تماس بسازید - به صورت تصویر PNG یا وکتور SVG، با سطح تصحیح خطایی که انتخاب می‌کنید. مبدل واحد تبدیل آنی بین واحدهای طول، وزن، دما، حجم، سرعت، مساحت و انرژی - بیش از ۴۰ نوع واحد با نتایج فوری. تولیدکننده رمز عبور یک رمز عبور تصادفی با تصادفی‌بودن ایمن از نظر رمزنگاری تولید کنید، طول و انواع نویسه‌های آن را تنظیم کنید و قدرت آن را بر حسب بیت آنتروپی ببینید. شمارشگر کلمات و تحلیل‌گر خوانایی کلمات، نویسه‌ها، جمله‌ها و پاراگراف‌ها را می‌شمارد، زمان مطالعه را تخمین می‌زند و خوانایی را امتیاز می‌دهد - با شمارش واقعی بر اساس نویسه برای متن چینی، ژاپنی، کره‌ای و تایلندی. محاسبه‌گر سن و اختلاف تاریخ سن دقیق فردی را بیابید یا اختلاف دقیق بین هر دو تاریخ را بسنجید، به سال، ماه و روز، به علاوه مجموع تعداد روزها و هفته‌ها. محاسبه‌گر فاصله تاریخ روزها، هفته‌ها، ماه‌ها و روزهای کاری بین دو تاریخ را بشمارید، یا به یک تاریخ روز اضافه یا از آن کم کنید. محاسبه‌گر درصد محاسبه X درصد از Y، اینکه یک عدد چند درصد از عدد دیگر است، افزایش یا کاهش درصدی بین دو عدد، یا درصد معکوس - چهار محاسبه رایج در یک ابزار. ماشین حساب SIP ببینید سرمایه گذاری ماهانه با افزایش سالانه، مبلغ اولیه و تورم به کجا می رسد، یا مبلغ ماهانه لازم برای یک هدف را پیدا کنید. محاسبه‌گر BMI شاخص توده بدنی (BMI) خود را از روی قد و وزن، با واحدهای متریک یا امپریال محاسبه کنید، طبقه‌بندی‌شده بر اساس دسته‌های سازمان جهانی بهداشت برای بزرگسالان: کمبود وزن، طبیعی، اضافه‌وزن، چاقی.
ورود شروع کنید
همه ابزارهاابزارهای برنامه‌نویسان

قالب‌بندی‌کننده Python

قالب‌بندی مجدد Python به روش Black - و مشاهده دقیق تعداد خطوط تغییریافته.

کد شما

0 کاراکتر

قالب‌بندی‌شده

 

درباره قالب‌بندی‌کننده Python

این ابزار Black - قالب‌بندگری که بیشتر پروژه‌های Python از پیش بر آن توافق دارند - را روی هر چه جای‌گذاری کنید اجرا می‌کند، با طول خط و نحوه برخورد با علامت نقل‌قول که خودتان انتخاب می‌کنید. اگر فایل تحلیل نشود، می‌گوید در کدام خط، و اگر از قبل قالب‌بندی‌شده باشد، آن را هم می‌گوید، به‌جای وانمود کردن که کاری انجام داده است.

عملکرد

  • قالب‌بندی Black در 79، 88، 100 یا 120 ستون.
  • حالت "فقط بررسی": بدون تغییر فایل، بفهمید که آیا تغییر می‌کرد یا نه.
  • سبک علامت نقل‌قول خودتان را حفظ کنید، یا بگذارید Black آن را یکسان‌سازی کند.
  • کامای پایانی جادویی که یک مجموعه را باز نگه می‌دارد را رعایت یا نادیده بگیرید.
  • وقتی نحو به نسخه حساس است، نسخه‌ای خاص از Python را هدف بگیرید.
  • خطاهای نحوی خط، ستون و کد اطراف را گزارش می‌دهند.
  • گزارش می‌دهد چند خط افزوده و حذف شده است، به‌علاوه شکل فایل.

نحوه کار

  1. 1 کد، یا یک فایل کامل از آن را جای‌گذاری کنید.
  2. 2 طول خط و هر گزینه‌ای که برایتان مهم است را انتخاب کنید.
  3. 3 روی قالب‌بندی بزنید، سپس نتیجه را کپی یا دانلود کنید.

کد شما هرگز اجرا نمی‌شود

قالب‌بندی Python نیازی به اجرای آن ندارد. کد به یک درخت نحوی تحلیل و از همان درخت، کاملاً در حافظه، بازنویسی می‌شود - هرگز در فایلی نوشته نمی‌شود، هرگز وارد نمی‌شود و هرگز اجرا نمی‌شود. قالب‌بندی که آنچه جای‌گذاری کرده‌اید را اجرا کند، یک پوسته فرمان راه‌دور با یک کادر متنی خواهد بود.

چرا Black، و نه نظری از خودمان

Black تبدیلی است که درخت نحوی انتزاعی (AST) را حفظ می‌کند: کدی که بیرون می‌آید همان برنامه کدی است که وارد شده. این ویژگی تمام دلیل قابل‌اعتماد بودن یک قالب‌بند است، و دلیل این است که هیچ مدل زبانی در هیچ بخشی از این ابزار دخالت ندارد. مدلی که از او خواسته شود کد را مرتب کند، گاهی یک خط را در همان حین بازنویسی می‌کند، و تغییر خاموش در کدی که کار می‌کند، تنها شکستی است که یک قالب‌بند نمی‌تواند بپذیرد.

فقط بررسی

همان سؤالی که CI می‌پرسد: آیا این فایل تغییر می‌کرد؟ حالت بررسی کد اصلی شما را بدون تغییر برمی‌گرداند و می‌گوید آیا Black آن را دوباره قالب‌بندی می‌کرد و در چند خط. این راه سریعی برای فهمیدن این است که چرا یک پایپ‌لاین روی فایلی که نمی‌توانید به‌صورت محلی بازتولید کنید شکست می‌خورد.

کامای انتهایی جادویی و fmt: off، مثال‌های حل‌شده

کاما بعد از آخرین عنصر به Black می‌گوید یک فراخوانی یا مجموعه را با یک عنصر در هر سطر نگه دارد: result = compute(alpha, beta,) در چهار سطر برمی‌گردد و alpha, و beta, هر کدام در سطر جداگانه‌اند. گزینه نادیده گرفتن کامای انتهایی جادویی را تیک بزنید تا همان ورودی، هر جا در طول سطر جا شود، به result = compute(alpha, beta) تبدیل شود. برای محافظت از بلوکی که دستی تراز شده، مثل یک ماتریس، # fmt: off را در سطر بالای آن و # fmt: on را زیر آن بگذارید تا Black همه چیزِ میان آن‌ها را همان‌طور که نوشته‌اید رها کند؛ # fmt: skip در انتهای یک سطر فقط همان سطر را حفظ می‌کند. این‌ها توضیحات خود Black هستند، پس وقتی CI پروژه‌تان Black را اجرا می‌کند هم کار می‌کنند.

سوالات

آیا کد من آپلود یا ذخیره می‌شود؟

به سرور فرستاده می‌شود، در حافظه قالب‌بندی می‌شود و در همان پاسخ برگردانده می‌شود. هیچ‌چیز روی دیسک نوشته، کش یا ثبت نمی‌شود، و رکورد استفاده فقط شمارش‌ها را نگه می‌دارد - اندازه، گزینه‌ها، چند خط تغییر کرده - و هرگز خود کد را نه.

آیا قالب‌بندی چیزی را که کد من انجام می‌دهد تغییر می‌دهد؟

نه. Black چیدمان را تغییر می‌دهد نه رفتار را، اما کاری بیش از جابه‌جا کردن فاصله‌ها می‌کند. پرانتزهای زائد را حذف می‌کند (x = (1) به x = 1 تبدیل می‌شود)، پیشوندها و توان‌های اعداد را با حروف کوچک می‌نویسد (0XABCDEF به 0xABCDEF و 1E5 به 1e5)، وقتی یک فراخوانی را در چند خط می‌شکند ویرگول پایانی اضافه می‌کند، خط‌های خالی پشت سر هم را کم می‌کند و فاصله‌های داخل docstring را حذف می‌کند (""" Doc. """ به """Doc."""). این تغییر آخر متن __doc__ را عوض می‌کند، که فقط وقتی مهم است که کد شما docstringهای خودش را بخواند.

چرا فایل من اصلاً دوباره قالب‌بندی نشد؟

چون از قبل با طول خطی که انتخاب کرده بودید قالب‌بندی شده بود. ابزار می‌گوید "از قبل قالب‌بندی‌شده" به‌جای برگرداندن بی‌صدای یک کپی.

آیا وارد کردنی‌های من را مرتب می‌کند؟

نه. مرتب‌سازی وارد کردنی‌ها کار isort است، نه Black، و این دو به اندازه کافی با هم اختلاف دارند که اگر این‌جا انجام می‌شد شما را شگفت‌زده می‌کرد.

آیا می‌تواند فایلی با خطای نحوی را قالب‌بندی کند؟

هیچ قالب‌بندی نمی‌تواند - فایلی که تحلیل نمی‌شود، ساختاری برای بازنویسی ندارد. خط، ستون و کد اطراف را دریافت می‌کنید تا بتوانید آن را اصلاح و دوباره تلاش کنید.

آیا از PEP 8 پیروی می‌کند؟

Black با یک انحراف شناخته‌شده با PEP 8 سازگار است: طول خط پیش‌فرض آن 88 است، نه 79. اگر به رقم سخت‌گیرانه‌تر نیاز دارید، 79 را در انتخاب‌گر طول خط انتخاب کنید.

چه اندازه فایلی را می‌توانم قالب‌بندی کنم؟

تا 400,000 نویسه در هر اجرا. قالب‌بندی پس از 10 ثانیه متوقف می‌شود، که فقط فایل‌های بسیار بزرگ یا بسیار تکراری به آن می‌رسند، و هر نشانی IP می‌تواند هر 10 دقیقه 30 بار قالب‌بندی کند.

چطور همین قالب‌بندی را در ویرایشگر، pre-commit یا CI بگیرم؟

این صفحه از Black استفاده می‌کند و نسخه‌اش در صفحه‌های عریض در سربرگ بالای صفحه نمایش داده می‌شود. Black تنظیمات پروژه را از pyproject.toml در بخش [tool.black] با نام‌های بلند گزینه‌ها می‌خواند: line-length = 88 برای گزینه "طول خط" که انتخاب کرده‌اید، skip-string-normalization = true اگر "حفظ نقل‌قول‌های من" را تیک زده‌اید، skip-magic-trailing-comma = true برای "نادیده گرفتن کامای انتهایی جادویی" و target-version = ["py311"] برای مقدار ثابت در "هدف". افزونه‌های ویرایشگر و هوک pre-commit همین فایل را می‌خوانند. برای قالب‌بندی black . و در CI دستور black --check --diff . را اجرا کنید: چیزی را تغییر نمی‌دهد و اگر فایلی دوباره قالب‌بندی شود با کد 1 خارج می‌شود. همان نسخه Black این صفحه را ثابت کنید، چون نخستین انتشار هر سال میلادی ممکن است سبک پایدار را تغییر دهد.

آیا خروجی با قالب‌بند Ruff (ruff format) یکسان است؟

تقریباً همیشه، اما نه بایت به بایت. قالب‌بند Ruff طوری طراحی شده که مستقیماً جایگزین Black شود و مستندات Ruff می‌گوید در پروژه‌های بزرگی که با Black قالب‌بندی شده‌اند، مانند Django و Zulip، بیش از 99.9% خطوط یکسان درمی‌آیند. در کدی که هرگز از Black رد نشده، به‌ویژه در توضیحات پایان خط، تفاوت بیشتری دارد و مستنداتش تفاوت‌های عمدی را فهرست می‌کند. طول خط پیش‌فرض آن هم 88 است و با line-length در [tool.ruff] تنظیم می‌شود؛ quote-style = "preserve" در [tool.ruff.format] معادل "حفظ نقل‌قول‌های من" و skip-magic-trailing-comma = true معادل "نادیده گرفتن کامای انتهایی جادویی" است. اگر CI شما ruff format --check را اجرا می‌کند، فایل را با Ruff آزمایش کنید، نه با این صفحه.