Impacted versions:10

Steps to reproduce:
Following the code in https://www.odoo.com/documentation/10.0/api_integration.html both in a fresh install and against 'https://demo.odoo.com/start' trows a type error

Current behavior:
Now I get an error when executing:

```
ids = models.execute_kw(db, uid, password,  'res.partner', 'search',
    [[['is_company', '=', True], ['customer', '=', True]]],
    {'limit': 1})
[record] = models.execute_kw(db, uid, password,
    'res.partner', 'read', [ids])
# count the number of fields fetched by default
len(record)
```

In particular it seems to be a type error (cannot marshal class odoo.tools.float_utils.float_precision)

Expected behavior:
I would expect it to behave as in the documentation

""" Determine field parameter attributes. """
        
        attrs = {}
        if not (self.args.get('automatic') or self.args.get('manual')):
            
            for field in reversed(resolve_mro(model, name, self._can_setup_from)):
                attrs.update(field.args)
        attrs.update(self.args)         
        attrs['args'] = self.args
        attrs['model_name'] = model._name
        attrs['name'] = name
        
        if attrs.get('compute'):
            
            attrs['store'] = attrs.get('store', False)
            attrs['copy'] = attrs.get('copy', False)
            attrs['readonly'] = attrs.get('readonly', not attrs.get('inverse'))
        if attrs.get('related'):
            
            attrs['store'] = attrs.get('store', False)
            attrs['copy'] = attrs.get('copy', False)
        if attrs.get('company_dependent'):
            
            attrs['store'] = attrs.get('store', False)
            attrs['copy'] = attrs.get('copy', False)
        
        if not isinstance(attrs.get('origin'), (NoneType, fields.function)):
            attrs.pop('store', None)
        self.set_all_attrs(attrs)