You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to convert .stdf files into .txt files by following the example you provided in stdf2text.
Below snippet is the portion that creates a parser and add a TextWriter sink into the the parser and then executes the parser. For some reason, I keep getting the following error:
NameError: name 'self' is not defined
Below is my code and the error traceback message .
Even if I use TextWriter without any argument. it still causes the same issue.
Could you please provide your insights into what could potentially be causing this?
Thanks,
Peter
import pystdf.V4
from pystdf.IO import Parser
from pystdf.Mapping import StreamMapper
from pystdf.V4 import pir, prr, mpr
from pystdf.Writers import TextWriter
from pystdf.Pipeline import DataSource
.... Skipping other irrelevant portions like regex, etc... ....
for file in os.listdir(curpath):
if FID.search(file) == None:
continue
else:
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: %s <stdf file>" % (sys.argv[0]))
else:
f = open(sys.argv[1],'rb')
fout = open(FID.search(file).group(1) + '.txt','w')
p = Parser(inp=f)
writer = TextWriter(stream=fout)
p.addSink(writer)
p.parse()
print('parse complete')
f.close()
And I keep getting the following errors:
Traceback (most recent call last):
File "dlog_script.py", line 179, in
p.parse()
File "/home/peterle/python3/lib/python3.6/site-packages/pystdf/IO.py", line 183, in parse
self.parse_records(count)
File "/home/peterle/python3/lib/python3.6/site-packages/pystdf/IO.py", line 165, in parse_records
self.send((recType, fields))
File "/home/peterle/python3/lib/python3.6/site-packages/pystdf/Pipeline.py", line 33, in new_fn
action(sink, *args)
File "/home/peterle/python3/lib/python3.6/site-packages/pystdf/Writers.py", line 58, in after_send
self.delimiter.join([self.text_format(data[0], i, val) for i, val in enumerate(data[1])]))
File "/home/peterle/python3/lib/python3.6/site-packages/pystdf/Writers.py", line 58, in
self.delimiter.join([self.text_format(data[0], i, val) for i, val in enumerate(data[1])]))
File "/home/peterle/python3/lib/python3.6/site-packages/pystdf/Writers.py", line 44, in text_format
return self.delimiter.join([str(v) for v in value])
NameError: name 'self' is not defined
The text was updated successfully, but these errors were encountered:
There's a static method in Writers.py that references "self.delimiter". Static methods aren't bound to a specific object so they don't have access to "self". As a workaround change line 44 in pystdf/Writers.py to use just a constant '|' for the delimiter and you'll be all set, e.g.
returnself.delimiter.join([str(v) forvinvalue])
becomes:
return'|'.join([str(v) forvinvalue])
Not ideal since the delimiter for that class might be set differently, but enough to get you going.
This issue results in the current version of pystdf failing on it's own example files. (ex., data/demofile.stdf and the other ones ... it fails once it hits the GDR records).
Hi,
I am trying to convert .stdf files into .txt files by following the example you provided in stdf2text.
Below snippet is the portion that creates a parser and add a TextWriter sink into the the parser and then executes the parser. For some reason, I keep getting the following error:
NameError: name 'self' is not defined
Below is my code and the error traceback message .
Even if I use TextWriter without any argument. it still causes the same issue.
Could you please provide your insights into what could potentially be causing this?
Thanks,
Peter
import pystdf.V4
from pystdf.IO import Parser
from pystdf.Mapping import StreamMapper
from pystdf.V4 import pir, prr, mpr
from pystdf.Writers import TextWriter
from pystdf.Pipeline import DataSource
.... Skipping other irrelevant portions like regex, etc... ....
for file in os.listdir(curpath):
if FID.search(file) == None:
continue
And I keep getting the following errors:
Traceback (most recent call last):
File "dlog_script.py", line 179, in
p.parse()
File "/home/peterle/python3/lib/python3.6/site-packages/pystdf/IO.py", line 183, in parse
self.parse_records(count)
File "/home/peterle/python3/lib/python3.6/site-packages/pystdf/IO.py", line 165, in parse_records
self.send((recType, fields))
File "/home/peterle/python3/lib/python3.6/site-packages/pystdf/Pipeline.py", line 33, in new_fn
action(sink, *args)
File "/home/peterle/python3/lib/python3.6/site-packages/pystdf/Writers.py", line 58, in after_send
self.delimiter.join([self.text_format(data[0], i, val) for i, val in enumerate(data[1])]))
File "/home/peterle/python3/lib/python3.6/site-packages/pystdf/Writers.py", line 58, in
self.delimiter.join([self.text_format(data[0], i, val) for i, val in enumerate(data[1])]))
File "/home/peterle/python3/lib/python3.6/site-packages/pystdf/Writers.py", line 44, in text_format
return self.delimiter.join([str(v) for v in value])
NameError: name 'self' is not defined
The text was updated successfully, but these errors were encountered: