DeadLock is a simple and fast way to manage the data science projects. It handles all your projects, different packages and python versions simultaneously leaving you to worry only about your project content.
Hi Guys, here I am with my idea of managing python projects using an open-source tool that I named as "DeadLock" (unoriginal, I know) which I am designing especially for Data Scientists and ML Engineers. It will help users to create, manage and access their projects without the hassle of managing dependencies, maintaining "requirements.txt" and compatibility issues between different dependencies.
So, you might ask, why, what is the need and there are already so many project managers out there. Why not use one of them?
To be fair, I got this idea from a project manager that I use called uv which is written in Rust. But the problem is, it always generates a basic template which is generalised for all kinds of projects. Also, whenever I create a new project, I have to reconfigure all the dependencies like pytorch, pandas, keras, EVERYTHING. Now, I hear you, I could have just forked uv and create my own project manager, but first and foremost, I don't know Rust (that's why I will be using C++) and second why to keep such a novel idea to just myself when it can help millions of people like me.
So, that's the background story of the idea, now let's talk about the idea itself. What I've thought about this can be summarised into following points:
- Dependencies: It should automatically add all the required dependencies like Pytorch, TensorFlow, Cuda, etc. without explicitly defining so. It should generate a "lock" file similar to uv.lock that should maintain all the external dependencies installed. It should also be able to identify any compatibility issues occurring due to version mismatch and be able to resolve them as soon as possible.
- It should create all the required files for the project, be it a notebook or a simple python file. It should automatically initialise a git repository similar to the name of project as defined by user and make the initial commit.
- It should be able to generate boilerplate code based on the type of project the user defines. For example, if a user wants to create a simple Computer Vision project with a notebook and Pytorch, deadlock should generate a notebook with torch, torchvision and OpenCV already imported.
- All the above options should be configurable by the user through an interactive CLI (Command Line Interface).
These points will become my tasks from tomorrow as today I'll have to research more on this topic. All this is just an idea, and I can't guarantee what will make to the final product or how much time it will take but, what I can guarantee is my commitment to the project and my tomorrow's post where I'll post my results after I complete my research today.
Thank You Reader! 🫡
Top comments (0)