Skip to content

Commit 5bdff46

Browse files
committed
implement #169
1 parent 5431c31 commit 5bdff46

3 files changed

Lines changed: 11 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## [4.0.2] - 2025-06-23
4+
### Fixed
5+
- `write_xml` - now supports `Path` from `pathlib`.
6+
7+
38
## [4.0.1] - 2025-06-23
49
### Fixed
510
- `write_xml` - Remove encoding kwarg to fix `binary mode doesn't take an encoding argument`

junitparser/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
TestSuite,
1717
)
1818

19-
version = "4.0.1"
19+
version = "4.0.2"
2020

2121
__all__ = [
2222
"Attr",

junitparser/junitparser.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io
1212
import itertools
1313
from copy import deepcopy
14+
from pathlib import Path
1415
from typing import List, Union, Iterator, IO, Optional
1516

1617
try:
@@ -19,7 +20,7 @@
1920
from xml.etree import ElementTree as etree
2021

2122

22-
def write_xml(obj, file_or_filename: Optional[Union[str, IO]] = None, *, pretty: bool = False):
23+
def write_xml(obj, file_or_filename: Optional[Union[str, IO, Path]] = None, *, pretty: bool = False):
2324
tree = etree.ElementTree(obj._elem)
2425
if file_or_filename is None:
2526
file_or_filename = obj.filepath
@@ -32,6 +33,9 @@ def write_xml(obj, file_or_filename: Optional[Union[str, IO]] = None, *, pretty:
3233
text = etree.tostring(obj._elem)
3334
xml = parseString(text) # nosec
3435
content = xml.toprettyxml(encoding="utf-8")
36+
if isinstance(file_or_filename, Path):
37+
file_or_filename = str(file_or_filename)
38+
3539
if isinstance(file_or_filename, str):
3640
with open(file_or_filename, mode="wb") as xmlfile:
3741
xmlfile.write(content)

0 commit comments

Comments
 (0)