Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

为支持Python3进行前期调研和需求分析 #38

Open
nobodxbodon opened this issue Jan 28, 2019 · 14 comments
Open

为支持Python3进行前期调研和需求分析 #38

nobodxbodon opened this issue Jan 28, 2019 · 14 comments

Comments

@nobodxbodon
Copy link

nobodxbodon commented Jan 28, 2019

下面是一些初步设想的目标, 想请教一下可行性:

  • 与zhpy2一样, 通过库实现, 而不用修改编译器
  • 具备zhpy2的所有功能
  • 可以调用所有其他Python3的现有库
  • 编译/警示信息也中文化, 比如下面:
>>> 打印(学生)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
命名错误: 命名'学生'未定义   <------------

其他辅助工具/库

  • 添加IDE的中文输入插件, 与自动补全功能进行集成. 效果如这个vscode插件
  • 支持源码调试(设置断点等等)
  • 支持中文化的单元测试, 如参考unittest:
.断言相等("你好 世界".分离(), ['你好', '世界'])

暂缓:

  • 周蟒与原始Python代码的互转
@gasolin
Copy link
Owner

gasolin commented Feb 8, 2019

我覺得實現是沒什麼問題的,zhpy 2已經把以上主要問題點都解決過一遍了

@nobodxbodon
Copy link
Author

@gasolin 我不大确定的主要是这两点:

  • 编译/警示信息也中文化
  • 支持源码调试(设置断点等等)

请问这些也都在zhpy 2中实现了吗?

@gasolin
Copy link
Owner

gasolin commented Feb 8, 2019

這兩點並沒有做到, 编译/警示信息也中文化 可以參考 https://github.com/gasolin/zhpy/blob/master/zhpy2/zhpy/interpreter.py#L58 看看能否攔截信息並中文化後顯示

@nobodxbodon
Copy link
Author

请问有没有周蟒的实现设计文档/介绍文章? 想了解一下pyparsing的作用等等细节.
打算先尝试一下编译/警示信息也中文化.
支持源码调试(设置断点等等)对于小程序/教学用也许并不必要, 因此暂时搁置.

@gasolin
Copy link
Owner

gasolin commented Feb 9, 2019

可參考簡報 https://www.slideshare.net/gasolin/python-zhpy 和 wiki 文檔 https://github.com/gasolin/zhpy/tree/wiki

看簡報才發現zhpy2也有做 traceback_convertor

@nobodxbodon
Copy link
Author

刚写了个对traceback的汉化示例, 也许通过替换sys.excepthook更优雅些?

请问zhpy2的traceback_convertor是类似作用吗? 还是为调试用?

wiki好像主要是用户手册. 请问pyparsing模块是用于进行周蟒代码和原始Python代码的互转吗?

@gasolin
Copy link
Owner

gasolin commented Feb 10, 2019

刚写了个对traceback的汉化示例, 也许通过替换sys.excepthook更优雅些?

sounds good

请问zhpy2的traceback_convertor是类似作用吗? 还是为调试用?

時間太久遠忘了,請自行參考源碼嘗試

wiki好像主要是用户手册. 请问pyparsing模块是用于进行周蟒代码和原始Python代码的互转吗?

check https://github.com/gasolin/zhpy/blob/master/zhpy2/zhpy/zhpy.py#L207

@nobodxbodon
Copy link
Author

多谢. 当下觉得周蟒<->原始Python源码互转可以置后实现, 因为前期的应用应该多数很短.

另外, 请问如果要开始实现, 哪种方式比较恰当? 是fork此repo并在zhpy3的基础上实现, 或是另开repo从头开始并标明渊源, 或是其他?

@nobodxbodon
Copy link
Author

@gasolin 请教一下, 周蟒中进行的token替换部分, 如果字符串碰巧是关键字, 是否会出现问题? 比如:

convertor("印出 '印出'")

是否会返回print 'print'?

@gasolin
Copy link
Owner

gasolin commented May 9, 2019

不記得了,應該是不會
可以跑跑看

@nobodxbodon
Copy link
Author

@gasolin 多谢. 刚比较了一下, 发现pyparsing加上quotedString之后就好了.

初步感觉Python3的内置utf支持会节省一些工作量(相对周蟒2).

@fanghaifei
Copy link

能尽快出zhpy3吗?先能实现zhpy2的所有功能

我觉得常用类库的中文化,很有必要

ini文件,可以考虑允许 #符号的注释

@nobodxbodon
Copy link
Author

@fanghaifei 群里有位在实现类似功能,实现机制也许不同。据了解已开始标准库的中文化,以及 IDE 的辅助功能。有兴趣的话可以交流一下。

@laowu2019
Copy link

@fanghaifei 我正在汉化 python,请进中文编程QQ群 620225373 交流。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants