ivoryos 0.1.9__py3-none-any.whl → 0.1.10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ivoryos might be problematic. Click here for more details.

Files changed (37) hide show
  1. ivoryos/__init__.py +118 -99
  2. ivoryos/config.py +47 -47
  3. ivoryos/routes/auth/auth.py +100 -65
  4. ivoryos/routes/auth/templates/auth/login.html +25 -25
  5. ivoryos/routes/auth/templates/auth/signup.html +32 -32
  6. ivoryos/routes/control/control.py +400 -272
  7. ivoryos/routes/control/templates/control/controllers.html +75 -75
  8. ivoryos/routes/control/templates/control/controllers_home.html +50 -50
  9. ivoryos/routes/control/templates/control/controllers_new.html +89 -89
  10. ivoryos/routes/database/database.py +188 -114
  11. ivoryos/routes/database/templates/database/experiment_database.html +72 -72
  12. ivoryos/routes/design/design.py +541 -416
  13. ivoryos/routes/design/templates/design/experiment_builder.html +415 -415
  14. ivoryos/routes/design/templates/design/experiment_run.html +325 -325
  15. ivoryos/routes/main/main.py +42 -25
  16. ivoryos/routes/main/templates/main/help.html +141 -141
  17. ivoryos/routes/main/templates/main/home.html +68 -68
  18. ivoryos/static/.DS_Store +0 -0
  19. ivoryos/static/js/overlay.js +12 -12
  20. ivoryos/static/js/socket_handler.js +34 -34
  21. ivoryos/static/js/sortable_card.js +24 -24
  22. ivoryos/static/js/sortable_design.js +36 -36
  23. ivoryos/static/style.css +201 -201
  24. ivoryos/templates/base.html +143 -143
  25. ivoryos/utils/db_models.py +518 -518
  26. ivoryos/utils/form.py +316 -316
  27. ivoryos/utils/global_config.py +67 -67
  28. ivoryos/utils/llm_agent.py +183 -183
  29. ivoryos/utils/script_runner.py +165 -164
  30. ivoryos/utils/utils.py +425 -422
  31. ivoryos/version.py +1 -0
  32. {ivoryos-0.1.9.dist-info → ivoryos-0.1.10.dist-info}/LICENSE +21 -21
  33. {ivoryos-0.1.9.dist-info → ivoryos-0.1.10.dist-info}/METADATA +170 -169
  34. ivoryos-0.1.10.dist-info/RECORD +47 -0
  35. {ivoryos-0.1.9.dist-info → ivoryos-0.1.10.dist-info}/WHEEL +1 -1
  36. ivoryos-0.1.9.dist-info/RECORD +0 -45
  37. {ivoryos-0.1.9.dist-info → ivoryos-0.1.10.dist-info}/top_level.txt +0 -0
