protocol-design
CommunityMaster Python's structural subtyping.
Software Engineering#testing#python#protocol#interface design#typing#duck typing#structural subtyping
Author101mare
Version1.0.0
Installs0
System Documentation
What problem does it solve?
This Skill helps developers properly define and utilize Python's typing.Protocol for robust interface design and structural subtyping, avoiding common pitfalls and promoting testable code.
Core Features & Use Cases
- Interface Definition: Define contracts between modules using structural subtyping (duck typing) without requiring inheritance.
- Protocol vs ABC: Clearly understand when to use
Protocolversus Abstract Base Classes (ABC). - Runtime Checking: Learn the nuances and limitations of
@runtime_checkable. - Mocking: Effectively use
Mock(spec=Protocol)for type-safe testing. - Use Case: When designing a system where different components need to interact through a common set of methods (e.g., various notification services),
Protocolensures they adhere to the contract without forcing a shared inheritance hierarchy.
Quick Start
Use the protocol-design skill to understand how to define a Python typing.Protocol for a data repository interface.
Dependency Matrix
Required Modules
None requiredComponents
references
💻 Claude Code Installation
Recommended: Let Claude install automatically. Simply copy and paste the text below to Claude Code.
Please help me install this Skill: Name: protocol-design Download link: https://github.com/101mare/skill-library/archive/main.zip#protocol-design Please download this .zip file, extract it, and install it in the .claude/skills/ directory.
Agent Skills Search Helper
Install a tiny helper to your Agent, search and equip skill from 223,000+ vetted skills library on demand.