code: def __find_reports(self, report_type, usage_page, usage_id = 0):
          "Find input report referencing HID usage control/data item"
          if not self.is_opened():
              raise HIDError("Device must be opened")
          #
          results = list()
          if usage_page:
              for report_id in self.report_set.get( report_type, set() ):
                  #build report object, gathering usages matching report_id
                  report_obj = HidReport(self, report_type, report_id)
                  if get_full_usage_id(usage_page, usage_id) in report_obj:
                      results.append( report_obj )
          else:
              #all (any one)
              for report_id in self.report_set.get(report_type, set()):
                  report_obj = HidReport(self, report_type, report_id)
                  results.append( report_obj )
          return resultf __find_reports(self, report_type, usage_page, usage_id = 0):
          "Find input report referencing HID usage control/data item"
          if not self.is_opened():
              raise HIDError("Device must be opened")
          #
          results = list()
          if usage_page:
              for report_id in self.report_set.get( report_type, set() ):
                  #build report object, gathering usages matching report_id
                  report_obj = HidReport(self, report_type, report_id)
                  if get_full_usage_id(usage_page, usage_id) in report_obj:
                      results.append( report_obj )
          else:
              #all (any one)
              for report_id in self.report_set.get(report_type, set()):
                  report_obj = HidReport(self, report_type, report_id)
                  results.append( report_obj )
          return results
docs: Find input report referencing HID usage control/data item