Access AngularJS scope through Selenium - most likely that state is already held in Scope/IsolatedScope .
I built a few extensions to help with this that can be translated to python.
webDriver.NgWaitFor(productDiv, "scope.Data.Id != 0");
webDriver.NgWaitFor(partialElement, "scope.IsBusyLoadingTemplate == false");
https://github.com/leblancmeneses/RobustHaven.IntegrationTests/blob/master/NgExtensions/NgWebDriverExtensions.cs
to deal with ajax request when your working with both angularjs $http and jquery I use:
webDriver.WaitFor("window.isBrowserBusy() == false");
requires you to setup intercepts in both angularjs and jquery to manage the count of the xhr requests.
Here is the framework we are using in our project: (you might want to extract more pieces from it)
https://github.com/leblancmeneses/RobustHaven.IntegrationTests