"can't set attribute" using "Recursive CTEs" on Nuke Python
The code you've highlighted is setting attributes dynamically onto an object, and this is a fairly fundamental thing to Peewee's operation. Possibly this is being prevented because these attributes correspond with the field instances declared on the model class? At any rate, this seems to be something you should bring up with the author of the python implementation you're attempting to use.
Hi!
I have problem will running peewee using Python built into Nuke software:
```
Python version
2.7.16 (v2.7.16-dirty:413a49145e, Aug  6 2019, 14:37:13) [MSC v.1913 64 bit (AMD64)]
Version info.
sys.version_info(major=2, minor=7, micro=16, releaselevel='final', serial=0)
```
In "normal" Python installation everything works as expected, only Python inside Nuke is problematic... for some reason :(

Here is my code raising error, it's nearly one to one copy of example from [peewee documentation:](http://docs.peewee-orm.com/en/latest/peewee/querying.html#recursive-ctes)
```
def get_categories(category=None):
    Base = Category.alias()
    level = Value(1).alias("level")
    path = Base.name.alias("path")
    base_case = (Base.select(Base.id, Base.name, Base.icon, Base.parent, level,
                             path).where(Base.parent == category).cte(
                                 "base", recursive=True))

    RTerm = Category.alias()
    rlevel = (base_case.c.level + 1).alias("level")
    rpath = base_case.c.path.concat("/").concat(RTerm.name).alias("path")
    recursive = RTerm.select(RTerm.id, RTerm.name, RTerm.icon, RTerm.parent, rlevel,
                             rpath).join(base_case,
                                         on=(RTerm.parent == base_case.c.id))

    cte = base_case.union_all(recursive)

    query = cte.select_from(cte.c.name, cte.c.icon, cte.c.level, cte.c.path,
                            cte.c.id, cte.c.parent_id).order_by(cte.c.level)

    return query
```

Category class:
```
class Category(Model):
    name = CharField()
    icon = CharField(null=True)
    parent = ForeignKeyField("self", null=True, backref="children")
```

And last but not least, error message:
```
Traceback (most recent call last):
  File "<string>", line 28, in <module>
  File "C:\Users\jp\.nuke\QUAM\Libs\peewee\peewee.py", line 4378, in next
    self.cursor_wrapper.iterate()
  File "C:\Users\jp\.nuke\QUAM\Libs\peewee\peewee.py", line 4297, in iterate
    result = self.process_row(row)
  File "C:\Users\jp\.nuke\QUAM\Libs\peewee\peewee.py", line 4363, in process_row
    return self.constructor(**row_dict)
  File "C:\Users\jp.nuke\QUAM\Libs\peewee\peewee.py", line 6736, in __call__
    return self.model(**kwargs)
  File "C:\Users\jp\.nuke\QUAM\Libs\peewee\peewee.py", line 6260, in __init__
    setattr(self, k, kwargs[k])
AttributeError: can't set attribute
```

Greetings, peewee is AWESOME :D