bwa...@gmail.com wrote:
>
>binario is the Python package that lets an application read/write primitive 
>data types from an underlying input/output file as binary data.
>
>Package on PyPI: https://pypi.python.org/pypi/binario
>Package on GitHub: https://github.com/asaskevich/binario
>Docs: http://binarios-docs.readthedocs.org/en/latest/
>
>Package still in Alpha, and I need some help with testing, new features and 
>docs :)

I hope you will accept constructive criticism.

The documentation says it lets an application read/write binary data from
an "underlying input/output stream".  That's not really accurate.  "Stream"
implies something very general, but your constructors will only accept
filenames.  Your code ONLY works with files.  If I have a stream of data in
memory, or an already open file, your code can't be used.

This is why packages like "struct" (which is basically a more compact
version of what you are doing) read from a string or a buffer, and leave
the file-like behavior to things that already know how to behave like
files.

Compare your sample code:

  >>> import binario
  >>> r = binario.Reader("file.dat")
  >>> r.read_short()
  2014
  >>> r.read_bool()
  True
  >>> r.read_float()
  3.1415
  >>> r.read_string()
  "Hello, world!"
  >>> r.read(5)
  b'\x80\x14\n\xff\x00'

To the equivalent code with struct:

  import struct

  dscrp = "H?fs5B"

  f = open('file.dat')
  stuff = struct.unpack( dscrp, f.read() )

  print stuff

In both cases, you have to KNOW the format of the data beforehand.  If you
do a read_short where you happen to have written a float, disaster ensues.

I don't really see that you've added very much.
-- 
Tim Roberts, t...@probo.com
Providenza & Boekelheide, Inc.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to