1+ from __future__ import annotations
2+
13import os
4+ from collections .abc import Mapping
5+ from typing import Any
26
37
4- def render (plugin_metadata ) -> str :
8+ def render (plugin_metadata : Mapping [ str , Any ] ) -> str :
59 """Render _bmi.py."""
6- languages = {
7- library ["language" ] for library in plugin_metadata ._meta ["library" ].values ()
8- }
10+ languages = {library ["language" ] for library in plugin_metadata ["library" ].values ()}
911 assert len (languages ) == 1
1012 language = languages .pop ()
1113
@@ -15,22 +17,18 @@ def render(plugin_metadata) -> str:
1517 return _render_bmi_c (plugin_metadata )
1618
1719
18- def _render_bmi_c (plugin_metadata ) -> str :
20+ def _render_bmi_c (plugin_metadata : Mapping [ str , Any ] ) -> str :
1921 """Render _bmi.py for a non-python library."""
20- languages = [
21- library ["language" ] for library in plugin_metadata ._meta ["library" ].values ()
22- ]
22+ languages = [library ["language" ] for library in plugin_metadata ["library" ].values ()]
2323 language = languages [0 ]
2424 assert language in ("c" , "c++" , "fortran" )
2525
2626 imports = [
27- f"from { plugin_metadata . get ( 'package' , 'name' ) } .lib import { cls } "
28- for cls in plugin_metadata . _meta ["library" ]
27+ f"from { plugin_metadata [ 'package' ][ 'name' ] } .lib import { cls } "
28+ for cls in plugin_metadata ["library" ]
2929 ]
3030
31- names = [
32- f" { cls !r} ," .replace ("'" , '"' ) for cls in plugin_metadata ._meta ["library" ]
33- ]
31+ names = [f" { cls !r} ," .replace ("'" , '"' ) for cls in plugin_metadata ["library" ]]
3432
3533 return f"""\
3634{ os .linesep .join (sorted (imports ))}
@@ -41,11 +39,9 @@ def _render_bmi_c(plugin_metadata) -> str:
4139 """
4240
4341
44- def _render_bmi_py (plugin_metadata ) -> str :
42+ def _render_bmi_py (plugin_metadata : Mapping [ str , Any ] ) -> str :
4543 """Render _bmi.py for a python library."""
46- languages = [
47- library ["language" ] for library in plugin_metadata ._meta ["library" ].values ()
48- ]
44+ languages = [library ["language" ] for library in plugin_metadata ["library" ].values ()]
4945 language = languages [0 ]
5046 assert language == "python"
5147
@@ -60,7 +56,7 @@ def _render_bmi_py(plugin_metadata) -> str:
6056
6157 imports = [
6258 f"from { component ['library' ]} import { component ['entry_point' ]} as { cls } "
63- for cls , component in plugin_metadata . _meta ["library" ].items ()
59+ for cls , component in plugin_metadata ["library" ].items ()
6460 ]
6561
6662 rename = [
@@ -70,12 +66,10 @@ def _render_bmi_py(plugin_metadata) -> str:
7066""" .replace (
7167 "'" , '"'
7268 )
73- for cls in plugin_metadata . _meta ["library" ]
69+ for cls in plugin_metadata ["library" ]
7470 ]
7571
76- names = [
77- f" { cls !r} ," .replace ("'" , '"' ) for cls in plugin_metadata ._meta ["library" ]
78- ]
72+ names = [f" { cls !r} ," .replace ("'" , '"' ) for cls in plugin_metadata ["library" ]]
7973
8074 return f"""\
8175{ header }
0 commit comments