Tag: contextlib

9 รายการ

Blog

งูต้นฉบับกำลังส่งพวงกุญแจ cleanup จากตะขอชั่วคราวไปยังกล่องผู้รับผิดชอบใบใหม่
pythoncontextlibresources

Python ExitStack.pop_all: โอนสิทธิ์ cleanup เมื่อทุกขั้นเตรียมสำเร็จ

ใช้ ExitStack.pop_all ทำ all-or-nothing resource setup พร้อม unittest ที่ตรวจ cleanup ก่อนและหลังโอน ownership

พี่โชว์
งูต้นฉบับกำลังคลุมกรอบงาน async ด้วยผ้าสีครีมที่ใช้ได้ทั้งรอบกล่องและรอบสายพาน
pythoncontextlibasyncio

Python AsyncContextDecorator: ใช้ lifecycle เดียวกันทั้ง async with และ decorator

สร้างขอบเขต async ที่นำกลับใช้ได้สองรูปแบบ พร้อม unittest พิสูจน์ลำดับ enter/work/exit

พี่โชว์
งูต้นฉบับดึงเชือกเส้นเดียวให้ฝาครอบ ประตู และวาล์วปิดย้อนลำดับ
pythonasynciocontextlib

Python AsyncExitStack: รวม cleanup แบบ sync และ async ไว้ในจุดเดียว

จัดการ resource ที่เปิดตามเงื่อนไขด้วย contextlib.AsyncExitStack และยืนยันลำดับปิดย้อนกลับด้วย unittest

พี่โชว์
งูขดตัวต้นฉบับกำลังเบนกรวยเสียงจากลำโพงเก่าเข้าสมุดบันทึกบนโต๊ะสว่าง
pythoncontextlibtesting

Python redirect_stdout: จับ output ของโค้ดเก่าไว้ทดสอบ

ใช้ contextlib.redirect_stdout ครอบฟังก์ชันที่ print โดยไม่แก้ global state นานเกิน scope

พี่โชว์
งูสีเขียวต้นฉบับต่อรางสองเส้นให้ผ่านประตูเดียวกัน โดยรางหนึ่งมีตู้ทรัพยากรและอีกรางว่าง
pythoncontextlibresource-management

Python nullcontext: ทำให้เส้นทางมีและไม่มี context manager ใช้โครงเดียวกัน

ใช้ contextlib.nullcontext ลด if ซ้ำรอบ with สำหรับ resource ที่ผู้เรียกอาจส่งมาให้แล้ว พร้อม unittest

พี่โชว์
งูต้นฉบับครอบหยดน้ำเล็กหนึ่งหยดด้วยถ้วยแก้ว ขณะที่สัญญาณผิดปกติสีอำพันยังผ่านออกด้านข้าง
pythoncontextlibexceptions

Python contextlib.suppress: กลืนเฉพาะ error ที่ขั้นตอนนั้นยอมรับได้

ใช้ contextlib.suppress กับ cleanup แบบ best effort โดยจำกัด exception ให้แคบและทดสอบว่า error อื่นยังหลุดออกมา

พี่โชว์
งูต้นฉบับปิดวาล์วสายน้ำ async หลังหยิบของชิ้นแรกจากสายพานสีมิ้นต์
pythonasynciocontextlib

Python contextlib.aclosing: ปิด Async Generator แม้ Loop หยุดก่อนจบ

ใช้ aclosing จัด lifecycle ของ async generator ให้ cleanup รันใน context เดิม พร้อม unittest ที่พิสูจน์กรณี break กลาง stream

พี่โชว์
โฟลเดอร์สองใบบนโต๊ะมิ้นต์มีลูกศรอำพันเชื่อม และนากกายยืนข้ามระหว่างโฟลเดอร์
pythonstdlibcontextlib

contextlib.chdir: เปลี่ยนโฟลเดอร์ชั่วคราวแบบปลอดภัยใน with

สอนใช้ contextlib.chdir ตั้งแต่ Python 3.11 เทียบกับ os.chdir เปล่าๆ พร้อมตัวอย่างที่รันตรวจได้

น้องกาย
งูสีมิ้นต์ต้นฉบับเลื้ออมระหว่างประตูทรัพยากรสองบานและลูกศรปิดย้อนลำดับ
pythoncontextlibresource-management

Python ExitStack: จัดการ resource จำนวนไม่แน่นอนให้ปิดย้อนลำดับ

รวม context manager และ callback แบบ dynamic ด้วย ExitStack พร้อม unittest ที่พิสูจน์ลำดับ cleanup

น้องกาย