@cached_property
    def exports(self):
        # There are several possible scenarious:
        #   1. Explicit exports
        #   2. No explicit exports, using _ prefix?
        #   3. Failed to parse __all__
        #   4. Not a module - same as __all__ = []?
        # We treat 3 as 2 for now.
        if not self.is_module:
            return []
        if self.names not in '__all__':
            return None

        exports_node = self.names['__all__'][0]
        assign = exports_node.up
        if not isinstance(assign, ast.Assign) or len(assign.targets) != 1:
            print "WARN: failed parsing __all__"
            return None

        try:
            return ast_eval(assign.value)
        except ValueError:
            print "WARN: failed parsing __all__"
            return None

    # Names
dataset/ETHPy150Open Suor/flaws/flaws/scopes.py/Scope.exports/swapped operands of `not in`