Skip to content

Commit 1a39cd3

Browse files
Remove empty data from enum docstrings file
1 parent 00a412e commit 1a39cd3

File tree

7 files changed

+229
-671
lines changed

7 files changed

+229
-671
lines changed

src/interface/extras.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,15 @@ def _deprecated_enum(moved_to, new_enum):
6363

6464

6565
def _create_enum(module, name, alias_strip, members):
66-
data = enum_data[name]
6766
if alias_strip:
6867
alias_strip = int(alias_strip)
6968
members += [(k[alias_strip:], v) for (k, v) in members]
7069
result = enum.IntEnum(name.split('::')[-1], members)
7170
result.__module__ = 'exiv2.' + module[1:]
71+
data = enum_data[name]
7272
if data['doc']:
7373
result.__doc__ = data['doc']
7474
for key, value in data['values'].items():
75-
if value['doc']:
76-
result[key].__doc__ = value['doc']
75+
result[key].__doc__ = value
7776
return result
7877

src/interface/shared/static_list.i

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// python-exiv2 - Python interface to libexiv2
22
// http://github.com/jim-easterbrook/python-exiv2
3-
// Copyright (C) 2023-24 Jim Easterbrook [email protected]
3+
// Copyright (C) 2023-25 Jim Easterbrook [email protected]
44
//
55
// This program is free software: you can redistribute it and/or modify
66
// it under the terms of the GNU General Public License as published by

src/swig-0_27_7/_enum_data.py

Lines changed: 130 additions & 258 deletions
Large diffs are not rendered by default.

src/swig-0_27_7/extras.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,15 @@ def _deprecated_enum(moved_to, new_enum):
6363

6464

6565
def _create_enum(module, name, alias_strip, members):
66-
data = enum_data[name]
6766
if alias_strip:
6867
alias_strip = int(alias_strip)
6968
members += [(k[alias_strip:], v) for (k, v) in members]
7069
result = enum.IntEnum(name.split('::')[-1], members)
7170
result.__module__ = 'exiv2.' + module[1:]
71+
data = enum_data[name]
7272
if data['doc']:
7373
result.__doc__ = data['doc']
7474
for key, value in data['values'].items():
75-
if value['doc']:
76-
result[key].__doc__ = value['doc']
75+
result[key].__doc__ = value
7776
return result
7877

src/swig-0_28_7/_enum_data.py

Lines changed: 77 additions & 393 deletions
Large diffs are not rendered by default.

src/swig-0_28_7/extras.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,15 @@ def _deprecated_enum(moved_to, new_enum):
6363

6464

6565
def _create_enum(module, name, alias_strip, members):
66-
data = enum_data[name]
6766
if alias_strip:
6867
alias_strip = int(alias_strip)
6968
members += [(k[alias_strip:], v) for (k, v) in members]
7069
result = enum.IntEnum(name.split('::')[-1], members)
7170
result.__module__ = 'exiv2.' + module[1:]
71+
data = enum_data[name]
7272
if data['doc']:
7373
result.__doc__ = data['doc']
7474
for key, value in data['values'].items():
75-
if value['doc']:
76-
result[key].__doc__ = value['doc']
75+
result[key].__doc__ = value
7776
return result
7877

utils/extract_enums.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -122,16 +122,6 @@ def main():
122122
enum_data[name]['values'][value.findtext('name')] = {
123123
'doc': get_description(value)}
124124
# create output dir
125-
output_dir = os.path.join('src', 'swig-{}_{}_{}'.format(*exiv2_version))
126-
os.makedirs(output_dir, exist_ok=True)
127-
# save result
128-
with open(os.path.join(output_dir, '_enum_data.py'), 'w') as df:
129-
df.write('''# This file was generated by utils/extract_enums.py
130-
# Do not make changes to this file.
131-
132-
enum_data = ''')
133-
df.write(pprint.pformat(enum_data, width=75))
134-
# create output dir
135125
output_dir = os.path.join(
136126
'src', 'interface', '{}_{}_{}'.format(*exiv2_version))
137127
os.makedirs(output_dir, exist_ok=True)
@@ -156,6 +146,21 @@ def main():
156146
};
157147
}
158148
''')
149+
# purge data of nearly everything but non-empty doc strings
150+
for data in enum_data.values():
151+
del data['strong']
152+
data['values'] = dict(
153+
(k, v['doc']) for (k, v) in data['values'].items() if v['doc'])
154+
# create output dir
155+
output_dir = os.path.join('src', 'swig-{}_{}_{}'.format(*exiv2_version))
156+
os.makedirs(output_dir, exist_ok=True)
157+
# save result
158+
with open(os.path.join(output_dir, '_enum_data.py'), 'w') as df:
159+
df.write('''# This file was generated by utils/extract_enums.py
160+
# Do not make changes to this file.
161+
162+
enum_data = ''')
163+
df.write(pprint.pformat(enum_data, width=75))
159164
return 0
160165

161166

0 commit comments

Comments
 (0)