Skip to content

Commit d4f5ddc

Browse files
Fix concat, add tests (#84)
1 parent f521cfb commit d4f5ddc

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

tests/snippets/test_pandas.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@ def test_types_concat() -> None:
2424
pd.concat([s, s2], keys=['first', 'second'], sort=True)
2525
pd.concat([s, s2], keys=['first', 'second'], names=["source", "row"])
2626

27+
# Depends on the axis
28+
rs1: Union[pd.Series, pd.DataFrame] = pd.concat({'a': s, 'b': s2})
29+
rs1a: Union[pd.Series, pd.DataFrame] = pd.concat({'a': s, 'b': s2}, axis=1)
30+
rs2: Union[pd.Series, pd.DataFrame] = pd.concat({1: s, 2: s2})
31+
rs2a: Union[pd.Series, pd.DataFrame] = pd.concat({1: s, 2: s2}, axis=1)
32+
rs3: Union[pd.Series, pd.DataFrame] = pd.concat({1: s, None: s2})
33+
rs3a: Union[pd.Series, pd.DataFrame] = pd.concat({1: s, None: s2}, axis=1)
34+
2735
df = pd.DataFrame(data={'col1': [1, 2], 'col2': [3, 4]})
2836
df2 = pd.DataFrame(data={'col1': [10, 20], 'col2': [30, 40]})
2937

@@ -34,3 +42,7 @@ def test_types_concat() -> None:
3442

3543
result: pd.DataFrame = pd.concat({"a": pd.DataFrame([1, 2, 3]), "b": pd.DataFrame([4, 5, 6])}, axis=1)
3644
result2: Union[pd.DataFrame, pd.Series] = pd.concat({"a": pd.Series([1, 2, 3]), "b": pd.Series([4, 5, 6])}, axis=1)
45+
46+
rdf1: pd.DataFrame = pd.concat({'a': df, 'b': df2})
47+
rdf2: pd.DataFrame = pd.concat({1: df, 2: df2})
48+
rdf3: pd.DataFrame = pd.concat({1: df, None: df2})

third_party/3/pandas/core/reshape/concat.pyi

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,26 @@ from pandas.core.arrays.categorical import factorize_from_iterable as factorize_
44
from pandas.core.generic import NDFrame as NDFrame
55
from pandas.core.indexes.api import all_indexes_same as all_indexes_same, ensure_index as ensure_index, get_consensus_names as get_consensus_names, get_objs_combined_axis as get_objs_combined_axis
66
from pandas.core.internals import concatenate_block_managers as concatenate_block_managers
7-
from typing import Any, Iterable, Mapping, overload
7+
from typing import Any, Iterable, Mapping, overload, Optional
8+
89

910
# For some reason mypy won't read this declaration correctly if we use 2 overloads with union
1011
@overload
1112
def concat(objs: Iterable[DataFrame], axis: Axis = ..., join: str=..., ignore_index: bool=..., keys: Any = ..., levels: Any = ..., names: Any = ..., verify_integrity: bool=..., sort: bool=..., copy: bool=...) -> DataFrame: ...
1213
@overload
14+
def concat(objs: Mapping[Optional[int], DataFrame], axis: Axis = ..., join: str=..., ignore_index: bool=..., keys: Any = ..., levels: Any = ..., names: Any = ..., verify_integrity: bool=..., sort: bool=..., copy: bool=...) -> DataFrame: ...
15+
@overload
16+
def concat(objs: Mapping[Optional[str], DataFrame], axis: Axis = ..., join: str=..., ignore_index: bool=..., keys: Any = ..., levels: Any = ..., names: Any = ..., verify_integrity: bool=..., sort: bool=..., copy: bool=...) -> DataFrame: ...
17+
@overload
1318
def concat(objs: Mapping[Label, DataFrame], axis: Axis = ..., join: str=..., ignore_index: bool=..., keys: Any = ..., levels: Any = ..., names: Any = ..., verify_integrity: bool=..., sort: bool=..., copy: bool=...) -> DataFrame: ...
1419
@overload
1520
def concat(objs: Iterable[Series], axis: Axis = ..., join: str=..., ignore_index: bool=..., keys: Any = ..., levels: Any = ..., names: Any = ..., verify_integrity: bool=..., sort: bool=..., copy: bool=...) -> FrameOrSeries: ...
1621
@overload
1722
def concat(objs: Mapping[Label, Series], axis: Axis = ..., join: str=..., ignore_index: bool=..., keys: Any = ..., levels: Any = ..., names: Any = ..., verify_integrity: bool=..., sort: bool=..., copy: bool=...) -> FrameOrSeries: ...
23+
@overload
24+
def concat(objs: Mapping[Optional[int], Series], axis: Axis = ..., join: str=..., ignore_index: bool=..., keys: Any = ..., levels: Any = ..., names: Any = ..., verify_integrity: bool=..., sort: bool=..., copy: bool=...) -> FrameOrSeries: ...
25+
@overload
26+
def concat(objs: Mapping[Optional[str], Series], axis: Axis = ..., join: str=..., ignore_index: bool=..., keys: Any = ..., levels: Any = ..., names: Any = ..., verify_integrity: bool=..., sort: bool=..., copy: bool=...) -> FrameOrSeries: ...
1827

1928
class _Concatenator:
2029
intersect: bool = ...

0 commit comments

Comments
 (0)