Hi, I am doing the following in a PyScript: data = context.session_data_mgr.getSessionData() data.set('upload_ok',1) and I get the following error (w/ traceback) Error Type: UnpickleableError Error Value: Cannot pickle objects Traceback (innermost last): File F:\KANDIN~1\lib\python\ZPublisher\Publish.py, line 150, in publish_module File F:\KANDIN~1\lib\python\ZPublisher\Publish.py, line 114, in publish File F:\KANDIN~1\lib\python\Zope\__init__.py, line 158, in zpublisher_exception_hook (Object: user_views) File F:\KANDIN~1\lib\python\ZPublisher\Publish.py, line 102, in publish File F:\KANDIN~1\lib\python\Zope\__init__.py, line 172, in commit File f:\kandinsky\lib\python\Products\TransactionAgents\__init__.py, line 54, in new_commit File F:\KANDIN~1\lib\python\ZODB\Transaction.py, line 233, in commit File F:\KANDIN~1\lib\python\ZODB\Connection.py, line 345, in commit (Info: (('Products.CoreSessionTracking.SessionData', 'SessionData'), '\x00\x00\x00\x00\x00\x00\x00\x1f', '')) UnpickleableError: (see above) What am I doing wrong?? Is it impossible to do what I want?? If it cant pickle it how is it handling it in when I do CST stuff in DTML?? I cant really move to the default Zope sessions right now because of quite a bit of legacy stuff. Hopefully I will be able to find the time to do it later on. TIA AM -- ================================================================== Aseem Mohanty Neurobehavioral Systems Inc, 828 San Pablo Ave, Albany, CA 94706 (R) 510 7696011 (M) 510 3014871 (O) 510 5279231 ================================================================== "I saw `cout' being shifted "Hello world" times to the left and stopped right there!!" -- Steve Gonedes ==================================================================
Are you attempting to store a reference to an open file (a "real" on-disk file) or to the REQUEST somewhere in your scripts? If you clear all existing session objects from your session_data_mgr, close your browser, reopen it again, and then run *only* the lines that you have below via the Python Script's "Test" tab, do you get the same error? ----- Original Message ----- From: "Aseem Mohanty" <aseem@neurobehavioralsystems.com> To: <zope@zope.org> Sent: Monday, July 22, 2002 10:04 AM Subject: [Zope] HELP: CST and python scripts
Hi,
I am doing the following in a PyScript:
data = context.session_data_mgr.getSessionData() data.set('upload_ok',1)
and I get the following error (w/ traceback)
Error Type: UnpickleableError Error Value: Cannot pickle objects
Traceback (innermost last): File F:\KANDIN~1\lib\python\ZPublisher\Publish.py, line 150, in publish_module File F:\KANDIN~1\lib\python\ZPublisher\Publish.py, line 114, in publish File F:\KANDIN~1\lib\python\Zope\__init__.py, line 158, in zpublisher_exception_hook (Object: user_views) File F:\KANDIN~1\lib\python\ZPublisher\Publish.py, line 102, in publish File F:\KANDIN~1\lib\python\Zope\__init__.py, line 172, in commit File f:\kandinsky\lib\python\Products\TransactionAgents\__init__.py, line 54, in new_commit File F:\KANDIN~1\lib\python\ZODB\Transaction.py, line 233, in commit File F:\KANDIN~1\lib\python\ZODB\Connection.py, line 345, in commit (Info: (('Products.CoreSessionTracking.SessionData', 'SessionData'), '\x00\x00\x00\x00\x00\x00\x00\x1f', '')) UnpickleableError: (see above)
What am I doing wrong?? Is it impossible to do what I want?? If it cant pickle it how is it handling it in when I do CST stuff in DTML??
I cant really move to the default Zope sessions right now because of quite a bit of legacy stuff. Hopefully I will be able to find the time to do it later on.
TIA AM
-- ================================================================== Aseem Mohanty Neurobehavioral Systems Inc, 828 San Pablo Ave, Albany, CA 94706 (R) 510 7696011 (M) 510 3014871 (O) 510 5279231 ================================================================== "I saw `cout' being shifted "Hello world" times to the left and stopped right there!!" -- Steve Gonedes ==================================================================
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
oh crap. i had a script that put in all form data into the session for error-tracking and I was inserting a file object in a file upload form to it too. so how do I check if the object is a file or not in thte python script? currently I do: for key in form.keys: try: x = key.filename except AttributeError: data.set(...) that seems to be the dumb way to go... is there any better way to do do it. TIA AM Chris McDonough wrote:
Are you attempting to store a reference to an open file (a "real" on-disk file) or to the REQUEST somewhere in your scripts? If you clear all existing session objects from your session_data_mgr, close your browser, reopen it again, and then run *only* the lines that you have below via the Python Script's "Test" tab, do you get the same error?
----- Original Message ----- From: "Aseem Mohanty" <aseem@neurobehavioralsystems.com> To: <zope@zope.org> Sent: Monday, July 22, 2002 10:04 AM Subject: [Zope] HELP: CST and python scripts
Hi,
I am doing the following in a PyScript:
data = context.session_data_mgr.getSessionData() data.set('upload_ok',1)
and I get the following error (w/ traceback)
Error Type: UnpickleableError Error Value: Cannot pickle objects
Traceback (innermost last): File F:\KANDIN~1\lib\python\ZPublisher\Publish.py, line 150, in
publish_module
File F:\KANDIN~1\lib\python\ZPublisher\Publish.py, line 114, in
publish
File F:\KANDIN~1\lib\python\Zope\__init__.py, line 158, in
zpublisher_exception_hook
(Object: user_views) File F:\KANDIN~1\lib\python\ZPublisher\Publish.py, line 102, in
publish
File F:\KANDIN~1\lib\python\Zope\__init__.py, line 172, in
commit
File
f:\kandinsky\lib\python\Products\TransactionAgents\__init__.py, line 54, in new_commit
File F:\KANDIN~1\lib\python\ZODB\Transaction.py, line 233, in
commit
File F:\KANDIN~1\lib\python\ZODB\Connection.py, line 345, in
commit
(Info: (('Products.CoreSessionTracking.SessionData',
'SessionData'), '\x00\x00\x00\x00\x00\x00\x00\x1f', ''))
UnpickleableError: (see above)
What am I doing wrong?? Is it impossible to do what I want?? If it
cant
pickle it how is it handling it in when I do CST stuff in DTML??
I cant really move to the default Zope sessions right now because
of
quite a bit of legacy stuff. Hopefully I will be able to find the
time
to do it later on.
TIA AM
-- ================================================================== Aseem Mohanty Neurobehavioral Systems Inc, 828 San Pablo Ave, Albany, CA 94706 (R) 510 7696011 (M) 510 3014871 (O) 510 5279231 ================================================================== "I saw `cout' being shifted "Hello world" times to the left and stopped right there!!" -- Steve Gonedes ==================================================================
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
-- ================================================================== Aseem Mohanty Neurobehavioral Systems Inc, 828 San Pablo Ave, Albany, CA 94706 (R) 510 7696011 (M) 510 3014871 (O) 510 5279231 ================================================================== "I saw `cout' being shifted "Hello world" times to the left and stopped right there!!" -- Steve Gonedes ==================================================================
Well.. file objects can be "stringified" for storage in the session (if you've got the RAM, this is asking for abuse though): for k, v in context.REQUEST.form.items(): context.session_data_mgr.getSessionData()['k'] = str(v) This will also stringify lists and ints and such in the form as well, which may not be what you want. ----- Original Message ----- From: "Aseem Mohanty" <aseem@neurobehavioralsystems.com> To: "Chris McDonough" <chrism@zope.com> Cc: <zope@zope.org> Sent: Tuesday, July 23, 2002 2:33 AM Subject: Re: [Zope] HELP: CST and python scripts
oh crap. i had a script that put in all form data into the session for error-tracking and I was inserting a file object in a file upload form to it too.
so how do I check if the object is a file or not in thte python script?
currently I do:
for key in form.keys: try: x = key.filename except AttributeError: data.set(...)
that seems to be the dumb way to go... is there any better way to do do it. TIA AM
Chris McDonough wrote:
Are you attempting to store a reference to an open file (a "real" on-disk file) or to the REQUEST somewhere in your scripts? If you clear all existing session objects from your session_data_mgr, close your browser, reopen it again, and then run *only* the lines that you have below via the Python Script's "Test" tab, do you get the same error?
----- Original Message ----- From: "Aseem Mohanty" <aseem@neurobehavioralsystems.com> To: <zope@zope.org> Sent: Monday, July 22, 2002 10:04 AM Subject: [Zope] HELP: CST and python scripts
Hi,
I am doing the following in a PyScript:
data = context.session_data_mgr.getSessionData() data.set('upload_ok',1)
and I get the following error (w/ traceback)
Error Type: UnpickleableError Error Value: Cannot pickle objects
Traceback (innermost last): File F:\KANDIN~1\lib\python\ZPublisher\Publish.py, line 150, in
publish_module
File F:\KANDIN~1\lib\python\ZPublisher\Publish.py, line 114, in
publish
File F:\KANDIN~1\lib\python\Zope\__init__.py, line 158, in
zpublisher_exception_hook
(Object: user_views) File F:\KANDIN~1\lib\python\ZPublisher\Publish.py, line 102, in
publish
File F:\KANDIN~1\lib\python\Zope\__init__.py, line 172, in
commit
File
f:\kandinsky\lib\python\Products\TransactionAgents\__init__.py, line 54, in new_commit
File F:\KANDIN~1\lib\python\ZODB\Transaction.py, line 233, in
commit
File F:\KANDIN~1\lib\python\ZODB\Connection.py, line 345, in
commit
(Info: (('Products.CoreSessionTracking.SessionData',
'SessionData'), '\x00\x00\x00\x00\x00\x00\x00\x1f', ''))
UnpickleableError: (see above)
What am I doing wrong?? Is it impossible to do what I want?? If it
cant
pickle it how is it handling it in when I do CST stuff in DTML??
I cant really move to the default Zope sessions right now because
of
quite a bit of legacy stuff. Hopefully I will be able to find the
time
to do it later on.
TIA AM
--
==================================================================
Aseem Mohanty Neurobehavioral Systems Inc, 828 San Pablo Ave, Albany, CA 94706 (R) 510 7696011 (M) 510 3014871 (O) 510 5279231
==================================================================
"I saw `cout' being shifted "Hello world" times to the left and stopped right there!!" -- Steve Gonedes
==================================================================
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
-- ================================================================== Aseem Mohanty Neurobehavioral Systems Inc, 828 San Pablo Ave, Albany, CA 94706 (R) 510 7696011 (M) 510 3014871 (O) 510 5279231 ================================================================== "I saw `cout' being shifted "Hello world" times to the left and stopped right there!!" -- Steve Gonedes ==================================================================
On Mon, Jul 22, 2002 at 11:33:44PM -0700, Aseem Mohanty wrote:
oh crap. i had a script that put in all form data into the session for error-tracking and I was inserting a file object in a file upload form to it too.
so how do I check if the object is a file or not in thte python script?
currently I do:
for key in form.keys: try: x = key.filename except AttributeError: data.set(...)
that seems to be the dumb way to go... is there any better way to do do it.
that's actually a pretty pythonic thing to do. (but remember that keys is a method, not a list - so call it, put parentheses in there.) OTOH, if you don't need to keep the filename and you're just using it as a test, you could do this: for key in form.keys(): if hasattr(key, "filename"): # it's a file else: # it's not -- Paul Winkler home: http://www.slinkp.com "Muppet Labs, where the future is made - today!"
participants (3)
-
Aseem Mohanty -
Chris McDonough -
Paul Winkler