ascii! macro

This commit is contained in:
Jeong YunWon committed 2021-09-21 18:14:42 +09:00
1 parent 7395959f5f
commit 795738d32b
18 files changed
+212 -155

No files matched your search

Generated
+7
View File
@@ -76,6 +76,12 @@ version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
[[package]]
name = "ascii"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbf56136a5198c7b01a49e3afcbef6cf84597273d298f54432926024107b0109"
[[package]]
name = "ascii-canvas"
version = "3.0.0"
@@ -1894,6 +1900,7 @@ version = "0.1.2"
dependencies = [
"adler32",
"ahash",
"ascii",
"atty",
"base64",
"bitflags",
+1 -1
View File
@@ -133,7 +133,7 @@ fn bench_rustpy_code(group: &mut BenchmarkGroup<WallTime>, bench: &MicroBenchmar
scope
.locals
.set_item(
vm.ctx.new_ascii_literal(b"ITERATIONS"),
vm.ctx.new_ascii_literal(crate::utils::ascii!("ITERATIONS")),
vm.ctx.new_int(idx),
vm,
)
+1
View File
@@ -113,6 +113,7 @@ flame = { version = "0.2", optional = true }
flamer = { version = "0.4", optional = true }
rustpython-common = { path = "../common" }
ascii = "1.0.0"
[target.'cfg(unix)'.dependencies]
exitcode = "1.1.2"
+3 -1
View File
@@ -364,7 +364,9 @@ impl PyDict {
if let Some((key, value)) = self.entries.pop_back() {
Ok(vm.ctx.new_tuple(vec![key, value]))
} else {
let err_msg = vm.ctx.new_ascii_literal(b"popitem(): dictionary is empty");
let err_msg = vm
.ctx
.new_ascii_literal(crate::utils::ascii!("popitem(): dictionary is empty"));
Err(vm.new_key_error(err_msg))
}
}
+12 -4
View File
@@ -212,7 +212,11 @@ impl PyStrIterator {
fn reduce(&self, vm: &VirtualMachine) -> PyResult {
let iter = vm.get_attribute(vm.builtins.clone(), "iter")?;
Ok(vm.ctx.new_tuple(match self.status.load() {
Exhausted => vec![iter, vm.ctx.new_tuple(vec![vm.ctx.new_ascii_literal(b"")])],
Exhausted => vec![
iter,
vm.ctx
.new_tuple(vec![vm.ctx.new_ascii_literal(crate::utils::ascii!(""))]),
],
Active => vec![
iter,
vm.ctx.new_tuple(vec![self.string.clone().into_object()]),
@@ -976,7 +980,7 @@ impl PyStr {
if has_mid {
sep.into_object()
} else {
vm.ctx.new_ascii_literal(b"")
vm.ctx.new_ascii_literal(crate::utils::ascii!(""))
},
self.new_substr(back),
)
@@ -995,7 +999,7 @@ impl PyStr {
if has_mid {
sep.into_object()
} else {
vm.ctx.new_ascii_literal(b"")
vm.ctx.new_ascii_literal(crate::utils::ascii!(""))
},
self.new_substr(back),
)
@@ -1541,7 +1545,11 @@ mod tests {
table.set_item("a", vm.ctx.new_utf8_str("🎅"), &vm).unwrap();
table.set_item("b", vm.ctx.none(), &vm).unwrap();
table
.set_item("c", vm.ctx.new_ascii_literal(b"xda"), &vm)
.set_item(
"c",
vm.ctx.new_ascii_literal(crate::utils::ascii!("xda")),
&vm,
)
.unwrap();
let translated = PyStr::maketrans(
table.into_object(),
+1 -1
View File
@@ -344,7 +344,7 @@ impl PyType {
Some(found)
}
})
.unwrap_or_else(|| vm.ctx.new_ascii_literal(b"builtins"))
.unwrap_or_else(|| vm.ctx.new_ascii_literal(crate::utils::ascii!("builtins")))
}
#[pyproperty(magic, setter)]
+3 -1
View File
@@ -232,7 +232,9 @@ impl PySetInner {
if let Some((key, _)) = self.content.pop_back() {
Ok(key)
} else {
let err_msg = vm.ctx.new_ascii_literal(b"pop from an empty set");
let err_msg = vm
.ctx
.new_ascii_literal(crate::utils::ascii!("pop from an empty set"));
Err(vm.new_key_error(err_msg))
}
}
+4 -1
View File
@@ -367,7 +367,10 @@ fn strict_errors(err: PyObjectRef, vm: &VirtualMachine) -> PyResult {
fn ignore_errors(err: PyObjectRef, vm: &VirtualMachine) -> PyResult<(PyObjectRef, usize)> {
if is_encode_ish_err(&err, vm) || is_decode_err(&err, vm) {
let range = extract_unicode_error_range(&err, vm)?;
Ok((vm.ctx.new_ascii_literal(b""), range.end))
Ok((
vm.ctx.new_ascii_literal(crate::utils::ascii!("")),
range.end,
))
} else {
Err(bad_err_type(err, vm))
}
+3 -3
View File
@@ -775,12 +775,12 @@ mod tests {
assert_eq!(0, dict.len());
let key1 = vm.ctx.new_bool(true);
let value1 = vm.ctx.new_ascii_literal(b"abc");
let value1 = vm.ctx.new_ascii_literal(crate::utils::ascii!("abc"));
dict.insert(&vm, key1.clone(), value1.clone()).unwrap();
assert_eq!(1, dict.len());
let key2 = vm.ctx.new_ascii_literal(b"x");
let value2 = vm.ctx.new_ascii_literal(b"def");
let key2 = vm.ctx.new_ascii_literal(crate::utils::ascii!("x"));
let value2 = vm.ctx.new_ascii_literal(crate::utils::ascii!("def"));
dict.insert(&vm, key2.clone(), value2.clone()).unwrap();
assert_eq!(2, dict.len());
+3 -1
View File
@@ -65,7 +65,9 @@ pub fn file_readline(obj: &PyObjectRef, size: Option<usize>, vm: &VirtualMachine
let eof_err = || {
vm.new_exception(
vm.ctx.exceptions.eof_error.clone(),
vec![vm.ctx.new_ascii_literal(b"EOF when reading a line")],
vec![vm
.ctx
.new_ascii_literal(crate::utils::ascii!("EOF when reading a line"))],
)
};
let ret = match_class!(match ret {
+2 -3
View File
@@ -211,11 +211,10 @@ impl PyContext {
}
#[inline]
pub fn new_ascii_literal(&self, s: &'static [u8]) -> PyObjectRef {
pub fn new_ascii_literal(&self, s: &ascii::AsciiStr) -> PyObjectRef {
PyObject::new(
unsafe {
assert!(s.is_ascii()); // SAFETY
pystr::PyStr::new_str_unchecked(s.to_owned(), pystr::PyStrKind::Ascii)
pystr::PyStr::new_str_unchecked(s.as_bytes().to_owned(), pystr::PyStrKind::Ascii)
},
self.types.str_type.clone(),
None,
+116 -116
View File
@@ -8,7 +8,7 @@ struct NodeModule;
impl NodeModule {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"body"),ctx.new_ascii_literal(b"type_ignores")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("body")),ctx.new_ascii_literal(crate::utils::ascii!("type_ignores"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -18,7 +18,7 @@ struct NodeInteractive;
impl NodeInteractive {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"body")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("body"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -28,7 +28,7 @@ struct NodeExpression;
impl NodeExpression {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"body")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("body"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -38,7 +38,7 @@ struct NodeFunctionType;
impl NodeFunctionType {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"argtypes"),ctx.new_ascii_literal(b"returns")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("argtypes")),ctx.new_ascii_literal(crate::utils::ascii!("returns"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -48,8 +48,8 @@ struct NodeFunctionDef;
impl NodeFunctionDef {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"name"),ctx.new_ascii_literal(b"args"),ctx.new_ascii_literal(b"body"),ctx.new_ascii_literal(b"decorator_list"),ctx.new_ascii_literal(b"returns"),ctx.new_ascii_literal(b"type_comment")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("name")),ctx.new_ascii_literal(crate::utils::ascii!("args")),ctx.new_ascii_literal(crate::utils::ascii!("body")),ctx.new_ascii_literal(crate::utils::ascii!("decorator_list")),ctx.new_ascii_literal(crate::utils::ascii!("returns")),ctx.new_ascii_literal(crate::utils::ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "AsyncFunctionDef", base = "AstNode")]
@@ -58,8 +58,8 @@ struct NodeAsyncFunctionDef;
impl NodeAsyncFunctionDef {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"name"),ctx.new_ascii_literal(b"args"),ctx.new_ascii_literal(b"body"),ctx.new_ascii_literal(b"decorator_list"),ctx.new_ascii_literal(b"returns"),ctx.new_ascii_literal(b"type_comment")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("name")),ctx.new_ascii_literal(crate::utils::ascii!("args")),ctx.new_ascii_literal(crate::utils::ascii!("body")),ctx.new_ascii_literal(crate::utils::ascii!("decorator_list")),ctx.new_ascii_literal(crate::utils::ascii!("returns")),ctx.new_ascii_literal(crate::utils::ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "ClassDef", base = "AstNode")]
@@ -68,8 +68,8 @@ struct NodeClassDef;
impl NodeClassDef {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"name"),ctx.new_ascii_literal(b"bases"),ctx.new_ascii_literal(b"keywords"),ctx.new_ascii_literal(b"body"),ctx.new_ascii_literal(b"decorator_list")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("name")),ctx.new_ascii_literal(crate::utils::ascii!("bases")),ctx.new_ascii_literal(crate::utils::ascii!("keywords")),ctx.new_ascii_literal(crate::utils::ascii!("body")),ctx.new_ascii_literal(crate::utils::ascii!("decorator_list"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Return", base = "AstNode")]
@@ -78,8 +78,8 @@ struct NodeReturn;
impl NodeReturn {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"value")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Delete", base = "AstNode")]
@@ -88,8 +88,8 @@ struct NodeDelete;
impl NodeDelete {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"targets")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("targets"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Assign", base = "AstNode")]
@@ -98,8 +98,8 @@ struct NodeAssign;
impl NodeAssign {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"targets"),ctx.new_ascii_literal(b"value"),ctx.new_ascii_literal(b"type_comment")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("targets")),ctx.new_ascii_literal(crate::utils::ascii!("value")),ctx.new_ascii_literal(crate::utils::ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "AugAssign", base = "AstNode")]
@@ -108,8 +108,8 @@ struct NodeAugAssign;
impl NodeAugAssign {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"target"),ctx.new_ascii_literal(b"op"),ctx.new_ascii_literal(b"value")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("target")),ctx.new_ascii_literal(crate::utils::ascii!("op")),ctx.new_ascii_literal(crate::utils::ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "AnnAssign", base = "AstNode")]
@@ -118,8 +118,8 @@ struct NodeAnnAssign;
impl NodeAnnAssign {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"target"),ctx.new_ascii_literal(b"annotation"),ctx.new_ascii_literal(b"value"),ctx.new_ascii_literal(b"simple")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("target")),ctx.new_ascii_literal(crate::utils::ascii!("annotation")),ctx.new_ascii_literal(crate::utils::ascii!("value")),ctx.new_ascii_literal(crate::utils::ascii!("simple"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "For", base = "AstNode")]
@@ -128,8 +128,8 @@ struct NodeFor;
impl NodeFor {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"target"),ctx.new_ascii_literal(b"iter"),ctx.new_ascii_literal(b"body"),ctx.new_ascii_literal(b"orelse"),ctx.new_ascii_literal(b"type_comment")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("target")),ctx.new_ascii_literal(crate::utils::ascii!("iter")),ctx.new_ascii_literal(crate::utils::ascii!("body")),ctx.new_ascii_literal(crate::utils::ascii!("orelse")),ctx.new_ascii_literal(crate::utils::ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "AsyncFor", base = "AstNode")]
@@ -138,8 +138,8 @@ struct NodeAsyncFor;
impl NodeAsyncFor {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"target"),ctx.new_ascii_literal(b"iter"),ctx.new_ascii_literal(b"body"),ctx.new_ascii_literal(b"orelse"),ctx.new_ascii_literal(b"type_comment")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("target")),ctx.new_ascii_literal(crate::utils::ascii!("iter")),ctx.new_ascii_literal(crate::utils::ascii!("body")),ctx.new_ascii_literal(crate::utils::ascii!("orelse")),ctx.new_ascii_literal(crate::utils::ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "While", base = "AstNode")]
@@ -148,8 +148,8 @@ struct NodeWhile;
impl NodeWhile {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"test"),ctx.new_ascii_literal(b"body"),ctx.new_ascii_literal(b"orelse")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("test")),ctx.new_ascii_literal(crate::utils::ascii!("body")),ctx.new_ascii_literal(crate::utils::ascii!("orelse"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "If", base = "AstNode")]
@@ -158,8 +158,8 @@ struct NodeIf;
impl NodeIf {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"test"),ctx.new_ascii_literal(b"body"),ctx.new_ascii_literal(b"orelse")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("test")),ctx.new_ascii_literal(crate::utils::ascii!("body")),ctx.new_ascii_literal(crate::utils::ascii!("orelse"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "With", base = "AstNode")]
@@ -168,8 +168,8 @@ struct NodeWith;
impl NodeWith {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"items"),ctx.new_ascii_literal(b"body"),ctx.new_ascii_literal(b"type_comment")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("items")),ctx.new_ascii_literal(crate::utils::ascii!("body")),ctx.new_ascii_literal(crate::utils::ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "AsyncWith", base = "AstNode")]
@@ -178,8 +178,8 @@ struct NodeAsyncWith;
impl NodeAsyncWith {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"items"),ctx.new_ascii_literal(b"body"),ctx.new_ascii_literal(b"type_comment")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("items")),ctx.new_ascii_literal(crate::utils::ascii!("body")),ctx.new_ascii_literal(crate::utils::ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Raise", base = "AstNode")]
@@ -188,8 +188,8 @@ struct NodeRaise;
impl NodeRaise {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"exc"),ctx.new_ascii_literal(b"cause")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("exc")),ctx.new_ascii_literal(crate::utils::ascii!("cause"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Try", base = "AstNode")]
@@ -198,8 +198,8 @@ struct NodeTry;
impl NodeTry {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"body"),ctx.new_ascii_literal(b"handlers"),ctx.new_ascii_literal(b"orelse"),ctx.new_ascii_literal(b"finalbody")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("body")),ctx.new_ascii_literal(crate::utils::ascii!("handlers")),ctx.new_ascii_literal(crate::utils::ascii!("orelse")),ctx.new_ascii_literal(crate::utils::ascii!("finalbody"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Assert", base = "AstNode")]
@@ -208,8 +208,8 @@ struct NodeAssert;
impl NodeAssert {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"test"),ctx.new_ascii_literal(b"msg")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("test")),ctx.new_ascii_literal(crate::utils::ascii!("msg"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Import", base = "AstNode")]
@@ -218,8 +218,8 @@ struct NodeImport;
impl NodeImport {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"names")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("names"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "ImportFrom", base = "AstNode")]
@@ -228,8 +228,8 @@ struct NodeImportFrom;
impl NodeImportFrom {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"module"),ctx.new_ascii_literal(b"names"),ctx.new_ascii_literal(b"level")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("module")),ctx.new_ascii_literal(crate::utils::ascii!("names")),ctx.new_ascii_literal(crate::utils::ascii!("level"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Global", base = "AstNode")]
@@ -238,8 +238,8 @@ struct NodeGlobal;
impl NodeGlobal {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"names")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("names"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Nonlocal", base = "AstNode")]
@@ -248,8 +248,8 @@ struct NodeNonlocal;
impl NodeNonlocal {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"names")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("names"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Expr", base = "AstNode")]
@@ -258,8 +258,8 @@ struct NodeExpr;
impl NodeExpr {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"value")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Pass", base = "AstNode")]
@@ -269,7 +269,7 @@ impl NodePass {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Break", base = "AstNode")]
@@ -279,7 +279,7 @@ impl NodeBreak {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Continue", base = "AstNode")]
@@ -289,7 +289,7 @@ impl NodeContinue {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "BoolOp", base = "AstNode")]
@@ -298,8 +298,8 @@ struct NodeBoolOp;
impl NodeBoolOp {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"op"),ctx.new_ascii_literal(b"values")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("op")),ctx.new_ascii_literal(crate::utils::ascii!("values"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "NamedExpr", base = "AstNode")]
@@ -308,8 +308,8 @@ struct NodeNamedExpr;
impl NodeNamedExpr {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"target"),ctx.new_ascii_literal(b"value")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("target")),ctx.new_ascii_literal(crate::utils::ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "BinOp", base = "AstNode")]
@@ -318,8 +318,8 @@ struct NodeBinOp;
impl NodeBinOp {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"left"),ctx.new_ascii_literal(b"op"),ctx.new_ascii_literal(b"right")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("left")),ctx.new_ascii_literal(crate::utils::ascii!("op")),ctx.new_ascii_literal(crate::utils::ascii!("right"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "UnaryOp", base = "AstNode")]
@@ -328,8 +328,8 @@ struct NodeUnaryOp;
impl NodeUnaryOp {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"op"),ctx.new_ascii_literal(b"operand")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("op")),ctx.new_ascii_literal(crate::utils::ascii!("operand"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Lambda", base = "AstNode")]
@@ -338,8 +338,8 @@ struct NodeLambda;
impl NodeLambda {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"args"),ctx.new_ascii_literal(b"body")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("args")),ctx.new_ascii_literal(crate::utils::ascii!("body"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "IfExp", base = "AstNode")]
@@ -348,8 +348,8 @@ struct NodeIfExp;
impl NodeIfExp {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"test"),ctx.new_ascii_literal(b"body"),ctx.new_ascii_literal(b"orelse")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("test")),ctx.new_ascii_literal(crate::utils::ascii!("body")),ctx.new_ascii_literal(crate::utils::ascii!("orelse"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Dict", base = "AstNode")]
@@ -358,8 +358,8 @@ struct NodeDict;
impl NodeDict {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"keys"),ctx.new_ascii_literal(b"values")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("keys")),ctx.new_ascii_literal(crate::utils::ascii!("values"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Set", base = "AstNode")]
@@ -368,8 +368,8 @@ struct NodeSet;
impl NodeSet {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"elts")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("elts"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "ListComp", base = "AstNode")]
@@ -378,8 +378,8 @@ struct NodeListComp;
impl NodeListComp {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"elt"),ctx.new_ascii_literal(b"generators")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("elt")),ctx.new_ascii_literal(crate::utils::ascii!("generators"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "SetComp", base = "AstNode")]
@@ -388,8 +388,8 @@ struct NodeSetComp;
impl NodeSetComp {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"elt"),ctx.new_ascii_literal(b"generators")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("elt")),ctx.new_ascii_literal(crate::utils::ascii!("generators"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "DictComp", base = "AstNode")]
@@ -398,8 +398,8 @@ struct NodeDictComp;
impl NodeDictComp {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"key"),ctx.new_ascii_literal(b"value"),ctx.new_ascii_literal(b"generators")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("key")),ctx.new_ascii_literal(crate::utils::ascii!("value")),ctx.new_ascii_literal(crate::utils::ascii!("generators"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "GeneratorExp", base = "AstNode")]
@@ -408,8 +408,8 @@ struct NodeGeneratorExp;
impl NodeGeneratorExp {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"elt"),ctx.new_ascii_literal(b"generators")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("elt")),ctx.new_ascii_literal(crate::utils::ascii!("generators"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Await", base = "AstNode")]
@@ -418,8 +418,8 @@ struct NodeAwait;
impl NodeAwait {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"value")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Yield", base = "AstNode")]
@@ -428,8 +428,8 @@ struct NodeYield;
impl NodeYield {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"value")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "YieldFrom", base = "AstNode")]
@@ -438,8 +438,8 @@ struct NodeYieldFrom;
impl NodeYieldFrom {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"value")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Compare", base = "AstNode")]
@@ -448,8 +448,8 @@ struct NodeCompare;
impl NodeCompare {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"left"),ctx.new_ascii_literal(b"ops"),ctx.new_ascii_literal(b"comparators")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("left")),ctx.new_ascii_literal(crate::utils::ascii!("ops")),ctx.new_ascii_literal(crate::utils::ascii!("comparators"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Call", base = "AstNode")]
@@ -458,8 +458,8 @@ struct NodeCall;
impl NodeCall {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"func"),ctx.new_ascii_literal(b"args"),ctx.new_ascii_literal(b"keywords")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("func")),ctx.new_ascii_literal(crate::utils::ascii!("args")),ctx.new_ascii_literal(crate::utils::ascii!("keywords"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "FormattedValue", base = "AstNode")]
@@ -468,8 +468,8 @@ struct NodeFormattedValue;
impl NodeFormattedValue {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"value"),ctx.new_ascii_literal(b"conversion"),ctx.new_ascii_literal(b"format_spec")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("value")),ctx.new_ascii_literal(crate::utils::ascii!("conversion")),ctx.new_ascii_literal(crate::utils::ascii!("format_spec"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "JoinedStr", base = "AstNode")]
@@ -478,8 +478,8 @@ struct NodeJoinedStr;
impl NodeJoinedStr {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"values")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("values"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Constant", base = "AstNode")]
@@ -488,8 +488,8 @@ struct NodeConstant;
impl NodeConstant {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"value"),ctx.new_ascii_literal(b"kind")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("value")),ctx.new_ascii_literal(crate::utils::ascii!("kind"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Attribute", base = "AstNode")]
@@ -498,8 +498,8 @@ struct NodeAttribute;
impl NodeAttribute {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"value"),ctx.new_ascii_literal(b"attr"),ctx.new_ascii_literal(b"ctx")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("value")),ctx.new_ascii_literal(crate::utils::ascii!("attr")),ctx.new_ascii_literal(crate::utils::ascii!("ctx"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Subscript", base = "AstNode")]
@@ -508,8 +508,8 @@ struct NodeSubscript;
impl NodeSubscript {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"value"),ctx.new_ascii_literal(b"slice"),ctx.new_ascii_literal(b"ctx")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("value")),ctx.new_ascii_literal(crate::utils::ascii!("slice")),ctx.new_ascii_literal(crate::utils::ascii!("ctx"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Starred", base = "AstNode")]
@@ -518,8 +518,8 @@ struct NodeStarred;
impl NodeStarred {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"value"),ctx.new_ascii_literal(b"ctx")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("value")),ctx.new_ascii_literal(crate::utils::ascii!("ctx"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Name", base = "AstNode")]
@@ -528,8 +528,8 @@ struct NodeName;
impl NodeName {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"id"),ctx.new_ascii_literal(b"ctx")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("id")),ctx.new_ascii_literal(crate::utils::ascii!("ctx"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "List", base = "AstNode")]
@@ -538,8 +538,8 @@ struct NodeList;
impl NodeList {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"elts"),ctx.new_ascii_literal(b"ctx")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("elts")),ctx.new_ascii_literal(crate::utils::ascii!("ctx"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Tuple", base = "AstNode")]
@@ -548,8 +548,8 @@ struct NodeTuple;
impl NodeTuple {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"elts"),ctx.new_ascii_literal(b"ctx")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("elts")),ctx.new_ascii_literal(crate::utils::ascii!("ctx"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Slice", base = "AstNode")]
@@ -558,8 +558,8 @@ struct NodeSlice;
impl NodeSlice {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"lower"),ctx.new_ascii_literal(b"upper"),ctx.new_ascii_literal(b"step")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lower")),ctx.new_ascii_literal(crate::utils::ascii!("upper")),ctx.new_ascii_literal(crate::utils::ascii!("step"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Load", base = "AstNode")]
@@ -888,7 +888,7 @@ struct Nodecomprehension;
impl Nodecomprehension {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"target"),ctx.new_ascii_literal(b"iter"),ctx.new_ascii_literal(b"ifs"),ctx.new_ascii_literal(b"is_async")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("target")),ctx.new_ascii_literal(crate::utils::ascii!("iter")),ctx.new_ascii_literal(crate::utils::ascii!("ifs")),ctx.new_ascii_literal(crate::utils::ascii!("is_async"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -898,8 +898,8 @@ struct NodeExceptHandler;
impl NodeExceptHandler {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"type"),ctx.new_ascii_literal(b"name"),ctx.new_ascii_literal(b"body")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("type")),ctx.new_ascii_literal(crate::utils::ascii!("name")),ctx.new_ascii_literal(crate::utils::ascii!("body"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "arguments", base = "AstNode")]
@@ -908,7 +908,7 @@ struct Nodearguments;
impl Nodearguments {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"posonlyargs"),ctx.new_ascii_literal(b"args"),ctx.new_ascii_literal(b"vararg"),ctx.new_ascii_literal(b"kwonlyargs"),ctx.new_ascii_literal(b"kw_defaults"),ctx.new_ascii_literal(b"kwarg"),ctx.new_ascii_literal(b"defaults")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("posonlyargs")),ctx.new_ascii_literal(crate::utils::ascii!("args")),ctx.new_ascii_literal(crate::utils::ascii!("vararg")),ctx.new_ascii_literal(crate::utils::ascii!("kwonlyargs")),ctx.new_ascii_literal(crate::utils::ascii!("kw_defaults")),ctx.new_ascii_literal(crate::utils::ascii!("kwarg")),ctx.new_ascii_literal(crate::utils::ascii!("defaults"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -918,8 +918,8 @@ struct Nodearg;
impl Nodearg {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"arg"),ctx.new_ascii_literal(b"annotation"),ctx.new_ascii_literal(b"type_comment")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("arg")),ctx.new_ascii_literal(crate::utils::ascii!("annotation")),ctx.new_ascii_literal(crate::utils::ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "keyword", base = "AstNode")]
@@ -928,8 +928,8 @@ struct Nodekeyword;
impl Nodekeyword {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"arg"),ctx.new_ascii_literal(b"value")]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"col_offset"),ctx.new_ascii_literal(b"end_lineno"),ctx.new_ascii_literal(b"end_col_offset")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("arg")),ctx.new_ascii_literal(crate::utils::ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("col_offset")),ctx.new_ascii_literal(crate::utils::ascii!("end_lineno")),ctx.new_ascii_literal(crate::utils::ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "alias", base = "AstNode")]
@@ -938,7 +938,7 @@ struct Nodealias;
impl Nodealias {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"name"),ctx.new_ascii_literal(b"asname")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("name")),ctx.new_ascii_literal(crate::utils::ascii!("asname"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -948,7 +948,7 @@ struct Nodewithitem;
impl Nodewithitem {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"context_expr"),ctx.new_ascii_literal(b"optional_vars")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("context_expr")),ctx.new_ascii_literal(crate::utils::ascii!("optional_vars"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -958,7 +958,7 @@ struct NodeTypeIgnore;
impl NodeTypeIgnore {
#[extend_class]
fn extend_class_with_fields(ctx: &PyContext, class: &PyTypeRef) {
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(b"lineno"),ctx.new_ascii_literal(b"tag")]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("tag"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
+8 -3
View File
@@ -274,8 +274,13 @@ mod _sre {
m.get_slice(zelf.groups, state.string, vm)
.unwrap_or_else(|| vm.ctx.none())
} else {
m.groups(OptionalArg::Present(vm.ctx.new_ascii_literal(b"")), vm)?
.into_object()
m.groups(
OptionalArg::Present(
vm.ctx.new_ascii_literal(crate::utils::ascii!("")),
),
vm,
)?
.into_object()
};
matchlist.push(item);
@@ -510,7 +515,7 @@ mod _sre {
let join_type = if zelf.isbytes {
vm.ctx.new_bytes(vec![])
} else {
vm.ctx.new_ascii_literal(b"")
vm.ctx.new_ascii_literal(crate::utils::ascii!(""))
};
let ret = vm.call_method(&join_type, "join", (list,))?;
+12 -8
View File
@@ -76,8 +76,8 @@ enum ProtoVersion {
}
// taken from CPython, should probably be kept up to date with their version if it ever changes
const DEFAULT_CIPHER_STRING: &[u8] =
b"DEFAULT:!aNULL:!eNULL:!MD5:!3DES:!DES:!RC4:!IDEA:!SEED:!aDSS:!SRP:!PSK";
const DEFAULT_CIPHER_STRING: &str =
"DEFAULT:!aNULL:!eNULL:!MD5:!3DES:!DES:!RC4:!IDEA:!SEED:!aDSS:!SRP:!PSK";
#[derive(num_enum::IntoPrimitive, num_enum::TryFromPrimitive)]
#[repr(i32)]
@@ -154,8 +154,12 @@ fn _ssl_enum_certificates(store_name: PyStrRef, vm: &VirtualMachine) -> PyResult
(*ptr).dwCertEncodingType
};
let enc_type = match enc_type {
wincrypt::X509_ASN_ENCODING => vm.ctx.new_ascii_literal(b"x509_asn"),
wincrypt::PKCS_7_ASN_ENCODING => vm.ctx.new_ascii_literal(b"pkcs_7_asn"),
wincrypt::X509_ASN_ENCODING => {
vm.ctx.new_ascii_literal(crate::utils::ascii!("x509_asn"))
}
wincrypt::PKCS_7_ASN_ENCODING => {
vm.ctx.new_ascii_literal(crate::utils::ascii!("pkcs_7_asn"))
}
other => vm.ctx.new_int(other),
};
let usage = match c.valid_uses()? {
@@ -1058,17 +1062,17 @@ fn cert_to_py(vm: &VirtualMachine, cert: &X509Ref, binary: bool) -> PyResult {
.filter_map(|gen_name| {
if let Some(email) = gen_name.email() {
Some(vm.ctx.new_tuple(vec![
vm.ctx.new_ascii_literal(b"email"),
vm.ctx.new_ascii_literal(crate::utils::ascii!("email")),
vm.ctx.new_utf8_str(email),
]))
} else if let Some(dnsname) = gen_name.dnsname() {
Some(vm.ctx.new_tuple(vec![
vm.ctx.new_ascii_literal(b"DNS"),
vm.ctx.new_ascii_literal(crate::utils::ascii!("DNS")),
vm.ctx.new_utf8_str(dnsname),
]))
} else if let Some(ip) = gen_name.ipaddress() {
Some(vm.ctx.new_tuple(vec![
vm.ctx.new_ascii_literal(b"IP Address"),
vm.ctx.new_ascii_literal(crate::utils::ascii!("IP Address")),
vm.ctx.new_utf8_str(String::from_utf8_lossy(ip).into_owned()),
]))
} else {
@@ -1159,7 +1163,7 @@ pub fn make_module(vm: &VirtualMachine) -> PyObjectRef {
"OPENSSL_VERSION_NUMBER" => ctx.new_int(openssl::version::number()),
"OPENSSL_VERSION_INFO" => parse_version_info(openssl::version::number()).into_pyobject(vm),
"_OPENSSL_API_VERSION" => parse_version_info(openssl_api_version).into_pyobject(vm),
"_DEFAULT_CIPHERS" => ctx.new_ascii_literal(DEFAULT_CIPHER_STRING),
"_DEFAULT_CIPHERS" => ctx.new_utf8_str(DEFAULT_CIPHER_STRING),
// "PROTOCOL_SSLv2" => ctx.new_int(SslVersion::Ssl2 as u32), unsupported
// "PROTOCOL_SSLv3" => ctx.new_int(SslVersion::Ssl3 as u32),
"PROTOCOL_SSLv23" => ctx.new_int(SslVersion::Tls as u32),
+1 -1
View File
@@ -77,7 +77,7 @@ mod _string {
let field_name = FieldName::parse(text.as_str()).map_err(|e| e.into_pyexception(vm))?;
let first = match field_name.field_type {
FieldType::Auto => vm.ctx.new_ascii_literal(b""),
FieldType::Auto => vm.ctx.new_ascii_literal(crate::utils::ascii!("")),
FieldType::Index(index) => index.into_pyobject(vm),
FieldType::Keyword(attribute) => attribute.into_pyobject(vm),
};
+8 -8
View File
@@ -44,7 +44,7 @@ fn executable(ctx: &PyContext) -> PyObjectRef {
if let Some(exec_path) = env::args().next() {
let path = path::Path::new(&exec_path);
if !path.exists() {
return ctx.new_ascii_literal(b"");
return ctx.new_ascii_literal(crate::utils::ascii!(""));
}
if path.is_absolute() {
return ctx.new_utf8_str(exec_path);
@@ -237,7 +237,7 @@ fn sys_exc_info(vm: &VirtualMachine) -> (PyObjectRef, PyObjectRef, PyObjectRef)
fn sys_git_info(vm: &VirtualMachine) -> PyObjectRef {
vm.ctx.new_tuple(vec![
vm.ctx.new_ascii_literal(b"RustPython"),
vm.ctx.new_ascii_literal(crate::utils::ascii!("RustPython")),
vm.ctx.new_utf8_str(version::get_git_identifier()),
vm.ctx.new_utf8_str(version::get_git_revision()),
])
@@ -513,8 +513,8 @@ pub(crate) fn make_module(vm: &VirtualMachine, module: PyObjectRef, builtins: Py
// TODO Add crate version to this namespace
let implementation = py_namespace!(vm, {
"name" => ctx.new_ascii_literal(b"rustpython"),
"cache_tag" => ctx.new_ascii_literal(b"rustpython-01"),
"name" => ctx.new_ascii_literal(crate::utils::ascii!("rustpython")),
"cache_tag" => ctx.new_ascii_literal(crate::utils::ascii!("rustpython-01")),
"_multiarch" => ctx.new_utf8_str(MULTIARCH.to_owned()),
"version" => version_info.clone(),
"hexversion" => ctx.new_int(version::VERSION_HEX),
@@ -650,7 +650,7 @@ settrace() -- set the global debug tracing function
let base_exec_prefix = option_env!("RUSTPYTHON_BASEEXECPREFIX").unwrap_or(exec_prefix);
extend_module!(vm, module, {
"__name__" => ctx.new_ascii_literal(b"sys"),
"__name__" => ctx.new_ascii_literal(crate::utils::ascii!("sys")),
"argv" => argv(vm),
"builtin_module_names" => builtin_module_names,
"byteorder" => ctx.new_utf8_str(bytorder),
@@ -672,8 +672,8 @@ settrace() -- set the global debug tracing function
"maxunicode" => ctx.new_int(MAXUNICODE),
"maxsize" => ctx.new_int(MAXSIZE),
"path" => path,
"ps1" => ctx.new_ascii_literal(b">>>>> "),
"ps2" => ctx.new_ascii_literal(b"..... "),
"ps1" => ctx.new_ascii_literal(crate::utils::ascii!(">>>>> ")),
"ps2" => ctx.new_ascii_literal(crate::utils::ascii!("..... ")),
"__doc__" => ctx.new_utf8_str(sys_doc),
"_getframe" => named_function!(ctx, sys, _getframe),
"modules" => modules.clone(),
@@ -706,7 +706,7 @@ settrace() -- set the global debug tracing function
"api_version" => ctx.new_int(0x0), // what C api?
"float_info" => float_info,
"int_info" => int_info,
"float_repr_style" => ctx.new_ascii_literal(b"short"),
"float_repr_style" => ctx.new_ascii_literal(crate::utils::ascii!("short")),
"_xoptions" => xopts,
"warnoptions" => warnopts,
"_rustpython_debugbuild" => ctx.new_bool(cfg!(debug_assertions)),
+24
View File
@@ -126,3 +126,27 @@ impl ToCString for PyStr {
std::ffi::CString::new(self.as_ref()).map_err(|err| err.into_pyexception(vm))
}
}
#[allow(dead_code)]
pub(crate) const fn bytes_is_ascii(x: &str) -> bool {
let x = x.as_bytes();
let mut i = 0;
while i < x.len() {
if !x[i].is_ascii() {
return false;
}
i += 1;
}
true
}
macro_rules! ascii {
($x:literal) => {{
const _: () = {
["not ascii"][!crate::utils::bytes_is_ascii($x) as usize];
};
unsafe { ascii::AsciiStr::from_ascii_unchecked($x.as_bytes()) }
}};
}
pub(crate) use ascii;
+3 -3
View File
@@ -308,13 +308,13 @@ impl VirtualMachine {
module::init_module_dict(
&vm,
&builtins_dict,
vm.ctx.new_ascii_literal(b"builtins"),
vm.ctx.new_ascii_literal(crate::utils::ascii!("builtins")),
vm.ctx.none(),
);
module::init_module_dict(
&vm,
&sysmod_dict,
vm.ctx.new_ascii_literal(b"sys"),
vm.ctx.new_ascii_literal(crate::utils::ascii!("sys")),
vm.ctx.none(),
);
vm
@@ -2230,7 +2230,7 @@ mod tests {
#[test]
fn test_multiply_str() {
Interpreter::default().enter(|vm| {
let a = vm.ctx.new_ascii_literal(b"Hello ");
let a = vm.ctx.new_ascii_literal(crate::utils::ascii!("Hello "));
let b = vm.ctx.new_int(4_i32);
let res = vm._mul(&a, &b).unwrap();
let value = res.payload::<PyStr>().unwrap();