我对Python并不完全陌生,但我的主要培训内容是Java。Java和Python之间的区别(例如,OOP原理、错误处理等)主要是我不熟悉的。在
在实习期间,我试图开发一个结构化数据解析器。我知道现有的框架,比如beauthoulsoup、xml和lxml。尽管有这些,我还是想建立一个专门的定位自己围绕包设计,哲学和组织。在
对我来说很重要的一点是导入的语义。我希望能够像这样调用解析器(其中包名是pyrse
)。在
#!/usr/bin/python3
from pyrse import parse
from pyrse import write
# Two imports so new users understand the divergent functionality
fd = open("/path/to/my/data.xml")
data1 = parse.xml.from.file(fd)
print(write.json.to.string(data1))
str = "<test>dummy xml data</test>"
data2 = parse.xml.from.string(str)
print(write.markdown.to.string(data2))
我知道这里有一些例子,但我想在将来扩展这个例子。现在,我只想了解我应该如何在我的文件系统上构建它。在
到目前为止,他是我思考的方式,我希望这是结构化的,以获得与上述相同的结构:
^{pr2}$在上图中要完全清楚:
_dev
是供开发人员使用的弱隐藏文件夹。客户机不应该导入这个文件夹,解析器和编写器将从中为自己的数据树继承基类Element。哲学上类似于lxml
的etree
。在parse
显然是结构化数据读取器所在的包。这些文件夹按语言划分,然后按目标输入或输出方法划分。希望这种结构对于开发人员和包的客户来说都是直观的。在from
在包设计中工作(除了把所有的东西放在自己的子文件夹中,这看起来很笨拙,除非这是唯一的方法)。也许from
甚至不需要出现在那里——但是我不确定对于Python用户来说,哪个更具语义性——parse.xml.file()
还是{总而言之,我对这件事的运作方式非常灵活。我真的想要:
除此之外,我只有想法和幻想。如果我开始计划有错,我肯定想知道。在
感谢那些认为他们能帮上忙的人!在
pyrse
项目可以在GitHub上找到,任何有兴趣帮忙的人,或者在上下文中这可能更有意义的事情。实际上还没有任何工作投入,因为我正试图提前处理整个设计问题。在import pyrse
并调用pyrse.parse.xml...
与import pyrse.parse.xml
并调用xml.file()
对文件系统有什么影响?在.py
文件中应该有什么,文件夹应该是什么?这些对进口有何影响?这个问题比上一个问题组织得少,但更准确。如果需要的话,我会为这个问题提出一个新的问题。在
目前没有回答
相关问题 更多 >
编程相关推荐