PEP 8说:
- 导入总是放在文件的顶部,就在任何模块注释和文档字符串之后,以及模块全局变量和常量之前.
在发生时,我违反了PEP 8.有时我会在函数中导入内容.作为一般规则,如果导入仅在单个函数中使用,则执行此操作.
任何意见?
编辑(我觉得导入函数的原因可能是一个好主意):
主要原因:它可以使代码更清晰.
from m import xxx
.看到m.xxx
这个功能可能会告诉我更多.具体取决于m
:它是一个众所周知的顶级模块/包(import m
)吗?或者它是一个子模块/包(from a.b.c import m
)?我想在非关系数据存储之上创建一个SQL接口.非关系数据存储,但以关系方式访问数据是有意义的.
我正在研究使用ANTLR生成一个AST,它将SQL表示为关系代数表达式.然后通过评估/遍历树来返回数据.
我之前从未实现过解析器,因此我想就如何最好地实现SQL解析器和求值程序提出一些建议.
更新:
我使用pyparsing实现了一个简单的SQL解析器.结合对我的数据存储实现关系操作的Python代码,这非常简单.
正如我在其中一条评论中所说,演习的重点是将数据提供给报告引擎.为此,我可能需要实现ODBC驱动程序.这可能是很多工作.
我使用标记来使用Twitter Bootstrap显示下拉菜单.
<ul class="nav pull-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Menu <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Menu item 1...</a></li>
<li class="divider"></li>
<li><a href="#">Menu item 2...</a></li>
<li><a href="#">Menu item 3</a></li>
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我希望能够使菜单项显示为禁用,即没有悬停效果,可能还有不同的文本修饰,以使用户可以看到禁用状态.
完成此任务的最佳方法是什么?是否有一个现有的bootstrap css类我可以添加到<li>
or <a>
元素?
py.test在哪里以及如何寻找灯具?我在同一文件夹中的2个文件中有相同的代码.当我删除conftest.py时,找不到运行test_conf.py的cmdopt(也在同一个文件夹中.为什么没有搜索到sonoftest.py?
# content of test_sample.py
def test_answer(cmdopt):
if cmdopt == "type1":
print ("first")
elif cmdopt == "type2":
print ("second")
assert 0 # to see what was printed
Run Code Online (Sandbox Code Playgroud)
import pytest
def pytest_addoption(parser):
parser.addoption("--cmdopt", action="store", default="type1",
help="my option: type1 or type2")
@pytest.fixture
def cmdopt(request):
return request.config.getoption("--cmdopt")
Run Code Online (Sandbox Code Playgroud)
import pytest
def pytest_addoption(parser):
parser.addoption("--cmdopt", action="store", default="type1",
help="my option: type1 or type2")
@pytest.fixture
def cmdopt(request):
return request.config.getoption("--cmdopt")
Run Code Online (Sandbox Code Playgroud)
文档说
http://pytest.org/latest/fixture.html#fixture-function
- pytest因test_前缀而找到test_ehlo.测试函数需要一个名为smtp的函数参数.通过查找名为smtp的夹具标记函数来发现匹配夹具功能.
- 调用smtp()来创建实例.
- 调用test_ehlo()并在测试函数的最后一行失败.
在python中,我可以使用os或subprocess运行一些系统命令.问题是我无法将输出作为字符串.例如:
>>> tmp = os.system("ls")
file1 file2
>>> tmp
0
Run Code Online (Sandbox Code Playgroud)
我有一个旧版本的子进程没有函数check_out,我更喜欢一个不需要更新该模块的解决方案,因为我的代码将运行在我没有完全管理员权限的服务器上.
这个问题似乎微不足道,但我找不到一个简单的解决方案
使用EF Core(或任何ORM)我想跟踪ORM在我的软件中进行某些操作期间对数据库的查询次数.
我之前在Python下使用过SQLAlchemy,在这个堆栈上,这很容易设置.我通常有一个单元测试,它针对一个场景的查询数量,针对内存中的SQLite数据库进行断言.
现在我想使用EF Core做同样的事情,并查看了Logging文档.
在我的测试设置代码中,我按照文档说的那样做:
using (var db = new BloggingContext())
{
var serviceProvider = db.GetInfrastructure<IServiceProvider>();
var loggerFactory = serviceProvider.GetService<ILoggerFactory>();
loggerFactory.AddProvider(new MyLoggerProvider());
}
Run Code Online (Sandbox Code Playgroud)
但我遇到的问题我怀疑是以下结果(也来自文档):
您只需要使用单个上下文实例注册记录器.注册后,它将用于同一AppDomain中上下文的所有其他实例.
我在测试中看到的问题表明我的记录器实现是在多个上下文中共享的(这与我阅读它们时的文档一致).并且因为a)我的测试运行器在并行运行测试并且b)我的整个测试套件创建了数百个db上下文 - 它不能很好地工作.
问题/问题:
我有三台显示器.
我通常在每个监视器上运行一个最大化的xterm,连接到同一个GNU屏幕会话.
可以用类似的模型用于vim吗?是否可以运行三个vims,它们共享相同的"vim会话":
我需要从networkx生成一个完全连接的子图,从我想要连接的节点列表开始.基本上,我希望传递给函数的列表中的所有节点都相互连接.
我想知道是否有任何内置函数来实现这一点(我还没有找到)?或者我应该考虑一些算法?
非常感谢你.
我在使用doctest和相对导入时遇到了麻烦.简单的解决方案就是摆脱相对进口.还有其他人吗?
假设我有一个名为example的包,包含2个文件:
example/__init__.py
"""
This package is entirely useless.
>>> arnold = Aardvark()
>>> arnold.talk()
I am an aardvark.
"""
from .A import Aardvark
if __name__ == "__main__":
import doctest
doctest.testmod()
Run Code Online (Sandbox Code Playgroud)
例如/ A.py
class Aardvark(object):
def talk(self):
print("I am an aardvark.")
Run Code Online (Sandbox Code Playgroud)
如果我现在尝试
python example/__init__.py
Run Code Online (Sandbox Code Playgroud)
然后我得到了错误
Traceback (most recent call last):
File "example/__init__.py", line 8, in <module>
from .A import Aardvark
ValueError: Attempted relative import in non-package
Run Code Online (Sandbox Code Playgroud) 我发现了lazyboy和pycassa - 也许还有其他人.我见过许多推荐lazyboy的网站.恕我直言项目似乎已经死了,请参阅https://www.ohloh.net/p/compare?project_0=pycassa&project_1=lazyboy
那么新项目的最佳选择是什么?谢谢.
python ×7
c# ×1
cassandra ×1
command-line ×1
conventions ×1
css ×1
doctest ×1
fixtures ×1
gnu-screen ×1
logging ×1
networkx ×1
parsing ×1
pycassa ×1
pyparsing ×1
pytest ×1
shell ×1
sql ×1
unit-testing ×1
vim ×1
xunit ×1