পাইলেন্টের ফাইল-স্তরে আমি কীভাবে "অনুপস্থিত ডক্টস্ট্রিং" সতর্কতাগুলি অক্ষম করব?


99

পাইলিন্ট ত্রুটি ছুঁড়েছে যে কয়েকটি ফাইলের ডকাস্ট্রিংগুলি অনুপস্থিত। আমি চেষ্টা করি এবং প্রতিটি ক্লাস, পদ্ধতি এবং ফাংশনে ডকাস্ট্রিংগুলি যুক্ত করি তবে মনে হয় পাইলিন্ট এটিও পরীক্ষা করে দেখেছিল যে ফাইলগুলির শুরুতে একটি ডকাস্ট্রিং করা উচিত। আমি কি এটি কোনওভাবে অক্ষম করতে পারি? আমি কোনও বিভাগ, ফাংশন বা পদ্ধতির মধ্যে একটি ডক্টস্ট্রিং অনুপস্থিত সম্পর্কে অবহিত হতে চাই তবে কোনও ফাইলের জন্য ডক্ট্রসিং থাকা বাধ্যতামূলক হওয়া উচিত নয়।

(মালিকানাধীন উত্স ফাইলের শুরুতে কি আইনসম্মত শব্দটির প্রায়শই পাওয়া যায়? কোনও উদাহরণ? আমি জানি না এ জাতীয় তুচ্ছ প্রশ্ন আলাদাভাবে পোস্ট করা ঠিক কি না।)

উত্তর:


111

