小编thc*_*ark的帖子

为什么 pytest 不使用 pyproject.toml 来发出此弃用警告

我有一个用 pytest 和诗歌管理的 django 项目。

我想将 pytest 配置放入pyproject.toml文件中,所以我添加了:

[tool.pytest]
filterwarnings = ["ignore::django.utils.deprecation.RemovedInDjango40Warning", "ignore::django.utils.deprecation.RemovedInDjango41Warning"]
Run Code Online (Sandbox Code Playgroud)

然而,这没有什么区别——警告没有被过滤。

如果我添加包含以下内容的 pytest.ini 文件...

[pytest]
filterwarnings =
    ignore::django.utils.deprecation.RemovedInDjango40Warning
    ignore::django.utils.deprecation.RemovedInDjango41Warning
Run Code Online (Sandbox Code Playgroud)

...效果很好。

我的或我的 pytest 配置有什么问题pyproject.toml,它没有被拾取?

python pytest pytest-django pyproject.toml

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

如何使用其蛇形名称动态加载图标(React,material-ui)

通常我会根据 material-ui 说明直接导入它们来使用 material-ui 图标。

但我有一个文本标签,它是实际的图标名称(如calendar_view_day),需要从中动态获取和呈现图标组件。

我怎么能这样:

render() {
  return (
    <Icon name="calendar_view_day" color="primary" />
  )
}
Run Code Online (Sandbox Code Playgroud)

代替:

render() {
  return (
    <CalendarViewDay color="primary" />  // Imported by name
  )
}
Run Code Online (Sandbox Code Playgroud)

icons reactjs material-design material-ui

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

为什么迁移文件经常被排除在代码格式之外?

我们正在将 Black 代码风格应用于 django 项目。

在我找到的所有教程/示例中(例如在 django cookiecutter这个博客中),我一直看到 django 的迁移文件被排除在 linter 之外。

但在我看来,这些仍然是 python 文件。当然,django 可能不会自动生成它们以满足 Black 规范。但这并不像开发人员总是编写他们的代码来满足 Black 规范......这就是 linting 的用途!

为什么迁移文件被认为与任何其他 python 文件不同?!

注意,如果您有预先存在的迁移,我知道有可能更改已应用的迁移 - 这需要注意第一个应用程序(坦率地说,第一个应用程序对代码库的其余部分也是如此)但肯定不是有理由不这样做吗?

编辑 - @torxed 要求提供 django 迁移文件的示例

我不确定这会有多大帮助,但典型的 django 迁移文件可能如下所示(在这种情况下,向表中添加一个字符字段):

# Generated by Django 2.2.3 on 2019-10-28 09:45

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('api', '0009_figures_notes_tables'),
    ]

    operations = [
        migrations.AlterField(
            model_name='project',
            name='processed_kmz_sha',
            field=models.CharField(max_length=255),
        ),
    ]
Run Code Online (Sandbox Code Playgroud)

python django python-black

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

我怎样才能使用主题来设置所有material-ui输入的样式,就好像它们有一个variant='outlined'?

我使用主题来控制应用程序的整体样式以及大量的TextField组件。

我希望它们都默认显示为具有variant='outlined'(因为尽管 MUI对此进行了解释,但灰色框的用户体验很差 - 它看起来太像一个禁用的文本字段)。

使用我自己的OutlinedTextField组件(我覆盖默认变体并将所有其他道具传递给)TextField不是一个选项,因为我使用rjsf-material-ui等工具。

