Eigenes Modul

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Fire Spike: Wonach willst Du ein Skript denn durchsuchen? Da müssen ja nicht einmal Dateinamen drin stehen, es reicht ja schon wen so ein Skript ein Programm aufruft, dass dann eine Datei irgendwo erzeugt. Und wenn Dateinamen/Pfade drin stehen, dann müssen die nicht komplett an einer Stelle stehen, sondern können auch durch Code erstellt werden. Auch Code der von irgendwelchen äusseren Bedingungen abhängig ist, beispielsweise das eine bestimmte Umgebungsvariable oder ein bestimmtes Verzeichnis existiert.

Die Frage mit dem Speicherort für die Python-Datei für Sphinx ist mir nicht so ganz klar. Sphinx erzeugt nicht einfach so aus einer Python-Datei Dokumentation, falls Du das versucht haben solltest. Man *kann* mit Sphinx Informationen aus Docstrings in mit Sphinx geschriebene Dokumentation einbauen. Da sind aber ein paar mehr Arbeitsschritte notwendig als ein einfacher Programmaufruf. Das steht alles in der (mit Sphinx) erzeugten Dokumentation von Sphinx. Stichwort ist die `autodoc`-Erweiterung.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Beim öffnen der Datei muss man noch die Kodierung angeben: UTF-8. Das Format ist in dieser Manpage beschrieben: https://manpages.debian.org/buster/dpkg ... .5.en.html
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

Danke für die infos.
sphinx habe ich jetzt verstanden aber, die html datei stellt die werte falsch dar.
weiss du was der fehler ist?
das ist der code:

Code: Alles auswählen

"""
The module provides information about installed debian packages.
The module can only be executed if the operating system supports debian packages!
"""
STATUS_FILENAME = "/var/lib/dpkg/status"
__author__ = "Ben Fässler <faesslerben@gmail.com>"
__license__ = "MIT"
__all__ = ["iter_packages",
           "package_exists",
           "get_package_values",
           "list_package_names",
           "count_packages"
]
__version__ = "0.0.1"

import pathlib

def iter_packages():
    """
    The main function of module.
    """
    info = []
    with open(STATUS_FILENAME) as infofile:
        for line in infofile:
            if line.startswith(' '):
                # continue content
                info[-1][-1] += '\n' + line[1:].rstrip()
            elif not line.strip():
                # end of block
                if info:
                    yield dict(info)
                info = []
            else:
                key, content = line.split(":", 1)
                info.append([key, content.strip()])
        if info:
            yield dict(info)
            
def package_exists(package_name):
    """
    This function checks if package exists.
    :param package_name: The name of the package
    :type: package_name: str
    :returns: True = The package exists | False = The package does exists
    :rtype: True, False
    """
    return any(info["Package"] == package_name
        for info in iter_packages())

def get_package_values(package_name):
    """
    Returns all values of a package.
    :param package_name: The name of the package
    :type package_name: str
    :returns: all package values
    :rtype: dict
    :raises: KeyError
    """
    for info in iter_packages():
        if info["Package"] == package_name:
            return info
    raise KeyError("The package does not exist")

def list_package_names():
    """
    Returns all names of installed packages.
    :returns: all packages names
    :rtype: list
    """
    return [
        info["Package"]
        for info in iter_packages()
    ]

def count_packages():
    """
    Counts all installed packages.
    :returns: amount of packages
    :rtype: int
    """
    return sum(1 for info in iter_packages())
Doku:

Welcome to i’s documentation!
Indices and tables
Index

Module Index

Search Page

The module provides information about installed debian packages. The module can only be executed if the operating system supports debian packages!

debinfo.iter_packages()
The main function of module.

debinfo.package_exists(package_name)
This function checks if package exists. :param package_name: The name of the package :type: package_name: str :returns: True = The package exists | False = The package does exists :rtype: True, False

debinfo.get_package_values(package_name)
Returns all values of a package. :param package_name: The name of the package :type package_name: str :returns: all package values :rtype: dict :raises: KeyError

debinfo.list_package_names()
Returns all names of installed packages. :returns: all packages names :rtype: list

debinfo.count_packages()
Counts all installed packages. :returns: amount of packages :rtype: int
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

Das encoding habe ich noch hinzugefügt
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

Kann mir hier jemand noch helfen? ich würde das modul gerne veröffentlichen ;)
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

würde mir jemand aus dem obigen code eine Doku generieren? (Nur wenn es nicht zu viel aufwand ist ;))
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

Ich habe jetzt eine Dokumentation generiert, aber der Fehler das die Werte nebeneinander und nicht untereinander stehen.
Beispiel

Code: Alles auswählen

debinfo.list_package_sources()
Returns a list of all enabled package sources. :returns: list of strings :rtype: list
Ich würde mir das so vorstellen:

Code: Alles auswählen

debinfo.list_package_sources()
Returns a list of all enabled package sources.
 :returns: list of strings
 :rtype: list
Antworten