Re: [Zope-dev] Re: SOAP Support for ZOPE

2004-12-16 Thread John Ziniti
Brian Lloyd wrote:
  - It is a pain to do anything with SOAP because the
publisher has a hard-coded idea that anything xml must
be xml-rpc
This would be minimally disruptive to the Zope core, while enabling
people interested in SOAP to evolve different solutions without
everybody having to buy into a particular approach or implementation
right now.
+1
I think these ideas are great, but wasn't it also you who said,
Unfortunately, though, this misfeature has  been around for a long time
and would break a lot of people if the default were changed.  I think
getting this changed might be met with some amount of resistance.  If
we're voting ;-) I vote for biting the bullet and making the change
today.
John Ziniti
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] SOAP Support for ZOPE

2004-12-14 Thread John Ziniti
Aruna Kathiria wrote:
I did some work regarding SOAP support on ZOPE and published this
document on zope.org.
The link for this document is 
http://zope.org/Members/arunacgx/SOAP%20Support%20on%20Zope/file_view

I would like to get feedback/suggestion regarding this document.
One preliminary suggestion:
In the section entitled 3.2.4 Correcting HTTPRequest.py, I would
suggest that instead of having users edit the file, you could
instead distribute your product as a Monkey Patch Zope Product
that overrides the HTTPRequest.processInputs method with your
altered version.
You can see an example of this in the XmlFix Product attached
to the followign mailing-list item:
http://mail.zope.org/pipermail/zope/2004-June/151497.html
Basically you would do this:
code
### Import the HTTPRequest object we want to alter
from ZPublisher.HTTPRequest import HTTPRequest
### Save the *old* processInputs method
def initialize(context):
HTTPRequest._realProcessInputs = HTTPRequest.processInputs
HTTPRequest.processInputs = processInputs
### Write a new processInputs method that does what we want
def processInputs(self, *args, **kw):
 if myProductShouldHandleThisRequest:
 do_stuff()
 else:
 ### Hand over to the original processInputs
 return self._realProcessInputs(*args, **kw)
/code 

Since this is a Zope Product, the above code would run once
every time you started Zope, and is much more portable between
Zope installations than having the admin edit code.
Hope that helps,
John Ziniti
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Zope 2.7.0 and Pythom Image Library

2004-07-06 Thread John Ziniti
Tor Oskar Wilhelmsen wrote:
I'm trying to get the PIL(last version on python 2.3)  working with 
Zope, but it seems that it's not working.
 
I use the code:
 file = StringIO.StringIO(data)
 im = Image.open(file)
 im.show()
 
 where data is datafrom a blob in a db. This code is working outside 
Zope, but at once when i try to make it a product in Zope, I get this 
error:
 
IOError: cannot identify image file
I've had problems using PIL-based products in Zope because Zope
has its own module called ImageFile and Zope does some sys.path
munging so that when certain PIL modules do import ImageFile,
they import the Zope version, instead of the ImageFile.py that
comes with PIL.  This causes lots of hard-to-track errors that
have weird error messages ( I always get BadFont ).
I have fixed this problem before by editing the module for
the type of image I am using to do a more explicit import.  For
example, for JPEG images, I edit PIL/JpegImagePlugin.py to
read:
from PIL import ImageFile
This is at or around line 34, which reads import ImageFile.
So, you could make the changes to the files corresponding to
the Image type you are using, then *restart Zope* (the fix
is in site-packages so a Refresh won't do it!) and then
give it a try.
I'd be happy to hear if this helps you,
John Ziniti
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] zope products and folders

2004-03-09 Thread John Ziniti
Stephen Rudd BIOINF wrote:
before releasing. Could someone explain (or point me to resources) how to turn a
product into a folder like object so that I can bind images, DTML or python
scripts directly into the product - I am stumped and cannot find any explanation
Your first step will be to have your Folder-like object inherit from
ObjectManager.
from OFS.ObjectManager import ObjectManager
class FolderLike(ObjectManager, Implicit, Item):
 manage_options = (
ObjectManager.manage_options +
Item.manage_options
)
That should get you started.  For more questions like this, I would
post to plain ol' zope list ([EMAIL PROTECTED]).
I lurk that list and have written plenty of Folder-like products,
and I'd be happy to help in any way I can.
JZ

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] Prevayler and Object Prevalence

