from cppy.cp_util import *


class Calculator:
    def frequencies(self,word_list):    
        return get_frequencies(word_list)

    def sort(self,word_freq):            
        return sort_dict( word_freq)

    def print_all(self,word_freqs):        
        print_word_freqs(word_freqs[1:])        


##########################################
#  应用框架
##########################################    
def call_method(obj, method_name, *args):
    # 使用内省的 getattr 函数动态获取 obj 对象的 method_name 方法
    method = getattr(obj, method_name, None)
    if method:
        return method(*args)  # 动态调用方法
    else:
        return "Method not found."


if __name__ == '__main__':   
    # 流水线处理方法清单
    method_names = ' frequencies sort print_all'
    data = extract_file_words( testfilepath )
    
    calc = Calculator()
    for method_name in method_names.split():
        data = call_method( calc,method_name,data )