[ Tania Andrea ]:
------------------

|Blz.. funciona legal na console, tanto meu teste abaixo[1] quanto a
|sugestão do Senra. Só que no script python dá os respectivos erros:
|
|b) global name 'set' is not defined
|

Oi Tania,

o lance é o seguinte. Para permitir o uso do módulo no Zope, 
vc pode adicionar o código abaixo a qualquer produto. 
Ou até mesmo criar um produto encarregado apenas da autorização.
No diretório Products eu criei o diretório AllowModules com
um único arquivo dentro __init__.py, cujo conteúdo é:

<file path="Products/AllowModules/__init__.py">
from AccessControl import allow_module, allow_class, allow_type
from AccessControl import ModuleSecurityInfo, ClassSecurityInfo
allow_module('Sets')
ModuleSecurityInfo('Sets').declarePublic('set')
from sets import Set
allow_class(Set)
</file>

E no Zope fiz o seguinte teste:
<script>
from sets import Set as set
lista_recente = [1,2,3,4,5,6,7]
lista_especifica = [2,3,5,6,8]
recente, especifica  = set(lista_recente), set(lista_especifica)
print especifica-recente 
return printed
</script>

A partir do Python 2.5, set é um tipo nativo.
No Python 2.4 é preciso fazer: from sets import Set.
Para manter a compatibilidade de código eu recomendo
no Python2.4 usar: from sets import Set as set

É isso aí!

Abração,
Senra

-------------
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br

Responder a