How to set a prefab SpriteRenderer.sprite using script in editor?

I’m trying to set the sprite of a prefab in script

        Texture2D texture = AssetDatabase.LoadAssetAtPath<Texture2D>(assetPath);
        Sprite  sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0, 0));
        spriteRenderer.sprite = sprite;

The result is either sprite ends up as Type mismatch but actually works or the sprite ends up as None

What am I doing wrong? How am I supposed to create a sprite from a texture in script and apply it to a spriteRenderer?

Of course within an hour of posting this I worked out my problem.

Assets can be loaded as multiple types so instead of loading as a Texture2D and creating a Sprite I needed to do this:

Sprite sprite = AssetDatabase.LoadAssetAtPath<Sprite>(assetPath);

Problem solved