@@ -1,144 +1,144 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <title>{% block title %}{% endblock %}</title>
7
- {#bootstrap#}
8
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/css/bootstrap.min.css" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous">
9
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css">
10
- <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
11
- {#static#}
12
- <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
13
- <link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon">
14
- {#for python code displaying#}
15
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css">
16
- <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script>
17
- <script>hljs.highlightAll();</script>
18
- {#drag design#}
19
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
20
- {#drag card#}
21
- <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
22
- </head>
23
- <body>
24
- <nav class="navbar navbar-expand-lg navbar-light bg-light fixed-top">
25
- <div class= "container">
26
-
27
- <a class="navbar-brand" href="{{ url_for('main.index') }}">
28
- <img src="{{url_for('static', filename='logo.webp')}}" alt="Logo" height="60" class="d-inline-block align-text-bottom">
29
- </a>
30
- <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
31
- <span class="navbar-toggler-icon"></span>
32
- </button>
33
-
34
- <div class="collapse navbar-collapse" id="navbarSupportedContent">
35
- <ul class="navbar-nav mr-auto">
36
- <li class="nav-item">
37
- <a class="nav-link" href="{{ url_for('main.index') }}" aria-current="page">Home</a>
38
- </li>
39
- <li class="nav-item">
40
- <a class="nav-link" href="{{ url_for('database.load_from_database') }}" aria-current="page">Library</a>
41
- </li>
42
- <li class="nav-item">
43
- <a class="nav-link" href="{{ url_for('design.experiment_builder') }}">Design</a>
44
- </li>
45
- <li class="nav-item">
46
- <a class="nav-link" href="{{ url_for('design.experiment_run') }}">Compile/Run</a>
47
- </li>
48
- <li class="nav-item">
49
- <a class="nav-link" href="{{ url_for('control.deck_controllers') }}">Devices</a></li>
50
- </li>
51
- <li class="nav-item">
52
- <a class="nav-link" href="{{ url_for('control.controllers_home') }}">Temp Devices</a></li>
53
- </li>
54
- <li class="nav-item">
55
- <a class="nav-link" href="{{ url_for('main.help_info') }}">About</a>
56
- </li>
57
- </ul>
58
- <ul class="navbar-nav ms-auto">
59
-
60
- {% if session["user"] %}
61
- <div class="dropdown">
62
- <li class="nav-item " aria-expanded="false"><i class="bi bi-person-circle"></i> {{ session["user"] }}</li>
63
- <ul class="dropdown-menu">
64
- <li><a class="dropdown-item" href="{{ url_for("auth.logout") }}" role="button" aria-expanded="false">Logout</a></li>
65
- </ul>
66
-
67
- </div>
68
- {% else %}
69
- <li class="nav-item">
70
- <a class="nav-link" href="{{ url_for("auth.login") }}">Login</a>
71
- </li>
72
- {% endif %}
73
- {# <li class="nav-item">#}
74
- {# <a class="nav-link"href="{{ url_for("signup") }}">Signup</a>#}
75
- {# </li>#}
76
- </ul>
77
- </div>
78
- </div>
79
- </nav>
80
-
81
- <div class= "container">
82
- <div class="flash">
83
- {% with messages = get_flashed_messages() %}
84
- {% if messages %}
85
- <div class="alert alert-warning">
86
- Message:
87
- {% for message in messages %}
88
- <div >
89
- {{ message|safe }}
90
- </div>
91
- {% endfor %}
92
- </div>
93
- {% endif %}
94
- {% endwith %}
95
- </div>
96
- {% block body %}{% endblock %}
97
- </div>
98
-
99
- <div class="modal fade" id="importModal" tabindex="-1" aria-labelledby="importModal" aria-hidden="true" >
100
- <div class="modal-dialog">
101
- <div class="modal-content">
102
- <div class="modal-header">
103
- <h1 class="modal-title fs-5" id="importModal">Import deck by file path</h1>
104
- <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
105
- </div>
106
- <form method="POST" action="{{ url_for('control.import_deck') }}" enctype="multipart/form-data">
107
- <div class="modal-body">
108
- <h5>from connection history</h5>
109
- <div class="form-group">
110
- <select class="form-select" name="filepath">
111
- <option disabled selected value> -- select an option -- </option>
112
- {% for connection in history %}
113
- <option style="overflow-wrap: break-word;" name="filepath" id="filepath" value="{{connection}}">{{connection}}</option>
114
- {% endfor %}
115
- {# <option>clear history</option>#}
116
- </select>
117
- </div>
118
- <h5>input manually</h5>
119
- <div class="input-group mb-3">
120
- <label class="input-group-text" for="filepath">File Path:</label>
121
- <input type="text" class="form-control" name="filepath" id="filepath">
122
- </div>
123
- <div class="input-group mb-3">
124
- <div class="form-check">
125
- <input type="checkbox" class="form-check-input" id="update" name="update" value="update">
126
- <label class="form-check-label" for="update">Update editor config</label>
127
- </div>
128
- </div>
129
-
130
- <div class="modal-footer">
131
- <div class="form-check">
132
- <input type="checkbox" class="form-check-input" id="dismiss" name="dismiss" value="dismiss">
133
- <label class="form-check-label" for="dismiss">Don't remind me</label>
134
- </div>
135
- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal"> Close </button>
136
- <button type="submit" class="btn btn-primary"> Save </button>
137
- </div>
138
- </div>
139
- </form>
140
- </div>
141
- </div>
142
- </div>
143
- </body>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>{% block title %}{% endblock %}</title>
7
+ {#bootstrap#}
8
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/css/bootstrap.min.css" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous">
9
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css">
10
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
11
+ {#static#}
12
+ <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
13
+ <link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon">
14
+ {#for python code displaying#}
15
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css">
16
+ <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script>
17
+ <script>hljs.highlightAll();</script>
18
+ {#drag design#}
19
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
20
+ {#drag card#}
21
+ <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
22
+ </head>
23
+ <body>
24
+ <nav class="navbar navbar-expand-lg navbar-light bg-light fixed-top">
25
+ <div class= "container">
26
+
27
+ <a class="navbar-brand" href="{{ url_for('main.index') }}">
28
+ <img src="{{url_for('static', filename='logo.webp')}}" alt="Logo" height="60" class="d-inline-block align-text-bottom">
29
+ </a>
30
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
31
+ <span class="navbar-toggler-icon"></span>
32
+ </button>
33
+
34
+ <div class="collapse navbar-collapse" id="navbarSupportedContent">
35
+ <ul class="navbar-nav mr-auto">
36
+ <li class="nav-item">
37
+ <a class="nav-link" href="{{ url_for('main.index') }}" aria-current="page">Home</a>
38
+ </li>
39
+ <li class="nav-item">
40
+ <a class="nav-link" href="{{ url_for('database.load_from_database') }}" aria-current="page">Library</a>
41
+ </li>
42
+ <li class="nav-item">
43
+ <a class="nav-link" href="{{ url_for('design.experiment_builder') }}">Design</a>
44
+ </li>
45
+ <li class="nav-item">
46
+ <a class="nav-link" href="{{ url_for('design.experiment_run') }}">Compile/Run</a>
47
+ </li>
48
+ <li class="nav-item">
49
+ <a class="nav-link" href="{{ url_for('control.deck_controllers') }}">Devices</a></li>
50
+ </li>
51
+ <li class="nav-item">
52
+ <a class="nav-link" href="{{ url_for('control.controllers_home') }}">Temp Devices</a></li>
53
+ </li>
54
+ <li class="nav-item">
55
+ <a class="nav-link" href="{{ url_for('main.help_info') }}">About</a>
56
+ </li>
57
+ </ul>
58
+ <ul class="navbar-nav ms-auto">
59
+
60
+ {% if session["user"] %}
61
+ <div class="dropdown">
62
+ <li class="nav-item " aria-expanded="false"><i class="bi bi-person-circle"></i> {{ session["user"] }}</li>
63
+ <ul class="dropdown-menu">
64
+ <li><a class="dropdown-item" href="{{ url_for("auth.logout") }}" role="button" aria-expanded="false">Logout</a></li>
65
+ </ul>
66
+
67
+ </div>
68
+ {% else %}
69
+ <li class="nav-item">
70
+ <a class="nav-link" href="{{ url_for("auth.login") }}">Login</a>
71
+ </li>
72
+ {% endif %}
73
+ {# <li class="nav-item">#}
74
+ {# <a class="nav-link"href="{{ url_for("signup") }}">Signup</a>#}
75
+ {# </li>#}
76
+ </ul>
77
+ </div>
78
+ </div>
79
+ </nav>
80
+
81
+ <div class= "container">
82
+ <div class="flash">
83
+ {% with messages = get_flashed_messages() %}
84
+ {% if messages %}
85
+ <div class="alert alert-warning">
86
+ Message:
87
+ {% for message in messages %}
88
+ <div >
89
+ {{ message|safe }}
90
+ </div>
91
+ {% endfor %}
92
+ </div>
93
+ {% endif %}
94
+ {% endwith %}
95
+ </div>
96
+ {% block body %}{% endblock %}
97
+ </div>
98
+
99
+ <div class="modal fade" id="importModal" tabindex="-1" aria-labelledby="importModal" aria-hidden="true" >
100
+ <div class="modal-dialog">
101
+ <div class="modal-content">
102
+ <div class="modal-header">
103
+ <h1 class="modal-title fs-5" id="importModal">Import deck by file path</h1>
104
+ <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
105
+ </div>
106
+ <form method="POST" action="{{ url_for('control.import_deck') }}" enctype="multipart/form-data">
107
+ <div class="modal-body">
108
+ <h5>from connection history</h5>
109
+ <div class="form-group">
110
+ <select class="form-select" name="filepath">
111
+ <option disabled selected value> -- select an option -- </option>
112
+ {% for connection in history %}
113
+ <option style="overflow-wrap: break-word;" name="filepath" id="filepath" value="{{connection}}">{{connection}}</option>
114
+ {% endfor %}
115
+ {# <option>clear history</option>#}
116
+ </select>
117
+ </div>
118
+ <h5>input manually</h5>
119
+ <div class="input-group mb-3">
120
+ <label class="input-group-text" for="filepath">File Path:</label>
121
+ <input type="text" class="form-control" name="filepath" id="filepath">
122
+ </div>
123
+ <div class="input-group mb-3">
124
+ <div class="form-check">
125
+ <input type="checkbox" class="form-check-input" id="update" name="update" value="update">
126
+ <label class="form-check-label" for="update">Update editor config</label>
127
+ </div>
128
+ </div>
129
+
130
+ <div class="modal-footer">
131
+ <div class="form-check">
132
+ <input type="checkbox" class="form-check-input" id="dismiss" name="dismiss" value="dismiss">
133
+ <label class="form-check-label" for="dismiss">Don't remind me</label>
134
+ </div>
135
+ <button type="button" class="btn btn-secondary" data-bs-dismiss="modal"> Close </button>
136
+ <button type="submit" class="btn btn-primary"> Save </button>
137
+ </div>
138
+ </div>
139
+ </form>
140
+ </div>
141
+ </div>
142
+ </div>
143
+ </body>
144
144
  </html>