CTPUG/wafer

`./manage.py load_pages` fails under Python 2

Closed this issue · 3 comments

OdyX commented

$ manage.py load_pages
Traceback (most recent call last):
  File "./manage.py", line 20, in <module>
    execute_from_command_line(sys.argv)
  File "/home/vagrant/ENV/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
    utility.execute()
  File "/home/vagrant/ENV/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 346, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/vagrant/ENV/local/lib/python2.7/site-packages/django/core/management/base.py", line 394, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/vagrant/ENV/local/lib/python2.7/site-packages/django/core/management/base.py", line 445, in execute
    output = self.handle(*args, **options)
  File "/home/vagrant/ENV/local/lib/python2.7/site-packages/wafer/pages/management/commands/load_pages.py", line 21, in handle
    meta, content = self.read_page(os.path.join(dirpath, fn))
  File "/home/vagrant/ENV/local/lib/python2.7/site-packages/wafer/pages/management/commands/load_pages.py", line 51, in read_page
    contents = f.read()
ValueError: Mixing iteration and read methods would lose data

(I'll switch my deployment to Python 3, but thought it would still make sense to report)

What is the actual exception thrown? It seems to somehow have been dropped from the traceback.

OdyX commented

Oh indeed, sorry. It's:

ValueError: Mixing iteration and read methods would lose data

In other words, mixing f.readline() on line 42, for line in f: (aka f.next()) on line 46 and f.read() on line 51 is not allowed under Python2.

Hopefully addressed by #374.