Anyone using Kedro to move from notebooks to more stable code?

We’ve developed some code for an application in a notebook and are looking at ways to turn it into something closer to production-ready / long-term, stable code. I need some advice on how to do that.

It’s a fairly typical App for this community - read data in, manipulate it, compare it to some other data sources, present some metrics, finished. It runs easily on a desktop machine.

We’re looking to create code using an approach that…

  1. Can be adapted quickly to different cases, e.g. changing the name and location of input files, changing other aspects of the configuration but not the body of the code.
  2. Is Git compatible; we’ll set up and maintain a main version and just fork that for different cases
  3. Can be pulled and deployed to a different user’s machine and used with minimal fuss
  4. Is opinionated, in that it forces us to use a certain way of doing things (I don’t want to reinvent the wheel, so if someone has already done the groundwork, fine!)
  5. Doesn’t require me to stitch together 10 different services. Ideally I’d like to have everything in place with one pip install

So far I’m considering Kedro as it seems to have the above features and the learning curve is manageable.

However, I am wondering if

  1. there is best practice that I have ignored,
  2. if there is a better solution, or
  3. if anyone actually uses Kedro and could share their opinions.

Looking forward to your thoughts!

2 Likes

Hi
Sorry for the late reply.
I’ve found notebboks to be fine for teaching/showing and also for just one-day work. I would try setting the code to standard python files. You could then use any IDE and test &debug. You will then probably want to change the code and create functions and more object oriented python code.

I would then follow typical guidelines on creating python packages and automatic documentation using for example doxygen.

It’s looks a long ride but I think it will save you time if you want to be versioning and improving it.

Regards

Thanks for the ideas!

Yes, I’ve been working through that general process of starting with notebooks and then turning them in to more “normal” python.

Kedro was interesting because it was a way to write more structured, production-ready / static python code, but it turns out I just couldn’t afford the overhead in figuring out how to use it at this time. Maybe next time!