Skip to main content

A simple library for finding a superordinate path and attaching it to the module search path.

Project description

summary

This is a very simple (small) software library. It is used only for one thing.

Suppose you are working in a project with a directory structure like this:

project_folder
|-scripts_folder
| |-python_libs
| | |-my_python_lib
| | | * __init__.py
|-sub_folder_1
| | * my_python_script.py

Suppose you want your python script my_python_script.py to consume the my_python_lib library.

Then, at the top of your script, you would put the following code.

import os
import lib_attacher

# Get the folder containing your script file.
this_folder=os.path.dirname(os.path.realpath(__file__))

# Attach to the parent folder of your library
attached = lib_attacher.attach_folder_in_hierarchy(
    start_folder=this_folder,
    target_sub_path="scripts_folder/python_libs")

# Check to make sure it worked
if attached is None:
    raise Exception("Failed to find python_libs folder.")

# Now you can import your library.
import my_python_lib

If you subsequently move your my_python_script.py file around, it will still work. For example, it will also work from any of these locations:

project_folder
|-sub_folder_1
| |-sub_folder_2
| | | * my_python_script.py
project_folder
|-sub_folder_1
| |-sub_folder_2
| | |-sub_folder_3
| | | | * my_python_script.py
project_folder
| * my_python_script.py

If, by some chance, there are multiple scripts_folder/python_libs folders, you can specify the extra_sub_path parameter to ensure that you match the target folder exactly (without ambiguity).

# Attach to the parent folder of your library
attached = lib_attacher.attach_folder_in_hierarchy(
    start_folder=this_folder,
    target_sub_path="scripts_folder/python_libs",
    extra_sub_path="my_python_lib/__init__.py")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lib_attacher-0.0.1.tar.gz (2.7 kB view hashes)

Uploaded Source

Built Distribution

lib_attacher-0.0.1-py3-none-any.whl (3.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page