Skip to content

enable using davos.configure as a context manager #99

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions