rapydscript-ns 0.9.0 → 0.9.2

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 (100) hide show
  1. package/.agignore +1 -1
  2. package/.github/workflows/ci.yml +38 -38
  3. package/=template.pyj +5 -5
  4. package/CHANGELOG.md +10 -0
  5. package/HACKING.md +103 -103
  6. package/LICENSE +24 -24
  7. package/README.md +7 -6
  8. package/TODO.md +116 -1
  9. package/add-toc-to-readme +2 -2
  10. package/bin/export +75 -75
  11. package/bin/rapydscript +70 -70
  12. package/bin/web-repl-export +102 -102
  13. package/build +2 -2
  14. package/language-service/index.js +9 -9
  15. package/language-service/language-service.d.ts +1 -1
  16. package/package.json +6 -2
  17. package/publish.py +37 -37
  18. package/release/compiler.js +246 -231
  19. package/release/signatures.json +23 -23
  20. package/session.vim +4 -4
  21. package/setup.cfg +2 -2
  22. package/src/compiler.pyj +36 -36
  23. package/src/errors.pyj +30 -30
  24. package/src/lib/aes.pyj +646 -646
  25. package/src/lib/contextlib.pyj +379 -0
  26. package/src/lib/copy.pyj +120 -120
  27. package/src/lib/datetime.pyj +712 -0
  28. package/src/lib/elementmaker.pyj +83 -83
  29. package/src/lib/encodings.pyj +126 -126
  30. package/src/lib/gettext.pyj +569 -569
  31. package/src/lib/io.pyj +500 -0
  32. package/src/lib/itertools.pyj +580 -580
  33. package/src/lib/json.pyj +227 -0
  34. package/src/lib/math.pyj +193 -193
  35. package/src/lib/operator.pyj +11 -11
  36. package/src/lib/pythonize.pyj +20 -20
  37. package/src/lib/random.pyj +118 -118
  38. package/src/lib/react.pyj +74 -74
  39. package/src/lib/traceback.pyj +63 -63
  40. package/src/lib/uuid.pyj +77 -77
  41. package/src/monaco-language-service/diagnostics.js +4 -4
  42. package/src/monaco-language-service/dts.js +550 -550
  43. package/src/monaco-language-service/index.js +2 -2
  44. package/src/output/comments.pyj +45 -45
  45. package/src/output/exceptions.pyj +201 -201
  46. package/src/output/jsx.pyj +164 -164
  47. package/src/output/loops.pyj +9 -0
  48. package/src/output/treeshake.pyj +182 -182
  49. package/src/output/utils.pyj +72 -72
  50. package/src/string_interpolation.pyj +72 -72
  51. package/src/tokenizer.pyj +1 -1
  52. package/src/unicode_aliases.pyj +576 -576
  53. package/src/utils.pyj +192 -192
  54. package/test/_import_one.pyj +37 -37
  55. package/test/_import_two/__init__.pyj +11 -11
  56. package/test/_import_two/level2/deep.pyj +4 -4
  57. package/test/_import_two/other.pyj +6 -6
  58. package/test/_import_two/sub.pyj +13 -13
  59. package/test/aes_vectors.pyj +421 -421
  60. package/test/annotations.pyj +80 -80
  61. package/test/contextlib.pyj +362 -0
  62. package/test/datetime.pyj +500 -0
  63. package/test/debugger_stmt.pyj +41 -0
  64. package/test/decorators.pyj +77 -77
  65. package/test/docstrings.pyj +39 -39
  66. package/test/elementmaker_test.pyj +45 -45
  67. package/test/functions.pyj +151 -151
  68. package/test/generators.pyj +41 -41
  69. package/test/generic.pyj +370 -370
  70. package/test/imports.pyj +72 -72
  71. package/test/internationalization.pyj +73 -73
  72. package/test/io.pyj +316 -0
  73. package/test/json.pyj +196 -0
  74. package/test/lint.pyj +164 -164
  75. package/test/loops.pyj +85 -85
  76. package/test/numpy.pyj +734 -734
  77. package/test/omit_function_metadata.pyj +20 -20
  78. package/test/repl.pyj +121 -121
  79. package/test/scoped_flags.pyj +76 -76
  80. package/test/unit/index.js +66 -0
  81. package/test/unit/language-service-dts.js +543 -543
  82. package/test/unit/language-service-hover.js +455 -455
  83. package/test/unit/language-service.js +1 -1
  84. package/test/unit/web-repl.js +533 -0
  85. package/tools/compiler.d.ts +367 -0
  86. package/tools/completer.js +131 -131
  87. package/tools/gettext.js +185 -185
  88. package/tools/ini.js +65 -65
  89. package/tools/msgfmt.js +187 -187
  90. package/tools/repl.js +223 -223
  91. package/tools/test.js +118 -118
  92. package/tools/utils.js +128 -128
  93. package/tools/web_repl.js +95 -95
  94. package/try +41 -41
  95. package/web-repl/env.js +196 -196
  96. package/web-repl/index.html +163 -163
  97. package/web-repl/prism.css +139 -139
  98. package/web-repl/prism.js +113 -113
  99. package/web-repl/rapydscript.js +224 -224
  100. package/web-repl/sha1.js +25 -25
