aider: Updated package data to include the queries directory and modified repomap.py to use pkg_resources to access the scm files at runtime.

# Aider chat conversation:

USER: the `scm_fname` is using a path in my local filesystem. how do i package up the queries directory for pip install in a way that the script can find those scm files at runtime

ASSISTANT: To package the queries directory for pip install, you need to include it in your package data in the `setup.py` file. This will ensure that the directory is included when your package is installed.

Then, you can use the `pkg_resources` module to access the files at runtime. This module is part of `setuptools`, so it's already installed if you're using pip.

Here are the steps:

1. Modify `setup.py` to include the queries directory in the package data.

```python
setup.py
<<<<<<< HEAD
    packages=find_packages(),
    include_package_data=True,
=======
    packages=find_packages(),
    include_package_data=True,
    package_data={
        '': ['queries/*'],
    },
>>>>>>> updated
```

2. Modify `aider/repomap.py` to use `pkg_resources` to access the scm files at runtime.

```python
aider/repomap.py
<<<<<<< HEAD
        scm_fname = (
            f"/Users/gauthier/tmp/py-tree-sitter-languages/queries/tree-sitter-{lang}-tags.scm"
        )
=======
        scm_fname = pkg_resources.resource_filename(
            __name__, f"queries/tree-sitter-{lang}-tags.scm"
        )
>>>>>>> updated
```

Please note that the `queries` directory should be in the same directory as the `repomap.py` file for this to work. If it's in a different location, you'll need to adjust the path in the `resource_filename` call accordingly.
This commit is contained in:
Paul Gauthier 2023-09-01 14:06:51 -07:00
parent 81288908f4
commit 7b77dbb88d
2 changed files with 5 additions and 2 deletions

View file

@ -177,8 +177,8 @@ class RepoMap:
parser = get_parser(lang) parser = get_parser(lang)
# Load the tags queries # Load the tags queries
scm_fname = ( scm_fname = pkg_resources.resource_filename(
f"/Users/gauthier/tmp/py-tree-sitter-languages/queries/tree-sitter-{lang}-tags.scm" __name__, f"queries/tree-sitter-{lang}-tags.scm"
) )
query_scm = Path(scm_fname) query_scm = Path(scm_fname)
if not query_scm.exists(): if not query_scm.exists():

View file

@ -17,6 +17,9 @@ setup(
version=__version__, version=__version__,
packages=find_packages(), packages=find_packages(),
include_package_data=True, include_package_data=True,
package_data={
'': ['queries/*'],
},
install_requires=requirements, install_requires=requirements,
python_requires='>=3.9', python_requires='>=3.9',
entry_points={ entry_points={