Skip to content

Commit 39a3bf3

Browse files
ENH: Fix Python 3.13 test failures & enable CI (#59065)
* ENH: Fix Python 3.13 test failures & enable CI x-ref #58734 Co-authored-by: Thomas Li <47963215+lithomas1@users.noreply.github.com> * Cast npy_intp to int to fix Windows CI --------- Co-authored-by: Thomas Li <47963215+lithomas1@users.noreply.github.com>
1 parent 9dc725a commit 39a3bf3

File tree

8 files changed

+22
-13
lines changed

8 files changed

+22
-13
lines changed

Diff for: .github/workflows/unit-tests.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ jobs:
299299
# To freeze this file, uncomment out the ``if: false`` condition, and migrate the jobs
300300
# to the corresponding posix/windows-macos/sdist etc. workflows.
301301
# Feel free to modify this comment as necessary.
302-
if: false # Uncomment this to freeze the workflow, comment it to unfreeze
302+
# if: false # Uncomment this to freeze the workflow, comment it to unfreeze
303303
defaults:
304304
run:
305305
shell: bash -eou pipefail {0}
@@ -331,7 +331,7 @@ jobs:
331331
- name: Set up Python Dev Version
332332
uses: actions/setup-python@v5
333333
with:
334-
python-version: '3.12-dev'
334+
python-version: '3.13-dev'
335335

336336
- name: Build Environment
337337
run: |

Diff for: pandas/_libs/src/vendored/ujson/python/objToJSON.c

+6-6
Original file line numberDiff line numberDiff line change
@@ -410,8 +410,8 @@ static void NpyArr_iterBegin(JSOBJ _obj, JSONTypeContext *tc) {
410410
npyarr->type_num = PyArray_DESCR(obj)->type_num;
411411

412412
if (GET_TC(tc)->transpose) {
413-
npyarr->dim = PyArray_DIM(obj, npyarr->ndim);
414-
npyarr->stride = PyArray_STRIDE(obj, npyarr->ndim);
413+
npyarr->dim = PyArray_DIM(obj, (int)npyarr->ndim);
414+
npyarr->stride = PyArray_STRIDE(obj, (int)npyarr->ndim);
415415
npyarr->stridedim = npyarr->ndim;
416416
npyarr->index[npyarr->ndim] = 0;
417417
npyarr->inc = -1;
@@ -452,8 +452,8 @@ static void NpyArrPassThru_iterEnd(JSOBJ obj, JSONTypeContext *tc) {
452452
return;
453453
}
454454
const PyArrayObject *arrayobj = (const PyArrayObject *)npyarr->array;
455-
npyarr->dim = PyArray_DIM(arrayobj, npyarr->stridedim);
456-
npyarr->stride = PyArray_STRIDE(arrayobj, npyarr->stridedim);
455+
npyarr->dim = PyArray_DIM(arrayobj, (int)npyarr->stridedim);
456+
npyarr->stride = PyArray_STRIDE(arrayobj, (int)npyarr->stridedim);
457457
npyarr->dataptr += npyarr->stride;
458458

459459
NpyArr_freeItemValue(obj, tc);
@@ -524,8 +524,8 @@ static int NpyArr_iterNext(JSOBJ _obj, JSONTypeContext *tc) {
524524
}
525525
const PyArrayObject *arrayobj = (const PyArrayObject *)npyarr->array;
526526

527-
npyarr->dim = PyArray_DIM(arrayobj, npyarr->stridedim);
528-
npyarr->stride = PyArray_STRIDE(arrayobj, npyarr->stridedim);
527+
npyarr->dim = PyArray_DIM(arrayobj, (int)npyarr->stridedim);
528+
npyarr->stride = PyArray_STRIDE(arrayobj, (int)npyarr->stridedim);
529529
npyarr->index[npyarr->stridedim] = 0;
530530

531531
((PyObjectEncoder *)tc->encoder)->npyCtxtPassthru = npyarr;

Diff for: pandas/_libs/tslibs/offsets.pyx

+6-1
Original file line numberDiff line numberDiff line change
@@ -4948,7 +4948,12 @@ cpdef to_offset(freq, bint is_period=False):
49484948
if result is None:
49494949
raise ValueError(INVALID_FREQ_ERR_MSG.format(freq))
49504950

4951-
if is_period and not hasattr(result, "_period_dtype_code"):
4951+
try:
4952+
has_period_dtype_code = hasattr(result, "_period_dtype_code")
4953+
except ValueError:
4954+
has_period_dtype_code = False
4955+
4956+
if is_period and not has_period_dtype_code:
49524957
if isinstance(freq, str):
49534958
raise ValueError(f"{result.name} is not supported as period frequency")
49544959
else:

Diff for: pandas/tests/groupby/test_groupby.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2445,7 +2445,7 @@ def test_rolling_wrong_param_min_period():
24452445
test_df.columns = ["name", "val"]
24462446

24472447
result_error_msg = (
2448-
r"^[a-zA-Z._]*\(\) got an unexpected keyword argument 'min_period'$"
2448+
r"^[a-zA-Z._]*\(\) got an unexpected keyword argument 'min_period'"
24492449
)
24502450
with pytest.raises(TypeError, match=result_error_msg):
24512451
test_df.groupby("name")["val"].rolling(window=2, min_period=1).sum()

Diff for: pandas/tests/io/parser/test_dialect.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def custom_dialect():
2626
"escapechar": "~",
2727
"delimiter": ":",
2828
"skipinitialspace": False,
29-
"quotechar": "~",
29+
"quotechar": "`",
3030
"quoting": 3,
3131
}
3232
return dialect_name, dialect_kwargs

Diff for: pandas/tests/io/test_common.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,10 @@ def test_warning_missing_utf_bom(self, encoding, compression_):
474474
df.to_csv(path, compression=compression_, encoding=encoding)
475475

476476
# reading should fail (otherwise we wouldn't need the warning)
477-
msg = r"UTF-\d+ stream does not start with BOM"
477+
msg = (
478+
r"UTF-\d+ stream does not start with BOM|"
479+
r"'utf-\d+' codec can't decode byte"
480+
)
478481
with pytest.raises(UnicodeError, match=msg):
479482
pd.read_csv(path, compression=compression_, encoding=encoding)
480483

Diff for: pandas/tests/io/xml/test_xml.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1038,7 +1038,7 @@ def test_utf16_encoding(xml_baby_names, parser):
10381038
UnicodeError,
10391039
match=(
10401040
"UTF-16 stream does not start with BOM|"
1041-
"'utf-16-le' codec can't decode byte"
1041+
"'utf-16(-le)?' codec can't decode byte"
10421042
),
10431043
):
10441044
read_xml(xml_baby_names, encoding="UTF-16", parser=parser)

Diff for: pandas/tests/scalar/timedelta/test_arithmetic.py

+1
Original file line numberDiff line numberDiff line change
@@ -623,6 +623,7 @@ def test_td_floordiv_invalid_scalar(self):
623623
[
624624
r"Invalid dtype datetime64\[D\] for __floordiv__",
625625
"'dtype' is an invalid keyword argument for this function",
626+
"this function got an unexpected keyword argument 'dtype'",
626627
r"ufunc '?floor_divide'? cannot use operands with types",
627628
]
628629
)

0 commit comments

Comments
 (0)