.. SPDX-FileCopyrightText: 2020 cusy GmbH
..
.. SPDX-License-Identifier: BSD-3-Clause
Pytype
======
Pytype ist ein statisches Analysewerkzeug, das Typen aus eurem Python-Code
ableitet ohne dass Typanmerkungen notwendig sind. Es kann jedoch auch im Code
stehende `Type Annotations `_ erzwingen.
Obwohl Annotationen für Pytype optional sind, werden sie geprüft und angewendet,
sofern sie vorhanden sind. Die von Pytype erzeugten Typ-Annotationen werden in
eigenständigen ``.pyi``-Dateien gespeichert, die mit `merge-pyi
`_ wieder
in den Python-Code eingebunden werden können. Schließlich markiert es häufige
Fehler wie falsch geschriebene Attributnamen oder Funktionsaufrufe und vieles
mehr, auch über Dateigrenzen hinweg.
.. seealso::
* `Home `_
* `GitHub `_
* `PyPI `_
* `User guide `_
* `FAQ `_
Anforderungen
-------------
* Alle gängigen Linux-Distributionen werden unterstützt
* macOS ≥ 10.7 und Xcode ≥ 8
* Windows mit `WSL `_.
Zusätzlich müssen folgende Bibliotheken installiert werden:
.. code-block:: console
$ sudo apt install build-essential python3-dev libpython3-dev
Installation
------------
Pytype kann einfach installiert werden mit
.. code-block:: console
$ uv add pytype
Anschließend kann die Installation überprüft werden mit
.. code-block:: console
$ uv run pytype file_or_directory
Konfiguration
-------------
Für ein Python-Paket könnt ihr Pytype einrichten indem ihr eine
``pytype.cfg``-Datei anlegt mit
.. code-block:: console
$ uv run pytype --generate-config pytype.cfg
Diese beginnt dann :abbr:`z.B. (zum Beispiel)` mit
.. code-block:: ini
# NOTE: All relative paths are relative to the location of this file.
[pytype]
# Space-separated list of files or directories to exclude.
exclude =
**/*_test.py
**/test_*.py
# Space-separated list of files or directories to process.
inputs =
.
Nun könnt ihr die Konfigurationsdatei euren Anforderungen entsprechend ampassen.
Zusätzliche Skripte
-------------------
``annotate-ast``
in-progress Type-Annotator für ASTs
``merge-pyi``
Zusammenführen von Typinformationen aus einer ``.pyi``- in eine Python-Datei
``pytd-tool``
Parser für ``.pyi``-Dateien
``pytype-single``
Debugging-Tool für Pytype-Entwickler, das eine einzelne Python-Datei unter
der Annahme analysiert, dass für alle Abhängigkeiten bereits
``.pyi``-Dateien generiert wurden
``pyxref``
cross-References-Generator