(spec, read_preference)
return spec
Add $readPreference to spec when appropriate.
Add $readPreference to spec when appropriate.
Add $readPreference to spec when appropriate .
def _maybe_add_read_preference(spec, read_preference):
    """Add $readPreference to spec when appropriate."""
    mode = read_preference.mode
    tag_sets = read_preference.tag_sets
    max_staleness = read_preference.max_staleness
    # Only add $readPreference if it's something other than primary to avoid
    # problems with mongos versions that don't support read preferences. Also,
    # for maximum backwards compatibility, don't add $readPreference for
    # secondaryPreferred unless tags or maxStalenessSeconds are in use (setting
    # the slaveOkay bit has the same effect).
    if mode and (
        mode != ReadPreference.SECONDARY_PREFERRED.mode
        or tag_sets != [{}]
        or max_staleness != -1):

        if "$query" not in spec:
            spec = SON([("$query", spec)])
        spec["$readPreference"] = read_preference.document
    return spec
def _maybe_add_read_preference ( spec , read_preference ) : mode = read_preference . mode tag_sets = read_preference . tag_sets max_staleness = read_preference . max_staleness # Only add $readPreference if it's something other than primary to avoid # problems with mongos versions that don't support read preferences. Also, # for maximum backwards compatibility, don't add $readPreference for # secondaryPreferred unless tags or maxStalenessSeconds are in use (setting # the slaveOkay bit has the same effect). if mode and ( mode != ReadPreference . SECONDARY_PREFERRED . mode or tag_sets != [ { } ] or max_staleness != - 1 ) : if "$query" not in spec : spec = SON ( [ ( "$query" , spec ) ] ) spec [ "$readPreference" ] = read_preference . document return spec