我有一个用 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,它没有被拾取?
通常我会根据 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) 我们正在将 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) 我使用主题来控制应用程序的整体样式以及大量的TextField组件。
我希望它们都默认显示为具有variant='outlined'(因为尽管 MUI对此进行了解释,但灰色框的用户体验很差 - 它看起来太像一个禁用的文本字段)。
使用我自己的OutlinedTextField组件(我覆盖默认变体并将所有其他道具传递给)TextField不是一个选项,因为我使用rjsf-material-ui等工具。
看来我们可以设置变体(我在他们的主题文档中看到它,但找不到示例,并且无法理解我是否必须通过覆盖变体或更改全局 CSS 规则来做到这一点。
如何编辑主题以在所有 TextFields 上使用 `variant='outlined'?
textfield reactjs material-design material-ui react-jsonschema-forms
我刚刚升级了 gatsby 2 -> 3。
\n在幕后,它现在使用 webpack 5 而不是 4,并且现在给出了一个突出的依赖项警告,我只是无法摆脱 -raw-loader作为主项目和 gatsby 的依赖项安装,即使它是相同的版本。
我尝试在 my 中指定纱线分辨率package.json,如下所示:
"resolutions": {\n "raw-loader": "4.0.2"\n },\nRun Code Online (Sandbox Code Playgroud)\n但这似乎没有任何作用。我也尝试过:
\n "resolutions": {\n "gatsby/raw-loader": "4.0.2"\n },\nRun Code Online (Sandbox Code Playgroud)\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) 我正在开发一个烧瓶应用程序,我希望将错误级别日志记录发送到电子邮件地址.我尝试设置典型的错误处理程序:
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=True和MAIL_PORT=465.
但是,在调用错误时(在测试期间故意)我得到套接字超时错误 - 除了端口之外,我看不到如何告诉处理程序使用SSL.有一个secure=()参数可以传递(参见SMTPHandler文档),但它指定了我们的TLS,而不是SSL.
任何线索如何做到这一点?谢谢!
在这个问题上建议应该.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 配置安装在本地计算机的同一位置;我我不确定这是否可能。
可以让 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 属性的文件完全相同的方式处理它。
我通常只是尝试这个,但我担心破坏二进制文件......所以我的三部分问题是:
提前致谢!
汤姆
我拥有的:
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__只获得设置的一小部分,我认为这些设置是硬编码的,而不是添加的属性。谢谢你的帮助!
我有一个组件,它在其渲染方法中生成错误。
在树的更高位置,组件被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) python ×4
reactjs ×3
django ×2
material-ui ×2
attributes ×1
devcontainer ×1
flask ×1
gatsby ×1
git ×1
git-lfs ×1
icons ×1
javascript ×1
pytest ×1
python-3.x ×1
python-black ×1
raw-loader ×1
smtplib ×1
ssl ×1
textfield ×1
webpack ×1
yarnpkg ×1