小编sec*_*sec的帖子

Vuetify 如何禁用按钮直到所有验证规则都为真?

我正在使用 Vuetify 创建一个简单的表单,其中数据由与每个字段关联的一些规则进行验证。如果任何这些验证规则失败,我想要做的是禁用提交按钮。我怎么能这样做?我想了解的是如何检查每个规则的状态,以便我可以绑定disabled按钮上的属性。

<template>
  <v-card>
    <v-card-text>
      <v-combobox
        v-model="addTool.name"
        :rules="rules.name"
        :items="toolNames"
        counter
        label="Name of the tool"
      ></v-combobox>
      <v-combobox
        multiple
        :small-chips="true"
        :deletable-chips="true"
        :hide-selected="true"
        :clearable="true"
        v-model="addTool.categories"
        :rules="rules.categories"
        label="Select/Add categories"
        :items="this.toolCategories"
        :search-input.sync="searchCat"
        @change="searchCat = ''"
      ></v-combobox>
      <v-text-field
        v-model="addTool.site"
        label="URL for the tool. It is best to use a Github repo link."
        :rules="rules.site"
      ></v-text-field>
    </v-card-text>
    <v-card-actions>
      <v-spacer></v-spacer>
      <v-btn @click="submit" color="grey darken-4" class="green--text text--accent-2" dark>Add</v-btn>
    </v-card-actions>
  </v-card>
</template>

