Discuvr Python ফরম্যাটার

অফিস ও ডেটা

CSV থেকে Excel CSV পেস্ট করুন এবং সঙ্গে সঙ্গে স্প্রেডশিট হিসেবে দেখুন, যেখানে সংখ্যা, তারিখ ও আইডি Excel যেভাবে রাখা উচিত সেই ধরনে থাকে। পরিষ্কার .xlsx কেবল তখনই ডাউনলোড করুন যখন চান। PDF স্বাক্ষর করুন আপনার ব্রাউজারে একটি PDF স্বাক্ষর করুন - স্বাক্ষর আঁকুন, টাইপ করুন বা আপলোড করুন, যেকোনো পৃষ্ঠায় বসান, তারিখ যোগ করুন এবং স্বাক্ষরিত কপি ডাউনলোড করুন। ফাইল কখনও আপনার ডিভাইস ছাড়ে না। রিড্যাক্ট PDF, Word, Excel, PowerPoint, টেক্সট ও ছবির ফাইল স্থায়ীভাবে রিড্যাক্ট করুন। মিল ও বাক্স ফাইল থেকেই মুছে যায়, শুধু ঢাকা পড়ে না, এবং ডাউনলোডের আগে ফলাফল আবার যাচাই হয়। আমার IP কী সংযুক্ত হলে ওয়েবসাইট যে পাবলিক IP ঠিকানা দেখে তা দেখুন, এটি শেয়ার করা (CGNAT) নাকি প্রাইভেট, আর আপনার ব্রাউজার আর কী প্রকাশ করে। কেস কনভার্টার ও লাইন টুল লেখাকে UPPER, lower, Title বা Sentence কেসে বদলান, নামকে camelCase বা snake_case করুন, এবং ডুপ্লিকেট লাইন সরান বা তালিকা সাজান। লেখা তুলনা একটি লেখার দুটি সংস্করণ পেস্ট করুন এবং প্রতিটি যোগ, বাদ ও পরিবর্তিত লাইন দেখুন, পরিবর্তিত শব্দগুলো হাইলাইটসহ।

লেখা ও প্রস্তাব

টোন পরিমার্জন সঠিক ব্যাকরণ, গঠন এবং স্পষ্ট প্রকাশ সহ আপনি যা লিখেছেন তা রিফর্ম্যাট করুন - আপনার নিজস্ব ভঙ্গিতে। এক পেস্ট, এক উত্তর, কোনো চ্যাট সেশন নেই। ফ্রিল্যান্স প্রপোজাল জেনারেটর ক্লায়েন্টের সমস্যা বর্ণনা করুন এবং কয়েক সেকেন্ডের মধ্যে একটি নির্ধারিত পরিধি, মূল্যযুক্ত, পাঠানোর জন্য প্রস্তুত ফ্রিল্যান্স প্রস্তাবনা পান।

আইন ও কমপ্লায়েন্স

IP ল Q&A চ্যাটবট ভারতীয় IP আইন নিয়ে প্রশ্ন করুন - ট্রেডমার্ক, পেটেন্ট, কপিরাইট, ডিজাইন ও আরও অনেক কিছু, প্রতিটি উত্তরের ওপরে ব্যবহৃত ওয়েব সার্চ ফলাফলসহ। পেটেন্ট FER রিপ্লাই জেনারেটর প্রথম পরীক্ষা প্রতিবেদনের (FER) আপত্তিগুলো পেস্ট করে কাঠামোবদ্ধ জবাবের খসড়া তৈরি করুন, বা আইপি ঝুঁকি পর্যালোচনার জন্য একটি খসড়া আপলোড করুন। সরকারি প্রকল্প যোগ্যতা অনুসন্ধানকারী একবার কিছু ছোট প্রশ্নের উত্তর দিন। সাইন ইন করুন এবং আমরা আপনার উত্তর সংরক্ষণ করব, যাতে আপনি বারবার টাইপ না করেই যাচাই করতে পারেন কোন কেন্দ্রীয় সরকারি প্রকল্পের জন্য আপনি যোগ্য হতে পারেন।

গোপনীয়তা ও নিরাপত্তা

ওয়েবসাইট সিকিউরিটি স্ক্যান প্রকৃত, পুনরায় তৈরি করা যায় এমন নিরাপত্তা দুর্বলতার জন্য একটি ডোমেইন স্ক্যান করুন। প্রতিটি অনুসন্ধানের পেছনে পর্যবেক্ষণ এবং এটি নিজে যাচাই করার কমান্ড রয়েছে। Image Scrub আপনার ছবি আপনার সম্পর্কে ঠিক কী প্রকাশ করে তা দেখুন - GPS, ক্যামেরার সিরিয়াল, আপনার নাম - তারপর তা সরিয়ে ফেলুন। ক্রপ করুন, সাইজ পরিবর্তন করুন, মুখ ব্লার করুন এবং কনভার্ট করুন, ছবিটি কোথাও সংরক্ষণ না করেই।

