Skip to content
This repository has been archived by the owner on Jun 5, 2023. It is now read-only.

ImportError for classes enqueued from the same file they are defined in #61

Open
lost-theory opened this issue Apr 8, 2011 · 2 comments

Comments

@lost-theory
Copy link

Got tripped up by this when first testing pyres:

https://gist.github.com/910835/a455b67f4b049535efea8ab2d5a8b1f5d8c2af40

If I try to execute this job I get an ImportError, because the worker can't import __main__.Adder:

Traceback (most recent call last):
  File ".../pyres/worker.py", line 201, in process
    return job.perform()
  File ".../pyres/job.py", line 56, in perform
    payload_class = self.safe_str_to_class(payload_class_str)
  File ".../pyres/__init__.py", line 49, in safe_str_to_class
    raise ImportError('')
ImportError

Some ideas:

  1. In the enqueue, detect __main__ in class names and raise an exception (and add this info to the docs)
  2. Resolve the correct name (using inspect? inspect.getmodulename(inspect.getfile(klass)) ?)
  3. Add an option to enqueue to specify the name of the class to import
@lost-theory
Copy link
Author

Oh I see there's an enqueue_from_string... ignore option 3.

@binarymatt
Copy link
Owner

i'll see if I can write up a testcase for this, then work on a fix.

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

No branches or pull requests

2 participants