bare-script 4.0.3__tar.gz → 4.1.0__tar.gz
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.
- {bare_script-4.0.3/src/bare_script.egg-info → bare_script-4.1.0}/PKG-INFO +9 -1
- {bare_script-4.0.3 → bare_script-4.1.0}/README.md +8 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/setup.cfg +1 -1
- bare_script-4.1.0/setup.py +46 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/__init__.py +10 -3
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/bare.py +9 -1
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/library.py +8 -5
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/runtime.py +5 -1
- bare_script-4.1.0/src/bare_script/runtime_c.c +1693 -0
- {bare_script-4.0.3 → bare_script-4.1.0/src/bare_script.egg-info}/PKG-INFO +9 -1
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script.egg-info/SOURCES.txt +2 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/LICENSE +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/pyproject.toml +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/__main__.py +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/__init__.py +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/args.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/baredoc.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/baredocCLI.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/data.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/dataLineChart.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/dataTable.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/dataUtil.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/diff.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/draw.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/elementModel.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/forms.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/markdown.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/markdownElements.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/markdownHighlight.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/markdownParser.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/markdownUp.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/pager.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/qrcode.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/schemaDoc.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/unittest.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/include/unittestMock.bare +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/model.py +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/options.py +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/parser.py +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script/value.py +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script.egg-info/dependency_links.txt +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script.egg-info/entry_points.txt +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script.egg-info/requires.txt +0 -0
- {bare_script-4.0.3 → bare_script-4.1.0}/src/bare_script.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bare-script
|
|
3
|
-
Version: 4.0
|
|
3
|
+
Version: 4.1.0
|
|
4
4
|
Summary: bare-script
|
|
5
5
|
Home-page: https://github.com/craigahobbs/bare-script
|
|
6
6
|
Author: Craig A. Hobbs
|
|
@@ -191,6 +191,14 @@ markdownPrint('Hello, Markdown!')
|
|
|
191
191
|
~~~
|
|
192
192
|
|
|
193
193
|
|
|
194
|
+
## C Runtime
|
|
195
|
+
|
|
196
|
+
The package ships with an optional CPython C extension (`runtime_c`) that mirrors the pure-Python
|
|
197
|
+
runtime for faster script execution. When the compiled extension is available, it is used
|
|
198
|
+
automatically; otherwise the pure-Python runtime is used as a fallback. Set the environment
|
|
199
|
+
variable `BARESCRIPT_RUNTIME_PY=1` to force the pure-Python runtime.
|
|
200
|
+
|
|
201
|
+
|
|
194
202
|
## Development
|
|
195
203
|
|
|
196
204
|
This package is developed using [python-build](https://github.com/craigahobbs/python-build#readme).
|
|
@@ -166,6 +166,14 @@ markdownPrint('Hello, Markdown!')
|
|
|
166
166
|
~~~
|
|
167
167
|
|
|
168
168
|
|
|
169
|
+
## C Runtime
|
|
170
|
+
|
|
171
|
+
The package ships with an optional CPython C extension (`runtime_c`) that mirrors the pure-Python
|
|
172
|
+
runtime for faster script execution. When the compiled extension is available, it is used
|
|
173
|
+
automatically; otherwise the pure-Python runtime is used as a fallback. Set the environment
|
|
174
|
+
variable `BARESCRIPT_RUNTIME_PY=1` to force the pure-Python runtime.
|
|
175
|
+
|
|
176
|
+
|
|
169
177
|
## Development
|
|
170
178
|
|
|
171
179
|
This package is developed using [python-build](https://github.com/craigahobbs/python-build#readme).
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Licensed under the MIT License
|
|
2
|
+
# https://github.com/craigahobbs/bare-script-py/blob/main/LICENSE
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
bare-script setup
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from setuptools import setup, Extension
|
|
9
|
+
from setuptools.command.build_ext import build_ext
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class OptionalBuildExt(build_ext):
|
|
13
|
+
"""
|
|
14
|
+
Build C extensions optionally - if compilation fails, the package still installs
|
|
15
|
+
and falls back to the pure-Python implementation.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
def run(self):
|
|
19
|
+
try:
|
|
20
|
+
super().run()
|
|
21
|
+
except Exception: # pylint: disable=broad-except
|
|
22
|
+
self._unavailable()
|
|
23
|
+
|
|
24
|
+
def build_extension(self, ext):
|
|
25
|
+
try:
|
|
26
|
+
super().build_extension(ext)
|
|
27
|
+
except Exception: # pylint: disable=broad-except
|
|
28
|
+
self._unavailable()
|
|
29
|
+
|
|
30
|
+
@staticmethod
|
|
31
|
+
def _unavailable():
|
|
32
|
+
print('*' * 70)
|
|
33
|
+
print('WARNING: C extension could not be compiled.')
|
|
34
|
+
print(' Falling back to pure-Python implementation.')
|
|
35
|
+
print('*' * 70)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
setup(
|
|
39
|
+
ext_modules=[
|
|
40
|
+
Extension(
|
|
41
|
+
'bare_script.runtime_c',
|
|
42
|
+
sources=['src/bare_script/runtime_c.c']
|
|
43
|
+
)
|
|
44
|
+
],
|
|
45
|
+
cmdclass={'build_ext': OptionalBuildExt}
|
|
46
|
+
)
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
bare-script package
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
+
import os as _os
|
|
9
|
+
|
|
8
10
|
from .model import \
|
|
9
11
|
lint_script, \
|
|
10
12
|
validate_expression, \
|
|
@@ -25,6 +27,11 @@ from .parser import \
|
|
|
25
27
|
parse_script
|
|
26
28
|
|
|
27
29
|
from .runtime import \
|
|
28
|
-
BareScriptRuntimeError
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
BareScriptRuntimeError
|
|
31
|
+
if not _os.environ.get('BARESCRIPT_RUNTIME_PY'): # pragma: no cover
|
|
32
|
+
try:
|
|
33
|
+
from .runtime_c import evaluate_expression, execute_script
|
|
34
|
+
except ImportError:
|
|
35
|
+
from .runtime import evaluate_expression, execute_script
|
|
36
|
+
else:
|
|
37
|
+
from .runtime import evaluate_expression, execute_script
|
|
@@ -7,14 +7,22 @@ bare-script command-line interface (CLI)
|
|
|
7
7
|
|
|
8
8
|
import argparse
|
|
9
9
|
from functools import partial
|
|
10
|
+
import os as _os
|
|
10
11
|
import sys
|
|
11
12
|
import time
|
|
12
13
|
|
|
13
14
|
from .model import lint_script
|
|
14
15
|
from .options import FETCH_SYSTEM_PREFIX, fetch_read_write, fetch_system, log_stdout, url_file_relative
|
|
15
16
|
from .parser import parse_expression, parse_script
|
|
16
|
-
from .runtime import SYSTEM_GLOBAL_INCLUDES_NAME
|
|
17
|
+
from .runtime import SYSTEM_GLOBAL_INCLUDES_NAME
|
|
17
18
|
from .value import value_boolean
|
|
19
|
+
if not _os.environ.get('BARESCRIPT_RUNTIME_PY'): # pragma: no cover
|
|
20
|
+
try:
|
|
21
|
+
from .runtime_c import evaluate_expression, execute_script
|
|
22
|
+
except ImportError:
|
|
23
|
+
from .runtime import evaluate_expression, execute_script
|
|
24
|
+
else:
|
|
25
|
+
from .runtime import evaluate_expression, execute_script
|
|
18
26
|
|
|
19
27
|
|
|
20
28
|
def main(argv=None):
|
|
@@ -11,6 +11,7 @@ import functools
|
|
|
11
11
|
import importlib
|
|
12
12
|
import json
|
|
13
13
|
import math
|
|
14
|
+
import os as _os
|
|
14
15
|
import random
|
|
15
16
|
import re
|
|
16
17
|
import urllib
|
|
@@ -27,16 +28,18 @@ from .value import R_NUMBER_CLEANUP, ValueArgsError, value_args_model, value_arg
|
|
|
27
28
|
# Helper to dynamically import evaluate_expression to avoid the circular dependency
|
|
28
29
|
def _import_evaluate_expression():
|
|
29
30
|
if not _EVALUATE_EXPRESSION:
|
|
30
|
-
|
|
31
|
+
if not _os.environ.get('BARESCRIPT_RUNTIME_PY'): # pragma: no cover
|
|
32
|
+
try:
|
|
33
|
+
_EVALUATE_EXPRESSION.append(importlib.import_module('bare_script.runtime_c').evaluate_expression)
|
|
34
|
+
except (ImportError, AttributeError):
|
|
35
|
+
_EVALUATE_EXPRESSION.append(importlib.import_module('bare_script.runtime').evaluate_expression)
|
|
36
|
+
else:
|
|
37
|
+
_EVALUATE_EXPRESSION.append(importlib.import_module('bare_script.runtime').evaluate_expression)
|
|
31
38
|
return _EVALUATE_EXPRESSION[0]
|
|
32
39
|
|
|
33
40
|
_EVALUATE_EXPRESSION = []
|
|
34
41
|
|
|
35
42
|
|
|
36
|
-
# The default maximum statements for executeScript
|
|
37
|
-
DEFAULT_MAX_STATEMENTS = 1e9
|
|
38
|
-
|
|
39
|
-
|
|
40
43
|
#
|
|
41
44
|
# Array functions
|
|
42
45
|
#
|
|
@@ -8,13 +8,17 @@ The BareScript runtime
|
|
|
8
8
|
import datetime
|
|
9
9
|
import functools
|
|
10
10
|
|
|
11
|
-
from .library import
|
|
11
|
+
from .library import EXPRESSION_FUNCTIONS, SCRIPT_FUNCTIONS
|
|
12
12
|
from .model import lint_script
|
|
13
13
|
from .options import url_file_relative
|
|
14
14
|
from .parser import parse_script
|
|
15
15
|
from .value import ValueArgsError, value_boolean, value_compare, value_normalize_datetime, value_round_number, value_string
|
|
16
16
|
|
|
17
17
|
|
|
18
|
+
# The default maximum statements for executeScript
|
|
19
|
+
DEFAULT_MAX_STATEMENTS = 1e9
|
|
20
|
+
|
|
21
|
+
|
|
18
22
|
# Coverage configuration object global variable name
|
|
19
23
|
SYSTEM_GLOBAL_COVERAGE_NAME = '__barescriptCoverage'
|
|
20
24
|
|