Docstrings¶
Each user-facing method on Sprite
or Stage
should have a
docstring whose first line is suitable for use in the autocompletion
pop-up of the webapp’s editor. Currently, Skulpt’s support for
introspection is incomplete, so we use a workaround for now. The
docstring’s first line can start with a "("
character, in which
case everything up and including the first ")"
character is used
as a suffix when presenting the completion to the user. For
example, the docstring
"(SOUND) Play SOUND; pause until it finishes playing"
for the method play_sound_until_done
will result in the user being
shown something like
play_sound_until_done(SOUND) — Play SOUND; pause until it finishes playing
If the docstring’s first line does not start with "("
, no suffix
is added to the attribute name when displaying it. For example,
the docstring
"The number of the costume SELF is currently wearing"
of the costume_number
property will be shown along the lines of
costume_number — The number of the costume SELF is currently wearing
in the webapp.
A unit test ensures that all methods and properties have docstrings, apart from a set of hard-coded exceptions for non-user-facing attributes.
Use within webapp¶
A function pytch._user_facing_completions()
is intended for use by
the webapp. It returns a dictionary mapping from parent name
(pytch
, Actor
, Sprite
, Stage
) to a list of simple
records giving the available user-facing attributes under that parent.
Each records is a tuple of strings:
(attribute-name, suffix, kind, doc)
Here, suffix
and doc
are parsed from the first docstring line
as outlined above. The kind
slot is currently ignored by the
webapp; it is the typename of the attribute’s value.