def _hastypes(self, expr, types):
        _types = [ cls.__name__ for cls in expr.__class__.mro() ]
        return bool(set(_types).intersection(types))
using the parsed robots.txt decide if useragent can fetch url
dataset/ETHPy150Open sympy/sympy/sympy/simplify/epathtools.py/EPath._hastypes--crossover with--dataset/ETHPy150Open babble/babble/include/jython/Lib/robotparser.py/RobotFileParser.can_fetch