Releases: shotgunsoftware/python-api
v3.0.32
New Documentation
We've finally moved our documentation to sphinx. All of our existing documentation on the Github wiki has been ported over (and updated in many places). In addition, all of the public methods in the code are now documented with details and example code (where possible). We hope you enjoy the update (we already do!).
The official documentation can now be found at http://developer.shotgunsoftware.com/python-api/.
The changelog has been removed from the README and put in it's own HISTORY file. It is also now part of the documentation site.
Optimized mimetypes
module import
We now always import the bundled mimetypes
module on versions of Python where it's broken. Previously we were doing unnecessary checks before importing.
v3.0.31
Additional Filter Presets
- An optional
additional_filter_presets
argument has been added tofind()
andfind_one
methods. This allows access to specific pre-formed queries that have been optimized on the Shotgun server. For example: getting the latest Version for a list of Shots. - Documentation for additional filter presets: Additional Filter Presets
v3.0.30
Multi-entity update options, product-specific authorization, and explicit file closing
-
Adds an optional dictionary parameter
multi_entity_update_modes
to useadd
,remove
, andset
modes when callingupdate()
on multi-entity fields. This allows for updating multi-entity fields without the need for pulling down the field's data and pushing back up the entire set. For example, when specifying an addition toSequence.shots
, we could specify:sg.update("Sequence", 1234, {"shots":[{"type":"Shot", "id":123}]}, multi_entity_update_modes={"shots":"add"})
-
Adds explicit file handler closing to download_attachment.
-
Adds basic
find()
ordering support to mockgun. -
Allows for product specific authorization parameters.
v3.0.29
v3.0.28
Serializable Timestamps
- Refactoring scoping of the sgtimezone library so that dates returned from Shotgun are serializable.
v3.0.27
Various fixes
- Make sure HTTP proxy authentication works with the @ character in a password.
- Smarter uploading of thumbnails and filmstrips with the upload() method.
- Make sure sudo authentication test works with Shotgun versions after 6.3.10
- Improve Travis build integration of the Python-API to run the full suite of API tests instead of just the unit and client tests.
v3.0.26
Testing Configuration Update
- Updating testing framework to use environment variables in conjunction with existing example_config file so that commits and pull requests are automatically run on travis-ci.
- Fix to prevent stripping out case-sensitivity of a URL if the user passes their credentials to config.server as an authrization header.
v3.0.25
Change in behavior
We are updating our hosted server certificates to more secure ones signed with SHA-2. Some older versions of Python will have issues with this change as they do not support SHA-2 encryption. In order to try and prevent scripts from breaking, when the API encounters a version of Python that is incompatible with SHA-2, it will automatically turn off certificate verification and try the request again. If the validation still fails for some reason, the error will be raised, otherwise the request succeeds and validation will remain off for the remaining life of the connection.
This behavior of having certificate validation off, is actually the default in Python versions < v2.7.9. Up to this point we have been electing to enhance the default level of security. Your connection is still encrypted when certificate validation is off, but the server identity cannot be verified.
Logging warnings
When the connection falls back to not validating the certificate, a warning message is generated in the logs:
Warning: shotgun_api3 : SSLHandshakeError: this Python installation is incompatible with certificates signed with SHA-2. Disabling certificate validation. For more information, see http://blog.shotgunsoftware.com/2016/01/important-ssl-certificate-renewal-and.html
SHOTGUN_FORCE_CERTIFICATE_VALIDATION
environment variable support
There is also support for the SHOTGUN_FORCE_CERTIFICATE_VALIDATION
environment variable which when set (the value does not matter), will prevent disabling certificate verification and will instead raise an exception.
SSL info added to user-agent
Adds info showing the OpenSSL version (if available) and whether certificate validation is enabled or not, to the user-agent string:
ssl OpenSSL 1.0.2d 9 Jul 2015 (no-validate)
when validation is disabled
ssl OpenSSL 1.0.2d 9 Jul 2015 (validate)
when validation is enabled
ssl OpenSSL unknown (validate)
when the ssl version cannot be determined (< Python 2.7)
v3.0.23
Various fixes
- Fix for Python bug on Windows loading mimetypes module (http://bugs.python.org/issue23371) thanks to @patrickwolf.
- Fix for tests on older versions of Python.
- Sanitize authentication values before raising error.
v3.0.22
Added support for activity stream, global search and note thread access
- Added a new method
text_search()
, which allows an API client to access the Shotgun global search and auto completer. - Added a new method
activity_stream_read()
, which allows an API client to access the activity stream for a given Shotgun entity. - Added a new method
note_thread_read()
, which allows an API client to download an entire note conversation, including replies and attachments, using a single API call. - Added an experimental
mockgun
module (in thelib
submodule), which can be used to emulate the Shotgun API, for example inside unit test rigs. - Improved existing docstrings, added some missing docstrings, fixed some spelling and grammar issues.
- Minor adjustments to existing unit tests to improve encapsulation.