我想编写一个函数来读取文件的内容,并在失败时引发错误。我想从 python 脚本调用这个函数,所以我在下面提到了一些 Python 以防它可能相关。
正如我在评论中尝试显示的那样,可能会发生更多的工作,从而引发其他类型的错误,因此,如果可能的话,我想使用通用错误(如果 Rust 中可以实现)(?)。如何返回错误,以便可以对其进行处理并将其包装在 python 错误中,如图所示do_work?不确定我导致以下错误的方法是否方向正确。
fn work_with_text() -> Result<(), dyn std::error::Error> {
let content = match std::fs::read_to_string("text.txt") {
Ok(t) => t,
Err(e) => return Err(e),
};
// do something with content that may cause another type of error (rusqlite error)
Ok(())
}
#[pyfunction]
fn do_work(_py: Python) -> PyResult<u32> {
match work_with_text() {
Ok(_) => (0),
Err(e) => {
let gil = Python::acquire_gil();
let py = gil.python();
let error_message = format!("Error happened {}", e.to_string()); …Run Code Online (Sandbox Code Playgroud) 在可滚动列内,我有一个水平寻呼机,上面有两页。其中一个包含很长的内容列表,而另一个则短得多。在较小的一个上,我在底部有一个很大的区域,我可以向下滚动,但没有任何内容,我怀疑是因为长列表的高度。另外,如果我滚动到较长页面的底部,然后滑动到另一页,那么我只会得到一个空白屏幕,并且必须向上滚动到实际内容。
如何限制用户向下滚动到较短页面上的实际内容下方?
Column(
modifier = Modifier
.align(Alignment.TopStart)
.fillMaxWidth()
.verticalScroll(rememberScrollState())
) {
someOtherContent() // for example around 400.dp height
HorizontalPager(
state = pagerState,
verticalAlignment = Alignment.Top
) { i ->
when (i) {
0 -> {
Column(
modifier = Modifier.fillMaxWidth().height(450.dp)
) {
... not too much content
}
}
1 -> {
Column(
modifier = Modifier.fillMaxWidth().height(2000.dp)
) {
... many rows of content
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用ORM进行开发,我扩展了一个基础orm类来创建表.
例如:
public class Person extends DbItem {
@JsonIgnore
private String index;
private String firstName;
private String lastName;
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我使用ObjectMapper进行序列化时,它会尝试序列化DbItem类的成员.有没有简单的方法来防止这种情况?例如,带注释.
我看了一下类似的问题杰克逊序列化:如何忽略超类属性,但我希望它可以做得更简单,我不确定我是否可以这样做因为我不能改变超类,因为它是在一个外部图书馆.
如何使用 PLS-DA 图的 Matplotlib 制作加载图,例如 PCA 的加载图?
这个答案解释了如何使用 PCA 完成: Plot PCA loadings and loading in biplot in sklearn (like R's autoplot)
然而,这两种方法之间存在一些显着差异,这使得实现也不同。(此处解释了一些相关差异https://learnche.org/pid/latent-variable-modelling/projection-to-latent-structures/interpreting-pls-scores-and-loadings)
为了制作 PLS-DA 图,我使用以下代码:
from sklearn.preprocessing import StandardScaler
from sklearn.cross_decomposition import PLSRegression
import numpy as np
import pandas as pd
targets = [0, 1]
x_vals = StandardScaler().fit_transform(df.values)
y = [g == targets[0] for g in sample_description]
y = np.array(y, dtype=int)
plsr = PLSRegression(n_components=2, scale=False)
plsr.fit(x_vals, y)
colormap = {
targets[0]: '#ff0000', # Red
targets[1]: '#0000ff', # …Run Code Online (Sandbox Code Playgroud) 如何使用 rusqlite 在单个查询中插入多行?看看下面的语法,我认为它失败了,因为查询期望 Vec 中只有一个值。
可以使用任何类型的辅助函数来完成吗?还是我必须完整创建查询?
let mut names = Vec::new();
names.push("Mittens");
names.push("Jingle Paws");
names.push("Sir Fluffy");
match conn.execute(
"INSERT INTO cats (name) VALUES (?1)",
names,
) {
Ok(_t) => (),
Err(e) => {
let gil = Python::acquire_gil();
let py = gil.python();
let error_message = format!("Error inserting cats into database! {}", e.to_string());
PyIOError::new_err(error_message).restore(py);
return Err(PyErr::fetch(py));
}
};
Run Code Online (Sandbox Code Playgroud)
?
OSError: Error inserting cats into database! Wrong number of parameters passed to query. Got 2, needed 1
Run Code Online (Sandbox Code Playgroud) 我正在开发 Jetpack Compose 应用程序,我认为 Slider 导致错误java.lang.IllegalArgumentException: Cannot round NaN value,导致我的应用程序崩溃。
但是,它没有给我任何关于导致其发生的位置或原因的提示,除此之外它似乎可能与 Box 可组合项有关。此外,如果我从我的视图中删除Slider,它看起来好像没有发生,所以看起来这是因为这个可组合项。
滑块会定期更新,并从外部确定的因素中获取值。
是否存在明显错误,或者我可以采取哪些措施来调试或识别问题?
我的库版本是:
androidx-activity = "1.4.0"
androidx-appcompat="1.4.0"
androidxAnnotation="1.2.0"
androidx-core="1.7.0"
compose="1.1.1"
Run Code Online (Sandbox Code Playgroud)
这是我的代码
@Composable
fun MyComposable(
modifier: Modifier = Modifier,
viewModel: MyViewModel? = hiltViewModel<MyViewModel>()
) {
LaunchedEffect(true) {
viewModel.init()
}
Box(modifier = modifier.fillMaxSize()) {
Column(
modifier = Modifier
.fillMaxWidth()
.align(Alignment.BottomCenter)
.padding(bottom = 20.dp)
.padding(horizontal = 20.dp)
) {
Slider(
modifier = Modifier.fillMaxWidth(),
value = viewModel.sliderPosition,
onValueChange = viewModel::onSliderValueChange
)
}
}
}
}
@HiltViewModel
class …Run Code Online (Sandbox Code Playgroud) 我使用 React 版本的plot.ly 来渲染 3D 散点图,但每次重新渲染组件时,该图都会重置为其默认配置。
如何防止这种情况发生并保持缩放/旋转配置?
下面是一个最小的代码示例。重申一下,如何保存缩放和旋转,以及如何在绘图上设置它?
setPlotData() {
const points = {
1: {x: 1, y: 1, z: 1},
2: {x: 2, y: 1, z: 1},
3: {x: 3, y: 2, z: 1}
}
const x=[], y=[], z=[]
Object.keys(points).forEach((key, index) => {
x.push(points[key].x); y.push(points[key].y); z.push(points[key].z)
})
const data1 = {
x: x, y: y, z: z,
mode: "markers",
marker: {
color: "rgb(16, 52, 166)",
size: 4,
symbol: "circle",
opacity: 1
},
type: "scatter3d"
}
this.setState({
scatterPlotData: [data1]
}) …Run Code Online (Sandbox Code Playgroud) 我在 kubernetes 集群中使用 pika 并使用队列中的消息,这会触发在新线程中启动函数。然而 RabbitMQ 似乎崩溃了,这些是我迄今为止找到的最好的日志:
2020-12-23 10:39:10,906] WARNING - WRITE indicated on fd=9, but writer callback is None; events=0b100 {/usr/local/lib/python3.9/site-packages/pika/adapters/utils/selector_ioloop_adapter.py:393}
(repeats to a total of n=38 times)
2020-12-23 10:39:10,908] ERROR - _AsyncBaseTransport._produce() failed, aborting connection: error=IndexError('pop from an empty deque'); sock=<socket.socket fd=9, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6, laddr=('192.168.100.200', 44892), raddr=('192.168.101.201', 5672)>; Caller's stack:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/pika/adapters/utils/io_services_utils.py", line 1097, in _on_socket_writable
self._produce()
File "/usr/local/lib/python3.9/site-packages/pika/adapters/utils/io_services_utils.py", line 822, in _produce
chunk = self._tx_buffers.popleft()
IndexError: pop from an empty deque …Run Code Online (Sandbox Code Playgroud) 我正在测试 python 代码(一个 django 3.0.5 项目,虽然我认为它不相关),但我无法调用我的模拟对象的函数。这是我的代码:
**myproject.mypackage.myhelpers**
def get_dict():
return dict()
**myproject.mypackage.mythings**
from .myhelpers import get_dict
def use_dict():
the_dict = get_dict()
pass
return
**myproject.tests.test_mythings**
from ..mypackage import mythings
import unittest
import unittest.mock as mock
class MyThingsTests(unittest.TestCase):
@mock.patch('myproject.mypackage.myhelpers')
def test_using_dict(self, mock_myhelpers):
test_dict = {
"hi": "foo",
"there": "bar",
"sir": "foobar"
}
mock_myhelpers.get_dict.return_value = test_dict
mythings.use_dict()
mock_myhelpers.get_dict.assert_called_once()
Run Code Online (Sandbox Code Playgroud)
但是最终测试失败并出现错误:
AssertionError: Expected 'get_dict' to have been called once. Called 0 times
我知道如果字段为空或为空,则可以忽略字段,但是是否可以忽略字段,例如,如果它是一个字符串,并且包含某个子字符串?
jackson ×2
java ×2
json ×2
python ×2
rust ×2
android ×1
inheritance ×1
kotlin ×1
matplotlib ×1
mocking ×1
pika ×1
plotly ×1
plotly.js ×1
polymorphism ×1
python-pika ×1
rabbitmq ×1
reactjs ×1
rusqlite ×1
scikit-learn ×1
traits ×1