Defining a protocol as a local variation of another protocol

class Variation( baseProtocol [, context=None])
New in version 0.9.1. A Variation is a Protocol that "inherits" adapter declarations from an existing protocol. When you create a Variation, it declares that it is implied by its baseProtocol, and so any adpater suitable for adapting to the base protocol is therefore suitable for the Variation. This allows you to then declare adapters to the variation protocol, without affecting those declared for the base protocol. In this way, you can have a protocol object that represents the use of the base protocol in a particular context. You can optionally specify that context via the context argument, which will then serve as the context attribute of the protocol. For more background on how this works and what it might be used for, see section 1.1.10.