2003-03-03 Thread John Ziniti
Any ZODB developers read this article at /. and the accompanying
one at developerWorks?  Would anyone care to comment about
the relevance/comparisons of prevalence to the concepts of
persistence used in ZODB and/or ZEO?
http://developers.slashdot.org/article.pl?sid=03/03/03/1220222mode=nestedtid=156threshold=1

Just looking for some info.

Thanks in advance,

JZ

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] from ImageFile import ImageFile

2002-03-26 Thread John Ziniti

__The short story__:

I would like to recommend to all Product developers
that for Product initialization, they please the
statement:

from App.ImageFile import ImageFile

instead of:

from ImageFile import ImageFile


__The long story__:

A colleague of mine recently went through much
trouble, which eventually boiled down to a name-
clash with piddle/PIL.

Zope imports the name ImageFile into it's global
namespace during startup.  A lot of Products take
advantage of this during Product initialization,
by importing the name using:

form ImageFile import ImageFile

The Zope source, though, states explicitly that

this module will disappear in the future.

At the very least, the following Products have trouble
(and I suspect many more, as well):

TinyTablePlus
MetaPublisher
LDAPAdapter
ZDconfera
ZSyncer
ZOracleDA
NISUserFolder

Thanks,

Ziniti


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] improved logging

2002-02-28 Thread John Ziniti

http://freshmeat.net/projects/log4py/


Romain Slootmaekers wrote:
 Yo,
 questions wrt logging:
 
 -) What are the plans to improve the rather primitive logging facilities
 in zope ?
 I couldn't find anything in the plan for 2.6, nor on the 3.0 homepage.
 I think we need at least an extendibl framework with following types of
 components:
 
 - Loggers (fi, file logger, db loggers, remote logger, nulllogger,...)
 - Filters (fi on severity, on subsystem, ...)
 - LogBus (central accesspoint for the logging framework,
   where you can (dynamically) hook your loggers, filters etc...
 
 if time is an issue, we could just copy the design of fi Log4J which is a
 good logging framework for apache.
  
 -) If there are no such plans, can we hack something up ourselves and
 add/donate it to the product ? I hate writing stuff that gets replaced by
 something else afterwards 
 
 input appreciated.
 
 Sloot.
  
 
 
 
 
 
 
 
 ___
 Zope-Dev maillist  -  [EMAIL PROTECTED]
 http://lists.zope.org/mailman/listinfo/zope-dev
 **  No cross posts or HTML encoding!  **
 (Related lists - 
  http://lists.zope.org/mailman/listinfo/zope-announce
  http://lists.zope.org/mailman/listinfo/zope )
 
 
 



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Zope 2.6 planning - call for contributors!

2002-02-28 Thread John Ziniti

   Let's get a discussion
 
  started to define 2.6
 

I'd like to see the ZSyncer Product, or a variant thereof, included in
Zope by default.  That is, I'd like Synchronization, to a be a default
property of Zope objects, so that objects/content can be pushed and
pulled between two Zope installations.

I venture a guess that the development/production model is common,
and this helps quite a bit in maintaining this model.

Ziniti



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] _getProductRegistryData('zclasses') returns non-existent Products -- permission to muck around?

2002-01-08 Thread John Ziniti

My ProductRegistry has references to products
which no longer exist in my Zope installation.

This causes a variety of problems in lots of
different places when other products try to get
more information about all the products in the
ProductRegistry (obviously).

1) How does this occur?

2) Is it OK to put my boots on, get in there
and manually delete entries which refer to
non-existent Products?

TIA

Ziniti


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] ghosts of removed products haunting ZSQL Methods?

2002-01-08 Thread John Ziniti

 I'm ready and eager to blame Z classes for everything :)


Yeah, me too, hatin' em right about now ...

 % cd lib/python
 % python2.1.1
   import Zope
   app = Zope.app()
   app.fixupZClassDependencies(rebuild=1)
   get_transaction().commit()
 
 Hopefully that will do it for you.


Found that on a mailinglist archive last night.  Tried
it but it doesn't work.  The offending Product's
ZClasses are still in the Registry (but nowhere else).



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] ghosts of removed products haunting ZSQL Methods?

2002-01-08 Thread John Ziniti

Dieter Maurer wrote:

John Ziniti writes:
  I used to have the Product TrackerBase installed
  and have removed it.  Now, however, attempts to
  access the Advanced tab of ZSQL Methods is
  broken because a chain of events attempt to get
  info about a the non-existent Product:
  ...
  2) Is this schizophrenic state my fault?
Probably not.

I didn't think so, but I would think that the code which deletes
Products and their associated ZClasses would be pretty rock
solid at this point ??

Looks like a bug, you should report to http://collector.zope.org;.

I would, but as a developer myself, a bug that has a symptom
bu no real evidence of a cause is one I wouldn't really think to
look at it.  My ZODB is broken is basically the best I can
come up with at this point as a way to explain my problem.  I
can talk all the way in to Zope.app()._getProductRegistryData()
about the way the problem manifests itself, but it happened at
some point over the last ... oh ... three months of development???
It'll get ignored, for sure ... ( no offense intended)

 3) How to rectify the problem (Make *all* of Zope
  know that TrackerBase is gone)?
I think this is the right approach.

Yep.  I really just want to try something akin to:

old_registry=app._getProductRegistryData('zclasses')
app._SetProductRegistryData('zclasses')=old_registry[1:]

... but I'd like to hear from the guy who wrote _getProductRegistryData
first before I even try it on a backup-devlopment-Zope.


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] ghosts of removed products haunting ZSQL Methods?

2002-01-07 Thread John Ziniti

I used to have the Product TrackerBase installed
and have removed it.  Now, however, attempts to
access the Advanced tab of ZSQL Methods is
broken because a chain of events attempt to get
info about a the non-existent Product:

lib/python/Shared/DC/ZRDB/dtml/advanced.dtml calls
manage_product_zclass_info

../ZRDB/DA.py.manage_product_zclass_info (line 546)
calls self.aq_acquire('_getProductRegistryData')('zclasses')

One of these items is the dict:
   {'id': 'Tracker', 'meta_type': 'Tracker',
'product': 'Tracker', 'meta_class': ZClass instance at d55af0}

Then, line 548 calls if hasattr(z._zclass_,'_p_deactivate').

The attempt to access z._zclass_ fails because this
product doesn't exist.

1) the call to z._zclass_ doesn't actuallt do anything
except: ## Eek, persistent

2) Is this schizophrenic state my fault?

3) How to rectify the problem (Make *all* of Zope
know that TrackerBase is gone)?


Thanks in advance, traceback follows,

Ziniti

Error Type: ImportError
Error Value: No module named TrackerBase

Troubleshooting Suggestions

 * The URL may be incorrect.
 * The parameters passed to this resource may be incorrect.
 * A resource that this resource relies on may be encountering an error.

For more detailed information about the error, please refer to the HTML 
source for this page.

If the error persists please contact the site maintainer. Thank you for 
your patience.

User is Last modified 2002/01/07 16:37:34.6452 GMT+0
© Copyright 2000 Channing Lab Questions or comments about this site? All 
Rights Reserved.

Traceback (innermost last):
   File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/ZPublisher/Publish.py, 
line 223, in publish_module
   File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/ZPublisher/Publish.py, 
line 187, in publish
   File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/Zope/__init__.py, line 
226, in zpublisher_exception_hook
 (Object: new_sql_2)
   File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/ZPublisher/Publish.py, 
line 171, in publish
   File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/ZPublisher/mapply.py, 
line 160, in mapply
 (Object: manage_advancedForm)
   File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/ZPublisher/Publish.py, 
