Skip to content

Migrate MLFLOW_AUTOLOGGING_TESTING environment variable#8910

Merged
harupy merged 1 commit intomlflow:masterfrom
harupy:migrate-MLFLOW_AUTOLOGGING_TESTING
Jun 30, 2023
Merged

Migrate MLFLOW_AUTOLOGGING_TESTING environment variable#8910
harupy merged 1 commit intomlflow:masterfrom
harupy:migrate-MLFLOW_AUTOLOGGING_TESTING

Conversation

@harupy
Copy link
Member

@harupy harupy commented Jun 30, 2023

Related Issues/PRs

#xxx

What changes are proposed in this pull request?

Migrate MLFLOW_AUTOLOGGING_TESTING environment variable.

How is this patch tested?

  • Existing unit/integration tests
  • New unit/integration tests
  • Manual tests (describe details, including test results, below)

Does this PR change the documentation?

  • No. You can skip the rest of this section.
  • Yes. Make sure the changed pages / sections render correctly in the documentation preview.

Release Notes

Is this a user-facing change?

  • No. You can skip the rest of this section.
  • Yes. Give a description of this change to be included in the release notes for MLflow users.

(Details in 1-2 sentences. You can just refer to another PR with a description if this PR is part of a larger change.)

What component(s), interfaces, languages, and integrations does this PR affect?

Components

  • area/artifacts: Artifact stores and artifact logging
  • area/build: Build and test infrastructure for MLflow
  • area/docs: MLflow documentation pages
  • area/examples: Example code
  • area/model-registry: Model Registry service, APIs, and the fluent client calls for Model Registry
  • area/models: MLmodel format, model serialization/deserialization, flavors
  • area/recipes: Recipes, Recipe APIs, Recipe configs, Recipe Templates
  • area/projects: MLproject format, project running backends
  • area/scoring: MLflow Model server, model deployment tools, Spark UDFs
  • area/server-infra: MLflow Tracking server backend
  • area/tracking: Tracking Service, tracking client APIs, autologging

Interface

  • area/uiux: Front-end, user experience, plotting, JavaScript, JavaScript dev server
  • area/docker: Docker use across MLflow's components, such as MLflow Projects and MLflow Models
  • area/sqlalchemy: Use of SQLAlchemy in the Tracking Service or Model Registry
  • area/windows: Windows support

Language

  • language/r: R APIs and clients
  • language/java: Java APIs and clients
  • language/new: Proposals for new client languages

Integrations

  • integrations/azure: Azure and Azure ML integrations
  • integrations/sagemaker: SageMaker integrations
  • integrations/databricks: Databricks integrations

How should the PR be classified in the release notes? Choose one:

  • rn/breaking-change - The PR will be mentioned in the "Breaking Changes" section
  • rn/none - No description will be included. The PR will be mentioned only by the PR number in the "Small Bugfixes and Documentation Updates" section
  • rn/feature - A new user-facing feature worth mentioning in the release notes
  • rn/bug-fix - A user-facing bug fix worth mentioning in the release notes
  • rn/documentation - A user-facing documentation change worth mentioning in the release notes

@harupy
Copy link
Member Author

harupy commented Jun 30, 2023

cc @gabrielfu

@github-actions github-actions bot added the rn/none List under Small Changes in Changelogs. label Jun 30, 2023
@mlflow-automation
Copy link
Contributor

Documentation preview for 0c7ae23 will be available here when this CircleCI job completes successfully.

More info

Comment on lines 38 to +62
@pytest.fixture
def test_mode_off():
prev_env_var_value = os.environ.pop(_AUTOLOGGING_TEST_MODE_ENV_VAR, None)
prev_env_var_value = os.environ.pop(_MLFLOW_AUTOLOGGING_TESTING.name, None)
try:
os.environ[_AUTOLOGGING_TEST_MODE_ENV_VAR] = "false"
os.environ[_MLFLOW_AUTOLOGGING_TESTING.name] = "false"
assert not is_testing()
yield
finally:
if prev_env_var_value:
os.environ[_AUTOLOGGING_TEST_MODE_ENV_VAR] = prev_env_var_value
os.environ[_MLFLOW_AUTOLOGGING_TESTING.name] = prev_env_var_value
else:
del os.environ[_AUTOLOGGING_TEST_MODE_ENV_VAR]
del os.environ[_MLFLOW_AUTOLOGGING_TESTING.name]


def enable_test_mode():
prev_env_var_value = os.environ.pop(_AUTOLOGGING_TEST_MODE_ENV_VAR, None)
prev_env_var_value = os.environ.pop(_MLFLOW_AUTOLOGGING_TESTING.name, None)
try:
os.environ[_AUTOLOGGING_TEST_MODE_ENV_VAR] = "true"
os.environ[_MLFLOW_AUTOLOGGING_TESTING.name] = "true"
assert is_testing()
yield
finally:
if prev_env_var_value:
os.environ[_AUTOLOGGING_TEST_MODE_ENV_VAR] = prev_env_var_value
os.environ[_MLFLOW_AUTOLOGGING_TESTING.name] = prev_env_var_value
else:
del os.environ[_AUTOLOGGING_TEST_MODE_ENV_VAR]
del os.environ[_MLFLOW_AUTOLOGGING_TESTING.name]
Copy link
Member Author

@harupy harupy Jun 30, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this can be improved using monkeypatch, but that's out of the scope of this PR.

Copy link
Collaborator

@serena-ruan serena-ruan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@harupy harupy merged commit b61f43a into mlflow:master Jun 30, 2023
@harupy harupy deleted the migrate-MLFLOW_AUTOLOGGING_TESTING branch June 30, 2023 13:38
BenWilson2 pushed a commit to BenWilson2/mlflow that referenced this pull request Jul 5, 2023
BenWilson2 pushed a commit to BenWilson2/mlflow that referenced this pull request Jul 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rn/none List under Small Changes in Changelogs.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants