Skip to content

Fix init() unable to disable autocommit once enabled#446

Open
jnMetaCode wants to merge 1 commit into
MadcowD:mainfrom
jnMetaCode:fix-autocommit-override
Open

Fix init() unable to disable autocommit once enabled#446
jnMetaCode wants to merge 1 commit into
MadcowD:mainfrom
jnMetaCode:fix-autocommit-override

Conversation

@jnMetaCode

Copy link
Copy Markdown

Summary

ell.init(autocommit=False) doesn't work if autocommit was previously enabled.

Problem

In configurator.py, init() uses:

config.autocommit = autocommit or config.autocommit

The or operator means that once autocommit is True, it can never be set back to False:

  • First call: init(autocommit=True)True or FalseTrue
  • Second call: init(autocommit=False)False or TrueTrue ✗ (expected False)

Fix

Use direct assignment:

config.autocommit = autocommit

This respects the caller's explicit intent. The default value in the function signature (autocommit: bool = True) still provides a sensible default for callers who don't specify it.

Reproduction

import ell

ell.init(autocommit=True)
print(ell.config.autocommit)  # True

ell.init(autocommit=False)
print(ell.config.autocommit)  # True (bug!) — should be False

The previous code used `config.autocommit = autocommit or config.autocommit`,
which means once autocommit is set to True it can never be turned off
again since `False or True` evaluates to `True`.

Use direct assignment so `init(autocommit=False)` works as expected.

Signed-off-by: JiangNan <1394485448@qq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant