-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Hi,
Windows 11
Python 3.11.4
snirf 0.7.4
I'm learning to use the module to create snirf files from scratch. I've run into a problem, where my code also uses the logging module and sets logging.basicConfig, and it results in a TypeError exception being thrown on save(). Minimal example follows:
import logging
from snirf import Snirf
logging.basicConfig(level=logging.DEBUG)
with Snirf("test.snirf", "w") as f:
f.nirs.appendGroup()
f.save()Running this code results in:
INFO:root:Loading from file test.snirf
INFO:root:IndexedGroup Nirs at / in test.snirf initalized with 0 instances of <class 'snirf.pysnirf2.NirsElement'>
INFO:root:IndexedGroup Data at //nirs1 in None initalized with 0 instances of <class 'snirf.pysnirf2.DataElement'>
INFO:root:IndexedGroup Stim at //nirs1 in None initalized with 0 instances of <class 'snirf.pysnirf2.StimElement'>
INFO:root:IndexedGroup Aux at //nirs1 in None initalized with 0 instances of <class 'snirf.pysnirf2.AuxElement'>
INFO:root:1 th <class 'snirf.pysnirf2.NirsElement'> appended to IndexedGroup Nirs at / in test.snirf
--- Logging error ---
Traceback (most recent call last):
File "C:\Users\dev\.pyenv\pyenv-win\versions\3.11.4\Lib\logging\__init__.py", line 1110, in emit
msg = self.format(record)
^^^^^^^^^^^^^^^^^^^
File "C:\Users\dev\.pyenv\pyenv-win\versions\3.11.4\Lib\logging\__init__.py", line 953, in format
return fmt.format(record)
^^^^^^^^^^^^^^^^^^
File "C:\Users\dev\.pyenv\pyenv-win\versions\3.11.4\Lib\logging\__init__.py", line 687, in format
record.message = record.getMessage()
^^^^^^^^^^^^^^^^^^^
File "C:\Users\dev\.pyenv\pyenv-win\versions\3.11.4\Lib\logging\__init__.py", line 377, in getMessage
msg = msg % self.args
~~~~^~~~~~~~~~~
TypeError: not all arguments converted during string formatting
Call stack:
File "C:\Code\snirf_logging_bug.py", line 9, in <module>
f.save()
File "C:\Users\dev\Virtualenvs\snirfbug\Lib\site-packages\snirf\pysnirf2.py", line 6117, in save
self._save(self._h.file)
File "C:\Users\dev\Virtualenvs\snirfbug\Lib\site-packages\snirf\pysnirf2.py", line 5879, in _save
self.nirs._save(*args)
File "C:\Users\dev\Virtualenvs\snirfbug\Lib\site-packages\snirf\pysnirf2.py", line 1361, in _save
self._order_names(h=h) # Enforce order in the group names
File "C:\Users\dev\Virtualenvs\snirfbug\Lib\site-packages\snirf\pysnirf2.py", line 1280, in _order_names
self._cfg.logger.info(
Message: '//nirs1'
Arguments: ('--->', '//nirs')
INFO:root:Closing Snirf file test.snirf
No exception is thrown if the code only changes a property of the snirf root (e.g. formatVersion), but doesn't append a nirs group. Removing the logging.basicConfig line also removes the error.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working