pydantic / bump-pydantic

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

Error for line with type comment #95

Closed tonal closed 1 year ago

tonal commented 1 year ago

For example:

$bump-pydantic modules CompileError: modules/utils.py:152: error: invalid syntax [syntax]

modules/utils.py:152

    if password := conf.password: # type: SecretStr 
        pwd_kwds.update(password=password.get_secret_value())

If I drop comment - error done

Kludex commented 1 year ago

Whats the full traceback?

tonal commented 1 year ago
$ bump-pydantic modules
[10:57:01] INFO     Start bump-pydantic.                                                                                     main.py:56
           INFO     Found 16 files to process.                                                                               main.py:62
           INFO     Running mypy to get type information. This may take a while...                                           main.py:68
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /home/tonal/.pyenv/versions/3.11.4/envs/epool-delivery_updater/lib/python3.11/site-packages/bump │
│ _pydantic/main.py:69 in main                                                                     │
│                                                                                                  │
│    66 │   metadata_manager.resolve_cache()                                                       │
│    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 = [                                                                         │ │
│ │                    │   'modules/model_sql.py',                                               │ │
│ │                    │   'modules/models.py',                                                  │ │
│ │                    │   'modules/utils.py',                                                   │ │
│ │                    │   'modules/model_skif.py',                                              │ │
│ │                    │   'modules/model_epool.py',                                             │ │
│ │                    │   'modules/model_pkp.py',                                               │ │
│ │                    │   'modules/pek.py',                                                     │ │
│ │                    │   'modules/yandex.py',                                                  │ │
│ │                    │   'modules/lpost.py',                                                   │ │
│ │                    │   'modules/kit.py',                                                     │ │
│ │                    │   ... +6                                                                │ │
│ │                    ]                                                                         │ │
│ │        files_str = [                                                                         │ │
│ │                    │   PosixPath('modules/model_sql.py'),                                    │ │
│ │                    │   PosixPath('modules/models.py'),                                       │ │
│ │                    │   PosixPath('modules/utils.py'),                                        │ │
│ │                    │   PosixPath('modules/model_skif.py'),                                   │ │
│ │                    │   PosixPath('modules/model_epool.py'),                                  │ │
│ │                    │   PosixPath('modules/model_pkp.py'),                                    │ │
│ │                    │   PosixPath('modules/pek.py'),                                          │ │
│ │                    │   PosixPath('modules/yandex.py'),                                       │ │
│ │                    │   PosixPath('modules/lpost.py'),                                        │ │
│ │                    │   PosixPath('modules/kit.py'),                                          │ │
│ │                    │   ... +6                                                                │ │
│ │                    ]                                                                         │ │
│ │         log_file = PosixPath('log.txt')                                                      │ │
│ │ metadata_manager = <libcst.metadata.full_repo_manager.FullRepoManager object at              │ │
│ │                    0x7f22c2710050>                                                           │ │
│ │          package = PosixPath('modules')                                                      │ │
│ │        providers = {                                                                         │ │
│ │                    │   <class 'libcst.metadata.scope_provider.ScopeProvider'>,               │ │
│ │                    │   <class 'libcst.metadata.name_provider.FullyQualifiedNameProvider'>    │ │
│ │                    }                                                                         │ │
│ │          version = None                                                                      │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ /home/tonal/.pyenv/versions/3.11.4/envs/epool-delivery_updater/lib/python3.11/site-packages/bump │
│ _pydantic/codemods/mypy_visitor.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 = [                                                                                │ │
│ │             │   'modules/model_sql.py',                                                      │ │
│ │             │   'modules/models.py',                                                         │ │
│ │             │   'modules/utils.py',                                                          │ │
│ │             │   'modules/model_skif.py',                                                     │ │
│ │             │   'modules/model_epool.py',                                                    │ │
│ │             │   'modules/model_pkp.py',                                                      │ │
│ │             │   'modules/pek.py',                                                            │ │
│ │             │   'modules/yandex.py',                                                         │ │
│ │             │   'modules/lpost.py',                                                          │ │
│ │             │   'modules/kit.py',                                                            │ │
│ │             │   ... +6                                                                       │ │
│ │             ]                                                                                │ │
│ │     files = [                                                                                │ │
│ │             │   BuildSource(path='modules/model_sql.py', module='model_sql', has_text=False, │ │
│ │             base_dir='/home/tonal/lang/projects/promsoft/epool/delivery_updater/modules',    │ │
│ │             followed=False),                                                                 │ │
│ │             │   BuildSource(path='modules/models.py', module='models', has_text=False,       │ │
│ │             base_dir='/home/tonal/lang/projects/promsoft/epool/delivery_updater/modules',    │ │
│ │             followed=False),                                                                 │ │
│ │             │   BuildSource(path='modules/utils.py', module='utils', has_text=False,         │ │
│ │             base_dir='/home/tonal/lang/projects/promsoft/epool/delivery_updater/modules',    │ │
│ │             followed=False),                                                                 │ │
│ │             │   BuildSource(path='modules/model_skif.py', module='model_skif',               │ │
│ │             has_text=False,                                                                  │ │
│ │             base_dir='/home/tonal/lang/projects/promsoft/epool/delivery_updater/modules',    │ │
│ │             followed=False),                                                                 │ │
│ │             │   BuildSource(path='modules/model_epool.py', module='model_epool',             │ │
│ │             has_text=False,                                                                  │ │
│ │             base_dir='/home/tonal/lang/projects/promsoft/epool/delivery_updater/modules',    │ │
│ │             followed=False),                                                                 │ │
│ │             │   BuildSource(path='modules/model_pkp.py', module='model_pkp', has_text=False, │ │
│ │             base_dir='/home/tonal/lang/projects/promsoft/epool/delivery_updater/modules',    │ │
│ │             followed=False),                                                                 │ │
│ │             │   BuildSource(path='modules/pek.py', module='pek', has_text=False,             │ │
│ │             base_dir='/home/tonal/lang/projects/promsoft/epool/delivery_updater/modules',    │ │
│ │             followed=False),                                                                 │ │
│ │             │   BuildSource(path='modules/yandex.py', module='yandex', has_text=False,       │ │
│ │             base_dir='/home/tonal/lang/projects/promsoft/epool/delivery_updater/modules',    │ │
│ │             followed=False),                                                                 │ │
│ │             │   BuildSource(path='modules/lpost.py', module='lpost', has_text=False,         │ │
│ │             base_dir='/home/tonal/lang/projects/promsoft/epool/delivery_updater/modules',    │ │
│ │             followed=False),                                                                 │ │
│ │             │   BuildSource(path='modules/kit.py', module='kit', has_text=False,             │ │
│ │             base_dir='/home/tonal/lang/projects/promsoft/epool/delivery_updater/modules',    │ │
│ │             followed=False),                                                                 │ │
│ │             │   ... +6                                                                       │ │
│ │             ]                                                                                │ │
│ │       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': 'linux',                                                            │ │
│ │              'plugins': [],                                                                  │ │
│ │              'preserve_asts': False,                                                         │ │
│ │              'pretty': False,                                                                │ │
│ │              'python_executable':                                                            │ │
│ │             '/home/tonal/.pyenv/versions/3.11.4/envs/epool-delivery_updater/bin/python3.11', │ │
│ │              '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:3060                                                                               │
│                                                                                                  │
│ in __init__:2000                                                                                 │
│                                                                                                  │
│ in parse_file:2176                                                                               │
│                                                                                                  │
│ in parse_file:852                                                                                │
│                                                                                                  │
│ in raise_error:775                                                                               │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
CompileError: modules/utils.py:152: error: invalid syntax  [syntax]
Kludex commented 1 year ago

Ok. I'm going to remove mypy. Too many issues with it. I'll use the previous approach. Thanks :)

Kludex commented 1 year ago

That's weird... The PR didn't close this issue automatically...