code: def _ObjectFactory(obj):
      
      if isinstance(obj, dict):
          optional, required = {}, {}
          for key, value in iteritems(obj):
              if key.startswith("+"):
                  required[key[1:]] = value
              elif key.startswith("?"):
                  optional[key[1:]] = value
              elif Object.REQUIRED_PROPERTIES:
                  required[key] = value
              else:
                  optional[key] = value
          return Object(optional, required)
docs: Parse a python ``{name: schema}`` dict as an :py:class:`Object` instance.
  
      - A property name prepended by "+" is required
      - A property name prepended by "?" is optional
      - Any other property is required if :py:attr:`Object.REQUIRED_PROPERTIES`
        is True else it's optional