(**attr)
| 106 | return dist |
| 107 | |
| 108 | def setup(**attr): |
| 109 | |
| 110 | cmdclass = numpy_cmdclass.copy() |
| 111 | |
| 112 | new_attr = attr.copy() |
| 113 | if 'cmdclass' in new_attr: |
| 114 | cmdclass.update(new_attr['cmdclass']) |
| 115 | new_attr['cmdclass'] = cmdclass |
| 116 | |
| 117 | if 'configuration' in new_attr: |
| 118 | # To avoid calling configuration if there are any errors |
| 119 | # or help request in command in the line. |
| 120 | configuration = new_attr.pop('configuration') |
| 121 | |
| 122 | old_dist = distutils.core._setup_distribution |
| 123 | old_stop = distutils.core._setup_stop_after |
| 124 | distutils.core._setup_distribution = None |
| 125 | distutils.core._setup_stop_after = "commandline" |
| 126 | try: |
| 127 | dist = setup(**new_attr) |
| 128 | finally: |
| 129 | distutils.core._setup_distribution = old_dist |
| 130 | distutils.core._setup_stop_after = old_stop |
| 131 | if dist.help or not _command_line_ok(): |
| 132 | # probably displayed help, skip running any commands |
| 133 | return dist |
| 134 | |
| 135 | # create setup dictionary and append to new_attr |
| 136 | config = configuration() |
| 137 | if hasattr(config, 'todict'): |
| 138 | config = config.todict() |
| 139 | _dict_append(new_attr, **config) |
| 140 | |
| 141 | # Move extension source libraries to libraries |
| 142 | libraries = [] |
| 143 | for ext in new_attr.get('ext_modules', []): |
| 144 | new_libraries = [] |
| 145 | for item in ext.libraries: |
| 146 | if is_sequence(item): |
| 147 | lib_name, build_info = item |
| 148 | _check_append_ext_library(libraries, lib_name, build_info) |
| 149 | new_libraries.append(lib_name) |
| 150 | elif is_string(item): |
| 151 | new_libraries.append(item) |
| 152 | else: |
| 153 | raise TypeError("invalid description of extension module " |
| 154 | "library %r" % (item,)) |
| 155 | ext.libraries = new_libraries |
| 156 | if libraries: |
| 157 | if 'libraries' not in new_attr: |
| 158 | new_attr['libraries'] = [] |
| 159 | for item in libraries: |
| 160 | _check_append_library(new_attr['libraries'], item) |
| 161 | |
| 162 | # sources in ext_modules or libraries may contain header files |
| 163 | if ('ext_modules' in new_attr or 'libraries' in new_attr) \ |
| 164 | and 'headers' not in new_attr: |
| 165 | new_attr['headers'] = [] |
no test coverage detected