Рубрики
Без рубрики

Как Pydoc помогает вашему питону разработке

Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть весь последний контент, будьте … отмечены начинающими, Python, 100daysofpython.

Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть весь последний контент, обязательно Посетите мой блог и подписаться на мою рассылку. Подпишись на меня в Твиттере .

Это день 19 #100daysOfpython Challenge.

Этот пост будет использовать pydoc Модуль из стандартной библиотеки, чтобы изучить, как мы можем ориентироваться в документации, а также создать свою собственную.

Код можно найти на моем GitHub Repo Анкет

Начиная

Давайте создадим Hello-Pydoc каталог и настройте необходимые файлы.

# Make the `hello-pydoc` directory
$ mkdir hello-pydoc
$ cd hello-pydoc
# Create a folder to place our example files
$ mkdir src
# Create the required files
$ touch src/math.py main.py src/__init__.py

На этом этапе у нас есть сортированные файлы, и мы можем начать писать какой -то код.

Изучение Pydoc из командной строки

Pydoc – это инструмент, который позволяет нам исследовать документацию модуля.

В качестве простого стартера мы можем использовать Pydoc для изучения документации DateTime модуль из командной строки.

Для этого мы можем запустить python -m pydoc [module] И мы должны увидеть выход на основе строк DOC для каждой из функций в модуле.

Давайте рассмотрим это для DateTime модуль. Из командной строки мы можем запустить следующую команду:

$ python -m pydoc datetime
Help on module datetime:

NAME
    datetime - Fast implementation of the datetime type.

FILE
    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/datetime.so

MODULE DOCS
    https://docs.python.org/library/datetime

CLASSES
    __builtin__.object
        date
            datetime
        time
        timedelta
        tzinfo

    class date(__builtin__.object)
     |  date(year, month, day) --> date object
     |
     |  Methods defined here:
     |
     |  __add__(...)
    x.__add__(y) <==> x+y
     |
     |  __eq__(...)
# ... reset omitted for brevity ...

Когда вы запускаете команду, она открывает документацию для DateTime модуль, который можно пройти в командной строке.

Это дает нам информацию о следующем:

ИМЯ Имя модуля.
ФАЙЛ Файл, который модуль определяется в.
Модульные документы Ссылка на документацию для модуля.
Классы Классы, определенные в модуле.

Мы можем искать в документах, используя / или ? оператор с последующим поисковым термином.

Например, в моем предыдущем сообщении в блоге DateTime в Python , мы сильно полагались на datetime.datetime.now функция

Чтобы найти эту документацию, я могу запустить / с последующим в настоящее время и один из результатов поиска вернет следующее:

now(tz=None) from builtins.type
    Returns new datetime object representing current time local to tz.

      tz
        Timezone object.

    If no tz is specified, uses local timezone.

Совет: после поиска вы можете использовать n Ключ, чтобы перейти к следующему результату.

Приведенная выше документация говорит нам, что Теперь Функция возвращает DateTime объект с местным временем и датой часового пояса (с необязательным аргументом часового пояса).

Учитывая это, мы знаем, что можем функция как с аргументом, так и без этого:

from datetime import datetime, timezone

datetime.now() # datetime.datetime(2021, 8, 7, 7, 22, 37, 216899)
datetime.now(timezone.utc) # datetime.datetime(2021, 8, 6, 21, 22, 30, 841500, tzinfo=datetime.timezone.utc)

Если мы пойдем на поиски синонимичной функции utcnow , мы можем увидеть следующее:

utcnow(...) from builtins.type
    Return a new datetime representing UTC day and time.

Это говорит нам о том, что нет никаких аргументов, но возвращаемое значение – это DateTime Объект с часовым поясом UTC.

from datetime import datetime

datetime.utcnow() # datetime.datetime(2021, 8, 6, 21, 24, 2, 865402)

Теперь, когда мы знаем основы поиска Pydoc, давайте теперь документируем наш Математика модуль.

Написание нашего документированного кода

Мы можем написать и искать наши собственные Docstrings Анкет

Чтобы продемонстрировать, добавьте следующий код в src/math.py :

def add(x, y):
    """add together two numbers

    Args:
        x (int): First number to add
        y (int): Second number to add

    Returns:
        int: sum of x and y
    """
    return x + y

Docstring это строка, которая используется для документирования функции и обозначается как комментарий между строк 2 и 10 кода выше.

Совет: если вы используете VSCODE, проверьте докстронг генератор

Как только у нас появится этот код, достаточно, чтобы просмотреть нашу собственную документацию для модуля!

Изучение нашего задокументированного кода

Мы можем запустить Python -m Pydoc src.math и мы должны увидеть вывод Docstring :

Help on module src.math in src:

NAME
    src.math

FUNCTIONS
    add(x, y)
        add together two numbers

        Args:
            x (int): First number to add
            y (int): Second number to add

        Returns:
            int: sum of x and y

FILE
    /path/to/code/blog-projects/hello-pydoc/src/math.py

Как это было легко!

Просмотр Pydoc в браузере

Если мы запустим pydoc -h , мы видим следующее:

-h
pydoc - the Python documentation tool

pydoc  ...
    Show text documentation on something.   may be the name of a
    Python keyword, topic, function, module, or package, or a dotted
    reference to a class or function within a module or module in a
    package.  If  contains a '/', it is used as the path to a
    Python source file to document. If name is 'keywords', 'topics',
    or 'modules', a listing of these things is displayed.

pydoc -k 
    Search for a keyword in the synopsis lines of all available modules.

pydoc -p 
    Start an HTTP server on the given port on the local machine.  Port
    number 0 can be used to get an arbitrary unused port.

pydoc -g
    Pop up a graphical interface for finding and serving documentation.

pydoc -w  ...
    Write out the HTML documentation for a module to a file in the current
    directory.  If  contains a '/', it is treated as a filename; if
    it names a directory, documentation is written for all the contents.

Это дает нам список вариантов, которые мы можем использовать для просмотра нашей собственной документации.

Прежде всего, мы будем использовать pydoc -p 4000 Опция запустить сервер на порту 4000.

Отсюда вы можете открыть http://localhost: 4000 в вашем браузере и изучите документацию. Интерфейс не симпатичен, но работа выполняется.

Вывод Pydoc как HTML

Наконец, мы можем вывести документацию как HTML, передавая -W опция на pydoc Анкет

Бег Пидок -w src.math Выходы HTML в src.math.html который содержит следующее:




  
    Python: module src.math

  
  
    
   src.math /path/to/code/blog-projects/hello-pydoc/src/math.py

  Functions
        
add(x, y)
add together two numbers   Args:     x (int): First number to add     y (int): Second number to add   Returns:     int: sum of x and y

Резюме

Сегодняшний пост продемонстрировал, как использовать pydoc Пакет для изучения встроенной и пользовательской документации.

Несмотря на неглубокое исследование, лучший способ улучшить вашу возможность поиска – использовать командную строку на практике.

Ресурсы и дальнейшее чтение

  1. Пидок
  2. GitHub Repo

Кредит фото: Milada_vigerova

Первоначально опубликовано на моем блог . Чтобы увидеть новые сообщения без промедления, прочитайте сообщения там и подпишитесь на мою рассылку.

Оригинал: “https://dev.to/okeeffed/how-pydoc-helps-your-python-development-432h”