The following functions and classes can be used as-is to create attribute bindings, or you can subclass the classes to create custom binding types of your own:
As we've already seen, the binding.Make function just needs a class or type object as its obtype parameter, and it creates a new instance of that type.
binding.Make will also accept a string for its recipe parameter, in which case it will interpret the string as an import specification, using the peak.util.imports.importString function to load it. We'll talk more about import specifications in the chapter on the peak.config package.
XXX Need Obtain and Delegate here as well.