code – Tools for representing JavaScript code#

Tools for representing JavaScript code in BSON.

class bson.code.Code(code, scope=None, **kwargs)#

Bases: str

BSON’s JavaScript code type.

Raises TypeError if code is not an instance of str or scope is not None or an instance of dict.

Scope variables can be set by passing a dictionary as the scope argument or by using keyword arguments. If a variable is set as a keyword argument it will override any setting for that variable in the scope dictionary.

Parameters:
  • code (Union[str, Code]) – A string containing JavaScript code to be evaluated or another instance of Code. In the latter case, the scope of code becomes this Code’s scope.

  • scope (Optional[Mapping[str, Any]]) – dictionary representing the scope in which code should be evaluated - a mapping from identifiers (as strings) to values. Defaults to None. This is applied after any scope associated with a given code above.

  • kwargs (Any) – scope variables can also be passed as keyword arguments. These are applied after scope and code.

Return type:

Code

Changed in version 3.4: The default value for scope is None instead of {}.

property scope: Mapping[str, Any] | None#

Scope dictionary for this instance or None.