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:
RevisionActionfile
1.5modifypkgsrc/databases/py-mongo/Makefile
1.3modifypkgsrc/databases/py-mongo/PLIST
1.4modifypkgsrc/databases/py-mongo/distinfo