MCPcopy Create free account
hub / github.com/LaihoE/Python-demoparser / parse_ticks

Method parse_ticks

src/lib.rs:206–324  ·  view source on GitHub ↗
(
        &self,
        py: Python,
        mut wanted_props: Vec<String>,
        py_kwargs: Option<&PyDict>,
    )

Source from the content-addressed store, hash-verified

204
205 #[args(py_kwargs = "**")]
206 pub fn parse_ticks(
207 &self,
208 py: Python,
209 mut wanted_props: Vec<String>,
210 py_kwargs: Option<&PyDict>,
211 ) -> PyResult<PyObject> {
212 let mut real_props = rm_user_friendly_names(&wanted_props);
213 let unk_props = check_validity_props(&real_props);
214 if !unk_props.is_empty() {
215 return Err(PyKeyError::new_err(format!(
216 "Unknown fields: {:?}",
217 unk_props
218 )));
219 }
220 let (wanted_players, wanted_ticks) = parse_kwargs_ticks(py_kwargs);
221 let wanted_ticks_len = wanted_ticks.len();
222 let biggest_wanted_tick = if wanted_ticks_len > 0 {
223 wanted_ticks.iter().max().unwrap()
224 } else {
225 &99999999
226 };
227
228 let parser = Demo::new(
229 self.path.clone(),
230 true,
231 wanted_ticks.clone(),
232 wanted_players,
233 real_props.clone(),
234 "".to_string(),
235 false,
236 false,
237 true,
238 *biggest_wanted_tick,
239 wanted_props.clone(),
240 );
241
242 match parser {
243 Err(e) => Err(PyFileNotFoundError::new_err(format!(
244 "Couldnt read demo file. Error: {}",
245 e
246 ))),
247 Ok(mut parser) => {
248 let h: Header = parser.parse_demo_header();
249
250 parser.playback_frames = if wanted_ticks_len == 0 {
251 h.playback_frames as usize
252 } else {
253 wanted_ticks_len
254 };
255 let data = parser.start_parsing(&real_props);
256
257 real_props.push("tick".to_string());
258 real_props.push("steamid".to_string());
259 real_props.push("name".to_string());
260 wanted_props.push("tick".to_string());
261 wanted_props.push("steamid".to_string());
262 wanted_props.push("name".to_string());
263

Callers 9

coordinatesFunction · 0.95
gen_tick_testsFunction · 0.95
coordinatesFunction · 0.95
round_statsFunction · 0.95
coordinatesFunction · 0.95
test_ticksMethod · 0.80
coordinates.pyFile · 0.80
round_stats.pyFile · 0.80
afk_teammate.pyFile · 0.80

Calls 8

rm_user_friendly_namesFunction · 0.85
check_validity_propsFunction · 0.85
parse_kwargs_ticksFunction · 0.85
rust_series_to_py_seriesFunction · 0.85
lenMethod · 0.80
parse_demo_headerMethod · 0.80
start_parsingMethod · 0.80
get_lenMethod · 0.80

Tested by 2

gen_tick_testsFunction · 0.76
test_ticksMethod · 0.64