Skip to content

AttributeError: 'UnionType' object has no attribute 'type' #3468

Closed
@zero323

Description

@zero323

This looks like a regression (?) between Mypy 0.501 and 0.510.

Failure is reported at this line: https://github.com/zero323/pyspark-stubs/blob/d25da4d051f878d358bdef6a0e08a6597afbee4f/third_party/3/pyspark/sql/functions.pyi#L24 but it can be reproduced with simplified input:

# Stubs for pyspark.sql.functions (Python 3.5)

from typing import Union
from pyspark.sql.column import Column

ColumnOrName = Union[pyspark.sql.column.Column, str]

def last(col: ColumnOrName, ignorenulls: bool = ...) -> Column: ...

Python version:

python --version
Python 3.5.3 :: Anaconda custom (64-bit)

Mypy version: 0.510, 0.511

Traceback:

third_party/3/pyspark/sql/column.pyi:24: error: INTERNAL ERROR -- please report a bug at https://github.com/python/mypy/issues version: 0.511
Traceback (most recent call last):
  File "/home/user/anaconda3/bin/mypy", line 6, in <module>
    main(__file__)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/main.py", line 46, in main
    res = type_check_only(sources, bin_dir, options)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/main.py", line 93, in type_check_only
    options=options)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/build.py", line 188, in build
    graph = dispatch(sources, manager)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/build.py", line 1595, in dispatch
    process_graph(graph, manager)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/build.py", line 1838, in process_graph
    process_stale_scc(graph, scc, manager)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/build.py", line 1937, in process_stale_scc
    graph[id].type_check_first_pass()
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/build.py", line 1510, in type_check_first_pass
    self.type_checker.check_first_pass()
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/checker.py", line 177, in check_first_pass
    self.accept(d)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/checker.py", line 264, in accept
    stmt.accept(self)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/nodes.py", line 750, in accept
    return visitor.visit_class_def(self)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/checker.py", line 1080, in visit_class_def
    self.accept(defn.defs)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/checker.py", line 264, in accept
    stmt.accept(self)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/nodes.py", line 811, in accept
    return visitor.visit_block(self)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/checker.py", line 1173, in visit_block
    self.accept(s)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/checker.py", line 264, in accept
    stmt.accept(self)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/nodes.py", line 565, in accept
    return visitor.visit_func_def(self)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/checker.py", line 510, in visit_func_def
    self.check_func_item(defn, name=defn.name())
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/checker.py", line 569, in check_func_item
    self.check_func_def(defn, typ, name)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/checker.py", line 616, in check_func_def
    self.check_reverse_op_method(item, typ, name)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/checker.py", line 806, in check_reverse_op_method
    defn)
  File "/home/user/anaconda3/lib/python3.5/site-packages/mypy/checker.py", line 876, in check_overlapping_op_methods
    forward_base.type.name(), forward_name, context)
AttributeError: 'UnionType' object has no attribute 'type'
third_party/3/pyspark/sql/column.pyi:24: note: use --pdb to drop into pdb

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions