[PYTHON] So erstellen Sie einen Befehl zum Lesen der Einstellungsdatei mit Pyramide

So erstellen Sie einen Befehl zum Lesen der Einstellungsdatei mit Pyramide

Standardmäßig wird pyramid mit einem Befehl versehen, der bei der Ausführung eine Konfigurationsdatei als Argument verwendet. (z. B. pserve, proutes ...) Die vorhandenen Befehle lesen nicht nur den Inhalt der Konfigurationsdatei mit dem Parser.

Ich möchte dasselbe tun, wenn ich selbst einen neuen Befehl erstelle. Verwenden Sie in diesem Fall die Funktion unter pyramid.paster.bootstrap.

pyramid.paster.bootstrap

pyramid.paster.bootstrap verwendet den Pfad der Konfigurationsdatei als Argument und führt die Funktion (normalerweise main () der App) aus, die an dem in die Konfigurationsdatei geschriebenen Einstiegspunkt registriert ist. Gibt nach der Ausführung ein Wörterbuch mit der Rückgabewert-App usw. zurück.

Vom Bootstrap aufgerufene Funktion

Wenn development.ini wie folgt geschrieben wird

[app:main]
use = egg:qiita

Weil der Einstiegspunkt in setup.py registriert ist.

setup(name='qiita',
...
      entry_points="""\
      [paste.app_factory]
      main = qiita:main
      """,
...
)

qiita.main () heißt.

So erstellen Sie einen Befehl zum Lesen einer Konfigurationsdatei

So erstellen Sie einen Befehl zum Lesen einer Konfigurationsdatei mit der folgenden Dateistruktur.

$ tree
.
|-- development.ini
|-- production.ini
|-- qiita
|   |-- __init__.py
|   |-- scripts.py
|   `-- views.py
`-- setup.py

Schreiben Sie die Implementierung des zu erstellenden Befehls in qiita / scripts.py. Erstellt wie folgt mit Bootstrap. Dieses Mal druckt der Befehl nur den Rückgabewert von Bootstrap.

# -*- coding:utf-8 -*-
from pyramid.paster import bootstrap
import sys
import pprint


def sample(args=sys.argv):
    config_path = sys.argv[1]
    env = bootstrap(config_path)
    pprint.pprint(env)

Fügen Sie die Beschreibung von console_scripts zu setup.py hinzu. Ich werde es mit dem Namen Qiita-Probe registrieren.

setup(name='qiita',
...
      entry_points="""\
      [paste.app_factory]
      main = qiita:main
      [console_scripts]
      qiita-sample = qiita.scripts:sample
      """,
...
)

Nach der Neuinstallation mit setup.py können Sie das registrierte Qiita-Beispiel verwenden. Wenn Sie die Einstellungsdatei angeben und qiita-sample ausführen, können Sie die Umgebung abrufen, in der die App geladen wird.

$ python setup.py develop
$ qiita-sample development.ini
{'app': <pyramid.router.Router object at 0x10edd2990>,
 'closer': <function prepare.<locals>.closer at 0x10f30e440>,
 'registry': <Registry qiita>,
 'request': <Request at 0x10e140d90 GET http://localhost/>,
 'root': <pyramid.traversal.DefaultRootFactory object at 0x10ede9f10>,
 'root_factory': <class 'pyramid.traversal.DefaultRootFactory'>}

Referenz

Recommended Posts

So erstellen Sie einen Befehl zum Lesen der Einstellungsdatei mit Pyramide
Lesen einer CSV-Datei mit Python 2/3
So wechseln Sie die Konfigurationsdatei, die von Python gelesen werden soll
So geben Sie das Ausgabeergebnis des Linux-Befehls man in eine Datei aus
So erstellen Sie ein Wörterbuch mit einer hierarchischen Struktur.
[Python] Wie man Excel-Dateien mit Pandas liest
Ich las "Wie man ein Hacking Lab macht"
Speichern Sie das Objekt in einer Datei mit pickle
So lesen Sie Dateien in verschiedenen Verzeichnissen
So schreiben Sie eine GUI mit dem Befehl maya
So löschen Sie die angegebene Zeichenfolge mit dem Befehl sed! !! !!
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Wie man ein Schießspiel mit toio macht (Teil 1)
Verwenden Sie den Befehl [shell], um eine beliebige Datei zu komprimieren, um eine Datei zu erstellen und die Originaldatei zu löschen.
So erstellen Sie eine geometrische 3D-Figur mit einem Klick [Vom dreieckigen Kegel zum Fraktal]
So erstellen Sie mit Flask einen BOT für Cisco Webex-Teams
So setzen Sie einen Hyperlink zu "file: // hogehoge" mit sphinx-> pdf
So führen Sie eine Python-Datei an einer Windows 10-Eingabeaufforderung aus
Wie man ein einfaches Flappy Bird-Spiel mit Pygame macht
Eine Geschichte über den Umgang mit dem CORS-Problem
So verwenden Sie eine andere Datei als .fabricrc als Konfigurationsdatei
Lesen einer Excel-Datei (.xlsx) mit Pandas [Python]
Wie erstelle ich eine japanisch-englische Übersetzung?
Wie man einen lockeren Bot macht
Lesen des SNLI-Datensatzes
Wie erstelle ich einen Crawler?
So erstellen Sie eine rekursive Funktion
[Blender] So erstellen Sie ein Blender-Plug-In
Wie erstelle ich einen Crawler?
So erstellen Sie eine Konfigurationsdatei
[sh] Das Speichern der Befehlsausführung führt zu Variablen
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
So erstellen Sie eine Überwachungskamera (Überwachungskamera) mit Opencv und Python
Lesen Sie die Datei in Python mit einem relativen Pfad aus dem Programm
So überwachen Sie den Ausführungsstatus von sqlldr mit dem Befehl pv
[ROS2] So spielen Sie eine Bag-Datei mit Start im Python-Format ab
So senden Sie eine Anfrage mit Python an die DMM (FANZA) -API
So laden Sie Dateien mit Python in den Cloud-Speicher hoch [Erstellen Sie mit Raspberry PI # 1 eine Festkommakamera]
So fügen Sie ein Paket mit PyCharm hinzu
[Python] Wie man eine Klasse iterierbar macht
[Linux] Verwendung des Befehls echo
Lesen wir die RINEX-Datei mit Python ①
Verwendung des CUT-Befehls (mit Beispiel)
So erstellen Sie einen benutzerdefinierten Backtrader-Indikator
Versuchen Sie, die Datei mit dem Befehl less neu zu schreiben
Wie erstelle ich eine Pelican Site Map?
Zeichendatendatei mit numpy lesen
Wie man Problemdaten mit Paiza liest
Ich habe mit Python eine Einstellungsdatei erstellt
Ersetzen Sie den Verzeichnisnamen und den Dateinamen im Verzeichnis zusammen mit einem Linux-Befehl.
Überlegen Sie, wie Sie einen Filter mit den Shotgun API-Contact-Versionen schreiben
[Python] Erklärt anhand eines konkreten Beispiels, wie die Bereichsfunktion verwendet wird
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
[Bilderkennung] Lesen des Ergebnisses der automatischen Annotation mit VoTT
[LPIC 101] So geben Sie die Festplattenpartitionsnummer in der GRUB-Einstellungsdatei an
So setzen Sie eine Zeilennummer am Anfang einer CSV-Datei
[Python] Lesen der CSV-Datei (Methode read_csv des Pandas-Moduls)
Wie man die anfängliche Population mit einem genetischen Algorithmus unter Verwendung von DEAP fixiert