[PEAK] Packaging peak apps
Stephen Haberman
stephenh at chase3000.com
Thu Sep 16 18:43:37 EDT 2004
> That's downright weird. The line above appears *after* a block that does
> 'path = PySys_GetObject("path")', if path is null! There shouldn't be a
> way to get there unless sys.path isn't a list, or is itself null.
Oh. You're right. Well, sheesh, turns out path was never null in the first
place. I did not initialize it to null and so it was just random junk, hence
it got by the null check but then caught by the PyList_Check.
I updated the sf bug with the patch that is now just about the loader
pointer.
> >now it was failing, saying that the new function,
> >get_foo, could not be found, and, here's where my methodology gets fancy,
I
> >guessed that 'mod=reload(mod)' would work, and it did.
>
> Aha... did your old test actually add a new attribute? I don't remember.
Yes, it should have, as that was what I was trying to test. I am fairly
certain a) the test was adding .get_foo() and b) .get_foo() was successfully
being called with only "reload(mod)". This was back in April.
Granted, I could have been just wrong back then or remembering wrong now on
either a) or b).
Huh. I agree, its weird that supposedly that used to work. Here was the test
section of the original patch I submitted:
+ # Test reload
+ if not importer:
+ old_test_co = test_co
+ test_co = compile(test_src + "\ndef get_foo(): return 1",
"<???>", "exec")
+ TestImporter.modules = {
+ "hooktestmodule": (False, test_co),
+ "hooktestpackage": (True, test_co),
+ "hooktestpackage.sub": (True, test_co),
+ "hooktestpackage.sub.subber": (False, test_co),
+ }
+
+ reload(hooktestmodule)
+ self.assertEqual(hooktestmodule.get_name(), "hooktestmodule")
+ self.assertEqual(hooktestmodule.get_foo(), 1)
I'm not sure what the "if not importer" was for. It works just fine without
that check now so I took it out.
So. I dunno, maybe the "reload(hooktestmodule)" section was never even being
executed? That would have been stupid, but possible.
> >So, with those two things in mind, I think my patches will just have to
be a
> >starting point for someone who really knows what they're doing to finish
and
> >fully implement them correctly.
>
> Ouch. I was hoping that you were the one. I guess now it's up to me.
My apologies. Good luck. :-)
- Stephen
More information about the PEAK
mailing list