parquet_flask/authenticator/authenticator_factory.py (15 lines of code) (raw):

# Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from parquet_flask.authenticator.authenticator_aws_secret_manager import AuthenticatorAwsSecretManager from parquet_flask.authenticator.authenticator_filebased import AuthenticatorFileBased from parquet_flask.authenticator.authenticator_pass_through import AuthenticatorPassThrough class AuthenticatorFactory: AWS = 'AWS' FILE = 'FILE' PASS_THROUGH = 'PASS_THROUGH' def get_instance(self, class_type: str): if class_type == self.AWS: return AuthenticatorAwsSecretManager() if class_type == self.FILE: return AuthenticatorFileBased() if class_type == self.PASS_THROUGH: return AuthenticatorPassThrough() raise ValueError(f'invalid class type: {class_type}')