is there a way to make `./pants dependencies --typ...
# general
f
is there a way to make
./pants dependencies --type=3rdparty
output the value of
[python-repos].indexes.add
as well?
h
Hello! Not currently. Do you mean that you want for some deps to use a particular index, and others to use a different index? To get the value of
[python-repos].indexes
, you can use either
./pants help-advanced python-repos
, which will show you the current value. Or use
./pants help-all
, which will output JSON and you can use something like JQ to parse.
f
i'm trying to script up creating a virtualenv from the deps so my IDE can understand what's going on šŸ™‚
i think for now i can just hard code the extra index into the script; the goal would to be to migrate those deps into the monorepo anyways, so i don't need to maintain this forever
šŸ‘ 1
h
iā€™m trying to script up creating a virtualenv from the deps so my IDE can understand whatā€™s going on
Very helpful indeed. See https://www.pantsbuild.org/docs/python-third-party-dependencies#tip-set-up-a-virtual-environment-optional for a starter script
w
this is the beginning of it with `help-all`:
Copy code
./pants help-all | jq '.scope_to_help_info["python-repos"].advanced | map(select(.config_key=="indexes")) | .[0].value_history'
ā€¦ although the structure doesnā€™t seem to render the final value directly, so youā€™d still need some logic.
šŸ‘ 1
ā€¦the whole thing:
Copy code
./pants help-all | jq '.scope_to_help_info["python-repos"].advanced | map(select(.config_key=="indexes")) | .[0].value_history.ranked_values[-1].value'
šŸ˜¬ 1
šŸ‘ 1
(maybeā€¦ cc @happy-kitchen-89482)
but more generally, we should probably expose venv export for IDE and jupyter purposes.
šŸ‘ 1
h
Yep
f
nice jq, i would have had no idea how to write that šŸ˜„
but more generally, we should probably expose venv export for IDE and jupyter purposes
on this note, is there a good way to export "editable installs" to this venv? i'm trying a BUILD file in the source root and a
python_distribution()
target but there might be a better way
w
nice jq, i would have had no idea how to write that
i learned yesterday! heh.
h
is there a good way to export ā€œeditable installsā€ to this venv?
You want to create a
.whl
for your code, and then have pip install it via an editable install? Whatā€™s the motivation? Generally, for an IDE with creating the venv, Iā€™d think you only want your 3rdparty reqs in it, and then have the IDE treat your first-party code like it normally would, rather than loading it via an editable install
f
hmm maybe i don't know how to confgure my IDE right then
h
Which IDE are you using?
f
i'm using vscode, which seems to defer as much as possible to the code environment it's connected to
reading now on the options though
h
Okay cool, and it isnā€™t understanding your first-party imports, it sounds like? What are your source roots configured to for Pants? For PyCharm, I had to teach it that
src/python
is a source root so that it knows the import
pants.util.strutil
is really from
src/python/pants/util/strutil.py
i guess i've always leaned on virtualenvs + editable installs before to make this work, so i didn't think to look at the IDE settings
šŸ‘ 1