পাইথন মডিউলের জন্য একটি ডক্ট্রিং থাকা খুব ভাল, মডিউলটি কী করে, কী সরবরাহ করে, ক্লাসগুলি কীভাবে ব্যবহার করতে হয় তার উদাহরণগুলি ব্যাখ্যা করে। এই মন্তব্য থেকে আলাদা যে আপনি প্রায়ই একটি ফাইল কপিরাইট এবং লাইসেন্স তথ্য, যা আইএমও docstring নেই যেতে হবে (কিছু এমনকি তর্ক যে তারা পুরাপুরি অন্তর্হিত হবে, যেমন দেখতে দান শুরুতে দেখতে হয়। HTTP: // hackerboss। com / টেম্পলেটগুলি থেকে মুক্তি পান )

পাইলিন্ট ২.৪ এবং এর উপরে আপনি missing-docstringনিম্নলিখিত তিনটি সাব-মেসেজ ব্যবহার করে বিভিন্নের মধ্যে পার্থক্য করতে পারবেন :

  • C0114( missing-module-docstring)
  • C0115( missing-class-docstring)
  • C0116( missing-function-docstring)

সুতরাং নিম্নলিখিত .pylintrcফাইলটি কাজ করা উচিত:

[MASTER]
disable=
    C0114, # missing-module-docstring

পাইলিন্টের পূর্ববর্তী সংস্করণগুলির জন্য, ডকাস্ট্রিংগুলি ঘটতে পারে এমন বিভিন্ন জায়গার জন্য এটির আলাদা কোড নেই, তাই আপনি যা করতে পারেন তা C0111 অক্ষম করুন। সমস্যাটি হ'ল যদি আপনি মডিউল স্কোপটিতে এটি অক্ষম করেন তবে এটি মডিউলের যে কোনও জায়গায় অক্ষম হয়ে যাবে (যেমন আপনি অনুপস্থিত ফাংশন / শ্রেণি / পদ্ধতি ডক্ট্রিংয়ের জন্য কোনও সি লাইন পাবেন না Which যা তাত্ক্ষণিকভাবে সুন্দর নয়)।

সুতরাং আমি যা পরামর্শ দিচ্ছি তা সেই ছোট অনুপস্থিত ডক্ট্রিং যুক্ত করছে যা কিছু বলছে:

"""
high level support for doing this and that.
"""

খুব শীঘ্রই, আপনি সেখানে রাখার জন্য দরকারী জিনিসগুলি সন্ধান করবেন, যেমন মডিউলটির বিভিন্ন শ্রেণি / ক্রিয়াকলাপগুলি কীভাবে ব্যবহার করা যায় যা ক্লাস / কার্যাবলির পৃথক ডকাস্ট্রিংগুলির সাথে আবশ্যক নয় (যেমন এই কীভাবে কথোপকথন, বা দ্রুত শুরু গাইডের মতো কিছু)।


9
উত্স কোড থেকে অদৃশ্য হয়ে আইনি (এবং অন্যান্য) বয়লারপ্লেটের জন্য +1। একটি গাড়ির প্রতিটি উপাদান আইনী বিজ্ঞপ্তি সংযুক্ত নেই। আপনার প্রকল্পের আইনী পাঠ্য সহ এটি কোনও ফাইল তৈরি করুন। প্রত্যেকটি ফাইলে এর অনুলিপি রাখবেন না।
জনাথন হার্টলি

22
-১ শুরু করে এমন ডক্টরিস্টিংয়ের জন্য "এটি মডিউল ফুবার" " এই মডিউলটি কী তা এটি ইতিমধ্যে স্ব-স্পষ্ট। এটি পুনরুদ্ধার করা অপ্রয়োজনীয় এবং মডিউলটির কোনও নাম পরিবর্তন হলে পুরানো হওয়ার প্রবণতা। কেবল "এই এবং এটির জন্য উচ্চ স্তরের সমর্থন সরবরাহ করে" অংশটি অন্তর্ভুক্ত করুন।
জোনাথন হার্টলি

@ জোনাথন হার্টলি: একমত আমি সেই অনুযায়ী উত্তরের শেষ অংশটি আপডেট করেছি।
গুর্নী অ্যালেক্স

16
হতাশাজনক উত্তর। বিশেষত জ্যাঙ্গো প্রকল্পগুলির জন্য। form.py "এগুলি মডেল ... জাস্ট কিডিং! সেগুলি ফর্ম Because কারণ আপনি জানেন, ফাইলটির নাম ফর্ম.পাই।
সেরিন

12
$ cat my_module/test/__init__.py "Hey, PyLint? SHUT UP"
ক্লেক 6'15

66

দেরি হয়ে গেছে, তবুও আমি এটি দরকারী বলে মনে করেছি তাই ভাগ করে নেওয়া। এটি এখানে পাওয়া গেছে

সতর্কতা অক্ষম করার জন্য আপনি পাইলিন্টের জন্য "- কেবলমাত্র" পতাকা যুক্ত করতে পারেন।

এটি করতে, সেটিংসে যান। নিম্নলিখিত লাইনটি সম্পাদনা করুন:

"python.linting.pylintArgs": []

যেমন

"python.linting.pylintArgs": ["--errors-only"]

এবং আপনি যেতে ভাল!


32
এটি দরকারী, যদিও "python.linting.pylintArgs": ["--disable=C0111"],সম্ভবত এটি ডাস্ট্রিংয়ের সতর্কতাগুলিকে শান্ত করেছে। তবে সেটিংটি কেবলমাত্র একটি মডিউল স্তরে এই সতর্কতাগুলিকে কীভাবে অক্ষম করবেন সে বিষয়ে ওপি-র প্রশ্নকে উদ্দেশ্য করে setting
অনুসরণ করুন

এই ভাল optiong যেহেতু আপনি শুধুমাত্র অনুপস্থিত বর্গ মত ত্রুটি যত্নশীল ... পরিবর্তে একটি নথি স্ট্রিং সতর্কবার্তা
Zerontelli

আমি দুঃখ পেয়েছি যখন আমি এমন একটি প্রকল্প দেখি যা এটিকে অবলম্বন করে। পাইলট কোড পরিষ্কার রাখার জন্য এমন একটি ভাল সরঞ্জাম। এটি শুধু কিছু প্রেম প্রয়োজন।
এরিক অ্যারোনস্টি

9

আমি মনে করি এই বৈশিষ্ট্যটি অক্ষম না করে ফিক্সটি আপেক্ষিক সহজ।

def kos_root():
    """Return the pathname of the KOS root directory."""
    global _kos_root
    if _kos_root: return _kos_root

আপনাকে যা করতে হবে তা হ'ল প্রতিটি ফাংশনে ট্রিপল ডাবল কোটস স্ট্রিং যুক্ত করুন।


ধন্যবাদ আমি সবেমাত্র পেয়েছি যে এমনকি একক উদ্ধৃতি কাজ করে
vikas027

এটি এখনও বিরক্তিকর উদাহরণস্বরূপ আপনি যদি জ্যাঙ্গো প্রকল্পে কাজ করেন তবে এটি একগুচ্ছ মডিউল ফাইল তৈরি করবে এবং আপনাকে এটির প্রত্যেকটির মধ্যে যেতে হবে er "- ত্রুটিযুক্ত সতর্কতার চেয়ে কেবল ত্রুটি বার্তা প্রদর্শন করা ভাল" " কেবলমাত্র "পাইলট ব্যবহারকারী সেটিংসে
Zerontelli

8

আমি একটি উত্তর খুঁজতে গিয়েছিলাম কারণ @ সিসারিন যেমন বলেছিলেন, জ্যাঙ্গো প্রকল্পগুলিতে একটি নতুন অ্যাপ্লিকেশন তৈরি করার সময় জাঙ্গো স্বয়ংক্রিয়ভাবে উত্পন্ন হওয়া প্রতিটি ফাইলের সাথে মডিউল ডকস্ট্রিং যুক্ত করা জটিল এবং অপ্রয়োজনীয়।

সুতরাং, পাইলট আপনাকে ডকস্ট্রিংয়ের ধরণগুলির মধ্যে কোনও পার্থক্য নির্দিষ্ট করতে দেয় না, এই কাজটির জন্য কাজ হিসাবে আপনি এটি করতে পারেন:

pylint */*.py --msg-template='{path}: {C}:{line:3d},{column:2d}: {msg}' | grep docstring | grep -v module

আপনাকে ফাইল-টেমপ্লেট আপডেট করতে হবে যাতে আপনি গ্রেপ করার সময় ফাইলটির নাম জানতে পারবেন। এটি মডিউলগুলি বাদ দিয়ে অন্য সমস্ত অনুপস্থিত-ডক্ট্রাস্টিং প্রকারগুলি প্রদান করে।

তারপরে আপনি এই সমস্ত ত্রুটিগুলি ঠিক করতে পারেন এবং তারপরে কেবল চালান:

pylint */*.py --disable=missing-docstring

7

নং পাইলেন্ট বর্তমানে আপনাকে ডক স্ট্রিং সতর্কতার মধ্যে বৈষম্য রাখতে দেয় না।

তবে এই সতর্কতাটি উপেক্ষা করার জন্য ডক-স্ট্রিং এক্সটেনশনের পাশাপাশি সমস্ত অজগর কোড যাচাইয়ের জন্য আপনি flake8 ব্যবহার করতে পারেন।

পিপ দিয়ে ডক-স্ট্রিং এক্সটেনশনটি ইনস্টল করুন (অভ্যন্তরীণভাবে এটি পাইডোকস্টাইল ব্যবহার করে )।

pip install flake8_docstrings

তারপরে আপনি কেবল --ignore D100স্যুইচটি ব্যবহার করতে পারেন। উদাহরণ স্বরূপflake8 file.py --ignore D100


7

আপনি এই সতর্কতাগুলি অক্ষম করতে চান এমন কোনও ফাইলের শুরুতে কেবল নীচের লাইনগুলি রাখুন।

# pylint: disable=missing-module-docstring
# pylint: disable=missing-class-docstring
# pylint: disable=missing-function-docstring

4
আপনি যদি কেবলমাত্র অক্ষম করতে চান তবে সমস্ত কিছু অক্ষম করতে চান missing-docstring(২.৪.০ এর পূর্বে সংস্করণে কাজ করে)।
পিয়েরে.সাসৌলাস

6

পাইলিন্ট ২.৪ এবং এর উপরে আপনি missing-docstringনিম্নলিখিত তিনটি সাব-মেসেজ ব্যবহার করে বিভিন্নের মধ্যে পার্থক্য করতে পারবেন :

  • C0114( missing-module-docstring)
  • C0115( missing-class-docstring)
  • C0116( missing-function-docstring)

সুতরাং নিম্নলিখিত .pylintrcফাইলটি কাজ করা উচিত:

[MASTER]
disable=
    C0114, # missing-module-docstring

যা আমার মানসিক স্বাস্থ্যকে বাঁচিয়েছিল
শেগনা নোকভাভা

5

"সি: \ ব্যবহারকারীগণ \ আপনার ব্যবহারকারী \ অ্যাপডেটা \ রোমিং \ কোড \ ব্যবহারকারী \ সেটিংস.জসন" সম্পাদনা করুন এবং নীচের python.linting.pylintArgsচিত্রের মতো এই লাইনগুলি যুক্ত করুন :

{
    "team.showWelcomeMessage": false,
    "python.dataScience.sendSelectionToInteractiveWindow": true,
    "git.enableSmartCommit": true,
    "powershell.codeFormatting.useCorrectCasing": true,
    "files.autoSave": "onWindowChange",
    "python.linting.pylintArgs": [
        "--load-plugins=pylint_django",
        "--errors-only"
    ],
}

1

(1) সিটিআরএল + শিফট + পি (২) তারপরে টাইপ করুন এবং> পছন্দসমূহ ক্লিক করুন: ভাষা নির্দিষ্ট সেটিংস কনফিগার করুন (3) এবং তারপরে কোডটি অতীতের পরে পাইথন টাইপ করুন

{
"python.linting.pylintArgs": [
    "--load-plugins=pylint_django","--errors-only"
],

}

1

আমার ক্ষেত্রে, pylint 2.6.0 সঙ্গে, অনুপস্থিত docstring বার্তা অদৃশ্য হয়ে যাবে না, এমনকি স্পষ্টভাবে পর নিষ্ক্রিয় missing-module-docstring, missing-class-docstringএবং missing-function-docstringআমার মধ্যে .pylintrcফাইল। অবশেষে, নিম্নলিখিত কনফিগারেশনটি আমার পক্ষে কাজ করেছে:

[MESSAGES CONTROL]

disable=missing-docstring,empty-docstring

স্পষ্টতই, পাইলট ২..0.০ এখনও উভয় চেক অক্ষম না করা হলে ডকাস্ট্রিংগুলিকে বৈধতা দেয়।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.