bytecodealliance / bytecodealliance/componentize-py
Allow dynamic imports in sandbox example
- Ngôn ngữ chính
- Rust
- Star
- 277
- Fork
- 51
- Merge trung bình
- 12 giờ 10 phút
- Pull request đã merge (30 ngày)
- 10
Mô tả
I'd like to execute code using the sandbox example, but am running into an issue. I want to allow exec'd code to import packages, but if I don't import packages in the host script, the guest code won't run.
```python
# Guest code
import json
print(json.dumps({"message": "Hello"}))
```
```python
# Works
import sys
import json
from command import exports
class Run(exports.Run):
def run(self):
with open(sys.argv[1]) as f:
code = f.read()
exec(code)
```
```python
# Fails
import sys
from command import exports
class Run(exports.Run):
def run(self):
with open(sys.argv[1]) as f:
code = f.read()
exec(code)
```
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu từ điểm vào Run.run của ví dụ sandbox, đặc biệt là nơi nó đọc mã guest và gọi exec. Chạy chương trình guest được示示 với và không có import json ở phía host, sau đó theo dõi hành vi import. Hoàn thành khi mã guest có thể import json một cách động mà không yêu cầu script host phải import nó trước.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- security
- Loại issue
- Tính năng
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100