rapydscript-ns 0.9.2 → 0.9.3

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 (151) 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 +19 -0
  5. package/HACKING.md +103 -103
  6. package/LICENSE +24 -24
  7. package/PYTHON_GAPS.md +420 -0
  8. package/README.md +153 -29
  9. package/TODO.md +16 -118
  10. package/add-toc-to-readme +2 -2
  11. package/bin/export +75 -75
  12. package/bin/rapydscript +70 -70
  13. package/bin/web-repl-export +102 -102
  14. package/build +2 -2
  15. package/language-service/index.js +237 -8
  16. package/memory/project_string_impl.md +43 -0
  17. package/package.json +1 -1
  18. package/publish.py +37 -37
  19. package/release/baselib-plain-pretty.js +248 -38
  20. package/release/baselib-plain-ugly.js +8 -8
  21. package/release/compiler.js +778 -277
  22. package/release/signatures.json +30 -30
  23. package/session.vim +4 -4
  24. package/setup.cfg +2 -2
  25. package/src/ast.pyj +4 -1
  26. package/src/baselib-builtins.pyj +56 -2
  27. package/src/baselib-containers.pyj +2 -0
  28. package/src/baselib-errors.pyj +7 -3
  29. package/src/baselib-internal.pyj +51 -6
  30. package/src/baselib-str.pyj +5 -3
  31. package/src/compiler.pyj +36 -36
  32. package/src/errors.pyj +30 -30
  33. package/src/lib/aes.pyj +646 -646
  34. package/src/lib/asyncio.pyj +534 -0
  35. package/src/lib/base64.pyj +399 -0
  36. package/src/lib/bisect.pyj +73 -0
  37. package/src/lib/collections.pyj +1 -1
  38. package/src/lib/copy.pyj +120 -120
  39. package/src/lib/csv.pyj +494 -0
  40. package/src/lib/elementmaker.pyj +83 -83
  41. package/src/lib/encodings.pyj +126 -126
  42. package/src/lib/gettext.pyj +569 -569
  43. package/src/lib/heapq.pyj +98 -0
  44. package/src/lib/html.pyj +382 -0
  45. package/src/lib/http/__init__.pyj +98 -0
  46. package/src/lib/http/client.pyj +304 -0
  47. package/src/lib/http/cookies.pyj +236 -0
  48. package/src/lib/itertools.pyj +580 -580
  49. package/src/lib/logging.pyj +672 -0
  50. package/src/lib/math.pyj +193 -193
  51. package/src/lib/operator.pyj +11 -11
  52. package/src/lib/pythonize.pyj +20 -20
  53. package/src/lib/random.pyj +118 -118
  54. package/src/lib/react.pyj +74 -74
  55. package/src/lib/string.pyj +357 -0
  56. package/src/lib/textwrap.pyj +329 -0
  57. package/src/lib/traceback.pyj +63 -63
  58. package/src/lib/urllib/__init__.pyj +14 -0
  59. package/src/lib/urllib/error.pyj +66 -0
  60. package/src/lib/urllib/parse.pyj +475 -0
  61. package/src/lib/urllib/request.pyj +86 -0
  62. package/src/lib/uuid.pyj +77 -77
  63. package/src/monaco-language-service/analyzer.js +5 -2
  64. package/src/monaco-language-service/completions.js +26 -0
  65. package/src/monaco-language-service/diagnostics.js +202 -3
  66. package/src/monaco-language-service/dts.js +550 -550
  67. package/src/monaco-language-service/scope.js +1 -0
  68. package/src/output/comments.pyj +45 -45
  69. package/src/output/exceptions.pyj +201 -201
  70. package/src/output/functions.pyj +152 -6
  71. package/src/output/jsx.pyj +164 -164
  72. package/src/output/loops.pyj +17 -2
  73. package/src/output/modules.pyj +1 -1
  74. package/src/output/operators.pyj +15 -0
  75. package/src/output/stream.pyj +0 -1
  76. package/src/output/treeshake.pyj +182 -182
  77. package/src/output/utils.pyj +72 -72
  78. package/src/parse.pyj +80 -17
  79. package/src/string_interpolation.pyj +72 -72
  80. package/src/tokenizer.pyj +1 -1
  81. package/src/unicode_aliases.pyj +576 -576
  82. package/src/utils.pyj +192 -192
  83. package/test/_import_one.pyj +37 -37
  84. package/test/_import_two/__init__.pyj +11 -11
  85. package/test/_import_two/level2/deep.pyj +4 -4
  86. package/test/_import_two/other.pyj +6 -6
  87. package/test/_import_two/sub.pyj +13 -13
  88. package/test/aes_vectors.pyj +421 -421
  89. package/test/annotations.pyj +80 -80
  90. package/test/async_generators.pyj +144 -0
  91. package/test/asyncio.pyj +307 -0
  92. package/test/base64.pyj +202 -0
  93. package/test/bisect.pyj +178 -0
  94. package/test/csv.pyj +405 -0
  95. package/test/decorators.pyj +77 -77
  96. package/test/docstrings.pyj +39 -39
  97. package/test/elementmaker_test.pyj +45 -45
  98. package/test/float_special.pyj +64 -0
  99. package/test/functions.pyj +151 -151
  100. package/test/generators.pyj +41 -41
  101. package/test/generic.pyj +370 -370
  102. package/test/heapq.pyj +174 -0
  103. package/test/html.pyj +212 -0
  104. package/test/http.pyj +259 -0
  105. package/test/imports.pyj +79 -72
  106. package/test/internationalization.pyj +73 -73
  107. package/test/lint.pyj +164 -164
  108. package/test/logging.pyj +356 -0
  109. package/test/long.pyj +130 -0
  110. package/test/loops.pyj +85 -85
  111. package/test/numpy.pyj +734 -734
  112. package/test/parenthesized_with.pyj +141 -0
  113. package/test/python_compat.pyj +3 -5
  114. package/test/python_modulo.pyj +76 -0
  115. package/test/python_modulo_off.pyj +21 -0
  116. package/test/repl.pyj +121 -121
  117. package/test/scoped_flags.pyj +76 -76
  118. package/test/str.pyj +14 -0
  119. package/test/string.pyj +245 -0
  120. package/test/textwrap.pyj +172 -0
  121. package/test/type_display.pyj +48 -0
  122. package/test/type_enforcement.pyj +164 -0
  123. package/test/unit/index.js +14 -6
  124. package/test/unit/language-service-completions.js +119 -0
  125. package/test/unit/language-service-dts.js +543 -543
  126. package/test/unit/language-service-hover.js +455 -455
  127. package/test/unit/language-service-scope.js +32 -0
  128. package/test/unit/language-service.js +127 -3
  129. package/test/unit/run-language-service.js +17 -3
  130. package/test/unit/web-repl.js +2094 -29
  131. package/test/urllib.pyj +193 -0
  132. package/tools/compile.js +1 -1
  133. package/tools/compiler.d.ts +367 -367
  134. package/tools/completer.js +131 -131
  135. package/tools/embedded_compiler.js +7 -7
  136. package/tools/gettext.js +185 -185
  137. package/tools/ini.js +65 -65
  138. package/tools/msgfmt.js +187 -187
  139. package/tools/repl.js +223 -223
  140. package/tools/test.js +118 -118
  141. package/tools/utils.js +128 -128
  142. package/tools/web_repl.js +95 -95
  143. package/try +41 -41
  144. package/web-repl/env.js +196 -196
  145. package/web-repl/index.html +163 -163
  146. package/web-repl/main.js +1 -1
  147. package/web-repl/prism.css +139 -139
  148. package/web-repl/prism.js +113 -113
  149. package/web-repl/rapydscript.js +224 -224
  150. package/web-repl/sha1.js +25 -25
  151. package/test/omit_function_metadata.pyj +0 -20
