async def version(self, tp, params, version=None, elem=None):
if self.writing:<EOL><INDENT>return await self.set_version(tp, params, version, elem)<EOL><DEDENT>else:<EOL><INDENT>return await self.get_version(tp, params)<EOL><DEDENT>
Symmetric version management

:param tp:
:param params:
:param version:
:return: