Skip to content

Commit 8a080d6

Browse files
authored
#171 Merge pull request from astropenguin/astropenguin/issue170
Support Python 3.12 and 3.13
2 parents a84dde2 + 8983a6a commit 8a080d6

File tree

15 files changed

+900
-912
lines changed

15 files changed

+900
-912
lines changed

.devcontainer/Dockerfile

Lines changed: 0 additions & 11 deletions
This file was deleted.

.devcontainer/devcontainer.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
{
22
"name": "pandas-dataclasses",
3-
"build": {
4-
"context": "..",
5-
"dockerfile": "Dockerfile"
6-
},
3+
"image":"python:3.13",
4+
"onCreateCommand": "pip install poetry==1.8.5",
75
"postCreateCommand": "poetry install",
6+
"containerEnv": {
7+
"POETRY_VIRTUALENVS_CREATE": "false"
8+
},
89
"customizations": {
910
"vscode": {
1011
"extensions": [

.github/workflows/gh-pages.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ jobs:
1212
env:
1313
POETRY_VIRTUALENVS_CREATE: false
1414
steps:
15-
- uses: actions/checkout@v2
16-
- uses: actions/setup-python@v2
15+
- uses: actions/checkout@v4
16+
- uses: actions/setup-python@v5
1717
with:
18-
python-version: "3.11"
18+
python-version: "3.13"
1919
- name: Install project dependencies
2020
run: pip install poetry && poetry install
2121
- name: Build docs

.github/workflows/pypi.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ jobs:
1212
env:
1313
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_TOKEN }}
1414
steps:
15-
- uses: actions/checkout@v2
15+
- uses: actions/checkout@v4
1616
- uses: actions/setup-python@v2
1717
with:
18-
python-version: "3.11"
18+
python-version: "3.13"
1919
- name: Publish package to PyPI
20-
run: pip install poetry && poetry publish --build
20+
run: pip install poetry==1.8.5 && poetry publish --build

.github/workflows/tests.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ jobs:
1717
strategy:
1818
fail-fast: false
1919
matrix:
20-
python: ["3.9", "3.10", "3.11"]
20+
python: ["3.9", "3.10", "3.11", "3.12", "3.13"]
2121
steps:
22-
- uses: actions/checkout@v3
23-
- uses: actions/setup-python@v4
22+
- uses: actions/checkout@v4
23+
- uses: actions/setup-python@v5
2424
with:
2525
python-version: ${{ matrix.python }}
2626
- name: Install project dependencies
27-
run: pip install poetry && poetry install
27+
run: pip install poetry==1.8.5 && poetry install
2828
- name: Test code's formatting (Black)
2929
run: black --check docs tests pandas_dataclasses
3030
- name: Test code's typing (Pyright)

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ message: "If you use this software, please cite it as below."
33

44
title: "pandas-dataclasses"
55
abstract: "pandas data creation made easy by dataclass"
6-
version: 0.12.0
7-
date-released: 2023-02-26
6+
version: 0.13.0
7+
date-released: 2024-12-09
88
license: "MIT"
99
doi: "10.5281/zenodo.6127352"
1010
url: "https://github.com/astropenguin/pandas-dataclasses"

pandas_dataclasses/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"core",
1717
"extras",
1818
]
19-
__version__ = "0.12.0"
19+
__version__ = "0.13.0"
2020

2121

2222
# submodules

pandas_dataclasses/core/api.py

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,11 @@
1717

1818

1919
@overload
20-
def aspandas(obj: DataClassOf[TPandas, PAny], *, factory: None = None) -> TPandas:
21-
...
20+
def aspandas(obj: DataClassOf[TPandas, PAny], *, factory: None = None) -> TPandas: ...
2221

2322

2423
@overload
25-
def aspandas(obj: DataClass[PAny], *, factory: Callable[..., TPandas]) -> TPandas:
26-
...
24+
def aspandas(obj: DataClass[PAny], *, factory: Callable[..., TPandas]) -> TPandas: ...
2725

2826

2927
def aspandas(obj: Any, *, factory: Any = None) -> Any:
@@ -81,18 +79,15 @@ def aspandas(obj: Any, *, factory: Any = None) -> Any:
8179

8280

8381
@overload
84-
def asframe(obj: DataClassOf[TFrame, PAny], *, factory: None = None) -> TFrame:
85-
...
82+
def asframe(obj: DataClassOf[TFrame, PAny], *, factory: None = None) -> TFrame: ...
8683

8784

8885
@overload
89-
def asframe(obj: DataClass[PAny], *, factory: Callable[..., TFrame]) -> TFrame:
90-
...
86+
def asframe(obj: DataClass[PAny], *, factory: Callable[..., TFrame]) -> TFrame: ...
9187

9288

9389
@overload
94-
def asframe(obj: DataClass[PAny], *, factory: None = None) -> pd.DataFrame:
95-
...
90+
def asframe(obj: DataClass[PAny], *, factory: None = None) -> pd.DataFrame: ...
9691

9792

9893
def asframe(obj: Any, *, factory: Any = None) -> Any:
@@ -136,18 +131,15 @@ def asframe(obj: Any, *, factory: Any = None) -> Any:
136131

137132

138133
@overload
139-
def asseries(obj: DataClassOf[TSeries, PAny], *, factory: None = None) -> TSeries:
140-
...
134+
def asseries(obj: DataClassOf[TSeries, PAny], *, factory: None = None) -> TSeries: ...
141135

142136

143137
@overload
144-
def asseries(obj: DataClass[PAny], *, factory: Callable[..., TSeries]) -> TSeries:
145-
...
138+
def asseries(obj: DataClass[PAny], *, factory: Callable[..., TSeries]) -> TSeries: ...
146139

147140

148141
@overload
149-
def asseries(obj: DataClass[PAny], *, factory: None = None) -> "pd.Series[Any]":
150-
...
142+
def asseries(obj: DataClass[PAny], *, factory: None = None) -> "pd.Series[Any]": ...
151143

152144

153145
def asseries(obj: Any, *, factory: Any = None) -> Any:
@@ -265,13 +257,11 @@ def items(field: Field) -> Iterable[tuple[Hashable, Any]]:
265257

266258

267259
@overload
268-
def name(fields: Field) -> Hashable:
269-
...
260+
def name(fields: Field) -> Hashable: ...
270261

271262

272263
@overload
273-
def name(fields: Fields) -> Optional[Hashable]:
274-
...
264+
def name(fields: Fields) -> Optional[Hashable]: ...
275265

276266

277267
def name(fields: Any) -> Any:

pandas_dataclasses/core/typing.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ class DataClass(Protocol[PAny]):
5050

5151
__dataclass_fields__: ClassVar[dict[str, Field[Any]]]
5252

53-
def __init__(self, *args: PAny.args, **kwargs: PAny.kwargs) -> None:
54-
...
53+
def __init__(self, *args: PAny.args, **kwargs: PAny.kwargs) -> None: ...
5554

5655

5756
class DataClassOf(Protocol[TPandas, PAny]):
@@ -60,8 +59,7 @@ class DataClassOf(Protocol[TPandas, PAny]):
6059
__dataclass_fields__: ClassVar[dict[str, Field[Any]]]
6160
__pandas_factory__: Callable[..., TPandas]
6261

63-
def __init__(self, *args: PAny.args, **kwargs: PAny.kwargs) -> None:
64-
...
62+
def __init__(self, *args: PAny.args, **kwargs: PAny.kwargs) -> None: ...
6563

6664

6765
def is_union(tp: Any) -> bool:

0 commit comments

Comments
 (0)