diff --git a/.github/workflows/go-auto-format.yml b/.github/workflows/go-auto-format.yml index f6ef428..a725b43 100644 --- a/.github/workflows/go-auto-format.yml +++ b/.github/workflows/go-auto-format.yml @@ -1,10 +1,10 @@ name: Go Format and Check on: - push: - branches: [develop] pull_request: branches: "**" + push: + branches: [develop, qa, prod] permissions: pull-requests: write diff --git a/.github/workflows/pip-conflicts.yml b/.github/workflows/pip-conflicts.yml new file mode 100644 index 0000000..36cb52e --- /dev/null +++ b/.github/workflows/pip-conflicts.yml @@ -0,0 +1,36 @@ +name: Check Pip Conflicts + +on: + pull_request: + branches: "**" + push: + branches: [develop, qa, prod] + +jobs: + check-pip-conflicts: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.10" + + - name: Install pip-tools + run: pip install pip-tools + + - name: Check for conflicts + run: | + exit_code=0 + for file in requirements/*requirements.txt; do + echo "Checking $file for conflicts..." + if pip-compile "$file" --dry-run --output-file - > /dev/null 2>&1; then + echo "No conflicts found in $file" + else + echo "Conflicts detected in $file" + pip-compile "$file" --dry-run --output-file - || true + exit_code=1 + fi + done + exit $exit_code diff --git a/.github/workflows/python-auto-format.yml b/.github/workflows/python-auto-format.yml index fefa0a5..f7fa734 100644 --- a/.github/workflows/python-auto-format.yml +++ b/.github/workflows/python-auto-format.yml @@ -2,6 +2,9 @@ name: Python Autoformatting on: pull_request: + branches: "**" + push: + branches: [develop, qa, prod] permissions: pull-requests: write diff --git a/.gitignore b/.gitignore index 65a3f70..2204413 100644 --- a/.gitignore +++ b/.gitignore @@ -52,7 +52,11 @@ **/dist/ + +## Jupyter + +**/*.ipynb_checkpoints/ + # Flutter / Dart **/.dart_tool/ - diff --git a/database/test_archetypes.json b/data/test_archetypes.json similarity index 100% rename from database/test_archetypes.json rename to data/test_archetypes.json diff --git a/database/test_exits.json b/data/test_exits.json similarity index 100% rename from database/test_exits.json rename to data/test_exits.json diff --git a/database/test_exits_update.json b/data/test_exits_update.json similarity index 100% rename from database/test_exits_update.json rename to data/test_exits_update.json diff --git a/database/test_prototypes.json b/data/test_prototypes.json similarity index 100% rename from database/test_prototypes.json rename to data/test_prototypes.json diff --git a/database/test_rooms.json b/data/test_rooms.json similarity index 100% rename from database/test_rooms.json rename to data/test_rooms.json diff --git a/database/test_rooms_update.json b/data/test_rooms_update.json similarity index 100% rename from database/test_rooms_update.json rename to data/test_rooms_update.json diff --git a/database/data_loader.py b/database/data_loader.py index f654059..4c97580 100644 --- a/database/data_loader.py +++ b/database/data_loader.py @@ -326,10 +326,10 @@ def main(): - Loads data back from DynamoDB and displays it. """ parser = argparse.ArgumentParser(description="Load and store game data in DynamoDB.") - parser.add_argument("-r", "--rooms", default="test_rooms.json", help="Path to the Rooms JSON file.") - parser.add_argument("-e", "--exits", default="test_exits.json", help="Path to the Exits JSON file.") - parser.add_argument("-a", "--archetypes", default="test_archetypes.json", help="Path to the Archetypes JSON file.") - parser.add_argument("-p", "--prototypes", default="test_prototypes.json", help="Path to the Prototypes JSON file.") + parser.add_argument("-r", "--rooms", default="../data/test_rooms.json", help="Path to the Rooms JSON file.") + parser.add_argument("-e", "--exits", default="../data/test_exits.json", help="Path to the Exits JSON file.") + parser.add_argument("-a", "--archetypes", default="../data/test_archetypes.json", help="Path to the Archetypes JSON file.") + parser.add_argument("-p", "--prototypes", default="../data/test_prototypes.json", help="Path to the Prototypes JSON file.") parser.add_argument("-region", default="us-east-1", help="AWS region for DynamoDB.") args = parser.parse_args() diff --git a/editor/RoomEditor.ipynb b/editor/RoomEditor.ipynb new file mode 100644 index 0000000..3410923 --- /dev/null +++ b/editor/RoomEditor.ipynb @@ -0,0 +1,211 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "id": "d7673e4a-ea81-4c93-9ec8-4466defe9ca0", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import os\n", + "\n", + "import networkx as nx\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "load-data", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loaded 10 rooms and 17 exits.\n" + ] + } + ], + "source": [ + "def load_json_data(filename):\n", + " filepath = os.path.join('..', 'data', filename)\n", + " with open(filepath, 'r', encoding=\"utf-8\") as file:\n", + " return json.load(file)\n", + "\n", + "# Load rooms and exits data\n", + "rooms_data = load_json_data('test_rooms.json')\n", + "exits_data = load_json_data('test_exits.json')\n", + "\n", + "print(f\"Loaded {len(rooms_data['rooms'])} rooms and {len(exits_data['exits'])} exits.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b1e343ef-a592-440d-a19e-02a38d345393", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Graph created with 10 nodes and 17 edges.\n" + ] + } + ], + "source": [ + "# Create a directed multigraph\n", + "G = nx.MultiDiGraph()\n", + "\n", + "# Add nodes to the graph\n", + "for room in rooms_data['rooms']:\n", + " G.add_node(room['RoomID'], title=room['Title'])\n", + "\n", + "# Create a dictionary to map ExitID to exit details\n", + "exit_map = {exit['ExitID']: exit for exit in exits_data['exits']}\n", + "\n", + "# Add edges to the graph\n", + "for room in rooms_data['rooms']:\n", + " for exit_id in room.get('ExitID', []):\n", + " exit = exit_map.get(exit_id)\n", + " if exit:\n", + " G.add_edge(\n", + " room['RoomID'],\n", + " exit['TargetRoom'],\n", + " key=exit_id, # Use ExitID as the edge key\n", + " direction=exit['Direction']\n", + " )\n", + " else:\n", + " print(f\"Warning: ExitID {exit_id} not found in exits data\")\n", + "\n", + "# Print basic information about the graph\n", + "print(f\"Graph created with {G.number_of_nodes()} nodes and {G.number_of_edges()} edges.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "9faa54e2-4cb6-4b68-aada-7d753110466d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABFEAAAMsCAYAAACcAj02AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD/sUlEQVR4nOzdd3hU1drG4d+kTgppEFJoISI9hSpFpHdQKSqCUhWRonxHVGyAKGABxQMqR4+CBQugIgoqHaWDEDpIkZqEAGmkTJLJzPdHzBxjAgRIMiF57uvKZWbPmr3fPRhInqz1LoPVarUiIiIiIiIiIiJX5WDvAkREREREREREbgUKUURERERERERECkEhioiIiIiIiIhIIShEEREREREREREpBIUoIiIiIiIiIiKFoBBFRERERERERKQQFKKIiIiIiIiIiBSCQhQRERERERERkUJQiCIiIiIiIiIiUggKUURERERuUSEhIfTq1cveZYiIiJQbClFERESK2IIFCzAYDLYPJycnqlSpwtChQzl37py9y7sh7dq1o2HDhvYu46ZNnz6dpUuXXtdrkpOTmTZtGk2bNsXb2xtXV1dq1KjBAw88wPLly4unUBERESmVnOxdgIiISFk1depUatasiclkYuvWrSxYsICNGzeyf/9+jEajvcsrl6ZPn07//v259957CzX+2LFjdO3alVOnTtGnTx8GDx6Mp6cnZ86cYcWKFfTq1YtPP/2Uhx9+uHgLFxERkVJBIYqIiEgx6d69O02bNgXgkUceoVKlSrz++ussW7aM+++/387VybWYzWb69OnD+fPn2bBhA61bt87z/OTJk1m5ciXZ2dlXPU9qaioeHh7FWaqIiIiUEC3nERERKSFt2rQB4Pjx43mOr127ljZt2uDh4YGPjw/33HMPhw4dyvf63bt30717d7y8vPD09KRjx45s3bo1z5jcpUQbN27kiSeewN/fHx8fHx577DEyMzNJTExk8ODB+Pr64uvryzPPPIPVai2S+9u7dy9Dhw4lNDQUo9FIYGAgw4cP59KlS7Yx69atw2Aw8N133+V7/RdffIHBYGDLli3X9d4MHTqUkJCQfOebMmUKBoPB9thgMJCamsonn3xiW2o1dOjQK97P4sWL2b9/Py+99FK+ACVXly5d6N69u+1x7vu/YcMGRo8eTeXKlalatSoAp06dYvTo0dSpUwc3NzcqVqzIfffdx8mTJ/OcM/ccv/76K4899hgVK1bEy8uLwYMHk5CQUGAdGzdupHnz5hiNRkJDQ/n000+veF8iIiJy4zQTRUREpITk/rDs6+trO7Z69Wq6d+9OaGgoU6ZMIT09nTlz5tC6dWt27dplCwcOHDhAmzZt8PLy4plnnsHZ2Zn//Oc/tGvXjg0bNnDHHXfkuda4ceMIDAzk5ZdfZuvWrXzwwQf4+PiwefNmqlevzvTp01mxYgVvvvkmDRs2ZPDgwTd9f6tWreLEiRMMGzaMwMBADhw4wAcffMCBAwfYunUrBoOBdu3aUa1aNRYuXEifPn3yvH7hwoXcdttttGzZ8rrem8L67LPPeOSRR2jevDkjR44E4Lbbbrvi+B9++AGAhx566LquAzB69Gj8/f2ZNGkSqampAOzYsYPNmzczYMAAqlatysmTJ3n//fdp164dBw8exN3dPc85xo4di4+PD1OmTOHIkSO8//77nDp1ivXr1+cJh44dO0b//v0ZMWIEQ4YM4eOPP2bo0KE0adKEBg0aXHftIiIichVWERERKVLz58+3AtbVq1dbL1y4YD1z5ox1yZIlVn9/f6urq6v1zJkztrGRkZHWypUrWy9dumQ7tmfPHquDg4N18ODBtmP33nuv1cXFxXr8+HHbsejoaGuFChWsd911V75rd+3a1WqxWGzHW7ZsaTUYDNZRo0bZjpnNZmvVqlWtbdu2veY9tW3b1tqgQYOrjklLS8t37Msvv7QC1l9//dV27LnnnrO6urpaExMTbcfi4uKsTk5O1smTJ9uOFfa9GTJkiLVGjRr5rj158mTrP7/V8fDwsA4ZMuSq95GrUaNGVh8fn3zHU1JSrBcuXLB9JCUl2Z7Lff/vvPNOq9lszvO6gt6fLVu2WAHrp59+mu8cTZo0sWZmZtqOv/HGG1bA+v3339uO1ahRI9/7GxcXZ3V1dbU+9dRThbpPERERKTwt5xERESkmnTp1wt/fn2rVqtG/f388PDxYtmyZbXlHTEwMUVFRDB06FD8/P9vrwsPD6dy5MytWrAAgOzublStXcu+99xIaGmobFxQUxMCBA9m4cSPJycl5rj1ixIg8sxXuuOMOrFYrI0aMsB1zdHSkadOmnDhxokju183Nzfa5yWTi4sWLtGjRAoBdu3bZnhs8eDAZGRksWbLEduzrr7/GbDbbZn0U9r0pTsnJyXh6euY7/sILL+Dv72/7GDhwYL4xjz76KI6OjnmO/f39ycrK4tKlS9SqVQsfH58870+ukSNH4uzsbHv8+OOP4+TklO/e69evb1sqBuDv70+dOnWK7M9VRERE/kchioiISDF59913WbVqFUuWLKFHjx5cvHgRV1dX2/OnTp0CoE6dOvleW69ePS5evEhqaioXLlwgLS3tiuMsFgtnzpzJc7x69ep5Hnt7ewNQrVq1fMev1GfjesXHx/Pkk08SEBCAm5sb/v7+1KxZE4CkpCTbuLp169KsWTMWLlxoO7Zw4UJatGhBrVq1gMK/N8WpQoUKpKSk5Ds+evRoVq1axapVqwgICCjwtbn3/Xfp6elMmjSJatWq4erqSqVKlfD39ycxMTHP+5Pr9ttvz/PY09OToKCgfD1U/vlnDTlLxorqz1VERET+Rz1RREREiknz5s1tu/Pce++93HnnnQwcOJAjR44UOMOhKP1zFsTVjluLqLHs/fffz+bNm3n66aeJjIzE09MTi8VCt27dsFgsecYOHjyYJ598krNnz5KRkcHWrVuZO3fuDV337zNu/u5au+ZcS926dYmKiuLcuXNUqVLFdrx27drUrl0b4IpbVf991kmucePGMX/+fMaPH0/Lli3x9vbGYDAwYMCAfO/P9bjSn3VR/bmKiIjI/2gmioiISAlwdHRkxowZREdH28KCGjVqAHDkyJF84w8fPkylSpXw8PDA398fd3f3K45zcHDIN8OkpCUkJLBmzRomTpzIyy+/TJ8+fejcuXOe5Ud/N2DAABwdHfnyyy9ZuHAhzs7OPPDAA7bnC/veQM6si8TExHzjcmez/N2VApeC9OrVCyDPjJmbsWTJEoYMGcKsWbPo378/nTt35s477yywdoCjR4/meZySkkJMTMx1N9QVERGRoqMQRUREpIS0a9eO5s2bM3v2bEwmE0FBQURGRvLJJ5/k+UF6//79rFy5kh49egA5AUyXLl34/vvv8yzlOH/+PF988QV33nknXl5eJXw3eeXOhvjn7IfZs2cXOL5SpUp0796dzz//nIULF9KtWzcqVapke76w7w3k7LCTlJTE3r17bcdiYmIK3EbZw8PjiqHFP91///3Ur1+fV155Jd9W0rmuZ7aHo6NjvvFz5sy54oyZDz74gKysLNvj999/H7PZnGdLZRERESlZWs4jIiJSgp5++mnuu+8+FixYwKhRo3jzzTfp3r07LVu2ZMSIEbZtfL29vZkyZYrtda+++iqrVq3izjvvZPTo0Tg5OfGf//yHjIwM3njjjRKp/cKFC7z66qv5jtesWZNBgwZx11138cYbb5CVlUWVKlVYuXIlf/755xXPN3jwYPr37w/AK6+8ku/5wr43AwYM4Nlnn6VPnz488cQTpKWl8f7771O7du18DVubNGnC6tWreeuttwgODqZmzZr5tofO5ezszHfffUfXrl2588476du3L23atMHDw4Nz586xbNkyTp8+Tc+ePQvz9tGrVy8+++wzvL29qV+/Plu2bGH16tVUrFixwPGZmZl07NiR+++/nyNHjvDee+9x5513cvfddxfqeiIiIlIM7Lk1kIiISFmUu0Xtjh078j2XnZ1tve2226y33XabbQvc1atXW1u3bm11c3Ozenl5WXv37m09ePBgvtfu2rXL2rVrV6unp6fV3d3d2r59e+vmzZsLde3c7X4vXLiQ5/iQIUOsHh4e17yntm3bWoECPzp27Gi1Wq3Ws2fPWvv06WP18fGxent7W++77z5rdHS0FcizdXGujIwMq6+vr9Xb29uanp5e4HUL+96sXLnS2rBhQ6uLi4u1Tp061s8//7zALY4PHz5sveuuu6xubm5WoFDbHScmJlqnTp1qbdSokdXT09Pq4uJirVatmrV///7WH374Ic/Yq/3ZJyQkWIcNG2atVKmS1dPT09q1a1fr4cOHrTVq1MhTR+45NmzYYB05cqTV19fX6unpaR00aFCe7Z6t1pwtjnv27JnvWm3bti3U1tUiIiJyfQxWq7qOiYiISMkzm80EBwfTu3dvPvroI3uXU2osWLCAYcOGsWPHDltjYhERESkd1BNFRERE7GLp0qVcuHCBwYMH27sUERERkUJRTxQREREpUdu2bWPv3r288sorNGrUiLZt29q7JBEREZFC0UwUERERKVHvv/8+jz/+OJUrV+bTTz+1dzkiIiIihaaeKCIiIiIiIiIihaCZKCIiIiIiIiIihaAQRURERERERESkEBSiiIiIiIiIiIgUgkIUEREREREREZFCUIgiIiIiIiIiIlIIClFERERERERERApBIYqIiIiIiIiISCEoRBERERERERERKQSFKCIiIiIiIiIihaAQRURERERERESkEBSiiIiIiIiIiIgUgkIUEREREREREZFCUIgiIiIiIiIiIlIIClFERERERERERApBIYqIiIiIiIiISCEoRBERERERERERKQSFKCIiIiIiIiIihaAQRURERERERESkEBSiiIiIiIiIiIgUgkIUEREREREREZFCUIgiIiIiIiIiIlIIClFERERERERERApBIYqIiIiIiIiISCEoRBERERERERERKQSFKCIiIiIiIiIiheBk7wJERERKM5M5m0RTFkkZZrIsFixWcDCAs4MD3q5O+BidMTo52rtMERERESkBClFERET+IcmUxYnENKJTTGRkWwAwFDDO+td/XR0dCPY0EurjjrfRucTqFBEREZGSZbBardZrDxMRESnbrFYr0SkZ/BGfQoIpCwP/C0kKI3e8n9GZ2/08CfZ0xWAoKHoRERERkVuVQhQRESn3TOZsdscmEZOacdPnyg1TgjxcaRToraU+IiIiImWIQhQRESnXzl5OZ1dsEtkW63XNPLkWA+DoYKBxoDdVK7gV4ZlFRERExF4UooiISLl1ND6FfRcuF/t1wv29qOXnUezXEREREZHipS2ORUSkXCqpAAVg74VkjsWnlsi1RERERKT4KEQREZFy5+zl9BILUHLtvZDM2cvpJXpNERERESlaClFERKRcMZmz2RWbZJdr74pNwmTOtsu1RUREROTmKUQREZFyw2q1svuvJrL2kG2xsvt8EmpHJiIiInJrUogiIiLlRnRKBjGpGUW6C8/1sAIxKRlEp9z8VsoiIiIiUvIUooiISLlxND7F3iVgKCV1iIiIiMj1U4giIiJl1vr16zEYDCQmJpJkyiLelHVD5xnVoTk/fvLhDdcRd/YM/eoG8+eh/ViBeFMWSRl5a1mwYAE+Pj6FPmdISAizZ8++4ZpERERE5Po52bsAEREpmwwGw1Wfnzx5MlOmTCmZYoATiWkYoMiX8ozq0JwL0Wev+Hy7e+/ngbFP5TlmAE4kpNEo0Nt27IEHHqBHjx5FXN2VtWvXjsjISAUxIiIiItdBIYqIiBSLmJgY2+dff/01kyZN4siRI7Zjnp6eJVpPdIqpWHqhvL7kJyzZOTvuHNm9kzefeIQ5P/2Gm2cFAFyMRlKT8u4GZP2rnkb8L0Rxc3PDzc2tGCoUERERkaKi5TwiIlIsAgMDbR/e3t4YDAbb49TUVAYNGkRAQACenp40a9aM1atX53l9SEgI06dP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iEhBFKKIiEi58u233wLQsGHDAp+3Wq3ExMRoKY+IiIiI5KMQRUREypUTJ04A0LNnzwKfv3z5MmlpaQpRRERERCQfhSgiIlJupKSkkJ2djbOz81WX8gBaziMiIiIi+ShEERGRciN3KU9ERMQVx8TExGA0GvH29i6pskRERETkFqEQRUREyo1Tp04B0LVr1yuOyW0qazAYSqosEREREblFKEQREZFyISUlBYvFgouLyxWX8kBOiKJ+KCIiIiJSEIUoIiJSLixevBiAxo0bX3FMeno6iYmJClFEREREpEAKUUREpFw4d+4cAB07drziGDWVFREREZGrUYgiIiLlQnZ2No6OjlddyhMTE4OzszMVK1YswcpERERE5FahEEVERMq87du3AxAQEHDVcbGxsQQEBODgoH8eRURERCQ/fZcoIiJl3pYtWwDo3LnzVcepqayIiIiIXI1CFBERKfOSkpIACAkJueKYrKwsLl68qBBFRERERK5IIYqIiJRpZrMZq9WKi4vLVcedP38eq9WqprIiIiIickUKUUREpExbuXIlADVr1rzquJiYGBwcHKhcuXJJlCUiIiIityCFKCIiUqYdOHAAgG7dul11XGxsLP7+/lfdvUdEREREyjeFKCIiUqalpaUB4OPjc9VxaiorIiIiIteiEEVERIrFyZMnmTdvnl1rSExMBMDd3f2q47Kzszl//rxCFBERERG5KoUoIiJSLEpDiLJixQoAwsLCrjru4sWLZGdnq6msiIiIiFyVQhQREeGDDz5g5MiRABw8eBCDwWBryDp16lSmTp3K0aNH6dmzJ82aNSM8PJy5c+cCkJ6ezgMPPED9+vWJiIigS5cuAIwaNYojR44QGRnJ3XffbZf7OnXqFACdOnW66rjY2FgAzUQRERERkatS9zwREaFTp0689tprAKxatYqWLVuyevVqunTpwqpVq3jttdd48MEH+fzzz6lbty5paWm0aNGCO+64g7Nnz5KYmMjBgwcBiI+PB2DevHmMHz+eqKgoe90WmZmZANdsFhsTE4Ofnx+urq4lUZaIiIiI3KI0E0VERAgNDQXgxIkTrF69mhkzZrB27VpSUlI4ePAgFSpU4MCBAwwYMIDIyEhatWrF5cuXOXjwIBERERw6dIjRo0fz9ddf4+zsbOe7yWE2mwEKFYyoqayIiIiIFIZmooiICJAzG+Wnn37i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X5/WrVvz+/5D+N1eH6+qITgbc/6+sVosGAwGjif8L0TL/bvB1dGBYE8joT7ueBud7VC5iIiIXA+FKCJSZpw4cYLWrVvj4+PD9OnTCQsLw9XVlX379vHBBx9QpUoV7r777hKpJTrFdM0AJVejNu0ZM/3tPMecXVyKrBbrX/U0yHTDpQjPK9fWvXt3jh49anv8z0ajAwcO5I033ijpsqSIWa1WolMycLw9kturNcgJTRz+N9k39/OC/k7IyLZwMimNP5PS8DM6c7ufJ8GerlraJSIiUkppOY+IlBmjR4/GycmJnTt3cv/991OvXj1CQ0O55557WL58Ob17977ia5999llq166Nu7s7oaGhvPTSS2Rl5V0C89prrxEQEECFChUYMWJEgf0t/vvf/1K3Xj36NKjBuO5t+PmLBdes28nFBV//ynk+PL19bM/3qxvM6sULeX3scB6MDGVM19bsWPsLAHFnzzB5SM4ygsHN69GvbjBzJo4HYNLD/fhw6vN8PH0SDzarR+cuXQB46623CAsLw8PDg2rVqjF69GhSUv7XN2XBggX4+Pjwyy+/UK9ePTw9PenWrRsxMTF56v74449p0KABrq6uBAUFMXbsWNtziYmJPPLII/j7++Pl5UWHDh3Ys2fPNd8LkVuNyZzN1nMJbItOIOGvJXx/D1AKIzdcSTBlsS06ga3nErTUR0REpJRSiCIiZcKlS5dYuXIlY8aMwcPDo8AxV/vNboUKFViwYAEHDx7knXfe4cMPP+Ttt/83O2TRokVMmTKF6dOns3PnToKCgnjvvffynGPhwoVMmjSJp1+czDsrNjDo/57jy3feZN13+ZfrXK9F775Fq269eev7NTS+qwOzJ4zlcmICFYOCefrf/wVgzk+/8d/fohj+wlTb69YvXYyTszPTvvieaW/9GwAHBwf+/e9/c+DAAT755BPWrl3LM888k+d6aWlpzJw5k88++4xff/2V06dPM2HCBNvz77//PmPGjGHkyJHs27ePZcuWUatWLdvz9913H3Fxcfz000/8/vvvNG7cmI4dOxIfH3/T70VZcfLkySv21JFbw9nL6az88wKxRbQLV26YEpuawco/L3D2cnqRnFdERESKjsFqtRZ2xrmISKm1bds2WrRowbfffkufPn1sxytVqmSbMTJmzBhef/11ICdQ+e6777j33nsLPN/MmTP56quv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skenT5zQrb26q4qPlVt2SsGmTZu0ZMkSOZ1ONW3aVP3792evFABAiaFEAQAAKCMbN27UkiVLNGLECMXExBgdp8LKzMzUF198ofT0dPn6+mr06NGqWrWq0bEAABUAtTwAAEAZuVic7N+/3+AkFVtAQIDGjx+vNm3aKDs7Wx9++KFWr15tdCwAQAVAiQIAAFBGgoKCZDKZdPz4caOjVAo9e/bUmDFj5OXlpTVr1uijjz6S3W43OhYAoByjRAEAAChDPj4+Sk9PNzpGpREeHq7HH39cDRs21IkTJ/Tee+8pOzvb6FgAgHKKEgUAAKAMBQcHy2azGR2jUjGbzbr99tvVuXNnnT9/Xu+//75OnTpVJnOvXr1aixcvLpO5AACljxIFAACgDNWoUUNOp1MnT540Okql06lTJ912222y2+366KOPymRvGkoUAKhYKFEAAADKUHR0tCQpOTnZ4CSVU3x8vO655x6ZTCZ99dVX+umnny47bsuWLeratatatGihpk2baubMmbLb7erVq5datGihxo0b64477tD58+clSXv37lW7du0UHx+v2NhY/eUvf1FiYqKmTJmiadOmKSEhQZMmTSrLSwUAlAIecQwAAFCGHA6HXnzxRUVFRenOO+80Ok6llZaWpo8//lh5eXlq166dunfvXvRZRkaGunTpooULFyo8PFxnzpxRs2bNtGHDBlmtVlWpUkVOp1Njx45V7dq19fTTT2vChAkKCwvTn//856LzBwcH6/nnn1dGRobee+89g64UAFCSLEYHAAAAqEzMZrM8PT115swZo6NUasHBwZo4caL+8Y9/aN26dUpPT9ewYcMkSevXr9eBAwfUp0+fYsckJydr5cqVWrBggex2uzIzM9W2bVtJUseOHfWnP/1J2dnZ6tSpU7FSBgBQcXA7DwAAQBkLCAjgCTEuwGq1asKECQoPD1dSUlLR+06nU40bN1ZiYmLRryNHjiglJUUrV67UmjVrtGvXLj3xxBNFmwQPGTJE69atU0xMjCZPnqz+/fsbdVkAgFJEiQIAAFDGwsLCVFhYqJycHKOjVHpms1ljxoxRVFRU0Xtt27bVwYMHtXz58qL3EhMTdfbsWVWtWlX+/v46d+6cPv/886LP9+7dq9DQUN1999164403tHHjRkmSv7+/MjMzy+x6AAClixIFAACgjNWtW1eS9OuvvxqcBBf9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FAAAAFQIXbp00T/+8Q9JUnp6uj788ENNmTJFmzdvVu3atSVJX3/9td555x0dPHhQOTk5KiwslKenpwoLC3Xq1CmdOXNG/v7+2rt3b1EhY7PZ5HA49N5776lOnTrasWOH/P39tWXLlqK5a9asqTxbrs6eSFFozdrXlLd2TMOir63e3vL29VPm2QuPR045uF/RsfHFxteLS7im8956/x/VZdDtcjqdOpNyTF+9MUmtWrXSO++8o/DwcKWnp8vDw6PYhrt79uyRxWIptmKlSpUqiomJ0Z49e4rG3HrrrcXmateund577z0VFhbKzc1NkvT222/r/Pnz2rp1qyIjI68pMwCUF5QoAAAAqBB8fHwUHR1d9PrTTz9VQECAPvnkE7300kvasGGD7r77br3wwgvq1auXAgICNH36dL399ttFt/MUFhbq8OHDmjBhgs6fP6+cnBydPHlSr732muLj4xUTE6M1a9bIbrcrODhYaWlpN5zXzfI/fxU3meRwXH5j2uvhHxSs8Np1JUnhtWpr6L0P6PWnHtM333yjqKgobd++XSaTSS+99JI8PDzk5eWlffv2yel0au3atYqOjlZERMQNbzTboUMHLViwQN98842efvrpm74eAHAllCgAAACokC4+cSY3N1eStH79etWuXVvPPPNM0ZjDhw9fctzRo0eVk5Oj6tWrS5IOHDggs9msESNGKCwsTDNmzNCOHTsUHx+vVatWSZKOHTsmT6tVVcOrl0j2iLpR2rZmZbH39u3acd3nMZvd1KJpM0lS3759FRcXp5ycHC1btkzh4eHKzs7W+fPnZTKZVFhYqC+//FK1atWSdGG/mZ9//ll9+/bV3r171aBBA61bt67Y+detW6f69esXrUKRpFatWmncuHHq3bu3LBaLnnjiievODQCuihIFAAAAFUJeXp5OnDgh6cLtPJMnT1Z2drYGDBggSapXr56OHDmi6dOnq2XLllqwYIHmzp17yXmsVqtGjx6tt956S1lZWRo/frxuv/12hYWFFY3Jz8/XK6+8oqioKGVkZGjVqlVq17nrpatLblDP4Xdp/ucf68u3XlK3ISN18JeftWrujAsfmkxXPDb3fLbST5+SnE6dOZGi795/TSEhIerRo4eqVKmihg0byt3dXQ888ECx4w4ePKi1a9fq4YcfVlZWlv7973/Lz89Pbm5u+vrrr+Xn56fp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P1e3bt0UGBio2bNn6/7775ckFRYWasaMGXr55ZclXXgqUu/evfXSSy/ps88+0+nTpzVu3DiNGzdOU6dOvYnfEaDiYCUKAAAAgArlzjvv1I8//qjDhw/r8OHDWrdune688065u7srJCREI0eO1AMPPKCffvpJH374od5++2098MADevnll+Xl5aVffvlFZrNZp06dUnBwsDIzM7Vjxw7t3btXFr8AFRYW6kzqcYXXjlTD5q1UrXoNNWx+izr0HyRJatCspSLqRmnNvFlFmVbOma42vfrLy8fnsplTDh1Q9bpRxd777JVnNapZtEY1i9aDnZoX+8zq7a0/vviWatWLUY3IaM2fO1sFBQUaNGiQ6tatq65du2ry5Mn68ssvdfLkSbm5uWnEiBH6+uv/roRZsWKFMjIyNGTIEEnSq6++qlGjRmnixImqV6+e2rZtq/fff1//+te/ZLPZSuT3BijvKFEAAAAAVCghISHq16+fPv/8c02dOlX9+vVT1apVi43Zv3+/CgoK1KFDB4WGhqpp06bq16+fOnXqpMDAQD3++ON65513lJycrNmzZ+vo0aMKCQlRtdAwmUwmdRl0uw7u+VmP9O6gf770FyX+uLrY+bsPvUMr58yQJGWcOa3ta1ep65CR13UdQx6aoLfmLtOwsY/KllP8lppa9RvI3cOj6PWJ48cUFhYmDw8PVatWTZLUrl07ORwOJScnS5JGjRql1atXKyXlwoqZadOmqV+/fgoMDJQk7dixQ59//rl8fX2LfvXq1UsOh0MHDx68ruxARUWJAgAAAKDCue+++/T555/riy++0H333XdD5+jTp48OHz6sxx9/vGiz2u++/Exms1mRjeP0jxUbNXLCn5SfZ9Pbjz6kN8c/WHRs51uH6uTRI0revlU/zJutatVrqVGLW353rvDadXX84P5i7wUEV1F47bryD656yXhPr/95lLPzv08LCgsLu+wcLVu2VFRUlKZPn67c3FzNnTtXo0aNKvo8Oztbf/jDH5SYmFj06+IKnKioqMueE6hs2BMFAAAAQIXTu3dv5efny2QyqVevS/cZiYqKkoeHh9atW6fatWtLkgoKCrRlyxZNnDixaFxISIhGjx6t0aNHq0OHDnr8iT/p1gn/J0ny9vVTu763ql3fW9W6Z3+99OAdOpeRLr/AIPkFBatV915aOWeGfk38SV0HD79i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1bdvX40aNUppaWmXnefhhx9WXl6efvjhB+3atUuvv/66fH19i43505/+pLfffltbtmxRSEiIBt12q+wFF/YgOXHkkF56cJRa9+ynt79brsfemaI92zbr0xf/r9g55n02RXViGumtuUs1bOzE373ur997XaOfek5vzFoss8Wivz/zWNFnP3w/R7OnvK+7Hn9Gb85erKrh1bX03/8q+jzjGvdo8fLykiTl5+f/7phnnnlGb7/9trZu3SqLxaL77ruv6LO1a9fq7rvv1oQJE5SUlKSPPvpIn3/+uV5++WVJ0uzZs/Xuu+/qo48+0t69e/Xtt98qNjb2mrLhUpQoAAAAAIAr6tKli9atWye73a5z585p+/bt6tSpkzp27Fi0QmXDhg3Ky8u7pES55557NHLkSEVHR+uVV15Rdna2Nm/efNl5jhw5onbt2ik2NlaRkZHq37+/OnbsWGzMc889px49eig2NlZffPGFTp86pc3LF0mS5nz8gTr0H6z+ox9URJ1INWjWUvc/86LWfDdL+Xn/vcWmSet2GnjfQwqrVUdhter87nXfMfEpNW7VRjWj62vQg+OUvH1r0XkWfvWZug4Zoa5DRiiibpRuf/gx1ap/YU8Vk6TMPPvvnveijIwMvfjii/L19VWrVq1+d9zLL7+sTp06qVGjRnr66ae1fv36otuoXnjhBT399NMaPXq0IiMj1aNHD7344ov66KOPir6nYWFh6t69u2rVqqVWrVrpwQcfvGo2XB4lCgAAAADgijp37qzz589ry5YtWrt2rerXr6+QkBB16tSpaF+U1atXKzIyUrVq1Sp2bFxcXNHXPj4+8vf316lTpy47z/jx4/XSSy+pXbt2eu6557Rz585LxrRp06bo6+DgYNWJitax/XslSYd+SdKqud9oVLPool8vPnCHHA6HTh07WnRcVJP4a7ru2jGNir4OCqkmSco8e0aSlHJwv+rFNS02Pjr2v68LHBduMTp+/Lg2bdokh+O/txy1bdtWvr6+CgoK0o4dOzRjxgyFhob+bo7ffg/Dw8Mlqeh7uGPHDk2aNEm+vr5Fvx588EGlpqYqJydHw4YNU25uriIjI/Xggw9q7ty5xTYJxvVhtxoAAAAAwBVFR0erRo0aWrVqldLT09WpUydJUkREhGrWrKn169dr1apV6tq16yXHuru7F3ttMpmKFQq/9cADD6hX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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "## Visualize the graph\n", + "\n", + "# Create a figure and axis\n", + "fig, ax = plt.subplots(figsize=(14, 10)) # Set the figure size as needed\n", + "\n", + "# Position nodes using a layout algorithm with adjusted parameters\n", + "pos = nx.spring_layout(G, k=1.5, iterations=200) # Adjust 'k' and 'iterations' as needed\n", + "\n", + "# Draw nodes and labels on the ax object\n", + "nx.draw_networkx_nodes(G, pos, node_color='lightblue', node_size=700, ax=ax)\n", + "node_labels = {node: G.nodes[node]['title'] for node in G.nodes()}\n", + "nx.draw_networkx_labels(G, pos, labels=node_labels, font_size=10, ax=ax)\n", + "\n", + "# Prepare edge data\n", + "edge_list = list(G.edges(keys=True, data=True))\n", + "edge_counts = {}\n", + "\n", + "# Count edges between nodes\n", + "for u, v, key, data in edge_list:\n", + " edge_counts[(u, v)] = edge_counts.get((u, v), 0) + 1\n", + "\n", + "# Draw edges with curvature and labels\n", + "for (u, v), count in edge_counts.items():\n", + " # Get all edges between u and v\n", + " edges = [(u, v2, k, d) for (u, v2, k, d) in edge_list if v2 == v]\n", + " num_edges = len(edges)\n", + " # Generate curvature values\n", + " if num_edges == 1:\n", + " rad_list = [0.0]\n", + " else:\n", + " rad_list = np.linspace(-0.5, 0.5, num_edges)\n", + "\n", + " for (u, v, key, data), rad in zip(edges, rad_list):\n", + " # Draw the edge with curvature\n", + " nx.draw_networkx_edges(\n", + " G, pos,\n", + " edgelist=[(u, v, key)],\n", + " connectionstyle=f'arc3,rad={rad}',\n", + " arrowsize=15,\n", + " edge_color='gray',\n", + " ax=ax\n", + " )\n", + " # Calculate label position\n", + " x1, y1 = pos[u]\n", + " x2, y2 = pos[v]\n", + " # Midpoint of the edge\n", + " xm, ym = (x1 + x2) / 2, (y1 + y2) / 2\n", + "\n", + " # Adjust label position based on curvature\n", + " dx, dy = x2 - x1, y2 - y1\n", + " angle = np.arctan2(dy, dx) + np.pi / 2\n", + " distance = 0.1 + abs(rad) * 0.05 # Introduce a base distance and adjust multiplier\n", + " label_x = xm + distance * np.cos(angle)\n", + " label_y = ym + distance * np.sin(angle)\n", + "\n", + " # Add the edge label using ax.text\n", + " label = data.get('direction', 'No Label') # Handle missing 'direction' key\n", + " ax.text(\n", + " label_x,\n", + " label_y,\n", + " label,\n", + " fontsize=8,\n", + " ha='center',\n", + " va='center',\n", + " bbox=dict(facecolor='white', edgecolor='none', pad=1)\n", + " )\n", + "\n", + "# Set plot title and remove axes\n", + "ax.set_title(\"Room Layout Graph\")\n", + "ax.axis('off') # Uncomment if axes are unnecessary\n", + "\n", + "# Display the plot\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0f53fd24-de16-4d69-a003-d7371ecf8872", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/requirements/editor-requirements.txt b/requirements/editor-requirements.txt new file mode 100644 index 0000000..f79fb36 --- /dev/null +++ b/requirements/editor-requirements.txt @@ -0,0 +1,107 @@ +#Required +jupyter==1.1.1 +networkx==3.4.1 +notebook==7.2.2 +numpy==2.1.2 +matplotlib==3.9.2 +pyyaml==6.0.2 +voila==0.5.7 + +#Dependancies +anyio==4.6.1 +argon2-cffi==23.1.0 +argon2-cffi-bindings==21.2.0 +arrow==1.3.0 +asttokens==2.4.1 +async-lru==2.0.4 +attrs==24.2.0 +babel==2.16.0 +beautifulsoup4==4.12.3 +bleach==6.1.0 +certifi==2024.8.30 +cffi==1.17.1 +charset-normalizer==3.4.0 +colorama==0.4.6 +comm==0.2.2 +debugpy==1.8.7 +decorator==5.1.1 +defusedxml==0.7.1 +exceptiongroup==1.2.2 +executing==2.1.0 +fastjsonschema==2.20.0 +fqdn==1.5.1 +h11==0.14.0 +httpcore==1.0.6 +httpx==0.27.2 +idna==3.10 +ipykernel==6.29.5 +ipython==8.28.0 +ipywidgets==8.1.5 +isoduration==20.11.0 +jedi==0.19.1 +jinja2==3.1.4 +json5==0.9.25 +jsonpointer==3.0.0 +jsonschema==4.23.0 +jsonschema-specifications==2023.12.1 +jupyter-client==8.6.3 +jupyter-console==6.6.3 +jupyter-core==5.7.2 +jupyter-events==0.10.0 +jupyter-lsp==2.2.5 +jupyter-server==2.14.2 +jupyter-server-terminals==0.5.3 +jupyterlab==4.2.5 +jupyterlab-pygments==0.3.0 +jupyterlab-server==2.27.3 +jupyterlab-widgets==3.0.13 +markupsafe==3.0.1 +matplotlib-inline==0.1.7 +mistune==3.0.2 +nbclient==0.10.0 +nbconvert==7.16.4 +nbformat==5.10.4 +nest-asyncio==1.6.0 +notebook-shim==0.2.4 +overrides==7.7.0 +packaging==24.1 +pandocfilters==1.5.1 +parso==0.8.4 +platformdirs==4.3.6 +prometheus-client==0.21.0 +prompt-toolkit==3.0.48 +psutil==6.0.0 +pure-eval==0.2.3 +pycparser==2.22 +pygments==2.18.0 +python-dateutil==2.9.0.post0 +python-json-logger==2.0.7 +pywin32==308 +pywinpty==2.0.13 +pyzmq==26.2.0 +referencing==0.31.1 +requests==2.32.3 +rfc3339-validator==0.1.4 +rfc3986-validator==0.1.1 +rpds-py==0.20.0 +send2trash==1.8.3 +setuptools==75.1.0 +six==1.16.0 +sniffio==1.3.1 +soupsieve==2.6 +stack-data==0.6.3 +terminado==0.18.1 +tinycss2==1.3.0 +tomli==2.0.2 +tornado==6.4.1 +traitlets==5.14.3 +types-python-dateutil==2.9.0.20241003 +typing-extensions==4.12.2 +uri-template==1.3.0 +urllib3==2.2.3 +wcwidth==0.2.13 +webcolors==24.8.0 +webencodings==0.5.1 +websocket-client==1.8.0 +websockets==13.1 +widgetsnbextension==4.0.13 \ No newline at end of file diff --git a/requirements/scripts-requirements.txt b/requirements/scripts-requirements.txt index e6c558c..e796a64 100644 --- a/requirements/scripts-requirements.txt +++ b/requirements/scripts-requirements.txt @@ -1,5 +1,7 @@ +# Required PyYAML==6.0.2 boto3==1.35.40 botocore==1.35.40 s3transfer==0.10.3 +