Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit5a4ba58

Browse files
committed
RF: Simplify CaretSpecParser slightly
1 parentba94e2b commit5a4ba58

File tree

1 file changed

+7
-24
lines changed

1 file changed

+7
-24
lines changed

‎nibabel/cifti2/caretspec.py‎

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,6 @@ def from_filename(klass, fname, **kwargs):
146146
classCaretSpecParser(xml.XmlParser):
147147
def__init__(self,encoding=None,buffer_size=3500000,verbose=0):
148148
super().__init__(encoding=encoding,buffer_size=buffer_size,verbose=verbose)
149-
self.fsm_state= []
150149
self.struct_state= []
151150

152151
self.caret_spec=None
@@ -164,8 +163,7 @@ def StartElementHandler(self, name, attrs):
164163
elifname=='MetaData':
165164
self.caret_spec.metadata=CaretMetaData()
166165
elifname=='MD':
167-
self.fsm_state.append('MD')
168-
self.struct_state.append(['',''])
166+
self.struct_state.append({})
169167
elifnamein ('Name','Value'):
170168
self.write_to=name
171169
elifname=='DataFile':
@@ -181,13 +179,9 @@ def StartElementHandler(self, name, attrs):
181179

182180
defEndElementHandler(self,name):
183181
self.flush_chardata()
184-
ifname=='CaretSpecFile':
185-
...
186-
elifname=='MetaData':
187-
...
188-
elifname=='MD':
189-
key,value=self.struct_state.pop()
190-
self.caret_spec.metadata[key]=value
182+
ifname=='MD':
183+
MD=self.struct_state.pop()
184+
self.caret_spec.metadata[MD['Name']]=MD['Value']
191185
elifnamein ('Name','Value'):
192186
self.write_to=None
193187
elifname=='DataFile':
@@ -212,23 +206,12 @@ def flush_chardata(self):
212206
ifself._char_blocksisNone:
213207
return
214208

215-
# Just join the strings to get the data. Maybe there are some memory
216-
# optimizations we could do by passing the list of strings to the
217-
# read_data_block function.
218-
data=''.join(self._char_blocks)
209+
data=''.join(self._char_blocks).strip()
219210
# Reset the char collector
220211
self._char_blocks=None
221212
# Process data
222-
ifself.write_to=='Name':
223-
data=data.strip()# .decode('utf-8')
224-
pair=self.struct_state[-1]
225-
pair[0]=data
226-
227-
elifself.write_to=='Value':
228-
data=data.strip()# .decode('utf-8')
229-
pair=self.struct_state[-1]
230-
pair[1]=data
213+
ifself.write_toin ('Name','Value'):
214+
self.struct_state[-1][self.write_to]=data
231215

232216
elifself.write_to=='DataFile':
233-
data=data.strip()
234217
self.struct_state[-1].uri=data

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp