Skip to main content

parse

Function parse 

Source
pub fn parse(
    source: &str,
    options: ParseOptions,
) -> Result<Parsed<Mod>, ParseError>
Expand description

Parse the given Python source code using the specified ParseOptions.

This function is the most general function to parse Python code. Based on the Mode supplied via the ParseOptions, it can be used to parse a single expression, a full Python program, an interactive expression or a Python program containing IPython escape commands.

ยงExample

If we want to parse a simple expression, we can use the Mode::Expression mode during parsing:

use ruff_python_parser::{parse, Mode, ParseOptions};

let parsed = parse("1 + 2", ParseOptions::from(Mode::Expression));
assert!(parsed.is_ok());

Alternatively, we can parse a full Python program consisting of multiple lines:

use ruff_python_parser::{parse, Mode, ParseOptions};

let source = r#"
class Greeter:

  def greet(self):
   print("Hello, world!")
"#;
let parsed = parse(source, ParseOptions::from(Mode::Module));
assert!(parsed.is_ok());

Additionally, we can parse a Python program containing IPython escapes:

use ruff_python_parser::{parse, Mode, ParseOptions};

let source = r#"
%timeit 1 + 2
?str.replace
!ls
"#;
let parsed = parse(source, ParseOptions::from(Mode::Ipython));
assert!(parsed.is_ok());