summaryrefslogtreecommitdiff
path: root/Lib/packaging/resources.py
blob: e5904f360dfa346697661deca6ddd01367b4d069 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
"""Data file path abstraction.

Functions in this module use sysconfig to find the paths to the resource
files registered in project's setup.cfg file.  See the documentation for
more information.
"""
# TODO write that documentation

from packaging.database import get_distribution

__all__ = ['get_file_path', 'get_file']


def get_file_path(distribution_name, relative_path):
    """Return the path to a resource file."""
    dist = get_distribution(distribution_name)
    if dist != None:
        return dist.get_resource_path(relative_path)
    raise LookupError('no distribution named %r found' % distribution_name)


def get_file(distribution_name, relative_path, *args, **kwargs):
    """Open and return a resource file."""
    return open(get_file_path(distribution_name, relative_path),
                *args, **kwargs)