Пирамида быстрый, маленький, вниз к земле, рамки Python веб-разработки с открытым исходным кодом и NBSP;. Это делает реальной разработку и развертывание более весело, более предсказуемой и более производительный веб-приложений.
Пирамида проект Пилоны и лежит в основе новейших веб-платформами, произведенные сообщества Пилоны.
Пирамида была ранее известна как repoze.bfg.
Поддержка и Документация
Посетите веб-сайт Пилоны проекта, чтобы посмотреть документацию, отчет ошибок и получить поддержку.
Лицензия
Пирамида предлагается под BSD-полученные Repoze Public License
Что нового В этом выпуске:.
- mako_templating: добавлена оборонительные Временное решение для не-importability Мако-за восходящего markupsafe снижается Python поддержку 3.2. Мако шаблонов больше не будет работать в комбинации MarkupSafe 0,17 и Python 3.2 (хотя комбинация MarkupSafe 0,17 и Python 3.3 или любой поддерживаемый Python 2 версия будет работать OK).
- Сделайте pyramid.config.assets.PackageOverrides объект реализации API для __loader__ объектов, указанных в PEP 302. Прокси к __loader__ установленного импортера, если имеется; в противном случае, возникает NotImplementedError. Это делает Пирамиды статический вид перекрывает работать под Python 3.3 (ранее они не будут). См https://github.com/Pylons/pyramid/pull/1015 для получения дополнительной информации.
Что нового в версии 1.4:
- Fix функциональные тесты в учебнике ZODB
Что нового в версии 1.4 Beta 3:
- выпуск упаковки только, никаких изменений кода. 1.4b2 был brownbag выпуск из-за отсутствия каталоги в архива.
Что нового в версии 1.3.4:
- Когда pyramid.debug_routematch был включен и траверсы предикат был использован в любом маршруте, маршрутизатор должен вызвать исключение при попытке напечатать информацию отладки маршрут. Эта ошибка существовала с 1.3a1.
- Когда ход предикат был использован в любом маршруте, proutes и pviews скрипты консоли должен вызвать исключение при попытке напечатать информацию о маршруте отладки. Эта ошибка существовала с 1.3a1.
- Исправлена ошибка Backport от мастера: - В Мако шаблонов поиска, проверки абсолютной URI (с использованием Мако каталоги), когда смешение наследование спецификации активов. https://github.com/Pylons/pyramid/issues/662
- При регистрации нескольких видов с сказуемым в принимаю приложения Пирамида запущенные под Python 3, вы, возможно, получил TypeError: unorderable типов: функция () & лт; функция () исключение.
- Backport от мастера: HTTP заголовки Accept не были нормализованы в результате чего потенциально конфликтующих регистраций вид остаться незамеченным. Два взгляда, что только отличаются в случае ("текст / HTML" против "текст / HTML") в настоящее время вызовет ошибку. https://github.com/Pylons/pyramid/pull/620
Что нового в версии 1.4 Alpha 1:
- исправления:
- Переслать порт с 1,3 отрасли: Когда нет политики аутентификации не был настроен, вызов pyramid.security.effective_principals безоговорочно вернется пустой список. Это было неправильно, он должен иметь безоговорочно возвращается [Все], и теперь делает.
- Явное гиперссылка отправки регулярных выражений может содержать двоеточия. https://github.com/Pylons/pyramid/issues/629
- По меньшей мере на одной 64-битной системе Ubuntu под Python 3.2, используя view_config декоратор вызвало RuntimeError: словарь изменился размер во время итерации исключением. Он больше не делает. См https://github.com/Pylons/pyramid/issues/635 для получения дополнительной информации.
- В Мако шаблонов поиска, проверьте, если URI уже настроен и привести его обратно в спецификации активов. Обычно происходит с унаследованными шаблонов или включенных компонентов. https://github.com/Pylons/pyramid/issues/606 https://github.com/Pylons/pyramid/issues/607
- В Мако шаблонов поиска, проверки абсолютной URI (с помощью Мако каталоги) при смешивании до удела с характеристиками активов. https://github.com/Pylons/pyramid/issues/662
- HTTP Accept заголовки не были нормализованы в результате чего потенциально конфликтующих регистраций вид остаться незамеченным. Два взгляда, что только отличаются в случае ("текст / HTML" против "текст / HTML") в настоящее время вызовет ошибку. https://github.com/Pylons/pyramid/pull/620
- Переслать порта с 1,3 отрасли: при регистрации нескольких видов с принять предикат в приложении Пирамида подножка под Python 3, вы, возможно, получил TypeError: unorderable типов: функция () & Lt; функция () исключение.
- Особенности:
- Configurator.add_directive теперь принимает произвольные вызываемых объектов как частичные или объектов, реализующих __call__ которые не имеют __name__ и __doc__ атрибуты. См https://github.com/Pylons/pyramid/issues/621~~HEAD=dobj и https://github.com/Pylons/pyramid/pull/647~~HEAD=dobj.
- Сторонние пользовательский вид, маршрут, и абонентские предикаты могут быть добавлены для использования просмотреть авторов через pyramid.config.Configurator.add_view_predicate, pyramid.config.Configurator.add_route_predicate и pyramid.config.Configurator.add_subscriber_predicate. Так, например, как это сделать:
- config.add_view_predicate ('ABC', my.package.ABCPredicate)
- может позволить вид автору этого в приложении, настроенном что предикат:
- view_config (ABC = 1)
- Подобные особенности для add_route и add_subscriber. См & Quot; Добавление третья сторона Фото, маршрут, или абонента предикат & Quot; в главе Крючки для получения дополнительной информации.
- Обратите внимание, что изменения, внесенные в поддержку выше функцию означает, что теперь только действия на учете, используя тот же & Quot; порядок & Quot; может конфликтовать друг с другом. Это используется, чтобы быть так, что действия зарегистрированный на различных заказов может потенциально конфликт, но, к моему знаний никогда ничего не зависело от такого поведения (это было немного глупо).
- Пользовательские объекты могут быть легко JSON сериализуемой в Пирамиде, определяя способ __json__ на класс объекта. Этот метод должен возвращать значения изначально сериализуемые по json.dumps (например, целых чисел, списки, словари, строки, и т.д.).
- The JSON визуализации теперь позволяет для определения пользовательских типов адаптеров для преобразования неизвестных объектов в JSON сериализации.
- Как этого выпуска, REQUEST_METHOD предикат, если они используются, также следует, что голова подразумевается, когда вы используете GET. Например, с помощьюview_config (REQUEST_METHOD = 'GET') эквивалентно использованиюview_config (REQUEST_METHOD = ('GET', 'голова')). Использованиеview_config (REQUEST_METHOD = ('GET', 'POST') эквивалентно использованиюview_config (REQUEST_METHOD = ('GET', 'голова', 'POST'). Это потому, что голова вариант GET, что опускает тело и WebOb имеет специальную поддержку для возвращения пустое тело, когда используется голове.
- config.add_request_method была введена для поддержки проходящих объектов запросов с произвольными вызываемых объектов. Этот метод расширяет по сравнению с предыдущим config.set_request_property опорными методов, а также свойств. Этот метод в настоящее время вызывает меньше кода будет выполняться во время запроса строительной чем config.set_request_property в версии 1.3.
- Не добавить? в URL, порожденных request.resource_url если аргумент запроса предоставляется, но пустой.
- Не добавить? в URL, порожденных request.route_url если аргумент _query предоставляется, но пустой.
- Вид статической техника в настоящее время поднимает (а не деклараций) HTTPNotFound и HTTPMovedPermanently исключениями, таким образом, они могут быть пойманы зрения NotFound (и других взглядов исключение).
- Мако визуализации теперь поддерживает имя определения в качестве спецификации активов. Если имя четкости присутствует в спецификации активов, система визуализации шаблона Защиту внутри шаблона и возвращает результат. Спецификации пример актив пакет: путь / к / шаблона # defname.mako. Это будет оказывать Def имени defname внутри шаблона template.mako вместо оказания всю шаблон. Старый способ возвращения кортеж в виде ('defname ", {}) с точки зрения поддерживается для обратной совместимости,
- Хамелеон ЗПТ визуализации теперь принимает имя макроса в спецификации активов. Когда имя макроса присутствует в спецификации активов, система будет оказывать макрос в списке как определить макро и вернуть результат вместо оказания всю шаблон. Спецификации пример активов: пакет: путь / к / шаблона # macroname.pt. Это будет оказывать макрос определяется как имя_макроса в шаблоне template.pt вместо всей templae.
- Когда есть предикат несоответствие исключение (видно, когда нет матчей взгляд не для данного запроса в связи с предикатами не работает), исключение теперь содержит текстовое описание предикат, который не соответствует.
- Метод директива add_permission был добавлен в конфигураторе. Эта директива регистрирует стоящая разрешение интроспектабельный в систему самоанализа пирамиды. Каркасы, построенные на вершине пирамиды, таким образом, использовать разрешений интроспектабельный данные категории, чтобы построить полный список разрешений, поддерживаемых работающей системе. До этого метод был добавлен, права уже были зарегистрированы в этом интроспектабельный категории в качестве побочного эффекта называя их в вызове add_view, этот метод просто позволяет организовать разрешение к вводу в разрешениях интроспектабельный категорию, не называя его вместе с ассоциированным вид. Вот пример использования add_permission:
- Config = Конфигуратор ()
- config.add_permission ('вид')
- The UnencryptedCookieSessionFactoryConfig теперь принимает signed_serialize и signed_deserialize крючки, которые могут быть использованы для влияния на сеансы выстроил (по умолчанию это делается с HMAC + рассол).
- pyramid.testing.DummyRequest теперь поддерживает методы, поставляемые класса pyramid.util.InstancePropertyMixin такие как set_property.
- свойства запроса и методы, добавленные через config.set_request_property или config.add_request_method теперь доступны для подростков.
- свойства запроса и методы, добавленные через config.set_request_property или config.add_request_method теперь доступны в объект запроса вернулся из pyramid.paster.bootstrap.
- request.context запроса окружающей среды во время начальной загрузки в настоящее время является корневым объектом, если контекст не установлен на предоставленной запросу.
- The pyramid.decorator.reify функция теперь API, и был добавлен в документации API.
- Добавлена контекстное менеджер pyramid.testing.testConfig, который может быть использован для генерации конфигуратор в тесте, например с testing.testConfig (...):.
- Пользователи могут ссылаться на подзапроса внутри вида кода с использованием нового request.invoke_subrequest API.
- Устаревшие:
- The pyramid.config.Configurator.set_request_property была документация, устарел. Метод остается полезной, но больше возможностей, pyramid.config.Configurator.add_request_method следует использовать на своем месте (он имеет все те же возможности, но также может продлить объект запроса с методами).
- назад Несовместимость:
- Пирамида маршрутизатор больше не добавляет ценности bfg.routes.route или bfg.routes.matchdict на просьбу Словарь WSGI окружающей среды. Эти значения были документы-устаревшие в repoze.bfg 1,0 (фактически семь незначительных выпусков назад). Если ваш код зависит от этих значений, используйте request.matched_route и request.matchdict вместо этого.
- Это уже не возможно пройти словарь окружат непосредственно pyramid.traversal.ResourceTreeTraverser .__ call__ (ака ModelGraphTraverser .__ call__). Вместо этого, вы должны передать объект запроса. Передача среду вместо запроса вызвало предупреждение устаревания, так как пирамиды 1.1.
- Пирамида больше не будет работать должным образом, если вы используете webob.request.LegacyRequest как запрос заводе. Экземпляры LegacyRequest класса имеют request.path_info, которые возвращают строку. Этот релиз Пирамида предполагает, что request.path_info безоговорочно быть Unicode.
- Функции из pyramid.chameleon_zpt и pyramid.chameleon_text имени get_renderer, get_template, render_template и render_template_to_response были удалены. Они опубликовали предупреждение устаревания на ввозе, так как пирамиды 1.0. Использование pyramid.renderers.get_renderer (), pyramid.renderers.get_renderer (). Реализации (), pyramid.renderers.render () или pyramid.renderers.render_to_response соответственно вместо этих функций.
- Модуль pyramid.configuration был удален. Он был устаревшим, начиная с 1,0 пирамиды и напечатали предупреждение устаревания на его использование. Используйте вместо pyramid.config.
- The pyramid.paster.PyramidTemplate API была удалена. Он был устаревшим, начиная с 1.1 и пирамиды выдается предупреждение об импорте. Если ваш код зависит от этого, настроить ваш код импортировать pyramid.scaffolds.PyramidTemplate вместо этого.
- В pyramid.settings.get_settings (API) была удалена. Он был печати предупреждение устаревания поскольку пирамиды 1.0. Если ваш код зависит от этого API, используйте pyramid.threadlocal.get_current_registry (). Параметры вместо или использовать настройки атрибут реестра доступной из запроса (request.registry.settings).
- Эти интерфейсы из модуля pyramid.testing были удалены. Они были печати устаревания предупреждения, так как пирамиды 1.0:
- registerDummySecurityPolicy, используйте вместо pyramid.config.Configurator.testing_securitypolicy.
- registerResources (ака registerModels, использовать pyramid.config.Configurator.testing_resources.
- registerEventListener, используйте вместо pyramid.config.Configurator.testing_add_subscriber.
- registerTemplateRenderer (ака registerDummyRenderer`), использовать вместо pyramid.config.Configurator.testing_add_template.
- registerView, используйте вместо pyramid.config.Configurator.add_view.
- registerUtility, используйте вместо pyramid.config.Configurator.registry.registerUtility.
- registerAdapter, используйте вместо pyramid.config.Configurator.registry.registerAdapter.
- registerSubscriber, используйте вместо pyramid.config.Configurator.add_subscriber.
- registerRoute, используйте вместо pyramid.config.Configurator.add_route.
- registerSettings, использование pyramid.config.Configurator.add_settings вместо этого.
- В Пирамиде 1.3 и предыдущие, метод __call__ объекта Response был вызван, прежде чем какие-либо готовые обратные были казнены. По этой версии, метод __call__ объекта Response вызывается после готовая обратные вызовы выполняются. Это в поддержку request.invoke_subrequest функции.
- Документация
- Добавлена & Quot; Обновление пирамида & Quot; глава в повествовательной документации. Он описывает, как справиться с Устаревшие и абсорбции пирамиды API, и, как показывают Пирамида сгенерированные устаревания предупреждения во время тестирования и пока работает сервер.
- Добавлена & Quot; Вызов подзапроса & Quot; глава в документации. Он описывает, как использовать новую request.invoke_subrequest API.
- Зависимости
- Пирамида теперь требует WebOb 1.2b3 + (предыдущая версия Пирамида только опирался на 1.2dev +). Это делается для того, что мы получим версию WebOb, который возвращает request.path_info как текст.
Теперь
существует
Теперь
не
вместо
Что нового в версии 1.3.2:
- Версия 1.3.1 была brownbag релиз, в крайней мере на Windows, и, возможно, в других операционных системах, из-за существования бродячих & Quot; каталоге пакета (цитата включена) в корневой директории 1.3.1 архива. Этот каталог и его содержимое присутствовал, потому что архив был создан с помощью выпуска версии Setuptools-ГИТ, а не Setuptools-ГИТ, установленного из проверки. Единственное изменение в этой версии, чтобы исправить ошибку упаковки в 1.3.1.
Что нового в версии 1.3:
- Когда pyramid.wsgi.wsgiapp2 называет вниз по течению WSGI приложение, среда приложение никогда больше не будет иметь (устарела и может ввести в заблуждение) bfg.routes.matchdict или bfg.routes.route ключи в нем. Симптомом этой ошибки будет wsgiapp2 завернутый Пирамида приложение определяет неправильное представление, потому что ошибочно обнаруживает, что маршрут был подобран когда, на самом деле, это не так.
- Исправление вопросу https://github.com/Pylons/pyramid/issues/461~~HEAD=pobj (который сделал возможным для методы экземпляра, которые будут использоваться в качестве просмотреть вызываемых объектов) представил обратную несовместимость, когда методы, которые объявлены только аргумент запроса были используемый. См https://github.com/Pylons/pyramid/issues/503
Что нового в версии 1.3 Beta 2:
- Метод pyramid.request.Request.partial_application_url является больше не в документации API. Это должен был быть частным методом; его публикация в документации в качестве метода API была ошибка, и она была переименована в то частной.
- Когда статический вид был зарегистрирован с помощью абсолютный путь файловой системы на Windows, функция request.static_url не работать для создания URL-адресов для своих ресурсов. Симптом: & Quot; Нет статического соответствия определение URL C:. Foobarbaz & Quot;
- Сделать все тесты проходят на Windows XP.
- Исправлена ошибка в проверке подлинности ACL проверки на Python 3: Разрешения и principals_allowed_by_permission метод pyramid.authorization.ACLAuthenticationPolicy может вернуться неуместным истинное значение, когда разрешение на ACL был строка, а не последовательность, а затем, только если разрешение ACL строка была подстрока значения разрешения, переданного функции.
- Это ошибка эффекты не пирамида развертывания под Python 2; это ошибка, которая существует только в развертывании работает на Python 3. Она существует, так как Пирамида 1.3a1.
- Это ошибка была из-за наличия атрибута __iter__ на строк под Python 3, который не присутствует при строк в Python 2.
Что нового в версии 1.3 Beta 1:
- исправления:
- pyramid.config.Configurator.with_package не работать, если конфигуратор был старый стиль экземпляр pyramid.configuration.Configurator.
- Политики авторизации Пирамида не появлялся в Introspector.
- Устаревшие:
- Все ссылки на переменную запроса tmpl_context были удалены из документации. Его существование в пирамиде смущает для людей, которые никогда не были пилоны пользователей. Он был добавлен в портировании удобства для пользователей Pylons в Пирамиде 1.0, но он никогда не поймали на, потому что система оказания Пирамида сильно отличается Пилоны "был, и альтернативные способы существуют, чтобы делать то, что он был разработан, чтобы предложить в Пилоны. Он будет продолжать существовать и Quot; вечно и Quot; но это не будет рекомендовано или упоминается в документации.
Требования
- Python
Комментарии не найдены