منصوبے کے بارے میں

python-patterns Python میں نافذ کردہ ڈیزائن پیٹرنز اور idioms کا ایک حوالہ مجموعہ ہے۔ یہ کوئی لائبریری نہیں بلکہ ایک سیکھنے کا وسیلہ ہے: ہر پیٹرن ایک زمرہ فولڈر کے تحت اپنے چھوٹے ماڈیول میں موجود ہے، اور README میں مختصر وضاحتوں کے ساتھ ان کی فہرست دی گئی ہے۔ مواد کئی گروہوں میں منظم ہے۔ تخلیقی پیٹرنز میں abstract_factory، borg، builder، factory، lazy_evaluation، pool اور prototype شامل ہیں۔ ساختی پیٹرنز میں 3-tier، adapter، bridge، composite، decorator، facade، flyweight، front_controller، mvc اور proxy شامل ہیں۔ رویاتی پیٹرنز میں chain_of_responsibility، catalog، chaining_method، command، interpreter، iterator (متبادل نفاذ کے ساتھ)، mediator، memento، observer، publish_subscribe، registry، servant، specification، state، strategy، template اور visitor شامل ہیں۔ اس کے علاوہ جانچ پڑتال کے لیے ڈیزائن کی مثالیں (dependency_injection کے تین مختلف نفاذات)، ایک بنیادی delegation_pattern، اور دیگر پیٹرنز جیسے blackboard، graph_search اور ایک درجہ بندی والی اسٹیٹ مشین (hsm) بھی موجود ہیں۔ README واضح طور پر پیٹرنز کو تجارتی سودوں کے طور پر پیش کرتا ہے، اور قارئین کو اس بات پر توجہ دینے کی ترغیب دیتا ہے کہ پیٹرن کیوں منتخب کیا گیا ہے، نہ کہ صرف اسے کیسے کوڈ کیا گیا ہے۔ یہ Python میں حوصلہ شکنی کرنے والے anti-patterns کی بھی دستاویز کرتا ہے، جن میں singleton (ماڈیولز پہلے سے ہی singleton ہیں)، god object، اور وراثت کا زیادہ استعمال شامل ہیں، اور ان کے متبادل تجویز کرتا ہے جیسے ماڈیول سطح کے متغیرات، dependency injection، composition اور delegation۔ ہر مثال ماڈیول سے توقع کی جاتی ہے کہ اس میں ماڈیول سطح کی docstring ہو جس میں حوالہ جات ہوں اور جہاں ممکن ہو، "Examples in Python ecosystem" سیکشن ہو جو حقیقی دنیا کے استعمال کو ظاہر کرے۔ یہ پروجیکٹ Python 2 کے مطابق کچھ پیٹرنز کے ورژن کے لیے legacy ٹیگ رکھتا ہے۔ شراکت کے رہنما خطوط docstrings، README اپ ڈیٹس، اور فارمیٹنگ، linting، ٹائپ چیکنگ اور ٹیسٹ کے لیے ./lint.sh چلانے کا احاطہ کرتے ہیں؛ ترقیاتی انحصار Pipfile.lock میں پن کیے گئے ہیں اور make lock کے ذریعے دوبارہ تیار کیے جاتے ہیں۔ مسئلہ کی چھانٹی CodeTriage کے ذریعے معاون ہے، اور README Python میں ڈیزائن پیٹرنز کے بارے میں کئی کانفرنس ٹاکس اور ویڈیوز کے لنکس فراہم کرتا ہے۔