Changelog for PyMongo 3.4
This commit is contained in:
parent
d513eb785d
commit
1a45a0fa08
@ -42,7 +42,7 @@ class Code(str):
|
||||
- `**kwargs` (optional): scope variables can also be passed as
|
||||
keyword arguments. These are applied after `scope` and `code`.
|
||||
|
||||
..versionchanged:: 3.4
|
||||
.. versionchanged:: 3.4
|
||||
The default value for :attr:`scope` is ``None`` instead of ``{}``.
|
||||
|
||||
"""
|
||||
@ -82,7 +82,7 @@ class Code(str):
|
||||
|
||||
@property
|
||||
def scope(self):
|
||||
"""Scope dictionary for this instance.
|
||||
"""Scope dictionary for this instance or ``None``.
|
||||
"""
|
||||
return self.__scope
|
||||
|
||||
|
||||
@ -5,7 +5,11 @@
|
||||
:synopsis: Utilities for choosing which member of a replica set to read from.
|
||||
|
||||
.. autoclass:: pymongo.read_preferences.Primary
|
||||
:inherited-members:
|
||||
|
||||
.. autoattribute:: document
|
||||
.. autoattribute:: mode
|
||||
.. autoattribute:: name
|
||||
|
||||
.. autoclass:: pymongo.read_preferences.PrimaryPreferred
|
||||
:inherited-members:
|
||||
.. autoclass:: pymongo.read_preferences.Secondary
|
||||
|
||||
@ -4,17 +4,59 @@ Changelog
|
||||
Changes in Version 3.4
|
||||
----------------------
|
||||
|
||||
Version 3.4 implements the new server features introduced in MongoDB 3.4:
|
||||
Version 3.4 implements the new server features introduced in MongoDB 3.4
|
||||
and a whole lot more:
|
||||
|
||||
Highlights include:
|
||||
|
||||
- Complete support for MongoDB 3.4:
|
||||
|
||||
- Unicode aware string comparison using :doc:`examples/collations`.
|
||||
- Support for the new :class:`~bson.decimal128.Decimal128` BSON type.
|
||||
- A new maxStalenessMS read preference option.
|
||||
- :meth:`~pymongo.collection.Collection.parallel_scan` supports maxTimeMS.
|
||||
- :attr:`~pymongo.write_concern.WriteConcern` is automatically
|
||||
applied by all helpers for commands that write to the database when
|
||||
connected to MongoDB 3.4+. This change affects the following helpers:
|
||||
|
||||
- :meth:`~pymongo.mongo_client.MongoClient.drop_database`
|
||||
- :meth:`~pymongo.database.Database.create_collection`
|
||||
- :meth:`~pymongo.database.Database.drop_collection`
|
||||
- :meth:`~pymongo.collection.Collection.aggregate` (when using $out)
|
||||
- :meth:`~pymongo.collection.Collection.create_indexes`
|
||||
- :meth:`~pymongo.collection.Collection.create_index`
|
||||
- :meth:`~pymongo.collection.Collection.drop_indexes`
|
||||
- :meth:`~pymongo.collection.Collection.drop_indexes`
|
||||
- :meth:`~pymongo.collection.Collection.drop_index`
|
||||
- :meth:`~pymongo.collection.Collection.map_reduce` (when output is not
|
||||
"inline")
|
||||
- :meth:`~pymongo.collection.Collection.reindex`
|
||||
- :meth:`~pymongo.collection.Collection.rename`
|
||||
|
||||
- Improved support for logging server discovery and monitoring events. See
|
||||
:mod:`~pymongo.monitoring` for examples.
|
||||
- Support for matching iPAddress subjectAltName values for TLS certificate
|
||||
verification.
|
||||
- TLS compression is now explicitly disabled when possible.
|
||||
- The Server Name Indication (SNI) TLS extension is used when possible.
|
||||
- Finer control over JSON encoding/decoding with
|
||||
:class:`~bson.json_util.JSONOptions`.
|
||||
- Allow :class:`~bson.code.Code` objects to have a scope of ``None``, signifying
|
||||
no scope. Also allow encoding Code objects with an empty scope (i.e. ``{}``).
|
||||
- Allow :class:`~bson.code.Code` objects to have a scope of ``None``,
|
||||
signifying no scope. Also allow encoding Code objects with an empty scope
|
||||
(i.e. ``{}``).
|
||||
|
||||
.. warning:: Starting in PyMongo 3.4, :attr:`~bson.code.Code.scope` may return
|
||||
``None``, as the default scope is ``None`` instead of ``{}``.
|
||||
.. warning:: Starting in PyMongo 3.4, :attr:`bson.code.Code.scope` may return
|
||||
``None``, as the default scope is ``None`` instead of ``{}``.
|
||||
|
||||
.. note:: PyMongo 3.4+ attempts to create sockets non-inheritable when possible
|
||||
(i.e. it sets the close-on-exec flag on socket file descriptors). Support
|
||||
is limited to a subset of POSIX operating systems (not including Windows) and
|
||||
the flag usually cannot be set in a single atomic operation. CPython 3.4+
|
||||
implements `PEP 446`_, creating all file descriptors non-inheritable by
|
||||
default. Users that require this behavior are encouraged to upgrade to
|
||||
CPython 3.4+.
|
||||
|
||||
.. _PEP 446: https://www.python.org/dev/peps/pep-0446/
|
||||
|
||||
Issues Resolved
|
||||
...............
|
||||
|
||||
@ -203,9 +203,19 @@ class MongoClient(common.BaseObject):
|
||||
match this name. Implies that the hosts specified are a seed list
|
||||
and the driver should attempt to find all members of the set.
|
||||
Defaults to ``None``.
|
||||
- `read_preference`: The read preference for this client.
|
||||
See :class:`~pymongo.read_preferences.ReadPreference` for all
|
||||
available read preference options. Defaults to ``PRIMARY``.
|
||||
|
||||
| **Read Preference:**
|
||||
|
||||
- `readPreference`: The replica set read preference for this client.
|
||||
One of ``primary``, ``primaryPreferred``, ``secondary``,
|
||||
``secondaryPreferred``, or ``nearest``. Defaults to ``primary``.
|
||||
- `readPreferenceTags`: Specifies a tag set as a comma-separated list
|
||||
of colon-separated key-value pairs. For example ``dc:ny,rack:1``.
|
||||
Defaults to ``None``.
|
||||
- `maxStalenessMS`: (integer or float, in milliseconds) The maximum
|
||||
estimated length of time a replica set secondary can fall behind
|
||||
the primary in replication before it will no longer be selected for
|
||||
operations. Defaults to ``None`` (no limit).
|
||||
|
||||
| **SSL configuration:**
|
||||
|
||||
|
||||
@ -127,7 +127,9 @@ class _ServerMode(object):
|
||||
|
||||
@property
|
||||
def max_staleness(self):
|
||||
"""This read preference's maxStalenessMS, converted to seconds."""
|
||||
"""The maximum estimated length of time (in seconds) a replica set
|
||||
secondary can fall behind the primary in replication before it will
|
||||
no longer be selected for operations."""
|
||||
return self.__max_staleness
|
||||
|
||||
@property
|
||||
@ -135,10 +137,11 @@ class _ServerMode(object):
|
||||
"""The wire protocol version the server must support.
|
||||
|
||||
Some read preferences impose version requirements on all servers in the
|
||||
topology. E.g., maxStalenessMS requires MongoDB 3.4 / maxWireVersion 5.
|
||||
topology (e.g. maxStalenessMS requires MongoDB 3.4 / maxWireVersion 5).
|
||||
|
||||
All servers' maxWireVersion must be at least this read preference's
|
||||
`min_wire_version`, or the driver raises `ConfigurationError`.
|
||||
`min_wire_version`, or the driver raises
|
||||
:exc:`~pymongo.errors.ConfigurationError`.
|
||||
"""
|
||||
return 5 if self.__max_staleness else 0
|
||||
|
||||
@ -212,8 +215,9 @@ class PrimaryPreferred(_ServerMode):
|
||||
:Parameters:
|
||||
- `tag_sets`: The :attr:`~tag_sets` to use if the primary is not
|
||||
available.
|
||||
- `max_staleness`: The :attr:`~max_staleness` to use if the primary is
|
||||
not available.
|
||||
- `max_staleness`: (integer or float, in seconds) The maximum estimated
|
||||
length of time a replica set secondary can fall behind the primary in
|
||||
replication before it will no longer be selected for operations.
|
||||
"""
|
||||
|
||||
def __init__(self, tag_sets=None, max_staleness=None):
|
||||
@ -244,7 +248,9 @@ class Secondary(_ServerMode):
|
||||
|
||||
:Parameters:
|
||||
- `tag_sets`: The :attr:`~tag_sets` for this read preference.
|
||||
- `max_staleness`: The :attr:`~max_staleness` for this read preference.
|
||||
- `max_staleness`: (integer or float, in seconds) The maximum estimated
|
||||
length of time a replica set secondary can fall behind the primary in
|
||||
replication before it will no longer be selected for operations.
|
||||
"""
|
||||
|
||||
def __init__(self, tag_sets=None, max_staleness=None):
|
||||
@ -270,7 +276,9 @@ class SecondaryPreferred(_ServerMode):
|
||||
|
||||
:Parameters:
|
||||
- `tag_sets`: The :attr:`~tag_sets` for this read preference.
|
||||
- `max_staleness`: The :attr:`~max_staleness` for this read preference.
|
||||
- `max_staleness`: (integer or float, in seconds) The maximum estimated
|
||||
length of time a replica set secondary can fall behind the primary in
|
||||
replication before it will no longer be selected for operations.
|
||||
"""
|
||||
|
||||
def __init__(self, tag_sets=None, max_staleness=None):
|
||||
@ -303,7 +311,9 @@ class Nearest(_ServerMode):
|
||||
|
||||
:Parameters:
|
||||
- `tag_sets`: The :attr:`~tag_sets` for this read preference.
|
||||
- `max_staleness`: The :attr:`~max_staleness` for this read preference.
|
||||
- `max_staleness`: (integer or float, in seconds) The maximum estimated
|
||||
length of time a replica set secondary can fall behind the primary in
|
||||
replication before it will no longer be selected for operations.
|
||||
"""
|
||||
|
||||
def __init__(self, tag_sets=None, max_staleness=None):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user