def __call__(self, *parts, **options):
self.config.update(**options)<EOL>if len(parts) == <NUM_LIT:0>:<EOL><INDENT>return self<EOL><DEDENT>parent = self<EOL>for part in parts:<EOL><INDENT>parent = parent._get_or_create_child_wrap(part)<EOL><DEDENT>return parent<EOL>
Creates and returns a new :class:`Wrap` object in the chain
        if `part` is provided. If not, the current object's options
        will be manipulated by the provided `options` ``dict`` and the
        current object will be returned.

        Usage::

            # creates a new Wrap, assuming `foo` is already wrapped
            foo('bar')

            # this is the same as:
            foo.bar()

            # which is the same as:
            foo.bar

            # enabling `debug` for a specific chain object
            foo.bar(debug=True)

        :param part: (optional) The URL part to append to the current chain
        :param options: (optional) Arguments accepted by the
            :class:`Wrap` initializer