line 112, in call_object
 (Object: manage_advancedForm)
   File 
/u05/ilocal/opt/Zope-2.4.0-src/lib/python/Shared/DC/Scripts/Bindings.py, 
line 324, in __call__
 (Object: manage_advancedForm)
   File 
/u05/ilocal/opt/Zope-2.4.0-src/lib/python/Shared/DC/Scripts/Bindings.py, 
line 354, in _bindAndExec
 (Object: manage_advancedForm)
   File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/App/special_dtml.py, 
line 241, in _exec
 (Object: manage_advancedForm)
   File /ilocal/opt/Zope-2.4.0-src/lib/python/Shared/DC/ZRDB/DA.py, line 
549, in manage_product_zclass_info
 (Object: new_sql_2)
   File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/ZODB/Connection.py, 
line 544, in setstate
ImportError: (see above)




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] security.declareProtected doesn't always work?

2002-01-04 Thread John Ziniti


 The basic security mechanism uses the attribute m__roles__ in order
 to protect m. If this attribute it None, then m is public.
 Otherwise, it is expected to be a sequence of roles that are allowed
 to use m.
 
 But, ExtensionsClass brings with it computed attributes. This allows
 m__roles__ to be not a sequence but a method returning a sequence.
 When you protect m with a permission p, then
 m__roles__ is set to PermissionRole(p). This instance dynamically
 evaluates into a sequence of roles by crawling up the aq_container
 (which is correctly aq_parent after aq_inner) chain and translating
 p into roles by interpreting the permission-to-role mapping
 it finds on its way to the application object.
 
 Therefore, declarePublic works for non-wrapped instances while
 declareProtected requires the wrapping.
 
 
 Dieter


Very well put, Dieter -- both as an explanation of the problem
at hand, as well as a general description of one of the more
esoteric regions of Zope.  I think it belongs in a document
somewhere.  Thanks.  I knew I read these email lists for a
reason.

Ziniti


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: EINTR ... was Re: [Zope-dev] browser closing connection

2001-12-11 Thread John Ziniti

Replace your Python 2.1.1 asyncore.py with the one
that is attached.  I've been using it for months now
with no problems.  Notice, however, that it doesn't
work on WinNT, b/c the author didn't know what EINTR
looked like on NT


Leonardo Rochael Almeida wrote:

 So, which is the official way of fixing Zope 2.4.3? wait for a hotfix?
 apply Matthew's patch? steal asyncore from Python 2.2?
 
 On Tue, 2001-12-11 at 12:52, Jeremy Hylton wrote:
 
MTK == Matthew T Kromer [EMAIL PROTECTED] writes:

  MTK For what its worth, I tracked this down in the sources and
  MTK confirmed that in Zope 2.3, we shipped a modified asyncore.py
  MTK with Medusa that handled EINTR, but in Zope 2.4 we used stock
  MTK Python's asyncore which does NOT handle EINTR being returned
  MTK from select().  IMHO, the distributed Python 2.1 asyncore
  MTK behavior is incorrect.

This is fixed in Python 2.2.

[...]

 



# -*- Mode: Python; tab-width: 4 -*-
#   $Id: asyncore.py,v 1.1.1.3 2001/02/08 13:08:34 tdickenson Exp $
#   Author: Sam Rushing [EMAIL PROTECTED]

# ==
# Copyright 1996 by Sam Rushing
# 
# All Rights Reserved
# 
# Permission to use, copy, modify, and distribute this software and
# its documentation for any purpose and without fee is hereby
# granted, provided that the above copyright notice appear in all
# copies and that both that copyright notice and this permission
# notice appear in supporting documentation, and that the name of Sam
# Rushing not be used in advertising or publicity pertaining to
# distribution of the software without specific, written prior
# permission.
# 
# SAM RUSHING DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
# NO EVENT SHALL SAM RUSHING BE LIABLE FOR ANY SPECIAL, INDIRECT OR
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
# OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
# ==

import exceptions
import select
import socket
import string
import sys

