Skip to content

Latest commit

 

History

History
65 lines (45 loc) · 2.04 KB

README.md

File metadata and controls

65 lines (45 loc) · 2.04 KB

Package √Root

PyPI version Test

import package_root # into your PYTHONPATH

Stop appending your package root path to your Python path by hand like this:

from os.path import abspath, dirname, join
sys.path.insert(1, abspath(join(dirname(__file__), '..')))

It's annoying and error prone. Let us do it for you. <3

import package_root

How does this witchcraft work you ask?

We detect the file that called import package_root. We search until we find a parent directory without an __init__.py file. That's your package_root. We make it sys.path[1] because friends don't let friends mess with sys.path[0].

Still confused? Let's say you have the following setup:

your_awesome_pacakge/
    foo/
        __init__.py
        your_dope_module.py
        bar/
            __init__.py
            baz.ipynb
            baz.py
    .no_init_at_this_level

If you're in baz.ipynb or baz.py, we'll append your_awesome_package to your path so you can import whatever you want from your_awesome_package.

# baz.ipynb or baz.py
import package_root
import foo.your_dope_module # works!

Don't believe us? We have tests to prove it.

Important Notes

Installation

pip install package_root

Usage

import package_root # And nothing else

Contributing

Feel free to report bugs, but we won't accept feature requests since this package is intended to do one thing and do it well.