thailint 0.9.0__py3-none-any.whl → 0.11.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. src/__init__.py +1 -0
  2. src/cli/__init__.py +27 -0
  3. src/cli/__main__.py +22 -0
  4. src/cli/config.py +478 -0
  5. src/cli/linters/__init__.py +58 -0
  6. src/cli/linters/code_patterns.py +372 -0
  7. src/cli/linters/code_smells.py +343 -0
  8. src/cli/linters/documentation.py +155 -0
  9. src/cli/linters/shared.py +89 -0
  10. src/cli/linters/structure.py +313 -0
  11. src/cli/linters/structure_quality.py +316 -0
  12. src/cli/main.py +120 -0
  13. src/cli/utils.py +375 -0
  14. src/cli_main.py +34 -0
  15. src/config.py +2 -3
  16. src/core/rule_discovery.py +43 -10
  17. src/core/types.py +13 -0
  18. src/core/violation_utils.py +69 -0
  19. src/linter_config/ignore.py +32 -16
  20. src/linters/collection_pipeline/__init__.py +90 -0
  21. src/linters/collection_pipeline/config.py +63 -0
  22. src/linters/collection_pipeline/continue_analyzer.py +100 -0
  23. src/linters/collection_pipeline/detector.py +130 -0
  24. src/linters/collection_pipeline/linter.py +437 -0
  25. src/linters/collection_pipeline/suggestion_builder.py +63 -0
  26. src/linters/dry/block_filter.py +99 -9
  27. src/linters/dry/cache.py +94 -6
  28. src/linters/dry/config.py +47 -10
  29. src/linters/dry/constant.py +92 -0
  30. src/linters/dry/constant_matcher.py +214 -0
  31. src/linters/dry/constant_violation_builder.py +98 -0
  32. src/linters/dry/linter.py +89 -48
  33. src/linters/dry/python_analyzer.py +44 -431
  34. src/linters/dry/python_constant_extractor.py +101 -0
  35. src/linters/dry/single_statement_detector.py +415 -0
  36. src/linters/dry/token_hasher.py +5 -5
  37. src/linters/dry/typescript_analyzer.py +63 -382
  38. src/linters/dry/typescript_constant_extractor.py +134 -0
  39. src/linters/dry/typescript_statement_detector.py +255 -0
  40. src/linters/dry/typescript_value_extractor.py +66 -0
  41. src/linters/file_header/linter.py +9 -13
  42. src/linters/file_placement/linter.py +30 -10
  43. src/linters/file_placement/pattern_matcher.py +19 -5
  44. src/linters/magic_numbers/linter.py +8 -67
  45. src/linters/magic_numbers/typescript_ignore_checker.py +81 -0
  46. src/linters/nesting/linter.py +12 -9
  47. src/linters/print_statements/linter.py +7 -24
  48. src/linters/srp/class_analyzer.py +9 -9
  49. src/linters/srp/heuristics.py +6 -5
  50. src/linters/srp/linter.py +4 -5
  51. src/linters/stateless_class/linter.py +2 -2
  52. src/linters/stringly_typed/__init__.py +23 -0
  53. src/linters/stringly_typed/config.py +165 -0
  54. src/linters/stringly_typed/python/__init__.py +29 -0
  55. src/linters/stringly_typed/python/analyzer.py +198 -0
  56. src/linters/stringly_typed/python/condition_extractor.py +131 -0
  57. src/linters/stringly_typed/python/conditional_detector.py +176 -0
  58. src/linters/stringly_typed/python/constants.py +21 -0
  59. src/linters/stringly_typed/python/match_analyzer.py +88 -0
  60. src/linters/stringly_typed/python/validation_detector.py +186 -0
  61. src/linters/stringly_typed/python/variable_extractor.py +96 -0
  62. src/orchestrator/core.py +241 -12
  63. {thailint-0.9.0.dist-info → thailint-0.11.0.dist-info}/METADATA +116 -3
  64. {thailint-0.9.0.dist-info → thailint-0.11.0.dist-info}/RECORD +67 -29
  65. thailint-0.11.0.dist-info/entry_points.txt +4 -0
  66. src/cli.py +0 -2014
  67. thailint-0.9.0.dist-info/entry_points.txt +0 -4
  68. {thailint-0.9.0.dist-info → thailint-0.11.0.dist-info}/WHEEL +0 -0
  69. {thailint-0.9.0.dist-info → thailint-0.11.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,41 +1,68 @@
1
- src/__init__.py,sha256=f601zncODr2twrUHqTLS5wyOdZqZi9tMjAe2INhRKqU,2175
1
+ src/__init__.py,sha256=0IT3HnAnSBEfos4G_27cflJiaoWWfeSEfHxsUr53OsM,2192
2
2
  src/analyzers/__init__.py,sha256=fFloZtjkBGwYbAhKTxS3Qy3yDr2_3i3WSfKTw1mAioo,972
3
3
  src/analyzers/typescript_base.py,sha256=4I7fAcMOAY9vY1AXh52QpohgFmguBECwOkvBRP4zCS4,5054
4
4
  src/api.py,sha256=pJ5l3qxccKBEY-BkANwzTgLAl1ZFq7OP6hx6LSxbhDw,4664
5
- src/cli.py,sha256=ABjxAdnQeyFb9a-d1B0yIidewCxVpCY7n9fYEmgsSUM,63240
6
- src/config.py,sha256=2ebAjIpAhw4bHbOxViEA5nCjfBlDEIrMR59DBrzcYzM,12460
5
+ src/cli/__init__.py,sha256=R0cTBbMsGIAn4r1-YgKFvCMxrDbsmj9JCoPdsMSf9Jc,1193
6
+ src/cli/__main__.py,sha256=xIKI57yqB1NOw9eXnGXfU8rC2UwcAJYjDxlZbt9eP0w,671
7
+ src/cli/config.py,sha256=a_kMr3DRQ8t_HzVXmgemKnKMSS0tPAxTA33tQswpRkc,14328
8
+ src/cli/linters/__init__.py,sha256=zpPCtFyKIkq0t3wqfUsd5_VJepPyT3LvAg4JZ_ToEeA,2056
9
+ src/cli/linters/code_patterns.py,sha256=Cyu26_Y-dTBudSgLDcwH3-djjXCN83xqzgMkZV9oZ-U,12434
10
+ src/cli/linters/code_smells.py,sha256=6L8jcXFJeVunno0mZuF1H3npsfAX4xTSU9HHT1Vgfk4,11189
11
+ src/cli/linters/documentation.py,sha256=UaD2MMltgfSVlQAo8MCXepmQWGLiz-5Llg6uowrwvIA,5170
12
+ src/cli/linters/shared.py,sha256=tHOsLF_L-xwf1KE4kVR7oES4IMOj-1ADWRnDhW36QzM,3010
13
+ src/cli/linters/structure.py,sha256=xPhb-SqtPM9QMhB5un8pi74l9SYKN1LHQL9Eb0ZLVqI,10538
14
+ src/cli/linters/structure_quality.py,sha256=qjZn1zKAp_rnmg1vVwUJ-Ob057AoYV3uZtZqiW2qFsU,10585
15
+ src/cli/main.py,sha256=mRyRN_IQI2WyqDCxI8vuzdhbkCkVrK6INfJPjU8ayIU,3844
16
+ src/cli/utils.py,sha256=kaUopX9OYs6y3wqU4B9Xe7r8PYkSocLZZu6ois_CJyg,11828
17
+ src/cli_main.py,sha256=-3XVwLztHt9clehSxr0nrXh9mhAiZOt0gP73TgijPEI,1499
18
+ src/config.py,sha256=gQ2DoBSZra4Dw3zUVd-t0lyD_pOY4iufx7sL_sXGBGU,12482
7
19
  src/core/__init__.py,sha256=5FtsDvhMt4SNRx3pbcGURrxn135XRbeRrjSUxiXwkNc,381
8
20
  src/core/base.py,sha256=7bb_CAEohgEFXDgIK6Qc_zt6Cz4U9K6uhLhunbMX8f0,7966
9
21
  src/core/cli_utils.py,sha256=vKw0jF1rZv_N7gbzvV5TeO9rV5VPfd89fneKrglQ2Hs,6502
10
22
  src/core/config_parser.py,sha256=zAY4bDptNlVID0a4JDXN0YlUKXLM92cFqTAwhp_8uGc,4183
11
23
  src/core/linter_utils.py,sha256=4jmC2YfpPvGhS_XHlHXa5SBIJh9CQlNj5zuW_GpdPKc,5273
12
24
  src/core/registry.py,sha256=yRA8mQLiZwjmgxl1wSTgdj1cuo_QXuRdrXt3NpCBUgE,3285
13
- src/core/rule_discovery.py,sha256=MWsyylfQqUBIayyQfd1Vu5RhQzGQ6IqxjYn7KsagCdk,4439
14
- src/core/types.py,sha256=dIYLaCDNtCAzVaplx5S5yxywkLIuX0BN9No_l2zCfV0,2887
25
+ src/core/rule_discovery.py,sha256=GL6X-38qiqmPHpk96iOCrFOLjENIze-QamO0WwugZEg,5365
26
+ src/core/types.py,sha256=SElFzf_VSrAMsoiE0aU8ZYXuvKqdfwfM5umUHx4eT8w,3342
15
27
  src/core/violation_builder.py,sha256=le9YCMcJt0hFji41-cCplpowys-jT44kGe-59_Du1ZM,6592
28
+ src/core/violation_utils.py,sha256=hSTSfQaaB7038G2Au4vqBLYTnkoaSN3k70IxWacjbl8,1993
16
29
  src/formatters/__init__.py,sha256=yE1yIL8lplTMEjsmQm7F-kOMaYq7OjmbFuiwwK0D-gM,815
17
30
  src/formatters/sarif.py,sha256=gGOwb_v7j4mx4bpvV1NNDd-JyHH8i8XX89iQ6uRSvG4,7050
18
31
  src/linter_config/__init__.py,sha256=_I2VVlZlfKyT-tKukuUA5-aVcHLOe3m6C2cev43AiEc,298
19
- src/linter_config/ignore.py,sha256=S2Ub0CCOOC-wpU5Y_EodMprciw18fgWcnp4z_h1MYNk,19638
32
+ src/linter_config/ignore.py,sha256=4vX_WyRKsJeJtGc0b5O7FVkrHU9V-pVFkE3lv6-a61E,20550
20
33
  src/linter_config/loader.py,sha256=K6mKRkP2jgwar-pwBoJGWgwynLVjqdez-l3Nd6bUCMk,3363
21
34
  src/linters/__init__.py,sha256=-nnNsL8E5-2p9qlLKp_TaShHAjPH-NacOEU1sXmAR9k,77
35
+ src/linters/collection_pipeline/__init__.py,sha256=BcnbY3wgJB1XLfZ9J9qfUJQ1_yCo_THjGDTppxJEMZY,3231
36
+ src/linters/collection_pipeline/config.py,sha256=Z3V84X2rlj27x1eZfFBJwOMzoqFzOiwdjk-ze5sDop0,2240
37
+ src/linters/collection_pipeline/continue_analyzer.py,sha256=51DBvR92no01rlMOjukGhsLX8jtuLbrEU--fbehUW6A,2812
38
+ src/linters/collection_pipeline/detector.py,sha256=67M0LZwBHqZHNy5E6OS1CnBFVqis1LzkO0YP615BFr4,4291
39
+ src/linters/collection_pipeline/linter.py,sha256=ZWGXj1NpH2Qumf1UqybGrNcF3jyk3nihXl-RPPKzfHI,13939
40
+ src/linters/collection_pipeline/suggestion_builder.py,sha256=xwMWFCTm8UWvn_6XAJerH68XayJJGWiPFmpe-NztUlc,2103
22
41
  src/linters/dry/__init__.py,sha256=p58tN3z_VbulfTkRm1kLZJ43Bemt66T2sro1teirUY8,826
23
42
  src/linters/dry/base_token_analyzer.py,sha256=SgnsX4a4kUzOsA9hTkLkg4yB8I77ewAyiUp6cAybUrg,2684
24
- src/linters/dry/block_filter.py,sha256=9hTPWbtO432qMPdgwHz4ZB-sFyV0kFI6hewBOW1mrB4,8382
43
+ src/linters/dry/block_filter.py,sha256=7MRDLOV8GOav8UK2nqID1Wb885WcXBnOGY5ZG0VkSe0,11347
25
44
  src/linters/dry/block_grouper.py,sha256=NP66BlofaY7HVXcWwmK5lyiNXbaTlU1V3IbcZubIq_I,1937
26
- src/linters/dry/cache.py,sha256=dedkGU5SolTjmTTsmj-dwPEnxyhWZ2aBiHGkQy1JwXo,5881
45
+ src/linters/dry/cache.py,sha256=3XCgF0dHgNyaYzYzVJpNXrSEn38rNDGLXWGd0u1j_qQ,8748
27
46
  src/linters/dry/cache_query.py,sha256=qu_uHe360ZvKmFTBvfREjjPMGbJgLQsFTKPVIA2jQJ0,1949
28
- src/linters/dry/config.py,sha256=XaHX5SnbH8cEBHiNKMSuYQJwCbKL-Q9XgZVRcc9UBgQ,5439
47
+ src/linters/dry/config.py,sha256=TNUsxgLnlmuhTIEF2MQNYypo7R8EcCNP7VREKEpIyQc,7088
29
48
  src/linters/dry/config_loader.py,sha256=wikqnigOp6p1h9jaAATV_3bDXSiaIUFaf9xg1jQMDpo,1313
49
+ src/linters/dry/constant.py,sha256=n9cNwa-1GQPISGZ3dgGcpLv7tc-uy56ravHiFsIwoRk,3249
50
+ src/linters/dry/constant_matcher.py,sha256=W-EY6P79S8qkBVpPEReDOBA9PSrIgtc0bYMrekqrY88,7972
51
+ src/linters/dry/constant_violation_builder.py,sha256=F88aLlgscWmyUeIr_EgF4CeheXEc6Iv2pBG2eKJTmts,4048
30
52
  src/linters/dry/deduplicator.py,sha256=a1TRvldxCszf5QByo1ihXF3W98dpGuyaRT74jPfQftM,3988
31
53
  src/linters/dry/duplicate_storage.py,sha256=9pIALnwAuz5BJUYNXrPbObbP932CE9x0vgUkICryT_s,1970
32
54
  src/linters/dry/file_analyzer.py,sha256=ufSQ85ddsGTqGnBHZNTdV_5DGfTpUmJOB58sIdJNV0I,2928
33
55
  src/linters/dry/inline_ignore.py,sha256=ASfA-fp_1aPpkakN2e0T6qdTh8S7Jqj89ovxXJLmFlc,4439
34
- src/linters/dry/linter.py,sha256=XMLwCgGrFX0l0dVUJs1jpsXOfgxeKKDbxOtN5h5Emhk,5835
35
- src/linters/dry/python_analyzer.py,sha256=jmMUw2YhwkRrAJJDHaHKffGUjCiz5OzWwv_ZJrzNXqw,27367
56
+ src/linters/dry/linter.py,sha256=vWYS-UMKGG_NNGaqWgwcfm9LKpTRP66Nxfpo6WZi9Rc,8524
57
+ src/linters/dry/python_analyzer.py,sha256=ryie7hbmxdQV4pyckNm1PzXVXY-DqHlQfg7BauZzd48,10628
58
+ src/linters/dry/python_constant_extractor.py,sha256=_Mp1MniSXD2sWLTzZU8lAIKqCBrpkvPLWoDeQ5VbrZY,3877
59
+ src/linters/dry/single_statement_detector.py,sha256=_HKc3gQ1NKMY0NWugKuyqjBoU4v2HHSqlRMcUO187eY,17926
36
60
  src/linters/dry/storage_initializer.py,sha256=ykMALFs4uMUrN0_skEwySDl_t5Dm_LGHllF0OxDhiUI,1366
37
- src/linters/dry/token_hasher.py,sha256=VT7BkzYMIWadvGrnL8bFlH3lzRfgdZSj5lDU364tRNA,5589
38
- src/linters/dry/typescript_analyzer.py,sha256=ShNoB2KfPe010wKEZoFxn-ZKh0MnRUwgADDQKQtfedI,21627
61
+ src/linters/dry/token_hasher.py,sha256=letAGxJi909iLeLX4aY7B5zOc5skGv2BClQzhEgM7l8,5657
62
+ src/linters/dry/typescript_analyzer.py,sha256=OrEqmdusYedbv8p6Qh1-zzDZbEfcPU5R9eCDQ3OHWgs,10651
63
+ src/linters/dry/typescript_constant_extractor.py,sha256=zpXse2G9r3D4xtPdfQesH9QxVroaYqjN_YDOfI0zPZU,4942
64
+ src/linters/dry/typescript_statement_detector.py,sha256=bASmWjBCb578sJk7j-jwVd3C5j8KP5YP_5NM2Hz13_0,10763
65
+ src/linters/dry/typescript_value_extractor.py,sha256=SUFqXEj6fug6KBYdfVHli_LNb4uWuA3sDX8kRA_LxxQ,2396
39
66
  src/linters/dry/violation_builder.py,sha256=WkCibSNytoqMHGC-3GrVff4PD7-SOnVzzZgkMeqmzco,2952
40
67
  src/linters/dry/violation_filter.py,sha256=RJVZZ3RWqJhIdkRQ8YcXXG9XGhiQmaiZ4_IzHWpbCG8,3265
41
68
  src/linters/dry/violation_generator.py,sha256=hbMs8Fo2hS8JCXicZcZni6NEkv4fJRsyrsjzrqN6qVw,6122
@@ -46,7 +73,7 @@ src/linters/file_header/bash_parser.py,sha256=y74YLSQ6FKXnkl9RCu31N3llDxeAH9wRgm
46
73
  src/linters/file_header/config.py,sha256=Ewrln4W4QDnInTgWr8WgSlQEjAuDyMbUuh9GHAa9a4c,4030
47
74
  src/linters/file_header/css_parser.py,sha256=ijpGMixg2ZqNWWdiZjSNtMXCOhm6XDfSY7OU68B9fS8,2332
48
75
  src/linters/file_header/field_validator.py,sha256=uASqHj7ID4JJZzgc6X3SmRRLWV35NnX2iZElCt3HW1o,2830
49
- src/linters/file_header/linter.py,sha256=rbfpHBCCn0cRKUyadc2luZSQay_gJfVC79JcqkwUMb4,12192
76
+ src/linters/file_header/linter.py,sha256=MV4bHiC_q-ZAxIninNZaVQIyT4H-8nym-YFC4soeyJs,12145
50
77
  src/linters/file_header/markdown_parser.py,sha256=dmrB8JCxKTHyw-qMU6S-UjKaFbqJ6ZQY1f23tND5_Jo,4964
51
78
  src/linters/file_header/python_parser.py,sha256=RTOeEt1b3tCvFWbZIt89awQA37CUOSBIGagEYnayn-M,1432
52
79
  src/linters/file_header/typescript_parser.py,sha256=R11Vkr6dUVaU8t90m8rrkMzODtBYk7u-TYFsMDRwzX8,2532
@@ -54,18 +81,19 @@ src/linters/file_header/violation_builder.py,sha256=HPYTmrcCmcO6Dx5dhmj85zZgEBM5
54
81
  src/linters/file_placement/__init__.py,sha256=vJ43GZujcbAk-K3DwfsQZ0J3yP_5G35CKssatLyntXk,862
55
82
  src/linters/file_placement/config_loader.py,sha256=Of5sTG2S-04efn3KOlXrSxpMcC1ipBpSvCjtJOMmWno,2640
56
83
  src/linters/file_placement/directory_matcher.py,sha256=1rxJtCEzqDYDQnscVX6pzk7gxCMD11pVIGaWcli-tHY,2742
57
- src/linters/file_placement/linter.py,sha256=A4mndpyIyxEzq64rLw2ILNA7APx_QmwzUfnhB0PyuCs,14190
84
+ src/linters/file_placement/linter.py,sha256=eymYjCuzu4ZkKMHK1N1TsdiGM6FlQES7uecZeBS81tM,14781
58
85
  src/linters/file_placement/path_resolver.py,sha256=S6g7xOYsoSc0O_RDJh8j4Z2klcwzp16rSUfEAErGOTI,1972
59
- src/linters/file_placement/pattern_matcher.py,sha256=0TWozhKGqQk66oJpP66ewlmOI3bI8GpDf37PyImZcUA,2030
86
+ src/linters/file_placement/pattern_matcher.py,sha256=z0SlhRKf2SqWQmL9x2QyjLqWSSdvXHdJOFqLjMnC9Xg,2520
60
87
  src/linters/file_placement/pattern_validator.py,sha256=KW2Wv4owIGiLxxC3hhyVsKkIuzC95pGv3wQD3m4_eYo,3853
61
88
  src/linters/file_placement/rule_checker.py,sha256=JONXcaYxZ8CM_7Zg6Th01p5cve1rJ8YkReAUJ44nfUg,7795
62
89
  src/linters/file_placement/violation_factory.py,sha256=NkQmBcgpa3g3W2ZdFZNQ5djLVP4x9OKs65d7F1rCKvM,6040
63
90
  src/linters/magic_numbers/__init__.py,sha256=17dkCUf0uiYLvpOZF01VDojj92NzxXZMtRhrSBUzsdc,1689
64
91
  src/linters/magic_numbers/config.py,sha256=3zV6ZNezouBWUYy4kMw5PUlPNvIWXVwOxTz1moZfRoI,3270
65
92
  src/linters/magic_numbers/context_analyzer.py,sha256=bWv5EK3CDO0_iSd-SvDgOJeX4PGKSxG6F_cLjZnt9S8,8582
66
- src/linters/magic_numbers/linter.py,sha256=maj4NgrDapv0RurKvaVgOI1BUujixZv4E7UeYy4eGT4,18394
93
+ src/linters/magic_numbers/linter.py,sha256=pRprO22bXb9wzjCaKa5TbckvzlnuZNyXKyw0zEvXT5Y,16525
67
94
  src/linters/magic_numbers/python_analyzer.py,sha256=0u1cFaaFCqOW5yeW-YbmPoZuVIeN_KtmkFyyxup6aR0,2803
68
95
  src/linters/magic_numbers/typescript_analyzer.py,sha256=2Ra9SsXTLkZP5t-s-38ErIk4kY6EqzPfLz0I61EyIGg,7773
96
+ src/linters/magic_numbers/typescript_ignore_checker.py,sha256=9JWqtXd8KU_GCc_66KSZT2X7uQhNGpxE2ikOyjcLyao,2847
69
97
  src/linters/magic_numbers/violation_builder.py,sha256=SqIQv3N9lpP2GRC1TC5InrvaEdrAq24V7Ec2Xj5olb0,3308
70
98
  src/linters/method_property/__init__.py,sha256=t0C6zD5WLm-McgmvVajQJg4HQfOi7_4YzNLhKNA484w,1415
71
99
  src/linters/method_property/config.py,sha256=lcKfeCIeWBcD91j0AchccWhGvc68epiQeKbgL6DCEA8,5359
@@ -74,22 +102,22 @@ src/linters/method_property/python_analyzer.py,sha256=QQTpKrdCJzFqu7gdQfAqno9_wb
74
102
  src/linters/method_property/violation_builder.py,sha256=GKZC8TS9vZq_lKK5ffOVUHUlMpZN3_-Mv3inRE-v2pE,4141
75
103
  src/linters/nesting/__init__.py,sha256=tszmyCEQMpEwB5H84WcAUfRYDQl7jpsn04es5DtAHsM,3200
76
104
  src/linters/nesting/config.py,sha256=PfPA2wJn3i6HHXeM0qu6Qx-v1KJdRwlRkFOdpf7NhS8,2405
77
- src/linters/nesting/linter.py,sha256=-klbXIbg145beICop81CNQ5J1OInQaeycDT8u3Ff2Ww,6236
105
+ src/linters/nesting/linter.py,sha256=3uO9lbLQbTvjLaKRjYWi9GaNlmQmHcbwD3YmXH8DfXE,6431
78
106
  src/linters/nesting/python_analyzer.py,sha256=__fs_NE9xA4NM1MDOHBGdrI0zICkTcgbVZtfT03cxF0,3230
79
107
  src/linters/nesting/typescript_analyzer.py,sha256=wO6p6QNnyW1uaieTCZjaqR56C68AjifAv23tYaSuR2c,3860
80
108
  src/linters/nesting/typescript_function_extractor.py,sha256=5CRyP04jWP5b6NkkOGoScee6sJFZ1V-mkA0hxLkTUt8,4710
81
109
  src/linters/nesting/violation_builder.py,sha256=sMHS45F2lrA1WYrG3Uug8HfeRPljnXcyJPHSe2F76Bs,4828
82
110
  src/linters/print_statements/__init__.py,sha256=yhvdTFSqBB4UDreeadTHKFzhayxeT6JkF3yxUHMgn1g,1893
83
111
  src/linters/print_statements/config.py,sha256=rth3XmzqZGzXkRXDIVZswdtNOXIe1vIRaF46tVLKnyQ,3041
84
- src/linters/print_statements/linter.py,sha256=J23gtU6FQ2uH2Sj38PPRiV4k2HU0uto2Bqf2D28pKrI,14630
112
+ src/linters/print_statements/linter.py,sha256=HX7YjztFHXKeVasYf954taxivSrZtAoRuPU1dmXKTec,14122
85
113
  src/linters/print_statements/python_analyzer.py,sha256=SyCkh8HkYAfcSM7LCwDE1ahhxwPgrlnSVLs1iRemyaw,5461
86
114
  src/linters/print_statements/typescript_analyzer.py,sha256=4nCC2nNoQF8xtTou2XDA6jlWEuzNRsxdro50ZoVZZzE,5377
87
115
  src/linters/print_statements/violation_builder.py,sha256=Vs5m3AnWjrQqQHf6JJDaPP5B1V3YNl5pepG_oiTJnx4,3333
88
116
  src/linters/srp/__init__.py,sha256=GbhaSB2_AYY-mWgG_ThbyAcDXoVZuB5eLzguoShf38w,3367
89
- src/linters/srp/class_analyzer.py,sha256=vSBKLDBc734Iy-p9Ux7ygnNYaUtkT3ivUUJS54tyKs0,3912
117
+ src/linters/srp/class_analyzer.py,sha256=tZ6xAT0Y7LkzeVlGHckQRhFdnssuetUYxTQdUHwBoCo,4045
90
118
  src/linters/srp/config.py,sha256=hTxrM21HIOmg0sM6eJ_h3hRnuxqRZEgs13Ie97-PDr4,3397
91
- src/linters/srp/heuristics.py,sha256=Fwrro3I0qOV4o0epM0ZkqgQUU9bK1b2igxoxWjReljU,3185
92
- src/linters/srp/linter.py,sha256=aXeMKmMf5PC5P2E-mstys2xndkrvpZF6tAq9xRdzOYo,7624
119
+ src/linters/srp/heuristics.py,sha256=M4vCFW43cmPGkPZVpAuBNsCq4kXH_nvzOLCnpU7a71Y,3242
120
+ src/linters/srp/linter.py,sha256=xp8myHJo5mVLpKmiuZjl6zgAL6WeikkoMDQbI_wZsuI,7619
93
121
  src/linters/srp/metrics_evaluator.py,sha256=Prk_dPacas_dX7spAzV0g734srmzT5u0t5d4mTG9g2o,1606
94
122
  src/linters/srp/python_analyzer.py,sha256=PH27l38BFPNmj22Z10QDBioLDCZ4xpJFzBfTh_4XMZ4,3585
95
123
  src/linters/srp/typescript_analyzer.py,sha256=Wi0P_G1v5AnZYtMN3sNm1iHva84-8Kep2LZ5RmAS4c4,2885
@@ -97,16 +125,26 @@ src/linters/srp/typescript_metrics_calculator.py,sha256=0RyHTWzBJbLUT3BqFuNc1wJV
97
125
  src/linters/srp/violation_builder.py,sha256=AMZIFNEAt-7sYVtV7x4VIuvTilxFMnU_IOH1j4wZZ_c,4072
98
126
  src/linters/stateless_class/__init__.py,sha256=8ePpinmCD27PCz7ukwUWcNwo-ZgyvhOquns-U51MyiQ,1063
99
127
  src/linters/stateless_class/config.py,sha256=u8Jt_xygIkuxZx2o0Uw_XFatOh11QhC9aN8lB_vfnLk,1993
100
- src/linters/stateless_class/linter.py,sha256=ECMDxL0ZIZDKFJ2APnpy6yzNs-gkklpmBdaSBEZQfHE,11129
128
+ src/linters/stateless_class/linter.py,sha256=mYGF7Qn-7RG8qCwbLMTFXcfbU5jDbi8qEZpx6TEk-Bs,11121
101
129
  src/linters/stateless_class/python_analyzer.py,sha256=Nv8mTM7HKjqDA8Kyu-bw3GOo9eq9XA4zD3GYsjQmV9E,7789
130
+ src/linters/stringly_typed/__init__.py,sha256=S8-kArX2R1xhU8KwdI4rosXtXWvv3Tvpuw79NRQKYec,841
131
+ src/linters/stringly_typed/config.py,sha256=HfiO4RLPQ2p2ZchPFvtm6NKVxnltUHjTWZGUv4Sk15w,6946
132
+ src/linters/stringly_typed/python/__init__.py,sha256=0IQIIH5P2_TSULZWfedxueHczAySHGkm5x2swoqPS0w,1186
133
+ src/linters/stringly_typed/python/analyzer.py,sha256=Nihb2Qeer34zJyMHzs-CQki1yoDK_pwfk-Zdvvw3yQg,6974
134
+ src/linters/stringly_typed/python/condition_extractor.py,sha256=R1-7TXu2_pBMSGf8RD8ygWh-BmKkXUlLA6ZbCZysbsA,4114
135
+ src/linters/stringly_typed/python/conditional_detector.py,sha256=umXVh-gWAybnnrqS2AHlcDy-Fdd3ty5KhJpbWTU_P_Q,5927
136
+ src/linters/stringly_typed/python/constants.py,sha256=IF3Y2W96hihHlr5HMenq5Q93uOo7KHzNazVVvhq3E58,671
137
+ src/linters/stringly_typed/python/match_analyzer.py,sha256=o7_XCIEggsS9NBPQ3aNBvu37cpQAEvWyXjfqNMMj2k8,2536
138
+ src/linters/stringly_typed/python/validation_detector.py,sha256=VKm3V5t2JhkyVJHF8C8iX7fcsk_5o5zGeZpSEnMJU8I,6190
139
+ src/linters/stringly_typed/python/variable_extractor.py,sha256=yYJQ5jTSMz94SD_0IMfCHMWcw1F57GmRuh9h51oiAEs,2769
102
140
  src/orchestrator/__init__.py,sha256=XXLDJq2oaB-TpP2Y97GRnde9EkITGuFCmuLrDfxI9nY,245
103
- src/orchestrator/core.py,sha256=z0YcwsK18uhlztIPi54ux3mOm8fHMREYJoudsJPhC0Q,8857
141
+ src/orchestrator/core.py,sha256=exdSuPm9ly7xy3QUB9vjAlk2LlSMhkTHNifLZ-fgsS8,17369
104
142
  src/orchestrator/language_detector.py,sha256=rHyVMApit80NTTNyDH1ObD1usKD8LjGmH3DwqNAWYGc,2736
105
143
  src/templates/thailint_config_template.yaml,sha256=vxyhRRi25_xOnHDRx0jzz69dgPqKU2IU5-YFGUoX5lM,4953
106
144
  src/utils/__init__.py,sha256=NiBtKeQ09Y3kuUzeN4O1JNfUIYPQDS2AP1l5ODq-Dec,125
107
145
  src/utils/project_root.py,sha256=b3YTEGTa9RPcOeHn1IByMMWyRiUabfVlpnlektL0A0o,6156
108
- thailint-0.9.0.dist-info/METADATA,sha256=zcAW2ZVfxz5MPGZlcs3EasPdflQZrdhb3Ev7R5xZkXU,45453
109
- thailint-0.9.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
110
- thailint-0.9.0.dist-info/entry_points.txt,sha256=l7DQJgU18sVLDpSaXOXY3lLhnQHQIRrSJZTQjG1cEAk,62
111
- thailint-0.9.0.dist-info/licenses/LICENSE,sha256=kxh1J0Sb62XvhNJ6MZsVNe8PqNVJ7LHRn_EWa-T3djw,1070
112
- thailint-0.9.0.dist-info/RECORD,,
146
+ thailint-0.11.0.dist-info/METADATA,sha256=k3OywNMPxV8CW6UgLdPf6YLUUtxHd6vVeQM_ve51cZQ,48517
147
+ thailint-0.11.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
148
+ thailint-0.11.0.dist-info/entry_points.txt,sha256=DNoGUlxpaMFqxQDgHp1yeGqohOjdFR-kH19uHYi3OUY,72
149
+ thailint-0.11.0.dist-info/licenses/LICENSE,sha256=kxh1J0Sb62XvhNJ6MZsVNe8PqNVJ7LHRn_EWa-T3djw,1070
150
+ thailint-0.11.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ [console_scripts]
2
+ thai-lint=src.cli_main:cli
3
+ thailint=src.cli_main:cli
4
+