Merge pull request #3155 from youknowone/ascii

vm::utils::ascii! -> common::ascii!
This commit is contained in:
Jeong YunWon
2021-09-28 16:35:49 +09:00
committed by GitHub
18 changed files with 204 additions and 201 deletions

View File

@@ -3,7 +3,9 @@ use criterion::{
criterion_group, criterion_main, BatchSize, BenchmarkGroup, BenchmarkId, Criterion, Throughput,
};
use rustpython_compiler::Mode;
use rustpython_vm::{utils::ascii, InitParameter, Interpreter, ItemProtocol, PyResult, PySettings};
use rustpython_vm::{
common::ascii, InitParameter, Interpreter, ItemProtocol, PyResult, PySettings,
};
use std::path::{Path, PathBuf};
use std::{ffi, fs, io};

View File

@@ -11,3 +11,7 @@ pub mod lock;
pub mod rc;
pub mod static_cell;
pub mod str;
pub mod vendored {
pub use ascii;
}

View File

@@ -82,6 +82,29 @@ pub fn to_ascii(value: &str) -> String {
ascii
}
#[doc(hidden)]
pub 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_export]
macro_rules! ascii {
($x:literal) => {{
const _: () = {
["not ascii"][!$crate::str::bytes_is_ascii($x) as usize];
};
unsafe { $crate::vendored::ascii::AsciiStr::from_ascii_unchecked($x.as_bytes()) }
}};
}
#[cfg(test)]
mod tests {
use super::*;

View File

@@ -1,5 +1,6 @@
use super::{IterStatus, PySet, PyStrRef, PyTypeRef};
use crate::{
common::ascii,
dictdatatype::{self, DictKey},
exceptions::PyBaseExceptionRef,
function::{ArgIterable, FuncArgs, KwArgs, OptionalArg},
@@ -363,7 +364,7 @@ impl PyDict {
} else {
let err_msg = vm
.ctx
.new_ascii_literal(crate::utils::ascii!("popitem(): dictionary is empty"));
.new_ascii_literal(ascii!("popitem(): dictionary is empty"));
Err(vm.new_key_error(err_msg))
}
}

View File

@@ -20,8 +20,11 @@ use bstr::ByteSlice;
use crossbeam_utils::atomic::AtomicCell;
use itertools::Itertools;
use num_traits::ToPrimitive;
use rustpython_common::atomic::{self, PyAtomic, Radium};
use rustpython_common::hash;
use rustpython_common::{
ascii,
atomic::{self, PyAtomic, Radium},
hash,
};
use std::mem::size_of;
use std::ops::Range;
use std::string::ToString;
@@ -212,8 +215,7 @@ impl PyStrIterator {
Ok(vm.ctx.new_tuple(match self.status.load() {
Exhausted => vec![
iter,
vm.ctx
.new_tuple(vec![vm.ctx.new_ascii_literal(crate::utils::ascii!(""))]),
vm.ctx.new_tuple(vec![vm.ctx.new_ascii_literal(ascii!(""))]),
],
Active => vec![
iter,
@@ -979,7 +981,7 @@ impl PyStr {
if has_mid {
sep.into_object()
} else {
vm.ctx.new_ascii_literal(crate::utils::ascii!(""))
vm.ctx.new_ascii_literal(ascii!(""))
},
self.new_substr(back),
)
@@ -998,7 +1000,7 @@ impl PyStr {
if has_mid {
sep.into_object()
} else {
vm.ctx.new_ascii_literal(crate::utils::ascii!(""))
vm.ctx.new_ascii_literal(ascii!(""))
},
self.new_substr(back),
)
@@ -1544,11 +1546,7 @@ 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(crate::utils::ascii!("xda")),
&vm,
)
.set_item("c", vm.ctx.new_ascii_literal(ascii!("xda")), &vm)
.unwrap();
let translated = PyStr::maketrans(
table.into_object(),

View File

@@ -2,7 +2,7 @@ use super::{
mappingproxy::PyMappingProxy, object, PyClassMethod, PyDictRef, PyInt, PyList, PyStaticMethod,
PyStr, PyStrRef, PyTuple, PyTupleRef, PyWeak,
};
use crate::common::lock::PyRwLock;
use crate::common::{ascii, lock::PyRwLock};
use crate::{
function::{FuncArgs, KwArgs, OptionalArg},
slots::{self, Callable, PyTpFlags, PyTypeSlots, SlotGetattro, SlotSetattro},
@@ -404,7 +404,7 @@ impl PyType {
Some(found)
}
})
.unwrap_or_else(|| vm.ctx.new_ascii_literal(crate::utils::ascii!("builtins")))
.unwrap_or_else(|| vm.ctx.new_ascii_literal(ascii!("builtins")))
}
#[pyproperty(magic, setter)]

View File

@@ -2,7 +2,7 @@
* Builtin set type with a sequence of unique items.
*/
use super::{IterStatus, PyDictRef, PyTypeRef};
use crate::common::{hash::PyHash, rc::PyRc};
use crate::common::{ascii, hash::PyHash, rc::PyRc};
use crate::{
dictdatatype::{self, DictSize},
function::{ArgIterable, FuncArgs, OptionalArg, PosArgs},
@@ -235,9 +235,7 @@ impl PySetInner {
if let Some((key, _)) = self.content.pop_back() {
Ok(key)
} else {
let err_msg = vm
.ctx
.new_ascii_literal(crate::utils::ascii!("pop from an empty set"));
let err_msg = vm.ctx.new_ascii_literal(ascii!("pop from an empty set"));
Err(vm.new_key_error(err_msg))
}
}

View File

@@ -3,7 +3,7 @@ use std::collections::HashMap;
use std::ops::Range;
use crate::builtins::{PyBytesRef, PyStr, PyStrRef, PyTuple, PyTupleRef};
use crate::common::lock::PyRwLock;
use crate::common::{ascii, lock::PyRwLock};
use crate::exceptions::PyBaseExceptionRef;
use crate::VirtualMachine;
use crate::{IntoPyObject, PyContext, PyObjectRef, PyResult, PyValue, TryFromObject, TypeProtocol};
@@ -367,10 +367,7 @@ 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(crate::utils::ascii!("")),
range.end,
))
Ok((vm.ctx.new_ascii_literal(ascii!("")), range.end))
} else {
Err(bad_err_type(err, vm))
}

View File

@@ -3,11 +3,13 @@ use crate::builtins::{PyStr, PyStrRef};
/// Inspired by: https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html
/// And: https://www.youtube.com/watch?v=p33CVV29OG8
/// And: http://code.activestate.com/recipes/578375/
use crate::common::lock::{PyRwLock, PyRwLockReadGuard, PyRwLockWriteGuard};
use crate::common::{
hash,
lock::{PyRwLock, PyRwLockReadGuard, PyRwLockWriteGuard},
};
use crate::vm::VirtualMachine;
use crate::{IdProtocol, IntoPyObject, PyObjectRef, PyRefExact, PyResult, TypeProtocol};
use crossbeam_utils::atomic::AtomicCell;
use rustpython_common::hash;
use std::fmt;
use std::mem::size_of;
@@ -766,6 +768,7 @@ fn extract_dict_entry<T>(option_entry: &Option<DictEntry<T>>) -> &DictEntry<T> {
#[cfg(test)]
mod tests {
use super::{Dict, DictKey};
use crate::common::ascii;
use crate::Interpreter;
#[test]
@@ -775,12 +778,12 @@ mod tests {
assert_eq!(0, dict.len());
let key1 = vm.ctx.new_bool(true);
let value1 = vm.ctx.new_ascii_literal(crate::utils::ascii!("abc"));
let value1 = vm.ctx.new_ascii_literal(ascii!("abc"));
dict.insert(&vm, key1.clone(), value1.clone()).unwrap();
assert_eq!(1, dict.len());
let key2 = vm.ctx.new_ascii_literal(crate::utils::ascii!("x"));
let value2 = vm.ctx.new_ascii_literal(crate::utils::ascii!("def"));
let key2 = vm.ctx.new_ascii_literal(ascii!("x"));
let value2 = vm.ctx.new_ascii_literal(ascii!("def"));
dict.insert(&vm, key2.clone(), value2.clone()).unwrap();
assert_eq!(2, dict.len());

View File

@@ -249,13 +249,3 @@ cfg_if::cfg_if! {
}
}
}
macro_rules! ascii {
($x:literal) => {{
const _: () = {
["not ascii"][!rustpython_vm::utils::bytes_is_ascii($x) as usize];
};
unsafe { ascii::AsciiStr::from_ascii_unchecked($x.as_bytes()) }
}};
}
pub use ascii;

View File

@@ -1,5 +1,6 @@
use crate::builtins::bytes::PyBytes;
use crate::builtins::pystr::PyStr;
use crate::common::ascii;
use crate::exceptions::PyBaseExceptionRef;
use crate::VirtualMachine;
use crate::{PyObjectRef, PyResult};
@@ -65,9 +66,7 @@ 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(crate::utils::ascii!("EOF when reading a line"))],
vec![vm.ctx.new_ascii_literal(ascii!("EOF when reading a line"))],
)
};
let ret = match_class!(match ret {

View File

@@ -1,6 +1,7 @@
// File automatically generated by ast/asdl_rs.py.
use super::*;
use crate::common::ascii;
#[pyclass(module = "_ast", name = "Module", base = "AstNode")]
struct NodeModule;
@@ -8,7 +9,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(crate::utils::ascii!("body")),ctx.new_ascii_literal(crate::utils::ascii!("type_ignores"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("body")),ctx.new_ascii_literal(ascii!("type_ignores"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -18,7 +19,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(crate::utils::ascii!("body"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("body"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -28,7 +29,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(crate::utils::ascii!("body"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("body"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -38,7 +39,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(crate::utils::ascii!("argtypes")),ctx.new_ascii_literal(crate::utils::ascii!("returns"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("argtypes")),ctx.new_ascii_literal(ascii!("returns"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -48,8 +49,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("name")),ctx.new_ascii_literal(ascii!("args")),ctx.new_ascii_literal(ascii!("body")),ctx.new_ascii_literal(ascii!("decorator_list")),ctx.new_ascii_literal(ascii!("returns")),ctx.new_ascii_literal(ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "AsyncFunctionDef", base = "AstNode")]
@@ -58,8 +59,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("name")),ctx.new_ascii_literal(ascii!("args")),ctx.new_ascii_literal(ascii!("body")),ctx.new_ascii_literal(ascii!("decorator_list")),ctx.new_ascii_literal(ascii!("returns")),ctx.new_ascii_literal(ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "ClassDef", base = "AstNode")]
@@ -68,8 +69,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("name")),ctx.new_ascii_literal(ascii!("bases")),ctx.new_ascii_literal(ascii!("keywords")),ctx.new_ascii_literal(ascii!("body")),ctx.new_ascii_literal(ascii!("decorator_list"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Return", base = "AstNode")]
@@ -78,8 +79,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Delete", base = "AstNode")]
@@ -88,8 +89,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("targets"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Assign", base = "AstNode")]
@@ -98,8 +99,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("targets")),ctx.new_ascii_literal(ascii!("value")),ctx.new_ascii_literal(ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "AugAssign", base = "AstNode")]
@@ -108,8 +109,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("target")),ctx.new_ascii_literal(ascii!("op")),ctx.new_ascii_literal(ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "AnnAssign", base = "AstNode")]
@@ -118,8 +119,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("target")),ctx.new_ascii_literal(ascii!("annotation")),ctx.new_ascii_literal(ascii!("value")),ctx.new_ascii_literal(ascii!("simple"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "For", base = "AstNode")]
@@ -128,8 +129,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("target")),ctx.new_ascii_literal(ascii!("iter")),ctx.new_ascii_literal(ascii!("body")),ctx.new_ascii_literal(ascii!("orelse")),ctx.new_ascii_literal(ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "AsyncFor", base = "AstNode")]
@@ -138,8 +139,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("target")),ctx.new_ascii_literal(ascii!("iter")),ctx.new_ascii_literal(ascii!("body")),ctx.new_ascii_literal(ascii!("orelse")),ctx.new_ascii_literal(ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "While", base = "AstNode")]
@@ -148,8 +149,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("test")),ctx.new_ascii_literal(ascii!("body")),ctx.new_ascii_literal(ascii!("orelse"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "If", base = "AstNode")]
@@ -158,8 +159,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("test")),ctx.new_ascii_literal(ascii!("body")),ctx.new_ascii_literal(ascii!("orelse"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "With", base = "AstNode")]
@@ -168,8 +169,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("items")),ctx.new_ascii_literal(ascii!("body")),ctx.new_ascii_literal(ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "AsyncWith", base = "AstNode")]
@@ -178,8 +179,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("items")),ctx.new_ascii_literal(ascii!("body")),ctx.new_ascii_literal(ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Raise", base = "AstNode")]
@@ -188,8 +189,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("exc")),ctx.new_ascii_literal(ascii!("cause"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Try", base = "AstNode")]
@@ -198,8 +199,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("body")),ctx.new_ascii_literal(ascii!("handlers")),ctx.new_ascii_literal(ascii!("orelse")),ctx.new_ascii_literal(ascii!("finalbody"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Assert", base = "AstNode")]
@@ -208,8 +209,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("test")),ctx.new_ascii_literal(ascii!("msg"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Import", base = "AstNode")]
@@ -218,8 +219,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("names"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "ImportFrom", base = "AstNode")]
@@ -228,8 +229,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("module")),ctx.new_ascii_literal(ascii!("names")),ctx.new_ascii_literal(ascii!("level"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Global", base = "AstNode")]
@@ -238,8 +239,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("names"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Nonlocal", base = "AstNode")]
@@ -248,8 +249,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("names"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Expr", base = "AstNode")]
@@ -258,8 +259,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Pass", base = "AstNode")]
@@ -269,7 +270,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(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"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Break", base = "AstNode")]
@@ -279,7 +280,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(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"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Continue", base = "AstNode")]
@@ -289,7 +290,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(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"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "BoolOp", base = "AstNode")]
@@ -298,8 +299,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("op")),ctx.new_ascii_literal(ascii!("values"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "NamedExpr", base = "AstNode")]
@@ -308,8 +309,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("target")),ctx.new_ascii_literal(ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "BinOp", base = "AstNode")]
@@ -318,8 +319,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("left")),ctx.new_ascii_literal(ascii!("op")),ctx.new_ascii_literal(ascii!("right"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "UnaryOp", base = "AstNode")]
@@ -328,8 +329,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("op")),ctx.new_ascii_literal(ascii!("operand"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Lambda", base = "AstNode")]
@@ -338,8 +339,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("args")),ctx.new_ascii_literal(ascii!("body"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "IfExp", base = "AstNode")]
@@ -348,8 +349,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("test")),ctx.new_ascii_literal(ascii!("body")),ctx.new_ascii_literal(ascii!("orelse"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Dict", base = "AstNode")]
@@ -358,8 +359,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("keys")),ctx.new_ascii_literal(ascii!("values"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Set", base = "AstNode")]
@@ -368,8 +369,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("elts"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "ListComp", base = "AstNode")]
@@ -378,8 +379,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("elt")),ctx.new_ascii_literal(ascii!("generators"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "SetComp", base = "AstNode")]
@@ -388,8 +389,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("elt")),ctx.new_ascii_literal(ascii!("generators"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "DictComp", base = "AstNode")]
@@ -398,8 +399,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("key")),ctx.new_ascii_literal(ascii!("value")),ctx.new_ascii_literal(ascii!("generators"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "GeneratorExp", base = "AstNode")]
@@ -408,8 +409,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("elt")),ctx.new_ascii_literal(ascii!("generators"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Await", base = "AstNode")]
@@ -418,8 +419,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Yield", base = "AstNode")]
@@ -428,8 +429,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "YieldFrom", base = "AstNode")]
@@ -438,8 +439,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Compare", base = "AstNode")]
@@ -448,8 +449,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("left")),ctx.new_ascii_literal(ascii!("ops")),ctx.new_ascii_literal(ascii!("comparators"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Call", base = "AstNode")]
@@ -458,8 +459,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("func")),ctx.new_ascii_literal(ascii!("args")),ctx.new_ascii_literal(ascii!("keywords"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "FormattedValue", base = "AstNode")]
@@ -468,8 +469,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("value")),ctx.new_ascii_literal(ascii!("conversion")),ctx.new_ascii_literal(ascii!("format_spec"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "JoinedStr", base = "AstNode")]
@@ -478,8 +479,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("values"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Constant", base = "AstNode")]
@@ -488,8 +489,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("value")),ctx.new_ascii_literal(ascii!("kind"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Attribute", base = "AstNode")]
@@ -498,8 +499,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("value")),ctx.new_ascii_literal(ascii!("attr")),ctx.new_ascii_literal(ascii!("ctx"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Subscript", base = "AstNode")]
@@ -508,8 +509,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("value")),ctx.new_ascii_literal(ascii!("slice")),ctx.new_ascii_literal(ascii!("ctx"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Starred", base = "AstNode")]
@@ -518,8 +519,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("value")),ctx.new_ascii_literal(ascii!("ctx"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Name", base = "AstNode")]
@@ -528,8 +529,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("id")),ctx.new_ascii_literal(ascii!("ctx"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "List", base = "AstNode")]
@@ -538,8 +539,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("elts")),ctx.new_ascii_literal(ascii!("ctx"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Tuple", base = "AstNode")]
@@ -548,8 +549,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("elts")),ctx.new_ascii_literal(ascii!("ctx"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Slice", base = "AstNode")]
@@ -558,8 +559,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lower")),ctx.new_ascii_literal(ascii!("upper")),ctx.new_ascii_literal(ascii!("step"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "Load", base = "AstNode")]
@@ -888,7 +889,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(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("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("target")),ctx.new_ascii_literal(ascii!("iter")),ctx.new_ascii_literal(ascii!("ifs")),ctx.new_ascii_literal(ascii!("is_async"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -898,8 +899,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("type")),ctx.new_ascii_literal(ascii!("name")),ctx.new_ascii_literal(ascii!("body"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "arguments", base = "AstNode")]
@@ -908,7 +909,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(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("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("posonlyargs")),ctx.new_ascii_literal(ascii!("args")),ctx.new_ascii_literal(ascii!("vararg")),ctx.new_ascii_literal(ascii!("kwonlyargs")),ctx.new_ascii_literal(ascii!("kw_defaults")),ctx.new_ascii_literal(ascii!("kwarg")),ctx.new_ascii_literal(ascii!("defaults"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -918,8 +919,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("arg")),ctx.new_ascii_literal(ascii!("annotation")),ctx.new_ascii_literal(ascii!("type_comment"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "keyword", base = "AstNode")]
@@ -928,8 +929,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(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"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("arg")),ctx.new_ascii_literal(ascii!("value"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("col_offset")),ctx.new_ascii_literal(ascii!("end_lineno")),ctx.new_ascii_literal(ascii!("end_col_offset"))]));
}
}
#[pyclass(module = "_ast", name = "alias", base = "AstNode")]
@@ -938,7 +939,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(crate::utils::ascii!("name")),ctx.new_ascii_literal(crate::utils::ascii!("asname"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("name")),ctx.new_ascii_literal(ascii!("asname"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -948,7 +949,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(crate::utils::ascii!("context_expr")),ctx.new_ascii_literal(crate::utils::ascii!("optional_vars"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("context_expr")),ctx.new_ascii_literal(ascii!("optional_vars"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}
@@ -958,7 +959,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(crate::utils::ascii!("lineno")),ctx.new_ascii_literal(crate::utils::ascii!("tag"))]));
class.set_str_attr("_fields", ctx.new_list(vec![ctx.new_ascii_literal(ascii!("lineno")),ctx.new_ascii_literal(ascii!("tag"))]));
class.set_str_attr("_attributes", ctx.new_list(vec![]));
}
}

View File

@@ -6,7 +6,7 @@ mod _sre {
builtins::{
PyCallableIterator, PyDictRef, PyInt, PyList, PyListRef, PyStr, PyStrRef, PyTupleRef,
},
common::hash::PyHash,
common::{ascii, hash::PyHash},
function::{ArgCallable, OptionalArg, PosArgs},
protocol::PyBuffer,
slots::{Comparable, Hashable},
@@ -268,9 +268,7 @@ mod _sre {
.unwrap_or_else(|| vm.ctx.none())
} else {
m.groups(
OptionalArg::Present(
vm.ctx.new_ascii_literal(crate::utils::ascii!("")),
),
OptionalArg::Present(vm.ctx.new_ascii_literal(ascii!(""))),
vm,
)?
.into_object()
@@ -508,7 +506,7 @@ mod _sre {
let join_type = if zelf.isbytes {
vm.ctx.new_bytes(vec![])
} else {
vm.ctx.new_ascii_literal(crate::utils::ascii!(""))
vm.ctx.new_ascii_literal(ascii!(""))
};
let ret = vm.call_method(&join_type, "join", (list,))?;

View File

@@ -1,5 +1,8 @@
use super::socket::{self, PySocket};
use crate::common::lock::{PyRwLock, PyRwLockWriteGuard};
use crate::common::{
ascii,
lock::{PyRwLock, PyRwLockWriteGuard},
};
use crate::{
builtins::{PyStrRef, PyType, PyTypeRef, PyWeak},
byteslike::{ArgBytesLike, ArgMemoryBuffer, ArgStrOrBytesLike},
@@ -153,12 +156,8 @@ 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(crate::utils::ascii!("x509_asn"))
}
wincrypt::PKCS_7_ASN_ENCODING => {
vm.ctx.new_ascii_literal(crate::utils::ascii!("pkcs_7_asn"))
}
wincrypt::X509_ASN_ENCODING => vm.ctx.new_ascii_literal(ascii!("x509_asn")),
wincrypt::PKCS_7_ASN_ENCODING => vm.ctx.new_ascii_literal(ascii!("pkcs_7_asn")),
other => vm.ctx.new_int(other),
};
let usage = match c.valid_uses()? {
@@ -1051,17 +1050,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(crate::utils::ascii!("email")),
vm.ctx.new_ascii_literal(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(crate::utils::ascii!("DNS")),
vm.ctx.new_ascii_literal(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(crate::utils::ascii!("IP Address")),
vm.ctx.new_ascii_literal(ascii!("IP Address")),
vm.ctx.new_utf8_str(String::from_utf8_lossy(ip).into_owned()),
]))
} else {

View File

@@ -5,6 +5,7 @@ pub(crate) use _string::make_module;
#[pymodule]
mod _string {
use crate::common::ascii;
use crate::{
builtins::{PyList, PyStrRef},
exceptions::IntoPyException,
@@ -74,7 +75,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(crate::utils::ascii!("")),
FieldType::Auto => vm.ctx.new_ascii_literal(ascii!("")),
FieldType::Index(index) => index.into_pyobject(vm),
FieldType::Keyword(attribute) => attribute.into_pyobject(vm),
};

View File

@@ -2,7 +2,10 @@ use num_traits::ToPrimitive;
use std::{env, mem, path};
use crate::builtins::{PyStr, PyStrRef, PyTypeRef};
use crate::common::hash::{PyHash, PyUHash};
use crate::common::{
ascii,
hash::{PyHash, PyUHash},
};
use crate::frame::FrameRef;
use crate::function::{FuncArgs, OptionalArg, PosArgs};
use crate::vm::{PySettings, VirtualMachine};
@@ -44,7 +47,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(crate::utils::ascii!(""));
return ctx.new_ascii_literal(ascii!(""));
}
if path.is_absolute() {
return ctx.new_utf8_str(exec_path);
@@ -237,7 +240,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(crate::utils::ascii!("RustPython")),
vm.ctx.new_ascii_literal(ascii!("RustPython")),
vm.ctx.new_utf8_str(version::get_git_identifier()),
vm.ctx.new_utf8_str(version::get_git_revision()),
])
@@ -515,8 +518,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(crate::utils::ascii!("rustpython")),
"cache_tag" => ctx.new_ascii_literal(crate::utils::ascii!("rustpython-01")),
"name" => ctx.new_ascii_literal(ascii!("rustpython")),
"cache_tag" => ctx.new_ascii_literal(ascii!("rustpython-01")),
"_multiarch" => ctx.new_utf8_str(MULTIARCH.to_owned()),
"version" => version_info.clone(),
"hexversion" => ctx.new_int(version::VERSION_HEX),
@@ -652,7 +655,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(crate::utils::ascii!("sys")),
"__name__" => ctx.new_ascii_literal(ascii!("sys")),
"argv" => argv(vm),
"builtin_module_names" => builtin_module_names,
"byteorder" => ctx.new_utf8_str(bytorder),
@@ -674,8 +677,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(crate::utils::ascii!(">>>>> ")),
"ps2" => ctx.new_ascii_literal(crate::utils::ascii!("..... ")),
"ps1" => ctx.new_ascii_literal(ascii!(">>>>> ")),
"ps2" => ctx.new_ascii_literal(ascii!("..... ")),
"__doc__" => ctx.new_utf8_str(sys_doc),
"_getframe" => named_function!(ctx, sys, _getframe),
"modules" => modules.clone(),
@@ -708,7 +711,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(crate::utils::ascii!("short")),
"float_repr_style" => ctx.new_ascii_literal(ascii!("short")),
"_xoptions" => xopts,
"warnoptions" => warnopts,
"_rustpython_debugbuild" => ctx.new_bool(cfg!(debug_assertions)),

View File

@@ -6,8 +6,6 @@ use crate::{
};
use num_traits::ToPrimitive;
pub use crate::macros::ascii;
pub enum Either<A, B> {
A(A),
B(B),
@@ -128,15 +126,3 @@ impl ToCString for PyStr {
std::ffi::CString::new(self.as_ref()).map_err(|err| err.into_pyexception(vm))
}
}
pub 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
}

View File

@@ -16,7 +16,7 @@ use crate::{
},
bytecode,
codecs::CodecsRegistry,
common::{hash::HashSecret, lock::PyMutex, rc::PyRc},
common::{ascii, hash::HashSecret, lock::PyMutex, rc::PyRc},
exceptions::{self, PyBaseException, PyBaseExceptionRef},
frame::{ExecutionResult, Frame, FrameRef},
frozen,
@@ -305,13 +305,13 @@ impl VirtualMachine {
module::init_module_dict(
&vm,
&builtins_dict,
vm.ctx.new_ascii_literal(crate::utils::ascii!("builtins")),
vm.ctx.new_ascii_literal(ascii!("builtins")),
vm.ctx.none(),
);
module::init_module_dict(
&vm,
&sysmod_dict,
vm.ctx.new_ascii_literal(crate::utils::ascii!("sys")),
vm.ctx.new_ascii_literal(ascii!("sys")),
vm.ctx.none(),
);
vm
@@ -2227,7 +2227,7 @@ mod tests {
#[test]
fn test_multiply_str() {
Interpreter::default().enter(|vm| {
let a = vm.ctx.new_ascii_literal(crate::utils::ascii!("Hello "));
let a = vm.ctx.new_ascii_literal(crate::common::ascii!("Hello "));
let b = vm.ctx.new_int(4_i32);
let res = vm._mul(&a, &b).unwrap();
let value = res.payload::<PyStr>().unwrap();