Algorithm behind Sen2Cor

Hi, I was wondering if there is a simple atmospheric correction algorithm (similar to sen2cor) which I could manually implement following simple equations?
Reason being, I want to analyse the data as numpy arrays in Python, and once I obtain the data from the Google Earth Engine I cannot really run the sen2cor script or anything that I have read about so far.

You can try Py6S