()
| 351 | |
| 352 | |
| 353 | def _usage_stats_enabledness() -> UsageStatsEnabledness: |
| 354 | # Env var has higher priority than config file. |
| 355 | usage_stats_enabled_env_var = os.getenv(usage_constant.USAGE_STATS_ENABLED_ENV_VAR) |
| 356 | if usage_stats_enabled_env_var == "0": |
| 357 | return UsageStatsEnabledness.DISABLED_EXPLICITLY |
| 358 | elif usage_stats_enabled_env_var == "1": |
| 359 | return UsageStatsEnabledness.ENABLED_EXPLICITLY |
| 360 | elif usage_stats_enabled_env_var is not None: |
| 361 | raise ValueError( |
| 362 | f"Valid value for {usage_constant.USAGE_STATS_ENABLED_ENV_VAR} " |
| 363 | f"env var is 0 or 1, but got {usage_stats_enabled_env_var}" |
| 364 | ) |
| 365 | |
| 366 | usage_stats_enabled_config_var = None |
| 367 | try: |
| 368 | with open(_usage_stats_config_path()) as f: |
| 369 | config = json.load(f) |
| 370 | usage_stats_enabled_config_var = config.get("usage_stats") |
| 371 | except FileNotFoundError: |
| 372 | pass |
| 373 | except Exception as e: |
| 374 | logger.debug(f"Failed to load usage stats config {e}") |
| 375 | |
| 376 | if usage_stats_enabled_config_var is False: |
| 377 | return UsageStatsEnabledness.DISABLED_EXPLICITLY |
| 378 | elif usage_stats_enabled_config_var is True: |
| 379 | return UsageStatsEnabledness.ENABLED_EXPLICITLY |
| 380 | elif usage_stats_enabled_config_var is not None: |
| 381 | raise ValueError( |
| 382 | f"Valid value for 'usage_stats' in {_usage_stats_config_path()}" |
| 383 | f" is true or false, but got {usage_stats_enabled_config_var}" |
| 384 | ) |
| 385 | |
| 386 | # Usage stats is enabled by default. |
| 387 | return UsageStatsEnabledness.ENABLED_BY_DEFAULT |
| 388 | |
| 389 | |
| 390 | def is_nightly_wheel() -> bool: |
no test coverage detected
searching dependent graphs…