Skip to content

Commit ed50b75

Browse files
committed
Run black
1 parent ff38478 commit ed50b75

File tree

9 files changed

+254
-132
lines changed

9 files changed

+254
-132
lines changed

__init__.py

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,31 @@
11
try:
22
from parser.parse import parse
33
from parser.file import file, open
4-
from parser.errors import _ValidationError, CollectedValidationErrors, DuplicateNameError, HeaderFieldError
4+
from parser.errors import (
5+
_ValidationError,
6+
CollectedValidationErrors,
7+
DuplicateNameError,
8+
HeaderFieldError,
9+
InvalidNameError,
10+
)
511
except:
6-
from .parser.parse import parse
7-
from .parser.file import file, open
8-
from .parser.errors import _ValidationError, CollectedValidationErrors, DuplicateNameError, HeaderFieldError
12+
from .parser.parse import parse
13+
from .parser.file import file, open
14+
from .parser.errors import (
15+
_ValidationError,
16+
CollectedValidationErrors,
17+
DuplicateNameError,
18+
HeaderFieldError,
19+
InvalidNameError,
20+
)
921

10-
__all__ = ["parse", "open", "file", "_ValidationError",
11-
"CollectedValidationErrors", "DuplicateNameError", "HeaderFieldError"] # for testing
22+
__all__ = [
23+
"parse",
24+
"open",
25+
"file",
26+
"_ValidationError",
27+
"CollectedValidationErrors",
28+
"DuplicateNameError",
29+
"HeaderFieldError",
30+
"InvalidNameError",
31+
] # for testing

__main__.py

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,27 @@
33
import argparse
44
from . import parse, CollectedValidationErrors
55

6+
67
def main():
78
parser = argparse.ArgumentParser(description="Parse and validate STEP file.")
89
parser.add_argument("filename", help="The STEP file to validate.")
9-
parser.add_argument("--progress", action="store_true", help="Show progress during validation.")
10-
parser.add_argument("--json", action="store_true", help="Output errors in JSON format.")
11-
parser.add_argument("--only-header", action="store_true", help="Validate only the header section.")
12-
10+
parser.add_argument(
11+
"--progress", action="store_true", help="Show progress during validation."
12+
)
13+
parser.add_argument(
14+
"--json", action="store_true", help="Output errors in JSON format."
15+
)
16+
parser.add_argument(
17+
"--only-header", action="store_true", help="Validate only the header section."
18+
)
19+
1320
args = parser.parse_args()
14-
21+
1522
try:
1623
parse(
1724
filename=args.filename,
18-
with_progress = args.progress,
19-
with_tree = False,
25+
with_progress=args.progress,
26+
with_tree=False,
2027
only_header=args.only_header,
2128
)
2229
if not args.json:
@@ -29,5 +36,6 @@ def main():
2936
json.dump([e.asdict() for e in exc.errors], sys.stdout, indent=2)
3037
exit(1)
3138

32-
if __name__ == '__main__':
33-
main()
39+
40+
if __name__ == "__main__":
41+
main()

parser/errors.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
from lark.exceptions import UnexpectedToken
22

3+
34
class _ValidationError(Exception):
45
def __init__(self, *args, **kwargs):
56
if self.__class__ is _ValidationError:
67
raise TypeError("Do not raise _ValidationError directly.")
78
super().__init__(*args, **kwargs)
89

10+
911
class ErrorCollector:
1012
def __init__(self):
1113
self.errors = []
@@ -17,15 +19,19 @@ def raise_if_any(self):
1719
if self.errors:
1820
raise CollectedValidationErrors(self.errors)
1921

22+
2023
class CollectedValidationErrors(_ValidationError):
2124
def __init__(self, errors):
2225
self.errors = errors
23-
26+
2427
def asdict(self, with_message=True):
2528
return [e.asdict(with_message=with_message) for e in self.errors]
2629

2730
def __str__(self):
28-
return f"{len(self.errors)} validation error(s) collected:\n" + "\n\n".join(str(e) for e in self.errors)
31+
return f"{len(self.errors)} validation error(s) collected:\n" + "\n\n".join(
32+
str(e) for e in self.errors
33+
)
34+
2935

3036
class SyntaxError(_ValidationError):
3137
def __init__(self, filecontent, exception):
@@ -84,8 +90,8 @@ def build():
8490
yield " " * 8 + "^" * len(d["line"].rstrip())
8591

8692
return "\n".join(build())
87-
88-
93+
94+
8995
class HeaderFieldError(_ValidationError):
9096
def __init__(self, field, found_len, expected_len):
9197
self.field = field

parser/file.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import types
2-
import re
2+
import re
33
import numbers
44
import itertools
55

@@ -9,15 +9,16 @@
99

1010
try:
1111
from .mvd_info import MvdInfo, LARK_AVAILABLE
12-
except ImportError: # in case of running module locally (e.g. test_parser.py)
12+
except ImportError: # in case of running module locally (e.g. test_parser.py)
1313
from mvd_info import MvdInfo, LARK_AVAILABLE
1414

15+
1516
class file:
1617
"""
1718
A somewhat compatible interface (but very limited) to ifcopenshell.file
1819
"""
1920

20-
def __init__(self, result:ParseResult):
21+
def __init__(self, result: ParseResult):
2122
self.header_ = result.header
2223
self.data_ = result.entities
2324

@@ -48,14 +49,13 @@ def schema_version(self) -> tuple[int, int, int, int]:
4849
4950
E.g. IFC4X3_ADD2 is represented as (4, 3, 2, 0).
5051
"""
51-
schema = self.wrapped_data.schema
52+
schema = self.schema
5253
version = []
5354
for prefix in ("IFC", "X", "_ADD", "_TC"):
5455
number = re.search(prefix + r"(\d)", schema)
5556
version.append(int(number.group(1)) if number else 0)
5657
return tuple(version)
5758

58-
5959
@property
6060
def header(self):
6161
header = {}
@@ -64,8 +64,7 @@ def header(self):
6464
header[field_name.lower()] = namedtuple_class(*field_data)
6565

6666
return types.SimpleNamespace(**header)
67-
68-
67+
6968
@property
7069
def mvd(self):
7170
if not LARK_AVAILABLE or MvdInfo is None:
@@ -104,5 +103,6 @@ def by_type(self, type: str) -> list[entity_instance]:
104103
)
105104
)
106105

107-
def open(fn, only_header= False) -> file:
108-
return file(parse(filename=fn, only_header=only_header))
106+
107+
def open(fn, only_header=False) -> file:
108+
return file(parse(filename=fn, only_header=only_header))

parser/grammar.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,20 @@
106106
"""
107107

108108
HEADER_FIELDS = {
109-
"file_description": namedtuple('file_description', ['description', 'implementation_level']),
110-
"file_name": namedtuple('file_name', ['name', 'time_stamp', 'author', 'organization', 'preprocessor_version', 'originating_system', 'authorization']),
111-
"file_schema": namedtuple('file_schema', ['schema_identifiers']),
112-
}
109+
"file_description": namedtuple(
110+
"file_description", ["description", "implementation_level"]
111+
),
112+
"file_name": namedtuple(
113+
"file_name",
114+
[
115+
"name",
116+
"time_stamp",
117+
"author",
118+
"organization",
119+
"preprocessor_version",
120+
"originating_system",
121+
"authorization",
122+
],
123+
),
124+
"file_schema": namedtuple("file_schema", ["schema_identifiers"]),
125+
}

0 commit comments

Comments
 (0)