File: //usr/lib/python3/dist-packages/UbuntuDrivers/__pycache__/detect.cpython-310.pyc
o
�:9iB� � @ s d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl m
Z
ddlmZ dai a
dZG dd� de�Zd d
� Zdgdd�Zd
d� Zdd� Zdd� Zdd� Zdd� Zi e_dd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Z d'd(� Z!d)d*� Z"d+d,� Z#d-d.� Z$dhd1d2�Z%d3d4� Z&d5d6� Z'did7d8�Z(djd9d:�Z)dkd;d<�Z* 0 /dld=d>�Z+d?d@� Z,dAdB� Z-G dCdD� dDe�Z.dEdF� Z/dmdGdH�Z0dndIdJ�Z1dgdKdL�Z2dMdN� Z3dOdP� Z4dQdR� Z5dSdT� Z6dUdV� Z7dWdX� Z8dYdZ� Z9d[d\� Z:d]d^� Z;d_d`� Z<dadb� Z=dcdd� Z>dedf� Z?dS )ozGHardware and driver package detection functionality for Ubuntu systems.� N)�kerneldetection)�
cmp_to_key� z/etc/custom_supported_gpus.jsonc @ sH e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Zdd
� Z dd� Z
dS )�NvidiaPkgNameInfoz%Class to process NVIDIA package namesc C s: || _ d| _d| _d| _d| _d| _d| _| �| j � d S )NF���r )� _pkg_name�_obsolete_name_scheme�_server�_open�
_major_ver�_flavour�is_valid�
_process_name)�self�pkg_name� r �6/usr/lib/python3/dist-packages/UbuntuDrivers/detect.py�__init__ s zNvidiaPkgNameInfo.__init__c C sd d|vrt �d|� d S t�d�}|�|�}|r,d| _t|�d��| _| j| _ d| _
d S t�d�}|�|�}|rn|�d��d�d k| _|�d��d
�d k| _
d|�d�| jrXdnd| j
r^d
ndf | _ t|�d��| _d| _
t�d
�}|�|�}|r�|�d��d�d k| _|�d��d
�d k| _
d|�d�| jr�dnd| j
r�d
ndf | _ |�d�| _d| _
d S d S )N�nvidiaz8NvidiaPkgNameInfo: %s is not an NVIDIA package. Skippingznvidia-([0-9]+)T� znvidia-driver-([0-9]+)(.*)r z-serverr z-openz%s%s%sr z nvidia-headless(.*)-([0-9]+)(.*)� )�logging�debug�re�compile�matchr �int�groupr r r
�findr r
)r �name�patternr r r r r ) sD
�
�
�zNvidiaPkgNameInfo._process_namec C � | j S �N)r �r r r r �has_obsolete_name_schemeS � z*NvidiaPkgNameInfo.has_obsolete_name_schemec C r! r"