-
Notifications
You must be signed in to change notification settings - Fork 768
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unknown type reported when accessing functions from the top-level pandas import #1968
Comments
Normally, I'd say that the pandas stubs are in no way ready for strict mode and recommend against enabling it (they are hosted here, if you are interested), but it's certainly strange that importing it a different way would cause the error behavior to change. |
@erictraut so, this with strict mode import pandas as pd
dump_data = pd.read_csv(Path('....'), sep='\t', header=0) shows
it looks like due to this DtypeArg in more specifically, np.dtype in _typing.pyi (and _typing.py) NpDtype = Union[str, np.dtype, Type[Union[str, float, int, complex, bool, object]]] if I remove np.dtype from the NpDtype, the error go away. but strangely, np.dtype resolve correctly if I open _typing.pyi, so I am not sure why it cause Unknown type for read_csv. not sure where I should look into. any pointer? thank you. |
|
any suggestion on what would be right way to type NpDtype? since np.dtype is defined as _DTypeScalar_co = TypeVar("_DTypeScalar_co", covariant=True, bound=generic)
class dtype(Generic[_DTypeScalar_co]): ... should it be np.dtype[np.generic] ? |
Yeah, |
This issue has been fixed in version 2022.4.1, which we've just released. You can find the changelog here: CHANGELOG.md |
Environment data
Expected behaviour
In strict mode, I expect this code to pass:
Actual behaviour
An `UnknownMemberType` error is displayed on `read_csv'
Type of "read_csv" is partially unknown Type of "read_csv" is "Overload[(reader: PathLike[str] | str | IO[AnyStr@FilePathOrBuffer] | RawIOBase | BufferedIOBase | TextIOBase | TextIOWrapper | mmap, *, sep: str = ..., delimiter: str | None = ..., header: int | Sequence[int] | str = ..., names: Sequence[str] | None = ..., index_col: int | str | Sequence[Unknown] | Literal[False] | None = ..., usecols: int | str | Sequence[Unknown] | None = ..., squeeze: bool = ..., prefix: str | None = ..., mangle_dupe_cols: bool = ..., dtype: str | Mapping[str, Any] | None = ..., engine: str | None = ..., converters: Mapping[int | str, (*args: Unknown, **kwargs: Unknown) -> Unknown] | None = ..., true_values: Sequence[str | bytes | date | datetime | timedelta | bool | int | float | complex] | None = ..., false_values: Sequence[str | bytes | date | datetime | timedelta | bool | int | float | complex] | None = ..., skipinitialspace: bool = ..., skiprows: Sequence[Unknown] | int | (*args: Unknown, **kwargs: Unknown) -> Unknown | None = ..., skipfooter: int = ..., nrows: int | None = ..., na_values: Unknown = ..., keep_default_na: bool = ..., na_filter: bool = ..., verbose: bool = ..., skip_blank_lines: bool = ..., parse_dates: bool | List[int] | List[str] = ..., infer_datetime_format: bool = ..., keep_date_col: bool = ..., date_parser: (*args: Unknown, **kwargs: Unknown) -> Unknown | None = ..., dayfirst: bool = ..., cache_dates: bool = ..., iterator: Literal[True], chunksize: int | None = ..., compression: str | None = ..., thousands: str | None = ..., decimal: str | None = ..., lineterminator: str | None = ..., quotechar: str = ..., quoting: int = ..., doublequote: bool = ..., escapechar: str | None = ..., comment: str | None = ..., encoding: str | None = ..., dialect: str | None = ..., error_bad_lines: bool = ..., warn_bad_lines: bool = ..., delim_whitespace: bool = ..., low_memory: bool = ..., memory_map: bool = ..., float_precision: str | None = ...) -> TextFileReader, (filepath: PathLike[str] | str | IO[AnyStr@FilePathOrBuffer] | RawIOBase | BufferedIOBase | TextIOBase | TextIOWrapper | mmap, *, sep: str = ..., delimiter: str | None = ..., header: int | Sequence[int] | str = ..., names: Sequence[str] | None = ..., index_col: int | str | Sequence[Unknown] | bool | None = ..., usecols: int | str | Sequence[Unknown] | None = ..., squeeze: bool = ..., prefix: str | None = ..., mangle_dupe_cols: bool = ..., dtype: str | Mapping[str, Any] | None = ..., engine: str | None = ..., converters: Mapping[int | str, (*args: Unknown, **kwargs: Unknown) -> Unknown] | None = ..., true_values: Sequence[str | bytes | date | datetime | timedelta | bool | int | float | complex] | None = ..., false_values: Sequence[str | bytes | date | datetime | timedelta | bool | int | float | complex] | None = ..., skipinitialspace: bool = ..., skiprows: Sequence[Unknown] | int | (*args: Unknown, **kwargs: Unknown) -> Unknown | None = ..., skipfooter: int = ..., nrows: int | None = ..., na_values: Unknown = ..., keep_default_na: bool = ..., na_filter: bool = ..., verbose: bool = ..., skip_blank_lines: bool = ..., parse_dates: bool | List[int] | List[str] = ..., infer_datetime_format: bool = ..., keep_date_col: bool = ..., date_parser: (*args: Unknown, **kwargs: Unknown) -> Unknown | None = ..., dayfirst: bool = ..., cache_dates: bool = ..., iterator: Literal[False], chunksize: int, compression: str | None = ..., thousands: str | None = ..., decimal: str | None = ..., lineterminator: str | None = ..., quotechar: str = ..., quoting: int = ..., doublequote: bool = ..., escapechar: str | None = ..., comment: str | None = ..., encoding: str | None = ..., dialect: str | None = ..., error_bad_lines: bool = ..., warn_bad_lines: bool = ..., delim_whitespace: bool = ..., low_memory: bool = ..., memory_map: bool = ..., float_precision: str | None = ...) -> TextFileReader, (filepath: PathLike[str] | str | IO[AnyStr@FilePathOrBuffer] | RawIOBase | BufferedIOBase | TextIOBase | TextIOWrapper | mmap, *, sep: str = ..., delimiter: str | None = ..., header: int | Sequence[int] | str = ..., names: Sequence[str] | None = ..., index_col: int | str | Sequence[Unknown] | bool | None = ..., usecols: int | str | Sequence[Unknown] | None = ..., squeeze: bool = ..., prefix: str | None = ..., mangle_dupe_cols: bool = ..., dtype: str | Mapping[str, Any] | None = ..., engine: str | None = ..., converters: Mapping[int | str, (*args: Unknown, **kwargs: Unknown) -> Unknown] | None = ..., true_values: Sequence[str | bytes | date | datetime | timedelta | bool | int | float | complex] | None = ..., false_values: Sequence[str | bytes | date | datetime | timedelta | bool | int | float | complex] | None = ..., skipinitialspace: bool = ..., skiprows: Sequence[Unknown] | int | (*args: Unknown, **kwargs: Unknown) -> Unknown | None = ..., skipfooter: int = ..., nrows: int | None = ..., na_values: Unknown = ..., keep_default_na: bool = ..., na_filter: bool = ..., verbose: bool = ..., skip_blank_lines: bool = ..., parse_dates: bool | List[int] | List[str] = ..., infer_datetime_format: bool = ..., keep_date_col: bool = ..., date_parser: (*args: Unknown, **kwargs: Unknown) -> Unknown | None = ..., dayfirst: bool = ..., cache_dates: bool = ..., iterator: Literal[False] = ..., chunksize: None = ..., compression: str | None = ..., thousands: str | None = ..., decimal: str | None = ..., lineterminator: str | None = ..., quotechar: str = ..., quoting: int = ..., doublequote: bool = ..., escapechar: str | None = ..., comment: str | None = ..., encoding: str | None = ..., dialect: str | None = ..., error_bad_lines: bool = ..., warn_bad_lines: bool = ..., delim_whitespace: bool = ..., low_memory: bool = ..., memory_map: bool = ..., float_precision: str | None = ...) -> DataFrame, (filepath: PathLike[str] | str | IO[AnyStr@FilePathOrBuffer] | RawIOBase | BufferedIOBase | TextIOBase | TextIOWrapper | mmap, *, sep: str = ..., delimiter: str | None = ..., header: int | Sequence[int] | str = ..., names: Sequence[str] | None = ..., index_col: int | str | Sequence[Unknown] | bool | None = ..., usecols: int | str | Sequence[Unknown] | None = ..., squeeze: bool = ..., prefix: str | None = ..., mangle_dupe_cols: bool = ..., dtype: str | Mapping[str, Any] | None = ..., engine: str | None = ..., converters: Mapping[int | str, (*args: Unknown, **kwargs: Unknown) -> Unknown] | None = ..., true_values: Sequence[str | bytes | date | datetime | timedelta | bool | int | float | complex] | None = ..., false_values: Sequence[str | bytes | date | datetime | timedelta | bool | int | float | complex] | None = ..., skipinitialspace: bool = ..., skiprows: Sequence[Unknown] | int | (*args: Unknown, **kwargs: Unknown) -> Unknown | None = ..., skipfooter: int = ..., nrows: int | None = ..., na_values: Unknown = ..., keep_default_na: bool = ..., na_filter: bool = ..., verbose: bool = ..., skip_blank_lines: bool = ..., parse_dates: bool | List[int] | List[str] = ..., infer_datetime_format: bool = ..., keep_date_col: bool = ..., date_parser: (*args: Unknown, **kwargs: Unknown) -> Unknown | None = ..., dayfirst: bool = ..., cache_dates: bool = ..., iterator: bool = ..., chunksize: int = ..., compression: str | None = ..., thousands: str | None = ..., decimal: str | None = ..., lineterminator: str | None = ..., quotechar: str = ..., quoting: int = ..., doublequote: bool = ..., escapechar: str | None = ..., comment: str | None = ..., encoding: str | None = ..., dialect: str | None = ..., error_bad_lines: bool = ..., warn_bad_lines: bool = ..., delim_whitespace: bool = ..., low_memory: bool = ..., memory_map: bool = ..., float_precision: str | None = ...) -> TextFileReader, (filepath: PathLike[str] | str | IO[AnyStr@FilePathOrBuffer] | RawIOBase | BufferedIOBase | TextIOBase | TextIOWrapper | mmap, sep: str = ..., delimiter: str | None = ..., header: int | Sequence[int] | str = ..., names: Sequence[str] | None = ..., index_col: int | str | Sequence[Unknown] | bool | None = ..., usecols: int | str | Sequence[Unknown] | None = ..., squeeze: bool = ..., prefix: str | None = ..., mangle_dupe_cols: bool = ..., dtype: str | Mapping[str, Any] | None = ..., engine: str | None = ..., converters: Mapping[int | str, (*args: Unknown, **kwargs: Unknown) -> Unknown] | None = ..., true_values: Sequence[str | bytes | date | datetime | timedelta | bool | int | float | complex] | None = ..., false_values: Sequence[str | bytes | date | datetime | timedelta | bool | int | float | complex] | None = ..., skipinitialspace: bool = ..., skiprows: Sequence[Unknown] | int | (*args: Unknown, **kwargs: Unknown) -> Unknown | None = ..., skipfooter: int = ..., nrows: int | None = ..., na_values: Unknown = ..., keep_default_na: bool = ..., na_filter: bool = ..., verbose: bool = ..., skip_blank_lines: bool = ..., parse_dates: bool | List[int] | List[str] = ..., infer_datetime_format: bool = ..., keep_date_col: bool = ..., date_parser: (*args: Unknown, **kwargs: Unknown) -> Unknown | None = ..., dayfirst: bool = ..., cache_dates: bool = ..., iterator: bool = ..., chunksize: int = ..., compression: str | None = ..., thousands: str | None = ..., decimal: str | None = ..., lineterminator: str | None = ..., quotechar: str = ..., quoting: int = ..., doublequote: bool = ..., escapechar: str | None = ..., comment: str | None = ..., encoding: str | None = ..., dialect: str | None = ..., error_bad_lines: bool = ..., warn_bad_lines: bool = ..., delim_whitespace: bool = ..., low_memory: bool = ..., memory_map: bool = ..., float_precision: str | None = ...) -> DataFrame]"PylancereportUnknownMemberTypeLogs
Python Language Server Log
Code Snippet / Additional information
Using the fully qualified module name in the import makes the error go away - the following snippet emits no errors in strict mode:
The text was updated successfully, but these errors were encountered: