Skip to main content

pyramid_tm

https://travis-ci.org/Pylons/pyramid_tm.png?branch=master Documentation Status

pyramid_tm is a package which allows Pyramid requests to join the active transaction as provided by the transaction package.

See http://docs.pylonsproject.org/projects/pyramid_tm/en/latest/ or docs/index.rst in this distribution for detailed documentation.

Changes

1.0.2 (2016-11-18)

1.0.1 (2016-10-24)

  • Removes the AttributeError when request.tm is accessed outside the tween. It turns out this broke subrequests as well as pshell and pyramid.paster.bootstrapp CLI scripts, especially when using the global transaction manager which can be tracked outside of the tween. See https://github.com/Pylons/pyramid_tm/pull/48

1.0 (2016-09-12)

  • Drop Python 2.6, 3.2 and 3.3 support.

  • Add Python 3.5 support.

  • Subtle bugs can occur if you use the transaction manager during a request in which pyramid_tm is disabled via an activate_hook. To combat these types of errors, attempting to access request.tm will now raise an AttributeError when pyramid_tm is inactive. See https://github.com/Pylons/pyramid_tm/pull/46

0.12.1 (2015-11-25)

  • Fix compatibility with 1.2 and 1.3 again. This wasn’t fully fixed in the 0.12 release as the tween was relying on request properties working (which they do not inside tweens in older versions). See https://github.com/Pylons/pyramid_tm/pull/39

0.12 (2015-05-20)

0.11 (2015-02-04)

0.10 (2015-01-06)

0.9 (2014-12-30)

0.8 (2014-11-12)

0.7 (2012-12-30)

  • Write unauthenticated userid and request.path_info as transaction metadata via t.setUser and t.note respectively during a commit.

0.6 (2012-12-26)

  • Disuse the confusing and bug-ridden generator-plus-context-manager “attempts” mechanism from the transaction package for retrying retryable exceptions (e.g. ZODB ConflictError). Use a simple while loop plus a counter and imperative logic instead.

0.5 (2012-06-26)

Bug Fixes

  • When a non-retryable exception was raised as the result of a call to transaction.manager.commit, the exception was not reraised properly. Symptom: an unrecoverable exception such as Unsupported: Storing blobs in <somestorage> is not supported. would be swallowed inappropriately.

0.4 (2012-03-28)

Bug Fixes

Testing

  • No longer tested under Python 2.5 by tox.ini (and therefore no longer tested under 2.5 by the Pylons Jenkins server). The package may still work under 2.5, but automated tests will no longer show breakage when it changes in ways that break 2.5 support.

  • Squash test deprecation warnings under Python 3.2.

0.3 (2011-09-27)

Features

  • The transaction manager has been converted to a Pyramid 1.2 “tween” (instead of an event subscriber). It will be slotted directly “below” the exception view handler, meaning it will have a chance to handle exceptions before they are turned into responses. This means it’s best to “raise HTTPFound(…)” instead of “return HTTPFound(…)” if you want an HTTP exception to abort the transaction.

  • The transaction manager will now retry retryable exceptions (such as a ZODB conflict error) if tm.attempts is configured to be more than the default of 1. See the Retrying section of the documentation.

  • Python 3.2 compatibility (requires Pyramid 1.3dev+).

Backwards Incompatibilities

  • Incompatible with Pyramid < 1.2a1. Use pyramid_tm version 0.2 if you need compatibility with an older Pyramid installation.

  • The default_commit_veto commit veto callback is no longer configured into the system by default. Use tm.commit_veto = pyramid_tm.default_commit_veto in the deployment settings to add it. This is for parity with repoze.tm2, which doesn’t configure in a commit veto by default either.

  • The default_commit_veto no longer checks for the presence of the X-Tm-Abort header when attempting to figure out whether the transaction should be aborted (although it still checks for the X-Tm header). Use version 0.2 or a custom commit veto function if your application depends on the X-Tm-Abort header.

  • A commit veto is now called with two arguments: request and response. The request is the webob request that caused the transaction manager to become active. The response is the response returned by the Pyramid application. This call signature is incompatible with older versions. The call signature of a pyramid_tm 0.2 and older commit veto accepted three arguments: environ, status, and headers. If you’re using a custom commit_veto function, you’ll need to either convert your existing function to use the new calling convention or use a wrapper to make it compatible with the new calling convention. Here’s a simple wrapper function (bwcompat_commit_veto_wrapper) that will allow you to use your existing custom commit veto function:

    def bwcompat_commit_veto_wrapper(request, response):
        return my_custom_commit_veto(request.environ, response.status,
                                     response.headerlist)

Deprecations

  • The pyramid_tm.commit_veto configuration setting is now canonically spelled as tm.commit_veto. The older spelling will continue to work, but may raise a deprecation error when used.

0.2 (2011-07-18)

  • A new header X-Tm is now honored by the default_commit_veto commit veto hook. If this header exists in the headerlist, its value must be a string. If its value is commit, the transaction will be committed regardless of the status code or the value of X-Tm-Abort. If the value of the X-Tm header is abort (or any other string value except commit), the transaction will be aborted, regardless of the status code or the value of X-Tm-Abort.

0.1 (2011-02-23)

  • Initial release, based on repoze.tm2

Metadata

Release files for pyramid-tm 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyramid-tm 1.0.2
File Size Uploaded
pyramid_tm-1.0.2.tar.gz 32.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyramid-tm 1.0.2
File Interpreter ABI Platform
pyramid_tm-1.0.2-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 47.5 kB

Release files / pyramid_tm-1.0.2.tar.gz

Download URL pyramid_tm-1.0.2.tar.gz
Size 32.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9751c2678695155559a56dcfd6dd15dc0c8321cddf6ba04423820cd0b4a8f5cd
BLAKE2b-256 checksum
How to use checksums
969e10c9b9f38435fabc95afd6847dbabb2674dabc89429fcc7d3d9e6a5b1cfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pyramid_tm-1.0.2-py2.py3-none-any.whl

Download URL pyramid_tm-1.0.2-py2.py3-none-any.whl
Size 15.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
e3563f94a6b72a7c8fda1c106bcff14c845a35092548c3c572bff1de978610b1
BLAKE2b-256 checksum
How to use checksums
5183d6f5bb9c9ea2564f46e09b12a6149db75df8d30cb926fafb7c8c2ea4fcb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

2.6

2 release files

2.5

2 release files

2.4

2 release files

2.3

2 release files

2.2.1

2 release files

2.2

2 release files

2.1

2 release files

2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0

2 release files

0.12.1

2 release files

0.12

2 release files

0.11

1 release file

0.10

1 release file

0.9

1 release file

0.8

2 release files

0.7

1 release file

0.6

1 release file

0.5

1 release file

0.4

1 release file

0.3

1 release file

0.2.1

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page