imports.py 626 B

123456789101112131415161718192021222324252627
  1. """Import operations."""
  2. from __future__ import annotations
  3. from collections import defaultdict
  4. from typing import Dict, Set
  5. from reflex.vars import ImportVar
  6. ImportDict = Dict[str, Set[ImportVar]]
  7. def merge_imports(*imports) -> ImportDict:
  8. """Merge multiple import dicts together.
  9. Args:
  10. *imports: The list of import dicts to merge.
  11. Returns:
  12. The merged import dicts.
  13. """
  14. all_imports = defaultdict(set)
  15. for import_dict in imports:
  16. for lib, fields in import_dict.items():
  17. for field in fields:
  18. all_imports[lib].add(field)
  19. return all_imports