How to modify deprecated imports for a reusable app?
Django has a strict backwards compatibility policy. If it's raising a deprecation warning, then the new version works already in 1.9. You should just switch to it before you upgrade.
My project depends on an OSS reusable app, and that app includes a Django import which is deprecated in Django 1.10:
from django.db.models.sql.aggregates import Aggregate
is changing to:
from django.db.models.aggregates import Aggregate
We get a warning on Django 1.9, which will become an error on Django 1.10. This is blocking our upgrade, and I want to contribute a fix to the app so we can upgrade.
One option would be to modify the requirements in setup.py so that Django 1.10 is required. But I'm sure my contribution would be rejected since it would break for everyone else. 
To maintain backwards compatibility, I can do the import as a try/except but that feels hacky. It seems like I need to do some Django version checking in the imports.  Should I do a Django version check, which returns a string, convert that to a float, and do an if version > x? That feels hacky too. 
What's the best practice on this? Examples?