Add unique_constraints, a more versatile replacement for django_get_or_create and sqlalchemy_get_or_create
This change deprecates django_get_or_create and sqlalchemy_get_or_create; upgrade helpers are provided through a newly-introduced option renaming helper.
Closes #241: The new unique_constraints feature is more powerful, but supports the exact same cases; a specific case has been added to opt out of lookups for Factory.build() and Factory.stub().
Examples are provided for Django and SQLAlchemy unique constraint declarations.
Closes #69: With the implementation of unique_constraints - and its lazy declaration resolution algorithm, non-constrained declarations will only be resolved once lookups have failed; this avoids creating orphan objects.
Closes #781: The call-time parameters are now explicitly included in the lookup algorithm; they no longer need to be kept attached to the factory class, which leaked instances.
Note: the change includes updated code, additional tests, deprecation warning and migration helpers.
@francoisfreitag if you've got some time, I'd be happy to get another set of eyes on this ;)
Any updates on this?