equal
deleted
inserted
replaced
45 ); |
45 ); |
46 } |
46 } |
47 let inner = if let Ok(map) = map.cast_as::<PyDict>(py) { |
47 let inner = if let Ok(map) = map.cast_as::<PyDict>(py) { |
48 let dirstate = extract_dirstate(py, &map)?; |
48 let dirstate = extract_dirstate(py, &map)?; |
49 DirsMultiset::from_dirstate(&dirstate, skip_state) |
49 DirsMultiset::from_dirstate(&dirstate, skip_state) |
|
50 .map_err(|e| { |
|
51 PyErr::new::<exc::ValueError, _>(py, e.to_string()) |
|
52 })? |
50 } else { |
53 } else { |
51 let map: Result<Vec<HgPathBuf>, PyErr> = map |
54 let map: Result<Vec<HgPathBuf>, PyErr> = map |
52 .iter(py)? |
55 .iter(py)? |
53 .map(|o| { |
56 .map(|o| { |
54 Ok(HgPathBuf::from_bytes( |
57 Ok(HgPathBuf::from_bytes( |
55 o?.extract::<PyBytes>(py)?.data(py), |
58 o?.extract::<PyBytes>(py)?.data(py), |
56 )) |
59 )) |
57 }) |
60 }) |
58 .collect(); |
61 .collect(); |
59 DirsMultiset::from_manifest(&map?) |
62 DirsMultiset::from_manifest(&map?) |
|
63 .map_err(|e| { |
|
64 PyErr::new::<exc::ValueError, _>(py, e.to_string()) |
|
65 })? |
60 }; |
66 }; |
61 |
67 |
62 Self::create_instance( |
68 Self::create_instance( |
63 py, |
69 py, |
64 PySharedRefCell::new(inner), |
70 PySharedRefCell::new(inner), |