import os
if os.name == 'nt':
EWOULDBLOCK = 10035
EINPROGRESS = 10036
EALREADY= 10037
ECONNRESET  = 10054
ENOTCONN= 10057
ESHUTDOWN   = 10058
EINTR   = 0 # what should this be?
else:
from errno import EALREADY, EINPROGRESS, EWOULDBLOCK, ECONNRESET
from errno import ENOTCONN, ESHUTDOWN, EINTR

try:
socket_map
except NameError:
socket_map = {}

class ExitNow (exceptions.Exception):
pass

DEBUG = 0

def poll (timeout=0.0, map=None):
global DEBUG
if map is None:
map = socket_map
if map:
r = []; w = []; e = []
for fd, obj in map.items():
if obj.readable():
r.append (fd)
if obj.writable():
w.append (fd)

while 1:
try: r,w,e = select.select (r,w,e, timeout)
except select.error, v:
if v[0] != EINTR: raise
else: break


if DEBUG:
print r,w,e

for fd in r:
try:
obj = map[fd]
try:
obj.handle_read_event()
except ExitNow:
raise ExitNow
except:
obj.handle_error()
except KeyError:
pass

for fd in w:
try:
obj = map[fd]
try:
obj.handle_write_event()
except ExitNow:
raise ExitNow
except:
obj.handle_error()
except KeyError:
pass

def poll2 (timeout=0.0, map=None):
import poll
if map is None:
map=socket_map
# timeout is in milliseconds
timeout = int(timeout*1000)
if map:
l = []
for fd, obj in map.items():
flags = 0
if obj.readable():
flags = poll.POLLIN
if obj.writable():
flags = flags | poll.POLLOUT
if flags:
l.append ((fd, flags))
r = poll.poll (l, timeout)
for fd, flags in r:
try:
obj = map[fd]
try:
if (flags   poll.POLLIN):
obj.handle_read_event()
if (flags  poll.POLLOUT):
obj.handle_write_event()
except ExitNow:
raise ExitNow
except:
obj.handle_error()
except KeyError:
pass

def loop (timeout=30.0, use_poll=0, map=None):

if use_poll:
poll_fun = poll2
else:
poll_fun = poll

if map is None:
   

Re: [Zope-dev] yes, segv11 and Broken pipes

2001-12-10 Thread John Ziniti

Wasn't this the problem where asyncore.py is not
catching the operating system's EINTR.  I used to
get these all the time, and was able to stop it
using a modified asyncore which loops on an OS
select() call, restarting the call if it catches
EINTR from the OS ... I can send a modified
asyncore.py for anyone who wants to give it a
try??

Ziniti

Jens Quade wrote:

 Dirk Datzert [EMAIL PROTECTED] writes:
 
 
Its a Linux 2.2.19. What does IIRC means ?

 
 If I remember correctly. I could fix the problem (or a similar one)
 last summer by changing the Linux kernel. 
 
 http://mailman.beehive.de/pipermail/zope/2001-June/000590.html
 http://mailman.beehive.de/pipermail/zope/2001-November/000923.html
 
 
 
 
 
 ___
 Zope-Dev maillist  -  [EMAIL PROTECTED]
 http://lists.zope.org/mailman/listinfo/zope-dev
 **  No cross posts or HTML encoding!  **
 (Related lists - 
  http://lists.zope.org/mailman/listinfo/zope-announce
  http://lists.zope.org/mailman/listinfo/zope )
 
 
 



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] getPhysicalPath differs for function vs. __getattr__

2001-12-06 Thread John Ziniti

Sorry the subject is not so discriptive, but
here is the issue I am dealing with.  I wonder
whether this has to do with the way Zope deals
with objects or has something to do with Python:

I have an Python Product class Object.  With
the following bits of code, I get different results
from a dtml-var, depending on what I use.

class Object(PropertyManager, Implicit, Item):
 def get_path(self):
 Return a path to myself
 path=string.join(self.getPhysicalPath()[1:], '/')
 return path

 def __getattr(self, attr):
 Return a path to myself
 if attr == 'path':
 path=string.join(self.getPhysicalPath()[1:], '/')
 return path
 else:
 raise AttributeError, attr

