Well Pygame itself is essentially a Python wrapper for SDL calls. I think that basically you just wrap the shell.
You can always create your own adapter API, but what exactly do you dislike about the Pygame API, that you feel that you need to separate it from your code?
I think that your general methods, such as selective conflict detection, can be divided into your own engine module, essentially separating it from the rest of your game code, but essentially you just execute Pygame with this approach, rather than wrapping it .
EDIT:
, , . , , . The Independent Gaming Source forums, . , - , .
, , "" Pygame, SDL, , - (, ) . , , , , -, Pygame.
RTS Pygame, , , RTS , , , , . , , , , RTS Pygame, .