# Tuesday, August 2, 2016¶

I continued on #1089 and found the explanation. The new appy.pod seems more strict about whitespace in for statements.

The real error message (which I saw after rendering the document with raiseOnError=False was:

Bad “for” expression “row in”. A “for” expression must be of the form: {name} in {expression}. {name} must be a Python variable name. It is the name of the iteration variable. {expression} is a Python expression that, when evaluated, produces a Python sequence (tuple, string, list, etc).

The template used to render ISIP contracts contained the following statement at three places:

do text for p in self.contractpartner_set.all()


The problem disappeared after I had gone through all three statements, deleted the whitespace between “p” and “in”, and inserted a new space. Don’t ask me what was wrong with the previous whitespace. There was no visible difference. I was (h)appy that it worked and didn’t want to investigate the content.xml.

## Inline strong start-string without end-string¶

Yet another problem caused indirectly by the Ubuntu upgrade: I cannot build the docs for atelier (without setting tolerate_sphinx_warnings to True):

atelier/atelier/tasks.py:docstring of atelier.tasks:0: WARNING: Inline strong start-string without end-string.


This is actually an old problem. It comes because autosummary includes imported objects (and because some external code may contain invalid docstrings). See Sphinx ticket #1061. I manualy patched my copy of Sphinx as explained there.

## Transferred GitHub repositories for Lino and Lino Book¶

I transferred ownership of the GitHub repositories for Lino and Lino Book from my personal account to our team account, and I renamed “lino_book” to simply “book”.

As explained in About repository transfers I then was supposed to do:

$cd ~/repositories/lino$ git remote set-url origin https://github.com/lino-framework/lino.git
$cd ~/repositories/book$ git remote set-url origin https://github.com/lino-framework/book.git


## Formatting Belgian national id numbers¶

The national_id of a BeIdCardHolder is now being formatted and validated immediately when the object is saved.

This behaviour is optional, though. In order to activate it, you must set lino_xl.lib.beid.mixins.BeIdCardHolder.validate_national_id to True. This is because in Lino Welfare they might not want it.

In Lino Voga they now see the ProblemsByOwner panel on every partner view.

## Yet another documentation bug¶

Grigorij found yet another “bug” in The Lino Polls tutorial: The “config” directory must not be “under your project directory” but in the “mysite” directory.

I also noted that the <div class=”htmlText”> is no longer necessary since we now have lino.modlib.extjs.ext_renderer.ExtRenderer.html_text().

## Sphinx: search index couldn’t be loaded¶

The following warning is nagging me:

Warning, treated as error:
WARNING: search index couldn't be loaded, but not all documents will be built: the index will be incomplete.


It seems that the html builder has a problem when loading an existing searchindex.js file. (the exception there is an IOError “read error at pos 99758”). And because I use -W, I cannot do an incremental build any more. As a temporary workaround I patched my copy of Sphinx sphinx/builders/html.py. Before:

except (IOError, OSError, ValueError):
if keep:
self.warn('search index couldn\'t be loaded, but not all '
'documents will be built: the index will be '
'incomplete.'.)


After:

except (IOError, OSError, ValueError) as e:
if keep:
self.info('search index couldn\'t be loaded, but not all '
'documents will be built: the index will be '
'incomplete. ({})'.format(e))


## Lino and Django 1.10¶

Yes, lino_xl.lib.sepa.fields still uses SubfieldBase. Django 1.9 issues a DeprecationWarning, and Django 1.10 says AttributeError: 'module' object has no attribute 'SubfieldBase'.