scalebox-sdk 0.1.14__py3-none-any.whl → 0.1.15__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scalebox-sdk
3
- Version: 0.1.14
3
+ Version: 0.1.15
4
4
  Summary: ScaleBox Python SDK - A multi-language code execution sandbox with Python, R, Node.js, Deno/TypeScript, Java, and Bash support
5
5
  Author-email: ScaleBox Team <dev@scalebox.dev>
6
6
  Maintainer-email: ScaleBox Team <dev@scalebox.dev>
@@ -68,66 +68,68 @@ Dynamic: license-file
68
68
  [![Import Sorting: isort](https://img.shields.io/badge/imports-isort-blue.svg)](https://pycqa.github.io/isort/)
69
69
  [![Multi-Language Support](https://img.shields.io/badge/languages-Python%20%7C%20R%20%7C%20Node.js%20%7C%20TypeScript%20%7C%20Java%20%7C%20Bash-orange.svg)](https://github.com/scalebox-dev/scalebox-sdk-python)
70
70
 
71
- 一个用于在可控沙箱中执行多语言代码的 Python SDK,支持同步与异步模式,以及多语言 Kernel(Python、R、Node.js、Deno/TypeScript、Java/IJAVA、Bash)。已提供全面的真实环境测试用例与脚本。
71
+ > [中文文档](./README_CN.md)
72
72
 
73
- ## 功能特性
74
- - 多语言内核:Python、R、Node.js、Deno/TypeScript、Java/IJAVA、Bash
75
- - 同步 `Sandbox` 与异步 `AsyncSandbox` 执行
76
- - 持久上下文:跨多次执行保留变量/状态
77
- - 回调订阅:stdout、stderr、结果与错误
78
- - 丰富结果格式:text、html、markdown、svg、png、jpeg、pdf、latex、json、javascript、chart、data 等
79
- - 真实环境测试:覆盖同步/异步与多语言示例
73
+ A Python SDK for executing multi-language code in a controlled sandbox environment, supporting both synchronous and asynchronous modes, along with multi-language kernels (Python, R, Node.js, Deno/TypeScript, Java/IJAVA, Bash). Comprehensive real-world test cases and scripts are provided.
80
74
 
81
- ## 环境要求
75
+ ## Features
76
+ - **Multi-language kernels**: Python, R, Node.js, Deno/TypeScript, Java/IJAVA, Bash
77
+ - **Execution modes**: Synchronous `Sandbox` and asynchronous `AsyncSandbox`
78
+ - **Persistent context**: Retain variables/state across multiple executions
79
+ - **Callback subscriptions**: stdout, stderr, results, and errors
80
+ - **Rich result formats**: text, html, markdown, svg, png, jpeg, pdf, latex, json, javascript, chart, data, and more
81
+ - **Real-world testing**: Comprehensive test coverage for sync/async and multi-language examples
82
+
83
+ ## Requirements
82
84
  - Python 3.12+
83
- - 可访问的 Scalebox 环境或本地服务
85
+ - Accessible Scalebox environment or local service
84
86
 
85
- ## 安装
87
+ ## Installation
86
88
 
87
89
  ```bash
88
- # 克隆项目
90
+ # Clone the repository
89
91
  git clone https://github.com/scalebox-dev/scalebox-sdk-python.git
90
92
  cd scalebox-sdk-python
91
93
 
92
- # 建议使用虚拟环境
94
+ # Recommended: use a virtual environment
93
95
  python3 -m venv venv
94
96
  source venv/bin/activate
95
97
 
96
- # 安装依赖
98
+ # Install dependencies
97
99
  pip install -r scalebox/requirements.txt
98
100
  ```
99
101
 
100
- 如果你以源码方式直接使用包(非 pip 安装),请将 `scalebox` 目录加入 Python 路径或复制到 venv site-packages
102
+ If you're using the package directly from source (not via pip), add the `scalebox` directory to your Python path or copy it to your venv's site-packages:
101
103
  ```bash
102
104
  cp -r scalebox venv/lib/python3.12/site-packages/
103
105
  ```
104
106
 
105
- ## 配置
106
- 支持从环境变量或 `.env` 文件读取凭据:
107
+ ## Configuration
108
+ Credentials can be read from environment variables or a `.env` file:
107
109
 
108
110
  - `SBX_API_KEY`
109
111
 
110
- 示例:
112
+ Example:
111
113
  ```env
112
114
  # .env
113
115
  SBX_API_KEY=***
114
116
  ```
115
- 或:
117
+ Or:
116
118
  ```bash
117
119
  export SBX_API_KEY=***
118
120
  ```
119
121
 
120
- 可选:使用 `python-dotenv` 自动加载 `.env`:
122
+ Optional: Use `python-dotenv` to automatically load `.env`:
121
123
  ```bash
122
124
  pip install python-dotenv
123
125
  ```
124
126
 
125
- ## 快速开始(同步)
127
+ ## Quick Start (Synchronous)
126
128
  ```python
127
129
  from dotenv import load_dotenv; load_dotenv()
128
130
  from scalebox.code_interpreter import Sandbox
129
131
 
130
- sandbox = Sandbox.create() # 默认生存期 5 分钟
132
+ sandbox = Sandbox.create() # Default lifetime: 5 minutes
131
133
  execution = sandbox.run_code("print('hello world')", language="python")
132
134
  print(execution.logs.stdout)
133
135
 
@@ -135,7 +137,7 @@ files = sandbox.files.list("/")
135
137
  print(files)
136
138
  ```
137
139
 
138
- ## 快速开始(异步)
140
+ ## Quick Start (Asynchronous)
139
141
  ```python
140
142
  import asyncio
141
143
  from dotenv import load_dotenv; load_dotenv()
@@ -149,15 +151,15 @@ async def main():
149
151
  asyncio.run(main())
150
152
  ```
151
153
 
152
- ## 多语言示例
153
- - Python:`language="python"`
154
- - R:`language="r"`
155
- - Node.js:`language="nodejs"`
156
- - Deno/TypeScript:`language="typescript"`
157
- - JavaIJAVA/纯Java):`language="ijava"` `language="java"`
158
- - Bash:`language="bash"`
154
+ ## Multi-Language Examples
155
+ - Python: `language="python"`
156
+ - R: `language="r"`
157
+ - Node.js: `language="nodejs"`
158
+ - Deno/TypeScript: `language="typescript"`
159
+ - Java (IJAVA/pure Java): `language="ijava"` or `language="java"`
160
+ - Bash: `language="bash"`
159
161
 
160
- 示例(Node.js):
162
+ ### Node.js Example:
161
163
  ```python
162
164
  from scalebox.code_interpreter import Sandbox
163
165
  sbx = Sandbox.create()
@@ -169,7 +171,7 @@ result = sbx.run_code(code, language="nodejs")
169
171
  print(result.logs.stdout)
170
172
  ```
171
173
 
172
- 示例(R):
174
+ ### R Example:
173
175
  ```python
174
176
  from scalebox.code_interpreter import Sandbox
175
177
  sbx = Sandbox.create()
@@ -182,7 +184,7 @@ res = sbx.run_code(code, language="r")
182
184
  print(res.logs.stdout)
183
185
  ```
184
186
 
185
- 示例(Deno/TypeScript):
187
+ ### Deno/TypeScript Example:
186
188
  ```python
187
189
  from scalebox.code_interpreter import Sandbox
188
190
  sbx = Sandbox.create()
@@ -195,7 +197,7 @@ res = sbx.run_code(ts, language="typescript")
195
197
  print(res.logs.stdout)
196
198
  ```
197
199
 
198
- 示例(Java/IJAVA):
200
+ ### Java/IJAVA Example:
199
201
  ```python
200
202
  from scalebox.code_interpreter import Sandbox
201
203
  sbx = Sandbox.create()
@@ -207,7 +209,7 @@ res = sbx.run_code(code, language="java")
207
209
  print(res.logs.stdout)
208
210
  ```
209
211
 
210
- 示例(Bash):
212
+ ### Bash Example:
211
213
  ```python
212
214
  from scalebox.code_interpreter import Sandbox
213
215
  sbx = Sandbox.create()
@@ -215,8 +217,8 @@ res = sbx.run_code("echo 'Hello from Bash'", language="bash")
215
217
  print(res.logs.stdout)
216
218
  ```
217
219
 
218
- ## 上下文管理(Context
219
- 上下文允许跨多次执行复用变量/状态:
220
+ ## Context Management
221
+ Context allows you to reuse variables/state across multiple executions:
220
222
  ```python
221
223
  from scalebox.code_interpreter import Sandbox
222
224
  sbx = Sandbox.create()
@@ -224,10 +226,11 @@ ctx = sbx.create_code_context(language="python", cwd="/tmp")
224
226
 
225
227
  sbx.run_code("counter = 0", context=ctx)
226
228
  sbx.run_code("counter += 1; print(counter)", context=ctx)
227
- # 使用完必须清理
229
+ # Must clean up when done
228
230
  sbx.destroy_context(ctx)
229
231
  ```
230
- 异步 API:
232
+
233
+ Async API:
231
234
  ```python
232
235
  from scalebox.code_interpreter import AsyncSandbox
233
236
 
@@ -239,7 +242,7 @@ async def demo():
239
242
  await sbx.destroy_context(ctx)
240
243
  ```
241
244
 
242
- ## 回调(可选)
245
+ ## Callbacks (Optional)
243
246
  ```python
244
247
  from scalebox.code_interpreter import Sandbox
245
248
  from scalebox.code_interpreter import OutputMessage, Result, ExecutionError
@@ -268,109 +271,109 @@ sbx.run_code(
268
271
  )
269
272
  ```
270
273
 
271
- ## 结果格式(Result
272
- `Result` 可能包含如下数据字段:
274
+ ## Result Formats
275
+ `Result` may contain the following data fields:
273
276
  - `text`, `html`, `markdown`, `svg`, `png`, `jpeg`, `pdf`, `latex`
274
277
  - `json_data`, `javascript`, `data`, `chart`
275
278
  - `execution_count`, `is_main_result`, `extra`
276
279
 
277
- 可以通过 `list(result.formats())` 查看可用格式。
280
+ Use `list(result.formats())` to view available formats.
278
281
 
279
- ## 运行测试
280
- 项目 `test/` 目录包含全面的真实环境用例(非 unittest,直接脚本风格),覆盖:
281
- - 同步与异步综合用例
282
- - 多语言内核(PythonRNode.jsDeno/TypeScriptJava/IJAVABash
283
- - 上下文管理、回调与结果格式
282
+ ## Running Tests
283
+ The `test/` directory contains comprehensive real-world use cases (not unittest-style, direct script-style), covering:
284
+ - Synchronous and asynchronous comprehensive test cases
285
+ - Multi-language kernels (Python, R, Node.js, Deno/TypeScript, Java/IJAVA, Bash)
286
+ - Context management, callbacks, and result formats
284
287
 
285
- 运行语法检查:
288
+ Run syntax checks:
286
289
  ```bash
287
290
  cd test
288
291
  python3 -m py_compile test_code_interpreter_sync_comprehensive.py
289
292
  python3 -m py_compile test_code_interpreter_async_comprehensive.py
290
293
  ```
291
294
 
292
- 建议在虚拟环境中准备依赖并按需安装语言运行时(如 RNodeDenoJDK/IJAVA 等),确保各内核能够被后端执行。
295
+ It's recommended to prepare dependencies in a virtual environment and install language runtimes (such as R, Node, Deno, JDK/IJAVA, etc.) as needed, ensuring each kernel can be executed by the backend.
293
296
 
294
- ## 版本管理(Version Management
297
+ ## Version Management
295
298
 
296
- 本项目使用自动化版本管理,支持语义化版本控制(Semantic Versioning)。
299
+ This project uses automated version management with support for Semantic Versioning.
297
300
 
298
- ### 🚀 自动版本升级
301
+ ### 🚀 Automatic Version Bumping
299
302
 
300
- 使用内置脚本进行版本升级:
303
+ Use the built-in script to bump versions:
301
304
 
302
305
  ```bash
303
- # 升级补丁版本 (0.1.1 -> 0.1.2)
306
+ # Bump patch version (0.1.1 -> 0.1.2)
304
307
  python scripts/bump_version.py patch
305
308
 
306
- # 升级次要版本 (0.1.1 -> 0.2.0)
309
+ # Bump minor version (0.1.1 -> 0.2.0)
307
310
  python scripts/bump_version.py minor
308
311
 
309
- # 升级主要版本 (0.1.1 -> 1.0.0)
312
+ # Bump major version (0.1.1 -> 1.0.0)
310
313
  python scripts/bump_version.py major
311
314
  ```
312
315
 
313
- ### 📦 自动发布流程
316
+ ### 📦 Automated Release Process
314
317
 
315
- #### 🚀 方法1GitHub Actions 一键升级(推荐)
318
+ #### 🚀 Method 1: GitHub Actions One-Click Bump (Recommended)
316
319
 
317
- 1. **进入 GitHub Actions 页面**
318
- 2. **选择 "CI/CD Pipeline" workflow**
319
- 3. **点击 "Run workflow" 按钮**
320
- 4. **选择版本类型**:
321
- - `patch`: 补丁版本 (0.1.1 → 0.1.2)
322
- - `minor`: 次要版本 (0.1.1 → 0.2.0)
323
- - `major`: 主要版本 (0.1.1 → 1.0.0)
324
- 5. **选择自动提交选项**
325
- 6. **点击运行** - 系统会自动完成所有步骤!
320
+ 1. **Navigate to GitHub Actions page**
321
+ 2. **Select "CI/CD Pipeline" workflow**
322
+ 3. **Click "Run workflow" button**
323
+ 4. **Select version type**:
324
+ - `patch`: Patch version (0.1.1 → 0.1.2)
325
+ - `minor`: Minor version (0.1.1 → 0.2.0)
326
+ - `major`: Major version (0.1.1 → 1.0.0)
327
+ 5. **Select auto-commit option**
328
+ 6. **Click run** - The system will automatically complete all steps!
326
329
 
327
- #### 🔧 方法2:本地脚本升级
330
+ #### 🔧 Method 2: Local Script Bump
328
331
 
329
- 1. **版本升级**:使用 `bump_version.py` 脚本
330
- 2. **GitHub Actions**:自动构建和发布到PyPI
331
- 3. **触发条件**:
332
- - 推送到 `main` 分支
333
- - 创建 `v*` 标签(如 `v0.1.2`)
332
+ 1. **Version Bump**: Use `bump_version.py` script
333
+ 2. **GitHub Actions**: Automatically build and publish to PyPI
334
+ 3. **Trigger Conditions**:
335
+ - Push to `main` branch
336
+ - Create `v*` tag (e.g., `v0.1.2`)
334
337
 
335
- ### 🔧 版本文件同步
338
+ ### 🔧 Version File Synchronization
336
339
 
337
- 脚本会自动更新以下文件中的版本:
340
+ The script automatically updates versions in the following files:
338
341
  - `scalebox/__init__.py`
339
342
  - `scalebox/version.py`
340
343
  - `pyproject.toml`
341
- - `CHANGELOG.md`(可选)
344
+ - `CHANGELOG.md` (optional)
342
345
 
343
- ### 📋 发布步骤
346
+ ### 📋 Release Steps
344
347
 
345
348
  ```bash
346
- # 1. 升级版本
349
+ # 1. Bump version
347
350
  python scripts/bump_version.py patch
348
351
 
349
- # 2. 检查更改
352
+ # 2. Check changes
350
353
  git diff
351
354
 
352
- # 3. 提交更改
355
+ # 3. Commit changes
353
356
  git add .
354
357
  git commit -m "Bump version to 0.1.2"
355
358
 
356
- # 4. 推送并创建标签
359
+ # 4. Push and create tag
357
360
  git push origin main
358
361
  git push origin --tags
359
362
 
360
- # 5. GitHub Actions 会自动发布到 PyPI
363
+ # 5. GitHub Actions will automatically publish to PyPI
361
364
  ```
362
365
 
363
- ### 🏷️ 版本规则
366
+ ### 🏷️ Version Rules
364
367
 
365
- - **MAJOR**:不兼容的API更改
366
- - **MINOR**:向后兼容的功能添加
367
- - **PATCH**:向后兼容的错误修复
368
+ - **MAJOR**: Incompatible API changes
369
+ - **MINOR**: Backward-compatible feature additions
370
+ - **PATCH**: Backward-compatible bug fixes
368
371
 
369
- ## 常见问题(Troubleshooting
370
- - Import/依赖错误:请确认已激活 venv 并正确安装 `scalebox/requirements.txt` 所需依赖
371
- - `ModuleNotFoundError`:在测试脚本中添加项目根路径到 `sys.path`,或从项目根目录运行
372
- - 外部内核不可用:确保环境已安装对应语言运行时(R/Node/Deno/JDK)与后端已启用该内核
373
- - 超时/网络:检查网络与后端服务可达性,必要时增大 `timeout`/`request_timeout`
372
+ ## Troubleshooting
373
+ - **Import/dependency errors**: Ensure venv is activated and all required dependencies from `scalebox/requirements.txt` are installed
374
+ - **`ModuleNotFoundError`**: Add the project root path to `sys.path` in test scripts, or run from the project root directory
375
+ - **External kernels unavailable**: Ensure the environment has the corresponding language runtime installed (R/Node/Deno/JDK) and the backend has enabled that kernel
376
+ - **Timeout/network issues**: Check network connectivity and backend service accessibility, increase `timeout`/`request_timeout` if necessary
374
377
 
375
- ## 许可证
376
- 本项目遵循项目仓库所附许可证(LICENSE)条款。
378
+ ## License
379
+ This project is licensed under the terms of the LICENSE file in the repository.
@@ -1,9 +1,9 @@
1
- scalebox/__init__.py,sha256=T8maPxMttoWt6YjoyyRcNDgXbHdKkaBnzc7D9Wq_-WM,1812
1
+ scalebox/__init__.py,sha256=QG3xEv5Gg61_bZKmDsCEwEQmXKZQSkBcMkNs6so7JXk,1812
2
2
  scalebox/cli.py,sha256=HWIyGuhbP1WZm839CwTysauL78xMBOoatFychxzloxQ,3904
3
3
  scalebox/connection_config.py,sha256=J49-3tYaaoRDpa1l2dbnW3T8XmLrqEZBPXlraFvPp7I,2563
4
4
  scalebox/exceptions.py,sha256=10R9VXfvgO4XJJnxyzyrzkxliyeEBX0ZC36izXa8R5k,2053
5
5
  scalebox/requirements.txt,sha256=LEYsk2VzoxKR-V44Y6qJuJ3vKdTYS79f1Gv1Ajleifo,567
6
- scalebox/version.py,sha256=m1BKx1iToiCH8M-PikRYtzbwMMX3yEYCig65wk3Ccyo,323
6
+ scalebox/version.py,sha256=4fBt8EdDgj_M68VIKu4UNlceTZXPlBfRYSzaU0_7d1k,323
7
7
  scalebox/api/__init__.py,sha256=_9nWyeNg4Y_Z30YpBNoDP6S92YdlO_5xBkrp-we0SIg,4167
8
8
  scalebox/api/metadata.py,sha256=lg5ekfnFZYZoCoJxIPo961HEGVg_rLLRJBbw4ZApM_Y,512
9
9
  scalebox/api/client/__init__.py,sha256=IVRaxvQcdPu1Xxc3t--g3ir3Wl5f3Y0zKMwy1nkKN80,155
@@ -79,7 +79,7 @@ scalebox/code_interpreter/models.py,sha256=so4_kPkouB9ET0MN2LkeTaPWXAXJNQIaz0IEY
79
79
  scalebox/csx_connect/__init__.py,sha256=LpNSDgIjJbOyeddLRyTVLsY0UqRWYAvlAn0itEDhuao,81
80
80
  scalebox/csx_connect/client.py,sha256=fmlND6h2iiTaeWcccf6aukvQ_6SCblr1RylArGN3k78,13151
81
81
  scalebox/csx_desktop/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
- scalebox/csx_desktop/main.py,sha256=dDjiQf0sGYO8HMIyOkDPEipd7F_7Sofijqug1G--l7U,21819
82
+ scalebox/csx_desktop/main.py,sha256=mdnHFaAxreH6xgI1-vRuXEmNM9F3CPJxdmpfLOwhJEw,21908
83
83
  scalebox/generated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
84
  scalebox/generated/api.py,sha256=SjK64GhgaWFMkktn4ekb5p8zBZXvA88GZ4legCT27Jo,1558
85
85
  scalebox/generated/api_pb2.py,sha256=n6SmPlDl4Fx6vQl3kiw6oXUb9eTLK07_WNHjoPOhtLI,25941
@@ -117,8 +117,8 @@ scalebox/sandbox_sync/commands/pty.py,sha256=KQStIe-ts_sSWjE_zD01AMqMCGbq9wGeXzb
117
117
  scalebox/sandbox_sync/filesystem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
118
  scalebox/sandbox_sync/filesystem/filesystem.py,sha256=ajZgv3VyBfFtO8o4BIx6w7z1vhFugnLXysRfLBsa_ms,18193
119
119
  scalebox/sandbox_sync/filesystem/watch_handle.py,sha256=dC9p74AHMv-3mQ1tudmOPjrpjvcJ7wFmCduNdity6os,2027
120
- scalebox/test/CODE_INTERPRETER_TESTS_READY.md,sha256=cU9aOccv6BWllsz4aIIHokMW9QPxsPlJEJKR_oXr69o,9695
121
- scalebox/test/README.md,sha256=YwFmc4kjgZN9uRVrN2qCPUDC6RfeAXFJ-syeRS9mdiE,8182
120
+ scalebox/test/CODE_INTERPRETER_TESTS_READY.md,sha256=gtS9jRp2VB44MVG-ztb1JgYiqWtea8Z-TMEK1mZzfgE,11365
121
+ scalebox/test/README.md,sha256=1rpgOo8uv-zT6QNw05MCCl8XzplD6xvWl3gE7frn9xI,9129
122
122
  scalebox/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
123
123
  scalebox/test/aclient.py,sha256=hCZAs2X1AwRHevexdbH0Z2MdahSczjvRglnyb1WFrV4,2335
124
124
  scalebox/test/code_interpreter_centext.py,sha256=f2GC3l8jsNF9n1Sl4boxJMGqWNl1d1Ff29f_5hahH00,468
@@ -148,9 +148,9 @@ scalebox/test/testsandbox_sync.py,sha256=v1dFAJWKbyLnjIiafTR9TafxJF1gaUk-W2mmQU4
148
148
  scalebox/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
149
  scalebox/utils/httpcoreclient.py,sha256=kjTndd-YECPe3n_G1HfGgitzRwntC21tqtIqZ62V6Lg,9868
150
150
  scalebox/utils/httpxclient.py,sha256=oLpCP2RChvnspS6Unl6ngmpY72yPokTfSqMm9m-7k38,13442
151
- scalebox_sdk-0.1.14.dist-info/licenses/LICENSE,sha256=9zP32kHlBovkfji1R6ptx3H7WjJJvnf4UuwTpfogmsY,1069
152
- scalebox_sdk-0.1.14.dist-info/METADATA,sha256=dH-vRHJljDCPF9nQnrMbrO3vkWuqN3StcEPYMafX70c,12198
153
- scalebox_sdk-0.1.14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
154
- scalebox_sdk-0.1.14.dist-info/entry_points.txt,sha256=g7C1Trcg8EyvAGMnHpJ3alqtZzQuMypYUQVFK13kOFM,47
155
- scalebox_sdk-0.1.14.dist-info/top_level.txt,sha256=CDjlibkbOG-MT-s1TRxs4Xe_iN1m11ii48spB6DOMj4,9
156
- scalebox_sdk-0.1.14.dist-info/RECORD,,
151
+ scalebox_sdk-0.1.15.dist-info/licenses/LICENSE,sha256=9zP32kHlBovkfji1R6ptx3H7WjJJvnf4UuwTpfogmsY,1069
152
+ scalebox_sdk-0.1.15.dist-info/METADATA,sha256=1eO1vkpp8FL4ociKeIvDdGaFq-hZZxfrQ5bvyI0haQI,12736
153
+ scalebox_sdk-0.1.15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
154
+ scalebox_sdk-0.1.15.dist-info/entry_points.txt,sha256=g7C1Trcg8EyvAGMnHpJ3alqtZzQuMypYUQVFK13kOFM,47
155
+ scalebox_sdk-0.1.15.dist-info/top_level.txt,sha256=CDjlibkbOG-MT-s1TRxs4Xe_iN1m11ii48spB6DOMj4,9
156
+ scalebox_sdk-0.1.15.dist-info/RECORD,,