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

命名提议 #1

Closed
nobodxbodon opened this issue May 22, 2021 · 31 comments
Closed

命名提议 #1

nobodxbodon opened this issue May 22, 2021 · 31 comments
Assignees

Comments

@nobodxbodon
Copy link
Contributor

看到不少”是否“前缀的,比如:”文本_是否为汉字“,而”为“已有了判断之意,用“文本_全为汉字”亦可。
像“文本_是否为小写字母”去掉“是否”也可以。

@duolabmeng6
Copy link
Owner

image
为减少学习成本命名与精易模块命名保持了一致 你的建议收到这边会增加更加简洁的别名方便输入

@nobodxbodon
Copy link
Contributor Author

另外,python 源码标识符和文件名可考虑用中文命名,如 codeConv、dirkBase、progiterUtil 等如改用中文后含义也许会更一目了然。

@duolabmeng6
Copy link
Owner

duolabmeng6 commented May 22, 2021

另外,python 源码标识符和文件名可考虑用中文命名,如 codeConv、dirkBase、progiterUtil 等如改用中文后含义也许会更一目了然。

文件名没办法使用中文会导致诡异的情况...ide无法运行测试用例..

用户在使用的时候只需要

from pyefun import *

python的库文件的话命名会一直保持英文..中文的文件会导致linux下各种诡异问题 goefun的话 没有这方面的问题所以会使用中文文件名

这里有所有命令的索引 用户只需要看这里即可

https://pyefun.readthedocs.io/zh_CN/latest/genindex.html

@nobodxbodon
Copy link
Contributor Author

问题信息可否帖一下?木兰重现项目 一直用的中文文件名,unittest 在 mac/linux/win 命令行下都跑过没问题。刚试了 pycharm 看起来也可以:
Screen Shot 2021-05-22 at 12 21 37 AM

@duolabmeng6
Copy link
Owner

duolabmeng6 commented May 22, 2021

问题信息可否帖一下?木兰重现项目 一直用的中文文件名,unittest 在 mac/linux/win 命令行下都跑过没问题。刚试了 pycharm 看起来也可以:
Screen Shot 2021-05-22 at 12 21 37 AM

image
image

也不是跑不了就是特别麻烦.......每次都会弹出这个玩意

为了避免这些调试上的麻烦...我就没有使用中文了

以前也遇到过中文名字 linux出现诡异bug.......

不过本项目已经测试跑在linux上完全没有问题

英文的话 直接点运行测试用例就跑起来了~~~

反正就是这个原因让我没用中文文件名

@duolabmeng6
Copy link
Owner

duolabmeng6 commented May 22, 2021

ide 报错 Error: Provide a qualified name of a function, class or module" 反正 也能运行 但是要按2遍 你是怎么解决的?
已经升级到 2021的ide了 但是还是没办法
image

@nobodxbodon
Copy link
Contributor Author

有时差,我这早上七点半刚起。方便的话能不能在 github 上传一个能复现这个问题的小示例项目?

@duolabmeng6
Copy link
Owner

有时差,我这早上七点半刚起。方便的话能不能在 github 上传一个能复现这个问题的小示例项目?

image

import unittest

from .文本处理 import *


class Test文本处理(unittest.TestCase):

    def test_测试一下ide无法直接调试的问题(self):
        pass
        data = 测试一下ide无法直接调试的问题()


def 测试一下ide无法直接调试的问题():
    print("测试一下ide无法直接调试的问题")

image
image

Error: Provide a qualified name of a function, class or module"

image

Launching unittests with arguments python -m unittest pyefun.文本处理_test.Test文本处理.test_测试一下ide无法直接调试的问题 in C:\python\pyefun\pyefun



Ran 1 test in 0.002s

OK
测试一下ide无法直接调试的问题

Process finished with exit code 0

虽然最终是可以运行 但是 实在是太麻烦了..这个问题我之前尝试解决了 尝试了 1小时左右 没办法解决 所以就是用了 英文命令文件名了

@duolabmeng6
Copy link
Owner

由于代码都需要测试用例来运行 所以 这个功能如果不能解决的话 不考虑把文件名都改成中文...
虽然改成中文命令很舒服 但是没办法调试了

@nobodxbodon
Copy link
Contributor Author

这个分支 加了上面测试代码。

IDE 版本:
PyCharm 2021.1 (Professional Edition)
Build #PY-211.6693.115, built on April 6, 2021
macOS 10.13.6

好像用的快捷方式有点不同:
Screen Shot 2021-05-22 at 2 15 10 PM
运行直接就通过了:
Screen Shot 2021-05-22 at 2 16 38 PM
运行配置也不同(没改过):
Screen Shot 2021-05-22 at 2 17 56 PM-cover

@duolabmeng6
Copy link
Owner

duolabmeng6 commented May 22, 2021

mac下的ide 我没测试 在window下开发的 因为要对照 精易模块和易语言核心支持库...
因为这个项目想让更多人维护吧所以这种会引起...奇奇怪怪的ide的问题 就不纠结了.

window下也可以运行 但是我要点3遍...太麻烦了 似乎是 ide没办法获取中文的命名类...具体不明真相 mac我晚些测试一下

你点一下 测试方法里面的 运行图标 也可以吗 我window下对整个测试文件的运行也是没问题的..

@nobodxbodon
Copy link
Contributor Author

你点一下 测试方法里面的 运行图标 也可以吗 我window下对整个测试文件的运行也是没问题的..

哦,测试方法里面的 运行图标试出同样问题了。我看看没招的话向 JB 社区反映一下吧。

@duolabmeng6
Copy link
Owner

你点一下 测试方法里面的 运行图标 也可以吗 我window下对整个测试文件的运行也是没问题的..

哦,测试方法里面的 运行图标试出同样问题了。我看看没招的话向 JB 社区反映一下吧。

所以还是没办法 支持的话 我很乐意用中文文件名的
你可以帮忙跟jb提一下 他解决了我就改中文名字~~

@nobodxbodon
Copy link
Contributor Author

看到这个 SO 帖子:Pucharm unittest error: Provide a qualified name of function, class or a module,看起来是 target 名字的正则检查限制。

在官方 tracker 找到了个韩国开发者提交的同样 issue:https://youtrack.jetbrains.com/issue/PY-35860 回头看看如何补充或另开。

@duolabmeng6
Copy link
Owner

他2年前提出的到现在都没解决~~我们去重新提一下吧

@nobodxbodon
Copy link
Contributor Author

刚跟了个帖: https://youtrack.jetbrains.com/issue/PY-35860#focus=Comments-27-4908994.0-0
看看下星期啥时候回应吧。

@duolabmeng6
Copy link
Owner

刚跟了个帖: https://youtrack.jetbrains.com/issue/PY-35860#focus=Comments-27-4908994.0-0
看看下星期啥时候回应吧。

重新开个帖子吧 用中文做示例叫他们修复

@nobodxbodon
Copy link
Contributor Author

嗯,因为是相同问题就跟帖了,先看几天吧。没反应的话再开新帖。

@duolabmeng6
Copy link
Owner

嗯,因为是相同的问题就跟帖了,先看几天吧。没反应的话再开新帖。

他们有回复吗 能不能解决这个问题~

@nobodxbodon
Copy link
Contributor Author

没看到回复,建了个新 issue:https://youtrack.jetbrains.com/issue/PY-49059

@nobodxbodon
Copy link
Contributor Author

已有相同 issue 被合并了:https://youtrack.jetbrains.com/issue/PY-48747

@duolabmeng6
Copy link
Owner

大佬这个bug他们修复了没

@nobodxbodon
Copy link
Contributor Author

大佬这个bug他们修复了没

没看出是否已开始着手。从这个 SO 帖子看来,只要把 isWellFormed 的条件放宽就可以,我在一开始建的 PY-49059 里也提到了,不知道他们是不是有其他的考虑。

自己构建一个pycharm不知是否可行,有空的话可以试试。

说个题外话,有没有认识自己搞开源IDE项目的?虽然现在有中文补全辅助插件,但毕竟受限于现有IDE的API和补全机制,长远来看必然有需求开发适合中文开发者的IDE(短期内也许需要倚靠定制现有IDE实现)。早先有过一些 相关讨论。最近看到 hbuilderx,虽然是闭源,不过至少可以看到自研IDE的市场需求。

@nobodxbodon
Copy link
Contributor Author

刚更新了issue:https://youtrack.jetbrains.com/issue/PY-48747#focus=Comments-27-4974355.0-0
构建pycharm挺费劲,现在不大确定该如何改这个正则:^[a-zA-Z0-9._]+[a-zA-Z0-9_]$

@duolabmeng6
Copy link
Owner

刚更新了issue:https://youtrack.jetbrains.com/issue/PY-48747#focus=Comments-27-4974355.0-0
构建pycharm挺费劲,现在不大确定该如何改这个正则:^[a-zA-Z0-9._]+[a-zA-Z0-9_]$

def 文本_取出文本中汉字(欲处理文本: str) -> str:
    '返回文本中的所有汉字'
    result = re.findall(r"[\u4e00-\u9fa5]", 欲处理文本)
    return "".join(result)

目测

^[a-zA-Z0-9._\u4e00-\u9fa5]+[a-zA-Z0-9_\u4e00-\u9fa5]$

就可以

@duolabmeng6
Copy link
Owner

duolabmeng6 commented Jun 26, 2021

大佬这个bug他们修复了没

没看出是否已开始着手。从这个 SO 帖子看来,只要把 isWellFormed 的条件放宽就可以,我在一开始建的 PY-49059 里也提到了,不知道他们是不是有其他的考虑。

自己构建一个pycharm不知是否可行,有空的话可以试试。

说个题外话,有没有认识自己搞开源IDE项目的?虽然现在有中文补全辅助插件,但毕竟受限于现有IDE的API和补全机制,长远来看必然有需求开发适合中文开发者的IDE(短期内也许需要倚靠定制现有IDE实现)。早先有过一些 相关讨论。最近看到 hbuilderx,虽然是闭源,不过至少可以看到自研IDE的市场需求。

测试一下中文文件名的可行性

mac 编译后中文文件名无法导包 不编译正常
window 编译后中文命名能够正常引入

整体上来看支持中文from 导包 如果没有编译的需求的话没问题的 为了兼容性或许英文文件名更合适...但中文文件名也未尝不可 毕竟这bug只在mac上出现...而且还是编译后...如果没有编译的需求这完全可以忽略

总结一下就是...中文文件名的可行性是可以的 只是 ide工具不支持测试 对 _test.py 操作过于反人类 目前还是更适合英文文件名...除非他ide支持毕竟开发易函数的话还是需要ide用的舒服顺手的...

@nobodxbodon
Copy link
Contributor Author

嗯就用这个正则吧,没看到他们对issue回应,一会建个PR再说。

mac 编译后中文文件名无法导包

不知“编译”是指?可否举个例子?

@duolabmeng6
Copy link
Owner

嗯就用这个正则吧,没看到他们对issue回应,一会建个PR再说。

mac 编译后中文文件名无法导包

不知“编译”是指?可否举个例子?

https://zhuanlan.zhihu.com/p/133303836

用 Nuitka把python转换为c mac下 中文导包失败...

@nobodxbodon
Copy link
Contributor Author

刚给 pycharm 提交了个 pr。\u4e00-\u9fa5 仅是中文部分,所以用了 PyNames.isIdentifier 。

@nobodxbodon
Copy link
Contributor Author

Nuitka 不支持非英文包路径?有没有相关 issue 呢?

@nobodxbodon
Copy link
Contributor Author

Pycharm 的 pr 已合并在 此 commit。 看看啥时候会包含在发布版里。
Screen Shot 2021-07-02 at 12 04 09 AM

@duolabmeng6 duolabmeng6 self-assigned this Apr 29, 2022
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

2 participants