def available_pins(self):
raise NotImplementedMethod()<EOL>
Returns available pins.

        Returns a list of dictionaries indicating the available pins and it's
        capabilities. It should follow this format:
        \verbatim
        [ {
            'id': 1, # some value that represents this pin in your
                     # implementation.
                     # prefer numbers and Enums. This value will be used
                     # in `map_pin(a,p)`
            'name': 'Pin 1', # a name that can be shown to the user, if needed
            'analog': {
                'input': True, # if analog input is available
                'output': False, # if analog output is available
                'read_range': (0, 1023), # if input is supported, what is the
                                         # valid range (both inclusive)
                'write_range': (0, 5) # if output is supported, what is the
                                      #valid range (both inclusive)
            },
            'digital': {
                'input': True, # if digital input is available
                'output': True, # if digital output is available
                'pwm': True # if pwm generation is available
            }
        }]
        \endverbatim

        If you're developing a driver, you should override this function.

        @returns a list of dictionaries