Skip to content
This repository was archived by the owner on Jul 27, 2023. It is now read-only.

Commit fc301ab

Browse files
authored
Fix build (RustPython#45)
* remove dedent * Revert parser-pyo3 crate
1 parent e820928 commit fc301ab

File tree

2 files changed

+106
-131
lines changed

2 files changed

+106
-131
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ include = ["LICENSE", "Cargo.toml", "src/**/*.rs"]
1111
[workspace]
1212
resolver = "2"
1313
members = [
14-
"ast", "core", "format", "literal", "parser", "parser-pyo3",
14+
"ast", "core", "format", "literal", "parser",
1515
"ruff_text_size", "ruff_source_location",
1616
]
1717

ast/asdl_rs.py

Lines changed: 105 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -338,17 +338,15 @@ def simple_sum(self, sum, type, depth):
338338
prefix = ""
339339
for cons in sum.types:
340340
self.emit(
341-
textwrap.dedent(
342-
f"""
343-
#[inline]
344-
pub const fn {prefix}{rust_field_name(cons.name)}(&self) -> Option<{rust_name}{cons.name}> {{
345-
match self {{
346-
{rust_name}::{cons.name} => Some({rust_name}{cons.name}),
347-
_ => None,
348-
}}
341+
f"""
342+
#[inline]
343+
pub const fn {prefix}{rust_field_name(cons.name)}(&self) -> Option<{rust_name}{cons.name}> {{
344+
match self {{
345+
{rust_name}::{cons.name} => Some({rust_name}{cons.name}),
346+
_ => None,
349347
}}
350-
"""
351-
),
348+
}}
349+
""",
352350
depth,
353351
)
354352
self.emit("}", depth)
@@ -415,19 +413,17 @@ def sum_subtype_struct(self, sum_type_info, t, rust_name, depth):
415413
self.emit("}", depth)
416414
field_names = [f'"{f.name}"' for f in t.fields]
417415
self.emit(
418-
textwrap.dedent(
419-
f"""
420-
impl<R> Node for {payload_name}<R> {{
421-
const NAME: &'static str = "{t.name}";
422-
const FIELD_NAMES: &'static [&'static str] = &[{', '.join(field_names)}];
423-
}}
424-
impl<R> From<{payload_name}<R>> for {rust_name}<R> {{
425-
fn from(payload: {payload_name}<R>) -> Self {{
426-
{rust_name}::{t.name}(payload)
427-
}}
416+
f"""
417+
impl<R> Node for {payload_name}<R> {{
418+
const NAME: &'static str = "{t.name}";
419+
const FIELD_NAMES: &'static [&'static str] = &[{', '.join(field_names)}];
420+
}}
421+
impl<R> From<{payload_name}<R>> for {rust_name}<R> {{
422+
fn from(payload: {payload_name}<R>) -> Self {{
423+
{rust_name}::{t.name}(payload)
428424
}}
429-
"""
430-
),
425+
}}
426+
""",
431427
depth,
432428
)
433429

@@ -982,12 +978,12 @@ def visitSum(self, sum, type):
982978
#[inline]
983979
fn to_pyo3_ast(&self, {"_" if simple else ""}py: Python) -> PyResult<Py<PyAny>> {{
984980
let instance = match &self {{
985-
""",
981+
""",
986982
0,
987983
)
988984
for cons in sum.types:
989985
self.emit(
990-
f"""crate::{rust_name}::{cons.name}(cons) => cons.to_pyo3_ast(py)?,""",
986+
f"crate::{rust_name}::{cons.name}(cons) => cons.to_pyo3_ast(py)?,",
991987
1,
992988
)
993989
self.emit(
@@ -1036,9 +1032,7 @@ def emit_to_pyo3_with_fields(self, cons, type, name):
10361032
3,
10371033
)
10381034
self.emit(
1039-
"""
1040-
))?;
1041-
""",
1035+
"))?;",
10421036
0,
10431037
)
10441038
else:
@@ -1119,42 +1113,38 @@ def emit_class(self, name, rust_name, simple, base="super::AST"):
11191113
into = f"{rust_name}(node)"
11201114

11211115
self.emit(
1122-
textwrap.dedent(
1123-
f"""
1124-
#[pyclass(module="{self.module_name}", name="_{name}", extends={base}, frozen{subclass})]
1125-
#[derive(Clone, Debug)]
1126-
pub struct {rust_name} {body};
1116+
f"""
1117+
#[pyclass(module="{self.module_name}", name="_{name}", extends={base}, frozen{subclass})]
1118+
#[derive(Clone, Debug)]
1119+
pub struct {rust_name} {body};
11271120
1128-
impl From<{self.ref_def} crate::{rust_name}{generics}> for {rust_name} {{
1129-
fn from({"" if body else "_"}node: {self.ref_def} crate::{rust_name}{generics}) -> Self {{
1130-
{into}
1131-
}}
1121+
impl From<{self.ref_def} crate::{rust_name}{generics}> for {rust_name} {{
1122+
fn from({"" if body else "_"}node: {self.ref_def} crate::{rust_name}{generics}) -> Self {{
1123+
{into}
11321124
}}
1133-
"""
1134-
),
1125+
}}
1126+
""",
11351127
0,
11361128
)
11371129
if subclass:
11381130
self.emit(
1139-
textwrap.dedent(
1140-
f"""
1141-
#[pymethods]
1142-
impl {rust_name} {{
1143-
#[new]
1144-
fn new() -> PyClassInitializer<Self> {{
1145-
PyClassInitializer::from(AST)
1146-
.add_subclass(Self)
1147-
}}
1148-
1131+
f"""
1132+
#[pymethods]
1133+
impl {rust_name} {{
1134+
#[new]
1135+
fn new() -> PyClassInitializer<Self> {{
1136+
PyClassInitializer::from(AST)
1137+
.add_subclass(Self)
11491138
}}
1150-
impl ToPyObject for {rust_name} {{
1151-
fn to_object(&self, py: Python) -> PyObject {{
1152-
let initializer = Self::new();
1153-
Py::new(py, initializer).unwrap().into_py(py)
1154-
}}
1139+
1140+
}}
1141+
impl ToPyObject for {rust_name} {{
1142+
fn to_object(&self, py: Python) -> PyObject {{
1143+
let initializer = Self::new();
1144+
Py::new(py, initializer).unwrap().into_py(py)
11551145
}}
1156-
"""
1157-
),
1146+
}}
1147+
""",
11581148
0,
11591149
)
11601150
else:
@@ -1163,18 +1153,16 @@ def emit_class(self, name, rust_name, simple, base="super::AST"):
11631153
else:
11641154
add_subclass = ""
11651155
self.emit(
1166-
textwrap.dedent(
1167-
f"""
1168-
impl ToPyObject for {rust_name} {{
1169-
fn to_object(&self, py: Python) -> PyObject {{
1170-
let initializer = PyClassInitializer::from(AST)
1171-
{add_subclass}
1172-
.add_subclass(self.clone());
1173-
Py::new(py, initializer).unwrap().into_py(py)
1174-
}}
1156+
f"""
1157+
impl ToPyObject for {rust_name} {{
1158+
fn to_object(&self, py: Python) -> PyObject {{
1159+
let initializer = PyClassInitializer::from(AST)
1160+
{add_subclass}
1161+
.add_subclass(self.clone());
1162+
Py::new(py, initializer).unwrap().into_py(py)
11751163
}}
1176-
"""
1177-
),
1164+
}}
1165+
""",
11781166
0,
11791167
)
11801168

@@ -1183,48 +1171,40 @@ def emit_class(self, name, rust_name, simple, base="super::AST"):
11831171

11841172
def emit_getter(self, owner, type_name):
11851173
self.emit(
1186-
textwrap.dedent(
1187-
f"""
1188-
#[pymethods]
1189-
impl {type_name} {{
1190-
"""
1191-
),
1174+
f"""
1175+
#[pymethods]
1176+
impl {type_name} {{
1177+
""",
11921178
0,
11931179
)
11941180

11951181
for field in owner.fields:
11961182
self.emit(
1197-
textwrap.dedent(
1198-
f"""
1199-
#[getter]
1200-
#[inline]
1201-
fn get_{field.name}(&self, py: Python) -> PyResult<PyObject> {{
1202-
self.0.{rust_field(field.name)}.to_pyo3_wrapper(py)
1203-
}}
1204-
"""
1205-
),
1183+
f"""
1184+
#[getter]
1185+
#[inline]
1186+
fn get_{field.name}(&self, py: Python) -> PyResult<PyObject> {{
1187+
self.0.{rust_field(field.name)}.to_pyo3_wrapper(py)
1188+
}}
1189+
""",
12061190
3,
12071191
)
12081192

12091193
self.emit(
1210-
textwrap.dedent(
1211-
"""
1194+
"""
12121195
}
1213-
"""
1214-
),
1196+
""",
12151197
0,
12161198
)
12171199

12181200
def emit_getattr(self, owner, type_name):
12191201
self.emit(
1220-
textwrap.dedent(
1221-
f"""
1222-
#[pymethods]
1223-
impl {type_name} {{
1224-
fn __getattr__(&self, py: Python, key: &str) -> PyResult<PyObject> {{
1225-
let object: Py<PyAny> = match key {{
1226-
"""
1227-
),
1202+
f"""
1203+
#[pymethods]
1204+
impl {type_name} {{
1205+
fn __getattr__(&self, py: Python, key: &str) -> PyResult<PyObject> {{
1206+
let object: Py<PyAny> = match key {{
1207+
""",
12281208
0,
12291209
)
12301210

@@ -1235,15 +1215,13 @@ def emit_getattr(self, owner, type_name):
12351215
)
12361216

12371217
self.emit(
1238-
textwrap.dedent(
1239-
"""
1240-
_ => todo!(),
1241-
};
1242-
Ok(object)
1243-
}
1218+
"""
1219+
_ => todo!(),
1220+
};
1221+
Ok(object)
12441222
}
1245-
"""
1246-
),
1223+
}
1224+
""",
12471225
0,
12481226
)
12491227

@@ -1309,17 +1287,17 @@ def visitConstructor(self, cons, parent, simple, depth):
13091287
if simple:
13101288
self.emit(
13111289
f"""
1312-
#[pyclass(module="{self.module_name}", name="_{cons.name}", extends={parent})]
1313-
pub struct {parent}{cons.name};
1314-
1315-
impl ToPyObject for {parent}{cons.name} {{
1316-
fn to_object(&self, py: Python) -> PyObject {{
1317-
let initializer = PyClassInitializer::from(AST)
1318-
.add_subclass({parent})
1319-
.add_subclass(Self);
1320-
Py::new(py, initializer).unwrap().into_py(py)
1321-
}}
1322-
}}
1290+
#[pyclass(module="{self.module_name}", name="_{cons.name}", extends={parent})]
1291+
pub struct {parent}{cons.name};
1292+
1293+
impl ToPyObject for {parent}{cons.name} {{
1294+
fn to_object(&self, py: Python) -> PyObject {{
1295+
let initializer = PyClassInitializer::from(AST)
1296+
.add_subclass({parent})
1297+
.add_subclass(Self);
1298+
Py::new(py, initializer).unwrap().into_py(py)
1299+
}}
1300+
}}
13231301
""",
13241302
depth,
13251303
)
@@ -1659,7 +1637,8 @@ def extract_location(self, typename, depth):
16591637
let row = {row};
16601638
let column = {column};
16611639
try_location(row, column)
1662-
}};""",
1640+
}};
1641+
""",
16631642
depth,
16641643
)
16651644

@@ -1711,17 +1690,15 @@ def write(info: TypeInfo):
17111690
generics = "<R>"
17121691

17131692
f.write(
1714-
textwrap.dedent(
1715-
f"""
1716-
impl{generics} Pyo3Node for crate::generic::{rust_name}{generics} {{
1717-
#[inline]
1718-
fn py_type_cache() -> &'static OnceCell<(Py<PyAny>, Py<PyAny>)> {{
1719-
static PY_TYPE: OnceCell<(Py<PyAny>, Py<PyAny>)> = OnceCell::new();
1720-
&PY_TYPE
1721-
}}
1693+
f"""
1694+
impl{generics} Pyo3Node for crate::generic::{rust_name}{generics} {{
1695+
#[inline]
1696+
fn py_type_cache() -> &'static OnceCell<(Py<PyAny>, Py<PyAny>)> {{
1697+
static PY_TYPE: OnceCell<(Py<PyAny>, Py<PyAny>)> = OnceCell::new();
1698+
&PY_TYPE
17221699
}}
1723-
"""
1724-
),
1700+
}}
1701+
""",
17251702
)
17261703

17271704
for info in type_info.values():
@@ -1832,14 +1809,12 @@ def write_pyo3_wrapper(mod, type_info, namespace, f):
18321809

18331810
def write_ast_mod(mod, type_info, f):
18341811
f.write(
1835-
textwrap.dedent(
1836-
"""
1837-
#![allow(clippy::all)]
1812+
"""
1813+
#![allow(clippy::all)]
18381814
1839-
use super::*;
1840-
use crate::common::ascii;
1841-
"""
1842-
)
1815+
use super::*;
1816+
use crate::common::ascii;
1817+
"""
18431818
)
18441819

18451820
c = ChainOfVisitors(

0 commit comments

Comments
 (0)