ডেভেলপার টুল

JSON ফরম্যাটার এক পেস্টেই JSON সুন্দর করুন, ছোট (minify) করুন এবং যাচাই করুন - এটি পার্স না হলে সঠিক লাইন ও কলাম সহ, এবং নথিতে আসলে কী আছে তার গণনাসহ। Python ফরম্যাটার আপনার পছন্দের লাইন দৈর্ঘ্য এবং কোট হ্যান্ডলিং সহ Black যে উপায়ে করে সেভাবে Python রিফর্ম্যাট করুন - এবং ঠিক কতটি লাইন পরিবর্তিত হয়েছে তার গণনাসহ। HTML Viewer HTML পেস্ট করুন এবং ফোন, ট্যাবলেট বা ডেস্কটপের উইডথে সেন্ডবক্সে লাইভ রেন্ডার হতে দেখুন - বিউটিফাই, মিনিফাই, স্ক্রিপ্টের জন্য কনসোল এবং মার্কআপে কী সমস্যা আছে তার রিপোর্ট সহ। IP সাবনেট ক্যালকুলেটর CIDR নোটেশন বা নেটমাস্কসহ একটি IP লিখুন এবং তাৎক্ষণিকভাবে নেটওয়ার্ক ঠিকানা, ব্রডকাস্ট ঠিকানা, ব্যবহারযোগ্য হোস্ট রেঞ্জ এবং মোট ঠিকানার সংখ্যা পান। এনকোড / ডিকোড টাইপ করার সঙ্গে সঙ্গে Base64, Base64URL, URL পারসেন্ট-এনকোডিং, HTML এন্টিটি ও হেক্স এনকোড বা ডিকোড করুন, সম্পূর্ণ UTF-8 সমর্থনসহ। Unix টাইমস্ট্যাম্প কনভার্টার সেকেন্ড, মিলিসেকেন্ড, মাইক্রোসেকেন্ড বা ন্যানোসেকেন্ডের Unix epoch টাইমস্ট্যাম্পকে UTC বা বিশ্বের প্রধান কোনো টাইম জোনের তারিখে রূপান্তর করুন, এবং তারিখকে আবার টাইমস্ট্যাম্পে। সিস্টেম ডায়াগ্রাম মেকার User -> API -> Database এর মতো তীর লিখুন, সাজানো আর্কিটেকচার বা ফ্লো ডায়াগ্রাম পান। বড় ছবির জন্য গ্রুপ ভাঁজ করুন, বিস্তারিত ফ্লোর জন্য ধাপে নম্বর দিন।

এআই ওয়ার্কবেঞ্চ

AI Playground একাধিক LLM প্রোভাইডারের উত্তর রিয়েল টাইমে পাশাপাশি তুলনা করুন। আপনার নিজের API কী নিয়ে আসুন। এজেন্ট প্লেগ্রাউন্ড বিভিন্ন প্রোভাইডার জুড়ে সরঞ্জাম ব্যবহারকারী AI এজেন্টদের সাথে পরীক্ষা-নিরীক্ষা করুন - ওয়েব সার্চ, ক্যালকুলেটর, URL ফেচিং ইত্যাদি।

শেখা

Study Buddy শীর্ষস্থানীয় টেক চাকরির জন্য একজন ইন্টারভিউ-প্রস্তুতি কোচ, পড়াশোনার প্রথম দিন থেকে অফার গ্রহণ করা পর্যন্ত: DSA, LLD, সিস্টেম ডিজাইন, বিহেভিওরাল এবং AI-সহায়ক কোডিং, মক ইন্টারভিউ, জীবনবৃত্তান্ত পর্যালোচনা, আবেদন ট্র্যাকার এবং অফার তুলনার জন্য একটি পরিকল্পনা।

দৈনন্দিন সহায়ক

