def parse_torrent_properties(table_datas):
        """
        Static method that parses a given list of table data elements and using helper methods
        `Parser.is_subcategory`, `Parser.is_quality`, `Parser.is_language`, collects torrent properties.

        :param list lxml.HtmlElement table_datas: table_datas to parse
        :return: identified category, subcategory, quality and languages.
        :rtype: dict
        """
        output = {'category': table_datas[0].text, 'subcategory': None, 'quality': None, 'language': None}
        for i in range(1, len(table_datas)):
            td = table_datas[i]
            url = td.get('href')
            params = Parser.get_params(url)
            if Parser.is_subcategory(params) and not output['subcategory']:
                output['subcategory'] = td.text
            elif Parser.is_quality(params) and not output['quality']:
                output['quality'] = td.text
            elif Parser.is_language(params) and not output['language']:
                output['language'] = td.text
        return output
def parse_torrent_properties ( table_datas ) : output = { 'category' : table_datas [ 0 ] . text , 'subcategory' : None , 'quality' : None , 'language' : None } for i in range ( 1 , len ( table_datas ) ) : td = table_datas [ i ] url = td . get ( 'href' ) params = Parser . get_params ( url ) if Parser . is_subcategory ( params ) and not output [ 'subcategory' ] : output [ 'subcategory' ] = td . text elif Parser . is_quality ( params ) and not output [ 'quality' ] : output [ 'quality' ] = td . text elif Parser . is_language ( params ) and not output [ 'language' ] : output [ 'language' ] = td . text return output
Static method that parses a given list of table data elements and using helper methods
        `Parser.is_subcategory`, `Parser.is_quality`, `Parser.is_language`, collects torrent properties.

        :param list lxml.HtmlElement table_datas: table_datas to parse
        :return: identified category, subcategory, quality and languages.
        :rtype: dict