in tools/upgrade/commands/targets_to_configuration.py [0:0]
def run(self) -> None:
# TODO(T62926437): Basic integration testing.
subdirectory = self._subdirectory
subdirectory = Path(subdirectory) if subdirectory else Path.cwd()
if self._only_clean_targets:
LOG.info(
"Cleaning typecheck targets from `%s`.",
subdirectory,
)
LOG.info("No pyre configurations will be affected.")
all_targets = find_targets(subdirectory, pyre_only=self._pyre_only)
if not all_targets:
LOG.warning("No targets found.")
return
targets_files = [Path(path) for path in all_targets.keys()]
self.remove_target_typing_fields(targets_files)
return
LOG.info(
"Converting typecheck targets to pyre configurations in `%s`.",
subdirectory,
)
configuration_directories = self._gather_directories(subdirectory)
converted = []
for directory in configuration_directories:
if all(
str(directory).startswith(str(converted_directory)) is False
for converted_directory in converted
):
self.convert_directory(directory)
converted.append(directory)
summary = self._repository.MIGRATION_SUMMARY
glob = self._glob_threshold
if glob:
summary += (
f"\n\nConfiguration target automatically expanded to include "
f"all subtargets, expanding type coverage while introducing "
f"no more than {glob} fixmes per file."
)
title = f"Convert type check targets in {subdirectory} to use configuration"
self._repository.commit_changes(
commit=(not self._no_commit),
title=title,
summary=summary,
set_dependencies=False,
)