<script>
export default {
  data() {
    return {
      dialog: false,
      searchCat: "",
      addToolMessage: undefined,
      addTool: { …
Run Code Online (Sandbox Code Playgroud)

vue.js vuetify.js

17
推荐指数
1
解决办法
2万
查看次数

如何在 VS Code 输出窗口中获得彩色输出?

这确实是一个由两部分组成的问题,但它们的脉络相同,所以我会在一个帖子中提问。

当我翻阅各种颜色时,我发现它们也有改变Output窗口颜色的能力。我可以使用哪个 VS Code 设置来更改此输出的颜色?具体来说,我不是在询问终端,我是在询问使用 coderunner 作为示例时显示输出的输出窗口。请参阅屏幕截图以查看我指的是哪个窗口。

输出窗口

第二个问题是我可以看到输出确实支持多种颜色。我正在尝试使用cpprintpython lib 中的模块将prettyprinter彩色输出打印到此窗口。当我在终端中运行脚本时,我得到了颜色,但在输出窗口中,我没有得到任何颜色。我有可能在输出窗口中获得与终端中类似的彩色输出吗?我假设输出窗口支持颜色,因为[Running]...和 end 是彩色的。

我所指的 Python 库

谢谢!

visual-studio-code vscode-extensions vscode-settings

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

如何在 github 操作中使用 pip 缓存?

我在 Github Actions 中使用缓存的 pip 时遇到了一些问题。我的工作流程设置是

name: tests

on: [push, pull_request]

jobs:
  linux:

    runs-on: ubuntu-18.04
    strategy:
      max-parallel: 4
      matrix:
        python-version: [3.6, 3.7, 3.8]

    steps:
    - uses: actions/checkout@v1
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v1
      with:
        python-version: ${{ matrix.python-version }}
    - uses: actions/cache@v1
      with:
        path: ~/.cache/pip
        key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
        restore-keys: |
          ${{ runner.os }}-pip-
    - name: Install
      if: steps.cache.outputs.cache-hit != 'true'
      run: |
        pip install pytest pytest-cov bandit sphinx recommonmark
        python -m pip install --upgrade …
Run Code Online (Sandbox Code Playgroud)

continuous-integration github-actions

10
推荐指数
3
解决办法
3584
查看次数

Python作为字典或JSON登录文件

我正在尝试设置日志记录,我可以在其中登录stdout并登录到文件。我使用以下代码完成了此任务:

logging.basicConfig(
        level=logging.DEBUG, format='%(asctime)-15s %(levelname)-8s %(message)s',
        datefmt='%a, %d %b %Y %H:%M:%S', handlers=[logging.FileHandler(path), logging.StreamHandler()])
Run Code Online (Sandbox Code Playgroud)

这样的输出如下:

2018-05-02 18:43:33,295 DEBUG    Starting new HTTPS connection (1): google.com
2018-05-02 18:43:33,385 DEBUG    https://google.com:443 "GET / HTTP/1.1" 301 220
2018-05-02 18:43:33,389 DEBUG    Starting new HTTPS connection (1): www.google.com
2018-05-02 18:43:33,490 DEBUG    https://www.google.com:443 "GET / HTTP/1.1" 200 None
Run Code Online (Sandbox Code Playgroud)

我要完成的工作是将此输出记录到文件中,而不是像打印到stdout那样,而是作为类似于此类的字典或JSON对象(同时保持当前的stdout):

[{'time': '2018-05-02 18:43:33,295', 'level': 'DEBUG', 'message': 'Starting new HTTPS connection (1): google.com'}, {...}, {...}]

这可行吗?我知道我可以在过程完成后发布此日志文件,但是我正在寻找一种更优雅的解决方案,因为我正在记录的某些内容本身就是很大的对象。

python logging

8
推荐指数
2
解决办法
6993
查看次数

如何在 Markdown 文件中为 Sphinx 使用 automodule 或 autoclass?

我知道 Sphinx 支持 markdown 或 .md 文件(可选),这对我的补充文档非常有用。我想做的是在 Markdown 文件中使用autoclass或标签。automodule

通常,在一个.rst文件中,如果我这样做

.. autoclass:: my.module.SomeClass
    :members:
Run Code Online (Sandbox Code Playgroud)

它将自动提取所有文档字符串并创建文档。可以在.md文件中使用它吗?目前,当我尝试这样做时,生成的文档仅包含.. autoclass:...预期的内容。

我的conf.py

.. autoclass:: my.module.SomeClass
    :members:
Run Code Online (Sandbox Code Playgroud)

由于阅读文档的兼容性,我确实考虑了 mkdocs,但它不提供类似 autodoc 的功能。为了实现这一目标,我对任何其他库都非常开放(不必与 RTD 兼容)。

python python-sphinx autodoc read-the-docs

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

方法链接时如何在python类方法中返回self和另一个变量?

我明白我在这里问的可能不是最好的代码设计,但我问的原因是严格的学术。我试图了解如何使这个概念发挥作用。

通常,我将从self类方法返回,以便可以将以下方法链接在一起。我的理解是通过返回 self,我只是返回类的一个实例,以便处理以下方法。

但在这种情况下,我试图弄清楚如何self从该方法中返回两个值和另一个值。这个想法是如果我不想链接,或者我不调用任何类属性,我想从被调用的方法中检索数据。

考虑这个例子:

class Test(object):
    def __init__(self):
        self.hold = None

    def methoda(self):
        self.hold = 'lol'
        return self, 'lol'

    def newmethod(self):
        self.hold = self.hold * 2
        return self, 2

t = Test()
t.methoda().newmethod()
print(t.hold)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我将得到一个AttributeError: 'tuple' object has no attribute 'newmethod'预期,因为该methoda方法返回一个没有任何方法或属性的元组称为newmethod

我的问题不是关于解包多个返回,而是更多关于当前面的方法返回多个值时如何继续链接方法。我也明白我可以通过一个参数来控制方法返回,但这不是我想要做的。

如前所述,我确实意识到这可能是一个糟糕的问题,如果问题没有任何意义,我很乐意删除该帖子。

python

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

Python tarfile 压缩内存中的对象

我正在尝试使用 tarfile 在内存中添加一个文件,然后将其写回磁盘,但我遇到的问题是,在我的最终输出中,当我提取新创建的 tar.gz 文件时,我得到一个空文件。我的代码做错了什么?

import tarfile
import io

with open('logo.png', 'rb') as f:
    data = f.read()

fh = io.BytesIO()
with tarfile.open(fileobj=fh, mode='w:gz') as tar:
    info = tarfile.TarInfo('some.png')
    tar.addfile(info, data)

with open('/tmp/test/test.tar.gz', 'wb') as f:
    f.write(fh.getvalue())
Run Code Online (Sandbox Code Playgroud)

我也尝试这样做tar.addfile(info, fh.write(data)),但这只会创建一个损坏的 tar 文件。

python

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

pydantic 中是否可以有任意键名?

我正在尝试使用模型的任意键名称来模拟与打字稿接口类似的行为pydantic,但遇到了一些问题。

在 TS 中考虑以下内容:

export interface SNSMessageAttributes {
    [name: string]: SNSMessageAttribute;
}
Run Code Online (Sandbox Code Playgroud)

在 pydantic 中可以实现这一点吗?

这是我的Python示例代码:

export interface SNSMessageAttributes {
    [name: string]: SNSMessageAttribute;
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,属性ArbitraryKey可以是任何内容。但我不可能对所有可能的键名称进行硬编码。例如,如果ArbitraryKey键名不是 ,怎么办SomeTestKey

我知道我可以使用extra = 'allowin Config,但这不会给出使用时可以获得的点语法parse_obj_as

我的问题是,如果可能的话,我可以对属性名称执行类似于[name: string]pydantic 的操作吗?

python types pydantic

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

Vue webpack 正在向所有 URL 添加 #/

我正在关注一些使用 Vue 项目的项目vue init webpack test,但似乎在运行时npm run dev#/所有 url都会附加一个。

当我创建一个新组件并路由到它时也是如此。如果我做类似的事情http://localhost:8080/newpath,它就会变成http://localhost:8080/newpath#/.

是否有我可以设置的配置变量,以便#/不附加到每个 URL?使用正则表达式在每个 URL 上删除它似乎非常笨拙。

我不包括任何实际的源代码,因为它来自 vue init 创建的 HelloWorld 应用程序。

我正在使用 vue cli 3 的最新版本。

webpack vue.js vue-router

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

如何在节点中使用 Axios 发布表单数据

编辑更改标题,以便对其他人有所帮助

我正在尝试使用他们的 api 使用 Axios将图像上传到imgbb,但不断收到错误响应Empty upload source

imgbb 的 API 文档显示了以下示例:

curl --location --request POST "https://api.imgbb.com/1/upload?key=YOUR_CLIENT_API_KEY" --form "image=R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
Run Code Online (Sandbox Code Playgroud)

我复制这个的节点代码是:

    const fs = require('fs')
const FormData = require('form-data')
const Axios = require('axios').default

let file = '/tmp/the-test.png'
let url = 'https://api.imgbb.com/1/upload?key=myapikey'
var bodyData = new FormData();
let b = fs.readFileSync(file, {encoding: 'base64'})
bodyData.append('image', b)
Axios({
  method: 'post',
  url: 'url',
  headers: {'Content-Type': 'multipart/form-data' },
  data: {
    image: bodyData
  }
}).then((resolve) => {
  console.log(resolve.data);
}).catch(error => console.log(error.response.data));
Run Code Online (Sandbox Code Playgroud)

但我不断收到以下错误响应..

{ …
Run Code Online (Sandbox Code Playgroud)

node.js axios

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