Mercurial > kallithea
annotate scripts/deps.py @ 8882:81e6b5e62a2c
setup: make chardet a mandatory dependency
It was made mandatory in 9685f50a69d0. At that time it seemed like it always
were present due to indirect dependencies, but apparently that is no longer the
case.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Wed, 12 May 2021 12:01:54 +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:]) |