llms-py 3.0.0__py3-none-any.whl → 3.0.0b2__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.
Files changed (195) hide show
  1. llms/__pycache__/main.cpython-314.pyc +0 -0
  2. llms/index.html +37 -26
  3. llms/llms.json +21 -70
  4. llms/main.py +731 -1426
  5. llms/providers.json +1 -1
  6. llms/{extensions/analytics/ui/index.mjs → ui/Analytics.mjs} +238 -154
  7. llms/ui/App.mjs +63 -133
  8. llms/ui/Avatar.mjs +86 -0
  9. llms/ui/Brand.mjs +52 -0
  10. llms/ui/ChatPrompt.mjs +597 -0
  11. llms/ui/Main.mjs +862 -0
  12. llms/ui/OAuthSignIn.mjs +61 -0
  13. llms/ui/ProviderIcon.mjs +36 -0
  14. llms/ui/ProviderStatus.mjs +104 -0
  15. llms/{extensions/app/ui → ui}/Recents.mjs +57 -82
  16. llms/ui/{modules/chat/SettingsDialog.mjs → SettingsDialog.mjs} +9 -9
  17. llms/{extensions/app/ui/index.mjs → ui/Sidebar.mjs} +57 -122
  18. llms/ui/SignIn.mjs +65 -0
  19. llms/ui/Welcome.mjs +8 -0
  20. llms/ui/ai.mjs +13 -117
  21. llms/ui/app.css +49 -1776
  22. llms/ui/index.mjs +171 -87
  23. llms/ui/lib/charts.mjs +13 -9
  24. llms/ui/lib/servicestack-vue.mjs +3 -3
  25. llms/ui/lib/vue.min.mjs +9 -10
  26. llms/ui/lib/vue.mjs +1602 -1763
  27. llms/ui/markdown.mjs +2 -10
  28. llms/ui/model-selector.mjs +686 -0
  29. llms/ui/tailwind.input.css +1 -55
  30. llms/ui/threadStore.mjs +583 -0
  31. llms/ui/utils.mjs +118 -113
  32. llms/ui.json +1069 -0
  33. {llms_py-3.0.0.dist-info → llms_py-3.0.0b2.dist-info}/METADATA +1 -1
  34. llms_py-3.0.0b2.dist-info/RECORD +58 -0
  35. llms/extensions/app/README.md +0 -20
  36. llms/extensions/app/__init__.py +0 -530
  37. llms/extensions/app/__pycache__/__init__.cpython-314.pyc +0 -0
  38. llms/extensions/app/__pycache__/db.cpython-314.pyc +0 -0
  39. llms/extensions/app/__pycache__/db_manager.cpython-314.pyc +0 -0
  40. llms/extensions/app/db.py +0 -644
  41. llms/extensions/app/db_manager.py +0 -195
  42. llms/extensions/app/requests.json +0 -9073
  43. llms/extensions/app/threads.json +0 -15290
  44. llms/extensions/app/ui/threadStore.mjs +0 -411
  45. llms/extensions/core_tools/CALCULATOR.md +0 -32
  46. llms/extensions/core_tools/__init__.py +0 -598
  47. llms/extensions/core_tools/__pycache__/__init__.cpython-314.pyc +0 -0
  48. llms/extensions/core_tools/ui/codemirror/addon/edit/closebrackets.js +0 -201
  49. llms/extensions/core_tools/ui/codemirror/addon/edit/closetag.js +0 -185
  50. llms/extensions/core_tools/ui/codemirror/addon/edit/continuelist.js +0 -101
  51. llms/extensions/core_tools/ui/codemirror/addon/edit/matchbrackets.js +0 -160
  52. llms/extensions/core_tools/ui/codemirror/addon/edit/matchtags.js +0 -66
  53. llms/extensions/core_tools/ui/codemirror/addon/edit/trailingspace.js +0 -27
  54. llms/extensions/core_tools/ui/codemirror/addon/selection/active-line.js +0 -72
  55. llms/extensions/core_tools/ui/codemirror/addon/selection/mark-selection.js +0 -119
  56. llms/extensions/core_tools/ui/codemirror/addon/selection/selection-pointer.js +0 -98
  57. llms/extensions/core_tools/ui/codemirror/doc/docs.css +0 -225
  58. llms/extensions/core_tools/ui/codemirror/doc/source_sans.woff +0 -0
  59. llms/extensions/core_tools/ui/codemirror/lib/codemirror.css +0 -344
  60. llms/extensions/core_tools/ui/codemirror/lib/codemirror.js +0 -9884
  61. llms/extensions/core_tools/ui/codemirror/mode/clike/clike.js +0 -942
  62. llms/extensions/core_tools/ui/codemirror/mode/javascript/index.html +0 -118
  63. llms/extensions/core_tools/ui/codemirror/mode/javascript/javascript.js +0 -962
  64. llms/extensions/core_tools/ui/codemirror/mode/javascript/typescript.html +0 -62
  65. llms/extensions/core_tools/ui/codemirror/mode/python/python.js +0 -402
  66. llms/extensions/core_tools/ui/codemirror/theme/dracula.css +0 -40
  67. llms/extensions/core_tools/ui/codemirror/theme/mocha.css +0 -135
  68. llms/extensions/core_tools/ui/index.mjs +0 -650
  69. llms/extensions/gallery/README.md +0 -61
  70. llms/extensions/gallery/__init__.py +0 -61
  71. llms/extensions/gallery/__pycache__/__init__.cpython-314.pyc +0 -0
  72. llms/extensions/gallery/__pycache__/db.cpython-314.pyc +0 -0
  73. llms/extensions/gallery/db.py +0 -298
  74. llms/extensions/gallery/ui/index.mjs +0 -482
  75. llms/extensions/katex/README.md +0 -39
  76. llms/extensions/katex/__init__.py +0 -6
  77. llms/extensions/katex/__pycache__/__init__.cpython-314.pyc +0 -0
  78. llms/extensions/katex/ui/README.md +0 -125
  79. llms/extensions/katex/ui/contrib/auto-render.js +0 -338
  80. llms/extensions/katex/ui/contrib/auto-render.min.js +0 -1
  81. llms/extensions/katex/ui/contrib/auto-render.mjs +0 -244
  82. llms/extensions/katex/ui/contrib/copy-tex.js +0 -127
  83. llms/extensions/katex/ui/contrib/copy-tex.min.js +0 -1
  84. llms/extensions/katex/ui/contrib/copy-tex.mjs +0 -105
  85. llms/extensions/katex/ui/contrib/mathtex-script-type.js +0 -109
  86. llms/extensions/katex/ui/contrib/mathtex-script-type.min.js +0 -1
  87. llms/extensions/katex/ui/contrib/mathtex-script-type.mjs +0 -24
  88. llms/extensions/katex/ui/contrib/mhchem.js +0 -3213
  89. llms/extensions/katex/ui/contrib/mhchem.min.js +0 -1
  90. llms/extensions/katex/ui/contrib/mhchem.mjs +0 -3109
  91. llms/extensions/katex/ui/contrib/render-a11y-string.js +0 -887
  92. llms/extensions/katex/ui/contrib/render-a11y-string.min.js +0 -1
  93. llms/extensions/katex/ui/contrib/render-a11y-string.mjs +0 -800
  94. llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.ttf +0 -0
  95. llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff +0 -0
  96. llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  97. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  98. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  99. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  100. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  101. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  102. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  103. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  104. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  105. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  106. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  107. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  108. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  109. llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.ttf +0 -0
  110. llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff +0 -0
  111. llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff2 +0 -0
  112. llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  113. llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  114. llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  115. llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.ttf +0 -0
  116. llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff +0 -0
  117. llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff2 +0 -0
  118. llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.ttf +0 -0
  119. llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff +0 -0
  120. llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff2 +0 -0
  121. llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  122. llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  123. llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  124. llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.ttf +0 -0
  125. llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff +0 -0
  126. llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff2 +0 -0
  127. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  128. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  129. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  130. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  131. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  132. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  133. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  134. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  135. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  136. llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.ttf +0 -0
  137. llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff +0 -0
  138. llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff2 +0 -0
  139. llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.ttf +0 -0
  140. llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff +0 -0
  141. llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  142. llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.ttf +0 -0
  143. llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff +0 -0
  144. llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  145. llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.ttf +0 -0
  146. llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff +0 -0
  147. llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  148. llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.ttf +0 -0
  149. llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff +0 -0
  150. llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  151. llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  152. llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  153. llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  154. llms/extensions/katex/ui/index.mjs +0 -92
  155. llms/extensions/katex/ui/katex-swap.css +0 -1230
  156. llms/extensions/katex/ui/katex-swap.min.css +0 -1
  157. llms/extensions/katex/ui/katex.css +0 -1230
  158. llms/extensions/katex/ui/katex.js +0 -19080
  159. llms/extensions/katex/ui/katex.min.css +0 -1
  160. llms/extensions/katex/ui/katex.min.js +0 -1
  161. llms/extensions/katex/ui/katex.min.mjs +0 -1
  162. llms/extensions/katex/ui/katex.mjs +0 -18547
  163. llms/extensions/providers/__init__.py +0 -18
  164. llms/extensions/providers/__pycache__/__init__.cpython-314.pyc +0 -0
  165. llms/extensions/providers/__pycache__/anthropic.cpython-314.pyc +0 -0
  166. llms/extensions/providers/__pycache__/chutes.cpython-314.pyc +0 -0
  167. llms/extensions/providers/__pycache__/google.cpython-314.pyc +0 -0
  168. llms/extensions/providers/__pycache__/nvidia.cpython-314.pyc +0 -0
  169. llms/extensions/providers/__pycache__/openai.cpython-314.pyc +0 -0
  170. llms/extensions/providers/__pycache__/openrouter.cpython-314.pyc +0 -0
  171. llms/extensions/providers/anthropic.py +0 -229
  172. llms/extensions/providers/chutes.py +0 -155
  173. llms/extensions/providers/google.py +0 -378
  174. llms/extensions/providers/nvidia.py +0 -105
  175. llms/extensions/providers/openai.py +0 -156
  176. llms/extensions/providers/openrouter.py +0 -72
  177. llms/extensions/system_prompts/README.md +0 -22
  178. llms/extensions/system_prompts/__init__.py +0 -45
  179. llms/extensions/system_prompts/__pycache__/__init__.cpython-314.pyc +0 -0
  180. llms/extensions/system_prompts/ui/index.mjs +0 -280
  181. llms/extensions/system_prompts/ui/prompts.json +0 -1067
  182. llms/extensions/tools/__init__.py +0 -5
  183. llms/extensions/tools/__pycache__/__init__.cpython-314.pyc +0 -0
  184. llms/extensions/tools/ui/index.mjs +0 -204
  185. llms/providers-extra.json +0 -356
  186. llms/ui/ctx.mjs +0 -365
  187. llms/ui/modules/chat/ChatBody.mjs +0 -691
  188. llms/ui/modules/chat/index.mjs +0 -828
  189. llms/ui/modules/layout.mjs +0 -243
  190. llms/ui/modules/model-selector.mjs +0 -851
  191. llms_py-3.0.0.dist-info/RECORD +0 -202
  192. {llms_py-3.0.0.dist-info → llms_py-3.0.0b2.dist-info}/WHEEL +0 -0
  193. {llms_py-3.0.0.dist-info → llms_py-3.0.0b2.dist-info}/entry_points.txt +0 -0
  194. {llms_py-3.0.0.dist-info → llms_py-3.0.0b2.dist-info}/licenses/LICENSE +0 -0
  195. {llms_py-3.0.0.dist-info → llms_py-3.0.0b2.dist-info}/top_level.txt +0 -0
@@ -1,62 +0,0 @@
1
- <!doctype html>
2
-
3
- <title>CodeMirror: TypeScript mode</title>
4
- <meta charset="utf-8"/>
5
- <link rel=stylesheet href="../../doc/docs.css">
6
-
7
- <link rel="stylesheet" href="../../lib/codemirror.css">
8
- <script src="../../lib/codemirror.js"></script>
9
- <script src="../../addon/edit/matchbrackets.js"></script>
10
- <script src="javascript.js"></script>
11
- <style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
12
- <div id=nav>
13
- <a href="https://codemirror.net/5"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png" alt=""></a>
14
-
15
- <ul>
16
- <li><a href="../../index.html">Home</a>
17
- <li><a href="../../doc/manual.html">Manual</a>
18
- <li><a href="https://github.com/codemirror/codemirror5">Code</a>
19
- </ul>
20
- <ul>
21
- <li><a href="../index.html">Language modes</a>
22
- <li><a class=active href="#">TypeScript</a>
23
- </ul>
24
- </div>
25
-
26
- <article>
27
- <h2>TypeScript mode</h2>
28
-
29
-
30
- <div><textarea id="code" name="code">
31
- class Greeter {
32
- greeting: string;
33
- constructor (message: string) {
34
- this.greeting = message;
35
- }
36
- greet() {
37
- return "Hello, " + this.greeting;
38
- }
39
- }
40
-
41
- var greeter = new Greeter("world");
42
-
43
- var button = document.createElement('button')
44
- button.innerText = "Say Hello"
45
- button.onclick = function() {
46
- alert(greeter.greet())
47
- }
48
-
49
- document.body.appendChild(button)
50
-
51
- </textarea></div>
52
-
53
- <script>
54
- var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
55
- lineNumbers: true,
56
- matchBrackets: true,
57
- mode: "text/typescript"
58
- });
59
- </script>
60
-
61
- <p>This is a specialization of the <a href="index.html">JavaScript mode</a>.</p>
62
- </article>
@@ -1,402 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: https://codemirror.net/5/LICENSE
3
-
4
- (function(mod) {
5
- if (typeof exports == "object" && typeof module == "object") // CommonJS
6
- mod(require("../../lib/codemirror"));
7
- else if (typeof define == "function" && define.amd) // AMD
8
- define(["../../lib/codemirror"], mod);
9
- else // Plain browser env
10
- mod(CodeMirror);
11
- })(function(CodeMirror) {
12
- "use strict";
13
-
14
- function wordRegexp(words) {
15
- return new RegExp("^((" + words.join(")|(") + "))\\b");
16
- }
17
-
18
- var wordOperators = wordRegexp(["and", "or", "not", "is"]);
19
- var commonKeywords = ["as", "assert", "break", "class", "continue",
20
- "def", "del", "elif", "else", "except", "finally",
21
- "for", "from", "global", "if", "import",
22
- "lambda", "pass", "raise", "return",
23
- "try", "while", "with", "yield", "in", "False", "True"];
24
- var commonBuiltins = ["abs", "all", "any", "bin", "bool", "bytearray", "callable", "chr",
25
- "classmethod", "compile", "complex", "delattr", "dict", "dir", "divmod",
26
- "enumerate", "eval", "filter", "float", "format", "frozenset",
27
- "getattr", "globals", "hasattr", "hash", "help", "hex", "id",
28
- "input", "int", "isinstance", "issubclass", "iter", "len",
29
- "list", "locals", "map", "max", "memoryview", "min", "next",
30
- "object", "oct", "open", "ord", "pow", "property", "range",
31
- "repr", "reversed", "round", "set", "setattr", "slice",
32
- "sorted", "staticmethod", "str", "sum", "super", "tuple",
33
- "type", "vars", "zip", "__import__", "NotImplemented",
34
- "Ellipsis", "__debug__"];
35
- CodeMirror.registerHelper("hintWords", "python", commonKeywords.concat(commonBuiltins).concat(["exec", "print"]));
36
-
37
- function top(state) {
38
- return state.scopes[state.scopes.length - 1];
39
- }
40
-
41
- CodeMirror.defineMode("python", function(conf, parserConf) {
42
- var ERRORCLASS = "error";
43
-
44
- var delimiters = parserConf.delimiters || parserConf.singleDelimiters || /^[\(\)\[\]\{\}@,:`=;\.\\]/;
45
- // (Backwards-compatibility with old, cumbersome config system)
46
- var operators = [parserConf.singleOperators, parserConf.doubleOperators, parserConf.doubleDelimiters, parserConf.tripleDelimiters,
47
- parserConf.operators || /^([-+*/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@]|\.\.\.)/]
48
- for (var i = 0; i < operators.length; i++) if (!operators[i]) operators.splice(i--, 1)
49
-
50
- var hangingIndent = parserConf.hangingIndent || conf.indentUnit;
51
-
52
- var myKeywords = commonKeywords, myBuiltins = commonBuiltins;
53
- if (parserConf.extra_keywords != undefined)
54
- myKeywords = myKeywords.concat(parserConf.extra_keywords);
55
-
56
- if (parserConf.extra_builtins != undefined)
57
- myBuiltins = myBuiltins.concat(parserConf.extra_builtins);
58
-
59
- var py3 = !(parserConf.version && Number(parserConf.version) < 3)
60
- if (py3) {
61
- // since http://legacy.python.org/dev/peps/pep-0465/ @ is also an operator
62
- var identifiers = parserConf.identifiers|| /^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*/;
63
- myKeywords = myKeywords.concat(["nonlocal", "None", "aiter", "anext", "async", "await", "breakpoint", "match", "case"]);
64
- myBuiltins = myBuiltins.concat(["ascii", "bytes", "exec", "print"]);
65
- var stringPrefixes = new RegExp("^(([rbuf]|(br)|(rb)|(fr)|(rf))?('{3}|\"{3}|['\"]))", "i");
66
- } else {
67
- var identifiers = parserConf.identifiers|| /^[_A-Za-z][_A-Za-z0-9]*/;
68
- myKeywords = myKeywords.concat(["exec", "print"]);
69
- myBuiltins = myBuiltins.concat(["apply", "basestring", "buffer", "cmp", "coerce", "execfile",
70
- "file", "intern", "long", "raw_input", "reduce", "reload",
71
- "unichr", "unicode", "xrange", "None"]);
72
- var stringPrefixes = new RegExp("^(([rubf]|(ur)|(br))?('{3}|\"{3}|['\"]))", "i");
73
- }
74
- var keywords = wordRegexp(myKeywords);
75
- var builtins = wordRegexp(myBuiltins);
76
-
77
- // tokenizers
78
- function tokenBase(stream, state) {
79
- var sol = stream.sol() && state.lastToken != "\\"
80
- if (sol) state.indent = stream.indentation()
81
- // Handle scope changes
82
- if (sol && top(state).type == "py") {
83
- var scopeOffset = top(state).offset;
84
- if (stream.eatSpace()) {
85
- var lineOffset = stream.indentation();
86
- if (lineOffset > scopeOffset)
87
- pushPyScope(state);
88
- else if (lineOffset < scopeOffset && dedent(stream, state) && stream.peek() != "#")
89
- state.errorToken = true;
90
- return null;
91
- } else {
92
- var style = tokenBaseInner(stream, state);
93
- if (scopeOffset > 0 && dedent(stream, state))
94
- style += " " + ERRORCLASS;
95
- return style;
96
- }
97
- }
98
- return tokenBaseInner(stream, state);
99
- }
100
-
101
- function tokenBaseInner(stream, state, inFormat) {
102
- if (stream.eatSpace()) return null;
103
-
104
- // Handle Comments
105
- if (!inFormat && stream.match(/^#.*/)) return "comment";
106
-
107
- // Handle Number Literals
108
- if (stream.match(/^[0-9\.]/, false)) {
109
- var floatLiteral = false;
110
- // Floats
111
- if (stream.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)) { floatLiteral = true; }
112
- if (stream.match(/^[\d_]+\.\d*/)) { floatLiteral = true; }
113
- if (stream.match(/^\.\d+/)) { floatLiteral = true; }
114
- if (floatLiteral) {
115
- // Float literals may be "imaginary"
116
- stream.eat(/J/i);
117
- return "number";
118
- }
119
- // Integers
120
- var intLiteral = false;
121
- // Hex
122
- if (stream.match(/^0x[0-9a-f_]+/i)) intLiteral = true;
123
- // Binary
124
- if (stream.match(/^0b[01_]+/i)) intLiteral = true;
125
- // Octal
126
- if (stream.match(/^0o[0-7_]+/i)) intLiteral = true;
127
- // Decimal
128
- if (stream.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)) {
129
- // Decimal literals may be "imaginary"
130
- stream.eat(/J/i);
131
- // TODO - Can you have imaginary longs?
132
- intLiteral = true;
133
- }
134
- // Zero by itself with no other piece of number.
135
- if (stream.match(/^0(?![\dx])/i)) intLiteral = true;
136
- if (intLiteral) {
137
- // Integer literals may be "long"
138
- stream.eat(/L/i);
139
- return "number";
140
- }
141
- }
142
-
143
- // Handle Strings
144
- if (stream.match(stringPrefixes)) {
145
- var isFmtString = stream.current().toLowerCase().indexOf('f') !== -1;
146
- if (!isFmtString) {
147
- state.tokenize = tokenStringFactory(stream.current(), state.tokenize);
148
- return state.tokenize(stream, state);
149
- } else {
150
- state.tokenize = formatStringFactory(stream.current(), state.tokenize);
151
- return state.tokenize(stream, state);
152
- }
153
- }
154
-
155
- for (var i = 0; i < operators.length; i++)
156
- if (stream.match(operators[i])) return "operator"
157
-
158
- if (stream.match(delimiters)) return "punctuation";
159
-
160
- if (state.lastToken == "." && stream.match(identifiers))
161
- return "property";
162
-
163
- if (stream.match(keywords) || stream.match(wordOperators))
164
- return "keyword";
165
-
166
- if (stream.match(builtins))
167
- return "builtin";
168
-
169
- if (stream.match(/^(self|cls)\b/))
170
- return "variable-2";
171
-
172
- if (stream.match(identifiers)) {
173
- if (state.lastToken == "def" || state.lastToken == "class")
174
- return "def";
175
- return "variable";
176
- }
177
-
178
- // Handle non-detected items
179
- stream.next();
180
- return inFormat ? null :ERRORCLASS;
181
- }
182
-
183
- function formatStringFactory(delimiter, tokenOuter) {
184
- while ("rubf".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)
185
- delimiter = delimiter.substr(1);
186
-
187
- var singleline = delimiter.length == 1;
188
- var OUTCLASS = "string";
189
-
190
- function tokenNestedExpr(depth) {
191
- return function(stream, state) {
192
- var inner = tokenBaseInner(stream, state, true)
193
- if (inner == "punctuation") {
194
- if (stream.current() == "{") {
195
- state.tokenize = tokenNestedExpr(depth + 1)
196
- } else if (stream.current() == "}") {
197
- if (depth > 1) state.tokenize = tokenNestedExpr(depth - 1)
198
- else state.tokenize = tokenString
199
- }
200
- }
201
- return inner
202
- }
203
- }
204
-
205
- function tokenString(stream, state) {
206
- while (!stream.eol()) {
207
- stream.eatWhile(/[^'"\{\}\\]/);
208
- if (stream.eat("\\")) {
209
- stream.next();
210
- if (singleline && stream.eol())
211
- return OUTCLASS;
212
- } else if (stream.match(delimiter)) {
213
- state.tokenize = tokenOuter;
214
- return OUTCLASS;
215
- } else if (stream.match('{{')) {
216
- // ignore {{ in f-str
217
- return OUTCLASS;
218
- } else if (stream.match('{', false)) {
219
- // switch to nested mode
220
- state.tokenize = tokenNestedExpr(0)
221
- if (stream.current()) return OUTCLASS;
222
- else return state.tokenize(stream, state)
223
- } else if (stream.match('}}')) {
224
- return OUTCLASS;
225
- } else if (stream.match('}')) {
226
- // single } in f-string is an error
227
- return ERRORCLASS;
228
- } else {
229
- stream.eat(/['"]/);
230
- }
231
- }
232
- if (singleline) {
233
- if (parserConf.singleLineStringErrors)
234
- return ERRORCLASS;
235
- else
236
- state.tokenize = tokenOuter;
237
- }
238
- return OUTCLASS;
239
- }
240
- tokenString.isString = true;
241
- return tokenString;
242
- }
243
-
244
- function tokenStringFactory(delimiter, tokenOuter) {
245
- while ("rubf".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)
246
- delimiter = delimiter.substr(1);
247
-
248
- var singleline = delimiter.length == 1;
249
- var OUTCLASS = "string";
250
-
251
- function tokenString(stream, state) {
252
- while (!stream.eol()) {
253
- stream.eatWhile(/[^'"\\]/);
254
- if (stream.eat("\\")) {
255
- stream.next();
256
- if (singleline && stream.eol())
257
- return OUTCLASS;
258
- } else if (stream.match(delimiter)) {
259
- state.tokenize = tokenOuter;
260
- return OUTCLASS;
261
- } else {
262
- stream.eat(/['"]/);
263
- }
264
- }
265
- if (singleline) {
266
- if (parserConf.singleLineStringErrors)
267
- return ERRORCLASS;
268
- else
269
- state.tokenize = tokenOuter;
270
- }
271
- return OUTCLASS;
272
- }
273
- tokenString.isString = true;
274
- return tokenString;
275
- }
276
-
277
- function pushPyScope(state) {
278
- while (top(state).type != "py") state.scopes.pop()
279
- state.scopes.push({offset: top(state).offset + conf.indentUnit,
280
- type: "py",
281
- align: null})
282
- }
283
-
284
- function pushBracketScope(stream, state, type) {
285
- var align = stream.match(/^[\s\[\{\(]*(?:#|$)/, false) ? null : stream.column() + 1
286
- state.scopes.push({offset: state.indent + hangingIndent,
287
- type: type,
288
- align: align})
289
- }
290
-
291
- function dedent(stream, state) {
292
- var indented = stream.indentation();
293
- while (state.scopes.length > 1 && top(state).offset > indented) {
294
- if (top(state).type != "py") return true;
295
- state.scopes.pop();
296
- }
297
- return top(state).offset != indented;
298
- }
299
-
300
- function tokenLexer(stream, state) {
301
- if (stream.sol()) {
302
- state.beginningOfLine = true;
303
- state.dedent = false;
304
- }
305
-
306
- var style = state.tokenize(stream, state);
307
- var current = stream.current();
308
-
309
- // Handle decorators
310
- if (state.beginningOfLine && current == "@")
311
- return stream.match(identifiers, false) ? "meta" : py3 ? "operator" : ERRORCLASS;
312
-
313
- if (/\S/.test(current)) state.beginningOfLine = false;
314
-
315
- if ((style == "variable" || style == "builtin")
316
- && state.lastToken == "meta")
317
- style = "meta";
318
-
319
- // Handle scope changes.
320
- if (current == "pass" || current == "return")
321
- state.dedent = true;
322
-
323
- if (current == "lambda") state.lambda = true;
324
- if (current == ":" && !state.lambda && top(state).type == "py" && stream.match(/^\s*(?:#|$)/, false))
325
- pushPyScope(state);
326
-
327
- if (current.length == 1 && !/string|comment/.test(style)) {
328
- var delimiter_index = "[({".indexOf(current);
329
- if (delimiter_index != -1)
330
- pushBracketScope(stream, state, "])}".slice(delimiter_index, delimiter_index+1));
331
-
332
- delimiter_index = "])}".indexOf(current);
333
- if (delimiter_index != -1) {
334
- if (top(state).type == current) state.indent = state.scopes.pop().offset - hangingIndent
335
- else return ERRORCLASS;
336
- }
337
- }
338
- if (state.dedent && stream.eol() && top(state).type == "py" && state.scopes.length > 1)
339
- state.scopes.pop();
340
-
341
- return style;
342
- }
343
-
344
- var external = {
345
- startState: function(basecolumn) {
346
- return {
347
- tokenize: tokenBase,
348
- scopes: [{offset: basecolumn || 0, type: "py", align: null}],
349
- indent: basecolumn || 0,
350
- lastToken: null,
351
- lambda: false,
352
- dedent: 0
353
- };
354
- },
355
-
356
- token: function(stream, state) {
357
- var addErr = state.errorToken;
358
- if (addErr) state.errorToken = false;
359
- var style = tokenLexer(stream, state);
360
-
361
- if (style && style != "comment")
362
- state.lastToken = (style == "keyword" || style == "punctuation") ? stream.current() : style;
363
- if (style == "punctuation") style = null;
364
-
365
- if (stream.eol() && state.lambda)
366
- state.lambda = false;
367
- return addErr ? style + " " + ERRORCLASS : style;
368
- },
369
-
370
- indent: function(state, textAfter) {
371
- if (state.tokenize != tokenBase)
372
- return state.tokenize.isString ? CodeMirror.Pass : 0;
373
-
374
- var scope = top(state)
375
- var closing = scope.type == textAfter.charAt(0) ||
376
- scope.type == "py" && !state.dedent && /^(else:|elif |except |finally:)/.test(textAfter)
377
- if (scope.align != null)
378
- return scope.align - (closing ? 1 : 0)
379
- else
380
- return scope.offset - (closing ? hangingIndent : 0)
381
- },
382
-
383
- electricInput: /^\s*([\}\]\)]|else:|elif |except |finally:)$/,
384
- closeBrackets: {triples: "'\""},
385
- lineComment: "#",
386
- fold: "indent"
387
- };
388
- return external;
389
- });
390
-
391
- CodeMirror.defineMIME("text/x-python", "python");
392
-
393
- var words = function(str) { return str.split(" "); };
394
-
395
- CodeMirror.defineMIME("text/x-cython", {
396
- name: "python",
397
- extra_keywords: words("by cdef cimport cpdef ctypedef enum except "+
398
- "extern gil include nogil property public "+
399
- "readonly struct union DEF IF ELIF ELSE")
400
- });
401
-
402
- });
@@ -1,40 +0,0 @@
1
- /*
2
-
3
- Name: dracula
4
- Author: Michael Kaminsky (http://github.com/mkaminsky11)
5
-
6
- Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)
7
-
8
- */
9
-
10
-
11
- .cm-s-dracula.CodeMirror, .cm-s-dracula .CodeMirror-gutters {
12
- background-color: #282a36 !important;
13
- color: #f8f8f2 !important;
14
- border: none;
15
- }
16
- .cm-s-dracula .CodeMirror-gutters { color: #282a36; }
17
- .cm-s-dracula .CodeMirror-cursor { border-left: solid thin #f8f8f0; }
18
- .cm-s-dracula .CodeMirror-linenumber { color: #6D8A88; }
19
- .cm-s-dracula .CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
20
- .cm-s-dracula .CodeMirror-line::selection, .cm-s-dracula .CodeMirror-line > span::selection, .cm-s-dracula .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
21
- .cm-s-dracula .CodeMirror-line::-moz-selection, .cm-s-dracula .CodeMirror-line > span::-moz-selection, .cm-s-dracula .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
22
- .cm-s-dracula span.cm-comment { color: #6272a4; }
23
- .cm-s-dracula span.cm-string, .cm-s-dracula span.cm-string-2 { color: #f1fa8c; }
24
- .cm-s-dracula span.cm-number { color: #bd93f9; }
25
- .cm-s-dracula span.cm-variable { color: #50fa7b; }
26
- .cm-s-dracula span.cm-variable-2 { color: white; }
27
- .cm-s-dracula span.cm-def { color: #50fa7b; }
28
- .cm-s-dracula span.cm-operator { color: #ff79c6; }
29
- .cm-s-dracula span.cm-keyword { color: #ff79c6; }
30
- .cm-s-dracula span.cm-atom { color: #bd93f9; }
31
- .cm-s-dracula span.cm-meta { color: #f8f8f2; }
32
- .cm-s-dracula span.cm-tag { color: #ff79c6; }
33
- .cm-s-dracula span.cm-attribute { color: #50fa7b; }
34
- .cm-s-dracula span.cm-qualifier { color: #50fa7b; }
35
- .cm-s-dracula span.cm-property { color: #66d9ef; }
36
- .cm-s-dracula span.cm-builtin { color: #50fa7b; }
37
- .cm-s-dracula span.cm-variable-3, .cm-s-dracula span.cm-type { color: #ffb86c; }
38
-
39
- .cm-s-dracula .CodeMirror-activeline-background { background: rgba(255,255,255,0.1); }
40
- .cm-s-dracula .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
@@ -1,135 +0,0 @@
1
- div.cm-s-ctp-mocha.CodeMirror {
2
- --bg0: #1e1e2e;
3
- --bg1: #7f849c;
4
- --bg4: #6c7086;
5
- --fg: #cdd6f4;
6
- --fg3: #a6adc8;
7
- --gray: #bac2de;
8
- --blue: #89b4fa;
9
- --yellow: #f9e2af;
10
- --aqua: #89b4fa;
11
- --orange: #fab387;
12
- --primary-bg: #1e1e2e;
13
- --current-line: #313244;
14
- --selection: #585b70;
15
- --atom: #b4befe;
16
- --cursor: #7f849c;
17
- --keyword: #f38ba8;
18
- --operator: #89dceb;
19
- --number: #fab387;
20
- --definition: #89b4fa;
21
- --string: #a6e3a1;
22
- }
23
-
24
- .cm-s-ctp-mocha.CodeMirror,
25
- .cm-s-ctp-mocha .CodeMirror-gutters {
26
- background-color: var(--primary-bg);
27
- color: var(--fg3);
28
- }
29
-
30
- .cm-s-ctp-mocha .CodeMirror-gutters {
31
- background: var(--primary-bg);
32
- border-right: 0px;
33
- }
34
-
35
- .cm-s-ctp-mocha .CodeMirror-linenumber {
36
- color: var(--bg4);
37
- }
38
-
39
- .cm-s-ctp-mocha .CodeMirror-cursor {
40
- border-left: 1px solid var(--fg);
41
- }
42
-
43
- .cm-s-ctp-mocha.cm-fat-cursor .CodeMirror-cursor {
44
- background-color: var(--cursor) !important;
45
- }
46
-
47
- .cm-s-ctp-mocha .cm-animate-fat-cursor {
48
- background-color: var(--cursor) !important;
49
- }
50
-
51
- .cm-s-ctp-mocha div.CodeMirror-selected {
52
- background: var(--selection);
53
- }
54
-
55
- .cm-s-ctp-mocha span.cm-meta {
56
- color: var(--blue);
57
- }
58
-
59
- .cm-s-ctp-mocha span.cm-comment {
60
- color: var(--gray);
61
- }
62
-
63
- .cm-s-ctp-mocha span.cm-number {
64
- color: var(--number);
65
- }
66
-
67
- .cm-s-ctp-mocha span.cm-atom {
68
- color: var(--atom);
69
- }
70
-
71
- .cm-s-ctp-mocha span.cm-keyword {
72
- color: var(--keyword);
73
- }
74
-
75
- .cm-s-ctp-mocha span.cm-variable {
76
- color: var(--fg);
77
- }
78
-
79
- .cm-s-ctp-mocha span.cm-variable-2 {
80
- color: var(--fg);
81
- }
82
-
83
- .cm-s-ctp-mocha span.cm-variable-3,
84
- .cm-s-ctp-mocha .cm-s-gruvbox-dark span.cm-type {
85
- color: var(--yellow);
86
- }
87
-
88
- .cm-s-ctp-mocha span.cm-operator {
89
- color: var(--operator);
90
- }
91
-
92
- .cm-s-ctp-mocha span.cm-callee {
93
- color: var(--fg);
94
- }
95
-
96
- .cm-s-ctp-mocha span.cm-def {
97
- color: var(--definition);
98
- }
99
-
100
- .cm-s-ctp-mocha span.cm-property {
101
- color: var(--fg);
102
- }
103
-
104
- .cm-s-ctp-mocha span.cm-string {
105
- color: var(--string);
106
- }
107
-
108
- .cm-s-ctp-mocha span.cm-string-2 {
109
- color: var(--aqua);
110
- }
111
-
112
- .cm-s-ctp-mocha span.cm-qualifier {
113
- color: var(--aqua);
114
- }
115
-
116
- .cm-s-ctp-mocha span.cm-attribute {
117
- color: var(--aqua);
118
- }
119
-
120
- .cm-s-ctp-mocha .CodeMirror-activeline-background {
121
- background: var(--current-line);
122
- }
123
-
124
- .cm-s-ctp-mocha .CodeMirror-matchingbracket {
125
- background: var(--gray);
126
- color: var(--bg0) !important;
127
- }
128
-
129
- .cm-s-ctp-mocha span.cm-builtin {
130
- color: var(--orange);
131
- }
132
-
133
- .cm-s-ctp-mocha span.cm-tag {
134
- color: var(--orange);
135
- }