Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The embedding machinery ignores user_ns #1136

Closed
g2p opened this issue Dec 9, 2011 · 6 comments
Closed

The embedding machinery ignores user_ns #1136

g2p opened this issue Dec 9, 2011 · 6 comments
Assignees
Milestone

Comments

@g2p
Copy link
Contributor

g2p commented Dec 9, 2011

Quick demonstration:

from IPython import embed

user_ns = dict(cookie='monster')
embed(user_ns=user_ns, banner1='Please type: cookie')

Bisecting shows the last good revision was 5397fc8, the following revisions don't have working embedding until 9a2ec9f, which has embedding but lost user_ns functionality.
I don't know how to write automated tests for embedding (can stdin be hijacked?).
Paging @takluyver.

@ghost ghost assigned takluyver Dec 10, 2011
@takluyver
Copy link
Member

I think I see the issue. user_ns when we create the shell is overridden by local_ns when we activate it. I'll think about the best way to resolve it.

@fperez
Copy link
Member

fperez commented Dec 10, 2011

This looks pretty serious, I really would hate for 0.12 to come out with broken embedding, seeing as it will be the ubuntu LTS ipython...

@takluyver
Copy link
Member

Right, there are four possibilities for each of user_ns and user_module when embedding:

  1. Not specified at instantiation or activation - use the auto-detected namespace/module at activation
  2. Specified at instantiation only - use that, and do not auto-detect (this is what we're getting wrong)
  3. Specified at activation only - use that, don't auto-detect
  4. Specified at instantiation and activation - what's specified at activation overrides what's specified at instantiation.

I've got an idea how to resolve this. I'll put together a PR, hopefully this evening.

@fperez
Copy link
Member

fperez commented Dec 10, 2011

Funny coincidence: #136 and this (#1136) are both on scoping problems with the embedding code :)

@takluyver
Copy link
Member

Have a look at PR #1140.

@takluyver
Copy link
Member

Merged PR #1140, which resolves this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants