[BUG] translate_imports uses blind str.replace — corrupts identifiers and string contents
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 55/100
Hướng nghiên cứu
Start in translate_imports in maithili_dsl/cli.py, where module names are swapped with plain str.replace, then read _make_keyword_pattern in transpile.py to see the word-boundary approach to reuse. Switch the module rewrite to word boundaries applied only outside string literals and comments, and record translated_modules from actual import statements. Done when both reproductions (the substring case and the string-literal case) produce unchanged output in tests/test_cli.py or tests/test_security.py, and आयात गणित followed by गणित.sqrt(...) still works.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
File: maithili_dsl/cli.py (translate_imports)
translate_imports() still uses blind str.replace() — the exact class of bug that was fixed in the transpiler for keywords (see v0.3.0 hardening). Two verified reproductions:
Substring corruption:
Input: उच्चगणित.कोष = १
Output: उच्चmath.कोष = १ # गणित matched inside उच्चगणित
Rewrites inside string literals:
Input: छपाउ("गणित.")
Output: छपाउ("math.") # user-visible output changed
Side effect: because "{module}." appearing anywhere (including strings/comments) adds the module to translated_modules, the import whitelist gets looser than intended.
Fix: reuse the word-boundary pattern machinery from transpile.py (_make_keyword_pattern) and run module translation on code regions only (after/with tokenization), not on the raw source. Track translated_modules from actual आयात statements rather than substring hits.
Tests: both repros above in tests/test_cli.py or tests/test_security.py, plus regression tests that legitimate आयात गणित + गणित.sqrt(...) still work.
- Ngôn ngữ chính
- Python
- Star
- 1
- Fork
- 4
- Merge trung bình
- 12 ngày 21 giờ
- Pull request đã merge (30 ngày)
- 1
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của alphacrack/python-maithili-dsl
-
help wanted infra P2 testing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
-
documentation enhancement good first issue help wanted P3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
documentation good first issue P3
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
-
area:linter enhancement good first issue P3 translation
Độ khó 2/5 Nửa ngày Mức phù hợp với người mới 66/100
-
area:cli enhancement good first issue P3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Tất cả issue của alphacrack/python-maithili-dsl
Issue tương tự
-
documentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
JheysonJhordyHuarauyaRiquelme/sprocguard#18 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement good first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
dlq/synthpopcan#59 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
mdn/translated-content#40220 ·
Maintainer thường phản hồi trong vòng 4 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
ETSInitiative/PETSIRD#243 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
deferred p2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
cuadrao-ai/argus#2160 ·
Maintainer thường phản hồi trong vòng 1 ngày