Metadata-Version: 1.1
Name: module-path
Version: 1.0.1
Summary: Reliably find a modules path even when running an executable.
Home-page: https://github.com/justengel/module_path
Author: Justin Engel
Author-email: jtengel08@gmail.com
License: MIT
Download-URL: https://github.com/justengel/module_path/archive/v1.0.1.tar.gz
Description: ========================
        (DEPRECATED) module_path
        ========================
        
        Python does not use filenames anymore to support reading from a zip file.
        This library is deprecated and has been removed from pypi.
        
        
        Provided functions
        
          * files - importlib.resources files this function is the standard for retrieving resources for Python 3.9+
          * as_file - context manager for retrieving a true filepath for Python 3.9+.
          * my_dir - Return the directory this module is in. This should exist even in an executable.
          * my_path - Return the path to the module that called this method. This may not exist in an executable
        
        
        Example
        =======
        
        .. code-block:: python
        
            # my_interface.py
            # sdl2 with sld2.dll in package
            # File Structure:
            #     my_sdl/
            #         sdl2_dll_path/
            #             SDL2.dll
            #         __init__.py
            #         my_interface.py
            import os
            from module_path import files, as_file
        
            with as_file(files('my_sdl').joinpath('sdl2_dll_path/SDL2.dll')) as sdl_path:
                os.environ.setdefault('PYSDL2_DLL_PATH', os.path.dirname(str(sdl_path)))
                import sdl2
        
            # Use sdl2
            assert sdl2 is not None
        
        
        .. code-block::
        
            check_path/
                __init__.py
                main.py
                check_sub_path
                     __init__.py
                     fakedata.txt
        
        
        .. code-block:: python
        
            # check_path/check_sub_path/__init__.py
            import os
            import module_path
        
            MY_DIR = module_path.my_dir()
            DATA = os.path.join(MY_DIR, 'fakedata.txt')
            EXISTS = os.path.exists(DATA)
        
        
        .. code-block:: python
        
            # check_path/main.py
            import module_path
            try:
                from check_path.check_sub_path import MY_DIR, DATA, EXISTS
            except (ImportError, Exception):
                from check_sub_path import MY_DIR, DATA, EXISTS
        
        
            if __name__ == '__main__':
                path = module_path.my_path()
                directory = module_path.my_dir()
                print('path   \t', path, module_path.exists(path))  # Should be false with executable
                print('dir    \t', directory, module_path.exists(directory))
        
                print('sub_dir\t', MY_DIR, module_path.exists(MY_DIR))
                print('DATA   \t', DATA, EXISTS)
        
        Build the executable with
        
        .. code-block:: sh
        
            pyinstaller --name check_path -y --add-data "check_path/check_sub_path/fakedata.txt;check_path/check_sub_path/" check_path/main.py
        
        After pyinstaller builds you will have a `dist` directory. The data for this example should be stored in `dist/check_path/check_path/check_sub_path/fakedata.txt`
        
Keywords: Module Path
Platform: any
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
