Skip to content

Commit

Permalink
Merge pull request #5396 from jerempy/Update-docs-for-script-calls
Browse files Browse the repository at this point in the history
Update documentation for callable scripts
  • Loading branch information
oz123 committed Oct 12, 2022
2 parents ea7de7f + e36c62a commit d401512
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 2 deletions.
15 changes: 14 additions & 1 deletion docs/advanced.rst
Original file line number Diff line number Diff line change
Expand Up @@ -581,7 +581,20 @@ For example:
$ pipenv run echospam "indeed"
I am really a very silly example indeed

You can then display the names and commands of your shortcuts by running ``pipenv scripts`` in your terminal.
You can also specify pacakge functions as callables such as: ``<pathed.module>:<func>``. These can also take arguments.
For exaple:

.. code-block:: toml
[scripts]
my_func_with_args = {call = "package.module:func('arg1', 'arg2')"}
my_func_no_args = {call = "package.module:func()"}
::
$ pipenv run my_func_with_args
$ pipenv run my_func_no_args

You can display the names and commands of your shortcuts by running ``pipenv scripts`` in your terminal.

::

Expand Down
1 change: 1 addition & 0 deletions news/5396.doc.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Update pipenv docs for with example for callabale package functions in Pipfile scripts
4 changes: 3 additions & 1 deletion pipenv/cmdparse.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ def _parse_toml_inline_table(value: tomlkit.items.InlineTable) -> str:
if cmd_key == "call":
module, _, func = str(value["call"]).partition(":")
if not module or not func:
raise ScriptParseError("Callable must be like: <pathed.module>:<func>")
raise ScriptParseError(
"Callable must be like: name = {call = \"package.module:func('arg')\"}"
)
if re.search(r"\(.*?\)", func) is None:
func += "()"
return f'python -c "import {module} as _m; _m.{func}"'
Expand Down

0 comments on commit d401512

Please sign in to comment.