Is your feature request related to a problem? Please describe.
I've run into several dependency-related "frustrations" when sharing colaboratory notebooks:
Importing packages that aren't included in the default colaboratory image requires first pip-installing them, which looks clunky
There's no way to manage or specify which library versions are imported. When colaboratory's defaults change, the same notebook may work differently (or crash) depending on when it is run
Describe the solution you'd like
The davos package addresses these issues by providing Python notebooks with a new keyword, smuggle. The smuggle keyword works similarly to import, but with two important differences:
You can smuggle a package without installing it first
You can smuggle a specific version of a package
Taken together, these two enhancements to import provide a powerful system for developing and sharing reproducible code that works across different users and environments.
I suggest that including davos in the default colaboratory image could provide a useful and powerful way of managing notebook dependencies, with very low additional overhead. Calling import davos would then enable the smuggle keyword and its corresponding benefits.
Describe alternatives you've considered
A more elegant (but slightly more work to implement) option would be to import davos prior to launching any new notebook. That would enable the smuggle command without needing to "manually" import davos in the first cell of a new notebook.
Additional context
The davos package has many cool/useful features; additional documentation is here and a paper describing the package's scope and implementation details may be found here.
Is your feature request related to a problem? Please describe. I've run into several dependency-related "frustrations" when sharing colaboratory notebooks:
pip
-installing them, which looks clunkyDescribe the solution you'd like The davos package addresses these issues by providing Python notebooks with a new keyword,
smuggle
. Thesmuggle
keyword works similarly toimport
, but with two important differences:smuggle
a package without installing it firstsmuggle
a specific version of a packageTaken together, these two enhancements to
import
provide a powerful system for developing and sharing reproducible code that works across different users and environments.I suggest that including
davos
in the default colaboratory image could provide a useful and powerful way of managing notebook dependencies, with very low additional overhead. Callingimport davos
would then enable thesmuggle
keyword and its corresponding benefits.Describe alternatives you've considered A more elegant (but slightly more work to implement) option would be to
import
davos prior to launching any new notebook. That would enable thesmuggle
command without needing to "manually" import davos in the first cell of a new notebook.Additional context The
davos
package has many cool/useful features; additional documentation is here and a paper describing the package's scope and implementation details may be found here.