python-constricter 0.2.9__py3-none-any.whl → 0.3.1__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.
- constricter/__init__.py +1 -1
- constricter/fix/overloads.py +3 -2
- constricter/fix/signatures.py +21 -4
- constricter/fix/stdlib.py +4 -20
- constricter/fix/tables/source.json +19 -1
- {python_constricter-0.2.9.dist-info → python_constricter-0.3.1.dist-info}/METADATA +8 -9
- {python_constricter-0.2.9.dist-info → python_constricter-0.3.1.dist-info}/RECORD +88 -88
- {python_constricter-0.2.9.dist-info → python_constricter-0.3.1.dist-info}/WHEEL +1 -1
- python_constricter-0.3.1.dist-info/entry_points.txt +5 -0
- python_constricter-0.2.9.dist-info/entry_points.txt +0 -6
- {python_constricter-0.2.9.dist-info → python_constricter-0.3.1.dist-info}/licenses/LICENSE.md +0 -0
constricter/__init__.py
CHANGED
constricter/fix/overloads.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"""Standard-library calls whose arguments decide their type: the signatures a call may match.
|
|
3
3
|
|
|
4
4
|
`tables/overloads.json` holds each such function's signatures, in order, as each platform and Python
|
|
5
|
-
version reads them (see `
|
|
5
|
+
version reads them (see `stdlib_tables/overloads.py`): every parameter's kind, whether it has a
|
|
6
6
|
default, and which argument types (`SCALARS`) it certainly takes or refuses; and the return, as a
|
|
7
7
|
template naming classes by their dotted paths and type variables by their names.
|
|
8
8
|
|
|
@@ -31,6 +31,7 @@ from constricter.fix.signatures import (
|
|
|
31
31
|
Constant,
|
|
32
32
|
Parameter,
|
|
33
33
|
ReadSignature,
|
|
34
|
+
Variant,
|
|
34
35
|
)
|
|
35
36
|
from constricter.rules.walked import walk
|
|
36
37
|
|
|
@@ -308,7 +309,7 @@ def _signatures(name: str) -> tuple[tuple[ReadSignature, ...], ...]:
|
|
|
308
309
|
Each variant's signatures.
|
|
309
310
|
|
|
310
311
|
"""
|
|
311
|
-
variants: list[
|
|
312
|
+
variants: list[Variant] = stdlib.OVERLOADS.get(name) or stdlib.method_signatures()[name]
|
|
312
313
|
return tuple(
|
|
313
314
|
tuple(
|
|
314
315
|
ReadSignature(
|
constricter/fix/signatures.py
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
|
2
2
|
"""The signatures `--fix` matches a call against: the standard library's tables', and installed packages'.
|
|
3
3
|
|
|
4
|
-
What each parameter takes (`Accepts`) and
|
|
5
|
-
|
|
6
|
-
and `constricter.fix.stubbed`, which reads an
|
|
4
|
+
What each parameter takes (`Accepts`), and a signature as the tables hold it (`Signature`) and as
|
|
5
|
+
it's matched (`ReadSignature`); see `constricter.fix.overloads`, which matches them,
|
|
6
|
+
`constricter.fix.stdlib`, whose tables hold them, and `constricter.fix.stubbed`, which reads an
|
|
7
|
+
installed package's.
|
|
7
8
|
"""
|
|
8
9
|
|
|
9
|
-
from typing import Final, NamedTuple, Required, TypeAlias, TypedDict
|
|
10
|
+
from typing import Final, NamedTuple, NotRequired, Required, TypeAlias, TypedDict
|
|
10
11
|
|
|
11
12
|
# `Accepts`' keys for an installed package's parameter (see `constricter.fix.stubbed`): a class passed
|
|
12
13
|
# as the argument, and a builtin container.
|
|
@@ -58,6 +59,22 @@ class Accepts(TypedDict, total=False):
|
|
|
58
59
|
Parameter: TypeAlias = tuple[str, str, bool, Accepts | None]
|
|
59
60
|
|
|
60
61
|
|
|
62
|
+
class Signature(TypedDict):
|
|
63
|
+
"""One signature of a function whose arguments decide its type: its parameters, and its return.
|
|
64
|
+
|
|
65
|
+
The return is a template (see `constricter.fix.overloads`), or `None` if `--fix` can't write it.
|
|
66
|
+
`self`: for a generic class's method declaring its instance's type (`self: Pattern[str]`), the
|
|
67
|
+
type arguments that instance must have.
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
params: list[Parameter | str]
|
|
71
|
+
returns: str | None
|
|
72
|
+
self: NotRequired[list[str]]
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
Variant: TypeAlias = list[Signature] # one configuration's signatures, in order
|
|
76
|
+
|
|
77
|
+
|
|
61
78
|
class ReadSignature(NamedTuple):
|
|
62
79
|
"""One signature, read: its parameters in full, its return template, and its `self`'s type arguments."""
|
|
63
80
|
|
constricter/fix/stdlib.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
|
2
2
|
"""Standard-library functions and classes whose types `--fix` knows, and how a module names them.
|
|
3
3
|
|
|
4
|
-
The tables are generated from typeshed's stubs into `tables
|
|
5
|
-
`
|
|
4
|
+
The tables are generated from typeshed's stubs into `tables/` when the package is built, one JSON
|
|
5
|
+
file each (see `stdlib_tables/generate.py`): `RETURNS` holds functions returning the same builtin type
|
|
6
6
|
whatever their arguments; `OVERLOADS` those whose arguments decide it (`str` in, `str` out;
|
|
7
7
|
`bytes` in, `bytes` out), so they're typed only when those are known; `CLASSES` holds
|
|
8
8
|
non-generic classes, and functions returning one; `library_member` types those classes' methods
|
|
@@ -18,29 +18,13 @@ from collections.abc import Iterable, Mapping
|
|
|
18
18
|
from functools import cache, lru_cache
|
|
19
19
|
from pathlib import Path
|
|
20
20
|
from types import MappingProxyType
|
|
21
|
-
from typing import Final, NamedTuple,
|
|
21
|
+
from typing import Final, NamedTuple, TypeAlias, cast
|
|
22
22
|
|
|
23
23
|
from constricter.fix.known import ImportPlan, Inference, Known
|
|
24
|
-
from constricter.fix.signatures import
|
|
24
|
+
from constricter.fix.signatures import Variant
|
|
25
25
|
from constricter.rules.syntax import import_bindings
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
class Signature(TypedDict):
|
|
29
|
-
"""One signature of a function whose arguments decide its type: its parameters, and its return.
|
|
30
|
-
|
|
31
|
-
The return is a template (see `constricter.fix.overloads`), or `None` if `--fix` can't write it.
|
|
32
|
-
`self`: for a generic class's method declaring its instance's type (`self: Pattern[str]`), the
|
|
33
|
-
type arguments that instance must have.
|
|
34
|
-
"""
|
|
35
|
-
|
|
36
|
-
params: list[Parameter | str]
|
|
37
|
-
returns: str | None
|
|
38
|
-
self: NotRequired[list[str]]
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
Variant: TypeAlias = list[Signature] # one configuration's signatures, in order
|
|
42
|
-
|
|
43
|
-
|
|
44
28
|
def _table(name: str) -> object:
|
|
45
29
|
"""Read one of the tables (`tables/<name>.json`), plain JSON as generated.
|
|
46
30
|
|
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"basedpyright": "1.40.1",
|
|
3
|
+
"digest": "4ccf811c7737d0379e2ccbd9a361889ae27ea04c1cc4ee0450f31ea3e2ef44ae",
|
|
4
|
+
"tables": [
|
|
5
|
+
"aliases",
|
|
6
|
+
"attributes",
|
|
7
|
+
"bases",
|
|
8
|
+
"classes",
|
|
9
|
+
"generic_attributes",
|
|
10
|
+
"method_overloads",
|
|
11
|
+
"method_signatures",
|
|
12
|
+
"methods",
|
|
13
|
+
"overloads",
|
|
14
|
+
"returns",
|
|
15
|
+
"scalar_members",
|
|
16
|
+
"scalars",
|
|
17
|
+
"subscriptable",
|
|
18
|
+
"type_parameters",
|
|
19
|
+
"variables"
|
|
20
|
+
],
|
|
3
21
|
"typeshed": "289e5d3568961c8bcd33d01eef5b7ec5e1ad33ad"
|
|
4
22
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: python-constricter
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.1
|
|
4
|
+
Import-Name: constricter
|
|
4
5
|
Summary: Lint rules: every local variable is typed where it's first bound. A flake8 plugin, a pylint plugin and a standalone CLI.
|
|
5
6
|
Author: Ivy Duggan
|
|
6
|
-
Requires-Python: >=3.11
|
|
7
|
-
Description-Content-Type: text/markdown
|
|
8
7
|
License-Expression: MIT
|
|
8
|
+
License-File: LICENSE.md
|
|
9
9
|
Classifier: Framework :: Flake8
|
|
10
10
|
Classifier: Intended Audience :: Developers
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -18,12 +18,12 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
|
18
18
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
19
19
|
Classifier: Topic :: Software Development :: Quality Assurance
|
|
20
20
|
Classifier: Typing :: Typed
|
|
21
|
-
|
|
22
|
-
Requires-Dist: flake8>=7 ; extra == "flake8"
|
|
23
|
-
Requires-Dist: pylint>=3 ; extra == "pylint"
|
|
21
|
+
Requires-Python: >=3.11
|
|
24
22
|
Provides-Extra: flake8
|
|
23
|
+
Requires-Dist: flake8>=7; extra == 'flake8'
|
|
25
24
|
Provides-Extra: pylint
|
|
26
|
-
|
|
25
|
+
Requires-Dist: pylint>=3; extra == 'pylint'
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
27
|
|
|
28
28
|
# python-con`strict`er
|
|
29
29
|
|
|
@@ -264,7 +264,7 @@ pre-commit, after ruff's hooks (or `constricter-fix`, which runs `--fix` first):
|
|
|
264
264
|
|
|
265
265
|
```yaml
|
|
266
266
|
- repo: https://github.com/ivylikethevine/python-constricter
|
|
267
|
-
rev: v0.
|
|
267
|
+
rev: v0.3.1
|
|
268
268
|
hooks:
|
|
269
269
|
- id: constricter
|
|
270
270
|
```
|
|
@@ -378,4 +378,3 @@ I have used generative AI to write large parts of this code. All of the code her
|
|
|
378
378
|
_responsibility_ regardless: AI is a tool, not an owner of a project. I have personally understood,
|
|
379
379
|
reviewed, and approved all of the AI-generated code in this repository, and **mainline releases**
|
|
380
380
|
carry the same accountability to me as anything I write and publish myself.
|
|
381
|
-
|
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
constricter/__init__.py,sha256=
|
|
2
|
-
constricter/__main__.py,sha256=8W9UU0DNnyT_QJ6hfpKTSz6zXyU3b3xGXrdIOXdUaWw,204
|
|
3
|
-
constricter/jsonc.py,sha256=Hwj_1v-CYEaTdzjHKWpXZvKXwKDfcCEl-p97ysI9zww,1538
|
|
4
|
-
constricter/noqa.py,sha256=tdgfzQNGr7dqPbScyNXMwZnwMsGoglcUx_xv67Q7Dh4,1303
|
|
5
|
-
constricter/notebook.py,sha256=xvayO0bpm4Z3Y3hGJoGH5PEuTshS8gUrApuk4WwIyzA,4059
|
|
6
|
-
constricter/offences.py,sha256=XqGc1X5f-oolqWaMRWfr3uN5tJ3hyqVxPLFUfwbWc8Y,11124
|
|
7
|
-
constricter/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
-
constricter/cli/__init__.py,sha256=_QW0SXDH9Pvp-uYoCVrVrKWEElgmkpyZRN7fAIFGBxg,135
|
|
9
|
-
constricter/cli/baseline.py,sha256=PpOM-M3I8T3BECzNgYkLgSp16nLzX8J0S82pwTb1tW0,3401
|
|
10
|
-
constricter/cli/collecting.py,sha256=no5z4JsSP4Xxv4Kz_dqtzk6ipeoc-UTGYWN5admeLus,1548
|
|
11
|
-
constricter/cli/command.py,sha256=DCf2CQOhTqPWLEV6fmQoXEoLSoEVzwwpqx8u3bYbAs8,24646
|
|
12
|
-
constricter/cli/config.py,sha256=VtoarJg_Lf6YYR-_zybrml3GgNQzuKbikocquPEMy3c,7531
|
|
13
|
-
constricter/cli/explain.py,sha256=j7Utx1NW_1rp0GOp2ekSP3D10qGuoNghD7PC6SRVSrA,4756
|
|
14
|
-
constricter/cli/guard.py,sha256=EAZbV4ptkwtF9pVjJolAGBJLjHwTN8m1vQfHqj6B4eU,5155
|
|
15
|
-
constricter/cli/hints.py,sha256=nGri6Blbs5of1umZ4be2A4_fYQ401JmwyR2h_vL2sMg,30056
|
|
16
|
-
constricter/cli/options.py,sha256=_ficxe8qZ5oKu0UT6jOmQ6csq5X11cvRDnJhqHmMbgk,19904
|
|
17
|
-
constricter/cli/paths.py,sha256=uJYolDxFeO5TMbebQdb3846S8TTkOjYMy4sG10DJjb4,2902
|
|
18
|
-
constricter/cli/protocol.py,sha256=bTl7TahS19BPmYc5wwOkfVsymjc59ee8yQEC7tqbDC0,5471
|
|
19
|
-
constricter/cli/report.py,sha256=xiExXf0D7M9RSx0GX0iZblL0-dpfSiR1wdfkVxLlwoE,13068
|
|
20
|
-
constricter/cli/runs.py,sha256=tyQ4y43FRS7EAkpzYT8jgVtfgEFokt6yputD68ekdJ0,1426
|
|
21
|
-
constricter/cli/schedule.py,sha256=ZKVx7i6F49ax1ni_CkWicFPhgEQ3YurLqBO87X2k70o,9366
|
|
22
|
-
constricter/cli/workers.py,sha256=YsYi83F5WWG1Oq406KA_66PuR75477PMzkXiqslKrbo,5343
|
|
23
|
-
constricter/fix/__init__.py,sha256=SCTkCs1rX6IhG1ubkKfP3Kt8yzWi48Y3N43tfhX1hJY,110
|
|
24
|
-
constricter/fix/atoms.py,sha256=5nh_kJ_fZ_rraO0z15CQV9AdNj7HdMbK5emsSoAz4fA,14068
|
|
25
|
-
constricter/fix/callers.py,sha256=dQM7L5lficT4a0iY5_H7nB1kq9ILwSHSALheKRd8eyM,6475
|
|
26
|
-
constricter/fix/classnames.py,sha256=4hvh3s6Nqs83exDmSjN_PWEVgf7xDwpenXTyQ0xSCHU,3891
|
|
27
|
-
constricter/fix/declared.py,sha256=IdptHbGJwRb8nIP5JX8JvL0aTsgu9fd5Eae1zwn2Wpo,16356
|
|
28
|
-
constricter/fix/doubts.py,sha256=v6scCI-xT3TH_MjxX7VnIh47SvKIcXLpJhaYar1_0HA,14827
|
|
29
|
-
constricter/fix/fills.py,sha256=dZxjE1cnOwBwJJsIzPlk0X5EsPGQzWYpHeK3VtXxTUU,8320
|
|
30
|
-
constricter/fix/fixes.py,sha256=46IcX9AGFGZGBXfi5GSM9zQySBd7LD9TuDvcchent5k,9596
|
|
31
|
-
constricter/fix/guesses.py,sha256=nZzE8por7dqUxBgRa-h1eD485WGrZMT7Psws9VYbqdo,10577
|
|
32
|
-
constricter/fix/hinted.py,sha256=N4i2SHE7PVen4RV4FF_M4wePInmEyDVWho5_snD4nQ4,9465
|
|
33
|
-
constricter/fix/imports.py,sha256=ye7mCG177vBoYZ6zVwUaLilSZF65Fch-Zn6lkupJXFg,7361
|
|
34
|
-
constricter/fix/inference.py,sha256=alTv5XEFFVDj2VndMMBS60_Y9cQnwR-yGBwGAu3NDw8,30083
|
|
35
|
-
constricter/fix/installed.py,sha256=6X71GgOBTW1rDuVnNQeSMDImINm1stn7IMMaIZifDqE,11225
|
|
36
|
-
constricter/fix/known.py,sha256=JOIp85kzCcE22FWS-iV19LH12_LKzdFkLUI5U0UKo-M,15116
|
|
37
|
-
constricter/fix/library.py,sha256=RjjUEx_L-jJPjfDqGxGrem6lG3aCJjIwMQQKcfFN-Q4,6583
|
|
38
|
-
constricter/fix/members.py,sha256=BOMw2BPKOLt1RVM7bFwWjjBk4cDj8IIW5uQ6AJ3GBEo,7867
|
|
39
|
-
constricter/fix/modules.py,sha256=3ll1NWJHnsCdoUad8X42S6k2v2UMDRSMJBWvqMBH21Y,13090
|
|
40
|
-
constricter/fix/narrowed.py,sha256=08Xxu3mQwa079Xtn2mlbibOUYmF60vEFdrf4Os6DQtw,6392
|
|
41
|
-
constricter/fix/opened.py,sha256=dryz9xqHHA8JjaZ6clgURc0TuSdqSYOypK4eC1SgUOM,2838
|
|
42
|
-
constricter/fix/order.py,sha256=6m3u2B9qWNmlUb3XIgK78oUcq3TB_F8AoPzh8DfjNRE,5669
|
|
43
|
-
constricter/fix/overloads.py,sha256=
|
|
44
|
-
constricter/fix/project.py,sha256=Jiq7E2eWMu3XVEKFypjGuCaCuiSjILR8SXgkeFxbJRg,27266
|
|
45
|
-
constricter/fix/returned.py,sha256=iSM5FfXG6u9R7ilsC38x3GC-kAlJUGxbXMmE2IJ-dAw,26643
|
|
46
|
-
constricter/fix/returns.py,sha256=V78jfM4KSaL63ORAFVQc1ofMSfqmTZPJUC9xtuBz5ks,5825
|
|
47
|
-
constricter/fix/signatures.py,sha256=
|
|
48
|
-
constricter/fix/stdlib.py,sha256=
|
|
49
|
-
constricter/fix/stubbed.py,sha256=R8rtaKFzfHVoJ-oWMByDTLfQoqS57aUvo4W6fpAgf9o,41517
|
|
50
|
-
constricter/fix/targets.py,sha256=EOUVpweIztUeNfATynqP0cf6-GFdJ14gWIAyF3-1HLk,6807
|
|
51
|
-
constricter/fix/tables/aliases.json,sha256=B0z0jHMjMyTFqudH6jRjNrc4ha8El7ENUXko-q3EmZk,8642
|
|
52
|
-
constricter/fix/tables/attributes.json,sha256=QJhBJHIHcmgCAABd4ZgzgIo35qd1zpG3Yv3IzWgkKZE,74250
|
|
53
|
-
constricter/fix/tables/bases.json,sha256=SNQQIfW5NIJBOWkxUEk0VF0iOZWHCnBKkBHUjjjIDMM,62580
|
|
54
|
-
constricter/fix/tables/classes.json,sha256=v47giHv4wIa3mXEWAY_9NovTeSXjnXVm0QePd7OWyIg,105709
|
|
55
|
-
constricter/fix/tables/generic_attributes.json,sha256=WLjAfT1vTSQWV7YaL8Sftsse-s9FWm6B-_2-Dvpt-zc,5353
|
|
56
|
-
constricter/fix/tables/method_overloads.json,sha256=tGfTYFDfDtHKyR2nnR-Jd_drFo1i2rvOOwmI-17jm5s,48979
|
|
57
|
-
constricter/fix/tables/method_signatures.json,sha256=Y9uaZk0JYhbqzxDUNl_ME5SVX-pJEaL8a7LYw9jkeC8,138742
|
|
58
|
-
constricter/fix/tables/methods.json,sha256=zWChMqQDYvBN6xrEQSdAfqLb4UZAeucEB6kPrVG2HUs,99266
|
|
59
|
-
constricter/fix/tables/overloads.json,sha256=xsd6gVvBz9sVhgZZySX_rFGHZlfDXsxkY3wjtjN4abs,188102
|
|
60
|
-
constricter/fix/tables/returns.json,sha256=7IbqCy7QRMo0CD2PCLoLXoYpWMojqFa4zrL7voXWIp4,43372
|
|
61
|
-
constricter/fix/tables/scalar_members.json,sha256=51_Hembsusz-cObxoKchowTAe0q2bDpwUJOnnfztqgw,10230
|
|
62
|
-
constricter/fix/tables/scalars.json,sha256=4AxWKrLjTA2I4mZBTrvyRYnfys5wv84D3SP7lFj82HU,122271
|
|
63
|
-
constricter/fix/tables/source.json,sha256=
|
|
64
|
-
constricter/fix/tables/subscriptable.json,sha256=2FG6JriS2ejw7EQIx_G8AaCqU-UrIosk0M9xxdo5euY,2328
|
|
65
|
-
constricter/fix/tables/type_parameters.json,sha256=g0BiXqRgCYkFvmcQW4dgKCdlxbFULlnXaUThBr0lJ8g,6793
|
|
66
|
-
constricter/fix/tables/variables.json,sha256=D1LqxfFY0UtPQnoHg8gSwn30OV-Db8ROPyDg6ZQhkPo,94084
|
|
67
|
-
constricter/plugins/__init__.py,sha256=JEh8FoQRT-EqMDcG_JSN0HKVyekkorKHqSlnzACIXLk,123
|
|
68
|
-
constricter/plugins/flake8.py,sha256=kUVCYMtUhMf-uRypkc54jjtXeyewWyvAVUdnp0Zv070,4762
|
|
69
|
-
constricter/plugins/pylint.py,sha256=TL3vVklFd-g-AmZZMwigGDpvVDMmHJKIjiMyNHBGuUg,5961
|
|
70
|
-
constricter/rules/__init__.py,sha256=bw2jf6HJXfJUK8j-_m-Wyv7stsZS7n5kMQ8qkikQHQA,100
|
|
71
|
-
constricter/rules/annotations.py,sha256=_aQtOQ08hpd3DHzYRfX6bqwjbzHqvbN2E1mNxBkD-Kw,24110
|
|
72
|
-
constricter/rules/binding.py,sha256=CKosb_BP_-MOFUxFBGF1CiLvpr6SoF_8B2_vNDrukRs,10627
|
|
73
|
-
constricter/rules/calls.py,sha256=CK4eekj6t-Wq3qt2-OhalLUCtXM2XNXHywbUKlJZGJA,8504
|
|
74
|
-
constricter/rules/checker.py,sha256=9LdTZmkHZE0BOWj7Md6LNYLLtKSwpu5M7-5zu-iRZQw,28543
|
|
75
|
-
constricter/rules/flow.py,sha256=7dXMNVjg2w3pGUC23gWcHFewow-_R00WxAGJpBzCeF0,19187
|
|
76
|
-
constricter/rules/late.py,sha256=QXpDjy_apzZqmNtWZnsNeuSRgxramQdvuq3YHy4zCIc,11712
|
|
77
|
-
constricter/rules/narrowing.py,sha256=GA4dV_7gfXY2uPCUw5ly9gjI9nQvrYKYWOVwS9dMqWk,3950
|
|
78
|
-
constricter/rules/parsed.py,sha256=oxmtOygupwim0tjnXNhUNqfZJfvvOxLdmNGk4LI9uSQ,3376
|
|
79
|
-
constricter/rules/rebinding.py,sha256=BNkDDZp27_2RrGZuX3pQrRXDO5AeXStJ-Gy6JX0rGzo,5565
|
|
80
|
-
constricter/rules/redundant.py,sha256=2p0Lj4OQpdwOhDqIaIDQBEplPMLr9k6XzQBDLbJr8vs,5467
|
|
81
|
-
constricter/rules/scope.py,sha256=7qYrXvEQeAhkwJHFpchdhFGXBaaLVF05u2gMTEsDdF8,26500
|
|
82
|
-
constricter/rules/syntax.py,sha256=PQkmNjAT5m7eCvfrySmoWkShXgo03sWpmhjVoKVaCng,11551
|
|
83
|
-
constricter/rules/walked.py,sha256=GLym2Hn5xVUC_v_mdKd9Ikd12ladUZ2cWln1vmhozw0,4838
|
|
84
|
-
python_constricter-0.
|
|
85
|
-
python_constricter-0.
|
|
86
|
-
python_constricter-0.
|
|
87
|
-
python_constricter-0.
|
|
88
|
-
python_constricter-0.
|
|
1
|
+
constricter/__init__.py,sha256=EcrHncwW7III2GqDwkAhzPFKJRBL5ev_nM7L-9WDuSo,1097
|
|
2
|
+
constricter/__main__.py,sha256=8W9UU0DNnyT_QJ6hfpKTSz6zXyU3b3xGXrdIOXdUaWw,204
|
|
3
|
+
constricter/jsonc.py,sha256=Hwj_1v-CYEaTdzjHKWpXZvKXwKDfcCEl-p97ysI9zww,1538
|
|
4
|
+
constricter/noqa.py,sha256=tdgfzQNGr7dqPbScyNXMwZnwMsGoglcUx_xv67Q7Dh4,1303
|
|
5
|
+
constricter/notebook.py,sha256=xvayO0bpm4Z3Y3hGJoGH5PEuTshS8gUrApuk4WwIyzA,4059
|
|
6
|
+
constricter/offences.py,sha256=XqGc1X5f-oolqWaMRWfr3uN5tJ3hyqVxPLFUfwbWc8Y,11124
|
|
7
|
+
constricter/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
+
constricter/cli/__init__.py,sha256=_QW0SXDH9Pvp-uYoCVrVrKWEElgmkpyZRN7fAIFGBxg,135
|
|
9
|
+
constricter/cli/baseline.py,sha256=PpOM-M3I8T3BECzNgYkLgSp16nLzX8J0S82pwTb1tW0,3401
|
|
10
|
+
constricter/cli/collecting.py,sha256=no5z4JsSP4Xxv4Kz_dqtzk6ipeoc-UTGYWN5admeLus,1548
|
|
11
|
+
constricter/cli/command.py,sha256=DCf2CQOhTqPWLEV6fmQoXEoLSoEVzwwpqx8u3bYbAs8,24646
|
|
12
|
+
constricter/cli/config.py,sha256=VtoarJg_Lf6YYR-_zybrml3GgNQzuKbikocquPEMy3c,7531
|
|
13
|
+
constricter/cli/explain.py,sha256=j7Utx1NW_1rp0GOp2ekSP3D10qGuoNghD7PC6SRVSrA,4756
|
|
14
|
+
constricter/cli/guard.py,sha256=EAZbV4ptkwtF9pVjJolAGBJLjHwTN8m1vQfHqj6B4eU,5155
|
|
15
|
+
constricter/cli/hints.py,sha256=nGri6Blbs5of1umZ4be2A4_fYQ401JmwyR2h_vL2sMg,30056
|
|
16
|
+
constricter/cli/options.py,sha256=_ficxe8qZ5oKu0UT6jOmQ6csq5X11cvRDnJhqHmMbgk,19904
|
|
17
|
+
constricter/cli/paths.py,sha256=uJYolDxFeO5TMbebQdb3846S8TTkOjYMy4sG10DJjb4,2902
|
|
18
|
+
constricter/cli/protocol.py,sha256=bTl7TahS19BPmYc5wwOkfVsymjc59ee8yQEC7tqbDC0,5471
|
|
19
|
+
constricter/cli/report.py,sha256=xiExXf0D7M9RSx0GX0iZblL0-dpfSiR1wdfkVxLlwoE,13068
|
|
20
|
+
constricter/cli/runs.py,sha256=tyQ4y43FRS7EAkpzYT8jgVtfgEFokt6yputD68ekdJ0,1426
|
|
21
|
+
constricter/cli/schedule.py,sha256=ZKVx7i6F49ax1ni_CkWicFPhgEQ3YurLqBO87X2k70o,9366
|
|
22
|
+
constricter/cli/workers.py,sha256=YsYi83F5WWG1Oq406KA_66PuR75477PMzkXiqslKrbo,5343
|
|
23
|
+
constricter/fix/__init__.py,sha256=SCTkCs1rX6IhG1ubkKfP3Kt8yzWi48Y3N43tfhX1hJY,110
|
|
24
|
+
constricter/fix/atoms.py,sha256=5nh_kJ_fZ_rraO0z15CQV9AdNj7HdMbK5emsSoAz4fA,14068
|
|
25
|
+
constricter/fix/callers.py,sha256=dQM7L5lficT4a0iY5_H7nB1kq9ILwSHSALheKRd8eyM,6475
|
|
26
|
+
constricter/fix/classnames.py,sha256=4hvh3s6Nqs83exDmSjN_PWEVgf7xDwpenXTyQ0xSCHU,3891
|
|
27
|
+
constricter/fix/declared.py,sha256=IdptHbGJwRb8nIP5JX8JvL0aTsgu9fd5Eae1zwn2Wpo,16356
|
|
28
|
+
constricter/fix/doubts.py,sha256=v6scCI-xT3TH_MjxX7VnIh47SvKIcXLpJhaYar1_0HA,14827
|
|
29
|
+
constricter/fix/fills.py,sha256=dZxjE1cnOwBwJJsIzPlk0X5EsPGQzWYpHeK3VtXxTUU,8320
|
|
30
|
+
constricter/fix/fixes.py,sha256=46IcX9AGFGZGBXfi5GSM9zQySBd7LD9TuDvcchent5k,9596
|
|
31
|
+
constricter/fix/guesses.py,sha256=nZzE8por7dqUxBgRa-h1eD485WGrZMT7Psws9VYbqdo,10577
|
|
32
|
+
constricter/fix/hinted.py,sha256=N4i2SHE7PVen4RV4FF_M4wePInmEyDVWho5_snD4nQ4,9465
|
|
33
|
+
constricter/fix/imports.py,sha256=ye7mCG177vBoYZ6zVwUaLilSZF65Fch-Zn6lkupJXFg,7361
|
|
34
|
+
constricter/fix/inference.py,sha256=alTv5XEFFVDj2VndMMBS60_Y9cQnwR-yGBwGAu3NDw8,30083
|
|
35
|
+
constricter/fix/installed.py,sha256=6X71GgOBTW1rDuVnNQeSMDImINm1stn7IMMaIZifDqE,11225
|
|
36
|
+
constricter/fix/known.py,sha256=JOIp85kzCcE22FWS-iV19LH12_LKzdFkLUI5U0UKo-M,15116
|
|
37
|
+
constricter/fix/library.py,sha256=RjjUEx_L-jJPjfDqGxGrem6lG3aCJjIwMQQKcfFN-Q4,6583
|
|
38
|
+
constricter/fix/members.py,sha256=BOMw2BPKOLt1RVM7bFwWjjBk4cDj8IIW5uQ6AJ3GBEo,7867
|
|
39
|
+
constricter/fix/modules.py,sha256=3ll1NWJHnsCdoUad8X42S6k2v2UMDRSMJBWvqMBH21Y,13090
|
|
40
|
+
constricter/fix/narrowed.py,sha256=08Xxu3mQwa079Xtn2mlbibOUYmF60vEFdrf4Os6DQtw,6392
|
|
41
|
+
constricter/fix/opened.py,sha256=dryz9xqHHA8JjaZ6clgURc0TuSdqSYOypK4eC1SgUOM,2838
|
|
42
|
+
constricter/fix/order.py,sha256=6m3u2B9qWNmlUb3XIgK78oUcq3TB_F8AoPzh8DfjNRE,5669
|
|
43
|
+
constricter/fix/overloads.py,sha256=PPdZnr6VgT4m6xYJuhXBlj1zkf5PVPs3cBfkD2EQLFA,32283
|
|
44
|
+
constricter/fix/project.py,sha256=Jiq7E2eWMu3XVEKFypjGuCaCuiSjILR8SXgkeFxbJRg,27266
|
|
45
|
+
constricter/fix/returned.py,sha256=iSM5FfXG6u9R7ilsC38x3GC-kAlJUGxbXMmE2IJ-dAw,26643
|
|
46
|
+
constricter/fix/returns.py,sha256=V78jfM4KSaL63ORAFVQc1ofMSfqmTZPJUC9xtuBz5ks,5825
|
|
47
|
+
constricter/fix/signatures.py,sha256=FSzzisKNZS6Z0WMJGUZ_AqV4e25I4OQ1_49HsJqnBVo,4651
|
|
48
|
+
constricter/fix/stdlib.py,sha256=0NTOhDmvnfyymSm_bJsYvHiFDqnlQbRN3e13bS-3TKg,15915
|
|
49
|
+
constricter/fix/stubbed.py,sha256=R8rtaKFzfHVoJ-oWMByDTLfQoqS57aUvo4W6fpAgf9o,41517
|
|
50
|
+
constricter/fix/targets.py,sha256=EOUVpweIztUeNfATynqP0cf6-GFdJ14gWIAyF3-1HLk,6807
|
|
51
|
+
constricter/fix/tables/aliases.json,sha256=B0z0jHMjMyTFqudH6jRjNrc4ha8El7ENUXko-q3EmZk,8642
|
|
52
|
+
constricter/fix/tables/attributes.json,sha256=QJhBJHIHcmgCAABd4ZgzgIo35qd1zpG3Yv3IzWgkKZE,74250
|
|
53
|
+
constricter/fix/tables/bases.json,sha256=SNQQIfW5NIJBOWkxUEk0VF0iOZWHCnBKkBHUjjjIDMM,62580
|
|
54
|
+
constricter/fix/tables/classes.json,sha256=v47giHv4wIa3mXEWAY_9NovTeSXjnXVm0QePd7OWyIg,105709
|
|
55
|
+
constricter/fix/tables/generic_attributes.json,sha256=WLjAfT1vTSQWV7YaL8Sftsse-s9FWm6B-_2-Dvpt-zc,5353
|
|
56
|
+
constricter/fix/tables/method_overloads.json,sha256=tGfTYFDfDtHKyR2nnR-Jd_drFo1i2rvOOwmI-17jm5s,48979
|
|
57
|
+
constricter/fix/tables/method_signatures.json,sha256=Y9uaZk0JYhbqzxDUNl_ME5SVX-pJEaL8a7LYw9jkeC8,138742
|
|
58
|
+
constricter/fix/tables/methods.json,sha256=zWChMqQDYvBN6xrEQSdAfqLb4UZAeucEB6kPrVG2HUs,99266
|
|
59
|
+
constricter/fix/tables/overloads.json,sha256=xsd6gVvBz9sVhgZZySX_rFGHZlfDXsxkY3wjtjN4abs,188102
|
|
60
|
+
constricter/fix/tables/returns.json,sha256=7IbqCy7QRMo0CD2PCLoLXoYpWMojqFa4zrL7voXWIp4,43372
|
|
61
|
+
constricter/fix/tables/scalar_members.json,sha256=51_Hembsusz-cObxoKchowTAe0q2bDpwUJOnnfztqgw,10230
|
|
62
|
+
constricter/fix/tables/scalars.json,sha256=4AxWKrLjTA2I4mZBTrvyRYnfys5wv84D3SP7lFj82HU,122271
|
|
63
|
+
constricter/fix/tables/source.json,sha256=5NU9zUTNQRQHDDhAZnmK7QqeWu81DKRrKT83oc7mGDs,398
|
|
64
|
+
constricter/fix/tables/subscriptable.json,sha256=2FG6JriS2ejw7EQIx_G8AaCqU-UrIosk0M9xxdo5euY,2328
|
|
65
|
+
constricter/fix/tables/type_parameters.json,sha256=g0BiXqRgCYkFvmcQW4dgKCdlxbFULlnXaUThBr0lJ8g,6793
|
|
66
|
+
constricter/fix/tables/variables.json,sha256=D1LqxfFY0UtPQnoHg8gSwn30OV-Db8ROPyDg6ZQhkPo,94084
|
|
67
|
+
constricter/plugins/__init__.py,sha256=JEh8FoQRT-EqMDcG_JSN0HKVyekkorKHqSlnzACIXLk,123
|
|
68
|
+
constricter/plugins/flake8.py,sha256=kUVCYMtUhMf-uRypkc54jjtXeyewWyvAVUdnp0Zv070,4762
|
|
69
|
+
constricter/plugins/pylint.py,sha256=TL3vVklFd-g-AmZZMwigGDpvVDMmHJKIjiMyNHBGuUg,5961
|
|
70
|
+
constricter/rules/__init__.py,sha256=bw2jf6HJXfJUK8j-_m-Wyv7stsZS7n5kMQ8qkikQHQA,100
|
|
71
|
+
constricter/rules/annotations.py,sha256=_aQtOQ08hpd3DHzYRfX6bqwjbzHqvbN2E1mNxBkD-Kw,24110
|
|
72
|
+
constricter/rules/binding.py,sha256=CKosb_BP_-MOFUxFBGF1CiLvpr6SoF_8B2_vNDrukRs,10627
|
|
73
|
+
constricter/rules/calls.py,sha256=CK4eekj6t-Wq3qt2-OhalLUCtXM2XNXHywbUKlJZGJA,8504
|
|
74
|
+
constricter/rules/checker.py,sha256=9LdTZmkHZE0BOWj7Md6LNYLLtKSwpu5M7-5zu-iRZQw,28543
|
|
75
|
+
constricter/rules/flow.py,sha256=7dXMNVjg2w3pGUC23gWcHFewow-_R00WxAGJpBzCeF0,19187
|
|
76
|
+
constricter/rules/late.py,sha256=QXpDjy_apzZqmNtWZnsNeuSRgxramQdvuq3YHy4zCIc,11712
|
|
77
|
+
constricter/rules/narrowing.py,sha256=GA4dV_7gfXY2uPCUw5ly9gjI9nQvrYKYWOVwS9dMqWk,3950
|
|
78
|
+
constricter/rules/parsed.py,sha256=oxmtOygupwim0tjnXNhUNqfZJfvvOxLdmNGk4LI9uSQ,3376
|
|
79
|
+
constricter/rules/rebinding.py,sha256=BNkDDZp27_2RrGZuX3pQrRXDO5AeXStJ-Gy6JX0rGzo,5565
|
|
80
|
+
constricter/rules/redundant.py,sha256=2p0Lj4OQpdwOhDqIaIDQBEplPMLr9k6XzQBDLbJr8vs,5467
|
|
81
|
+
constricter/rules/scope.py,sha256=7qYrXvEQeAhkwJHFpchdhFGXBaaLVF05u2gMTEsDdF8,26500
|
|
82
|
+
constricter/rules/syntax.py,sha256=PQkmNjAT5m7eCvfrySmoWkShXgo03sWpmhjVoKVaCng,11551
|
|
83
|
+
constricter/rules/walked.py,sha256=GLym2Hn5xVUC_v_mdKd9Ikd12ladUZ2cWln1vmhozw0,4838
|
|
84
|
+
python_constricter-0.3.1.dist-info/METADATA,sha256=obWd80uvxzzkPbr3UNMY565tyexQzZegJvY9D36ApoQ,28508
|
|
85
|
+
python_constricter-0.3.1.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
86
|
+
python_constricter-0.3.1.dist-info/entry_points.txt,sha256=nYHGyDqpdUYfb3SuOy-MTnnUB1NXDeVlsIaI94i_dDE,133
|
|
87
|
+
python_constricter-0.3.1.dist-info/licenses/LICENSE.md,sha256=Ph1ZLRjkD-wFIE55wif1JqgQ7cZe6hQDgMHILsJnA0g,1069
|
|
88
|
+
python_constricter-0.3.1.dist-info/RECORD,,
|
{python_constricter-0.2.9.dist-info → python_constricter-0.3.1.dist-info}/licenses/LICENSE.md
RENAMED
|
File without changes
|