CI: Checking in f-strings we use {repr(...)} instead of {...!r}
- [x] ref #29886
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

---

Can merge only after merging:

- [x] #29948 

- [x] #29950

- [x] #29953 

- [x] #29959

- [x] #29963

@MomIsBestFriend I think all precursors are done (?) can you merge master? @WillAyd sorry for the delay, was on vacation.

Do you have an idea on how to exclude patterns like ```%%r```? > Do you have an idea on how to exclude patterns like %%r?

You want to grep for "%r" but exclude "%%r" right?

With regular grep you could do `grep -R --include=*.{py,pyx} '%r' pandas | grep -v '%%r'`.  I'm not sure what it will take to make this work with the `invgrep` in the code checks > > Do you have an idea on how to exclude patterns like %%r?
> 
> You want to grep for "%r" but exclude "%%r" right?
> 
> With regular grep you could do `grep -R --include=*.{py,pyx} '%r' pandas | grep -v '%%r'`. I'm not sure what it will take to make this work with the `invgrep` in the code checks

That's an interesting way of doing it, the problem is that the return status is messing my head. because the ```invgrep```  is giving the opposite return status of ```grep```. I just changed the matching pattern to make my life easier.

Hope my way of thinking is good. @MomIsBestFriend pls rebase.  did you figure out the grep issue? > did you figure out the grep issue?

Yes, I am greping for ```<Space>%r``` because it's more common, all the rest are edge cases, so it's not really worth writing test cases for them. Sorry for the short mess, messed something with the ```HEAD``` and the ```upstream/maser``` pointers.

It's all good now, correct? thanks @MomIsBestFriend 