1# DO NOT (entirely) modify this file manually, please read.
2#
3# IMPORTANT NOTE:
4# Please keep in mind that the create_manifest task relies on the fact the the
5# target and native Python packages are the same, and it also needs to be executed
6# with a fully working native package (with all the PACKAGECONFIGs enabled and all
7# and all the modules should be working, check log.do_compile), otherwise the script
8# will fail to find dependencies correctly, this note is valid either if you are
9# upgrading to a new Python version or adding a new package.
10#
11#
12# If you are adding a new package please follow the next steps:
13#     How to add a new package:
14#     - If a user wants to add a new package all that has to be done is:
15#     Modify the python3-manifest.json file, and add the required file(s) to the FILES list,
16#     fill up the SUMMARY section as well, the script should handle all the rest.
17#
18#     Real example:
19#     We want to add a web browser package, including the file webbrowser.py
20#     which at the moment is on python3-misc.
21#     "webbrowser": {
22#         "files": ["${libdir}/python${PYTHON_MAJMIN}/lib-dynload/webbrowser.py"],
23#         "rdepends": [],
24#         "summary": "Python Web Browser support"}
25#
26#     * Note that the rdepends field was left empty
27#
28#     We run $ bitbake python3 -c create_manifest and the resulting manifest
29#     should be completed after a few seconds, showing something like:
30#     "webbrowser": {
31#         "files": ["${libdir}/python${PYTHON_MAJMIN}/webbrowser.py"],
32#         "rdepends": ["core","fcntl","io","pickle","shell","subprocess"],
33#         "summary": "Python Web Browser support"}
34#
35#
36# If you are upgrading Python to a new version please follow the next steps:
37#     After each Python upgrade, the create_manifest task should be executed, because we
38#     don't control what changes on upstream Python, so, some module dependency
39#     might have changed without us realizing it, a certain module can either have
40#     more or less dependencies, or could be depending on a new file that was just
41#     created on the new release and for obvious reasons we wouldn't have it on our
42#     old manifest, all of these issues would cause runtime errors on our system.
43#
44#     - Upgrade both the native and target Python packages to a new version
45#     - Run the create_manifest task for the target Python package as its shown below:
46#
47#     $ bitbake python3 -c create_manifest
48#
49#     This will automatically replace your manifest file located under the Python directory
50#     with an new one, which contains the new dependencies (if any).
51#
52#     Several things could have gone wrong here, I will try to explain a few:
53#
54#     a) A new file was introduced on this release, e.g. sha3*.so:
55#        The task will check what its needed to import every module, more than one module would
56#        would probably depend on sha3*.so, although only one module should contain it.
57#
58#        After running the task, the new manifest will have the sha3*.so file on more than one
59#        module, you need to manually decide which one of them should get it and delete it from
60#        the others, for example sha3*.so should likely be on ${PN}-crypt.
61#        Once you have deleted from the others you need to run the create_manifest task again,
62#        this will populate the other module's rdepends fields, with ${PN}-crypt and you should be
63#        good to go.
64#
65#     b) The native package wasn't built correctly and its missing a certain module:
66#        As mentioned before, you need to make sure the native package was built with all the modules
67#        because it is used as base to build the manifest file, you need to manually check log.do_compile
68#        since it won't error out the compile function if its only missing a couple of modules.
69#
70#        e.g. missing the _uuid module, log.do_compile would show the following:
71#        Python build finished successfully!
72#        The necessary bits to build these optional modules were not found:
73#        _uuid
74#
75#        What will happen here is that the new manifest would not be aware that the _uuid module exists, so
76#        not only we won't know of any dependencies to it, but also, the _uuid* files will be packaged on
77#        the misc package (which is where any file that doesn't belong anywhere else ends up).
78#
79#        This will eventually cause runtime errors on our system if we don't include the misc package on
80#        on our image, because the _uuid files will be missing.
81#        If we build the _uuid module correctly and run the create_manifest task the _uuid files will be
82#        detected correctly along with its dependencies, and we will get a working manifest.
83#
84#        This is the reason why it is important to make sure we have a fully working native build,
85#        so we can avoid these errors.
86#
87#
88#
89# DO NOT MODIFY THE NEXT LINE!, IT IS USED AS A MARKER FOR THE ACTUAL JSON MANIFEST
90# EOC
91{
92    "tests": {
93        "summary": "Python test suite",
94        "rdepends": [
95            "core",
96            "modules"
97        ],
98        "files": [
99            "${libdir}/python${PYTHON_MAJMIN}/*/test",
100            "${libdir}/python${PYTHON_MAJMIN}/*/tests",
101            "${libdir}/python${PYTHON_MAJMIN}/idlelib/idle_test/",
102            "${libdir}/python${PYTHON_MAJMIN}/test"
103        ],
104        "cached": []
105    },
106    "2to3": {
107        "summary": "Python automated Python 2 to 3 code translator",
108        "rdepends": [
109            "core"
110        ],
111        "files": [
112            "${bindir}/2to3*",
113            "${libdir}/python${PYTHON_MAJMIN}/lib2to3"
114        ],
115        "cached": []
116    },
117    "asyncio": {
118        "summary": "Python Asynchronous I/O",
119        "rdepends": [
120            "core",
121            "io",
122            "logging",
123            "netclient",
124            "numbers",
125            "stringold"
126        ],
127        "files": [
128            "${libdir}/python${PYTHON_MAJMIN}/asyncio",
129            "${libdir}/python${PYTHON_MAJMIN}/concurrent",
130            "${libdir}/python${PYTHON_MAJMIN}/concurrent/futures",
131            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_asyncio.*.so"
132        ],
133        "cached": []
134    },
135    "audio": {
136        "summary": "Python Audio Handling",
137        "rdepends": [
138            "core"
139        ],
140        "files": [
141            "${libdir}/python${PYTHON_MAJMIN}/chunk.py",
142            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/audioop.*.so",
143            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/ossaudiodev.*.so",
144            "${libdir}/python${PYTHON_MAJMIN}/sndhdr.py",
145            "${libdir}/python${PYTHON_MAJMIN}/sunau.py",
146            "${libdir}/python${PYTHON_MAJMIN}/wave.py"
147        ],
148        "cached": [
149            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/chunk.*.pyc",
150            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/sndhdr.*.pyc",
151            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/sunau.*.pyc",
152            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/wave.*.pyc"
153        ]
154    },
155    "cgitb": {
156        "summary": "Special exception handler for Python scripts",
157        "rdepends": [
158            "core",
159            "crypt",
160            "html",
161            "io",
162            "math",
163            "pydoc"
164        ],
165        "files": [
166            "${libdir}/python${PYTHON_MAJMIN}/cgitb.py"
167        ],
168        "cached": [
169            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/cgitb.*.pyc"
170        ]
171    },
172    "codecs": {
173        "summary": "Python codec",
174        "rdepends": [
175            "core"
176        ],
177        "files": [
178            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_multibytecodec.*.so",
179            "${libdir}/python${PYTHON_MAJMIN}/xdrlib.py"
180        ],
181        "cached": [
182            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/xdrlib.*.pyc"
183        ]
184    },
185    "compile": {
186        "summary": "Python bytecode compilation support",
187        "rdepends": [
188            "core"
189        ],
190        "files": [
191            "${libdir}/python${PYTHON_MAJMIN}/compileall.py",
192            "${libdir}/python${PYTHON_MAJMIN}/filecmp.py",
193            "${libdir}/python${PYTHON_MAJMIN}/py_compile.py"
194        ],
195        "cached": [
196            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/compileall.*.pyc",
197            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/filecmp.*.pyc",
198            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/py_compile.*.pyc"
199        ]
200    },
201    "compression": {
202        "summary": "Python high-level compression support",
203        "rdepends": [
204            "core"
205        ],
206        "files": [
207            "${libdir}/python${PYTHON_MAJMIN}/gzip.py",
208            "${libdir}/python${PYTHON_MAJMIN}/tarfile.py",
209            "${libdir}/python${PYTHON_MAJMIN}/zipfile",
210            "${libdir}/python${PYTHON_MAJMIN}/zipfile/_path"
211        ],
212        "cached": [
213            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/gzip.*.pyc",
214            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/tarfile.*.pyc"
215        ]
216    },
217    "core": {
218        "summary": "Python interpreter and core modules",
219        "rdepends": [],
220        "files": [
221            "${bindir}/python${PYTHON_MAJMIN}",
222            "${bindir}/python${PYTHON_MAJMIN}.real",
223            "${bindir}/python3",
224            "${includedir}/python${PYTHON_MAJMIN}/pyconfig*.h",
225            "${libdir}/python${PYTHON_MAJMIN}/UserDict.py",
226            "${libdir}/python${PYTHON_MAJMIN}/UserList.py",
227            "${libdir}/python${PYTHON_MAJMIN}/UserString.py",
228            "${libdir}/python${PYTHON_MAJMIN}/__future__.py",
229            "${libdir}/python${PYTHON_MAJMIN}/_abcoll.py",
230            "${libdir}/python${PYTHON_MAJMIN}/_bootlocale.py",
231            "${libdir}/python${PYTHON_MAJMIN}/_collections_abc.py",
232            "${libdir}/python${PYTHON_MAJMIN}/_compression.py",
233            "${libdir}/python${PYTHON_MAJMIN}/_markupbase.py",
234            "${libdir}/python${PYTHON_MAJMIN}/_sitebuiltins.py",
235            "${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py",
236            "${libdir}/python${PYTHON_MAJMIN}/_weakrefset.py",
237            "${libdir}/python${PYTHON_MAJMIN}/abc.py",
238            "${libdir}/python${PYTHON_MAJMIN}/argparse.py",
239            "${libdir}/python${PYTHON_MAJMIN}/ast.py",
240            "${libdir}/python${PYTHON_MAJMIN}/bisect.py",
241            "${libdir}/python${PYTHON_MAJMIN}/bz2.py",
242            "${libdir}/python${PYTHON_MAJMIN}/code.py",
243            "${libdir}/python${PYTHON_MAJMIN}/codecs.py",
244            "${libdir}/python${PYTHON_MAJMIN}/codeop.py",
245            "${libdir}/python${PYTHON_MAJMIN}/collections",
246            "${libdir}/python${PYTHON_MAJMIN}/collections/abc.py",
247            "${libdir}/python${PYTHON_MAJMIN}/configparser.py",
248            "${libdir}/python${PYTHON_MAJMIN}/contextlib.py",
249            "${libdir}/python${PYTHON_MAJMIN}/copy.py",
250            "${libdir}/python${PYTHON_MAJMIN}/copyreg.py",
251            "${libdir}/python${PYTHON_MAJMIN}/csv.py",
252            "${libdir}/python${PYTHON_MAJMIN}/dataclasses.py",
253            "${libdir}/python${PYTHON_MAJMIN}/dis.py",
254            "${libdir}/python${PYTHON_MAJMIN}/encodings",
255            "${libdir}/python${PYTHON_MAJMIN}/encodings/aliases.py",
256            "${libdir}/python${PYTHON_MAJMIN}/encodings/latin_1.py",
257            "${libdir}/python${PYTHON_MAJMIN}/encodings/utf_8.py",
258            "${libdir}/python${PYTHON_MAJMIN}/enum.py",
259            "${libdir}/python${PYTHON_MAJMIN}/fnmatch.py",
260            "${libdir}/python${PYTHON_MAJMIN}/functools.py",
261            "${libdir}/python${PYTHON_MAJMIN}/genericpath.py",
262            "${libdir}/python${PYTHON_MAJMIN}/getopt.py",
263            "${libdir}/python${PYTHON_MAJMIN}/gettext.py",
264            "${libdir}/python${PYTHON_MAJMIN}/heapq.py",
265            "${libdir}/python${PYTHON_MAJMIN}/imp.py",
266            "${libdir}/python${PYTHON_MAJMIN}/importlib",
267            "${libdir}/python${PYTHON_MAJMIN}/importlib/_abc.py",
268            "${libdir}/python${PYTHON_MAJMIN}/importlib/_bootstrap.py",
269            "${libdir}/python${PYTHON_MAJMIN}/importlib/_bootstrap_external.py",
270            "${libdir}/python${PYTHON_MAJMIN}/importlib/abc.py",
271            "${libdir}/python${PYTHON_MAJMIN}/importlib/machinery.py",
272            "${libdir}/python${PYTHON_MAJMIN}/importlib/util.py",
273            "${libdir}/python${PYTHON_MAJMIN}/inspect.py",
274            "${libdir}/python${PYTHON_MAJMIN}/io.py",
275            "${libdir}/python${PYTHON_MAJMIN}/ipaddress.py",
276            "${libdir}/python${PYTHON_MAJMIN}/keyword.py",
277            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/_struct.*.so",
278            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/binascii.*.so",
279            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/time.*.so",
280            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/xreadlines.*.so",
281            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_bisect.*.so",
282            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_bz2.*.so",
283            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_csv.*.so",
284            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_heapq.*.so",
285            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_lzma.*.so",
286            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_opcode.*.so",
287            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_posixsubprocess.*.so",
288            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_struct.*.so",
289            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_typing.*.so",
290            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/array.*.so",
291            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/binascii.*.so",
292            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/grp.*.so",
293            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/math.*.so",
294            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/parser.*.so",
295            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/readline.*.so",
296            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/select.*.so",
297            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/time.*.so",
298            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/unicodedata.*.so",
299            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/xreadlines.*.so",
300            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/zlib.*.so",
301            "${libdir}/python${PYTHON_MAJMIN}/linecache.py",
302            "${libdir}/python${PYTHON_MAJMIN}/locale.py",
303            "${libdir}/python${PYTHON_MAJMIN}/lzma.py",
304            "${libdir}/python${PYTHON_MAJMIN}/new.py",
305            "${libdir}/python${PYTHON_MAJMIN}/ntpath.py",
306            "${libdir}/python${PYTHON_MAJMIN}/opcode.py",
307            "${libdir}/python${PYTHON_MAJMIN}/operator.py",
308            "${libdir}/python${PYTHON_MAJMIN}/optparse.py",
309            "${libdir}/python${PYTHON_MAJMIN}/os.py",
310            "${libdir}/python${PYTHON_MAJMIN}/pathlib.py",
311            "${libdir}/python${PYTHON_MAJMIN}/pkgutil.py",
312            "${libdir}/python${PYTHON_MAJMIN}/platform.py",
313            "${libdir}/python${PYTHON_MAJMIN}/posixpath.py",
314            "${libdir}/python${PYTHON_MAJMIN}/re",
315            "${libdir}/python${PYTHON_MAJMIN}/re/_casefix.py",
316            "${libdir}/python${PYTHON_MAJMIN}/re/_compiler.py",
317            "${libdir}/python${PYTHON_MAJMIN}/re/_constants.py",
318            "${libdir}/python${PYTHON_MAJMIN}/re/_parser.py",
319            "${libdir}/python${PYTHON_MAJMIN}/reprlib.py",
320            "${libdir}/python${PYTHON_MAJMIN}/rlcompleter.py",
321            "${libdir}/python${PYTHON_MAJMIN}/runpy.py",
322            "${libdir}/python${PYTHON_MAJMIN}/selectors.py",
323            "${libdir}/python${PYTHON_MAJMIN}/shutil.py",
324            "${libdir}/python${PYTHON_MAJMIN}/signal.py",
325            "${libdir}/python${PYTHON_MAJMIN}/site.py",
326            "${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py",
327            "${libdir}/python${PYTHON_MAJMIN}/sre_compile.py",
328            "${libdir}/python${PYTHON_MAJMIN}/sre_constants.py",
329            "${libdir}/python${PYTHON_MAJMIN}/sre_parse.py",
330            "${libdir}/python${PYTHON_MAJMIN}/stat.py",
331            "${libdir}/python${PYTHON_MAJMIN}/stringprep.py",
332            "${libdir}/python${PYTHON_MAJMIN}/struct.py",
333            "${libdir}/python${PYTHON_MAJMIN}/subprocess.py",
334            "${libdir}/python${PYTHON_MAJMIN}/symbol.py",
335            "${libdir}/python${PYTHON_MAJMIN}/sysconfig.py",
336            "${libdir}/python${PYTHON_MAJMIN}/textwrap.py",
337            "${libdir}/python${PYTHON_MAJMIN}/threading.py",
338            "${libdir}/python${PYTHON_MAJMIN}/token.py",
339            "${libdir}/python${PYTHON_MAJMIN}/tokenize.py",
340            "${libdir}/python${PYTHON_MAJMIN}/traceback.py",
341            "${libdir}/python${PYTHON_MAJMIN}/types.py",
342            "${libdir}/python${PYTHON_MAJMIN}/typing.py",
343            "${libdir}/python${PYTHON_MAJMIN}/urllib",
344            "${libdir}/python${PYTHON_MAJMIN}/urllib/parse.py",
345            "${libdir}/python${PYTHON_MAJMIN}/warnings.py",
346            "${libdir}/python${PYTHON_MAJMIN}/weakref.py",
347            "${libdir}/python${PYTHON_MAJMIN}/zipimport.py",
348            "${prefix}/lib/python${PYTHON_MAJMIN}/config*/*[!.a]"
349        ],
350        "cached": [
351            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/__future__.*.pyc",
352            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_bootlocale.*.pyc",
353            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_collections_abc.*.pyc",
354            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_compression.*.pyc",
355            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_markupbase.*.pyc",
356            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sitebuiltins.*.pyc",
357            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata*.*.pyc",
358            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_weakrefset.*.pyc",
359            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/abc.*.pyc",
360            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/argparse.*.pyc",
361            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ast.*.pyc",
362            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/bisect.*.pyc",
363            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/bz2.*.pyc",
364            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/code.*.pyc",
365            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/codecs.*.pyc",
366            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/codeop.*.pyc",
367            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/configparser.*.pyc",
368            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/contextlib.*.pyc",
369            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/copy.*.pyc",
370            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/copyreg.*.pyc",
371            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/csv.*.pyc",
372            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/dataclasses.*.pyc",
373            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/dis.*.pyc",
374            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/enum.*.pyc",
375            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/fnmatch.*.pyc",
376            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/functools.*.pyc",
377            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/genericpath.*.pyc",
378            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/getopt.*.pyc",
379            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/gettext.*.pyc",
380            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/heapq.*.pyc",
381            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/imp.*.pyc",
382            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/inspect.*.pyc",
383            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/io.*.pyc",
384            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ipaddress.*.pyc",
385            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/keyword.*.pyc",
386            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/linecache.*.pyc",
387            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/locale.*.pyc",
388            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/lzma.*.pyc",
389            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ntpath.*.pyc",
390            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/opcode.*.pyc",
391            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/operator.*.pyc",
392            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/optparse.*.pyc",
393            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/os.*.pyc",
394            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pathlib.*.pyc",
395            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pkgutil.*.pyc",
396            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/platform.*.pyc",
397            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/posixpath.*.pyc",
398            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/re.*.pyc",
399            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/reprlib.*.pyc",
400            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/rlcompleter.*.pyc",
401            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/runpy.*.pyc",
402            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/selectors.*.pyc",
403            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shutil.*.pyc",
404            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/signal.*.pyc",
405            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/site.*.pyc",
406            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/sre_compile.*.pyc",
407            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/sre_constants.*.pyc",
408            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/sre_parse.*.pyc",
409            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/stat.*.pyc",
410            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/stringprep.*.pyc",
411            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/struct.*.pyc",
412            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/subprocess.*.pyc",
413            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/symbol.*.pyc",
414            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/sysconfig.*.pyc",
415            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/textwrap.*.pyc",
416            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/threading.*.pyc",
417            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/token.*.pyc",
418            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/tokenize.*.pyc",
419            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/traceback.*.pyc",
420            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/types.*.pyc",
421            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/typing.*.pyc",
422            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/warnings.*.pyc",
423            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/weakref.*.pyc",
424            "${libdir}/python${PYTHON_MAJMIN}/collections/__pycache__",
425            "${libdir}/python${PYTHON_MAJMIN}/collections/__pycache__/abc.*.pyc",
426            "${libdir}/python${PYTHON_MAJMIN}/encodings/__pycache__",
427            "${libdir}/python${PYTHON_MAJMIN}/encodings/__pycache__/aliases.*.pyc",
428            "${libdir}/python${PYTHON_MAJMIN}/encodings/__pycache__/latin_1.*.pyc",
429            "${libdir}/python${PYTHON_MAJMIN}/encodings/__pycache__/utf_8.*.pyc",
430            "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__",
431            "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/_abc.*.pyc",
432            "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/abc.*.pyc",
433            "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/machinery.*.pyc",
434            "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/util.*.pyc",
435            "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__",
436            "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__/_casefix.*.pyc",
437            "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__/_compiler.*.pyc",
438            "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__/_constants.*.pyc",
439            "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__/_parser.*.pyc",
440            "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__",
441            "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__/parse.*.pyc"
442        ]
443    },
444    "crypt": {
445        "summary": "Python basic cryptographic and hashing support",
446        "rdepends": [
447            "core",
448            "math",
449            "stringold"
450        ],
451        "files": [
452            "${libdir}/python${PYTHON_MAJMIN}/crypt.py",
453            "${libdir}/python${PYTHON_MAJMIN}/hashlib.py",
454            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_blake2.*.so",
455            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_crypt.*.so",
456            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_hashlib.*.so",
457            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_md5.*.so",
458            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha1.*.so",
459            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha2.*.so",
460            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha3.*.so"
461        ],
462        "cached": [
463            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/crypt.*.pyc",
464            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/hashlib.*.pyc"
465        ]
466    },
467    "ctypes": {
468        "summary": "Python C types support",
469        "rdepends": [
470            "core",
471            "crypt",
472            "io",
473            "math"
474        ],
475        "files": [
476            "${libdir}/python${PYTHON_MAJMIN}/ctypes",
477            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_ctypes.*.so",
478            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_ctypes_test.*.so"
479        ],
480        "cached": []
481    },
482    "curses": {
483        "summary": "Python curses support",
484        "rdepends": [
485            "core"
486        ],
487        "files": [
488            "${libdir}/python${PYTHON_MAJMIN}/curses",
489            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_curses.*.so",
490            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_curses_panel.*.so"
491        ],
492        "cached": []
493    },
494    "datetime": {
495        "summary": "Python calendar and time support",
496        "rdepends": [
497            "core"
498        ],
499        "files": [
500            "${libdir}/python${PYTHON_MAJMIN}/_strptime.py",
501            "${libdir}/python${PYTHON_MAJMIN}/calendar.py",
502            "${libdir}/python${PYTHON_MAJMIN}/datetime.py",
503            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_datetime.*.so"
504        ],
505        "cached": [
506            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_strptime.*.pyc",
507            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/calendar.*.pyc",
508            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/datetime.*.pyc"
509        ]
510    },
511    "db": {
512        "summary": "Python file-based database support",
513        "rdepends": [
514            "core"
515        ],
516        "files": [
517            "${libdir}/python${PYTHON_MAJMIN}/dbm",
518            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_dbm.*.so"
519        ],
520        "cached": []
521    },
522    "debugger": {
523        "summary": "Python debugger",
524        "rdepends": [
525            "core",
526            "pprint",
527            "shell",
528            "stringold"
529        ],
530        "files": [
531            "${libdir}/python${PYTHON_MAJMIN}/bdb.py",
532            "${libdir}/python${PYTHON_MAJMIN}/pdb.py"
533        ],
534        "cached": [
535            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/bdb.*.pyc",
536            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pdb.*.pyc"
537        ]
538    },
539    "dev": {
540        "cached": [],
541        "files": [
542            "${base_libdir}/*.a",
543            "${base_libdir}/*.o",
544            "${bindir}/python*-config*",
545            "${datadir}/aclocal",
546            "${datadir}/pkgconfig",
547            "${includedir}",
548            "${libdir}/*.a",
549            "${libdir}/*.la",
550            "${libdir}/*.o",
551            "${libdir}/lib*${SOLIBSDEV}",
552            "${libdir}/pkgconfig"
553        ],
554        "rdepends": [
555            "core"
556        ],
557        "summary": "Python development package"
558    },
559    "difflib": {
560        "summary": "Python helpers for computing deltas between objects",
561        "rdepends": [
562            "core"
563        ],
564        "files": [
565            "${libdir}/python${PYTHON_MAJMIN}/difflib.py"
566        ],
567        "cached": [
568            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/difflib.*.pyc"
569        ]
570    },
571    "doctest": {
572        "summary": "Python framework for running examples in docstrings",
573        "rdepends": [
574            "core",
575            "debugger",
576            "difflib",
577            "pprint",
578            "shell",
579            "stringold",
580            "unittest"
581        ],
582        "files": [
583            "${libdir}/python${PYTHON_MAJMIN}/doctest.py"
584        ],
585        "cached": [
586            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/doctest.*.pyc"
587        ]
588    },
589    "email": {
590        "summary": "Python email support",
591        "rdepends": [
592            "core",
593            "crypt",
594            "datetime",
595            "io",
596            "math",
597            "mime",
598            "netclient",
599            "stringold"
600        ],
601        "files": [
602            "${libdir}/python${PYTHON_MAJMIN}/email",
603            "${libdir}/python${PYTHON_MAJMIN}/imaplib.py"
604        ],
605        "cached": [
606            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/imaplib.*.pyc"
607        ]
608    },
609    "ensurepip": {
610        "summary": "Support for bootstrapping the pip installer",
611        "rdepends": [
612            "core"
613        ],
614        "files": [
615            "${libdir}/python${PYTHON_MAJMIN}/ensurepip/"
616        ],
617        "cached": []
618    },
619    "fcntl": {
620        "summary": "Python's fcntl interface",
621        "rdepends": [
622            "core"
623        ],
624        "files": [
625            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/fcntl.*.so"
626        ],
627        "cached": []
628    },
629    "gdbm": {
630        "summary": "Python GNU database support",
631        "rdepends": [
632            "core"
633        ],
634        "files": [
635            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_gdbm.*.so"
636        ],
637        "cached": []
638    },
639    "html": {
640        "summary": "Python HTML processing support",
641        "rdepends": [
642            "core"
643        ],
644        "files": [
645            "${libdir}/python${PYTHON_MAJMIN}/html"
646        ],
647        "cached": []
648    },
649    "idle": {
650        "summary": "Python Integrated Development Environment",
651        "rdepends": [
652            "core"
653        ],
654        "files": [
655            "${bindir}/idle*",
656            "${libdir}/python${PYTHON_MAJMIN}/idlelib"
657        ],
658        "cached": []
659    },
660    "image": {
661        "summary": "Python graphical image handling",
662        "rdepends": [
663            "core"
664        ],
665        "files": [
666            "${libdir}/python${PYTHON_MAJMIN}/colorsys.py",
667            "${libdir}/python${PYTHON_MAJMIN}/imghdr.py"
668        ],
669        "cached": [
670            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/colorsys.*.pyc",
671            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/imghdr.*.pyc"
672        ]
673    },
674    "io": {
675        "summary": "Python low-level I/O",
676        "rdepends": [
677            "core",
678            "crypt",
679            "math",
680            "netclient",
681            "shell"
682        ],
683        "files": [
684            "${libdir}/python${PYTHON_MAJMIN}/_pyio.py",
685            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_socket.*.so",
686            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_ssl.*.so",
687            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/termios.*.so",
688            "${libdir}/python${PYTHON_MAJMIN}/pipes.py",
689            "${libdir}/python${PYTHON_MAJMIN}/socket.py",
690            "${libdir}/python${PYTHON_MAJMIN}/ssl.py",
691            "${libdir}/python${PYTHON_MAJMIN}/tempfile.py"
692        ],
693        "cached": [
694            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_pyio.*.pyc",
695            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pipes.*.pyc",
696            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/socket.*.pyc",
697            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ssl.*.pyc",
698            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/tempfile.*.pyc"
699        ]
700    },
701    "json": {
702        "summary": "Python JSON support",
703        "rdepends": [
704            "core"
705        ],
706        "files": [
707            "${libdir}/python${PYTHON_MAJMIN}/json",
708            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_json.*.so"
709        ],
710        "cached": []
711    },
712    "logging": {
713        "summary": "Python logging support",
714        "rdepends": [
715            "core",
716            "io",
717            "netserver",
718            "pickle",
719            "stringold",
720            "threading"
721        ],
722        "files": [
723            "${libdir}/python${PYTHON_MAJMIN}/logging"
724        ],
725        "cached": []
726    },
727    "mailbox": {
728        "summary": "Python mailbox format support",
729        "rdepends": [
730            "core",
731            "crypt",
732            "datetime",
733            "email",
734            "io",
735            "math",
736            "mime",
737            "netclient",
738            "stringold"
739        ],
740        "files": [
741            "${libdir}/python${PYTHON_MAJMIN}/mailbox.py"
742        ],
743        "cached": [
744            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/mailbox.*.pyc"
745        ]
746    },
747    "math": {
748        "summary": "Python math support",
749        "rdepends": [
750            "core",
751            "crypt"
752        ],
753        "files": [
754            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_random.*.so",
755            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/cmath.*.so",
756            "${libdir}/python${PYTHON_MAJMIN}/random.py"
757        ],
758        "cached": [
759            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/random.*.pyc"
760        ]
761    },
762    "mime": {
763        "summary": "Python MIME handling APIs",
764        "rdepends": [
765            "core"
766        ],
767        "files": [
768            "${libdir}/python${PYTHON_MAJMIN}/quopri.py",
769            "${libdir}/python${PYTHON_MAJMIN}/uu.py"
770        ],
771        "cached": [
772            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/quopri.*.pyc",
773            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/uu.*.pyc"
774        ]
775    },
776    "mmap": {
777        "summary": "Python memory-mapped file support",
778        "rdepends": [
779            "core"
780        ],
781        "files": [
782            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/mmap.*.so"
783        ],
784        "cached": []
785    },
786    "modules": {
787        "cached": [],
788        "files": [],
789        "rdepends": [
790            "2to3",
791            "asyncio",
792            "audio",
793            "codecs",
794            "compile",
795            "compression",
796            "core",
797            "crypt",
798            "ctypes",
799            "curses",
800            "datetime",
801            "db",
802            "debugger",
803            "difflib",
804            "doctest",
805            "email",
806            "ensurepip",
807            "fcntl",
808            "html",
809            "idle",
810            "image",
811            "io",
812            "json",
813            "logging",
814            "mailbox",
815            "math",
816            "mime",
817            "mmap",
818            "multiprocessing",
819            "netclient",
820            "netserver",
821            "numbers",
822            "pickle",
823            "pkgutil",
824            "plistlib",
825            "pprint",
826            "profile",
827            "pydoc",
828            "resource",
829            "shell",
830            "sqlite3",
831            "statistics",
832            "stringold",
833            "syslog",
834            "terminal",
835            "threading",
836            "tkinter",
837            "tomllib",
838            "unittest",
839            "unixadmin",
840            "venv",
841            "xml",
842            "xmlrpc",
843            "zoneinfo"
844        ],
845        "summary": "All Python modules"
846    },
847    "multiprocessing": {
848        "summary": "Python multiprocessing support",
849        "rdepends": [
850            "core",
851            "crypt",
852            "ctypes",
853            "io",
854            "math",
855            "mmap",
856            "netclient",
857            "pickle",
858            "threading"
859        ],
860        "files": [
861            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_multiprocessing.*.so",
862            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_posixshmem.*.so",
863            "${libdir}/python${PYTHON_MAJMIN}/multiprocessing"
864        ],
865        "cached": []
866    },
867    "netclient": {
868        "summary": "Python Internet Protocol clients",
869        "rdepends": [
870            "core",
871            "crypt",
872            "datetime",
873            "email",
874            "io",
875            "math",
876            "mime",
877            "stringold"
878        ],
879        "files": [
880            "${libdir}/python${PYTHON_MAJMIN}/base64.py",
881            "${libdir}/python${PYTHON_MAJMIN}/ftplib.py",
882            "${libdir}/python${PYTHON_MAJMIN}/hmac.py",
883            "${libdir}/python${PYTHON_MAJMIN}/http",
884            "${libdir}/python${PYTHON_MAJMIN}/http/__pycache__",
885            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_uuid.*.so",
886            "${libdir}/python${PYTHON_MAJMIN}/mimetypes.py",
887            "${libdir}/python${PYTHON_MAJMIN}/nntplib.py",
888            "${libdir}/python${PYTHON_MAJMIN}/poplib.py",
889            "${libdir}/python${PYTHON_MAJMIN}/secrets.py",
890            "${libdir}/python${PYTHON_MAJMIN}/smtplib.py",
891            "${libdir}/python${PYTHON_MAJMIN}/telnetlib.py",
892            "${libdir}/python${PYTHON_MAJMIN}/urllib",
893            "${libdir}/python${PYTHON_MAJMIN}/uuid.py"
894        ],
895        "cached": [
896            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/base64.*.pyc",
897            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ftplib.*.pyc",
898            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/hmac.*.pyc",
899            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/mimetypes.*.pyc",
900            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/nntplib.*.pyc",
901            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/poplib.*.pyc",
902            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/secrets.*.pyc",
903            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/smtplib.*.pyc",
904            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/telnetlib.*.pyc",
905            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/uuid.*.pyc"
906        ]
907    },
908    "netserver": {
909        "summary": "Python Internet Protocol servers",
910        "rdepends": [
911            "core",
912            "crypt",
913            "datetime",
914            "email",
915            "html",
916            "io",
917            "math",
918            "mime",
919            "netclient",
920            "stringold"
921        ],
922        "files": [
923            "${libdir}/python${PYTHON_MAJMIN}/cgi.py",
924            "${libdir}/python${PYTHON_MAJMIN}/socketserver.py"
925        ],
926        "cached": [
927            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/cgi.*.pyc",
928            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/socketserver.*.pyc"
929        ]
930    },
931    "numbers": {
932        "summary": "Python number APIs",
933        "rdepends": [
934            "core"
935        ],
936        "files": [
937            "${libdir}/python${PYTHON_MAJMIN}/_pydecimal.py",
938            "${libdir}/python${PYTHON_MAJMIN}/contextvars.py",
939            "${libdir}/python${PYTHON_MAJMIN}/decimal.py",
940            "${libdir}/python${PYTHON_MAJMIN}/fractions.py",
941            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_contextvars.*.so",
942            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_decimal.*.so",
943            "${libdir}/python${PYTHON_MAJMIN}/numbers.py"
944        ],
945        "cached": [
946            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_pydecimal.*.pyc",
947            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/contextvars.*.pyc",
948            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/decimal.*.pyc",
949            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/fractions.*.pyc",
950            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/numbers.*.pyc"
951        ]
952    },
953    "pickle": {
954        "summary": "Python serialisation/persistence support",
955        "rdepends": [
956            "core"
957        ],
958        "files": [
959            "${libdir}/python${PYTHON_MAJMIN}/_compat_pickle.py",
960            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_pickle.*.so",
961            "${libdir}/python${PYTHON_MAJMIN}/pickle.py",
962            "${libdir}/python${PYTHON_MAJMIN}/pickletools.py",
963            "${libdir}/python${PYTHON_MAJMIN}/shelve.py"
964        ],
965        "cached": [
966            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_compat_pickle.*.pyc",
967            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pickle.*.pyc",
968            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pickletools.*.pyc",
969            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shelve.*.pyc"
970        ]
971    },
972    "pkgutil": {
973        "summary": "Python package extension utility support",
974        "rdepends": [
975            "core"
976        ],
977        "files": [],
978        "cached": []
979    },
980    "plistlib": {
981        "summary": "Generate and parse Mac OS X .plist files",
982        "rdepends": [
983            "core",
984            "datetime",
985            "xml"
986        ],
987        "files": [
988            "${libdir}/python${PYTHON_MAJMIN}/plistlib.py"
989        ],
990        "cached": [
991            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/plistlib.*.pyc"
992        ]
993    },
994    "pprint": {
995        "summary": "Python pretty-print support",
996        "rdepends": [
997            "core"
998        ],
999        "files": [
1000            "${libdir}/python${PYTHON_MAJMIN}/pprint.py"
1001        ],
1002        "cached": [
1003            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pprint.*.pyc"
1004        ]
1005    },
1006    "profile": {
1007        "summary": "Python basic performance profiling support",
1008        "rdepends": [
1009            "core"
1010        ],
1011        "files": [
1012            "${libdir}/python${PYTHON_MAJMIN}/cProfile.py",
1013            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_lsprof.*.so",
1014            "${libdir}/python${PYTHON_MAJMIN}/profile.py",
1015            "${libdir}/python${PYTHON_MAJMIN}/pstats.py"
1016        ],
1017        "cached": [
1018            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/cProfile.*.pyc",
1019            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/profile.*.pyc",
1020            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pstats.*.pyc"
1021        ]
1022    },
1023    "pydoc": {
1024        "summary": "Python interactive help support",
1025        "rdepends": [
1026            "core"
1027        ],
1028        "files": [
1029            "${bindir}/pydoc*",
1030            "${libdir}/python${PYTHON_MAJMIN}/pydoc.py",
1031            "${libdir}/python${PYTHON_MAJMIN}/pydoc_data"
1032        ],
1033        "cached": [
1034            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pydoc.*.pyc"
1035        ]
1036    },
1037    "resource": {
1038        "summary": "Python resource control interface",
1039        "rdepends": [
1040            "core"
1041        ],
1042        "files": [
1043            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/resource.*.so"
1044        ],
1045        "cached": []
1046    },
1047    "shell": {
1048        "summary": "Python shell-like functionality",
1049        "rdepends": [
1050            "core",
1051            "stringold"
1052        ],
1053        "files": [
1054            "${libdir}/python${PYTHON_MAJMIN}/cmd.py",
1055            "${libdir}/python${PYTHON_MAJMIN}/glob.py",
1056            "${libdir}/python${PYTHON_MAJMIN}/shlex.py"
1057        ],
1058        "cached": [
1059            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/cmd.*.pyc",
1060            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/glob.*.pyc",
1061            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shlex.*.pyc"
1062        ]
1063    },
1064    "sqlite3": {
1065        "summary": "Python Sqlite3 database support",
1066        "rdepends": [
1067            "core",
1068            "datetime"
1069        ],
1070        "files": [
1071            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sqlite3.*.so",
1072            "${libdir}/python${PYTHON_MAJMIN}/sqlite3"
1073        ],
1074        "cached": []
1075    },
1076    "statistics": {
1077        "summary": "Basic statistics module",
1078        "rdepends": [
1079            "core",
1080            "crypt",
1081            "math",
1082            "numbers"
1083        ],
1084        "files": [
1085            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_statistics.*.so",
1086            "${libdir}/python${PYTHON_MAJMIN}/statistics.py"
1087        ],
1088        "cached": [
1089            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/statistics.*.pyc"
1090        ]
1091    },
1092    "stringold": {
1093        "summary": "Python string APIs [deprecated]",
1094        "rdepends": [
1095            "core"
1096        ],
1097        "files": [
1098            "${libdir}/python${PYTHON_MAJMIN}/string.py"
1099        ],
1100        "cached": [
1101            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/string.*.pyc"
1102        ]
1103    },
1104    "syslog": {
1105        "summary": "Python syslog interface",
1106        "rdepends": [
1107            "core"
1108        ],
1109        "files": [
1110            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/syslog.*.so"
1111        ],
1112        "cached": []
1113    },
1114    "terminal": {
1115        "summary": "Python terminal controlling support",
1116        "rdepends": [
1117            "core",
1118            "io"
1119        ],
1120        "files": [
1121            "${libdir}/python${PYTHON_MAJMIN}/pty.py",
1122            "${libdir}/python${PYTHON_MAJMIN}/tty.py"
1123        ],
1124        "cached": [
1125            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pty.*.pyc",
1126            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/tty.*.pyc"
1127        ]
1128    },
1129    "threading": {
1130        "summary": "Python threading & synchronization support",
1131        "rdepends": [
1132            "core"
1133        ],
1134        "files": [
1135            "${libdir}/python${PYTHON_MAJMIN}/_threading_local.py",
1136            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_queue.*.so",
1137            "${libdir}/python${PYTHON_MAJMIN}/queue.py"
1138        ],
1139        "cached": [
1140            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_threading_local.*.pyc",
1141            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/queue.*.pyc"
1142        ]
1143    },
1144    "tkinter": {
1145        "summary": "Python Tcl/Tk bindings",
1146        "rdepends": [
1147            "core"
1148        ],
1149        "files": [
1150            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_tkinter.*.so",
1151            "${libdir}/python${PYTHON_MAJMIN}/tkinter"
1152        ],
1153        "cached": []
1154    },
1155    "tomllib": {
1156        "summary": "Provides an interface for parsing TOML",
1157        "rdepends": [
1158            "core"
1159        ],
1160        "files": [
1161            "${libdir}/python${PYTHON_MAJMIN}/tomllib/"
1162        ],
1163        "cached": []
1164    },
1165    "turtle": {
1166        "summary": "Turtle graphics is a popular way for introducing programming to kids.",
1167        "rdepends": [
1168            "tkinter"
1169        ],
1170        "files": [
1171            "${libdir}/python${PYTHON_MAJMIN}/turtle.py"
1172        ],
1173        "cached": [
1174            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/turtle.*.pyc"
1175        ]
1176     },
1177    "unittest": {
1178        "summary": "Python unit testing framework",
1179        "rdepends": [
1180            "asyncio",
1181            "core",
1182            "difflib",
1183            "io",
1184            "logging",
1185            "netclient",
1186            "numbers",
1187            "pprint",
1188            "stringold"
1189        ],
1190        "files": [
1191            "${libdir}/python${PYTHON_MAJMIN}/unittest",
1192            "${libdir}/python${PYTHON_MAJMIN}/unittest/",
1193            "${libdir}/python${PYTHON_MAJMIN}/unittest/__pycache__"
1194        ],
1195        "cached": []
1196    },
1197    "unixadmin": {
1198        "summary": "Python Unix administration support",
1199        "rdepends": [
1200            "core",
1201            "io"
1202        ],
1203        "files": [
1204            "${libdir}/python${PYTHON_MAJMIN}/getpass.py",
1205            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/nis.*.so"
1206        ],
1207        "cached": [
1208            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/getpass.*.pyc"
1209        ]
1210    },
1211    "venv": {
1212        "summary": "Provides support for creating lightweight virtual environments with their own site directories, optionally isolated from system site directories.",
1213        "rdepends": [
1214            "core",
1215            "logging",
1216            "stringold"
1217        ],
1218        "files": [
1219            "${bindir}/pyvenv*",
1220            "${libdir}/python${PYTHON_MAJMIN}/venv"
1221        ],
1222        "cached": []
1223    },
1224    "xml": {
1225        "summary": "Python basic XML support",
1226        "rdepends": [
1227            "core"
1228        ],
1229        "files": [
1230            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_elementtree.*.so",
1231            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/pyexpat.*.so",
1232            "${libdir}/python${PYTHON_MAJMIN}/xml"
1233        ],
1234        "cached": []
1235    },
1236    "xmlrpc": {
1237        "summary": "Python XML-RPC support",
1238        "rdepends": [
1239            "compression",
1240            "core",
1241            "crypt",
1242            "datetime",
1243            "email",
1244            "html",
1245            "io",
1246            "math",
1247            "mime",
1248            "netclient",
1249            "netserver",
1250            "numbers",
1251            "pydoc",
1252            "stringold",
1253            "xml"
1254        ],
1255        "files": [
1256            "${libdir}/python${PYTHON_MAJMIN}/xmlrpc",
1257            "${libdir}/python${PYTHON_MAJMIN}/xmlrpc/__pycache__"
1258        ],
1259        "cached": []
1260    },
1261    "zipapp": {
1262        "summary": "Tools to manage the creation of zip files containing Python code",
1263        "rdepends": [
1264            "compression",
1265            "core"
1266        ],
1267        "files": [
1268            "${libdir}/python${PYTHON_MAJMIN}/zipapp.py"
1269        ],
1270        "cached": [
1271            "${libdir}/python${PYTHON_MAJMIN}/__pycache__/zipapp.*.pyc"
1272        ]
1273    },
1274    "zoneinfo": {
1275        "summary": "IANA time zone support",
1276        "rdepends": [
1277            "core",
1278            "datetime"
1279        ],
1280        "files": [
1281            "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_zoneinfo.*.so",
1282            "${libdir}/python${PYTHON_MAJMIN}/zoneinfo"
1283        ],
1284        "cached": []
1285    }
1286}
1287