https://pypi.python.org/pypi/DateTime упоминает, что лучше использовать python datetime, а не Zope DateTime. Я считаю, что это делается путем вызова внешних методов. Есть ли другой способ сделать это, поскольку я не думаю, что хотелось бы создать внешний метод для всех видов вещей, которые необходимо импортировать?Использование даты и времени Python вместо Zope DateTime
0
A
ответ
0
Класс DateTime
от модуля DateTime
может быть импортирован в ограниченном режиме Zope просто потому, что объявлен как открытый в пакете AccessControl
. В своем верхнем уровне __init__.py
ModuleSecurityInfo('DateTime').declarePublic('DateTime')
Он также содержит это позволить импорт из четырех других полезных встроенных импорта
for name in ('string', 'math', 'random', 'sets'):
ModuleSecurityInfo(name).setDefaultAccess('allow')
Так, чтобы сделать это, вам нужно добавить подобные строки в __init__.py
вашего пакета Zope (или создать, если вы уже не имеете, see this tutorial), например:
from AccessControl import ModuleSecurityInfo
# just a specific class
ModuleSecurityInfo('datetime').declarePublic('datetime')
# or at a broader level for the entire module
ModuleSecurityInfo('datetime').setDefaultAccess('allow')
Это, конечно, предполагает пакет datetime
достаточно доверен, чтобы не было возможности атаковать ваш экземпляр Zope.
Вы должны задать отдельные вопросы отдельно. Кроме того, первый вопрос остается неясным, а второй - неопределенным. Что вы делаете? – Cyphase
Убрали второй вопрос. В Zope, всякий раз, когда новый скрипт Python создается с использованием ZMI, он находится в режиме ограниченного доступа и как таковой не может импортировать модули Python, такие как datetime и т. Д. Таким образом, единственный способ сделать это - написать логику в файловой системе и получить доступ к этому файлу с помощью Внешний метод от Zope. Мой вопрос состоял в том, чтобы найти альтернативный подход к этому. – Ravi
Я не знаком с Zope, но почему бы просто не использовать Zope DateTime? Чтобы отменить порядок описания пакета, «вам, вероятно, лучше использовать встроенный модуль времени и времени Python ... если вам не нужно общаться с Zope 2 API». – Cyphase