[nbdev] Refactor a class name easily

Hi there,

It’s an amazing new experience using nbdev, thank you for developing this idea for everyone. I am using nbdev in a couple of small libraries, one of which has grown a little morein size ~10 nbs.

Having gone through a few iterations developing, I now tried to refactor a core class called Dataset, to DatasetGenerator. Unfortunatelly, I haven’t found an efficient way to do it, other than by replacing carefully every string.

So far i’ve tried nbdev it in major IDE’s like PyCharm and VSCode and worked with JupyterLab for a bit. Simple old Jupyter is great for a small project, but gets unwieldy after having several Notebooks.

I am aware of nbdev_update_lib, which is also a fantastic idea, but doesn’t do the job everywhere yet. The tree contains notebooks and the source code, making it more challenging to refactor with tools like ack.

I know it’s a tooling thing, that may be fixed in the future by IDE’s, it would just be great to be able to use it more efficiently even now. I’m sure this has come up when developing fast.ai library, which is quite sizeable.

It would be great to hear your suggestions on refactoring code efficiently in a notebook/code environment.

Thanks for all the good work.