Mercurial > kallithea
annotate scripts/deps.py @ 8831:1f92cded1bd2
celery: move Whoosh indexing task to whoosh library where it belongs
Avoid bundling everything from many different layers in one big task library.
This is more feasible now when we don't need kallithea.CELERY_APP set at import
time.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Tue, 29 Dec 2020 22:07:41 +0100 |
parents | c76638100ca0 |
children | 1d3b67443aac |
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 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
96 urllib |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
97 urlobject |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
98 uuid |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
99 warnings |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
100 webhelpers2 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
101 webob |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
102 webtest |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
103 whoosh |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
104 win32traceutil |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
105 zipfile |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
106 '''.split()) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
107 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
108 top_modules = set(''' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
109 kallithea.alembic |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
110 kallithea.bin |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
111 kallithea.config |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
112 kallithea.controllers |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
113 kallithea.templates.py |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
114 scripts |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
115 '''.split()) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
116 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
117 bottom_external_modules = set(''' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
118 tg |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
119 mercurial |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
120 sqlalchemy |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
121 alembic |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
122 formencode |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
123 pygments |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
124 dulwich |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
125 beaker |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
126 psycopg2 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
127 docs |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
128 setup |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
129 conftest |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
130 '''.split()) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
131 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
132 normal_modules = set(''' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
133 kallithea |
8809
4f0de9468da3
controllers: move controllers base class from lib/base to controllers
Mads Kiilerich <mads@kiilerich.com>
parents:
8778
diff
changeset
|
134 kallithea.controllers.base |
8772
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
135 kallithea.lib |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
136 kallithea.lib.auth |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
137 kallithea.lib.auth_modules |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
138 kallithea.lib.celerylib |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
139 kallithea.lib.db_manage |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
140 kallithea.lib.helpers |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
141 kallithea.lib.hooks |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
142 kallithea.lib.indexers |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
143 kallithea.lib.utils |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
144 kallithea.lib.utils2 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
145 kallithea.lib.vcs |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
146 kallithea.lib.webutils |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
147 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
|
148 kallithea.model.async_tasks |
8772
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
149 kallithea.model.scm |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
150 kallithea.templates.py |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
151 '''.split()) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
152 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
153 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
|
154 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
155 # 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
|
156 known_violations = set([ |
8772
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
157 ('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
|
158 ('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
|
159 ('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
|
160 ('kallithea.lib.utils', 'kallithea.model.scm'), |
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
|
161 ('kallithea.model.async_tasks', 'kallithea.lib.hooks'), |
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
|
162 ('kallithea.model.async_tasks', 'kallithea.model'), |
8772
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'), # auth.HasXXX |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
164 ('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
|
165 ('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
|
166 ('kallithea.model', 'kallithea.model.scm'), |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
167 ('kallithea.model.scm', 'kallithea.lib.hooks'), |
8816
c76638100ca0
deps: also report unseen known violations
Mads Kiilerich <mads@kiilerich.com>
parents:
8814
diff
changeset
|
168 ]) |
8772
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
169 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
170 extra_edges = [ |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
171 ('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
|
172 ('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
|
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 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
176 def normalize(s): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
177 """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
|
178 parts = s.replace('.__init__', '').split('.') |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
179 short_2 = '.'.join(parts[:2]) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
180 short_3 = '.'.join(parts[:3]) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
181 short_4 = '.'.join(parts[:4]) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
182 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
|
183 return 'scripts' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
184 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
|
185 return 'kallithea.model.db' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
186 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
|
187 return 'kallithea.lib.vcs.ssh' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
188 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
|
189 return short_4 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
190 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
|
191 return short_3 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
192 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
|
193 return short_2 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
194 if short_2 == 'kallithea.tests': |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
195 return None |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
196 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
|
197 return None |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
198 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
|
199 return parts[0] |
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 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
202 def main(filenames): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
203 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
|
204 print('''\ |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
205 Usage: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
206 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
|
207 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
|
208 ''') |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
209 raise SystemExit(1) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
210 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
211 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
|
212 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
|
213 for fn in filenames: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
214 with open(fn) as f: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
215 s = f.read() |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
216 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
217 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
|
218 file_imports = set() |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
219 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
|
220 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
|
221 if m_from: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
222 pre = m_from + '.' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
223 if pre.startswith('.'): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
224 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
|
225 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
|
226 else: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
227 pre = '' |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
228 importlist = m_import |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
229 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
|
230 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
|
231 file_imports.add(full_imp) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
232 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
|
233 files_imports[fn] = file_imports |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
234 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
235 # 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
|
236 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
|
237 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
|
238 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
|
239 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
|
240 continue |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
241 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
|
242 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
243 # 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
|
244 only_imported = set( |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
245 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
|
246 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
|
247 set([None, 'kallithea']) |
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 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
250 normalized_dep_edges = set() |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
251 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
|
252 a = normalize(dot_name) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
253 b = normalize(full_imp) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
254 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
|
255 continue |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
256 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
|
257 #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
|
258 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
|
259 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
260 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
|
261 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
|
262 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
263 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
|
264 f.write('digraph {\n') |
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(top_modules))) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
266 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
|
267 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
|
268 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
|
269 f.write('}\n') |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
270 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
271 # 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
|
272 todo = set(normalized_dep_edges) |
8816
c76638100ca0
deps: also report unseen known violations
Mads Kiilerich <mads@kiilerich.com>
parents:
8814
diff
changeset
|
273 unseen_violations = known_violations.difference(todo) |
c76638100ca0
deps: also report unseen known violations
Mads Kiilerich <mads@kiilerich.com>
parents:
8814
diff
changeset
|
274 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
|
275 for x in known_violations: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
276 todo.remove(x) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
277 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
278 while todo: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
279 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
|
280 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
|
281 drop = depended - depending |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
282 if not drop: |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
283 print('ERROR: cycles:', len(todo)) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
284 for x in sorted(todo): |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
285 print('%s,' % (x,)) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
286 raise SystemExit(1) |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
287 #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
|
288 # 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
|
289 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
|
290 #print() |
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 |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
293 if __name__ == '__main__': |
52816813cbec
docs: describe, visualize, and verify internal code structure and layering
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
294 main(sys.argv[1:]) |