sqlmath 2026.2.28__tar.gz → 2026.3.31__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.
Files changed (46) hide show
  1. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/.ci.sh +93 -62
  2. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/.github/workflows/ci.yml +29 -15
  3. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/.github/workflows/publish_pypi_test.yml +2 -1
  4. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/.gitignore +2 -1
  5. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/.npmignore +4 -1
  6. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/CHANGELOG.md +16 -0
  7. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/MANIFEST.in +1 -1
  8. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/PKG-INFO +6 -6
  9. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/README.md +5 -5
  10. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/jslint.mjs +1 -1
  11. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/jslint_ci.sh +60 -34
  12. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/package.json +1 -1
  13. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/pyproject.toml +1 -1
  14. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/setup.py +39 -15
  15. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/sqlmath/__init__.py +223 -37
  16. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/sqlmath.mjs +52 -25
  17. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/sqlmath_base.c +97 -41
  18. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/sqlmath_base.h +0 -6
  19. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/sqlmath_external_sqlite.c +2000 -0
  20. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/test.mjs +11 -21
  21. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/test.py +401 -28
  22. sqlmath-2026.2.28/test_lgbm.py → sqlmath-2026.3.31/test_lgbm_numpy.py +86 -56
  23. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/.gitconfig +0 -0
  24. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/.github/workflows/publish.yml +0 -0
  25. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/LICENSE +0 -0
  26. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/asset_image_folder_open_solid.svg +0 -0
  27. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/asset_image_github_brands.svg +0 -0
  28. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/asset_image_logo_256.html +0 -0
  29. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/asset_image_logo_256.png +0 -0
  30. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/asset_image_logo_256.svg +0 -0
  31. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/asset_sqlmath_external_rollup.js +0 -0
  32. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/cpplint.py +0 -0
  33. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/csslint.js +0 -0
  34. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/indent.exe +0 -0
  35. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/index.html +0 -0
  36. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/libiconv2.dll +0 -0
  37. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/libintl3.dll +0 -0
  38. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/sqlmath_browser.mjs +0 -0
  39. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/sqlmath_custom.c +0 -0
  40. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/sqlmath_custom.mjs +0 -0
  41. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/sqlmath_wrapper_wasm.js +0 -0
  42. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/test_data_sinefit.csv +0 -0
  43. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/test_lgbm_binary.test +0 -0
  44. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/test_lgbm_binary.train +0 -0
  45. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/test_lgbm_preb.txt +0 -0
  46. {sqlmath-2026.2.28 → sqlmath-2026.3.31}/zlib.v1.3.1.vcpkg.x64-windows-static.lib +0 -0
@@ -20,7 +20,7 @@ shCiArtifactUploadCustom() {(set -e
20
20
  git fetch origin artifact
21
21
  git checkout origin/artifact "branch-$GITHUB_BRANCH0"
22
22
  mv "branch-$GITHUB_BRANCH0"/* .
23
- git add -f _sqlmath* sqlmath_wasm.*
23
+ git add -f sqlmath_wasm.*
24
24
  # screenshot html
25
25
  PID_LIST=""
26
26
  shBrowserScreenshot \
@@ -34,40 +34,53 @@ shCiArtifactUploadCustom() {(set -e
34
34
  shCiBaseCustom() {(set -e
35
35
  # This function will run custom-code for base-ci.
36
36
  shCiEmsdkExport
37
- FILE="$(node --input-type=module -e '
38
- process.stdout.write(
39
- process.platform === "darwin"
40
- ? "lib_lightgbm.dylib"
41
- : process.platform === "win32"
42
- ? "lib_lightgbm.dll"
43
- : "lib_lightgbm.so"
44
- );
37
+ FILE_LIB_LGBM="$(node --input-type=module -e '
38
+ function libPlatformArchExt() {
39
+ let libArch = process.arch;
40
+ let libExt = process.platform;
41
+ let libPlatform = process.platform;
42
+ libExt = libExt.replace("darwin", "dylib");
43
+ libExt = libExt.replace("win32", "dll");
44
+ libExt = libExt.replace(libPlatform, "so");
45
+ return `${libPlatform}_${libArch}.${libExt}`;
46
+ }
47
+ process.stdout.write(`lib_lightgbm_${libPlatformArchExt()}`);
45
48
  ' "$@")" # '
46
49
  # bugfix - Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
47
- if [ ! -f "sqlmath/$FILE" ]
50
+ if [ ! -f "sqlmath/$FILE_LIB_LGBM" ]
48
51
  then
49
52
  case "$(uname)" in
50
53
  Darwin*)
51
54
  brew install libomp
52
- cp -L /opt/homebrew/opt/libomp/lib/libomp.dylib sqlmath/
55
+ cp -L "$(brew --prefix libomp)/lib/libomp.dylib" \
56
+ "sqlmath/$(node -p '`libomp_${process.platform}_${process.arch}.dylib`')"
53
57
  ;;
54
58
  esac
55
59
  pip install lightgbm=="$(printf "v4.6.0" | sed "s|v||")"
56
60
  cp "$(
57
61
  find "$(
58
- pip show ruff | grep Location | sed "s|Location: ||"
59
- )/lightgbm" | grep "$FILE"
60
- )" "sqlmath/$FILE"
62
+ pip show lightgbm | grep Location | sed "s|Location: ||"
63
+ )/lightgbm" | grep "\<lib_lightgbm\.\(dll\|dylib\|so\)$"
64
+ )" "sqlmath/$FILE_LIB_LGBM"
61
65
  fi
62
66
  # .github_cache - restore
63
67
  if [ "$GITHUB_ACTION" ] && [ -d .github_cache/ ]
64
68
  then
65
- cp -a .github_cache/* . || true # js-hack - */
69
+ cp -a .github_cache/* ./ || true # js-hack - */
66
70
  fi
67
71
  # cleanup
68
72
  rm -rf *.egg-info _sqlmath* build/ sqlmath/_sqlmath* && mkdir -p build/
69
73
  PID_LIST=""
70
74
  #
75
+ # run nodejs-ci
76
+ if [ "$GITHUB_ACTION" ]
77
+ then
78
+ npm_config_mode_test_nopython=1 shCiTestNodejs &
79
+ else
80
+ shCiTestNodejs &
81
+ fi
82
+ PID_LIST="$PID_LIST $!"
83
+ #
71
84
  # python -m build --sdist
72
85
  # python -m cibuildwheel
73
86
  (
@@ -104,23 +117,26 @@ process.stdout.write(
104
117
  ) &
105
118
  PID_LIST="$PID_LIST $!"
106
119
  #
107
- shPidListWait build_ext "$PID_LIST"
108
- #
109
- # run nodejs-ci
110
- shCiTestNodejs
120
+ shPidListWait shCiBaseCustom "$PID_LIST"
111
121
  #
112
122
  # upload artifact
113
- if (shCiMatrixIsmainNodeversion) && ( \
114
- [ "$GITHUB_BRANCH0" = alpha ] \
115
- || [ "$GITHUB_BRANCH0" = beta ] \
116
- || [ "$GITHUB_BRANCH0" = master ] \
117
- )
123
+ if (shCiMatrixIsmainNodeversion) && \
124
+ ( \
125
+ [ "$GITHUB_EVENT_NAME" = push ] || \
126
+ [ "$GITHUB_EVENT_NAME" = schedule ] || \
127
+ [ "$GITHUB_EVENT_NAME" = workflow_dispatch ] \
128
+ ) && \
129
+ ( \
130
+ [ "$GITHUB_BRANCH0" = alpha ] || \
131
+ [ "$GITHUB_BRANCH0" = beta ] || \
132
+ [ "$GITHUB_BRANCH0" = master ] \
133
+ )
118
134
  then
119
135
  export GITHUB_UPLOAD_RETRY=0
120
136
  while true
121
137
  do
122
- GITHUB_UPLOAD_RETRY="$((GITHUB_UPLOAD_RETRY + 1))"
123
- if [ "$GITHUB_UPLOAD_RETRY" -gt 4 ]
138
+ export GITHUB_UPLOAD_RETRY="$((GITHUB_UPLOAD_RETRY + 1))"
139
+ if [ ! "$GITHUB_UPLOAD_RETRY" -le 4 ]
124
140
  then
125
141
  return 1
126
142
  fi
@@ -162,41 +178,49 @@ shCiBaseCustomArtifactUpload() {(set -e
162
178
  cd .tmp/artifact/
163
179
  cp ../../.git/config .git/config
164
180
  # update dir branch-$GITHUB_BRANCH0
165
- mkdir -p "branch-$GITHUB_BRANCH0"
181
+ mkdir -p "branch-$GITHUB_BRANCH0/"
182
+ (
183
+ cd "branch-$GITHUB_BRANCH0/"
184
+ rm -f lib_lightgbm.*
185
+ rm -f libomp.*
166
186
  case "$(uname)" in
167
187
  Darwin*)
168
- rm -f "branch-$GITHUB_BRANCH0/"*darwin*
169
- rm -f "branch-$GITHUB_BRANCH0/"*macos*
188
+ rm -f *darwin.so
189
+ case $(uname -m) in
190
+ arm64)
191
+ rm -f *darwin*arm64*
192
+ rm -f *macos*arm64*
193
+ ;;
194
+ x86_64)
195
+ rm -f *darwin*x64*
196
+ rm -f *macos*x86_64*
197
+ ;;
198
+ esac
199
+ # save libomp
200
+ cp ../../../sqlmath/libomp* ./
170
201
  ;;
171
202
  Linux*)
172
- rm -f "branch-$GITHUB_BRANCH0/"*linux*
203
+ rm -f *linux*
173
204
  # save sdist
174
- rm -f "branch-$GITHUB_BRANCH0/"*.tar.gz
175
- cp ../../dist/sqlmath-*.tar.gz "branch-$GITHUB_BRANCH0"
205
+ rm -f *.tar.gz
206
+ cp ../../../dist/sqlmath-*.tar.gz ./
207
+ # save wasm
208
+ rm -f sqlmath_wasm*
209
+ cp ../../../.artifact/asset_image_logo_256.png ./
210
+ cp ../../../sqlmath_wasm* ./
176
211
  ;;
177
212
  MINGW*)
178
- rm -f "branch-$GITHUB_BRANCH0/"*-win*
179
- rm -f "branch-$GITHUB_BRANCH0/"*_win*
213
+ rm -f *win32_x64*
214
+ rm -f *win_amd64*
180
215
  ;;
181
216
  esac
182
- cp ../../_sqlmath* "branch-$GITHUB_BRANCH0"
183
- cp ../../sqlmath/_sqlmath* "branch-$GITHUB_BRANCH0"
184
- for FILE in \
185
- ../../.artifact/asset_image_logo_256.png \
186
- ../../sqlmath/lib_lightgbm.dll \
187
- ../../sqlmath/lib_lightgbm.dylib \
188
- ../../sqlmath/lib_lightgbm.so \
189
- ../../sqlmath/libomp.dylib \
190
- ../../sqlmath_wasm.js \
191
- ../../sqlmath_wasm.wasm
192
- do
193
- if [ -f "$FILE" ]
194
- then
195
- cp "$FILE" "branch-$GITHUB_BRANCH0"
196
- fi
197
- done
198
- # save cibuildwheel
199
- cp ../../dist/sqlmath-*.whl "branch-$GITHUB_BRANCH0"
217
+ cp ../../../_sqlmath.napi* ./
218
+ cp ../../../_sqlmath.shell* ./
219
+ cp ../../../dist/sqlmath-*.whl ./
220
+ cp ../../../sqlmath/lib_lightgbm* ./
221
+ rm -f *win32_x64*.exp
222
+ rm -f *win32_x64*.lib
223
+ )
200
224
  # git commit
201
225
  git add .
202
226
  git add -f "branch-$GITHUB_BRANCH0"/_sqlmath*
@@ -322,7 +346,7 @@ shCiBuildWasm() {(set -e
322
346
  }());
323
347
  /*jslint-enable*/
324
348
  ' >> sqlmath_wasm.js
325
- cp build/sqlmath_wasm.wasm .
349
+ cp build/sqlmath_wasm.wasm ./
326
350
  ls -l sqlmath_wasm.*
327
351
  )}
328
352
 
@@ -426,8 +450,9 @@ shCiPublishNpmCustom() {(set -e
426
450
  git checkout origin/artifact \
427
451
  branch-beta/_sqlmath* \
428
452
  branch-beta/sqlmath_wasm*
429
- cp -a branch-beta/_sqlmath* .
430
- cp -a branch-beta/sqlmath_wasm.* .
453
+ cp -a branch-beta/_sqlmath.napi* ./
454
+ cp -a branch-beta/_sqlmath.shell* ./
455
+ cp -a branch-beta/sqlmath_wasm.* ./
431
456
  # npm-publish
432
457
  npm publish --access public
433
458
  )}
@@ -436,10 +461,10 @@ shCiPublishPypiCustom() {(set -e
436
461
  # This function will run custom-code to npm-publish package.
437
462
  # fetch artifact
438
463
  git fetch origin artifact --depth=1
439
- git checkout origin/artifact branch-alpha/
464
+ git checkout origin/artifact branch-beta/
440
465
  mkdir dist/
441
- cp -a branch-alpha/sqlmath-*.tar.gz dist/
442
- cp -a branch-alpha/sqlmath-*.whl dist/
466
+ cp -a branch-beta/sqlmath-*.tar.gz dist/
467
+ cp -a branch-beta/sqlmath-*.whl dist/
443
468
  ls -la dist/
444
469
  )}
445
470
 
@@ -477,8 +502,11 @@ ciBuildExt({process});
477
502
  ) &
478
503
  PID_LIST="$PID_LIST $!"
479
504
  # build python c-extension
480
- python setup.py build_ext &
481
- PID_LIST="$PID_LIST $!"
505
+ if [ ! "$npm_config_mode_test_nopython" ]
506
+ then
507
+ python setup.py build_ext &
508
+ PID_LIST="$PID_LIST $!"
509
+ fi
482
510
  shPidListWait build_ext "$PID_LIST"
483
511
  fi;
484
512
  PID_LIST=""
@@ -497,8 +525,11 @@ require("assert")(require("./package.json").name !== "sqlmath");
497
525
  ) &
498
526
  PID_LIST="$PID_LIST $!"
499
527
  # test python
500
- python setup.py test &
501
- PID_LIST="$PID_LIST $!"
528
+ if [ ! "$npm_config_mode_test_nopython" ]
529
+ then
530
+ python setup.py test &
531
+ PID_LIST="$PID_LIST $!"
532
+ fi
502
533
  shPidListWait test "$PID_LIST"
503
534
  )}
504
535
 
@@ -2,6 +2,11 @@
2
2
  # and upload build-artifacts to branch-gh-pages
3
3
  name: ci
4
4
  on:
5
+ pull_request:
6
+ branches:
7
+ - alpha
8
+ - beta
9
+ - master
5
10
  push:
6
11
  branches:
7
12
  - alpha
@@ -24,9 +29,10 @@ jobs:
24
29
  node_version:
25
30
  - "24"
26
31
  os:
32
+ - macos-15-intel
27
33
  - macos-latest
28
34
  - ubuntu-latest
29
- - windows-latest
35
+ - windows-2022
30
36
  python_version:
31
37
  - "3.12"
32
38
  # base - .github/workflows/ci.yml - beg
@@ -37,8 +43,8 @@ jobs:
37
43
  ${{ matrix.architecture }}
38
44
  ${{ matrix.os }}
39
45
  CI_MATRIX_NAME_MAIN: "node v24 x64 ubuntu-latest"
40
- CI_MATRIX_NODE_VERSION: v${{ matrix.node_version }}
41
- CI_MATRIX_NODE_VERSION_MAIN: v24
46
+ CI_MATRIX_NODE_VERSION: ${{ matrix.node_version }}
47
+ CI_MATRIX_NODE_VERSION_MAIN: "24"
42
48
  CI_WORKFLOW_NAME: >
43
49
  ${{ github.workflow }}
44
50
  - ${{ github.event_name }}
@@ -57,7 +63,16 @@ jobs:
57
63
  echo "$(date -u +"%Y-%m-%d %TZ") - ${{ env.CI_WORKFLOW_NAME }}" # "
58
64
  git config --global core.autocrlf false
59
65
  # https://github.com/actions/checkout
60
- - uses: actions/checkout@v4
66
+ - uses: actions/checkout@v5
67
+ # https://github.com/actions/cache
68
+ - uses: actions/cache@v5
69
+ with:
70
+ key: >
71
+ ${{ hashFiles('./package.json') }}
72
+ ${{ matrix.architecture }}
73
+ ${{ matrix.node_version }}
74
+ ${{ matrix.os }}
75
+ path: .github_cache/
61
76
  # fetch jslint_ci.sh from trusted source
62
77
  - run: |
63
78
  git fetch origin alpha --depth=1
@@ -65,25 +80,24 @@ jobs:
65
80
  if [ -f "$FILE" ]; then git checkout origin/alpha "$FILE"; fi; done'
66
81
  # pre-run .ci.sh
67
82
  - run: sh jslint_ci.sh shCiPre
83
+ if: >
84
+ github.event_name == 'push' ||
85
+ github.event_name == 'schedule' ||
86
+ github.event_name == 'workflow_dispatch'
68
87
  # https://github.com/actions/setup-node
69
- - uses: actions/setup-node@v4
88
+ - uses: actions/setup-node@v5
70
89
  with:
71
90
  node-version: ${{ matrix.node_version }}
72
91
  # https://github.com/actions/setup-python
73
- - uses: actions/setup-python@v5
92
+ - uses: actions/setup-python@v6
74
93
  with:
75
94
  python-version: ${{ matrix.python_version }}
76
- # https://github.com/actions/cache
77
- - uses: actions/cache@v4
78
- with:
79
- key: >
80
- ${{ hashFiles('./package.json') }}
81
- ${{ matrix.architecture }}
82
- ${{ matrix.node_version }}
83
- ${{ matrix.os }}
84
- path: .github_cache
85
95
  # run nodejs coverages and tests
86
96
  - run: sh jslint_ci.sh shCiBase
87
97
  # upload build-artifacts to branch-gh-pages
88
98
  - run: sh jslint_ci.sh shCiArtifactUpload
99
+ if: >
100
+ github.event_name == 'push' ||
101
+ github.event_name == 'schedule' ||
102
+ github.event_name == 'workflow_dispatch'
89
103
  # base - .github/workflows/ci.yml - end
@@ -8,7 +8,7 @@ jobs:
8
8
 
9
9
 
10
10
  publish_pypi:
11
- name: Upload release to PyPI
11
+ name: Publish Package to PyPI
12
12
  runs-on: ubuntu-latest
13
13
  environment:
14
14
  name: pypi
@@ -27,3 +27,4 @@ jobs:
27
27
  uses: pypa/gh-action-pypi-publish@release/v1
28
28
  with:
29
29
  repository-url: https://test.pypi.org/legacy/
30
+ verbose: true
@@ -36,5 +36,6 @@ wheelhouse/
36
36
  # base - .gitignore - end
37
37
 
38
38
  binding.gyp
39
- lib_lightgbm.*
39
+ lib_lightgbm*
40
+ libomp*
40
41
  sqlmath_wasm.*
@@ -7,9 +7,12 @@ node_modules
7
7
  !LICENSE
8
8
  !README.md
9
9
 
10
- !_sqlmath*
10
+ !_sqlmath.napi*
11
+ !_sqlmath.shell*
11
12
  !jslint.mjs
13
+ !lib_lightgbm*
12
14
  !sqlmath.mjs
13
15
  !sqlmath_browser.mjs
14
16
  !sqlmath_custom.mjs
17
+ !sqlmath_wasm*
15
18
  !test.mjs
@@ -5,6 +5,22 @@
5
5
  - sqlite - Add similar error-handling from builtin-sql-function PERCENTILE() into custom-sql-function QUANTILE().
6
6
  - none
7
7
 
8
+ # v2026.3.31
9
+ - python-ci - bugfix - Fix shell-function shCiBaseCustom() always skipping python setup.py build_ext.
10
+ - ci - Speed-up windows-ci by replacing windows-latest with windows-2022.
11
+ - sqlmath-ci - Speed-up ci with env-var npm_config_mode_test_nopython, allowing shell-function shCiTestNodejs() to be run in background, parallel to python -m cibuildwheel.
12
+ - sqlmath-ci - Rename pre-built-binaries lib_lightgbm.xxx, libomp.xxx to lib_lightgbm_platform_arch.xxx, libomp_platform_arch.xxx, to prevent name-collision under darwin_arm64 and darwin_x64 builds.
13
+ - sqlmath-ci - Update file setup.py to open text-files with utf-8 encoding.
14
+ - sqlmath-ci - Update file .github/workflows/ci.yml with extra matrix.os macos-15-intel.
15
+ - jslint-ci - Update shell-function shGitPullrequestCleanup() to allow squash-and-merge pull-request.
16
+ - sqlmath-ci - Update file .github/workflows/ci.yml with hook to run on pull-request.
17
+
18
+ # v2026.3.1
19
+ - sqlmath-python - bugfix - Fix 762-character-limit SQL-string-bug in python-function db_exec().
20
+ - jslint-ci - Update shell-function shLintPython().
21
+ - python - Auto-detect-and-load lib_lightgbm.dll.
22
+ - sqlite - Add sqlite-extension csv.c, tsv.c.
23
+
8
24
  # v2026.2.28
9
25
  - python-ci - Fix ruff lint-errors.
10
26
  - jslint-ci - Update shell-function shCiBase() to check npm-version-support, before running npm-pkg-fix.
@@ -39,8 +39,8 @@ include sqlmath_wrapper_wasm.js
39
39
  include test.mjs
40
40
  include test.py
41
41
  include test_data_sinefit.csv
42
- include test_lgbm.py
43
42
  include test_lgbm_binary.test
44
43
  include test_lgbm_binary.train
44
+ include test_lgbm_numpy.py
45
45
  include test_lgbm_preb.txt
46
46
  include zlib.v1.3.1.vcpkg.x64-windows-static.lib
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sqlmath
3
- Version: 2026.2.28
3
+ Version: 2026.3.31
4
4
  Summary: sqlite for datascience
5
5
  Author: Kai Zhu
6
6
  Requires-Python: >=3.10
@@ -27,7 +27,7 @@ Description-Content-Type: text/markdown
27
27
 
28
28
 
29
29
  # Status
30
- | Branch | [master<br>(v2026.2.28)](https://github.com/sqlmath/sqlmath/tree/master) | [beta<br>(Web Demo)](https://github.com/sqlmath/sqlmath/tree/beta) | [alpha<br>(Development)](https://github.com/sqlmath/sqlmath/tree/alpha) |
30
+ | Branch | [master<br>(v2026.3.31)](https://github.com/sqlmath/sqlmath/tree/master) | [beta<br>(Web Demo)](https://github.com/sqlmath/sqlmath/tree/beta) | [alpha<br>(Development)](https://github.com/sqlmath/sqlmath/tree/alpha) |
31
31
  |--:|:--:|:--:|:--:|
32
32
  | CI | [![ci](https://github.com/sqlmath/sqlmath/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/sqlmath/sqlmath/actions?query=branch%3Amaster) | [![ci](https://github.com/sqlmath/sqlmath/actions/workflows/ci.yml/badge.svg?branch=beta)](https://github.com/sqlmath/sqlmath/actions?query=branch%3Abeta) | [![ci](https://github.com/sqlmath/sqlmath/actions/workflows/ci.yml/badge.svg?branch=alpha)](https://github.com/sqlmath/sqlmath/actions?query=branch%3Aalpha) |
33
33
  | Coverage | [![coverage](https://sqlmath.github.io/sqlmath/branch-master/.artifact/coverage/coverage_badge.svg)](https://sqlmath.github.io/sqlmath/branch-master/.artifact/coverage/index.html) | [![coverage](https://sqlmath.github.io/sqlmath/branch-beta/.artifact/coverage/coverage_badge.svg)](https://sqlmath.github.io/sqlmath/branch-beta/.artifact/coverage/index.html) | [![coverage](https://sqlmath.github.io/sqlmath/branch-alpha/.artifact/coverage/coverage_badge.svg)](https://sqlmath.github.io/sqlmath/branch-alpha/.artifact/coverage/index.html) |
@@ -146,11 +146,11 @@ PORT=8080 sh jslint_ci.sh shHttpFileServer
146
146
  ```shell
147
147
  python -m build
148
148
  #
149
- twine upload --repository testpypi dist/sqlmath-2026.2.28*
150
- py -m pip install --index-url https://test.pypi.org/simple/ sqlmath==2026.2.28
149
+ twine upload --repository testpypi dist/sqlmath-2026.3.31*
150
+ py -m pip install --index-url https://test.pypi.org/simple/ sqlmath==2026.3.31
151
151
  #
152
- twine upload dist/sqlmath-2026.2.28*
153
- pip install sqlmath==2026.2.28
152
+ twine upload dist/sqlmath-2026.3.31*
153
+ pip install sqlmath==2026.3.31
154
154
  ```
155
155
 
156
156
 
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
  # Status
5
- | Branch | [master<br>(v2026.2.28)](https://github.com/sqlmath/sqlmath/tree/master) | [beta<br>(Web Demo)](https://github.com/sqlmath/sqlmath/tree/beta) | [alpha<br>(Development)](https://github.com/sqlmath/sqlmath/tree/alpha) |
5
+ | Branch | [master<br>(v2026.3.31)](https://github.com/sqlmath/sqlmath/tree/master) | [beta<br>(Web Demo)](https://github.com/sqlmath/sqlmath/tree/beta) | [alpha<br>(Development)](https://github.com/sqlmath/sqlmath/tree/alpha) |
6
6
  |--:|:--:|:--:|:--:|
7
7
  | CI | [![ci](https://github.com/sqlmath/sqlmath/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/sqlmath/sqlmath/actions?query=branch%3Amaster) | [![ci](https://github.com/sqlmath/sqlmath/actions/workflows/ci.yml/badge.svg?branch=beta)](https://github.com/sqlmath/sqlmath/actions?query=branch%3Abeta) | [![ci](https://github.com/sqlmath/sqlmath/actions/workflows/ci.yml/badge.svg?branch=alpha)](https://github.com/sqlmath/sqlmath/actions?query=branch%3Aalpha) |
8
8
  | Coverage | [![coverage](https://sqlmath.github.io/sqlmath/branch-master/.artifact/coverage/coverage_badge.svg)](https://sqlmath.github.io/sqlmath/branch-master/.artifact/coverage/index.html) | [![coverage](https://sqlmath.github.io/sqlmath/branch-beta/.artifact/coverage/coverage_badge.svg)](https://sqlmath.github.io/sqlmath/branch-beta/.artifact/coverage/index.html) | [![coverage](https://sqlmath.github.io/sqlmath/branch-alpha/.artifact/coverage/coverage_badge.svg)](https://sqlmath.github.io/sqlmath/branch-alpha/.artifact/coverage/index.html) |
@@ -121,11 +121,11 @@ PORT=8080 sh jslint_ci.sh shHttpFileServer
121
121
  ```shell
122
122
  python -m build
123
123
  #
124
- twine upload --repository testpypi dist/sqlmath-2026.2.28*
125
- py -m pip install --index-url https://test.pypi.org/simple/ sqlmath==2026.2.28
124
+ twine upload --repository testpypi dist/sqlmath-2026.3.31*
125
+ py -m pip install --index-url https://test.pypi.org/simple/ sqlmath==2026.3.31
126
126
  #
127
- twine upload dist/sqlmath-2026.2.28*
128
- pip install sqlmath==2026.2.28
127
+ twine upload dist/sqlmath-2026.3.31*
128
+ pip install sqlmath==2026.3.31
129
129
  ```
130
130
 
131
131
 
@@ -163,7 +163,7 @@ let jslint_charset_ascii = (
163
163
  + "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
164
164
  + "`abcdefghijklmnopqrstuvwxyz{|}~\u007f"
165
165
  );
166
- let jslint_edition = "v2026.2.28";
166
+ let jslint_edition = "v2026.3.1-beta";
167
167
  let jslint_export; // The jslint object to be exported.
168
168
  let jslint_fudge = 1; // Fudge starting line and starting
169
169
  // ... column to 1.
@@ -206,7 +206,6 @@ import moduleChildProcess from "child_process";
206
206
  import moduleFs from "fs";
207
207
  import moduleOs from "os";
208
208
  import modulePath from "path";
209
- import moduleUrl from "url";
210
209
  (async function () {
211
210
  let child;
212
211
  let exitCode;
@@ -221,7 +220,7 @@ import moduleUrl from "url";
221
220
  ).test(url)) {
222
221
  url = modulePath.resolve(url);
223
222
  }
224
- file = moduleUrl.parse(url).pathname;
223
+ file = new URL(url, "http://localhost").pathname;
225
224
  // remove prefix $PWD from file
226
225
  if (String(file + "/").startsWith(process.cwd() + "/")) {
227
226
  file = file.replace(process.cwd(), "");
@@ -1075,15 +1074,16 @@ import moduleFs from "fs";
1075
1074
 
1076
1075
  shGitPullrequestCleanup() {(set -e
1077
1076
  # This function will cleanup pull-request after merge.
1077
+ git checkout alpha
1078
+ git push . alpha:__pr_upstream_pre -f
1078
1079
  git fetch upstream beta
1079
1080
  # verify no diff between alpha..upstream/beta
1080
1081
  git diff alpha..upstream/beta
1081
- git push . HEAD:__pr_upstream_pre -f
1082
1082
  git reset upstream/beta
1083
- git push origin alpha -f
1084
- git push origin alpha:beta
1083
+ git push . alpha:beta -f
1084
+ git push origin alpha beta -f
1085
1085
  sh jslint_ci.sh shMyciUpdate
1086
- git push . HEAD:__pr_upstream -f
1086
+ git push . alpha:__pr_upstream -f
1087
1087
  )}
1088
1088
 
1089
1089
  shGitSquashPop() {(set -e
@@ -1373,7 +1373,6 @@ import moduleFs from "fs";
1373
1373
  import moduleHttp from "http";
1374
1374
  import modulePath from "path";
1375
1375
  import moduleRepl from "repl";
1376
- import moduleUrl from "url";
1377
1376
  (async function httpFileServer() {
1378
1377
 
1379
1378
  // this function will start http-file-server
@@ -1421,7 +1420,7 @@ import moduleUrl from "url";
1421
1420
  // init timeStart
1422
1421
  timeStart = Date.now();
1423
1422
  // init pathname
1424
- pathname = moduleUrl.parse(req.url).pathname;
1423
+ pathname = new URL(req.url, "http://localhost").pathname;
1425
1424
  // debug - serverLog
1426
1425
  res.on("close", function () {
1427
1426
  if (pathname === "/favicon.ico") {
@@ -1724,45 +1723,69 @@ function objectDeepCopyWithKeysSorted(obj) {
1724
1723
 
1725
1724
  shLintPython() {(set -e
1726
1725
  # This function will lint python file.
1726
+ # https://docs.astral.sh/ruff/rules/
1727
1727
  FILE_LIST="$@"
1728
1728
  (
1729
1729
  printf "\n\nlint ruff\n"
1730
1730
  OPTION=""
1731
1731
  # autofix
1732
1732
  OPTION="$OPTION --fix"
1733
- # ANN flake8-annotations
1733
+ OPTION="$OPTION --select=ALL"
1734
+ #
1735
+ # ANNXXX flake8-annotations
1734
1736
  OPTION="$OPTION --ignore=ANN"
1735
- # obsolete - one-blank-line-before-class (D203)
1736
- # * 1 blank line required before class docstring
1737
+ #
1738
+ # C901 - complex-structure
1739
+ # {name} is too complex ({complexity} > {max_complexity})
1740
+ OPTION="$OPTION --ignore=C901"
1741
+ #
1742
+ # D203 - incorrect-blank-line-before-class
1743
+ # 1 blank line required before class docstring
1737
1744
  OPTION="$OPTION --ignore=D203"
1738
- # multi-line-summary-first-line (D212)
1739
- # * Multi-line docstring summary should start at the first line
1745
+ #
1746
+ # D212 - multi-line-summary-first-line
1747
+ # Multi-line docstring summary should start at the first line
1740
1748
  OPTION="$OPTION --ignore=D212"
1741
- # non-imperative-mood (D401)
1742
- # * First line of docstring should be in imperative mood: "{first_line}"
1749
+ #
1750
+ # D401 - non-imperative-mood
1751
+ # First line of docstring should be in imperative mood: "{first_line}"
1743
1752
  OPTION="$OPTION --ignore=D401"
1744
- # docstring-starts-with-this (D404)
1745
- # * First word of the docstring should not be "This"
1753
+ #
1754
+ # D404 - docstring-starts-with-this
1755
+ # First word of the docstring should not be "This"
1746
1756
  OPTION="$OPTION --ignore=D404"
1747
- # commented-out-code (ERA001)
1748
- # Commented-out code is dead code, and is often included inadvertently.
1757
+ #
1758
+ # ERA001 - commented-out-code
1759
+ # Found commented-out code
1749
1760
  OPTION="$OPTION --ignore=ERA001"
1750
- # too-many-statements (PLR0915)
1751
- # * Too many statements ({statements} > {max_statements})
1761
+ #
1762
+ # PLR0912 - too-many-branches
1763
+ # Too many branches ({branches} > {max_branches})
1764
+ OPTION="$OPTION --ignore=PLR0912"
1765
+ #
1766
+ # PLR0913 - too-many-arguments
1767
+ # Too many arguments in function definition ({c_args} > {max_args})
1768
+ OPTION="$OPTION --ignore=PLR0913"
1769
+ #
1770
+ # PLR0915 - too-many-statements
1771
+ # Too many statements ({statements} > {max_statements})
1752
1772
  OPTION="$OPTION --ignore=PLR0915"
1753
- # subprocess-without-shell-equals-true (S603)
1754
- # * `subprocess` call: check for execution of untrusted input
1773
+ #
1774
+ # S603 - subprocess-without-shell-equals-true
1775
+ # subprocess call: check for execution of untrusted input
1755
1776
  OPTION="$OPTION --ignore=S603"
1756
- # start-process-with-partial-path (S607)
1757
- # * Starting a process with a partial executable path
1777
+ #
1778
+ # S607 - start-process-with-partial-path
1779
+ # Starting a process with a partial executable path
1758
1780
  OPTION="$OPTION --ignore=S607"
1759
- # hardcoded-sql-expression (S608)
1760
- # SQL injection is a common attack vector for web applications.
1781
+ #
1782
+ # S608 - hardcoded-sql-expression
1783
+ # Possible SQL injection vector through string-based query construction
1761
1784
  OPTION="$OPTION --ignore=S608"
1762
- # print (T201)
1763
- # * `print` found
1785
+ #
1786
+ # T201 - print
1787
+ # print found
1764
1788
  OPTION="$OPTION --ignore=T201"
1765
- OPTION="$OPTION --select=ALL"
1766
1789
  ruff check $OPTION $FILE_LIST
1767
1790
  ) &
1768
1791
  PID_LIST="$PID_LIST $!"
@@ -1770,12 +1793,15 @@ shLintPython() {(set -e
1770
1793
  (
1771
1794
  printf "lint pycodestyle\n"
1772
1795
  OPTION="--ignore="
1773
- # Unexpected indentation (comment) (E116)
1774
- # Comments should be indented relative to the code in the block they are in.
1796
+ #
1797
+ # E116 - unexpected-indentation-comment
1798
+ # Unexpected indentation (comment)
1775
1799
  OPTION="$OPTION,E116"
1776
- # At least two spaces before inline comment (E261)
1777
- # Inline comments should have two spaces before them.
1800
+ #
1801
+ # E261 - too-few-spaces-before-inline-comment
1802
+ # Insert at least two spaces before an inline comment
1778
1803
  OPTION="$OPTION,E261"
1804
+ #
1779
1805
  # Line break occurred before a binary operator (W503)
1780
1806
  # Line breaks should occur after the binary operator to keep all variable
1781
1807
  # names aligned.
@@ -32,5 +32,5 @@
32
32
  },
33
33
  "shCiArtifactUpload": 1,
34
34
  "shCiPublishNpm": 1,
35
- "version": "2026.2.28"
35
+ "version": "2026.3.31"
36
36
  }