Hi Vladimir,

> You should take a look at NumPy docstring conventions which are fully 
> supported by Sphinx, and are actually human-readable.

There are two questions here:

1. Where to put type information?

    * Docstrings
        * ReStructured Text 
(http://sphinx-doc.org/domains.html#the-python-domain)
        * Epydoc
        * NumPy
    * Expressions
        * Python 3 function annotations
        * Decorators

2. What type system to use? (its syntax and semantics, see the related work 
section in the Python skeletons proposal [1])

We think that the best place for type information would be function 
annotations, but they are available only in Python 3 and there is no de facto 
standard for describing types as Python expressions.

We use docstring-based types in Python skeletons only as a simple temporary 
solution, since we believe that the effort should be put in creating an 
expression-based type system for Python that would be acceptable for a large 
number of static analysis projects and regular Python developers.

We would like to discuss the current implementations [1] and come up with a 
unified expression-based language (perhaps, supported by a library) for 
describing Python types, or at least, a set of common patterns (e.g. using a 
class value as a type of its instances).

[1]: https://github.com/JetBrains/python-skeletons#related-work

-- 
Andrey Vlasovskikh
Senior Software Developer
JetBrains
http://www.jetbrains.com/
"Develop with pleasure!"
_______________________________________________
code-quality mailing list
code-quality@python.org
https://mail.python.org/mailman/listinfo/code-quality

Reply via email to