Up to [cvs.NetBSD.org] / pkgsrc / databases / py-mongo
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
py-mongo: updated to 4.6.3 4.6.3 Unknown changes
py-mongo: updated to 4.6.2 PyMongo 4.6.2 fixes the following bug: - Fixed a bug appearing in Python 3.12 where "RuntimeError: can't create new thread at interpreter shutdown" could be written to stderr when a MongoClient's thread starts as the python interpreter is shutting down.
py-mongo: updated to 4.6.1 PyMongo 4.6.1 fixes the following bug: - Ensure retryable read ``OperationFailure`` errors re-raise exception when 0 or NoneType error code is provided.
py-mongo: updated to 4.6.0 Changes in Version 4.6 ---------------------- PyMongo 4.6 brings a number of improvements including: - Added the ``serverMonitoringMode`` URI and keyword argument to :class:`~pymongo.mongo_client.MongoClient`. - Improved client performance and reduced connection requirements in Function-as-a-service (FaaS) environments like AWS Lambda, Google Cloud Functions, and Microsoft Azure Functions. - Added the :attr:`pymongo.monitoring.CommandSucceededEvent.database_name` property. - Added the :attr:`pymongo.monitoring.CommandFailedEvent.database_name` property. - Allow passing a ``dict`` to sort/create_index/hint. - Added :func:`repr` support to the write result classes: :class:`~pymongo.results.BulkWriteResult`, :class:`~pymongo.results.DeleteResult`, :class:`~pymongo.results.InsertManyResult`, :class:`~pymongo.results.InsertOneResult`, :class:`~pymongo.results.UpdateResult`, and :class:`~pymongo.encryption.RewrapManyDataKeyResult`. For example: >>> client.t.t.insert_one({}) InsertOneResult(ObjectId('65319acdd55bb3a27ab5502b'), acknowledged=True) >>> client.t.t.insert_many([{} for _ in range(3)]) InsertManyResult([ObjectId('6532f85e826f2b6125d6ce39'), ObjectId('6532f85e826f2b6125d6ce3a'), ObjectId('6532f85e826f2b6125d6ce3b')], acknowledged=True) - :meth:`~pymongo.uri_parser.parse_uri` now considers the delimiting slash (``/``) between hosts and connection options optional. For example, "mongodb://example.com?tls=true" is now a valid URI. - Fixed a bug where PyMongo would incorrectly promote all cursors to exhaust cursors when connected to load balanced MongoDB clusters or Serverless clusters. - Added the :ref:`network-compression-example` documentation page. - Added more timeout information to network errors.
py-mongo: updated to 4.5.0 Changes in Version 4.5 ---------------------- PyMongo 4.5 brings a number of improvements including: - Added new helper methods for Atlas Search Index (requires MongoDB Server 7.0+): :meth:`~pymongo.collection.Collection.list_search_indexes`, :meth:`~pymongo.collection.Collection.create_search_index`, :meth:`~pymongo.collection.Collection.create_search_indexes`, :meth:`~pymongo.collection.Collection.drop_search_index`, :meth:`~pymongo.collection.Collection.update_search_index` - Added :meth:`~pymongo.database.Database.cursor_command` and :meth:`~pymongo.command_cursor.CommandCursor.try_next` to support executing an arbitrary command that returns a cursor. - ``cryptography`` 2.5 or later is now required for :ref:`OCSP` support. - Improved bson encoding and decoding performance by up to 134%(`PYTHON-3729`_, `PYTHON-3797`_, `PYTHON-3816`_, `PYTHON-3817`_, `PYTHON-3820`_, `PYTHON-3824`_, and `PYTHON-3846`_). .. warning:: PyMongo no longer supports PyPy3 versions older than 3.8. Users must upgrade to PyPy3.8+.
py-mongo: updated to 4.4.1 Changes in Version 4.4.1 ------------------------ Version 4.4.1 fixes the following bugs: - Fixed a bug where pymongo would raise a ``ConfigurationError: Invalid SRV host`` error when connecting to a "mongodb+srv://" URI that included capital letters in the SRV hosts returned from DNS. (`PYTHON-3800`_). - Fixed a minor reference counting bug in the C extension (`PYTHON-3798`_). Changes in Version 4.4 ----------------------- - Added support for MongoDB 7.0. - Added support for Python 3.11. - Added support for passing a list containing (key, direction) pairs or keys to :meth:`~pymongo.collection.Collection.create_index`. - Improved bson encoding performance (`PYTHON-3717`_ and `PYTHON-3718`_). - Improved support for Pyright to improve typing support for IDEs like Visual Studio Code or Visual Studio. - Improved support for type-checking with MyPy "strict" mode (`--strict`). - Added :meth:`~pymongo.encryption.ClientEncryption.create_encrypted_collection`, :class:`~pymongo.errors.EncryptedCollectionError`, :meth:`~pymongo.encryption.ClientEncryption.encrypt_expression`, :class:`~pymongo.encryption_options.RangeOpts`, and :attr:`~pymongo.encryption.Algorithm.RANGEPREVIEW` as part of the experimental Queryable Encryption beta. - pymongocrypt 1.6.0 or later is now required for :ref:`In-Use Encryption` support. MongoDB Server 7.0 introduced a backwards breaking change to the QE protocol. Users taking advantage of the Queryable Encryption beta must now upgrade to MongoDB 7.0+ and PyMongo 4.4+. - Previously, PyMongo's docs recommended using :meth:`datetime.datetime.utcnow` and :meth:`datetime.datetime.utcfromtimestamp`. utcnow and utcfromtimestamp are deprecated in Python 3.12, for reasons explained `in this Github issue`_. Instead, users should use :meth:`datetime.datetime.now(tz=timezone.utc)` and :meth:`datetime.datetime.fromtimestamp(tz=timezone.utc)` instead. .. _in this Github issue: https://github.com/python/cpython/issues/103857 Changes in Version 4.3.3 ------------------------ Version 4.3.3 documents support for the following: - :ref:`CSFLE on-demand credentials` for cloud KMS providers. - Authentication support for :ref:`EKS Clusters`. - Added the :ref:`timeout-example` example page to improve the documentation for :func:`pymongo.timeout`. Bug Fixes ......... - Fixed a performance regression in :meth:`~gridfs.GridFSBucket.download_to_stream` and :meth:`~gridfs.GridFSBucket.download_to_stream_by_name` by reading in chunks instead of line by line (`PYTHON-3502`_). - Improved performance of :meth:`gridfs.grid_file.GridOut.read` and :meth:`gridfs.grid_file.GridOut.readline` (`PYTHON-3508`_). Changes in Version 4.3 (4.3.2) ------------------------------ Note: We withheld uploading tags 4.3.0 and 4.3.1 to PyPI due to a version handling error and a necessary documentation update. `dnspython <https://pypi.python.org/pypi/dnspython>`_ is now a required dependency. This change makes PyMongo easier to install for use with "mongodb+srv://" connection strings and `MongoDB Atlas <https://www.mongodb.com/cloud>`_. PyMongo 4.3 brings a number of improvements including: - Added support for decoding BSON datetimes outside of the range supported by Python's :class:`~datetime.datetime` builtin. See :ref:`handling-out-of-range-datetimes` for examples, as well as :class:`bson.datetime_ms.DatetimeMS`, :class:`bson.codec_options.DatetimeConversion`, and :class:`bson.codec_options.CodecOptions`'s ``datetime_conversion`` parameter for more details (`PYTHON-1824`_). - PyMongo now resets its locks and other shared state in the child process after a :py:func:`os.fork` to reduce the frequency of deadlocks. Note that deadlocks are still possible because libraries that PyMongo depends like OpenSSL cannot be made fork() safe in multithreaded applications. (`PYTHON-2484`_). For more info see :ref:`pymongo-fork-safe`. - When used with MongoDB 6.0+, :class:`~pymongo.change_stream.ChangeStream` s now allow for new types of events (such as DDL and C2C replication events) to be recorded with the new parameter ``show_expanded_events`` that can be passed to methods such as :meth:`~pymongo.collection.Collection.watch`. - PyMongo now internally caches AWS credentials that it fetches from AWS endpoints, to avoid rate limitations. The cache is cleared when the credentials expire or an error is encountered. - When using the ``MONGODB-AWS`` authentication mechanism with the ``aws`` extra, the behavior of credential fetching has changed with ``pymongo_auth_aws>=1.1.0``. Please see :doc:`examples/authentication` for more information. Bug fixes ......... - Fixed a bug where :class:`~pymongo.change_stream.ChangeStream` would allow an app to retry calling ``next()`` or ``try_next()`` even after non-resumable errors (`PYTHON-3389`_). - Fixed a bug where the client could be unable to discover the new primary after a simultaneous replica set election and reconfig (`PYTHON-2970`_).
*: bump PKGREVISION for egg.mk users They now have a tool dependency on py-setuptools instead of a DEPENDS
py-mongo: updated to 3.12.1 Version 3.12.1 fixes a number of bugs: - Fixed a bug that caused a multi-document transaction to fail when the first operation was large bulk write (>48MB) that required splitting a batched write command (`PYTHON-2915`_). - Fixed a bug that caused the ``tlsDisableOCSPEndpointCheck`` URI option to be applied incorrectly (`PYTHON-2866`_).
py-mongo: updated to 3.12.0 Changes in Version 3.12.0 ------------------------- .. warning:: PyMongo 3.12.0 deprecates support for Python 2.7, 3.4 and 3.5. These Python versions will not be supported by PyMongo 4. .. warning:: PyMongo now allows insertion of documents with keys that include dots ('.') or start with dollar signs ('$'). - PyMongoCrypt 1.1.0 or later is now required for client side field level encryption support. Notable improvements .................... - Added support for MongoDB 5.0. - Support for MongoDB Versioned API, see :class:`~pymongo.server_api.ServerApi`. - Support for snapshot reads on secondaries (see :ref:`snapshot-reads-ref`). - Support for Azure and GCP KMS providers for client side field level encryption. See the docstring for :class:`~pymongo.mongo_client.MongoClient`, :class:`~pymongo.encryption_options.AutoEncryptionOpts`, and :mod:`~pymongo.encryption`. - Support AWS authentication with temporary credentials when connecting to KMS in client side field level encryption. - Support for connecting to load balanced MongoDB clusters via the new ``loadBalanced`` URI option. - Support for creating timeseries collections via the ``timeseries`` and ``expireAfterSeconds`` arguments to :meth:`~pymongo.database.Database.create_collection`. - Added :attr:`pymongo.mongo_client.MongoClient.topology_description`. - Added hash support to :class:`~pymongo.mongo_client.MongoClient`, :class:`~pymongo.database.Database` and :class:`~pymongo.collection.Collection` (`PYTHON-2466`_). - Improved the error message returned by :meth:`~pymongo.collection.Collection.insert_many` when supplied with an argument of incorrect type (`PYTHON-1690`_). - Added session and read concern support to :meth:`~pymongo.collection.Collection.find_raw_batches` and :meth:`~pymongo.collection.Collection.aggregate_raw_batches`. Bug fixes ......... - Fixed a bug that could cause the driver to deadlock during automatic client side field level encryption (`PYTHON-2472`_). - Fixed a potential deadlock when garbage collecting an unclosed exhaust :class:`~pymongo.cursor.Cursor`. - Fixed an bug where using gevent.Timeout to timeout an operation could lead to a deadlock. - Fixed the following bug with Atlas Data Lake. When closing cursors, pymongo now sends killCursors with the namespace returned the cursor's initial command response. - Fixed a bug in :class:`~pymongo.cursor.RawBatchCursor` that caused it to return an empty bytestring when the cursor contained no results. It now raises :exc:`StopIteration` instead. Deprecations ............ - Deprecated support for Python 2.7, 3.4 and 3.5. - Deprecated support for database profiler helpers :meth:`~pymongo.database.Database.profiling_level`, :meth:`~pymongo.database.Database.set_profiling_level`, and :meth:`~pymongo.database.Database.profiling_info`. Instead, users should run the `profile command`_ with the :meth:`~pymongo.database.Database.command` helper directly. - Deprecated :exc:`~pymongo.errors.NotMasterError`. Users should use :exc:`~pymongo.errors.NotPrimaryError` instead. - Deprecated :class:`~pymongo.ismaster.IsMaster` and :mod:`~pymongo.ismaster` which will be removed in PyMongo 4.0 and are replaced by :class:`~pymongo.hello.Hello` and :mod:`~pymongo.hello` which provide the same API. - Deprecated the :mod:`pymongo.messeage` module. - Deprecated the ``ssl_keyfile`` and ``ssl_certfile`` URI options in favor of ``tlsCertificateKeyFile`` (see :doc:`examples/tls`).
py-mongo: updated to 3.11.4 Version 3.11.4 fixes a bug where a MongoClient would mistakenly attempt to create minPoolSize connections to arbiter nodes (`PYTHON-2634`_).
py-mongo: updated to 3.11.3 Changes in Version 3.11.3 ------------------------- Issues Resolved Version 3.11.3 fixes a bug that prevented PyMongo from retrying writes after a ``writeConcernError`` on MongoDB 4.4+
py-mongo: updated to 3.11.2 Changes in Version 3.11.2 Issues Resolved Version 3.11.2 includes a number of bugfixes. Highlights include: Fixed a memory leak caused by failing SDAM monitor checks on Python 3 (PYTHON-2433). Fixed a regression that changed the string representation of BulkWriteError (PYTHON-2438). Fixed a bug that made it impossible to use bson.codec_options.CodecOptions.with_options() and with_options() on some early versions of Python 3.4 and Python 3.5 due to a bug in the standard library implementation of collections.namedtuple._asdict() (PYTHON-2440). Fixed a bug that resulted in a TypeError exception when a PyOpenSSL socket was configured with a timeout of None (PYTHON-2443). Changes in Version 3.11.1 Version 3.11.1 adds support for Python 3.9 and includes a number of bugfixes. Highlights include: Support for Python 3.9. Initial support for Azure and GCP KMS providers for client side field level encryption is in beta. See the docstring for MongoClient, AutoEncryptionOpts, and encryption. Note: Backwards-breaking changes may be made before the final release. Fixed a bug where the bson.json_util.JSONOptions API did not match the bson.codec_options.CodecOptions API due to the absence of a bson.json_util.JSONOptions.with_options() method. This method has now been added. Fixed a bug which made it impossible to serialize BulkWriteError instances using pickle. Fixed a bug wherein PyMongo did not always discard an implicit session after encountering a network error. Fixed a bug where connections created in the background were not authenticated. Fixed a memory leak in the bson module when using a TypeRegistry. Changes in Version 3.11.0 Version 3.11 adds support for MongoDB 4.4 and includes a number of bug fixes. Highlights include: Support for OCSP (Online Certificate Status Protocol). Support for PyOpenSSL as an alternative TLS implementation. PyOpenSSL is required for OCSP support. It will also be installed when using the “tls” extra if the version of Python in use is older than 2.7.9. Support for the MONGODB-AWS authentication mechanism. Support for the directConnection URI option and kwarg to MongoClient. Support for speculative authentication attempts in connection handshakes which reduces the number of network roundtrips needed to authenticate new connections on MongoDB 4.4+. Support for creating collections in multi-document transactions with create_collection() on MongoDB 4.4+. Added index hinting support to the replace_one(), update_one(), update_many(), find_one_and_replace(), find_one_and_update(), delete_one(), delete_many(), and find_one_and_delete() commands. Added index hinting support to the ReplaceOne, UpdateOne, UpdateMany, DeleteOne, and DeleteMany bulk operations. Added support for bson.binary.UuidRepresentation.UNSPECIFIED and MongoClient(uuidRepresentation='unspecified') which will become the default UUID representation starting in PyMongo 4.0. See Handling UUID Data for details. Added the background parameter to pymongo.database.Database.validate_collection(). For a description of this parameter see the MongoDB documentation for the validate command. Added the allow_disk_use parameters to pymongo.collection.Collection.find(). Added the hedge parameter to PrimaryPreferred, Secondary, SecondaryPreferred, Nearest to support disabling (or explicitly enabling) hedged reads in MongoDB 4.4+. Fixed a bug in change streams that could cause PyMongo to miss some change documents when resuming a stream that was started without a resume token and whose first batch did not contain any change documents. Fixed an bug where using gevent.Timeout to timeout an operation could lead to a deadlock. Deprecations: Deprecated the oplog_replay parameter to pymongo.collection.Collection.find(). Starting in MongoDB 4.4, the server optimizes queries against the oplog collection without requiring the user to set this flag. Deprecated pymongo.collection.Collection.reindex(). Use command() to run the reIndex command instead. Deprecated pymongo.mongo_client.MongoClient.fsync(). Use command() to run the fsync command instead. Deprecated pymongo.mongo_client.MongoClient.unlock(). Use command() to run the fsyncUnlock command instead. See the documentation for more information. Deprecated pymongo.mongo_client.MongoClient.is_locked. Use command() to run the currentOp command instead. See the documentation for more information. Unavoidable breaking changes: GridFSBucket and GridFS do not support multi-document transactions. Running a GridFS operation in a transaction now always raises the following error: InvalidOperation: GridFS does not support multi-document transactions
py-mongo: updated to 3.10.1 Changes in Version 3.10.1 ------------------------- Version 3.10.1 fixes the following issues discovered since the release of 3.10.0: - Fix a TypeError logged to stderr that could be triggered during server maintenance or during :meth:`pymongo.mongo_client.MongoClient.close`. - Avoid creating new connections during :meth:`pymongo.mongo_client.MongoClient.close`. Issues Resolved ............... See the `PyMongo 3.10.1 release notes in JIRA`_ for the list of resolved issues in this release. .. _PyMongo 3.10.1 release notes in JIRA: https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=25039 Changes in Version 3.10.0 ------------------------- Version 3.10 includes a number of improvements and bug fixes. Highlights include: - Support for Client-Side Field Level Encryption with MongoDB 4.2. See :doc:`examples/encryption` for examples. - Support for Python 3.8. - Added :attr:`pymongo.client_session.ClientSession.in_transaction`. - Do not hold the Topology lock while creating connections in a MongoClient's background thread. This change fixes a bug where application operations would block while the background thread ensures that all server pools have minPoolSize connections. - Fix a UnicodeDecodeError bug when coercing a PyMongoError with a non-ascii error message to unicode on Python 2. - Fix an edge case bug where PyMongo could exceed the server's maxMessageSizeBytes when generating a compressed bulk write command. Issues Resolved ............... See the `PyMongo 3.10 release notes in JIRA`_ for the list of resolved issues in this release. .. _PyMongo 3.10 release notes in JIRA: https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=23944 Changes in Version 3.9.0 ------------------------ Version 3.9 adds support for MongoDB 4.2. Highlights include: - Support for MongoDB 4.2 sharded transactions. Sharded transactions have the same API as replica set transactions. See :ref:`transactions-ref`. - New method :meth:`pymongo.client_session.ClientSession.with_transaction` to support conveniently running a transaction in a session with automatic retries and at-most-once semantics. - Initial support for client side field level encryption. See the docstring for :class:`~pymongo.mongo_client.MongoClient`, :class:`~pymongo.encryption_options.AutoEncryptionOpts`, and :mod:`~pymongo.encryption` for details. **Note: Support for client side encryption is in beta. Backwards-breaking changes may be made before the final release.** - Added the ``max_commit_time_ms`` parameter to :meth:`~pymongo.client_session.ClientSession.start_transaction`. - Implement the `URI options specification`_ in the :meth:`~pymongo.mongo_client.MongoClient` constructor. Consequently, there are a number of changes in connection options: - The ``tlsInsecure`` option has been added. - The ``tls`` option has been added. The older ``ssl`` option has been retained as an alias to the new ``tls`` option. - ``wTimeout`` has been deprecated in favor of ``wTimeoutMS``. - ``wTimeoutMS`` now overrides ``wTimeout`` if the user provides both. - ``j`` has been deprecated in favor of ``journal``. - ``journal`` now overrides ``j`` if the user provides both. - ``ssl_cert_reqs`` has been deprecated in favor of ``tlsAllowInvalidCertificates``. Instead of ``ssl.CERT_NONE``, ``ssl.CERT_OPTIONAL`` and ``ssl.CERT_REQUIRED``, the new option expects a boolean value - ``True`` is equivalent to ``ssl.CERT_NONE``, while ``False`` is equivalent to ``ssl.CERT_REQUIRED``. - ``ssl_match_hostname`` has been deprecated in favor of ``tlsAllowInvalidHostnames``. - ``ssl_ca_certs`` has been deprecated in favor of ``tlsCAFile``. - ``ssl_certfile`` has been deprecated in favor of ``tlsCertificateKeyFile``. - ``ssl_pem_passphrase`` has been deprecated in favor of ``tlsCertificateKeyFilePassword``. - ``waitQueueMultiple`` has been deprecated without replacement. This option was a poor solution for putting an upper bound on queuing since it didn't affect queuing in other parts of the driver. - The ``retryWrites`` URI option now defaults to ``True``. Supported write operations that fail with a retryable error will automatically be retried one time, with at-most-once semantics. - Support for retryable reads and the ``retryReads`` URI option which is enabled by default. See the :class:`~pymongo.mongo_client.MongoClient` documentation for details. Now that supported operations are retried automatically and transparently, users should consider adjusting any custom retry logic to prevent an application from inadvertently retrying for too long. - Support zstandard for wire protocol compression. - Support for periodically polling DNS SRV records to update the mongos proxy list without having to change client configuration. - New method :meth:`pymongo.database.Database.aggregate` to support running database level aggregations. - Support for publishing Connection Monitoring and Pooling events via the new :class:`~pymongo.monitoring.ConnectionPoolListener` class. See :mod:`~pymongo.monitoring` for an example. - :meth:`pymongo.collection.Collection.aggregate` and :meth:`pymongo.database.Database.aggregate` now support the ``$merge`` pipeline stage and use read preference :attr:`~pymongo.read_preferences.ReadPreference.PRIMARY` if the ``$out`` or ``$merge`` pipeline stages are used. - Support for specifying a pipeline or document in :meth:`~pymongo.collection.Collection.update_one`, :meth:`~pymongo.collection.Collection.update_many`, :meth:`~pymongo.collection.Collection.find_one_and_update`, :meth:`~pymongo.operations.UpdateOne`, and :meth:`~pymongo.operations.UpdateMany`. - New BSON utility functions :func:`~bson.encode` and :func:`~bson.decode` - :class:`~bson.binary.Binary` now supports any bytes-like type that implements the buffer protocol. - Resume tokens can now be accessed from a ``ChangeStream`` cursor using the :attr:`~pymongo.change_stream.ChangeStream.resume_token` attribute. - Connections now survive primary step-down when using MongoDB 4.2+. Applications should expect less socket connection turnover during replica set elections. Unavoidable breaking changes: - Applications that use MongoDB with the MMAPv1 storage engine must now explicitly disable retryable writes via the connection string (e.g. ``MongoClient("mongodb://my.mongodb.cluster/db?retryWrites=false")``) or the :class:`~pymongo.mongo_client.MongoClient` constructor's keyword argument (e.g. ``MongoClient("mongodb://my.mongodb.cluster/db", retryWrites=False)``) to avoid running into :class:`~pymongo.errors.OperationFailure` exceptions during write operations. The MMAPv1 storage engine is deprecated and does not support retryable writes which are now turned on by default. - In order to ensure that the ``connectTimeoutMS`` URI option is honored when connecting to clusters with a ``mongodb+srv://`` connection string, the minimum required version of the optional ``dnspython`` dependency has been bumped to 1.16.0. This is a breaking change for applications that use PyMongo's SRV support with a version of ``dnspython`` older than 1.16.0. .. _URI options specification: https://github.com/mongodb/specifications/blob/master/source/uri-options/uri-options.rst Issues Resolved ............... See the `PyMongo 3.9 release notes in JIRA`_ for the list of resolved issues in this release. .. _PyMongo 3.9 release notes in JIRA: https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=21787 Changes in Version 3.8.0 ------------------------ .. warning:: PyMongo no longer supports Python 2.6. RHEL 6 users should install Python 2.7 or newer from `Red Hat Software Collections <https://www.softwarecollections.org>`_. CentOS 6 users should install Python 2.7 or newer from `SCL <https://wiki.centos.org/AdditionalResources/Repositories/SCL>`_ .. warning:: PyMongo no longer supports PyPy3 versions older than 3.5. Users must upgrade to PyPy3.5+. - :class:`~bson.objectid.ObjectId` now implements the `ObjectID specification version 0.2 <https://github.com/mongodb/specifications/blob/master/source/objectid.rst>`_. - For better performance and to better follow the GridFS spec, :class:`~gridfs.grid_file.GridOut` now uses a single cursor to read all the chunks in the file. Previously, each chunk in the file was queried individually using :meth:`~pymongo.collection.Collection.find_one`. - :meth:`gridfs.grid_file.GridOut.read` now only checks for extra chunks after reading the entire file. Previously, this method would check for extra chunks on every call. - :meth:`~pymongo.database.Database.current_op` now always uses the ``Database``'s :attr:`~pymongo.database.Database.codec_options` when decoding the command response. Previously the codec_options was only used when the MongoDB server version was <= 3.0. - Undeprecated :meth:`~pymongo.mongo_client.MongoClient.get_default_database` and added the ``default`` parameter. - TLS Renegotiation is now disabled when possible. - Custom types can now be directly encoded to, and decoded from MongoDB using the :class:`~bson.codec_options.TypeCodec` and :class:`~bson.codec_options.TypeRegistry` APIs. For more information, see the :doc:`custom type example <examples/custom_type>`. - Attempting a multi-document transaction on a sharded cluster now raises a :exc:`~pymongo.errors.ConfigurationError`. - :meth:`pymongo.cursor.Cursor.distinct` and :meth:`pymongo.cursor.Cursor.count` now send the Cursor's :meth:`~pymongo.cursor.Cursor.comment` as the "comment" top-level command option instead of "$comment". Also, note that "comment" must be a string. - Add the ``filter`` parameter to :meth:`~pymongo.database.Database.list_collection_names`. - Changes can now be requested from a ``ChangeStream`` cursor without blocking indefinitely using the new :meth:`pymongo.change_stream.ChangeStream.try_next` method. - Fixed a reference leak bug when splitting a batched write command based on maxWriteBatchSize or the max message size. - Deprecated running find queries that set :meth:`~pymongo.cursor.Cursor.min` and/or :meth:`~pymongo.cursor.Cursor.max` but do not also set a :meth:`~pymongo.cursor.Cursor.hint` of which index to use. The find command is expected to require a :meth:`~pymongo.cursor.Cursor.hint` when using min/max starting in MongoDB 4.2. - Documented support for the uuidRepresentation URI option, which has been supported since PyMongo 2.7. Valid values are `pythonLegacy` (the default), `javaLegacy`, `csharpLegacy` and `standard`. New applications should consider setting this to `standard` for cross language compatibility. - :class:`~bson.raw_bson.RawBSONDocument` now validates that the ``bson_bytes`` passed in represent a single bson document. Earlier versions would mistakenly accept multiple bson documents. - Iterating over a :class:`~bson.raw_bson.RawBSONDocument` now maintains the same field order of the underlying raw BSON document. - Applications can now register a custom server selector. For more information see the :doc:`server selector example <examples/server_selection>`. - The connection pool now implements a LIFO policy. Unavoidable breaking changes: - In order to follow the ObjectID Spec version 0.2, an ObjectId's 3-byte machine identifier and 2-byte process id have been replaced with a single 5-byte random value generated per process. This is a breaking change for any application that attempts to interpret those bytes.
py-mongo: updated to 3.7.2 Version 3.7.2 fixes a few issues discovered since the release of 3.7.1. - Fixed a bug in retryable writes where a previous command's "txnNumber" field could be sent leading to incorrect results. - Fixed a memory leak of a few bytes on some insert, update, or delete commands when running against MongoDB 3.6+. - Fixed a bug that caused :meth:pymongo.collection.Collection.ensure_index to only cache a single index per database. - Updated the documentation examples to use :meth:pymongo.collection.Collection.count_documents instead of :meth:pymongo.collection.Collection.count and :meth:pymongo.cursor.Cursor.count.
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.
databases/py-mongo: update to 3.5.1 Changes in Version 3.5.1 Version 3.5.1 fixes bugs reported since the release of 3.5.0: * Work around socket.getsockopt issue with NetBSD. * :meth:`pymongo.command_cursor.CommandCursor.close` now closes the cursor synchronously instead of deferring to a background thread. * Fix documentation build warnings with Sphinx 1.6.x. Issues Resolved See the PyMongo 3.5.1 release notes in JIRA for the list of resolved issues in this release.
Switch github HOMEPAGEs to https.
Switch to MASTER_SITES_PYPI.
Import py27-mongo-2.7.1 as databases/py-mongo. The PyMongo distribution contains tools for interacting with MongoDB database from Python. The bson package is an implementation of the BSON format for Python. The pymongo package is a native Python driver for MongoDB. The gridfs package is a gridfs implementation on top of pymongo.