小编Not*_*bad的帖子

如何在 Macos 上使用 Avalonia 和 Skia 后端渲染一组图元?

我需要创建一个简单的应用程序来将图形网络绘制到画布上。当我使用 .net core 时,最好的解决方案之一似乎是 Avalonia + Skia 后端。问题是我还没有找到任何好的文档或示例来说明它。

如何使用 Avalonia 和 Skia 渲染后端渲染一组 primites?

macos skia .net-core skiasharp avaloniaui

7
推荐指数
0
解决办法
770
查看次数

Facebook受众整合,陷入第二步

我已经成功整合了FAN.我可以在测试而非测试模式下显示横幅和插页式广告.所以,我已经给Facebook发了印象,但我在整合中的当前状态显示:

在此输入图像描述

不应该是第三步吗?奇怪的是,我的展示位置显示如下:

在此输入图像描述

因此,通过状态消息,它似乎已收到请求,这是我发现Facebook开始放置审查的唯一要求.

那么,有人知道这是否有效吗?我不应该在第3步(安置评论)吗?

提前致谢.

facebook facebook-audience-network

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

类不能使用 mypy 子类化“QObject”(类型为“Any”)

我有一个继承 QObject 的类。一切正常,但是当我在其上运行 mypy 时,出现错误:

"error: Class cannot subclass 'QObject' (has type 'Any')" 
Run Code Online (Sandbox Code Playgroud)

此刻我完全被困住了。我一直在阅读 mypy 文档,但找不到错误所在。

这里的代码:

from PyQt5.QtCore import QObject

class ServiceLocator(QObject):

    def __init__(self) -> None:
        super().__init__()
        ...
Run Code Online (Sandbox Code Playgroud)

干杯。

python pyqt type-hinting subclassing mypy

6
推荐指数
2
解决办法
4325
查看次数

IApplicationBuilder.UseBasePath 奇怪的行为?

我正在尝试向我的 web api 添加版本控制,在阅读了 asp .net core 文档后,似乎 IApplicationBuilder.UsePathBase 可以达到此目的。而且,确实如此,但有一个怪癖。无需添加版本控制路径,仍然可以访问 api。

作为示例,我使用它向我的 api 添加 v1 路径:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHttpContextAccessor httpAccesor)
{
    app.UsePathBase("/api/v1");
    ....
}
Run Code Online (Sandbox Code Playgroud)

现在我可以使用 http://www...com/api/v1/cars 或使用 http://www...com/cars 访问我的汽车端点。

汽车控制器路由设置如下:

[Authorize]
[Route("/[controller]")]
[ApiController]
public class DriversController : ControllerBase
{
  ....
}
Run Code Online (Sandbox Code Playgroud)

那么,这就是它的工作原理吗?是否有可能只允许具有相应版本控制路径的路径?

.net asp.net routes .net-core asp.net-core

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

.restart smali 关键字有什么作用?

smali 中的这一行有什么作用?我一直在 google 上搜索 .restart 的东西,但没有找到任何关于它的信息。

.restart local v3       #i:I
Run Code Online (Sandbox Code Playgroud)

java android smali

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

类型提示在 pycharm 2018.1 中并不总是有效?

我今天开始使用类型提示。在阅读了关于类型提示的文档后,我试图写一些愚蠢的例子来检查它是如何工作的,但被困在像这样简单的事情上。

a: int = 7.33
Run Code Online (Sandbox Code Playgroud)

我没有收到任何警告或错误。一切正常,就像我没有使用类型提示一样。我期待一个警告,说不能将浮点数分配给 int var。

我尝试过其他事情,例如:

def sum_two_numbers(a:int , b:int)->int:
    return a+b

def main() -> None:
    asd = sum_two_numbers(2, 5.4)
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,我收到了 5.4 号的警告。Pycharm 警告说我正在传递一个浮点数,而 int 应该是。

那么,这里发生了什么?

编辑:我已经尝试过 mypy 并且它正确地检测到我所说的上一个问题。有没有办法让pycharm也检测到它?

干杯。

python type-hinting pycharm

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

如何使用带有 asyncio 的高速公路连接到 binance websocket 服务

我正在尝试通过以下方式连接到币安服务:

wss://stream.binance.com:9443/ws/bnbbtc@kline_1m
Run Code Online (Sandbox Code Playgroud)

我知道它有效,因为已经尝试过使用在线网络服务检查器,它注册以侦听服务器并毫无问题地接收 100 万支蜡烛。

