pydantic / bump-pydantic

Convert Pydantic from V1 to V2 ♻
MIT License
304 stars 24 forks source link

Error when module got re-referenced #87

Closed lucaszhang99 closed 1 year ago

lucaszhang99 commented 1 year ago

app\services\inbox\Models\InboxEnum.py: error: Source file found twice under different module names: "InboxEnum" and "app.services.inbox.Models.InboxEnum"

InboxEnum is a set of StrEnum models InboxEnum is in app\services\inbox\Models InboxEnum is imported in multiple other files in app\services\inbox\Models

lucaszhang99 commented 1 year ago

Full Log


│    67 │                                                                                          │
│    68 │   logger.info("Running mypy to get type information. This may take a while...")          │
│ ❱  69 │   classes = run_mypy_visitor(files)                                                      │
│    70 │   scratch: dict[str, Any] = {CONTEXT_KEY: classes}                                       │
│    71 │   logger.info("Finished mypy.")                                                          │
│    72                                                                                            │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │          disable = []                                                                        │ │
│ │            files = [                                                                         │ │
│ │                    │   'app\\services\\inbox\\Models\\InboxButtonStatusVM.py',               │ │
│ │                    │   'app\\services\\inbox\\Models\\InboxEnum.py',                         │ │
│ │                    │   'app\\services\\inbox\\Models\\InboxMessageButtonVM.py',              │ │
│ │                    │   'app\\services\\inbox\\Models\\InboxMessageStatusViewModel.py',       │ │
│ │                    │   'app\\services\\inbox\\Models\\InboxMessageUpdate.py',                │ │
│ │                    │   'app\\services\\inbox\\Models\\InboxMessageUpdateStatusVM.py',        │ │
│ │                    │   'app\\services\\inbox\\Models\\InboxMessageViewModel.py',             │ │
│ │                    │   'app\\services\\inbox\\Models\\MessagePostViewModel.py',              │ │
│ │                    │   'app\\services\\inbox\\Models\\ResponseInboxMessageViewModel.py'      │ │
│ │                    ]                                                                         │ │
│ │        files_str = [                                                                         │ │
│ │                    │   WindowsPath('app/services/inbox/Models/InboxButtonStatusVM.py'),      │ │
│ │                    │   WindowsPath('app/services/inbox/Models/InboxEnum.py'),                │ │
│ │                    │   WindowsPath('app/services/inbox/Models/InboxMessageButtonVM.py'),     │ │
│ │                    │                                                                         │ │
│ │                    WindowsPath('app/services/inbox/Models/InboxMessageStatusViewModel.py'),  │ │
│ │                    │   WindowsPath('app/services/inbox/Models/InboxMessageUpdate.py'),       │ │
│ │                    │                                                                         │ │
│ │                    WindowsPath('app/services/inbox/Models/InboxMessageUpdateStatusVM.py'),   │ │
│ │                    │   WindowsPath('app/services/inbox/Models/InboxMessageViewModel.py'),    │ │
│ │                    │   WindowsPath('app/services/inbox/Models/MessagePostViewModel.py'),     │ │
│ │                    │                                                                         │ │
│ │                    WindowsPath('app/services/inbox/Models/ResponseInboxMessageViewModel.py') │ │
│ │                    ]                                                                         │ │
│ │         log_file = WindowsPath('log.txt')                                                    │ │
│ │ metadata_manager = <libcst.metadata.full_repo_manager.FullRepoManager object at              │ │
│ │                    0x00000252A7EB97D0>                                                       │ │
│ │          package = WindowsPath('app/services/inbox/Models')                                  │ │
│ │        providers = {                                                                         │ │
│ │                    │   <class 'libcst.metadata.name_provider.FullyQualifiedNameProvider'>,   │ │
│ │                    │   <class 'libcst.metadata.scope_provider.ScopeProvider'>                │ │
│ │                    }                                                                         │ │
│ │          version = None                                                                      │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ C:\Users\xxxxxxxxxxxxx\Documents\Repos\cyclops\Lib\site-packages\bump_pydantic\codemods\mypy_visito │
│ r.py:34 in run_mypy_visitor                                                                      │
│                                                                                                  │
│   31 │   opt.allow_redefinition = True                                                           │
│   32 │   opt.local_partial_types = True                                                          │
│   33 │                                                                                           │
│ ❱ 34 │   result = build(files, opt, stdout=sys.stdout, stderr=sys.stderr)                        │
│   35 │                                                                                           │
│   36 │   visitor = MyPyVisitor()                                                                 │
│   37 │   classes: dict[str, bool] = {}                                                           │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ arg_files = [                                                                                │ │
│ │             │   'app\\services\\inbox\\Models\\InboxButtonStatusVM.py',                      │ │
│ │             │   'app\\services\\inbox\\Models\\InboxEnum.py',                                │ │
│ │             │   'app\\services\\inbox\\Models\\InboxMessageButtonVM.py',                     │ │
│ │             │   'app\\services\\inbox\\Models\\InboxMessageStatusViewModel.py',              │ │
│ │             │   'app\\services\\inbox\\Models\\InboxMessageUpdate.py',                       │ │
│ │             │   'app\\services\\inbox\\Models\\InboxMessageUpdateStatusVM.py',               │ │
│ │             │   'app\\services\\inbox\\Models\\InboxMessageViewModel.py',                    │ │
│ │             │   'app\\services\\inbox\\Models\\MessagePostViewModel.py',                     │ │
│ │             │   'app\\services\\inbox\\Models\\ResponseInboxMessageViewModel.py'             │ │
│ │             ]                                                                                │ │
│ │     files = [                                                                                │ │
│ │             │   BuildSource(path='app\\services\\inbox\\Models\\InboxButtonStatusVM.py',     │ │
│ │             module='InboxButtonStatusVM', has_text=False,                                    │ │
│ │             base_dir='C:\\Users\\xxxxxxxxx\\Documents\\Repos\\cyclops\\app\\services\\inbo… │ │
│ │             followed=False),                                                                 │ │
│ │             │   BuildSource(path='app\\services\\inbox\\Models\\InboxEnum.py',               │ │
│ │             module='InboxEnum', has_text=False,                                              │ │
│ │             base_dir='C:\\Users\\xxxxx\\Documents\\Repos\\cyclops\\app\\services\\inbo… │ │
│ │             followed=False),                                                                 │ │
│ │             │   BuildSource(path='app\\services\\inbox\\Models\\InboxMessageButtonVM.py',    │ │
│ │             module='InboxMessageButtonVM', has_text=False,                                   │ │
│ │             base_dir='C:\\Users\\xxxxxxx\\Documents\\Repos\\cyclops\\app\\services\\inbo… │ │
│ │             followed=False),                                                                 │ │
│ │             │                                                                                │ │
│ │             BuildSource(path='app\\services\\inbox\\Models\\InboxMessageStatusViewModel.py', │ │
│ │             module='InboxMessageStatusViewModel', has_text=False,                            │ │
│ │             base_dir='C:\\Users\\xxxxxx\\Documents\\Repos\\cyclops\\app\\services\\inbo… │ │
│ │             followed=False),                                                                 │ │
│ │             │   BuildSource(path='app\\services\\inbox\\Models\\InboxMessageUpdate.py',      │ │
│ │             module='InboxMessageUpdate', has_text=False,                                     │ │
│ │             base_dir='C:\\Users\\xxxxxx\\Documents\\Repos\\cyclops\\app\\services\\inbo… │ │
│ │             followed=False),                                                                 │ │
│ │             │                                                                                │ │
│ │             BuildSource(path='app\\services\\inbox\\Models\\InboxMessageUpdateStatusVM.py',  │ │
│ │             module='InboxMessageUpdateStatusVM', has_text=False,                             │ │
│ │             base_dir='C:\\Users\\xxxxxx\\Documents\\Repos\\cyclops\\app\\services\\inbo… │ │
│ │             followed=False),                                                                 │ │
│ │             │   BuildSource(path='app\\services\\inbox\\Models\\InboxMessageViewModel.py',   │ │
│ │             module='InboxMessageViewModel', has_text=False,                                  │ │
│ │             base_dir='C:\\Users\\xxxxxx\\Documents\\Repos\\cyclops\\app\\services\\inbo… │ │
│ │             followed=False),                                                                 │ │
│ │             │   BuildSource(path='app\\services\\inbox\\Models\\MessagePostViewModel.py',    │ │
│ │             module='MessagePostViewModel', has_text=False,                                   │ │
│ │             base_dir='C:\\Users\\xxxxx\\Documents\\Repos\\cyclops\\app\\services\\inbo… │ │
│ │             followed=False),                                                                 │ │
│ │             │                                                                                │ │
│ │             BuildSource(path='app\\services\\inbox\\Models\\ResponseInboxMessageViewModel.p… │ │
│ │             module='ResponseInboxMessageViewModel', has_text=False,                          │ │
│ │             base_dir='C:\\Users\\LucasZhang\\Documents\\Repos\\cyclops\\app\\services\\inbo… │ │
│ │             followed=False)                                                                  │ │
│ │             ]                                                                                │ │
│ │       opt = Options({'abs_custom_typeshed_dir': None,                                        │ │
│ │              'allow_empty_bodies': False,                                                    │ │
│ │              'allow_redefinition': True,                                                     │ │
│ │              'allow_untyped_globals': False,                                                 │ │
│ │              'always_false': [],                                                             │ │
│ │              'always_true': [],                                                              │ │
│ │              'bazel': False,                                                                 │ │
│ │              'build_type': 0,                                                                │ │
│ │              'cache_dir': '.mypy_cache',                                                     │ │
│ │              'cache_fine_grained': True,                                                     │ │
│ │              'cache_map': {},                                                                │ │
│ │              'check_untyped_defs': False,                                                    │ │
│ │              'color_output': True,                                                           │ │
│ │              'config_file': None,                                                            │ │
│ │              'custom_typeshed_dir': None,                                                    │ │
│ │              'custom_typing_module': None,                                                   │ │
│ │              'debug_cache': False,                                                           │ │
│ │              'debug_serialize': False,                                                       │ │
│ │              'disable_bytearray_promotion': False,                                           │ │
│ │              'disable_error_code': [],                                                       │ │
│ │              'disable_memoryview_promotion': False,                                          │ │
│ │              'disable_recursive_aliases': False,                                             │ │
│ │              'disabled_error_codes': set(),                                                  │ │
│ │              'disallow_any_decorated': False,                                                │ │
│ │              'disallow_any_explicit': False,                                                 │ │
│ │              'disallow_any_expr': False,                                                     │ │
│ │              'disallow_any_generics': False,                                                 │ │
│ │              'disallow_any_unimported': False,                                               │ │
│ │              'disallow_incomplete_defs': False,                                              │ │
│ │              'disallow_subclassing_any': False,                                              │ │
│ │              'disallow_untyped_calls': False,                                                │ │
│ │              'disallow_untyped_decorators': False,                                           │ │
│ │              'disallow_untyped_defs': False,                                                 │ │
│ │              'dump_build_stats': False,                                                      │ │
│ │              'dump_deps': False,                                                             │ │
│ │              'dump_graph': False,                                                            │ │
│ │              'dump_inference_stats': False,                                                  │ │
│ │              'dump_type_stats': False,                                                       │ │
│ │              'enable_error_code': [],                                                        │ │
│ │              'enable_incomplete_feature': [],                                                │ │
│ │              'enable_incomplete_features': False,                                            │ │
│ │              'enable_recursive_aliases': False,                                              │ │
│ │              'enabled_error_codes': set(),                                                   │ │
│ │              'error_summary': True,                                                          │ │
│ │              'exclude': [],                                                                  │ │
│ │              'explicit_package_bases': False,                                                │ │
│ │              'export_ref_info': False,                                                       │ │
│ │              'export_types': True,                                                           │ │
│ │              'fast_exit': True,                                                              │ │
│ │              'fast_module_lookup': False,                                                    │ │
│ │              'files': None,                                                                  │ │
│ │              'fine_grained_incremental': True,                                               │ │
│ │              'follow_imports': 'normal',                                                     │ │
│ │              'follow_imports_for_stubs': False,                                              │ │
│ │              'force_union_syntax': False,                                                    │ │
│ │              'force_uppercase_builtins': False,                                              │ │
│ │              'hide_error_codes': False,                                                      │ │
│ │              'ignore_errors': False,                                                         │ │
│ │              'ignore_missing_imports': False,                                                │ │
│ │              'ignore_missing_imports_per_module': False,                                     │ │
│ │              'implicit_optional': False,                                                     │ │
│ │              'implicit_reexport': True,                                                      │ │
│ │              'incremental': True,                                                            │ │
│ │              'inspections': False,                                                           │ │
│ │              'install_types': False,                                                         │ │
│ │              'junit_xml': None,                                                              │ │
│ │              'line_checking_stats': None,                                                    │ │
│ │              'local_partial_types': True,                                                    │ │
│ │              'logical_deps': False,                                                          │ │
│ │              'many_errors_threshold': -1,                                                    │ │
│ │              'modules': None,                                                                │ │
│ │              'mypy_path': [],                                                                │ │
│ │              'mypyc': False,                                                                 │ │
│ │              'namespace_packages': True,                                                     │ │
│ │              'no_silence_site_packages': False,                                              │ │
│ │              'no_site_packages': False,                                                      │ │
│ │              'non_interactive': False,                                                       │ │
│ │              'package_root': [],                                                             │ │
│ │              'packages': None,                                                               │ │
│ │              'pdb': False,                                                                   │ │
│ │              'per_module_options': {},                                                       │ │
│ │              'platform': 'win32',                                                            │ │
│ │              'plugins': [],                                                                  │ │
│ │              'preserve_asts': False,                                                         │ │
│ │              'pretty': False,                                                                │ │
│ │              'python_executable':                                                            │ │
│ │             'C:\\Users\\xxxx\\Documents\\Repos\\cyclops\\Scripts\\python.exe',         │ │
│ │              'python_version': (3, 11),                                                      │ │
│ │              'quickstart_file': None,                                                        │ │
│ │              'raise_exceptions': False,                                                      │ │
│ │              'report_dirs': {},                                                              │ │
│ │              'scripts_are_modules': False,                                                   │ │
│ │              'semantic_analysis_only': False,                                                │ │
│ │              'shadow_file': None,                                                            │ │
│ │              'show_absolute_path': False,                                                    │ │
│ │              'show_column_numbers': False,                                                   │ │
│ │              'show_error_context': False,                                                    │ │
│ │              'show_error_end': False,                                                        │ │
│ │              'show_traceback': False,                                                        │ │
│ │              'skip_cache_mtime_checks': False,                                               │ │
│ │              'skip_version_check': False,                                                    │ │
│ │              'sqlite_cache': False,                                                          │ │
│ │              'strict_concatenate': False,                                                    │ │
│ │              'strict_equality': False,                                                       │ │
│ │              'strict_optional': True,                                                        │ │
│ │              'timing_stats': None,                                                           │ │
│ │              'transform_source': None,                                                       │ │
│ │              'unused_configs': set(),                                                        │ │
│ │              'use_builtins_fixtures': False,                                                 │ │
│ │              'use_fine_grained_cache': False,                                                │ │
│ │              'verbosity': 0,                                                                 │ │
│ │              'warn_incomplete_stub': False,                                                  │ │
│ │              'warn_no_return': True,                                                         │ │
│ │              'warn_redundant_casts': False,                                                  │ │
│ │              'warn_return_any': False,                                                       │ │
│ │              'warn_unreachable': False,                                                      │ │
│ │              'warn_unused_configs': False,                                                   │ │
│ │              'warn_unused_ignores': False})                                                  │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ in build:197                                                                                     │
│                                                                                                  │
│ in _build:270                                                                                    │
│                                                                                                  │
│ in dispatch:2874                                                                                 │
│                                                                                                  │
│ in load_graph:3179                                                                               │
│                                                                                                  │
│ in raise_error:775                                                                               │```
Kludex commented 1 year ago

I think we need to remove mypy from the equation here.