Codex powered autocompletions for data science and machine learning that run on jupyter notebooks

How Cogram works
First things first, to get set up with Cogram you have to head out to their website, there you sign up for a free account and get access to an API token. After that all you have to do is install Cogram with:
pip install -U jupyter -cogram
This enable a jupyter notebook extension:
jupyter nbextension enable jupyter-cogram/main
finally you set up a API token with:
python -m jupyter_cogram –token THE_API_TOKEN
with the set up done Cogram is enable by default you can turn it on and off
via the icon

you can also customize Cogram, you can use the autosuggest mode, where Cogram makes suggestions whenever you stop typing,Also you can do Plain language to SQL.
or when you go to a new line. You can also use the manual completion option, triggered with the Tab key.The user can switch between these options via the Autosuggest tick-box in the Cogram menu.
Autocompletions on Jupyter Notebook
# plot sin(x) from 0 to pi
From writing this:
it generated this:
# plot sin(x) from 0 to pi
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, np.pi, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()

# plot a histogram of points from a poisson distribution
It generated this:
# plot a histogram of points from a poisson distribution
import numpy as np
import matplotlib.pyplot as plt
x = np.random.poisson(5, 1000)
plt.hist(x)
plt.show()

Another is a simple Linear regresssion:# create a fake dataset and run a simple linear regression model:The output:
# create a fake dataset and run a simple linear regression model
import numpy as np
import matplotlib.pyplot as plt
x = np.random.randn(100)
y = 2 * x + np.random.randn(100)
plt.scatter(x, y)
plt.show()

write a linear regression model with sklearn
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
x = np.random.randn(100)
y = 2 * x + np.random.randn(100)
model = LinearRegression()
model.fit(x.reshape(-1, 1), y.reshape(-1, 1))
plt.scatter(x, y)
plt.plot(x, model.predict(x.reshape(-1, 1)))
plt.show()

it creates what you really need including the code and the visualization or the plotting
