File: //usr/lib/python3/dist-packages/uaclient/entitlements/__pycache__/__init__.cpython-310.pyc
o
nHJe �
@ s d dl Z d dlZd dlmZmZmZ d dlmZ d dlm Z d dl
mZ d dlm
Z
d dlmZ d dlmZ d d lmZ d d
lmZmZ d dlmZ d dlmZ d d
lmZ d dlmZmZ d dl m!Z! d dl"m#Z# e
eeeeej$ej%ej&eeeeeg
Z'd3de de(de(fdd�Z) d4de de*de*dee( fdd�Z+de dee( dee( fdd�Z,e j-G d d!� d!e j.��Z/de dee( fd"d#�Z0de dee( fd$d%�Z1de d&ee d'e/d(ee(e*f d)ee( f
d*d+�Z2de d'e/dee( fd,d-�Z3d.ee( de fd/d0�Z4de de*dej5fd1d2�Z6dS )5� N)�Dict�List�Type)�
exceptions)�UAConfig)�fips)�AnboxEntitlement)�
UAEntitlement)�CommonCriteriaEntitlement)�CISEntitlement)�ESMAppsEntitlement�ESMInfraEntitlement)�LandscapeEntitlement)�LivepatchEntitlement)�RealtimeKernelEntitlement)�ROSEntitlement�ROSUpdatesEntitlement)�EntitlementNotFoundError)�is_config_value_true� �cfg�name�variantc C sV t D ]#}|| d�}||jv r%|s| S ||jv r |j| S t|d��qt|d��)a Returns a UAEntitlement class based on the provided name.
The return type is Optional[Type[UAEntitlement]].
It cannot be explicit because of the Python version on Xenial (3.5.2).
:param cfg: UAConfig instance
:param name: The name of the entitlement to return
:param not_found_okay: If True and no entitlement with the given name is
found, then returns None.
:raise EntitlementNotFoundError: If not_found_okay is False and no
entitlement with the given name is found, then raises this error.
�r )�entitlement_name)�ENTITLEMENT_CLASSES�valid_names�variantsr )r r r �entitlement�ent� r �@/usr/lib/python3/dist-packages/uaclient/entitlements/__init__.py�entitlement_factory% s
�
r"