小编jac*_*ton的帖子

使用swift编译器裸机?

我真的很想使用swift进行嵌入式编程,因为我觉得它更适合用于c ++,我使用的处理器是ARM​​ Cortex-M4F(http://www.ti.com/tool/ek-tm4c123gxl)).看一下swift编译器页面,它说你可以从swift源生成LLVM IR然后我希望与LLVM交叉编译.这可能吗?

arm llvm llvm-clang llvm-ir swift

7
推荐指数
1
解决办法
1929
查看次数

python抽象属性setter与混凝土吸气剂

是否可以使用abc.abstractproperty创建一个具体的getter,但使setter抽象,使其对每个继承类都不同.我为每个子类处理val的设置.

例如.

@abstractproperty
def val(self):
    return self._val

@val.setter
def val(self, x):
    pass
Run Code Online (Sandbox Code Playgroud)

python

5
推荐指数
2
解决办法
3491
查看次数

sys.path 包括 py.test rootdir 以使测试相对于项目根目录导入

我在使用 pytest 时遇到问题,在 sys.path 列表中不包括我的项目 rootdir。相反,它包括默认情况下测试所在的目录。

这是我的项目结构。

proj/
  setup.py
  mypackage/
    __init__.py
    a.py
    tests/
      test_a.py
Run Code Online (Sandbox Code Playgroud)

运行 pytest 时

py.test proj/mypackage/tests
Run Code Online (Sandbox Code Playgroud)

它将proj/mypackage/tests插入到 sys.path 中,这并不好,因为现在我无法导入 a,因为它与测试目录无关。

我注意到 py.test 检测到一个 rootdir,它被识别为我的项目的根目录,即 proj 目录。这是我在测试期间在 sys.path 中想要的,所以我的所有代码都是相对于该目录的。我如何确保 py.test在 sys.path 中包含(...)/proj/以便我可以import mypackage.a在 test_a.py 中。

python pytest

4
推荐指数
1
解决办法
1335
查看次数

pytest说我没有找到夹具时找不到夹具

我正在尝试对测试场景进行参数化,因此我不必为xUnit样式测试中的每个场景制作单独的案例.

这是pytest的一个例子,我正在尝试复制我自己的用例.

    from datetime import datetime, timedelta

testdata = [
    (datetime(2001, 12, 12), datetime(2001, 12, 11), timedelta(1)),
    (datetime(2001, 12, 11), datetime(2001, 12, 12), timedelta(-1)),
]


@pytest.mark.parametrize("a,b,expected", testdata)
def test_timedistance_v0(a, b, expected):
    diff = a - b
    assert diff == expected
Run Code Online (Sandbox Code Playgroud)

上面的工作很好,但是当我尝试修改它以供我使用时,如下所示.我收到一条错误,说"找不到"转储夹具.我不知道发生了什么.这是我第一次使用pytest,所以也许我没有得到什么.

dump1 = load_dump(pathtodump1,pathtodump2) # load_dump can take multiple params
dump2 = load_dump(pathtodump3)

scenarios = [(dump1,{'prod_str':None}),
             (dump2,{'prod_str':"123"})]

@pytest.mark.paramaterize("dump,expected_meta", scenarios)
def test_metadump_profiles(dump, expected_meta):
        meta = dump.meta
        assert meta.prod_str == expected_meta['prod_str']
Run Code Online (Sandbox Code Playgroud)

这是我从pytest得到的错误.我还应该提一下,当我调试时,测试永远不会运行,它会在paramaterize装饰器中的某处失败.

========================================================================= ERRORS ==========================================================================
________________________________________________________ ERROR at setup of test_metadump_profiles _________________________________________________________ …
Run Code Online (Sandbox Code Playgroud)

python unit-testing pytest

3
推荐指数
1
解决办法
3543
查看次数

python常量装饰器在应用于函数时不接受 self

我做了一个看起来像这样的常量装饰

def constant(f):
  def fset(self, value):
    raise TypeError
  @wraps(f)
  def fget(self):
    return f()
  return property(fget, fset)
Run Code Online (Sandbox Code Playgroud)

但是当我在函数上使用它并调用它时,由于没有传递足够的参数而引发类型错误,我认为添加包装装饰器可以解决这个问题,但事实并非如此。

class IrrigationAmount(AbstractCalculation):

    def __init__(self, wvf, fc):
        self._wvf = float(wvf)
        self._fc = float(fc)
        self._value = 0

    def calculate(self):
        self._value = (self.fc*SECTORVOLUME - self.wvf*SECTORVOLUME)/FLOWRATE

    @constant
    def value(self):
        return self._value
Run Code Online (Sandbox Code Playgroud)

这是我测试的方法,我不明白我做错了什么,主要是为什么 self 由于换行而没有被自动传递。我可能误解了wrapper 的作用。

    >>> from irrigationservice.irrigation import IrrigationAmount
>>> a = IrrigationAmount(0.12, 0.2)
>>> a.calculate()
>>> a.value
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/Users/krishna/Documents/irrigationwebserver/webserver/irrigationservice/utils.py", line 12, in fget
    return …
Run Code Online (Sandbox Code Playgroud)

python

1
推荐指数
1
解决办法
1946
查看次数

JsonResponse没有使用django将content-type设置为application/json

以下是我在django中查看的响应.由于某种原因,Web检查器识别出content_type是application/json,但在使用httpie时,它将其识别为text/html.我做错了什么,我信任哪个?

这是我的观看代码:

def RegistrationView(request):
if request.method == 'GET':
    reg_user = User.objects.create(username=str(User.objects.all().count()+1), password=str(uuid.uuid4()))
    reg_user.save()
    serialized_user = UserSerializer(reg_user)
    json_rend = JSONRenderer()
    import ast
    return JsonResponse(ast.literal_eval(json_rend.render(serialized_user.data)))
return HttpResponse("woah")
Run Code Online (Sandbox Code Playgroud)

以下是httpie和safari web检查器之间的比较: 在此输入图像描述

在此输入图像描述

python django http

0
推荐指数
1
解决办法
504
查看次数

标签 统计

python ×5

pytest ×2

arm ×1

django ×1

http ×1

llvm ×1

llvm-clang ×1

llvm-ir ×1

swift ×1

unit-testing ×1