@@ -1025,10 +1025,6 @@ def write_pkg_inits(
10251025 """
10261026 # Write base init path that imports __version__ from the auto-generated _version
10271027 # file
1028- base_init_fspath = package_root .joinpath (* self .name , "__init__.py" )
1029- if not base_init_fspath .exists ():
1030- with open (base_init_fspath , "w" ) as f :
1031- f .write ("from ._version import __version__" )
10321028 parts = module_name .split ("." )
10331029 for i , part in enumerate (reversed (parts [depth :]), start = 1 ):
10341030 mod_parts = parts [:- i ]
@@ -1104,3 +1100,43 @@ def write_pkg_inits(
11041100
11051101 with open (init_fspath , "w" ) as f :
11061102 f .write (code_str )
1103+
1104+ BASE_INIT_TEMPLATE = """\" \" \"
1105+ This is a basic doctest demonstrating that the package and pydra can both be successfully
1106+ imported.
1107+
1108+ >>> import pydra.engine
1109+ >>> import pydra.tasks.{pkg}
1110+ \" \" \"
1111+
1112+ from warnings import warn
1113+ from pathlib import Path
1114+
1115+ pkg_path = Path(__file__).parent.parent
1116+
1117+ try:
1118+ from ._version import __version__
1119+ except ImportError:
1120+ raise RuntimeError(
1121+ "pydra-{pkg} has not been properly installed, please run "
1122+ f"`pip install -e {str(pkg_path)}` to install a development version"
1123+ )
1124+ if "nipype" not in __version__:
1125+ try:
1126+ from ._post_release import src_pkg_version, nipype2pydra_version
1127+ except ImportError:
1128+ warn(
1129+ "Nipype interfaces haven't been automatically converted from their specs in "
1130+ f"`nipype-auto-conv`. Please run `{str(pkg_path / 'nipype-auto-conv' / 'generate')}` "
1131+ "to generated the converted Nipype interfaces in pydra.tasks.{pkg}.auto"
1132+ )
1133+ else:
1134+ n_ver = src_pkg_version.replace(".", "_")
1135+ n2p_ver = nipype2pydra_version.replace(".", "_")
1136+ __version__ += (
1137+ "_" if "+" in __version__ else "+"
1138+ ) + f"nipype{n_ver}_nipype2pydra{n2p_ver}"
1139+
1140+
1141+ __all__ = ["__version__"]
1142+ """
0 commit comments