QR কোড জেনারেটর টেক্সট, URL, WiFi ক্রিডেনশিয়াল বা যোগাযোগের তথ্য থেকে QR কোড তৈরি করুন - PNG ছবি বা SVG ভেক্টর হিসেবে, আপনার বেছে নেওয়া ত্রুটি সংশোধন স্তরে। একক রূপান্তরকারী দৈর্ঘ্য, ওজন, তাপমাত্রা, আয়তন, গতি, ক্ষেত্রফল এবং শক্তি ইউনিটের মধ্যে তাৎক্ষণিকভাবে রূপান্তর করুন - তাৎক্ষণিক ফলাফল সহ ৪০+ এর বেশি ইউনিট টাইপ। পাসওয়ার্ড জেনারেটর ক্রিপ্টোগ্রাফিকভাবে নিরাপদ র‍ান্ডমনেস দিয়ে একটি র‍ান্ডম পাসওয়ার্ড তৈরি করুন, এর দৈর্ঘ্য ও অক্ষরের ধরন সামঞ্জস্য করুন, এবং বিট এনট্রপিতে এর শক্তি দেখুন। ওয়ার্ড কাউন্টার ও পঠনযোগ্যতা বিশ্লেষক শব্দ, অক্ষর, বাক্য এবং অনুচ্ছেদ গণনা করে, পড়ার সময় অনুমান করে, এবং পঠনযোগ্যতার স্কোর দেয় - চীনা, জাপানি, কোরিয়ান এবং থাই লেখার জন্য প্রকৃত অক্ষর-ভিত্তিক গণনাসহ। বয়স / তারিখ পার্থক্য ক্যালকুলেটর কারও সঠিক বয়স বের করুন, অথবা যেকোনো দুটি তারিখের মধ্যে সঠিক পার্থক্য, বছর, মাস ও দিনে, পাশাপাশি মোট দিন ও সপ্তাহের সংখ্যা। তারিখের পার্থক্য ক্যালকুলেটর দুটি তারিখের মধ্যে দিন, সপ্তাহ, মাস ও কর্মদিবস গুনুন, অথবা কোনো তারিখে দিন যোগ বা বিয়োগ করুন। শতকরা ক্যালকুলেটর Y এর X% বের করুন, একটি সংখ্যা অন্য সংখ্যার কত শতাংশ জানুন, দুটি সংখ্যার মধ্যে শতকরা বৃদ্ধি বা হ্রাস, বা বিপরীত শতকরা হিসাব করুন - একটি টুলে চারটি সাধারণ গণনা। SIP ক্যালকুলেটর বার্ষিক বৃদ্ধি, এককালীন টাকা ও মূল্যস্ফীতিসহ মাসিক বিনিয়োগ কত হয় দেখুন, অথবা লক্ষ্যের জন্য দরকারি মাসিক অঙ্ক বের করুন। বিএমআই ক্যালকুলেটর উচ্চতা ও ওজন থেকে আপনার বডি মাস ইনডেক্স (বিএমআই) নির্ণয় করুন, মেট্রিক বা ইম্পেরিয়াল এককে, WHO-এর প্রাপ্তবয়স্ক বিভাগ অনুযায়ী শ্রেণীবদ্ধ: কম ওজন, স্বাভাবিক, অতিরিক্ত ওজন, স্থূলতা।
সাইন ইন করুন শুরু করুন
সব টুলডেভেলপার টুল

Python ফরম্যাটার

Black যেভাবে করে সেভাবে Python রিফরম্যাট করুন - এবং দেখুন ঠিক কতগুলি লাইন পরিবর্তিত হয়েছে।

আপনার কোড

0টি অক্ষর

ফরম্যাট করা

 

সম্পর্কে Python ফরম্যাটার

এটি Black চালায় - এমন একটি ফরম্যাটার যার ওপর অধিকাংশ Python প্রজেক্ট আগে থেকেই একমত - আপনি যা পেস্ট করেন তার ওপর, আপনার বেছে নেওয়া লাইনের দৈর্ঘ্য এবং উদ্ধৃতি হ্যান্ডলিং সহ। ফাইলটি পার্স না হলে এটি বলে দেয় কোন লাইনে, এবং এটি যদি আগে থেকেই ফরম্যাট করা থাকে তবে কিছু করার ভান না করে সেটিও বলে দেয়।

এটি কী করে

  • 79, 88, 100 বা 120 কলামে Black ফরম্যাটিং।
  • "শুধু যাচাই করুন" মোড: পরিবর্তন না করেই জানুন কোনো ফাইল পরিবর্তিত হবে কিনা।
  • আপনার নিজের উদ্ধৃতি শৈলী ধরে রাখুন, অথবা 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 সামঞ্জস্যপূর্ণ: এর ডিফল্ট লাইন দৈর্ঘ্য 79-এর পরিবর্তে 88। আপনার যদি কঠোর সংখ্যাটি প্রয়োজন হয় তবে লাইন দৈর্ঘ্য নির্বাচকে 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-এর ডকুমেন্টেশন বলে Django ও Zulip-এর মতো Black-এ ফরম্যাট করা বড় প্রজেক্টে 99.9%-এর বেশি লাইন একই রকম আসে। যে কোড কখনো Black-এর মধ্য দিয়ে যায়নি, তাতে, বিশেষ করে লাইনের শেষের মন্তব্যে, পার্থক্য বেশি হয়, আর এর ডকুমেন্টেশন ইচ্ছাকৃত পার্থক্যগুলোর তালিকা দেয়। এর ডিফল্ট লাইন দৈর্ঘ্যও 88, যা [tool.ruff]-এ line-length দিয়ে ঠিক করা যায়; [tool.ruff.format]-এ quote-style = "preserve" হলো "আমার উদ্ধৃতি চিহ্নগুলি রেখে দিন"-এর সমান আর skip-magic-trailing-comma = true হলো "ম্যাজিক ট্রেইলিং কমা উপেক্ষা করুন"-এর সমান। আপনার CI যদি ruff format --check চালায়, তবে ফাইলটি এই পেজে নয়, Ruff দিয়ে পরীক্ষা করুন।