Skip to content

fix metadata arglists for python defaults#285

Open
jsavyasachi wants to merge 3 commits into
clj-python:masterfrom
jsavyasachi:fix-pyarglists-defaults
Open

fix metadata arglists for python defaults#285
jsavyasachi wants to merge 3 commits into
clj-python:masterfrom
jsavyasachi:fix-pyarglists-defaults

Conversation

@jsavyasachi

@jsavyasachi jsavyasachi commented Jun 8, 2026

Copy link
Copy Markdown

Fixes #284.
Fixes #283.

Changes

  • Preserve values returned in argspec defaults when generating pyarglists.
  • Stringify Python-object defaults, such as <class 'int'>, instead of exposing pointer metadata.
  • Add :arglists metadata for vars created by py/from-import, so Clojure doc output can render the signature before the docstring.
  • Add regression coverage for positional defaults, keyword-only defaults, Python-object defaults, and rendered clojure.repl/doc output.

Verification

env PATH=/private/tmp/libpython-clj-x86-python-shim:$PATH clojure -M:test -n libpython-clj2.metadata-test
env PATH=/private/tmp/libpython-clj-x86-python-shim:$PATH clojure -M:test -n libpython-clj2.python-test
env PATH=/private/tmp/libpython-clj-x86-python-shim:$PATH clojure -M:test

Note: the PATH shim was needed locally because Java is x86_64 while the default Homebrew Python is arm64.

@jsavyasachi jsavyasachi changed the title fix metadata pyarglists defaults fix metadata arglists for python defaults Jun 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

libpython-clj2.metadata/pyarglists is not returning 'defaults' add "parameter" to docstring (as for clojure fn)

1 participant