Commit Diff


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