Skip to content

enable using davos.configure as a context manager #99

@paxtonfitzpatrick

Description

@paxtonfitzpatrick

This would be really useful feature for temporarily setting config options while smuggling certain packages, and ensuring that they're reset afterward. There are even a couple use cases for it in the example code from the paper.

For example:

davos.auto_rerun = True
smuggle numpy as np     # pip: numpy==1.21.6
smuggle pandas as pd    # pip: pandas==1.3.5
davos.auto_rerun = False

could become:

with davos.configure(auto_rerun=True):
    smuggle numpy as np     # pip: numpy==1.21.6
    smuggle pandas as pd    # pip: pandas==1.3.5

And

davos.configure(suppress_stdout=True, noninteractive=True)
smuggle tensorflow as tf    # pip: tensorflow==2.9.2
from umap smuggle UMAP      # pip: umap-learn[plot,parametric_umap]==0.5.3
davos.configure(suppress_stdout=False, noninteractive=False)

could become:

with davos.configure(suppress_stdout=True, noninteractive=True):
    smuggle tensorflow as tf    # pip: tensorflow==2.9.2
    from umap smuggle UMAP      # pip: umap-learn[plot,parametric_umap]==0.5.3

It also shouldn't be too hard to implement -- I've already done close to the same thing with hypertools.set_interactive_backend

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions