Skip to content

Commit

Permalink
fix(backport): Test xml.etree.ElementTree.Element truth value by 'is …
Browse files Browse the repository at this point in the history
…not None' (scikit-hep#2499)

* Backport PR scikit-hep#2459
* In Python 3.14 testing the truth value of an xml.etree.ElementTree.Element is
  deprecated and will raise an exception. As of Python 3.12 this behavior will
  raise a DeprecationWarning:

  ```
  DeprecationWarning: Testing an element's truth value will raise an exception
  in future versions.  Use specific 'len(elem)' or 'elem is not None' test
  instead.
  ```

  To avoid this, determine the truth element by using the 'elem is not None'
  method.
   - c.f. https://docs.python.org/3.12/library/xml.etree.elementtree.html#element-objects

Co-authored-by: Matthew Feickert <matthew.feickert@cern.ch>
  • Loading branch information
meeseeksmachine and matthewfeickert committed May 30, 2024
1 parent f9405bd commit 71b87eb
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/pyhf/writexml.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def _export_root_histogram(hist_name, data):
# https://stackoverflow.com/a/4590052
def indent(elem, level=0):
i = "\n" + level * " "
if elem:
if elem is not None:
if not elem.text or not elem.text.strip():
elem.text = i + " "
if not elem.tail or not elem.tail.strip():
Expand Down
2 changes: 1 addition & 1 deletion tests/test_export.py
Original file line number Diff line number Diff line change
Expand Up @@ -447,7 +447,7 @@ def test_integer_data(datadir, mocker):
mocker.patch("pyhf.writexml._ROOT_DATA_FILE")

channel = pyhf.writexml.build_channel(spec, channel_spec, {})
assert channel
assert channel is not None


@pytest.mark.parametrize(
Expand Down

0 comments on commit 71b87eb

Please sign in to comment.