pyforest - feel the bliss of automated imports
MIT License
Writing the same imports over and over again is below your capacity. Let pyforest do the job for you.
With pyforest you can use all your favorite Python libraries without importing them before. If you use a package that is not imported yet, pyforest imports the package for you and adds the code to the first Jupyter cell. If you don't use a library, it won't be imported.
You are a Data Scientist who works with Python. Every day you start multiple new Jupyter notebooks because you want to explore some data or validate a hypothesis.
During your work, you use many different libraries like pandas
, matplotlib
, seaborn
, numpy
or sklearn
. However, before you can start with the actual work, you always need to import your libraries.
There are several problems with this. Admittedly, they are small but they add up over time.
import matplotlib.pyplot as plt
or from sklearn.ensemble import GradientBoostingRegressor
What if you could just focus on using the libraries?
pyforest offers the following solution:
After you installed pyforest and its Jupyter extension, you can use your favorite Python Data Science commands like you normally would - just without writing imports.
For example, if you want to read a CSV with pandas:
df = pd.read_csv("titanic.csv")
pyforest will automatically import pandas for you and add the import statement to the first cell:
import pandas as pd
Which libraries are available?
pandas
as pd
, numpy
as np
, seaborn
as sns
, matplotlib.pyplot
as plt
, or OneHotEncoder
from sklearn
and many more. In addition, there are also helper modules like os
, re
, tqdm
, or Path
from pathlib
.In order to gather all the most important names, we need your help. Please open a pull request and add the imports that we are still missing.
You need Python 3.6 or above because we love f-strings.
From the terminal (or Anaconda prompt in Windows), enter:
pip install --upgrade pyforest
python -m pyforest install_extensions
Please make sure to restart any running Jupyter server so that the javascript extension can be loaded properly.
Also, please note that this will add pyforest to your IPython default startup settings. If you do not want this, you can disable the auto_import as described in the FAQs below.
"How to add my own import statements without adding them to the package source code?"
~/.pyforest/user_imports.py
in which you can type any explicit import statements you want (e.g. import pandas as pd
). Your own custom imports take precedence over any other pyforest imports. Please note: implicit imports (e.g. from pandas import *
) won't work."Doesn't this slow down my Jupyter or Python startup process?"
pd
are only pyforest placeholders."Why can't I just use the typical IPython import?"
"I don't have and don't need tensorflow. What will happen when I use pyforest?"
"Will the pyforest variables interfere with my own local variables?"
"What about auto-completion on lazily imported modules?"
"How to (temporarily) deactivate the auto_import in IPython and Jupyter?"
~/.ipython/profile_default/startup
and adjust or delete the pyforest_autoimport.py
file. You will find further instructions in the file. If you don't use the auto_import, you will need to import pyforest at the beginning of your notebook via import pyforest
"How to (re)activate the pyforest auto_import?"
from pyforest.auto_import import setup; setup()
. Please note that the auto_import only works for Jupyter and IPython."Can I use pyforest outside of the Jupyter Notebook or Lab?"
import pyforest
. Afterwards, you can get the currently active imports via pyforest.active_imports()
"Why is the project called pyforest?"
If you'd like to contribute, a great place to look is the issues marked with help-wanted.
In order to gather all the most important names, we need your help. Please open a pull request and add the imports that we are still missing to the pyforest imports. You can also find the guidelines in the pyforest imports file
pyforest is developed by 8080 Labs. Our goal is to make Python Data Scientists 10x faster. If you like the speedup to your workflow, you might also be interested in our other project bamboolib