|
[Rivet] Using zipped I/OAndy Buckley andy.buckley at cern.chMon Apr 30 22:38:35 BST 2018
I had a look this evening... it was a bit fiddly, but I've converted all the Python write and read functions to use the C++ IO functions, and have moved more .gz filename detection into the C++. So it works now. Needs some improvements to converter script argument parsing, but I think should work now for your purposes. Andy On 25 April 2018 at 11:38, Corpe, Louie <l.corpe at ucl.ac.uk> wrote: > Thanks Andy, > > I'll give it a try. > > Louie > > On 25 Apr 2018, at 11:33, Andy Buckley <andy.buckley at cern.ch> wrote: > > I dug a bit more: it works from C++ but not from Python. Funny, I could > have sworn that I had both working, but apparently not. It also doesn't > work for gz output at the Python level, apparently: yoda2yoda test.yoda > test.yoda.gz does not work, but it should. > > The Python interface to the YODA IO functions is in > pyext/yoda/include/IO.pyx. It does have to play some games to convert the > Pythonic view of files to the C++ stream one, and maybe this is where it's > going wrong. It's certainly where the complaint about the ascii encoding is > coming from. Could you take a look there and see if you can persuade it to > do the right thing? > > The zipped IO itself is only supported for the YODA format, and is > implemented in src/ReaderYODA.cc <http://readeryoda.cc/> and src/Writ > erYODA.cc <http://writeryoda.cc/> -- it should be completely automatic > and you shouldn't have to touch this code, but it might help for > understanding how to interface it to the Python. > > Andy > > > On 23 April 2018 at 13:59, Corpe, Louie <l.corpe at ucl.ac.uk> wrote: > >> Hi Riveters, >> >> >> I'm trying to use the zipped i/o functionality introduced in Rivet 2.6.0 >> / Yoda 1.7.0. >> I can't seem to get it working: is there an example of how to do this >> somewhere? >> >> I've included a minimal example [1]. Please let me know what I'm doing >> wrong! >> The files I used in [1] can be found on my public on lxplus: /afs/ >> cern.ch/user/l/lcorpe/public/RivetZippedIO/examples/ >> >> All the best and thanks in advance ! >> >> >> Louie >> >> >> [1] >> [lcorpe at lxplus005 scratch]$ gzip -c out1028_DSIDxxx.MEWeight.yoda > >> examples/out1028_DSIDxxx.MEWeight.yoda.gz >> [lcorpe at lxplus005 scratch]$ python >> Python 2.7.5 (default, Aug 4 2017, 00:39:18) >> [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2 >> Type "help", "copyright", "credits" or "license" for more information. >> >>> import yoda as y >> >>> a= y.read("examples/out1028_DSIDxxx.MEWeight.yoda.gz") >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> File "yoda/include/IO.pyx", line 107, in yoda.core.read (/afs/ >> cern.ch/user/l/lcorpe/scratch/rivet/YODA-1.7.0/pyext/yoda/core.cpp:85809) >> UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 1: >> ordinal not in range(128) >> >>> >> _______________________________________________ >> Rivet mailing list >> Rivet at projects.hepforge.org >> https://www.hepforge.org/lists/listinfo/rivet >> > > > > -- > Dr Andy Buckley, Lecturer / Royal Society University Research Fellow > Particle Physics Expt Group, University of Glasgow > > > -- Dr Andy Buckley, Lecturer / Royal Society University Research Fellow Particle Physics Expt Group, University of Glasgow -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://www.hepforge.org/lists-archive/rivet/attachments/20180430/daeb9e19/attachment.html>
More information about the Rivet mailing list |