我还没有使用诗歌来运行项目,所以请原谅缺乏理解。
\n我成功安装了诗歌Python库管理器,使用:
\ncurl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3\nRun Code Online (Sandbox Code Playgroud)\n下一步poetry install最初返回此错误:
me@LAPTOP-G1DAPU88:~/.ssh/workers-python/workers$ poetry install\n\n RuntimeError\n\n Poetry could not find a pyproject.toml file in /home/me/.ssh/workers-python/workers or its parents\n\n at ~/.poetry/lib/poetry/_vendor/py3.8/poetry/core/factory.py:369 in locate\n 365\xe2\x94\x82 if poetry_file.exists():\n 366\xe2\x94\x82 return poetry_file\n 367\xe2\x94\x82\n 368\xe2\x94\x82 else:\n \xe2\x86\x92 369\xe2\x94\x82 raise RuntimeError(\n 370\xe2\x94\x82 "Poetry could not find a pyproject.toml file in {} or its parents".format(\n 371\xe2\x94\x82 cwd\n 372\xe2\x94\x82 )\n 373\xe2\x94\x82 )\nRun Code Online (Sandbox Code Playgroud)\n我很快意识到我需要自己制作的pyproject.toml文件。poetry install再次运行得到:
$ poetry install\n\n TOMLError\n\n Invalid …Run Code Online (Sandbox Code Playgroud) 我正在使用最新版本的 pip 23.01,. 我有一个pyproject.toml包含依赖项和可选依赖项组(又名“额外”)的文件。为了避免冗余并使管理可选依赖项组更容易,我想知道如何让可选依赖项组需要其他可选依赖项组。
我有一个pyproject.toml可选依赖项组在依赖项中有冗余重叠的情况。我想他们可以用“等级制”来形容。它看起来像这样:
[project]
name = 'my-package'
dependencies = [
'pandas',
'numpy>=1.22.0',
# ...
]
[project.optional-dependencies]
# development dependency groups
test = [
'my-package[chem]',
'pytest>=4.6',
'pytest-cov',
# ...
# Redundant overlap with chem and torch dependencies
'rdkit',
# ...
'torch>=1.9',
# ...
]
# feature dependency groups
chem = [
'rdkit',
# ...
# Redundant overlap with torch dependencies
'torch>=1.9',
# ...
]
torch = [
'torch>=1.9',
# ...
]
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,pip install …
我正在使用版本目录重构一个多模块项目,并且必须添加当前如下所示的依赖项:
implementation com.mygroup:my-artifact:1.0.0:debug@aar
Run Code Online (Sandbox Code Playgroud)
由于版本目录不允许指定aar类型,解决方法是直接在 gradle 文件中指定它,如下所示:
implementation(libs.myDependency) { artifact { type = 'aar' } }
Run Code Online (Sandbox Code Playgroud)
这可行,但存在额外的复杂性:我还需要指定构建类型,在上面的示例中是debug,我找不到添加它的方法。
我尝试过的是:
TOML
[libraries]
myDependency = { module = "com.mygroup:my-artifact", version = "1.0.0:debug" }
Run Code Online (Sandbox Code Playgroud)
摇篮
implementation(libs.myDependency) { artifact { type = 'aar' } }
Run Code Online (Sandbox Code Playgroud)
由于某种原因这不起作用,我怎样才能指定构建类型?
假设您有一个名为“dep”的依赖项,它具有两个名为 f1 和 f2 的功能。我想在正常构建板条箱时将“dep”与 f1 功能一起使用,但在构建用于测试的板条箱时将它与 f2 一起使用。我知道 dev-dependencies 是我们测试所需的那些,并且认为 Cargo.toml 的以下结构应该可以工作:
[dev-dependencies]
dep = { version = "1.0.0", features = ["f2"] }
[dependencies]
dep = { version = "1.0.0", features = ["f1"] }
Run Code Online (Sandbox Code Playgroud)
但是,看起来一旦我用“f1”拉入“dep”,编译器就会忽略在 dev-dependencies 部分下提到的相同依赖项。另一方面,将依赖项设为“可选”并不能解决问题,因为这样根本不会为测试引入“dep”。关于如何解决这个问题或很好地规避它的任何想法?
PS:我注意到这里正在跟踪这个问题:https : //github.com/rust-lang/cargo/issues/7916。所以目前,我只能期待受访者提供好的解决方法。
TOML 说: “TOML 和 YAML 都强调人类可读性特征,例如注释可以更容易地理解给定行的目的。TOML 在组合这些方面有所不同,允许注释(与 JSON 不同)但保留简单性(与 YAML 不同)。”
我可以看到 TOML 不依赖重要的空格,但除此之外,我不确定它声称的 简单性。那究竟是什么?
然后我看到StrictYAML,“StrictYAML 是一个类型安全的 YAML 解析器,它解析和验证 YAML 规范的一个受限子集。” 类型安全,那到底是什么(再次)?TOML 没有为 YAML 修复而 StrictYAML 认为他有什么问题?我确实阅读了 StrictYAML 网站上的文章,但我仍然不清楚。
所以 TOML 和 StrictYAML 都想解决 YAML 的“问题”。但是除了缩进,还有什么问题?
- - 更新 - -
我在 reddit 上发现 StrictYaml 的作者谈到了YAML 与 TOML。但到目前为止我得到的答案是“strictyaml 显示对 YAML 的理解相当差”
YAML 的缺点:
隐式类型会导致意外的类型更改。(例如,把 3 放在你之前有一个字符串的地方,它会神奇地变成一个 int)。
一堆令人讨厌的“隐藏功能”,例如节点锚点和引用,使其看起来不清楚(尽管公平地说,很多人不使用它)。
TOML的缺点:
更嘈杂的语法(尤其是多行字符串)。
数组/表的处理方式令人困惑,尤其是表数组。
我写了一个库,它删除了我不喜欢 YAML 的大部分讨厌的东西,留下了我喜欢的核心。它与一堆其他配置格式之间进行了非常详细的比较,例如:https : //github.com/crdoconnor/strictyaml/blob/master/FAQ.rst#why-not-use-toml
Julia 还没有在我的驾驶室里,但我得到了一个 Julia 项目来运行其中的代码。这由一个包含 a main.jl、 aProject.toml和 a的目录组成Manifest.toml。
我已经阅读了一些关于 TOML 文件的用途;总结一下我目前的理解,它们形成了一个项目或环境(不确定哪个,或者真正的区别是什么)。
我已经通过下载 tar、解压并放置在我的路径中,在命令行安装了 Julia v1.3.1。julia在命令行中键入会按预期打开 Julia CLI REPL。
我试图通过使用运行代码julia main.jl,这会导致对所需包不存在的抱怨,例如:
julia main.jl
ERROR: LoadError: ArgumentError: Package JSON not found in current path:
- Run `import Pkg; Pkg.add("JSON")` to install the JSON package.
Stacktrace:
[1] require(::Module, ::Symbol) at ./loading.jl:887
[2] include at ./boot.jl:328 [inlined]
[3] include_relative(::Module, ::String) at ./loading.jl:1105
[4] include(::Module, ::String) at ./Base.jl:31
[5] exec_options(::Base.JLOptions) at ./client.jl:287
[6] _start() at ./client.jl:460 …Run Code Online (Sandbox Code Playgroud) 我正在用 python 编写一个扫描器,它将收集有关目标的各种信息,例如开放端口、版本信息等。还使用保存单个扫描的配置设置的 toml 文件。
我需要一种方法来存储扫描结果。到目前为止,我正在使用一个包含所有目标数据的类。有没有办法将结果存储在文件中并让库函数根据要求解析和打印它们?
在 toml 表示中我正在考虑类似的事情
[target]
ip = xx.xx.xx.xx
[target.os]
os = 'win 10'
Arch = 'x64'
[target.ports]
ports = ['1', '2']
[target.ports.1]
service = 'xxx'
ver = '5.9'
Run Code Online (Sandbox Code Playgroud)
有没有办法以这种方式将扫描结果转储到 toml 文件?或者还有其他方法可以做得更好吗?
MVCE:
use std::collections::HashMap;
use std::fmt;
use std::marker::PhantomData;
use std::str::FromStr;
use serde; // 1.0.85
use serde::de::{self, MapAccess, Visitor}; // 1.0.85
use serde_derive::Deserialize; // 1.0.85
use toml; // 0.4.10
use void::Void; // 1.0.2
// See: https://serde.rs/string-or-struct.html
fn string_or_struct<'de, T, D>(deserializer: D) -> Result<T, D::Error>
where
T: serde::Deserialize<'de> + FromStr<Err = Void>,
D: serde::Deserializer<'de>,
{
// This is a Visitor that forwards string types to T's `FromStr` impl and
// forwards map types to T's `Deserialize` impl. The `PhantomData` is to
// …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个配置文件,它将是一个数组(列表)或字典(哈希,表)。用 JSON 术语来说,例如
[
{
"a":1,
"b":2
},
{
"a":10,
"b":20
}
]
Run Code Online (Sandbox Code Playgroud)
我本来希望
[[]]
a = 1
b = 2
[[]]
a = 10
b = 20
Run Code Online (Sandbox Code Playgroud)
是正确的,但它被我的 Go 解析器拒绝了
unexpected token "]]", was expecting a table array key
Run Code Online (Sandbox Code Playgroud)
这表明只允许顶级字典(哈希、表)。真的是这样吗?
我正在使用 Android Studio Giraffe。新的推荐方法是使用 Koltin 构建而不是 groovy。因此,当我创建新项目时,当我打开突出显示的库时,模块和项目级别的 build.gradle.kts 文件都以红色突出显示。有一个名为 libs.version.toml 的单独版本目录文件
红色高亮
库.版本.toml
[versions]
com-android-application = "8.1.0-alpha11"
org-jetbrains-kotlin-android = "1.8.10"
core-ktx = "1.9.0"
junit = "4.13.2"
androidx-test-ext-junit = "1.1.5"
espresso-core = "3.5.1"
lifecycle-runtime-ktx = "2.6.1"
activity-compose = "1.7.0"
compose-bom = "2023.03.00"
[libraries]
core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "core-ktx" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-test-ext-junit" …Run Code Online (Sandbox Code Playgroud) toml ×10
python ×3
rust ×2
android ×1
build.gradle ×1
gradle ×1
julia ×1
kotlin ×1
pip ×1
python-3.x ×1
rust-cargo ×1
serde ×1
solver ×1
yaml ×1