正如我所见,当我将路径添加到主机时会出现问题。如果我不添加路径“/ws/bnbbtc@kline_1m”,它会连接但会立即出现错误:

WebSocket connection closed: connection was closed uncleanly (WebSocket connection upgrade failed (400 - BadRequest))
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码,主要是从示例中提取的:

from autobahn.asyncio.websocket import WebSocketClientProtocol, WebSocketClientFactory

class MyClientProtocol(WebSocketClientProtocol):

    def onConnect(self, response):
        print("Server connected: {0}".format(response.peer))

    def onOpen(self):
        print("WebSocket connection open.")

    def onMessage(self, payload, isBinary):
        if isBinary:
            print("Binary message received: {0} bytes".format(len(payload)))
        else:
            print("Text message received: {0}".format(payload.decode('utf8')))

    def onClose(self, wasClean, code, reason):
        print("WebSocket connection closed: {0}".format(reason))


if __name__ == '__main__':

    import asyncio

    factory = WebSocketClientFactory()
    factory.protocol = MyClientProtocol

    loop = asyncio.get_event_loop()
    coro …
Run Code Online (Sandbox Code Playgroud)

websocket python-3.x autobahn python-asyncio binance

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

如何动态创建pyqtSignals

是否有可能在需要时在运行时创建信号?

我在一个函数中做这样的事情:

class WSBaseConnector(QObject)

    def __init__(self) -> None:
        super(QObject, self).__init__()    
        self._orderBookListeners: Dict[str, pyqtSignal[OrderBookData]] = {}

    def registerOrderBookListener(self, market: str, listener: Callable[[OrderBookData], None], loop: AbstractEventLoop) -> None:
            try:
                signal = self._orderBookListeners[market]
            except KeyError:
                signal = pyqtSignal(OrderBookData)
                signal.connect(listener)
                self._orderBookListeners[market] = signal
            else:
                signal.connect(listener)
Run Code Online (Sandbox Code Playgroud)

如您所见,我有一个存储 str、pyqtSignal 对的字典。当我尝试将信号连接到侦听器时,出现错误:

'PyQt5.QtCore.pyqtSignal' object has no attribute 'connect'
Run Code Online (Sandbox Code Playgroud)

在没有类变量的情况下,是否无法在运行时创建 pyqtSignals?

干杯。

runtime pyqt signals-slots python-3.x pyqt5

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

资源列表的基于资源的授权?

如何实现资源列表的授权?

我看到的所有文档都基于 IAuthorizationService 和 AuthorizeAsync 方法。但这仅适用于一种资源。

我是否应该检索所有资源,然后使用 IAuthorizationService 的 AuthorizeAsync 方法强制检查用户是否有权访问?这看起来非常笨拙、缓慢且低效。

你会怎么做?

asp.net-authorization .net-core asp.net-core asp.net-core-webapi

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

在使用 MapWhen 进行分支时注册中间件,以便仅为一组端点运行它

我需要为我的所有端点运行两个中间件,但 /accounts/* 下的那些。

我在 ConfigureServices 中使用它:

public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddControllers();
}
Run Code Online (Sandbox Code Playgroud)

和配置方法看起来像:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IUserService  userService)
{
    app.UseCors(builder => builder
        //.AllowAnyOrigin()
        .SetIsOriginAllowed((host) => true)
        .AllowAnyMethod()
        .AllowAnyHeader()
        .AllowCredentials());

    app.UseRouting();

    app.UseAuthentication();

    //THIS IS WHAT I JUST ADDED TO SUPPORT THE BRANCHING OF ROUTES
    app.MapWhen(context =>
    {
        return !context.Request.Path.StartsWithSegments("/accounts");
    }, appBuilder =>
    {
        appBuilder.UseMiddleware<TenantProviderMiddleware>();
        appBuilder.UseMiddleware<UserClaimsBuilderMiddleware>();
    });

    //app.UseMiddleware<TenantProviderMiddleware>();
    //app.UseMiddleware<UserClaimsBuilderMiddleware>();

    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapHub<VehicleHub>("/vehicle-hub");
        endpoints.MapControllers();
    });

 }
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

System.InvalidOperationException:请求到达管道末端,但未执行端点:'WebAPI.Controllers.VehiclesController.Get (WebApi)'。如果使用路由,请使用“IApplicationBuilder.UseEndpoints(...)”注册 EndpointMiddleware。

从错误中我明白我应该在 MapWhen 方法中使用 UseEndpoints 而不是 UseMiddleware …

c# asp.net-core asp.net-core-middleware

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