AppEngine: восстановить оригинальную встроенную функцию открытия / файла - PullRequest
2 голосов
/ 04 сентября 2011

Какой самый простой способ восстановить оригинальную встроенную функцию открытия / файла в AppEngine dev_appserver? Мне нужно это, чтобы получить рабочий менеджер ресурсов в среде разработки (компиляция нескольких файлов JS / CSS).

Ответы [ 2 ]

3 голосов
/ 05 сентября 2011

Вы можете записывать в файловую систему, изменяя флаги FakeFile.ALLOWED_MODES.

from google.appengine.tools import dev_appserver
allowed_modes = dev_appserver.FakeFile.ALLOWED_MODES
dev_appserver.FakeFile.ALLOWED_MODES = frozenset(['w'])
f = open('test.txt', 'w')
f.write('this is a test')
f.close()
dev_appserver.FakeFile.ALLOWED_MODES = allowed_modes
2 голосов
/ 22 февраля 2014

То же, что и утвержденный ответ.Но для последней версии совместимое исправление:

if os.environ.get("SERVER_SOFTWARE", "").startswith("Dev"):
    from google.appengine.tools.devappserver2.python import stubs
    stubs.FakeFile.ALLOWED_MODES = frozenset(["a", "r", "w", "rb", "U", "rU"])
...