def _set_version(self, version):
<EOL>self.version = version or None<EOL>version_check = version or <NUM_LIT><EOL>if version_check < <NUM_LIT:1.0>:<EOL><INDENT>raise RedmineError('<STR_LIT>'<EOL>'<STR_LIT>')<EOL><DEDENT>self.key_in_header = version >= <NUM_LIT><EOL>self.impersonation_supported = version_check >= <NUM_LIT><EOL>self.has_project_memberships = version_check >= <NUM_LIT><EOL>self.has_project_versions = version_check >= <NUM_LIT><EOL>self.has_wiki_pages = version_check >= <NUM_LIT><EOL>for manager_version in self._item_managers_by_version:<EOL><INDENT>if version_check >= manager_version:<EOL><INDENT>managers = self._item_managers_by_version[manager_version]<EOL>for attribute_name, item in managers.iteritems():<EOL><INDENT>setattr(self, attribute_name,<EOL>Redmine_Items_Manager(self, item))<EOL><DEDENT><DEDENT><DEDENT>
Set up this object based on the capabilities of the
known versions of Redmine