Now the following two dtml tags yield:

dtml-var get_path() = /path/to/object

dtml-var path = object

Hopefully you see what I mean.  Why does this happen?
Can I put it in the collector as a bug?

TIA,

Ziniti


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] file descriptors on Solaris

2001-10-02 Thread John Ziniti

I am running into a problem where Zope is trying to open too many
file descriptors (256) in order to process a POST.

I'm not sure how to phrase this question, but my reading has suggested
that this limit may be set by the FILE struct in /usr/incldue/stdio.h.

Does anyone know if this is used in Python/Zope?

My first impression was that this problem would be easy to solve --
just up the number of FD's, but now, I'm not so sure.  Any
suggestions?

Here's a traceback -- but I don't think it's much help

Traceback (innermost last):
  File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/ZPublisher/Publish.py, line 223, in 
publish_module
  File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/ZPublisher/Publish.py, line 187, in 
publish
  File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/Zope/__init__.py, line 226, in 
zpublisher_exception_hook
(Object: ApplicationDefaultPermissions)
  File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/ZPublisher/Publish.py, line 136, in 
publish
  File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/ZPublisher/HTTPRequest.py, line 405, 
in processInputs
  File /ilocal/lib/python2.1/cgi.py, line 517, in __init__
  File /ilocal/lib/python2.1/cgi.py, line 606, in read_multi
  File /ilocal/lib/python2.1/cgi.py, line 519, in __init__
  File /ilocal/lib/python2.1/cgi.py, line 616, in read_single
  File /ilocal/lib/python2.1/cgi.py, line 636, in read_lines
  File /ilocal/lib/python2.1/cgi.py, line 723, in make_file
  File /ilocal/opt/Zope-2.4.0-src/lib/python/tempfile.py, line 155, in TemporaryFile
OSError: [Errno 2] No such file or directory




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] file descriptors on Solaris

2001-10-02 Thread John Ziniti

 :(  I was hoping against hope that this wouldn't be the answer ...

I think that the hard limit onSolaris must be 256, because ulimit -n 200
seems to have the appropriate effect of making Zope complain about
too many open files ... but anything higher than 256 gets
a File not found ...

Let's try this from another angle ... why does Zope need to open so
many files just to process a *large-but-not-really-large* POST?

Can I change something about the way the form is set up (I use
a lot of :records) to circumvent the problem?

Andreas Jung wrote:

There is always a hard limit of filedescriptors (based on the kernel
configuration). But usually you can change the number of descriptors
using limit descriptors  under tcsh/csh. Under Bash I think you
must call ulimit.

Andreas
- Original Message -
From: John Ziniti [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, October 02, 2001 11:46
Subject: [Zope-dev] file descriptors on Solaris


I am running into a problem where Zope is trying to open too many
file descriptors (256) in order to process a POST.

I'm not sure how to phrase this question, but my reading has suggested
that this limit may be set by the FILE struct in /usr/incldue/stdio.h.

Does anyone know if this is used in Python/Zope?

My first impression was that this problem would be easy to solve --
just up the number of FD's, but now, I'm not so sure.  Any
suggestions?

Here's a traceback -- but I don't think it's much help

Traceback (innermost last):
  File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/ZPublisher/Publish.py,

line 223, in publish_module

  File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/ZPublisher/Publish.py,

line 187, in publish

  File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/Zope/__init__.py, line

226, in zpublisher_exception_hook

(Object: ApplicationDefaultPermissions)
  File /u05/ilocal/opt/Zope-2.4.0-src/lib/python/ZPublisher/Publish.py,

line 136, in publish

  File

/u05/ilocal/opt/Zope-2.4.0-src/lib/python/ZPublisher/HTTPRequest.py, line
405, in processInputs

  File /ilocal/lib/python2.1/cgi.py, line 517, in __init__
  File /ilocal/lib/python2.1/cgi.py, line 606, in read_multi
  File /ilocal/lib/python2.1/cgi.py, line 519, in __init__
  File /ilocal/lib/python2.1/cgi.py, line 616, in read_single
  File /ilocal/lib/python2.1/cgi.py, line 636, in read_lines
  File /ilocal/lib/python2.1/cgi.py, line 723, in make_file
  File /ilocal/opt/Zope-2.4.0-src/lib/python/tempfile.py, line 155, in

TemporaryFile

OSError: [Errno 2] No such file or directory




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )








___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] file descriptors on Solaris

