Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

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


Release history Release notifications

Download files

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

Files for lib-attacher, version 0.0.1
Filename, size File type Python version Upload date Hashes
Filename, size lib_attacher-0.0.1-py3-none-any.whl (3.8 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size lib_attacher-0.0.1.tar.gz (2.7 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page