@@ -1,163 +1,163 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>RapydScript REPL</title>
5
- <meta charset="utf-8" />
6
- <script type="text/javascript" src="prism.js" defer data-manual></script>
7
- <script type="text/javascript" src="rapydscript.js" defer></script>
8
- <script type="text/javascript" src="main.js" defer></script>
9
- <style type="text/css">
10
-
11
- body, div, h1, h2, h3 { margin: 0; padding: 0; border-width: 0; box-sizing: border-box }
12
-
13
- body {
14
- color: black;
15
- background-color: #f5f2f0;
16
- font-family: monospace;
17
- }
18
-
19
- hr {
20
- border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0));
21
- }
22
-
23
- #top, #bottom {
24
- display: none;
25
- }
26
-
27
- #top {
28
- border-bottom: solid 1px currentColor;
29
- height: 75vh;
30
- max-height: 75vh;
31
- }
32
-
33
- #bottom {
34
- border-top: solid 1px currentColor;
35
- padding: 1ex 1rem;
36
- height: 25vh;
37
- justify-content: flex-start;
38
- align-items: center;
39
- }
40
-
41
- .panel {
42
- width: 50vw;
43
- }
44
-
45
- #left {
46
- border-right: solid 1px currentColor;
47
- }
48
-
49
- #right {
50
- border-left: solid 1px currentColor;
51
- }
52
-
53
- .panel > div {
54
- height: 75vh;
55
- max-height: 7xvh;
56
- overflow:auto;
57
- }
58
-
59
- .panel h2 {
60
- background-color: lightGray;
61
- border-bottom: solid 1px currentColor;
62
- vertical-align: middle;
63
- padding: 1ex 1rem;
64
- }
65
-
66
- .panel .output {
67
- padding: 1ex 1rem;
68
- white-space: pre-wrap;
69
- }
70
-
71
- code.language-javascript {
72
- white-space: pre-wrap !important;
73
- font-family: monospace !important;
74
- }
75
-
76
- #input {
77
- margin-right: 1rem;
78
- flex: 2;
79
- align-self: stretch;
80
- }
81
-
82
- #completions {
83
- display: none;
84
- position: absolute;
85
- bottom: 25vh;
86
- bottom: calc(25vh - 1ex);
87
- border: solid 1px currentColor;
88
- background-color: #ffefd5;
89
- z-index: 200;
90
- border-radius: 4px;
91
- padding: 1ex 1em;
92
- margin: 0 1em;
93
- }
94
-
95
- #completions > div:first-of-type {
96
- float: right;
97
- margin-top: -27px;
98
- margin-right: -25px;
99
- width: 30px;
100
- height: 30px;
101
- border-radius: 30px;
102
- font-size: 25px;
103
- padding: 0;
104
- z-index: 201;
105
- line-height: 0px;
106
- cursor: pointer;
107
- left: 100%;
108
- display:flex;
109
- align-items: center;
110
- justify-content: center;
111
- background: #605F61;
112
- border: 1px solid #AEAEAE;
113
- }
114
-
115
- #completions > div:first-of-type:hover {
116
- color: red;
117
- }
118
-
119
- #completions > div:last-of-type {
120
- overflow: auto;
121
- height: auto;
122
- max-height: 20vh;
123
- width: 100%;
124
- }
125
-
126
- .completion-group {
127
- display: flex;
128
- flex-wrap: wrap;
129
- align-items: baseline;
130
- margin-bottom: 2ex;
131
- }
132
-
133
- .completion-group:last-of-type {
134
- margin-bottom: 0;
135
- }
136
-
137
- </style>
138
- </head>
139
- <body>
140
- <pre id="loading">Loading RapydScript REPL, please wait...</pre>
141
- <div id="top">
142
- <div id="left" class="panel">
143
- <div id="left-scroll">
144
- <h2>Compiled JavaScript</h2>
145
- <div id="js" class="output"></div>
146
- </div>
147
- </div>
148
- <div id="right" class="panel">
149
- <div id="right-scroll">
150
- <h2>Output</h2>
151
- <div id="output" class="output"></div>
152
- </div>
153
- </div>
154
- </div>
155
- <div id="bottom">
156
- <textarea id="input" spellcheck="false"></textarea>
157
- <button id="run">Run!</button>
158
- </div>
159
- <div id="completions"><div title="Close completions popup"><span>✖</span></div><div></div></div>
160
- <link href="prism.css" type="text/css" rel="stylesheet"></link>
161
- </body>
162
- </html>
163
-
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>RapydScript REPL</title>
5
+ <meta charset="utf-8" />
6
+ <script type="text/javascript" src="prism.js" defer data-manual></script>
7
+ <script type="text/javascript" src="rapydscript.js" defer></script>
8
+ <script type="text/javascript" src="main.js" defer></script>
9
+ <style type="text/css">
10
+
11
+ body, div, h1, h2, h3 { margin: 0; padding: 0; border-width: 0; box-sizing: border-box }
12
+
13
+ body {
14
+ color: black;
15
+ background-color: #f5f2f0;
16
+ font-family: monospace;
17
+ }
18
+
19
+ hr {
20
+ border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0));
21
+ }
22
+
23
+ #top, #bottom {
24
+ display: none;
25
+ }
26
+
27
+ #top {
28
+ border-bottom: solid 1px currentColor;
29
+ height: 75vh;
30
+ max-height: 75vh;
31
+ }
32
+
33
+ #bottom {
34
+ border-top: solid 1px currentColor;
35
+ padding: 1ex 1rem;
36
+ height: 25vh;
37
+ justify-content: flex-start;
38
+ align-items: center;
39
+ }
40
+
41
+ .panel {
42
+ width: 50vw;
43
+ }
44
+
45
+ #left {
46
+ border-right: solid 1px currentColor;
47
+ }
48
+
49
+ #right {
50
+ border-left: solid 1px currentColor;
51
+ }
52
+
53
+ .panel > div {
54
+ height: 75vh;
55
+ max-height: 7xvh;
56
+ overflow:auto;
57
+ }
58
+
59
+ .panel h2 {
60
+ background-color: lightGray;
61
+ border-bottom: solid 1px currentColor;
62
+ vertical-align: middle;
63
+ padding: 1ex 1rem;
64
+ }
65
+
66
+ .panel .output {
67
+ padding: 1ex 1rem;
68
+ white-space: pre-wrap;
69
+ }
70
+
71
+ code.language-javascript {
72
+ white-space: pre-wrap !important;
73
+ font-family: monospace !important;
74
+ }
75
+
76
+ #input {
77
+ margin-right: 1rem;
78
+ flex: 2;
79
+ align-self: stretch;
80
+ }
81
+
82
+ #completions {
83
+ display: none;
84
+ position: absolute;
85
+ bottom: 25vh;
86
+ bottom: calc(25vh - 1ex);
87
+ border: solid 1px currentColor;
88
+ background-color: #ffefd5;
89
+ z-index: 200;
90
+ border-radius: 4px;
91
+ padding: 1ex 1em;
92
+ margin: 0 1em;
93
+ }
94
+
95
+ #completions > div:first-of-type {
96
+ float: right;
97
+ margin-top: -27px;
98
+ margin-right: -25px;
99
+ width: 30px;
100
+ height: 30px;
101
+ border-radius: 30px;
102
+ font-size: 25px;
103
+ padding: 0;
104
+ z-index: 201;
105
+ line-height: 0px;
106
+ cursor: pointer;
107
+ left: 100%;
108
+ display:flex;
109
+ align-items: center;
110
+ justify-content: center;
111
+ background: #605F61;
112
+ border: 1px solid #AEAEAE;
113
+ }
114
+
115
+ #completions > div:first-of-type:hover {
116
+ color: red;
117
+ }
118
+
119
+ #completions > div:last-of-type {
120
+ overflow: auto;
121
+ height: auto;
122
+ max-height: 20vh;
123
+ width: 100%;
124
+ }
125
+
126
+ .completion-group {
127
+ display: flex;
128
+ flex-wrap: wrap;
129
+ align-items: baseline;
130
+ margin-bottom: 2ex;
131
+ }
132
+
133
+ .completion-group:last-of-type {
134
+ margin-bottom: 0;
135
+ }
136
+
137
+ </style>
138
+ </head>
139
+ <body>
140
+ <pre id="loading">Loading RapydScript REPL, please wait...</pre>
141
+ <div id="top">
142
+ <div id="left" class="panel">
143
+ <div id="left-scroll">
144
+ <h2>Compiled JavaScript</h2>
145
+ <div id="js" class="output"></div>
146
+ </div>
147
+ </div>
148
+ <div id="right" class="panel">
149
+ <div id="right-scroll">
150
+ <h2>Output</h2>
151
+ <div id="output" class="output"></div>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ <div id="bottom">
156
+ <textarea id="input" spellcheck="false"></textarea>
157
+ <button id="run">Run!</button>
158
+ </div>
159
+ <div id="completions"><div title="Close completions popup"><span>✖</span></div><div></div></div>
160
+ <link href="prism.css" type="text/css" rel="stylesheet"></link>
161
+ </body>
162
+ </html>
163
+
@@ -1,139 +1,139 @@
1
- /* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript+abap+actionscript+apacheconf+apl+applescript+asciidoc+aspnet+autoit+autohotkey+bash+basic+batch+c+brainfuck+bison+csharp+cpp+coffeescript+ruby+css-extras+d+dart+diff+docker+eiffel+elixir+erlang+fsharp+fortran+gherkin+git+glsl+go+groovy+haml+handlebars+haskell+haxe+http+icon+inform7+ini+j+jade+java+json+julia+keyman+kotlin+latex+less+lolcode+lua+makefile+markdown+matlab+mel+mizar+monkey+nasm+nginx+nim+nix+nsis+objectivec+ocaml+oz+parigp+parser+pascal+perl+php+php-extras+powershell+processing+prolog+puppet+pure+python+q+qore+r+jsx+rest+rip+roboconf+crystal+rust+sas+sass+scss+scala+scheme+smalltalk+smarty+sql+stylus+swift+tcl+textile+twig+typescript+verilog+vhdl+vim+wiki+yaml */
2
- /**
3
- * prism.js default theme for JavaScript, CSS and HTML
4
- * Based on dabblet (http://dabblet.com)
5
- * @author Lea Verou
6
- */
7
-
8
- code[class*="language-"],
9
- pre[class*="language-"] {
10
- color: black;
11
- background: none;
12
- text-shadow: 0 1px white;
13
- font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
14
- text-align: left;
15
- white-space: pre;
16
- word-spacing: normal;
17
- word-break: normal;
18
- word-wrap: normal;
19
- line-height: 1.5;
20
-
21
- -moz-tab-size: 4;
22
- -o-tab-size: 4;
23
- tab-size: 4;
24
-
25
- -webkit-hyphens: none;
26
- -moz-hyphens: none;
27
- -ms-hyphens: none;
28
- hyphens: none;
29
- }
30
-
31
- pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
32
- code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
33
- text-shadow: none;
34
- background: #b3d4fc;
35
- }
36
-
37
- pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
38
- code[class*="language-"]::selection, code[class*="language-"] ::selection {
39
- text-shadow: none;
40
- background: #b3d4fc;
41
- }
42
-
43
- @media print {
44
- code[class*="language-"],
45
- pre[class*="language-"] {
46
- text-shadow: none;
47
- }
48
- }
49
-
50
- /* Code blocks */
51
- pre[class*="language-"] {
52
- padding: 1em;
53
- margin: .5em 0;
54
- overflow: auto;
55
- }
56
-
57
- :not(pre) > code[class*="language-"],
58
- pre[class*="language-"] {
59
- background: #f5f2f0;
60
- }
61
-
62
- /* Inline code */
63
- :not(pre) > code[class*="language-"] {
64
- padding: .1em;
65
- border-radius: .3em;
66
- white-space: normal;
67
- }
68
-
69
- .token.comment,
70
- .token.prolog,
71
- .token.doctype,
72
- .token.cdata {
73
- color: slategray;
74
- }
75
-
76
- .token.punctuation {
77
- color: #999;
78
- }
79
-
80
- .namespace {
81
- opacity: .7;
82
- }
83
-
84
- .token.property,
85
- .token.tag,
86
- .token.boolean,
87
- .token.number,
88
- .token.constant,
89
- .token.symbol,
90
- .token.deleted {
91
- color: #905;
92
- }
93
-
94
- .token.selector,
95
- .token.attr-name,
96
- .token.string,
97
- .token.char,
98
- .token.builtin,
99
- .token.inserted {
100
- color: #690;
101
- }
102
-
103
- .token.operator,
104
- .token.entity,
105
- .token.url,
106
- .language-css .token.string,
107
- .style .token.string {
108
- color: #a67f59;
109
- background: hsla(0, 0%, 100%, .5);
110
- }
111
-
112
- .token.atrule,
113
- .token.attr-value,
114
- .token.keyword {
115
- color: #07a;
116
- }
117
-
118
- .token.function {
119
- color: #DD4A68;
120
- }
121
-
122
- .token.regex,
123
- .token.important,
124
- .token.variable {
125
- color: #e90;
126
- }
127
-
128
- .token.important,
129
- .token.bold {
130
- font-weight: bold;
131
- }
132
- .token.italic {
133
- font-style: italic;
134
- }
135
-
136
- .token.entity {
137
- cursor: help;
138
- }
139
-
1
+ /* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript+abap+actionscript+apacheconf+apl+applescript+asciidoc+aspnet+autoit+autohotkey+bash+basic+batch+c+brainfuck+bison+csharp+cpp+coffeescript+ruby+css-extras+d+dart+diff+docker+eiffel+elixir+erlang+fsharp+fortran+gherkin+git+glsl+go+groovy+haml+handlebars+haskell+haxe+http+icon+inform7+ini+j+jade+java+json+julia+keyman+kotlin+latex+less+lolcode+lua+makefile+markdown+matlab+mel+mizar+monkey+nasm+nginx+nim+nix+nsis+objectivec+ocaml+oz+parigp+parser+pascal+perl+php+php-extras+powershell+processing+prolog+puppet+pure+python+q+qore+r+jsx+rest+rip+roboconf+crystal+rust+sas+sass+scss+scala+scheme+smalltalk+smarty+sql+stylus+swift+tcl+textile+twig+typescript+verilog+vhdl+vim+wiki+yaml */
2
+ /**
3
+ * prism.js default theme for JavaScript, CSS and HTML
4
+ * Based on dabblet (http://dabblet.com)
5
+ * @author Lea Verou
6
+ */
7
+
8
+ code[class*="language-"],
9
+ pre[class*="language-"] {
10
+ color: black;
11
+ background: none;
12
+ text-shadow: 0 1px white;
13
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
14
+ text-align: left;
15
+ white-space: pre;
16
+ word-spacing: normal;
17
+ word-break: normal;
18
+ word-wrap: normal;
19
+ line-height: 1.5;
20
+
21
+ -moz-tab-size: 4;
22
+ -o-tab-size: 4;
23
+ tab-size: 4;
24
+
25
+ -webkit-hyphens: none;
26
+ -moz-hyphens: none;
27
+ -ms-hyphens: none;
28
+ hyphens: none;
29
+ }
30
+
31
+ pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
32
+ code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
33
+ text-shadow: none;
34
+ background: #b3d4fc;
35
+ }
36
+
37
+ pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
38
+ code[class*="language-"]::selection, code[class*="language-"] ::selection {
39
+ text-shadow: none;
40
+ background: #b3d4fc;
41
+ }
42
+
43
+ @media print {
44
+ code[class*="language-"],
45
+ pre[class*="language-"] {
46
+ text-shadow: none;
47
+ }
48
+ }
49
+
50
+ /* Code blocks */
51
+ pre[class*="language-"] {
52
+ padding: 1em;
53
+ margin: .5em 0;
54
+ overflow: auto;
55
+ }
56
+
57
+ :not(pre) > code[class*="language-"],
58
+ pre[class*="language-"] {
59
+ background: #f5f2f0;
60
+ }
61
+
62
+ /* Inline code */
63
+ :not(pre) > code[class*="language-"] {
64
+ padding: .1em;
65
+ border-radius: .3em;
66
+ white-space: normal;
67
+ }
68
+
69
+ .token.comment,
70
+ .token.prolog,
71
+ .token.doctype,
72
+ .token.cdata {
73
+ color: slategray;
74
+ }
75
+
76
+ .token.punctuation {
77
+ color: #999;
78
+ }
79
+
80
+ .namespace {
81
+ opacity: .7;
82
+ }
83
+
84
+ .token.property,
85
+ .token.tag,
86
+ .token.boolean,
87
+ .token.number,
88
+ .token.constant,
89
+ .token.symbol,
90
+ .token.deleted {
91
+ color: #905;
92
+ }
93
+
94
+ .token.selector,
95
+ .token.attr-name,
96
+ .token.string,
97
+ .token.char,
98
+ .token.builtin,
99
+ .token.inserted {
100
+ color: #690;
101
+ }
102
+
103
+ .token.operator,
104
+ .token.entity,
105
+ .token.url,
106
+ .language-css .token.string,
107
+ .style .token.string {
108
+ color: #a67f59;
109
+ background: hsla(0, 0%, 100%, .5);
110
+ }
111
+
112
+ .token.atrule,
113
+ .token.attr-value,
114
+ .token.keyword {
115
+ color: #07a;
116
+ }
117
+
118
+ .token.function {
119
+ color: #DD4A68;
120
+ }
121
+
122
+ .token.regex,
123
+ .token.important,
124
+ .token.variable {
125
+ color: #e90;
126
+ }
127
+
128
+ .token.important,
129
+ .token.bold {
130
+ font-weight: bold;
131
+ }
132
+ .token.italic {
133
+ font-style: italic;
134
+ }
135
+
136
+ .token.entity {
137
+ cursor: help;
138
+ }
139
+