|
Server : LiteSpeed System : Linux barito.iixcp.rumahweb.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64 User : elvh3918 ( 1528) PHP Version : 8.2.31 Disable Function : mail Directory : /opt/cloudlinux/venv/lib64/python3.11/site-packages/clwpos/cli_versions/ |
# -*- 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()