commit 41ade8d4a055ad7bad218ac866557567f54d46ac from: Aleksey Ryndin date: Wed Sep 18 16:50:43 2024 UTC Append /python/python3.11-tools.gmi commit - 6d94713c779dde53f7f748bd158efff28749d55c commit + 41ade8d4a055ad7bad218ac866557567f54d46ac blob - 7877d33b9961996000e9126034cffd68a0d40b8f blob + 1493767a87df1050cb9c0f176148514cbfef904c --- capsule/python/python3.11-tools.gmi +++ capsule/python/python3.11-tools.gmi @@ -1,8 +1,8 @@ # Утилиты, встроенные в Python -На машинах, где я работаю над чем-либо в подавляющем большинстве случаев уже установлен третий пайтон. А вместе с интерпретатором устанавливаются и модули стандартной библиотеки, некоторые из которых могут работать, как самостоятельные утилиты. Я, например, давно уже пользуюсь модулем http.server для переброса файлов между машинами одной сети или json.tool для человеко-читаемого отображения json-данных. +На машинах, где я работаю над чем-либо в подавляющем большинстве случаев уже установлен третий пайтон. А вместе с интерпретатором устанавливаются и модули стандартной библиотеки, некоторые из которых могут работать, как самостоятельные утилиты командной строки. Я, например, давно уже пользуюсь модулем http.server для переброса файлов между машинами одной сети или json.tool для человеко-читаемого отображения json-данных. -Вот я и решил погрепать стандартные модули Python 3.11 на предмет встроенных полезных утилит. +Вот я и решил погрепать стандартные модули Python 3.11 на предмет встроенных полезных утилит. Что бы получить краткую справку прямо в консоли утилиты можно запустить с аргументом -h или (если запуск с -h не поддерживается) совсем без аргументов. ## Модуль base64 @@ -28,7 +28,7 @@ Aladdin:open sesame ## Модуль calendar Работа модуля calendar в режиме утилиты хорошо документирована: -=> https://docs.python.org/3/library/calendar.html +=> https://docs.python.org/3/library/calendar.html#command-line-usage Утилита выводит календарь в формате простого текста или HTML. @@ -131,3 +131,44 @@ Thanks! * -l. снова выводит содержимое текущей директории (pub/example) Данные для аутентификации (в случае необходимости) берутся из `~/.netrc`. Утилите можно задать альтернативный файл .netrc через аргумент -r. + +## Модуль gzip + +Модуль [де-] компрессии в формате gzip. Модуль реализует простой документированный интерфейс командной строки: +=> https://docs.python.org/3/library/gzip.html#command-line-interface + +## Модуль http.server + +Реализация HTTP сервера и известными ограничениями. Я сам часто использую команду `python3 -m http.server` для копирования файлов между машинами в одной сети. + +=> https://docs.python.org/3/library/http.server.html Документация на модуль http.server + +## Модуль inspect + +Модуль само-рефлексии python-кода. Утилита командной строки по умолчанию получает имя python-объекта в формате "module:qualname", а в стандартный поток вывода печатает исходный код реализации этого объекта. Например: +``` +$ python3.11 -m inspect inspect:ismodule +def ismodule(object): + """Return true if the object is a module. + + Module objects provide these attributes: + __cached__ pathname to byte compiled file + __doc__ documentation string + __file__ filename (missing for built-in modules)""" + return isinstance(object, types.ModuleType) +``` + +Если указать аргумент -d, то в стандартный поток вывода печатается мета-информация об объекте. Например: +``` +$ python3.11 -m inspect -d inspect:ismodule +Target: inspect:ismodule +Origin: /usr/lib/python3.11/inspect.py +Cached: /usr/lib/python3.11/__pycache__/inspect.cpython-311.pyc +Line: 282 +``` + +## Модуль json.tool + +Модуль человеко-читаемого форматирования JSON. + +=> https://docs.python.org/3/library/json.html#command-line-options Документация на модуль json