# `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`.