o
    Uh                     @  s   d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ dd
dZdddZer<edee dZdddZg dZdS )zT
    FindPython
    ~~~~~~~~~~
    A utility to find python versions on your system
    )annotations)TYPE_CHECKINGTypeVar)Finder)ALL_PROVIDERS)BaseProvider)PythonVersionreturnPythonVersion | Nonec                  O     t  j| i |S )a  
    Return the Python version that is closest to the given version criteria.

    :param major: The major version or the version string or the name to match.
    :param minor: The minor version to match.
    :param patch: The micro version to match.
    :param pre: Whether the python is a prerelease.
    :param dev: Whether the python is a devrelease.
    :param name: The name of the python.
    :param architecture: The architecture of the python.
    :return: a Python object or None
    )r   findargskwargs r   g/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/findpython/__init__.pyr         r   list[PythonVersion]c                  O  r   )a  
    Return all Python versions matching the given version criteria.

    :param major: The major version or the version string or the name to match.
    :param minor: The minor version to match.
    :param patch: The micro version to match.
    :param pre: Whether the python is a prerelease.
    :param dev: Whether the python is a devrelease.
    :param name: The name of the python.
    :param architecture: The architecture of the python.
    :return: a list of PythonVersion objects
    )r   find_allr   r   r   r   r       r   r   P)boundproviderc                 C  s   | t |  < | S )zi
    Register a provider to use when finding python versions.

    :param provider: A provider class
    )r   name)r   r   r   r   register_provider4   s   r   )r   r   r   r   r   N)r	   r
   )r	   r   )r   r   r	   r   )__doc__
__future__r   typingr   r   findpython.finderr   findpython.providersr   findpython.providers.baser   findpython.pythonr   r   r   typer   r   __all__r   r   r   r   <module>   s    



