pydoc output control for doctest cases
Abierto
Nadie ha tomado este issue todavía.
stdlib
type-feature
- Lenguaje dominante
- Python
- Estrellas
- 77.2k
- Forks
- 36k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
Feature or enhancement
#File: pydoc_end_demo.py
"""
I very much appreciate both the doctest and the pydoc features of python for small developement
tasks with minimum overhead.
A slight enhancement to pydoc as proposed in this example would further increase the usefulness.
"""
def rotated( sequence, distance=1 ): # example to demonstrate the <pydoc-end> proposal
""" Returns sequence rotated by distance number of elements.
Examples: # small number of test cases (to be included in the pydoc output) show the use of the function
>>> rotated( ( "one", "two", "three", "four" ) )
('four', 'one', 'two', 'three')
>>> rotated( [ 2, 3, 5, 7, 11, 13 ], 2 )
[11, 13, 2, 3, 5, 7]
>>> rotated( "abcdefgh", -3 )
'defghabc'
<pydoc-end> # the proposed indicator string instructs pydoc to stop ouput here ((for this docstring))
Doctests: # exhaustive number of further test cases - not relevant for the api user
# but needed for test quality - without the proposal the test cases clutter the pydoc output
>>> rotated( "abcde", 0 )
'abcde'
>>> rotated( "abcde", 5 ) # abs(distance) == len(sequence)
'abcde'
>>> rotated( "abcde", -5 )
'abcde'
>>> rotated( "abcde", 6 ) # abs(distance) > len(sequence)
'eabcd'
>>> rotated( "abcde", -6 )
'bcdea'
>>> rotated( "", 5 ) # empty sequence
''
>>> rotated( [], -3 )
[]
"""
length = len(sequence)
if length == 0: return sequence
dist = distance % length
return sequence[-dist:] + sequence[:-dist]
if __name__ == "__main__":
# run the doctest cases:
print( ">>> doctest >>>" )
import doctest
doctest.testmod()
print( "<<< doctest <<<" )
Pitch
extensive doctest cases will no more clutter pydoc output: A single source file is sufficient for concise user docu as well as for comprehensive doctest cases.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comience examinando el comportamiento propuesto en pydoc_end_demo.py y cómo los puntos de entrada de pydoc y doctest tratan actualmente las cadenas de documentación. Determine la interacción prevista entre la marca propuesta y los casos de doctest; después, añada cobertura que demuestre que la documentación concisa sigue siendo visible mientras que los ejemplos posteriores siguen pudiéndose probar.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- documentation
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100