Mercurial > kallithea
annotate scripts/deps.py @ 8933:379392017b6e stable
api docs: various minor changes
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Fri, 14 Oct 2022 13:36:21 +0200 |
parents | 05406c312342 |
children | a5d15a7511a9 |
rev | line source |
---|---|
8772
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
1 #!/usr/bin/env python3 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
2 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
3 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
4 import re |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
5 import sys |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
6 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
7 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
8 ignored_modules = set(''' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
9 argparse |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
10 base64 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
11 bcrypt |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
12 binascii |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
13 bleach |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
14 calendar |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
15 celery |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
16 celery |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
17 chardet |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
18 click |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
19 collections |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
20 configparser |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
21 copy |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
22 csv |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
23 ctypes |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
24 datetime |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
25 dateutil |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
26 decimal |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
27 decorator |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
28 difflib |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
29 distutils |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
30 docutils |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
31 email |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
32 errno |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
33 fileinput |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
34 functools |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
35 getpass |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
36 grp |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
37 hashlib |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
38 hmac |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
39 html |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
40 http |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
41 imp |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
42 importlib |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
43 inspect |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
44 io |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
45 ipaddr |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
46 IPython |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
47 isapi_wsgi |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
48 itertools |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
49 json |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
50 kajiki |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
51 ldap |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
52 logging |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
53 mako |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
54 markdown |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
55 mimetypes |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
56 mock |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
57 msvcrt |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
58 multiprocessing |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
59 operator |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
60 os |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
61 paginate |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
62 paginate_sqlalchemy |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
63 pam |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
64 paste |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
65 pkg_resources |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
66 platform |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
67 posixpath |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
68 pprint |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
69 pwd |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
70 pyflakes |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
71 pytest |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
72 pytest_localserver |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
73 random |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
74 re |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
75 routes |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
76 setuptools |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
77 shlex |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
78 shutil |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
79 smtplib |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
80 socket |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
81 ssl |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
82 stat |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
83 string |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
84 struct |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
85 subprocess |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
86 sys |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
87 tarfile |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
88 tempfile |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
89 textwrap |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
90 tgext |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
91 threading |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
92 time |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
93 traceback |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
94 traitlets |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
95 types |
8851
05406c312342
pytype: add Python type annotations where necessary to guide pytype
Mads Kiilerich <mads@kiilerich.com>
parents:
8833
diff
changeset
|
96 typing |
8772
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
97 urllib |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
98 urlobject |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
99 uuid |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
100 warnings |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
101 webhelpers2 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
102 webob |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
103 webtest |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
104 whoosh |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
105 win32traceutil |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
106 zipfile |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
107 '''.split()) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
108 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
109 top_modules = set(''' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
110 kallithea.alembic |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
111 kallithea.bin |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
112 kallithea.config |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
113 kallithea.controllers |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
114 kallithea.templates.py |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
115 scripts |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
116 '''.split()) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
117 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
118 bottom_external_modules = set(''' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
119 tg |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
120 mercurial |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
121 sqlalchemy |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
122 alembic |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
123 formencode |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
124 pygments |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
125 dulwich |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
126 beaker |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
127 psycopg2 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
128 docs |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
129 setup |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
130 conftest |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
131 '''.split()) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
132 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
133 normal_modules = set(''' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
134 kallithea |
8809
4f0de9468da3
controllers: move controllers base class from lib/base to controllers
Mads Kiilerich <mads@kiilerich.com>
parents:
8778
diff
changeset
|
135 kallithea.controllers.base |
8772
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
136 kallithea.lib |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
137 kallithea.lib.auth |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
138 kallithea.lib.auth_modules |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
139 kallithea.lib.celerylib |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
140 kallithea.lib.db_manage |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
141 kallithea.lib.helpers |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
142 kallithea.lib.hooks |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
143 kallithea.lib.indexers |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
144 kallithea.lib.utils |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
145 kallithea.lib.utils2 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
146 kallithea.lib.vcs |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
147 kallithea.lib.webutils |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
148 kallithea.model |
8778
341e4bb9e227
celery: move async tasks to model - they both use model and are used by model, so they must be pretty much the same
Mads Kiilerich <mads@kiilerich.com>
parents:
8772
diff
changeset
|
149 kallithea.model.async_tasks |
8772
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
150 kallithea.model.scm |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
151 kallithea.templates.py |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
152 '''.split()) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
153 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
154 shown_modules = normal_modules | top_modules |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
155 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
156 # break the chains somehow - this is a cleanup TODO list |
8816
c76638100ca0
deps: also report unseen known violations
Mads Kiilerich <mads@kiilerich.com>
parents:
8814
diff
changeset
|
157 known_violations = set([ |
8772
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
158 ('kallithea.lib.auth_modules', 'kallithea.lib.auth'), # needs base&facade |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
159 ('kallithea.lib.utils', 'kallithea.model'), # clean up utils |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
160 ('kallithea.lib.utils', 'kallithea.model.db'), |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
161 ('kallithea.lib.utils', 'kallithea.model.scm'), |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
162 ('kallithea.model', 'kallithea.lib.auth'), # auth.HasXXX |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
163 ('kallithea.model', 'kallithea.lib.auth_modules'), # validators |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
164 ('kallithea.model', 'kallithea.lib.hooks'), # clean up hooks |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
165 ('kallithea.model', 'kallithea.model.scm'), |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
166 ('kallithea.model.scm', 'kallithea.lib.hooks'), |
8816
c76638100ca0
deps: also report unseen known violations
Mads Kiilerich <mads@kiilerich.com>
parents:
8814
diff
changeset
|
167 ]) |
8772
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
168 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
169 extra_edges = [ |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
170 ('kallithea.config', 'kallithea.controllers'), # through TG |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
171 ('kallithea.lib.auth', 'kallithea.lib.auth_modules'), # custom loader |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
172 ] |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
173 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
174 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
175 def normalize(s): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
176 """Given a string with dot path, return the string it should be shown as.""" |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
177 parts = s.replace('.__init__', '').split('.') |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
178 short_2 = '.'.join(parts[:2]) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
179 short_3 = '.'.join(parts[:3]) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
180 short_4 = '.'.join(parts[:4]) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
181 if parts[0] in ['scripts', 'contributor_data', 'i18n_utils']: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
182 return 'scripts' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
183 if short_3 == 'kallithea.model.meta': |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
184 return 'kallithea.model.db' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
185 if parts[:4] == ['kallithea', 'lib', 'vcs', 'ssh']: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
186 return 'kallithea.lib.vcs.ssh' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
187 if short_4 in shown_modules: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
188 return short_4 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
189 if short_3 in shown_modules: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
190 return short_3 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
191 if short_2 in shown_modules: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
192 return short_2 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
193 if short_2 == 'kallithea.tests': |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
194 return None |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
195 if parts[0] in ignored_modules: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
196 return None |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
197 assert parts[0] in bottom_external_modules, parts |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
198 return parts[0] |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
199 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
200 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
201 def main(filenames): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
202 if not filenames or filenames[0].startswith('-'): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
203 print('''\ |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
204 Usage: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
205 hg files 'set:!binary()&grep("^#!.*python")' 'set:**.py' | xargs scripts/deps.py |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
206 dot -Tsvg deps.dot > deps.svg |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
207 ''') |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
208 raise SystemExit(1) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
209 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
210 files_imports = dict() # map filenames to its imports |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
211 import_deps = set() # set of tuples with module name and its imports |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
212 for fn in filenames: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
213 with open(fn) as f: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
214 s = f.read() |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
215 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
216 dot_name = (fn[:-3] if fn.endswith('.py') else fn).replace('/', '.') |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
217 file_imports = set() |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
218 for m in re.finditer(r'^ *(?:from ([^ ]*) import (?:([a-zA-Z].*)|\(([^)]*)\))|import (.*))$', s, re.MULTILINE): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
219 m_from, m_from_import, m_from_import2, m_import = m.groups() |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
220 if m_from: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
221 pre = m_from + '.' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
222 if pre.startswith('.'): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
223 pre = dot_name.rsplit('.', 1)[0] + pre |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
224 importlist = m_from_import or m_from_import2 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
225 else: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
226 pre = '' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
227 importlist = m_import |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
228 for imp in importlist.split('#', 1)[0].split(','): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
229 full_imp = pre + imp.strip().split(' as ', 1)[0] |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
230 file_imports.add(full_imp) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
231 import_deps.add((dot_name, full_imp)) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
232 files_imports[fn] = file_imports |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
233 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
234 # dump out all deps for debugging and analysis |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
235 with open('deps.txt', 'w') as f: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
236 for fn, file_imports in sorted(files_imports.items()): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
237 for file_import in sorted(file_imports): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
238 if file_import.split('.', 1)[0] in ignored_modules: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
239 continue |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
240 f.write('%s: %s\n' % (fn, file_import)) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
241 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
242 # find leafs that haven't been ignored - they are the important external dependencies and shown in the bottom row |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
243 only_imported = set( |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
244 set(normalize(b) for a, b in import_deps) - |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
245 set(normalize(a) for a, b in import_deps) - |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
246 set([None, 'kallithea']) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
247 ) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
248 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
249 normalized_dep_edges = set() |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
250 for dot_name, full_imp in import_deps: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
251 a = normalize(dot_name) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
252 b = normalize(full_imp) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
253 if a is None or b is None or a == b: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
254 continue |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
255 normalized_dep_edges.add((a, b)) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
256 #print((dot_name, full_imp, a, b)) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
257 normalized_dep_edges.update(extra_edges) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
258 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
259 unseen_shown_modules = shown_modules.difference(a for a, b in normalized_dep_edges).difference(b for a, b in normalized_dep_edges) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
260 assert not unseen_shown_modules, unseen_shown_modules |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
261 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
262 with open('deps.dot', 'w') as f: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
263 f.write('digraph {\n') |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
264 f.write('subgraph { rank = same; %s}\n' % ''.join('"%s"; ' % s for s in sorted(top_modules))) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
265 f.write('subgraph { rank = same; %s}\n' % ''.join('"%s"; ' % s for s in sorted(only_imported))) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
266 for a, b in sorted(normalized_dep_edges): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
267 f.write(' "%s" -> "%s"%s\n' % (a, b, ' [color=red]' if (a, b) in known_violations else ' [color=green]' if (a, b) in extra_edges else '')) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
268 f.write('}\n') |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
269 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
270 # verify dependencies by untangling dependency chain bottom-up: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
271 todo = set(normalized_dep_edges) |
8816
c76638100ca0
deps: also report unseen known violations
Mads Kiilerich <mads@kiilerich.com>
parents:
8814
diff
changeset
|
272 unseen_violations = known_violations.difference(todo) |
c76638100ca0
deps: also report unseen known violations
Mads Kiilerich <mads@kiilerich.com>
parents:
8814
diff
changeset
|
273 assert not unseen_violations, unseen_violations |
8772
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
274 for x in known_violations: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
275 todo.remove(x) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
276 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
277 while todo: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
278 depending = set(a for a, b in todo) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
279 depended = set(b for a, b in todo) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
280 drop = depended - depending |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
281 if not drop: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
282 print('ERROR: cycles:', len(todo)) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
283 for x in sorted(todo): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
284 print('%s,' % (x,)) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
285 raise SystemExit(1) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
286 #for do_b in sorted(drop): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
287 # print('Picking', do_b, '- unblocks:', ' '.join(a for a, b in sorted((todo)) if b == do_b)) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
288 todo = set((a, b) for a, b in todo if b in depending) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
289 #print() |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
290 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
291 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
292 if __name__ == '__main__': |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
293 main(sys.argv[1:]) |