
    `j                         d Z ddlZddlmZ ddlZddlZddlZdZd Zd Zd Z	d Z
ed	k    r e
ej                   dS dS )
zEnables use of Python Fire as a "main" function (i.e. "python -m fire").

This allows using Fire with third-party libraries without modifying their code.
    N)utila  usage: python -m fire [module] [arg] ..."

Python Fire is a library for creating CLIs from absolutely any Python
object or program. To run Python Fire from the command line on an
existing Python file, it can be invoked with "python -m fire [module]"
and passed a Python module using module notation:

"python -m fire packageA.packageB.module"

or with a file path:

"python -m fire packageA/packageB/module.py" c                 Z   t           j                            |           st          d          t           j                            |           }t          j        ||           }||j        t          d          t          j        |          }|j        	                    |           ||fS )aL  Performs a module import given the filename.

  Args:
    path (str): the path to the file to be imported.

  Raises:
    IOError: if the given file does not exist or importlib fails to load it.

  Returns:
    Tuple[ModuleType, str]: returns the imported module and the module name,
      usually extracted from the path itself.
  zGiven file path does not exist.Nz*Unable to load module from specified path.)
ospathexistsOSErrorbasenamer   spec_from_file_locationloadermodule_from_specexec_module)r   module_namespecmodules       Q/home/jworkman/hermes-web-chat/venv/lib/python3.11/site-packages/fire/__main__.pyimport_from_file_pathr   *   s     
		 5
3
4
44  &&+		%k4	8	8$	\T[(
>
?
?? &&&+&!!!		    c                 2    t          j        |           }|| fS )z-Imports a module and returns it and its name.)	importlibimport_module)r   r   s     r   import_from_module_namer   H   s    ";//&		r   c                 D   t           j                            |           rQ|                     d          s-	 t	          |           S # t
          $ r t          d          w xY wt          |           S t           j        j        | v rt          d          t	          |           S )a  Imports a given module or filename.

  If the module_or_filename exists in the file system and ends with .py, we
  attempt to import it. If that import fails, try to import it as a module.

  Args:
    module_or_filename (str): string name of path or module.

  Raises:
    ValueError: if the given file is invalid.
    IOError: if the file or module can not be found or imported.

  Returns:
    Tuple[ModuleType, str]: returns the imported module and the module name,
      usually extracted from the path itself.
  z.pyz%Fire can only be called on .py files.z4Fire was passed a filename which could not be found.)
r   r   r   endswithr   ImportError
ValueErrorr   sepr   )module_or_filenames    r   r   r   N   s    $ W^^&'' 5&&u-- BB&'9::: B B B@AAAB !!3444W[&&&
H
I
II	 !3	4	44s   A Ac                     t          |           dk     r(t          t                     t          j        d           | d         }t          |          \  }}t          j        ||| dd                    dS )zAEntrypoint for fire when invoked as a module with python -m fire.      N)namecommand)lenprint
cli_stringsysexitr   fireFire)argsr   r   r   s       r   mainr+   p   sp     	YY]]	*HQKKKAw%&899&+)Fd122h777777r   __main__)__doc__r   r   r   r&   r(   r%   r   r   r   r+   __name__argv r   r   <module>r1      s     
           				 



 1
  <  5 5 5D
8 
8 
8 z$sx..... r   