'''Utility for measuring python opencv API coverage by samples.'''fromglobimportglobimportcv2importreif__name__=='__main__':cv2_callable=set(['cv2.'+namefornameindir(cv2)ifcallable(getattr(cv2,name))])found=set()forfninglob('*.py'):print' --- ',fncode=open(fn).read()found|=set(re.findall('cv2?\.\w+',code))cv2_used=found&cv2_callablecv2_unused=cv2_callable-cv2_usedwithopen('unused_api.txt','w')asf:f.write('\n'.join(sorted(cv2_unused)))r=1.0*len(cv2_used)/len(cv2_callable)print'\ncv2 api coverage: %d / %d (%.1f%%)'%(len(cv2_used),len(cv2_callable),r*100)print'\nold (cv) symbols:'forsinfound:ifs.startswith('cv.'):prints