40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| #
# A README.* will be read if present, else PMD comment used.
# Classifiers and license matching is very crude, just for
# the most common cases. Type:, Category: and Classifiers:
# or Keywords: are also scanned for trove classifers.
#
""" Simulates setuptools.setup() """
import os
import re
import glob
import pprint
import pluginconf
|
|
| 40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| #
# A README.* will be read if present, else PMD comment used.
# Classifiers and license matching is very crude, just for
# the most common cases. Type:, Category: and Classifiers:
# or Keywords: are also scanned for trove classifers.
#
""" Expands setuptools.setup() with automatic package description lookup """
import os
import re
import glob
import pprint
import pluginconf
|
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
| return {
"long_description": "",
"long_description_content_type": "text/plain",
}
class MetaUtils(dict):
""" convenience access to PMD fields """
def __getattr__(self, name):
""" dict into properties """
return self.get(name, "")
def plugin_doc(self):
""" use comment block """
|
|
| 74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
| return {
"long_description": "",
"long_description_content_type": "text/plain",
}
class MetaUtils(dict):
""" Convenience access to PMD fields and conversion functions """
def __getattr__(self, name):
""" dict into properties """
return self.get(name, "")
def plugin_doc(self):
""" use comment block """
|