Tobias Edwards created SPARK-36220:
--------------------------------------

             Summary: Incorrect pyspark.sql.types.Row __new__ and __init__ type 
annotations
                 Key: SPARK-36220
                 URL: https://issues.apache.org/jira/browse/SPARK-36220
             Project: Spark
          Issue Type: Bug
          Components: PySpark
    Affects Versions: 3.1.2
            Reporter: Tobias Edwards


This bug involves incorrect type annotations for {{pyspark.sql.types.Row}}'s 
{{\_\_new\_\_}} and {{\_\_init\_\_}} methods when invoked without keyword 
arguments (_i.e._, {{\*args}} rather than {{\*\*kwargs}}).

When creating a 
[Row|https://hyukjin-spark.readthedocs.io/en/latest/reference/api/pyspark.sql.types.Row.html]
 with unnamed fields which are not of type {{str}} (_e.g._, {{row1 = 
Row("Alice", 11)}} appears in the {{Row}} documentation) type checkers produce 
an error.

The implementation doesn't assume the arguments are of type {{str}}, and in 
fact the documentation includes an example where non-{{str}} types are provided 
in this way (see [the final example 
here|https://hyukjin-spark.readthedocs.io/en/latest/reference/api/pyspark.sql.types.Row.html]).

An example of the type error produced by 
[pyright|https://github.com/microsoft/pyright] is

{code}
error: No overloads for "__init__" match the provided arguments
    Argument types: (Literal['Alice'], Literal[11]) (reportGeneralTypeIssues)
{code}




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to