Path to this page:
Subject: CVS commit: pkgsrc/databases/py-mongo
From: Adam Ciarcinski
Date: 2018-10-07 09:33:42
Message id: 20181007073342.8F1EDFBEE@cvs.NetBSD.org
Log Message:
py-mongo: updated to 3.7.1
Changes in Version 3.7.1
Version 3.7.1 fixes a few issues discovered since the release of 3.7.0.
Calling :meth:~pymongo.database.Database.authenticate more than once with the \
same credentials results in OperationFailure.
Authentication fails when SCRAM-SHA-1 is used to authenticate users with only \
MONGODB-CR credentials.
A millisecond rounding problem when decoding datetimes in the pure Python BSON \
decoder on 32 bit systems and AWS lambda.
Issues Resolved
Changes in Version 3.7.0
Version 3.7 adds support for MongoDB 4.0. Highlights include:
Support for single replica set multi-document ACID transactions. See \
:ref:transactions-ref.
Support for wire protocol compression. See the \
:meth:~pymongo.mongo_client.MongoClient documentation for details.
Support for Python 3.7.
New count methods, :meth:~pymongo.collection.Collection.count_documents and \
:meth:~pymongo.collection.Collection.estimated_document_count. \
:meth:~pymongo.collection.Collection.count_documents is always accurate when \
used with MongoDB 3.6+, or when used with older standalone or replica set \
deployments. With older sharded clusters is it always accurate when used with \
Primary read preference. It can also be used in a transaction, unlike the now \
deprecated :meth:pymongo.collection.Collection.count and \
:meth:pymongo.cursor.Cursor.count methods.
Support for watching changes on all collections in a database using the new \
:meth:pymongo.database.Database.watch method.
Support for watching changes on all collections in all databases using the new \
:meth:pymongo.mongo_client.MongoClient.watch method.
Support for watching changes starting at a user provided timestamp using the new \
start_at_operation_time parameter for the watch() helpers.
Better support for using PyMongo in a FIPS 140-2 environment. Specifically, the \
following features and changes allow PyMongo to function when MD5 support is \
disabled in OpenSSL by the FIPS Object Module:
Support for the :ref:SCRAM-SHA-256 <scram_sha_256> authentication \
mechanism. The :ref:GSSAPI <gssapi>, :ref:PLAIN <sasl_plain>, and \
:ref:MONGODB-X509 <mongodb_x509> mechanisms can also be used to avoid \
issues with OpenSSL in FIPS environments.
MD5 checksums are now optional in GridFS. See the disable_md5 option of \
:class:~gridfs.GridFS and :class:~gridfs.GridFSBucket.
:class:~bson.objectid.ObjectId machine bytes are now hashed using FNV-1a instead \
of MD5.
The :meth:~pymongo.database.Database.list_collection_names and \
:meth:~pymongo.database.Database.collection_names methods use the nameOnly \
option when supported by MongoDB.
The :meth:pymongo.collection.Collection.watch method now returns an instance of \
the :class:~pymongo.change_stream.CollectionChangeStream class which is a \
subclass of :class:~pymongo.change_stream.ChangeStream.
SCRAM client and server keys are cached for improved performance, following RFC 5802.
If not specified, the authSource for the :ref:PLAIN <sasl_plain> \
authentication mechanism defaults to $external.
wtimeoutMS is once again supported as a URI option.
When using unacknowledged write concern and connected to MongoDB server version \
3.6 or greater, the bypass_document_validation option is now supported in the \
following write helpers: :meth:~pymongo.collection.Collection.insert_one, \
:meth:~pymongo.collection.Collection.replace_one, \
:meth:~pymongo.collection.Collection.update_one, \
:meth:~pymongo.collection.Collection.update_many.
Deprecations:
Deprecated :meth:pymongo.collection.Collection.count and \
:meth:pymongo.cursor.Cursor.count. These two methods use the count command and \
may or may not be accurate, depending on the options used and connected MongoDB \
topology. Use :meth:~pymongo.collection.Collection.count_documents instead.
Deprecated the snapshot option of :meth:~pymongo.collection.Collection.find and \
:meth:~pymongo.collection.Collection.find_one. The option was deprecated in \
MongoDB 3.6 and removed in MongoDB 4.0.
Deprecated the max_scan option of :meth:~pymongo.collection.Collection.find and \
:meth:~pymongo.collection.Collection.find_one. The option was deprecated in \
MongoDB 4.0. Use maxTimeMS instead.
Deprecated :meth:~pymongo.mongo_client.MongoClient.close_cursor. Use \
:meth:~pymongo.cursor.Cursor.close instead.
Deprecated :meth:~pymongo.mongo_client.MongoClient.database_names. Use \
:meth:~pymongo.mongo_client.MongoClient.list_database_names instead.
Deprecated :meth:~pymongo.database.Database.collection_names. Use \
:meth:~pymongo.database.Database.list_collection_names instead.
Deprecated :meth:~pymongo.collection.Collection.parallel_scan. MongoDB 4.2 will \
remove the parallelCollectionScan command.
Unavoidable breaking changes:
Commands that fail with server error codes 10107, 13435, 13436, 11600, 11602, \
189, 91 (NotMaster, NotMasterNoSlaveOk, NotMasterOrSecondary, \
InterruptedAtShutdown, InterruptedDueToReplStateChange, PrimarySteppedDown, \
ShutdownInProgress respectively) now always raise \
:class:~pymongo.errors.NotMasterError instead of \
:class:~pymongo.errors.OperationFailure.
:meth:~pymongo.collection.Collection.parallel_scan no longer uses an implicit \
session. Explicit sessions are still supported.
Unacknowledged writes (w=0) with an explicit session parameter now raise a \
client side error. Since PyMongo does not wait for a response for an \
unacknowledged write, two unacknowledged writes run serially by the client may \
be executed simultaneously on the server. However, the server requires a single \
session must not be used simultaneously by more than one operation. Therefore \
explicit sessions cannot support unacknowledged writes. Unacknowledged writes \
without a session parameter are still supported.
Files: