nodejs-wheel-binaries 20.13.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.
- nodejs_wheel_binaries-20.13.0/.git_archival.txt +4 -0
- nodejs_wheel_binaries-20.13.0/.gitattributes +1 -0
- nodejs_wheel_binaries-20.13.0/.github/workflows/build_wheel.yml +94 -0
- nodejs_wheel_binaries-20.13.0/.nvmrc +1 -0
- nodejs_wheel_binaries-20.13.0/CMakeLists.txt +61 -0
- nodejs_wheel_binaries-20.13.0/LICENSE +7 -0
- nodejs_wheel_binaries-20.13.0/PKG-INFO +102 -0
- nodejs_wheel_binaries-20.13.0/README.md +82 -0
- nodejs_wheel_binaries-20.13.0/cmd/README.md +1 -0
- nodejs_wheel_binaries-20.13.0/cmd/pyproject.toml +31 -0
- nodejs_wheel_binaries-20.13.0/cmd/setup.py +12 -0
- nodejs_wheel_binaries-20.13.0/nodejs_wheel/__init__.py +12 -0
- nodejs_wheel_binaries-20.13.0/nodejs_wheel/__main__.py +4 -0
- nodejs_wheel_binaries-20.13.0/nodejs_wheel/executable.py +92 -0
- nodejs_wheel_binaries-20.13.0/pyproject.toml +44 -0
- nodejs_wheel_binaries-20.13.0/renovate.json +6 -0
- nodejs_wheel_binaries-20.13.0/tests/test_api.py +9 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.git_archival.txt export-subst
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
name: Build and upload to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
tags:
|
|
8
|
+
- v*
|
|
9
|
+
pull_request:
|
|
10
|
+
|
|
11
|
+
concurrency:
|
|
12
|
+
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
|
|
13
|
+
cancel-in-progress: true
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
build_wheels:
|
|
17
|
+
name: Build wheels for cp${{ matrix.python }}-${{ matrix.platform_id }}
|
|
18
|
+
runs-on: ${{ matrix.os }}
|
|
19
|
+
strategy:
|
|
20
|
+
fail-fast: false
|
|
21
|
+
matrix:
|
|
22
|
+
include:
|
|
23
|
+
# linux-64
|
|
24
|
+
- os: ubuntu-latest
|
|
25
|
+
python: 311
|
|
26
|
+
platform_id: manylinux_x86_64
|
|
27
|
+
# macos-x86-64
|
|
28
|
+
- os: macos-13
|
|
29
|
+
python: 311
|
|
30
|
+
platform_id: macosx_x86_64
|
|
31
|
+
# macos-x86-64
|
|
32
|
+
- os: macos-14
|
|
33
|
+
python: 311
|
|
34
|
+
platform_id: macosx_arm64
|
|
35
|
+
# windows-64
|
|
36
|
+
- os: windows-latest
|
|
37
|
+
python: 311
|
|
38
|
+
platform_id: win_amd64
|
|
39
|
+
# linux-aarch64
|
|
40
|
+
- os: ARM64
|
|
41
|
+
python: 311
|
|
42
|
+
platform_id: manylinux_aarch64
|
|
43
|
+
|
|
44
|
+
steps:
|
|
45
|
+
- uses: actions/checkout@v4
|
|
46
|
+
- uses: ilammy/setup-nasm@v1
|
|
47
|
+
if: matrix.platform_id == 'win_amd64'
|
|
48
|
+
- name: Build wheels
|
|
49
|
+
uses: pypa/cibuildwheel@v2.17
|
|
50
|
+
env:
|
|
51
|
+
CIBW_BUILD_VERBOSITY: 1
|
|
52
|
+
CIBW_ARCHS: all
|
|
53
|
+
CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.platform_id }}
|
|
54
|
+
- uses: actions/upload-artifact@v4
|
|
55
|
+
with:
|
|
56
|
+
name: cibw-wheels-cp${{ matrix.python }}-${{ matrix.platform_id }}-${{ strategy.job-index }}
|
|
57
|
+
path: ./wheelhouse/*.whl
|
|
58
|
+
build_sdist:
|
|
59
|
+
name: Build source distribution
|
|
60
|
+
runs-on: ubuntu-latest
|
|
61
|
+
steps:
|
|
62
|
+
- uses: actions/checkout@v4
|
|
63
|
+
- uses: actions/setup-python@v5
|
|
64
|
+
name: Install Python
|
|
65
|
+
with:
|
|
66
|
+
python-version: '3.11'
|
|
67
|
+
- run: python -m pip install build
|
|
68
|
+
- name: Build sdist
|
|
69
|
+
run: pipx run build --sdist
|
|
70
|
+
- name: Build sdist for cmd
|
|
71
|
+
run: cd cmd && pipx run build
|
|
72
|
+
- uses: actions/upload-artifact@v4
|
|
73
|
+
with:
|
|
74
|
+
name: cibw-sdist
|
|
75
|
+
path: dist/*.tar.gz
|
|
76
|
+
- uses: actions/upload-artifact@v4
|
|
77
|
+
with:
|
|
78
|
+
name: cibw-cmd
|
|
79
|
+
path: cmd/dist/*
|
|
80
|
+
upload_pypi:
|
|
81
|
+
needs: [build_wheels, build_sdist]
|
|
82
|
+
runs-on: ubuntu-latest
|
|
83
|
+
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
|
|
84
|
+
permissions:
|
|
85
|
+
# IMPORTANT: this permission is mandatory for trusted publishing
|
|
86
|
+
id-token: write
|
|
87
|
+
steps:
|
|
88
|
+
- uses: actions/download-artifact@v4
|
|
89
|
+
with:
|
|
90
|
+
pattern: cibw-*
|
|
91
|
+
path: dist
|
|
92
|
+
merge-multiple: true
|
|
93
|
+
|
|
94
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
20.13.0
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.15)
|
|
2
|
+
file(READ "${CMAKE_SOURCE_DIR}/.nvmrc" _ver)
|
|
3
|
+
string(STRIP ${_ver} _ver)
|
|
4
|
+
project(nodejs-wheel VERSION ${_ver})
|
|
5
|
+
include(ProcessorCount)
|
|
6
|
+
ProcessorCount(N)
|
|
7
|
+
include(ExternalProject)
|
|
8
|
+
if (UNIX)
|
|
9
|
+
ExternalProject_Add(nodejs
|
|
10
|
+
URL https://github.com/nodejs/node/archive/refs/tags/v${CMAKE_PROJECT_VERSION}.tar.gz
|
|
11
|
+
CONFIGURE_COMMAND echo >> <SOURCE_DIR>/deps/cares/config/linux/ares_config.h
|
|
12
|
+
COMMAND echo \#undef HAVE_SYS_RANDOM_H >> <SOURCE_DIR>/deps/cares/config/linux/ares_config.h
|
|
13
|
+
COMMAND echo \#undef HAVE_GETRANDOM >> <SOURCE_DIR>/deps/cares/config/linux/ares_config.h
|
|
14
|
+
COMMAND <SOURCE_DIR>/configure --prefix=${SKBUILD_PLATLIB_DIR}/nodejs_wheel
|
|
15
|
+
BUILD_IN_SOURCE 1
|
|
16
|
+
BUILD_COMMAND make -j${N}
|
|
17
|
+
INSTALL_COMMAND make install
|
|
18
|
+
USES_TERMINAL_DOWNLOAD true
|
|
19
|
+
USES_TERMINAL_UPDATE true
|
|
20
|
+
USES_TERMINAL_PATCH true
|
|
21
|
+
USES_TERMINAL_CONFIGURE true
|
|
22
|
+
USES_TERMINAL_BUILD true
|
|
23
|
+
USES_TERMINAL_INSTALL true
|
|
24
|
+
USES_TERMINAL_TEST true
|
|
25
|
+
)
|
|
26
|
+
elseif(WIN32)
|
|
27
|
+
ExternalProject_Add(nodejs
|
|
28
|
+
URL https://github.com/nodejs/node/archive/refs/tags/v${CMAKE_PROJECT_VERSION}.tar.gz
|
|
29
|
+
CONFIGURE_COMMAND ""
|
|
30
|
+
BUILD_IN_SOURCE 1
|
|
31
|
+
BUILD_COMMAND <SOURCE_DIR>/vcbuild
|
|
32
|
+
INSTALL_COMMAND ""
|
|
33
|
+
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/nodejs_source
|
|
34
|
+
USES_TERMINAL_DOWNLOAD true
|
|
35
|
+
USES_TERMINAL_UPDATE true
|
|
36
|
+
USES_TERMINAL_PATCH true
|
|
37
|
+
USES_TERMINAL_CONFIGURE true
|
|
38
|
+
USES_TERMINAL_BUILD true
|
|
39
|
+
USES_TERMINAL_INSTALL true
|
|
40
|
+
USES_TERMINAL_TEST true
|
|
41
|
+
)
|
|
42
|
+
install(
|
|
43
|
+
FILES ${CMAKE_CURRENT_BINARY_DIR}/nodejs_source/out/Release/node.exe
|
|
44
|
+
DESTINATION ${SKBUILD_PLATLIB_DIR}/nodejs_wheel
|
|
45
|
+
PERMISSIONS
|
|
46
|
+
OWNER_READ
|
|
47
|
+
OWNER_WRITE
|
|
48
|
+
OWNER_EXECUTE
|
|
49
|
+
GROUP_READ
|
|
50
|
+
GROUP_EXECUTE
|
|
51
|
+
WORLD_READ
|
|
52
|
+
WORLD_EXECUTE
|
|
53
|
+
)
|
|
54
|
+
install(
|
|
55
|
+
DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/nodejs_source/deps/npm
|
|
56
|
+
DESTINATION ${SKBUILD_PLATLIB_DIR}/nodejs_wheel/lib/node_modules/
|
|
57
|
+
USE_SOURCE_PERMISSIONS
|
|
58
|
+
)
|
|
59
|
+
else()
|
|
60
|
+
message(FATAL_ERROR "Unsupported platform")
|
|
61
|
+
endif()
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Copyright 2023 Jinzhe Zeng
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
|
+
|
|
5
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
6
|
+
|
|
7
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: nodejs-wheel-binaries
|
|
3
|
+
Version: 20.13.0
|
|
4
|
+
Summary: unoffical Node.js package
|
|
5
|
+
Keywords: nodejs
|
|
6
|
+
Author-Email: Jinzhe Zeng <jinzhe.zeng@rutgers.edu>
|
|
7
|
+
License: Copyright 2023 Jinzhe Zeng
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
16
|
+
Classifier: Environment :: Console
|
|
17
|
+
Project-URL: Repository, https://github.com/njzjz/nodejs-wheel
|
|
18
|
+
Requires-Python: >=3.7
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
|
|
21
|
+
# Unoffical Node.js wheels
|
|
22
|
+
|
|
23
|
+
[](https://pypi.org/project/nodejs-wheel/)
|
|
24
|
+
[](https://pypi.org/project/nodejs-wheel/)
|
|
25
|
+
[](https://pypi.org/project/nodejs-wheel/)
|
|
26
|
+
[](https://pypi.org/project/nodejs-wheel/)
|
|
27
|
+
|
|
28
|
+
`nodejs-wheel` is an unofficial repository to distribute Node.js prebuilt wheels through PyPI using
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
pip install nodejs-wheel
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
*New in v20.13.0*: If you don't need command line interface (CLI), install only `nodejs-wheel-binaries`, which is a direct dependency of `nodejs-wheel`.
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
pip install nodejs-wheel-binaries
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The package requires Python 3.7 and above.
|
|
41
|
+
|
|
42
|
+
The project is powered by [scikit-build-core](https://github.com/scikit-build/scikit-build-core) and [cibuildwheel](https://github.com/pypa/cibuildwheel).
|
|
43
|
+
|
|
44
|
+
## Available Builds
|
|
45
|
+
|
|
46
|
+
| OS | Arch | Bit | Conditions | New in |
|
|
47
|
+
| ------- | ------- | --- | -------------- | ----------- |
|
|
48
|
+
| Linux | x86_64 | 64 | glibc >= 2.17 | v18.18.0 |
|
|
49
|
+
| Linux | aarch64 | 64 | glibc >= 2.17 | v20.13.0 |
|
|
50
|
+
| macOS | x86_64 | 64 | >= macOS-10.9 | v18.18.0 |
|
|
51
|
+
| macOS | arm64 | 64 | >= macOS-11 | v20.11.1 |
|
|
52
|
+
| Windows | amd64 | 64 | | v18.18.0 |
|
|
53
|
+
|
|
54
|
+
## Usage
|
|
55
|
+
|
|
56
|
+
### Command line
|
|
57
|
+
|
|
58
|
+
Only available in the `nodejs-wheel` package.
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
node -h
|
|
62
|
+
npm -h
|
|
63
|
+
npx -h
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Run library module as a script
|
|
67
|
+
|
|
68
|
+
*New in v20.13.0*.
|
|
69
|
+
|
|
70
|
+
Only support `node`.
|
|
71
|
+
|
|
72
|
+
```sh
|
|
73
|
+
python -m nodejs_wheel --version
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Python API
|
|
77
|
+
|
|
78
|
+
*New in v20.13.0*.
|
|
79
|
+
|
|
80
|
+
```py
|
|
81
|
+
from nodejs_wheel import (
|
|
82
|
+
node,
|
|
83
|
+
npm,
|
|
84
|
+
npx,
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
node("--version")
|
|
88
|
+
npm("--version")
|
|
89
|
+
npx("--version")
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## License
|
|
93
|
+
|
|
94
|
+
`nodejs-wheel` distributed under the same MIT [license](LICENSE) as [Node.js](https://github.com/nodejs/node).
|
|
95
|
+
|
|
96
|
+
## Other projects
|
|
97
|
+
|
|
98
|
+
The project is inspired by many other similiar projects:
|
|
99
|
+
|
|
100
|
+
- [samwillis/nodejs-pypi](https://github.com/samwillis/nodejs-pypi): The package redistribute the official Node.js binaraies to PyPI. However, the offical binary for Nodejs 18 requires GLIBC 2.28, making it unsupported in [manylinux2014](https://github.com/pypa/manylinux) images. Besides, the wheel tag is wrong.
|
|
101
|
+
- [sbwml/node-latest-centos](https://github.com/sbwml/node-latest-centos): Use GitHub Actions to build Node.js in CentOS 7, but is not related to Python or PyPI.
|
|
102
|
+
- [scikit-build/cmake-python-distributions](https://github.com/scikit-build/cmake-python-distributions): Use cibuildwheel and scikit-build to build CMake and distribute CMake in PyPI.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Unoffical Node.js wheels
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/nodejs-wheel/)
|
|
4
|
+
[](https://pypi.org/project/nodejs-wheel/)
|
|
5
|
+
[](https://pypi.org/project/nodejs-wheel/)
|
|
6
|
+
[](https://pypi.org/project/nodejs-wheel/)
|
|
7
|
+
|
|
8
|
+
`nodejs-wheel` is an unofficial repository to distribute Node.js prebuilt wheels through PyPI using
|
|
9
|
+
|
|
10
|
+
```sh
|
|
11
|
+
pip install nodejs-wheel
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
*New in v20.13.0*: If you don't need command line interface (CLI), install only `nodejs-wheel-binaries`, which is a direct dependency of `nodejs-wheel`.
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
pip install nodejs-wheel-binaries
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
The package requires Python 3.7 and above.
|
|
21
|
+
|
|
22
|
+
The project is powered by [scikit-build-core](https://github.com/scikit-build/scikit-build-core) and [cibuildwheel](https://github.com/pypa/cibuildwheel).
|
|
23
|
+
|
|
24
|
+
## Available Builds
|
|
25
|
+
|
|
26
|
+
| OS | Arch | Bit | Conditions | New in |
|
|
27
|
+
| ------- | ------- | --- | -------------- | ----------- |
|
|
28
|
+
| Linux | x86_64 | 64 | glibc >= 2.17 | v18.18.0 |
|
|
29
|
+
| Linux | aarch64 | 64 | glibc >= 2.17 | v20.13.0 |
|
|
30
|
+
| macOS | x86_64 | 64 | >= macOS-10.9 | v18.18.0 |
|
|
31
|
+
| macOS | arm64 | 64 | >= macOS-11 | v20.11.1 |
|
|
32
|
+
| Windows | amd64 | 64 | | v18.18.0 |
|
|
33
|
+
|
|
34
|
+
## Usage
|
|
35
|
+
|
|
36
|
+
### Command line
|
|
37
|
+
|
|
38
|
+
Only available in the `nodejs-wheel` package.
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
node -h
|
|
42
|
+
npm -h
|
|
43
|
+
npx -h
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Run library module as a script
|
|
47
|
+
|
|
48
|
+
*New in v20.13.0*.
|
|
49
|
+
|
|
50
|
+
Only support `node`.
|
|
51
|
+
|
|
52
|
+
```sh
|
|
53
|
+
python -m nodejs_wheel --version
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Python API
|
|
57
|
+
|
|
58
|
+
*New in v20.13.0*.
|
|
59
|
+
|
|
60
|
+
```py
|
|
61
|
+
from nodejs_wheel import (
|
|
62
|
+
node,
|
|
63
|
+
npm,
|
|
64
|
+
npx,
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
node("--version")
|
|
68
|
+
npm("--version")
|
|
69
|
+
npx("--version")
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## License
|
|
73
|
+
|
|
74
|
+
`nodejs-wheel` distributed under the same MIT [license](LICENSE) as [Node.js](https://github.com/nodejs/node).
|
|
75
|
+
|
|
76
|
+
## Other projects
|
|
77
|
+
|
|
78
|
+
The project is inspired by many other similiar projects:
|
|
79
|
+
|
|
80
|
+
- [samwillis/nodejs-pypi](https://github.com/samwillis/nodejs-pypi): The package redistribute the official Node.js binaraies to PyPI. However, the offical binary for Nodejs 18 requires GLIBC 2.28, making it unsupported in [manylinux2014](https://github.com/pypa/manylinux) images. Besides, the wheel tag is wrong.
|
|
81
|
+
- [sbwml/node-latest-centos](https://github.com/sbwml/node-latest-centos): Use GitHub Actions to build Node.js in CentOS 7, but is not related to Python or PyPI.
|
|
82
|
+
- [scikit-build/cmake-python-distributions](https://github.com/scikit-build/cmake-python-distributions): Use cibuildwheel and scikit-build to build CMake and distribute CMake in PyPI.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../README.md
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools", "setuptools_scm"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "nodejs-wheel"
|
|
7
|
+
dynamic = ["version", "dependencies"]
|
|
8
|
+
description = "unoffical Node.js package"
|
|
9
|
+
authors = [
|
|
10
|
+
{name = "Jinzhe Zeng", email = "jinzhe.zeng@rutgers.edu"},
|
|
11
|
+
]
|
|
12
|
+
license = {file = "LICENSE"}
|
|
13
|
+
classifiers = [
|
|
14
|
+
"Programming Language :: Python :: 3",
|
|
15
|
+
"Development Status :: 5 - Production/Stable",
|
|
16
|
+
"Environment :: Console",
|
|
17
|
+
]
|
|
18
|
+
requires-python = ">=3.7"
|
|
19
|
+
readme = "README.md"
|
|
20
|
+
keywords = ["nodejs"]
|
|
21
|
+
|
|
22
|
+
[project.urls]
|
|
23
|
+
repository = "https://github.com/njzjz/nodejs-wheel"
|
|
24
|
+
|
|
25
|
+
[project.scripts]
|
|
26
|
+
node = "nodejs_wheel.executable:_node_entry_point"
|
|
27
|
+
npm = "nodejs_wheel.executable:_npm_entry_point"
|
|
28
|
+
npx = "nodejs_wheel.executable:_npx_entry_point"
|
|
29
|
+
|
|
30
|
+
[tool.setuptools_scm]
|
|
31
|
+
root = ".."
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from setuptools import setup
|
|
2
|
+
from setuptools_scm import Configuration, _get_version
|
|
3
|
+
|
|
4
|
+
config = Configuration.from_file("pyproject.toml")
|
|
5
|
+
version = _get_version(config)
|
|
6
|
+
assert version is not None
|
|
7
|
+
|
|
8
|
+
setup(
|
|
9
|
+
install_requires=[
|
|
10
|
+
f"nodejs-wheel=={version}",
|
|
11
|
+
],
|
|
12
|
+
)
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
import os
|
|
3
|
+
import subprocess
|
|
4
|
+
import sys
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
ROOT_DIR = os.path.dirname(__file__)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def _program(name, args, **kwargs):
|
|
11
|
+
bin_dir = ROOT_DIR if os.name == 'nt' else os.path.join(ROOT_DIR, "bin")
|
|
12
|
+
return subprocess.call([os.path.join(bin_dir, name)] + args, **kwargs)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def call_node(*args, **kwargs):
|
|
16
|
+
suffix = '.exe' if os.name == 'nt' else ''
|
|
17
|
+
return _program('node' + suffix, list(args), **kwargs)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def node(args=None, **kwargs):
|
|
21
|
+
"""Call the node executable with the given arguments.
|
|
22
|
+
|
|
23
|
+
Parameters
|
|
24
|
+
----------
|
|
25
|
+
args : Optional[list[str]], default=None
|
|
26
|
+
List of arguments to pass to the node executable.
|
|
27
|
+
If None, the arguments are taken from sys.argv[1:].
|
|
28
|
+
**kwargs : dict[str, Any]
|
|
29
|
+
Other arguments passed to subprocess.call
|
|
30
|
+
|
|
31
|
+
Returns
|
|
32
|
+
-------
|
|
33
|
+
int
|
|
34
|
+
Return code of the node executable.
|
|
35
|
+
"""
|
|
36
|
+
if args is None:
|
|
37
|
+
args = sys.argv[1:]
|
|
38
|
+
return call_node(*args, **kwargs)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def npm(args=None, **kwargs):
|
|
42
|
+
"""Call the npm executable with the given arguments.
|
|
43
|
+
|
|
44
|
+
Parameters
|
|
45
|
+
----------
|
|
46
|
+
args : Optional[list[str]], default=None
|
|
47
|
+
List of arguments to pass to the npm executable.
|
|
48
|
+
If None, the arguments are taken from sys.argv[1:].
|
|
49
|
+
**kwargs : dict[str, Any]
|
|
50
|
+
Other arguments passed to subprocess.call
|
|
51
|
+
|
|
52
|
+
Returns
|
|
53
|
+
-------
|
|
54
|
+
int
|
|
55
|
+
Return code of the npm executable.
|
|
56
|
+
"""
|
|
57
|
+
if args is None:
|
|
58
|
+
args = sys.argv[1:]
|
|
59
|
+
return call_node(os.path.join(ROOT_DIR, "lib", "node_modules", "npm", "bin", "npm-cli.js"), *args, **kwargs)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def npx(args=None, **kwargs):
|
|
63
|
+
"""Call the npx executable with the given arguments.
|
|
64
|
+
|
|
65
|
+
Parameters
|
|
66
|
+
----------
|
|
67
|
+
args : Optional[list[str]], default=None
|
|
68
|
+
List of arguments to pass to the npx executable.
|
|
69
|
+
If None, the arguments are taken from sys.argv[1:].
|
|
70
|
+
**kwargs : dict[str, Any]
|
|
71
|
+
Other arguments passed to subprocess.call
|
|
72
|
+
|
|
73
|
+
Returns
|
|
74
|
+
-------
|
|
75
|
+
int
|
|
76
|
+
Return code of the npx executable.
|
|
77
|
+
"""
|
|
78
|
+
if args is None:
|
|
79
|
+
args = sys.argv[1:]
|
|
80
|
+
return call_node(os.path.join(ROOT_DIR, "lib", "node_modules", "npm", "bin", "npx-cli.js"), *args, **kwargs)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def _node_entry_point():
|
|
84
|
+
raise SystemExit(node(close_fds=False))
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def _npm_entry_point():
|
|
88
|
+
raise SystemExit(npm(close_fds=False))
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def _npx_entry_point():
|
|
92
|
+
raise SystemExit(npx(close_fds=False))
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["scikit-build-core>=0.3.0"]
|
|
3
|
+
build-backend = "scikit_build_core.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "nodejs-wheel-binaries"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
description = "unoffical Node.js package"
|
|
9
|
+
authors = [
|
|
10
|
+
{name = "Jinzhe Zeng", email = "jinzhe.zeng@rutgers.edu"},
|
|
11
|
+
]
|
|
12
|
+
license = {file = "LICENSE"}
|
|
13
|
+
classifiers = [
|
|
14
|
+
"Programming Language :: Python :: 3",
|
|
15
|
+
"Development Status :: 5 - Production/Stable",
|
|
16
|
+
"Environment :: Console",
|
|
17
|
+
]
|
|
18
|
+
dependencies = [
|
|
19
|
+
]
|
|
20
|
+
requires-python = ">=3.7"
|
|
21
|
+
readme = "README.md"
|
|
22
|
+
keywords = ["nodejs"]
|
|
23
|
+
|
|
24
|
+
[project.urls]
|
|
25
|
+
repository = "https://github.com/njzjz/nodejs-wheel"
|
|
26
|
+
|
|
27
|
+
[tool.scikit-build]
|
|
28
|
+
wheel.install-dir = "nodejs_wheel"
|
|
29
|
+
wheel.py-api = "py2.py3"
|
|
30
|
+
wheel.packages = [
|
|
31
|
+
"nodejs_wheel",
|
|
32
|
+
]
|
|
33
|
+
cmake.args = [
|
|
34
|
+
]
|
|
35
|
+
metadata.version.provider = "scikit_build_core.metadata.setuptools_scm"
|
|
36
|
+
|
|
37
|
+
[tool.setuptools_scm]
|
|
38
|
+
|
|
39
|
+
[tool.cibuildwheel]
|
|
40
|
+
build = ["cp311-*"]
|
|
41
|
+
skip = ["*-win32", "*-manylinux_i686", "*-musllinux*"]
|
|
42
|
+
build-verbosity = 1
|
|
43
|
+
before-test = ["pip install --no-deps cmd/"]
|
|
44
|
+
test-command = "node -h && npm --version && npx --version && python -m nodejs_wheel --version && python {project}/tests/test_api.py"
|