'Take an Apps and return a ProjectState matching it.'

@classmethod
def from_apps(cls, apps):

    app_models = {}
    for model in apps.get_models(include_swapped=True):
        model_state = ModelState.from_model(model)
        app_models[(model_state.app_label, model_state.name_lower)] = model_state
    return cls(app_models)