看来我们可以设置变体(我在他们的主题文档中看到它但找不到示例,并且无法理解我是否必须通过覆盖变体或更改全局 CSS 规则来做到这一点。

如何编辑主题以在所有 TextFields 上使用 `variant='outlined'

textfield reactjs material-design material-ui react-jsonschema-forms

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

Gatsby 3.0:如何摆脱这个yarn / webpack解析器警告?

发生了什么

\n

我刚刚升级了 gatsby 2 -> 3。

\n

在幕后,它现在使用 webpack 5 而不是 4,并且现在给出了一个突出的依赖项警告,我只是无法摆脱 -raw-loader作为主项目和 gatsby 的依赖项安装,即使它是相同的版本

\n

我尝试在 my 中指定纱线分辨率package.json,如下所示:

\n
  "resolutions": {\n    "raw-loader": "4.0.2"\n  },\n
Run Code Online (Sandbox Code Playgroud)\n

但这似乎没有任何作用。我也尝试过:

\n
  "resolutions": {\n    "gatsby/raw-loader": "4.0.2"\n  },\n
Run Code Online (Sandbox Code Playgroud)\n

完整输出

\n
\xe2\xa0\x99 Caching HTML renderer compilation\n<w> [webpack.cache.PackFileCacheStrategy/webpack.FileSystemInfo] Resolving \'raw-loader/dist/cjs\' in /Users/myname/source/octue/planex-site/node_modules/gatsby/node_modules/loader-runner/lib for build dependencies doesn\'t lead to expected result \'/Users/myname/source/octue/planex-site/node_modules/raw-loader/dist/cjs.js\', but to \'/Users/myname/source/octue/planex-site/node_modules/gatsby/node_modules/raw-loader/dist/cjs.js\' instead. Resolving dependencies are ignored for this path.\n<w>  at unknown 4 raw-loader/dist/cjs\n<w>  at file …
Run Code Online (Sandbox Code Playgroud)

webpack raw-loader gatsby yarnpkg

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

如何使用python logging的SMTPHandler和SSL发送电子邮件

我正在开发一个烧瓶应用程序,我希望将错误级别日志记录发送到电子邮件地址.我尝试设置典型的错误处理程序:

mail_handler = SMTPHandler(mailhost=(app.config['MAIL_SERVER'], app.config['MAIL_PORT']),
                           fromaddr=app.config['MAIL_FROM_EMAIL'],
                           toaddrs=['me@my_address.com'],
                           subject='The server died. That sucks... :(',
                           credentials=(app.config['MAIL_USERNAME'], app.config['MAIL_PASSWORD']))
Run Code Online (Sandbox Code Playgroud)

请注意,配置值使用flask-mail设置,使用MAIL_USE_SSL=TrueMAIL_PORT=465.

但是,在调用错误时(在测试期间故意)我得到套接字超时错误 - 除了端口之外,我看不到如何告诉处理程序使用SSL.有一个secure=()参数可以传递(参见SMTPHandler文档),但它指定了我们的TLS,而不是SSL.

任何线索如何做到这一点?谢谢!

python ssl error-logging smtplib flask

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

如何将挂载绑定到 vscode devcontainer,而不在 devcontainer.json 中对其进行硬编码

这个问题上建议应该.devcontainer.json承诺。

我同意,但有一个问题。我需要将本地目录绑定挂载到我的 devcontainer 中。这需要我的同事没有的本地路径。目的是将我的 GCP 凭证挂载到我的 devcontainer 中,以便与 gcloud CLI 一起使用。

我的 .devcontainer.json 看起来像:

{
  "image": "some/image",
  // ... settings, extensions, forwardPorts, postCreateCommand, remoteUser, runArgs ...

  // Mount gcloud configuration directory
  "mounts": [
    "source=/Users/myname/.config/gcloud,target=/gcp/config,type=bind,consistency=cached"
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是可行的,但如果我提交这个,它会破坏其他人的设置。

如何创建到我本地定义的 vscode devcontainer 的绑定挂载,而不添加条目.devcontainer.json

解决方法

一种解决方法是将其转换为 docker-compose 设置,然后定义一个docker-compose.developer-overrides.yml不提交但必需的文件。但这似乎是错误的解决方案,应该有一个我错过的设置覆盖。

另一个方法是挂载用户的主目录(vscode 用户指南展示了如何为 Windows 和 Linux 用户执行此操作: "source=${localEnv:HOME}${localEnv:USERPROFILE},target=/host-home-folder,type=bind,consistency=cached" ...但是所有用户都必须将其 gcloud 配置安装在本地计算机的同一位置;我我不确定这是否可能。

visual-studio-code devcontainer remote-containers

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

如何让 git-lfs 将文件视为二进制文件?

可以让 git将文件视为 binary,以避免尝试合并并避免行尾损坏等。

我试图对 git-lfs 做同样的事情,并打开 .gitattributes 文件以发现 git-lfs(已在 repo 中使用)添加了以下属性:

*.mat filter=lfs diff=lfs merge=lfs -text
Run Code Online (Sandbox Code Playgroud)

上面的链接建议我添加二进制属性,相当于:

*.mat -diff -merge -text
Run Code Online (Sandbox Code Playgroud)

认为这很可能是我正在寻找的:

*.mat filter=lfs -diff -merge -text
Run Code Online (Sandbox Code Playgroud)

我认为应该将文件存储在 git-lfs 端点并维护相关指针,但以与 git 处理具有 -diff -merge -text 属性的文件完全相同的方式处理它。

我通常只是尝试这个,但我担心破坏二进制文件......所以我的三部分问题是:

  1. 试试这个安全吗?
  2. 这样对吗?
  3. 除了特定于 git-lfs 属性的git 属性之外,是否还有其他文档,如果有,在哪里?

提前致谢!

汤姆

git attributes git-lfs

6
推荐指数
0
解决办法
1283
查看次数

如何将 django 的设置对象变成字典?

我拥有的:

from django.conf import settings

def settings_to_dict(settings)
    cfg = {
        'BOTO3_ACCESS_KEY': settings.BOTO3_ACCESS_KEY,
        'BOTO3_SECRET_KEY': settings.BOTO3_SECRET_KEY,
        # repeat ad nauseum
    }
    return cfg

instance = SomeClassInstantiatedWithADict(**settings_to_dict(settings))
Run Code Online (Sandbox Code Playgroud)

我想要什么(使用 Django 1.11):

from django.conf import settings

instance = SomeClassInstantiatedWithADict(**settings.to_dict())
Run Code Online (Sandbox Code Playgroud)

我试过了:

from django.conf import settings

instance = SomeClassInstantiatedWithADict(**settings.__dict__)
Run Code Online (Sandbox Code Playgroud)

这是接近的,但__dict__只获得设置的一小部分,我认为这些设置是硬编码的,而不是添加的属性。谢谢你的帮助!

python django django-settings python-3.x

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

React Error Boundary 从不工作

我有一个组件,它在其渲染方法中生成错误。

在树的更高位置,组件被connect()分配react-redux到用于获取数据的资源,我还有其他 HOCS 等等(注入类等)。

该组件使用错误边界以防(例如)提供给它的资源中缺少属性(常见问题)。

我提炼了最小的例子,访问 undefined 的属性来重现相同的错误:

import React from 'react'

// An Error Boundary which returns either a fallback component (if supplied to props) or (default) an empty div, instead of screwing up the whole tree
class ErrorBoundary extends React.Component {
  constructor(props) {
    super(props)
    this.state = {
      hasError: false,
    }
  }

  static getDerivedStateFromError(error) {
    return { hasError: true }
  }

  componentDidCatch(error, info) {
    this.setState({ hasError: true })
    console.log('do stuff with', error, info)
  }

  render() …
Run Code Online (Sandbox Code Playgroud)

javascript error-handling reactjs

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