小编mat*_*ner的帖子

Python 项目代码覆盖率徽章与工作服/github 操作

我正在尝试将代码覆盖率 % 徽章添加到我的存储库 README.md 中

我目前正在使用 Github actions 来自动化我的 pytest 测试。我自己就完成了这个工作,但我一直在努力获得覆盖率%徽章。我正在使用工作服来生成徽章,并且基于它,工作服看起来需要一个 lcov.info 文件。但是当我查看pytest-cov 的报告选项时,我没有看到相应的输出选项。

我尝试生成其他类型(例如 xml)并配置以查找此类型,但它仍然在覆盖文件夹中查找 lcov.info。下面是我当前的 pythonapp.yml 文件。当前失败的步骤是寻找工作服./coverage/lcov.info

任何有关我做错了什么或如何修复的帮助将不胜感激。

name: tests

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up Python 3.7
      uses: actions/setup-python@v1
      with:
        python-version: 3.7
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
    - name: Lint with flake8
      run: | …
Run Code Online (Sandbox Code Playgroud)

github pytest coveralls pytest-cov github-actions

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

VS Code - pylint 未运行

我在 VS Code 中设置了一个工作区,我在其中进行 python 开发。我启用了 linting,启用了 pylint 作为提供程序,并启用了保存时的 lint,但我在“问题”面板中仍然没有看到任何错误。当我在虚拟环境中通过命令行运行 pylint 时,我看到了很多问题 - 所以我知道 pylint 可以工作。我还使用黑色格式(保存时),它可以正常工作。我尝试过使用默认的 pylint 路径以及手动将其更新到确切的位置,但仍然没有结果。当我查看 python 的输出面板时,看起来 pylint 甚至从未运行(即我看到 black 的命令在那里运行,但 pylint 没有任何命令)。

我的 pylint 版本是 2.4.4,VS Code 版本是 1.46

知道如何让它发挥作用吗?

pylint visual-studio-code vscode-python

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

在使用 Python 的 VS Code 中,如何将类方法中的第一个参数 (self) 设为斜体?

我使用的是来自 Pycharm 的 Python,它会自动将类方法中的第一个参数(通常是 self)格式化为斜体,我发现在浏览代码时更容易查看。您可以配置 VS Code 设置来执行此操作吗?我看到有以下内容,我用它添加了函数颜色,但无法使 Python 的类方法的第一个参数为斜体。

https://code.visualstudio.com/docs/getstarted/themes

谢谢。

python visual-studio-code

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

pyarrow数据集多条件过滤

我有一个分区镶木地板数据集,我正在尝试将其读入 pandas 数据帧。完整的镶木地板数据集不适合内存,因此我只需选择一些分区(分区列是年、月和日期。我有以下内容:

pd.read_parquet(
    path_to_dataset,
    filters=[("Date", ">=", "20200715"), ("Date", "<=", "2020804")]
)
Run Code Online (Sandbox Code Playgroud)

当我运行这个程序时,出现内存错误/python 程序崩溃。但是,当我运行以下命令时,它可以正常工作,即使理论上它会返回完全相同数量的数据(我的数据集在 4 号停止)。

pd.read_parquet(
    path_to_dataset,
    filters=[("Date", ">=", "20200715")]
)
Run Code Online (Sandbox Code Playgroud)

似乎第二个过滤器("Date", "<=", "2020804")优先于第一个过滤器,并且不被视为复合表达式。在我当前的用例中,我可以删除第二个过滤器,但在其他情况下,数据将更多地位于总范围的中间,如果没有第二个过滤器,我最终会再次读取太多内容。

我尝试了以下每一项,但没有运气。

(("Date", ">=", "20200715") & ("Date", "<=", "2020804"))
("Date", ">=", "20200715", "Date", "<=", "2020804")
Run Code Online (Sandbox Code Playgroud)

有没有办法处理同一分区/列上的复合表达式?

此处参考文档: https: //arrow.apache.org/docs/python/dataset.html

python parquet pyarrow

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

为什么异步 TcpStream 会阻塞?

我正在开发一个项目,用 Rust 实现分布式键值存储。我使用 Tokio 的异步运行时编写了服务器端代码。我遇到了一个问题,我的异步代码似乎被阻塞,因此当我与服务器有多个连接时,仅处理一个 TcpStream。我对实现代码很陌生async,无论是一般的还是关于 Rust,但我认为如果给定的 tcp 流上没有活动,其他流将被接受和处理。

是我对 async 的理解错误还是我错误地使用了 tokio ?

这是我的切入点:

use std::error::Error;
use std::net::SocketAddr;
use std::path::{Path, PathBuf};
use std::str::FromStr;
use std::sync::{Arc, Mutex};

use env_logger;
use log::{debug, info};
use structopt::StructOpt;
use tokio::net::TcpListener;

extern crate blue;

use blue::ipc::message;
use blue::store::args;
use blue::store::cluster::{Cluster, NodeRole};
use blue::store::deserialize::deserialize_store;
use blue::store::handler::handle_stream;
use blue::store::wal::WriteAheadLog;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init();

    let opt = args::Opt::from_args();
    let addr = SocketAddr::from_str(format!("{}:{}", opt.host, opt.port).as_str())?;
    let role = NodeRole::from_str(opt.role.as_str()).unwrap();
    let leader_addr …
Run Code Online (Sandbox Code Playgroud)

asynchronous rust rust-tokio

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