Zum Inhalt

Integration in dssCode (Plattform zur Kodierung)

Zugang über dsstools

Wenn du einen Graph importieren möchtest, der zuvor in dssCode kodiert wurde, gehe dazu in dssCode in deine Profileinstellungen und kopiere das dortige API-Token. Das ist der Schlüssel für den Zugriff auf die Plattform aus Python heraus.

Warnung

Committe dieses Token niemals in Repositories!

Deshalb wollen wir unbedingt vermeiden, das Token in unser Skript zu schreiben, auch wenn wir es einfach als Parameter übergeben. Stattdessen müssen wir es anderweitig übergeben. Das lässt sich am besten über eine sogenannte Umgebungsvariable erledigen. Eine Umgebungsvariable besteht aus einem Schlüssel und einem Wert, ähnlich wie ein Item in einem Dictionary in Python.

Der Plan ist also wie folgt: 1. Wir legen die Umgebungsvariable auf eine Art und Weise fest, die nicht veröffentlicht wird. 2. Wir lesen diese Umgebungsvariablen wieder im laufenden Pythoncode in eine Python-Variable ein. 3. Diese Python-Variable wird an die Methode übergeben, die das Token benötigt.

Für 1. gibt es zwei Möglichkeiten:

Umgebungsvariablen über IDE

Viele IDEs ermöglichen eine Festlegung von Umgebungsvariablen, wenn Python ausgeführt wird. Falls du eine solche verwendest, findest du dazu online häufig eine Erklärung. Hier einige Erklärungsseiten für das Setzen von Umgebungsvariablen von verbreiteten IDEs:

  • Pycharm
  • VS Code
  • Spyder unterstützt anscheinend derzeit nicht das Setzen von Umgebungsvariablen.

.env

Neben den Möglichkeiten der IDE gibt es noch eine weitere Möglichkeit, die unabhängig funktioniert: Das Erstellen einer .env-Datei. Diese Datei besteht aus einer Liste von Umgebungsvariablen, die untereinander geschrieben werden.

Hinweis

.env kann auch für das TextSearch-Modul genutzt werden (siehe unten).

Der Inhalt der .env sieht wie folgt aus:

DSSCODE_TOKEN=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Weitere verwendete Variablen können darunter geschrieben werden. Variablen aus .env werden gegenüber allgemeinen Umgebungsvariablen priorisiert.

Achtung

In deinem Skript muss explizit load_dotenv() aufgerufen werden:

from dotenv import load_dotenv
load_dotenv()

Dann geht es wie im nächsten Abschnitt beschrieben weiter.

Verwenden von Umgebungsvariablen

Um den Wert einer Umgebungsvariable in eine Python-Variable zu übertragen, können wir die Bordmittel von Python nutzen:

import os

# Hängt davon ab, wie dein Token bezeichnet ist
dsscode_token=os.getenv("DSSCODE_TOKEN")

Damit wäre deine Umgebungsvariable DSSCODE_TOKEN in die Python-Variable dsscode_token übertragen und du kannst sie jetzt an die entsprechenden Methoden übergeben.

Projekt-Slug

Weiterhin benötigst du von dssCode das sogenannte Projekt-Slug. Das ist ein menschenleserlicher String, der keine Leerzeichen oder Sonderzeichen enthält. Wenn du dich in der Projektübersicht befindest, steht der Slug in deiner Adresszeile des Browsers:

In diesem Beispiel wäre das sustainable_investment.

Snapshot

Snapshots dienen dazu, einen festgelegten Zustand aus dssCode zu erhalten. Die Erstellung eines solches Snapshots funktioniert in dssCode über Projektübersicht -> Snapshots -> Snapshot anlegen. Danach erscheint ein neuer Eintrag in der Tabelle darunter. Diese ID muss kopiert werden und ist unser Wert für snapshot in Python.

Hinweis

Diese Snapshot-ID kann committet werden. Das ist sogar sinnig, da andere Personen in deinem Team dann denselben Zustand in ihrem Netzwerk erhalten.

Anwendung

Ein simpler Aufruf sähe dann so aus:

G = dts.import_from_dsscode(
    "sustainable_investment",
    "hhhhhhhhhhhhhhhhhh" # (1)
)
  1. Platzhalter für die Snapshot-ID

Das kann je nach Größe des Graphs etwas dauern. Standardmäßig wird dieser Aufruf gecached, was bedeutet, das nicht bei jedem Aufruf erneut die API aufgerufen wird. Das reduziert die Last auf dem Server. Dazu musst du aber nichts weiter tun.