def get_dynamic_field_schema(self, fields=None, recursive=True):
        """Returns a schema dictionary describing the dynamic fields of the
        samples in the collection.

        Dynamic fields are embedded document fields with at least one non-None
        value that have not been declared on the dataset's schema.

        Args:
            fields (None): an optional field or iterable of fields for which to
                return dynamic fields. By default, all fields are considered
            recursive (True): whether to recursively inspect nested lists and
                embedded documents

        Returns:
            a dict mapping field paths to :class:`fiftyone.core.fields.Field`
            instances or lists of them
        """
        return self._get_dynamic_field_schema(
            fields=fields, recursive=recursive
        )
Returns a schema dictionary describing the dynamic fields of the
        samples in the collection.

        Dynamic fields are embedded document fields with at least one non-None
        value that have not been declared on the dataset's schema.

        Args:
            fields (None): an optional field or iterable of fields for which to
                return dynamic fields. By default, all fields are considered
            recursive (True): whether to recursively inspect nested lists and
                embedded documents

        Returns:
            a dict mapping field paths to :class:`fiftyone.core.fields.Field`
            instances or lists of them
        
fiftyone/core/collections.py