package/src/lib/math.pyj CHANGED
@@ -1,193 +1,193 @@
1
- ###########################################################
2
- # RapydScript Standard Library
3
- # Author: Alexander Tsepkov
4
- # Copyright 2013 Pyjeon Software LLC
5
- # License: Apache License 2.0
6
- # This library is covered under Apache license, so that
7
- # you can distribute it with your RapydScript applications.
8
- ###########################################################
9
-
10
-
11
- # basic implementation of Python's 'math' library
12
-
13
- # NOTE: this is only meant to aid those porting lots of Python code into RapydScript,
14
- # if you're writing a new RapydScript application, in most cases you probably want to
15
- # use JavaScript's Math module directly instead
16
-
17
-
18
- pi = Math.PI
19
- e = Math.E
20
- inf = Infinity
21
-
22
- ########################################
23
- # Number-theoretic and representation functions
24
- ########################################
25
- def ceil(x):
26
- return Math.ceil(x)
27
- def copysign(x, y):
28
- x = Math.abs(x)
29
- if y < 0:
30
- return -x
31
- else:
32
- return x
33
- def fabs(x):
34
- return Math.abs(x)
35
- def factorial(x):
36
- if Math.abs(int(x)) is not x:
37
- raise ValueError("factorial() only accepts integral values")
38
- factorial.cache = []
39
- r = def(n):
40
- if n is 0 or n is 1:
41
- return 1
42
- if not factorial.cache[n]:
43
- factorial.cache[n] = r(n-1) * n
44
- return factorial.cache[n]
45
- return r(x)
46
- def floor(x):
47
- return Math.floor(x)
48
- def fmod(x, y):
49
- # javascript's % operator isn't consistent with C fmod implementation, this function is
50
- while y <= x:
51
- x -= y
52
- return x
53
- def fsum(iterable):
54
- # like Python's fsum, this method is much more resilient to rounding errors than regular sum
55
- partials = [] # sorted, non-overlapping partial sums
56
- for x in iterable:
57
- i = 0
58
- for y in partials:
59
- if Math.abs(x) < Math.abs(y):
60
- x, y = y, x
61
- hi = x + y
62
- lo = y - (hi - x)
63
- if lo:
64
- partials[i] = lo
65
- i += 1
66
- x = hi
67
- #partials[i:] = [x]
68
- partials.splice(i, partials.length-i, x)
69
- return sum(partials)
70
- def isinf(x):
71
- return not isFinite(x)
72
- def isnan(x):
73
- return isNaN(x)
74
- def modf(x):
75
- m = fmod(x, 1)
76
- return m, x-m
77
- def trunc(x):
78
- return x | 0
79
-
80
- ########################################
81
- # Power and logarithmic functions
82
- ########################################
83
- def exp(x):
84
- return Math.exp(x)
85
- def expm1(x):
86
- # NOTE: Math.expm1() is currently only implemented in Firefox, this provides alternative implementation
87
- # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/expm1
88
- #return Math.expm1(x)
89
- if Math.abs(x) < 1e-5:
90
- return x + 0.5*x*x
91
- else:
92
- return Math.exp(x) - 1
93
- def log(x, base=e):
94
- return Math.log(x)/Math.log(base)
95
- def log1p(x):
96
- # NOTE: Math.log1p() is currently only implemented in Firefox, this provides alternative implementation
97
- # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log1p
98
- # this version has been taken from http://phpjs.org/functions/log1p/
99
- # admittedly it's not as accurate as MDN version, as you can see from math.log1p(1) result
100
- ret = 0
101
- n = 50
102
- if x <= -1:
103
- return Number.NEGATIVE_INFINITY
104
- if x < 0 or x > 1:
105
- return Math.log(1 + x)
106
- for i in range(1, n):
107
- if i % 2 is 0:
108
- ret -= Math.pow(x, i) / i
109
- else:
110
- ret += Math.pow(x, i) / i
111
- return ret
112
- def log10(x):
113
- # NOTE: Math.log10() is currently only implemented in Firefox, this provides alternative implementation
114
- # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log10
115
- # I didn't find a more accurate algorithm so I'm using the basic implementation
116
- return Math.log(x)/Math.LN10
117
- def pow(x, y):
118
- if x < 0 and int(y) is not y:
119
- raise ValueError('math domain error')
120
- if isnan(y) and x is 1:
121
- return 1
122
- return Math.pow(x, y)
123
- def sqrt(x):
124
- return Math.sqrt(x)
125
-
126
- ########################################
127
- # Trigonometric functions
128
- ########################################
129
- def acos(x): return Math.acos(x)
130
- def asin(x): return Math.asin(x)
131
- def atan(x): return Math.atan(x)
132
- def atan2(y, x): return Math.atan2(y, x)
133
- def cos(x): return Math.cos(x)
134
- def sin(x): return Math.sin(x)
135
- def hypot(x, y): return Math.sqrt(x*x + y*y)
136
- def tan(x): return Math.tan(x)
137
-
138
- ########################################
139
- # Angular conversion
140
- ########################################
141
- def degrees(x): return x*180/pi
142
- def radians(x): return x*pi/180
143
-
144
- ########################################
145
- # Hyperbolic functions
146
- ########################################
147
- def acosh(x):
148
- # NOTE: will be replaced with official, when it becomes mainstream
149
- # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/acosh
150
- return Math.log(x + Math.sqrt(x*x - 1))
151
- def asinh(x):
152
- # NOTE: will be replaced with official, when it becomes mainstream
153
- # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/asinh
154
- return Math.log(x + Math.sqrt(x*x + 1))
155
- def atanh(x):
156
- # NOTE: will be replaced with official, when it becomes mainstream
157
- # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atanh
158
- return 0.5 * Math.log((1 + x) / (1 - x))
159
- def cosh(x):
160
- # NOTE: will be replaced with official, when it becomes mainstream
161
- # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/cosh
162
- return (Math.exp(x) + Math.exp(-x)) / 2
163
- def sinh(x):
164
- # NOTE: will be replaced with official, when it becomes mainstream
165
- # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sinh
166
- return (Math.exp(x) - Math.exp(-x)) / 2
167
- def tanh(x):
168
- # NOTE: will be replaced with official, when it becomes mainstream
169
- # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/tanh
170
- return (Math.exp(x) - Math.exp(-x)) / (Math.exp(x) + Math.exp(-x))
171
-
172
-
173
-
174
- #import stdlib
175
- #print(math.ceil(4.2))
176
- #print(math.floor(4.2))
177
- #print(math.fabs(-6))
178
- #print(math.copysign(-5, 7))
179
- #print(math.factorial(4))
180
- #print(math.fmod(-1e100, 1e100))
181
- #
182
- #d = [0.9999999, 1, 2, 3]
183
- #print(sum(d), math.fsum(d))
184
- #print(math.isinf(5), math.isinf(Infinity))
185
- #print(math.modf(5.5))
186
- #print(math.trunc(2.6), math.trunc(-2.6))
187
- #print(math.exp(1e-5), math.expm1(1e-5))
188
- #print(math.log(10), math.log(10, 1000))
189
- #print(math.log1p(1e-15), math.log1p(1))
190
- #print(math.log10(1000), math.log(1000, 10))
191
- #print(math.pow(1, 0), math.pow(1, NaN), math.pow(0, 0), math.pow(NaN, 0), math.pow(4,3), math.pow(100, -2))
192
- #print(math.hypot(3,4))
193
- #print(math.acosh(2), math.asinh(1), math.atanh(0.5), math.cosh(1), math.cosh(-1), math.sinh(1), math.tanh(1))
1
+ ###########################################################
2
+ # RapydScript Standard Library
3
+ # Author: Alexander Tsepkov
4
+ # Copyright 2013 Pyjeon Software LLC
5
+ # License: Apache License 2.0
6
+ # This library is covered under Apache license, so that
7
+ # you can distribute it with your RapydScript applications.
8
+ ###########################################################
9
+
10
+
11
+ # basic implementation of Python's 'math' library
12
+
13
+ # NOTE: this is only meant to aid those porting lots of Python code into RapydScript,
14
+ # if you're writing a new RapydScript application, in most cases you probably want to
15
+ # use JavaScript's Math module directly instead
16
+
17
+
18
+ pi = Math.PI
19
+ e = Math.E
20
+ inf = Infinity
21
+
22
+ ########################################
23
+ # Number-theoretic and representation functions
24
+ ########################################
25
+ def ceil(x):
26
+ return Math.ceil(x)
27
+ def copysign(x, y):
28
+ x = Math.abs(x)
29
+ if y < 0:
30
+ return -x
31
+ else:
32
+ return x
33
+ def fabs(x):
34
+ return Math.abs(x)
35
+ def factorial(x):
36
+ if Math.abs(int(x)) is not x:
37
+ raise ValueError("factorial() only accepts integral values")
38
+ factorial.cache = []
39
+ r = def(n):
40
+ if n is 0 or n is 1:
41
+ return 1
42
+ if not factorial.cache[n]:
43
+ factorial.cache[n] = r(n-1) * n
44
+ return factorial.cache[n]
45
+ return r(x)
46
+ def floor(x):
47
+ return Math.floor(x)
48
+ def fmod(x, y):
49
+ # javascript's % operator isn't consistent with C fmod implementation, this function is
50
+ while y <= x:
51
+ x -= y
52
+ return x
53
+ def fsum(iterable):
54
+ # like Python's fsum, this method is much more resilient to rounding errors than regular sum
55
+ partials = [] # sorted, non-overlapping partial sums
56
+ for x in iterable:
57
+ i = 0
58
+ for y in partials:
59
+ if Math.abs(x) < Math.abs(y):
60
+ x, y = y, x
61
+ hi = x + y
62
+ lo = y - (hi - x)
63
+ if lo:
64
+ partials[i] = lo
65
+ i += 1
66
+ x = hi
67
+ #partials[i:] = [x]
68
+ partials.splice(i, partials.length-i, x)
69
+ return sum(partials)
70
+ def isinf(x):
71
+ return not isFinite(x)
72
+ def isnan(x):
73
+ return isNaN(x)
74
+ def modf(x):
75
+ m = fmod(x, 1)
76
+ return m, x-m
77
+ def trunc(x):
78
+ return x | 0
79
+
80
+ ########################################
81
+ # Power and logarithmic functions
82
+ ########################################
83
+ def exp(x):
84
+ return Math.exp(x)
85
+ def expm1(x):
86
+ # NOTE: Math.expm1() is currently only implemented in Firefox, this provides alternative implementation
87
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/expm1
88
+ #return Math.expm1(x)
89
+ if Math.abs(x) < 1e-5:
90
+ return x + 0.5*x*x
91
+ else:
92
+ return Math.exp(x) - 1
93
+ def log(x, base=e):
94
+ return Math.log(x)/Math.log(base)
95
+ def log1p(x):
96
+ # NOTE: Math.log1p() is currently only implemented in Firefox, this provides alternative implementation
97
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log1p
98
+ # this version has been taken from http://phpjs.org/functions/log1p/
99
+ # admittedly it's not as accurate as MDN version, as you can see from math.log1p(1) result
100
+ ret = 0
101
+ n = 50
102
+ if x <= -1:
103
+ return Number.NEGATIVE_INFINITY
104
+ if x < 0 or x > 1:
105
+ return Math.log(1 + x)
106
+ for i in range(1, n):
107
+ if i % 2 is 0:
108
+ ret -= Math.pow(x, i) / i
109
+ else:
110
+ ret += Math.pow(x, i) / i
111
+ return ret
112
+ def log10(x):
113
+ # NOTE: Math.log10() is currently only implemented in Firefox, this provides alternative implementation
114
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log10
115
+ # I didn't find a more accurate algorithm so I'm using the basic implementation
116
+ return Math.log(x)/Math.LN10
117
+ def pow(x, y):
118
+ if x < 0 and int(y) is not y:
119
+ raise ValueError('math domain error')
120
+ if isnan(y) and x is 1:
121
+ return 1
122
+ return Math.pow(x, y)
123
+ def sqrt(x):
124
+ return Math.sqrt(x)
125
+
126
+ ########################################
127
+ # Trigonometric functions
128
+ ########################################
129
+ def acos(x): return Math.acos(x)
130
+ def asin(x): return Math.asin(x)
131
+ def atan(x): return Math.atan(x)
132
+ def atan2(y, x): return Math.atan2(y, x)
133
+ def cos(x): return Math.cos(x)
134
+ def sin(x): return Math.sin(x)
135
+ def hypot(x, y): return Math.sqrt(x*x + y*y)
136
+ def tan(x): return Math.tan(x)
137
+
138
+ ########################################
139
+ # Angular conversion
140
+ ########################################
141
+ def degrees(x): return x*180/pi
142
+ def radians(x): return x*pi/180
143
+
144
+ ########################################
145
+ # Hyperbolic functions
146
+ ########################################
147
+ def acosh(x):
148
+ # NOTE: will be replaced with official, when it becomes mainstream
149
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/acosh
150
+ return Math.log(x + Math.sqrt(x*x - 1))
151
+ def asinh(x):
152
+ # NOTE: will be replaced with official, when it becomes mainstream
153
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/asinh
154
+ return Math.log(x + Math.sqrt(x*x + 1))
155
+ def atanh(x):
156
+ # NOTE: will be replaced with official, when it becomes mainstream
157
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atanh
158
+ return 0.5 * Math.log((1 + x) / (1 - x))
159
+ def cosh(x):
160
+ # NOTE: will be replaced with official, when it becomes mainstream
161
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/cosh
162
+ return (Math.exp(x) + Math.exp(-x)) / 2
163
+ def sinh(x):
164
+ # NOTE: will be replaced with official, when it becomes mainstream
165
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sinh
166
+ return (Math.exp(x) - Math.exp(-x)) / 2
167
+ def tanh(x):
168
+ # NOTE: will be replaced with official, when it becomes mainstream
169
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/tanh
170
+ return (Math.exp(x) - Math.exp(-x)) / (Math.exp(x) + Math.exp(-x))
171
+
172
+
173
+
174
+ #import stdlib
175
+ #print(math.ceil(4.2))
176
+ #print(math.floor(4.2))
177
+ #print(math.fabs(-6))
178
+ #print(math.copysign(-5, 7))
179
+ #print(math.factorial(4))
180
+ #print(math.fmod(-1e100, 1e100))
181
+ #
182
+ #d = [0.9999999, 1, 2, 3]
183
+ #print(sum(d), math.fsum(d))
184
+ #print(math.isinf(5), math.isinf(Infinity))
185
+ #print(math.modf(5.5))
186
+ #print(math.trunc(2.6), math.trunc(-2.6))
187
+ #print(math.exp(1e-5), math.expm1(1e-5))
188
+ #print(math.log(10), math.log(10, 1000))
189
+ #print(math.log1p(1e-15), math.log1p(1))
190
+ #print(math.log10(1000), math.log(1000, 10))
191
+ #print(math.pow(1, 0), math.pow(1, NaN), math.pow(0, 0), math.pow(NaN, 0), math.pow(4,3), math.pow(100, -2))
192
+ #print(math.hypot(3,4))
193
+ #print(math.acosh(2), math.asinh(1), math.atanh(0.5), math.cosh(1), math.cosh(-1), math.sinh(1), math.tanh(1))
@@ -1,11 +1,11 @@
1
- add = __add__ = def(x, y): return x + y
2
- sub = __sub__ = def(x, y): return x - y
3
- mul = __mul__ = def(x, y): return x * y
4
- div = __div__ = def(x, y): return x / y
5
-
6
- lt = __lt__ = def(x, y): return x < y
7
- le = __le__ = def(x, y): return x <= y
8
- eq = __eq__ = def(x, y): return x is y
9
- ne = __ne__ = def(x, y): return x is not y
10
- ge = __ge__ = def(x, y): return x >= y
11
- gt = __gt__ = def(x, y): return x > y
1
+ add = __add__ = def(x, y): return x + y
2
+ sub = __sub__ = def(x, y): return x - y
3
+ mul = __mul__ = def(x, y): return x * y
4
+ div = __div__ = def(x, y): return x / y
5
+
6
+ lt = __lt__ = def(x, y): return x < y
7
+ le = __le__ = def(x, y): return x <= y
8
+ eq = __eq__ = def(x, y): return x is y
9
+ ne = __ne__ = def(x, y): return x is not y
10
+ ge = __ge__ = def(x, y): return x >= y
11
+ gt = __gt__ = def(x, y): return x > y
@@ -1,20 +1,20 @@
1
- # vim:fileencoding=utf-8
2
- # License: BSD Copyright: 2016, Kovid Goyal <kovid at kovidgoyal.net>
3
- # globals: ρσ_str
4
-
5
- def strings():
6
- string_funcs = set((
7
- 'capitalize strip lstrip rstrip islower isupper isspace lower upper swapcase title'
8
- ' center count endswith startswith find rfind index rindex format join ljust rjust'
9
- ' partition rpartition replace split rsplit splitlines zfill expandtabs').split(' '))
10
-
11
- if not arguments.length:
12
- exclude = {'split', 'replace'}
13
- elif arguments[0]:
14
- exclude = Array.prototype.slice.call(arguments)
15
- else:
16
- exclude = None
17
- if exclude:
18
- string_funcs = string_funcs.difference(set(exclude))
19
- for name in string_funcs:
20
- String.prototype[name] = ρσ_str.prototype[name]
1
+ # vim:fileencoding=utf-8
2
+ # License: BSD Copyright: 2016, Kovid Goyal <kovid at kovidgoyal.net>
3
+ # globals: ρσ_str
4
+
5
+ def strings():
6
+ string_funcs = set((
7
+ 'capitalize strip lstrip rstrip islower isupper isspace lower upper swapcase title'
8
+ ' center count endswith startswith find rfind index rindex format join ljust rjust'
9
+ ' partition rpartition replace split rsplit splitlines zfill expandtabs').split(' '))
10
+
11
+ if not arguments.length:
12
+ exclude = {'split'}
13
+ elif arguments[0]:
14
+ exclude = Array.prototype.slice.call(arguments)
15
+ else:
16
+ exclude = None
17
+ if exclude:
18
+ string_funcs = string_funcs.difference(set(exclude))
19
+ for name in string_funcs:
20
+ String.prototype[name] = ρσ_str.prototype[name]