Mini Shell
# -*- coding: utf-8 -*-
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2021 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT
class VersionRegistry:
def __init__(self):
self._version_to_implementation = {}
self._latest_implementation = None
def register(self, api_version):
def decorator(api_implementation_class):
self._version_to_implementation[api_version] = api_implementation_class
return api_implementation_class
return decorator
def latest(self):
def decorator(api_implementation_class):
self._latest_implementation = api_implementation_class
return api_implementation_class
return decorator
def get_implementation(self, api_version):
return self._version_to_implementation.get(api_version, self._latest_implementation)
def get_all_versions(self):
return list(self._version_to_implementation.keys())
admin_cli_version_registry = VersionRegistry()
user_cli_version_registry = VersionRegistry()
Zerion Mini Shell 1.0