Search list of Symbol objects by by querying specific 
        meta attributes and their respective values.
        
        Parameters
        ----------
        avargs
            The attributes and values passed as key word arguments.
            If more than one criteria is specified, AND logic is applied.
            Appending '%' to values will use SQL's "LIKE" functionality.
        
        Example
        -------
        >>> sm.search_meta(geography='Canada', sector='Gov%')
            
        Returns
        -------
        List of Symbols or empty list

def search_meta_specific(self, **avargs):
        """Search list of Symbol objects by by querying specific 
        meta attributes and their respective values.
        
        Parameters
        ----------
        avargs
            The attributes and values passed as key word arguments.
            If more than one criteria is specified, AND logic is applied.
            Appending '%' to values will use SQL's "LIKE" functionality.
        
        Example
        -------
        >>> sm.search_meta(geography='Canada', sector='Gov%')
            
        Returns
        -------
        List of Symbols or empty list
        """
        
        qry = self.ses.query(Symbol).join(SymbolMeta.symbol)


        for attr, value in avargs.iteritems():
            SMA = aliased(SymbolMeta)
            if "%" in value:
                acrit = SMA.value.like(value)
            else:
                acrit = SMA.value == value
            
            crit = and_(acrit, SMA.attr == attr)

            qry = qry.filter(crit).join(SMA, SMA.symname == SymbolMeta.symname)

        qry = qry.order_by(Symbol.name)
        return qry.all()