2001-10-02 Thread John Ziniti

Yeah ... something tells me it's a little more complicated than that.

Any advice on the other front?  If I can reduce the number of files
Zope needs to process this request, I'd grumpily agree to do that,
is Zope opening a file for every input name=x.name:records?
Will using input name=x_names:list help?

Thanks.


Andreas Jung wrote:

- Original Message - 
From: John Ziniti [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, October 02, 2001 12:01
Subject: Re: [Zope-dev] file descriptors on Solaris


:(  I was hoping against hope that this wouldn't be the answer ...

I think that the hard limit onSolaris must be 256, because ulimit -n 200
seems to have the appropriate effect of making Zope complain about
too many open files ... but anything higher than 256 gets
a File not found ...


Just ask your administrator to increase the number of file descriptors.
Usually this requires *only* a reboot of the machine :-) 

Andreas


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )






___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] file descriptors on Solaris [SUMMARY]

2001-10-02 Thread John Ziniti

I'd just like to summarize for the list some additional findings,
questions and clarifications.  

DIAGNOSIS:
It appears that this only happens when the form is specified with
enctype=multipart/form-data.  In that case, Zope (or, more accurately,
the cgi module), tries to create temporary file for each form input,
no matter what type the input has ... (I think but I can't be 100%
sure about that).  This seems a little weird.  Why do we have to open
a file for each part just because it *may* contain a file?

PROGNOSIS:
The problem (on Solaris) is not very easy to fix, since it lies in the
system-wide definition of a file descriptor, which uses only one byte
to store the fd value (i.e., anything higher than 256 is meaningless,
and truncated??).  Changing this struct is not easy.  The problem is
not that Zope is exceeding the *allowed* number of FD's (usually
policed by the shell), but that Zope is exceeding the *meaningful*
number of FD's. This sucks. :-)

SUMMARY:
If you're planning on using large forms in Zope on Solaris (version??),
you'll have to move your file uploads to another page, since specifying
multipart/form-data causes cgi.py to open a tempfile.TemporaryFile for
each input on the form, which causes problems if the number of inputs
is greater than the file descriptor address space.




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] file descriptors on Solaris [SUMMARY]

2001-10-02 Thread John Ziniti




This is nonsense. Solaris allows of course to use more than 256 FDs. 
I don't know how they are stored inside the kernel but I have been using
Solaris in projects where we used 1024 FDs and more. Zope does not 
increase the number of allowed FDs (resource module) but inherits
the settings from the environment where Zope gets started. 

The number of FDs are set in Solaris in /etc/system:

set rlim_fd_max = 4096
set rlim_fd_cur = 1024

Solaris 7+ allows up to 65536 FDs.

Solaris is definitely not my area of expertise, but to the best of my 
UNIX-hunting-around-
looking-for-the-answer ability, that's all I can find.   If Zope is 
started in a shell with
$ ulimit -n 200
and I POST the offending form, I get a too many open files error.  But 
if ulimit -n 512,
then I get No such file or directory when $ZOPE/lib/python/tempfile.py 
tries to fdopen a
file descriptor higher than 255 (line 155).

my /etc/system doesn't have anything other than some shm settings.

Can you create a form:

form method=POST enctype=multipart/form-data
  input type=submit value=Click me to test FD's
  dtml-in _.range(500)
input type=text name=input_dtml-var sequence-number 
value=dtml-var sequence-number
  /dtml-in
/form

and tell me if you get the OSError?


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )