Thanks! The documentation for how to set up custom cursors in pygame is here: https://www.pygame.org/docs/ref/cursors.html
And src.utils.profiling is a module I wrote (using cProfile) that I used to help identify performance bottlenecks during development. The idea is that you toggle it on, wait a bit (while the game is running), and then toggle it off, and it prints a report of which methods were called during that period and how long they took.
For more pygame-specific questions I'd urge you to check out the pygame community discord, where lots of experienced pygamers can help with stuff like this!