py2docfx 0.1.1.dev1565184__py3-none-any.whl → 0.1.1.dev1592393__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- py2docfx/convert_prepare/tests/test_generate_document.py +1 -0
- py2docfx/docfx_yaml/build_finished.py +88 -26
- py2docfx/docfx_yaml/common.py +5 -1
- py2docfx/docfx_yaml/process_doctree.py +79 -20
- py2docfx/docfx_yaml/translator.py +7 -2
- {py2docfx-0.1.1.dev1565184.dist-info → py2docfx-0.1.1.dev1592393.dist-info}/METADATA +1 -1
- {py2docfx-0.1.1.dev1565184.dist-info → py2docfx-0.1.1.dev1592393.dist-info}/RECORD +9 -9
- {py2docfx-0.1.1.dev1565184.dist-info → py2docfx-0.1.1.dev1592393.dist-info}/WHEEL +0 -0
- {py2docfx-0.1.1.dev1565184.dist-info → py2docfx-0.1.1.dev1592393.dist-info}/top_level.txt +0 -0
@@ -51,4 +51,5 @@ def test_generate_document(tmp_path):
|
|
51
51
|
assert not os.path.exists(os.path.join(yaml_path, "azure.dummy.yml"))
|
52
52
|
assert not os.path.exists(os.path.join(yaml_path, "azure.yml"))
|
53
53
|
assert os.path.exists(os.path.join(yaml_path, "toc.yml"))
|
54
|
+
assert os.path.exists(os.path.join(yaml_path, "index.yml"))
|
54
55
|
|
@@ -32,23 +32,18 @@ def build_finished(app, exception):
|
|
32
32
|
"""
|
33
33
|
Output YAML on the file system.
|
34
34
|
"""
|
35
|
-
def
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
toc_yaml.append(cur_node)
|
48
|
-
else:
|
49
|
-
# if uid doesn't contain '.', the name needn't to simplify
|
50
|
-
toc_yaml.append(cur_node)
|
51
|
-
toc_node_map[uid] = cur_node
|
35
|
+
def find_node_in_toc_tree(toc_yaml, to_add_node):
|
36
|
+
for module in toc_yaml:
|
37
|
+
if module['name'] == to_add_node:
|
38
|
+
return module
|
39
|
+
|
40
|
+
if 'items' in module:
|
41
|
+
items = module['items']
|
42
|
+
found_module = find_node_in_toc_tree(items, to_add_node)
|
43
|
+
if found_module != None:
|
44
|
+
return found_module
|
45
|
+
|
46
|
+
return None
|
52
47
|
|
53
48
|
def convert_class_to_enum_if_needed(obj):
|
54
49
|
if (obj.get('inheritance'), None):
|
@@ -98,9 +93,16 @@ def build_finished(app, exception):
|
|
98
93
|
app.builder.outdir, # Output Directory for Builder
|
99
94
|
API_ROOT
|
100
95
|
))
|
96
|
+
|
97
|
+
def add_isrequired_if_needed(obj, key: str):
|
98
|
+
if key in obj['syntax'] and obj['type'] == 'method':
|
99
|
+
for args in obj['syntax'][key]:
|
100
|
+
if 'isRequired' not in args and 'defaultValue' not in args:
|
101
|
+
args['isRequired'] = True
|
102
|
+
|
103
|
+
|
101
104
|
ensuredir(normalized_outdir)
|
102
|
-
|
103
|
-
toc_node_map = {}
|
105
|
+
|
104
106
|
toc_yaml = []
|
105
107
|
# Used to record filenames dumped to avoid confliction
|
106
108
|
# caused by Windows case insensitive file system
|
@@ -137,6 +139,7 @@ def build_finished(app, exception):
|
|
137
139
|
if 'syntax' not in obj:
|
138
140
|
obj['syntax'] = {}
|
139
141
|
merged_params = []
|
142
|
+
merged_kwargs = []
|
140
143
|
if 'parameters' in app.env.docfx_info_field_data[obj['uid']]:
|
141
144
|
doc_params = app.env.docfx_info_field_data[obj['uid']].get(
|
142
145
|
'parameters', [])
|
@@ -145,16 +148,29 @@ def build_finished(app, exception):
|
|
145
148
|
print("Documented params don't match size of params:"" {}".format(obj['uid'])) # lgtm [py/clear-text-logging-sensitive-data]
|
146
149
|
doc_params = remove_params_without_id(doc_params)
|
147
150
|
merged_params = merge_params(arg_params, doc_params)
|
151
|
+
else:
|
152
|
+
merged_params = arg_params
|
153
|
+
|
154
|
+
if 'keywordOnlyArguments' in app.env.docfx_info_field_data[obj['uid']]:
|
155
|
+
kwargs_from_inspect = obj.get('syntax', {}).get('keywordOnlyArguments', [])
|
156
|
+
kwargs_from_doc = app.env.docfx_info_field_data[obj['uid']].get('keywordOnlyArguments', [])
|
157
|
+
if kwargs_from_inspect and kwargs_from_doc:
|
158
|
+
merged_kwargs = merge_params(kwargs_from_inspect, kwargs_from_doc)
|
148
159
|
|
149
160
|
obj['syntax'].update(
|
150
161
|
app.env.docfx_info_field_data[obj['uid']])
|
162
|
+
|
163
|
+
# Merging parameters and keywordOnlyArguments is required,
|
164
|
+
# becasue parameters and keywordOnlyArguments can be in both signature and docstring
|
165
|
+
# For positionalOnlyArguments, it's not required, because it's only in signature so far
|
151
166
|
if merged_params:
|
152
167
|
obj['syntax']['parameters'] = merged_params
|
168
|
+
if merged_kwargs:
|
169
|
+
obj['syntax']['keywordOnlyArguments'] = merged_kwargs
|
153
170
|
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
args['isRequired'] = True
|
171
|
+
add_isrequired_if_needed(obj, 'parameters')
|
172
|
+
add_isrequired_if_needed(obj, 'keywordOnlyArguments')
|
173
|
+
add_isrequired_if_needed(obj, 'positionalOnlyArguments')
|
158
174
|
|
159
175
|
# Raise up summary
|
160
176
|
if 'summary' in obj['syntax'] and obj['syntax']['summary']:
|
@@ -218,7 +234,20 @@ def build_finished(app, exception):
|
|
218
234
|
if (obj['type'] == 'class' and obj['inheritance']):
|
219
235
|
convert_class_to_enum_if_needed(obj)
|
220
236
|
|
221
|
-
|
237
|
+
# Build nested TOC
|
238
|
+
if uid.count('.') >= 1:
|
239
|
+
parent_level = '.'.join(uid.split('.')[:-1])
|
240
|
+
found_node = find_node_in_toc_tree(toc_yaml, parent_level)
|
241
|
+
|
242
|
+
if found_node:
|
243
|
+
found_node.pop('uid', 'No uid found')
|
244
|
+
found_node.setdefault('items', [{'name': 'Overview', 'uid': parent_level}]).append(
|
245
|
+
{'name': uid, 'uid': uid})
|
246
|
+
else:
|
247
|
+
toc_yaml.append({'name': uid, 'uid': uid})
|
248
|
+
|
249
|
+
else:
|
250
|
+
toc_yaml.append({'name': uid, 'uid': uid})
|
222
251
|
|
223
252
|
for data_set in (app.env.docfx_yaml_packages,
|
224
253
|
app.env.docfx_yaml_modules,
|
@@ -265,8 +294,41 @@ def build_finished(app, exception):
|
|
265
294
|
with open(toc_file, 'w') as writable:
|
266
295
|
writable.write(
|
267
296
|
dump(
|
268
|
-
|
297
|
+
[{
|
298
|
+
'name': app.config.project,
|
299
|
+
'items': [{'name': 'Overview', 'uid': 'project-' + app.config.project}] + toc_yaml
|
300
|
+
}],
|
269
301
|
default_flow_style=False,
|
270
302
|
)
|
271
303
|
)
|
272
|
-
|
304
|
+
|
305
|
+
index_file = os.path.join(normalized_outdir, 'index.yml')
|
306
|
+
index_children = []
|
307
|
+
index_references = []
|
308
|
+
for item in toc_yaml:
|
309
|
+
index_children.append(item.get('name', ''))
|
310
|
+
index_references.append({
|
311
|
+
'uid': item.get('name', ''),
|
312
|
+
'name': item.get('name', ''),
|
313
|
+
'fullname': item.get('name', ''),
|
314
|
+
'isExternal': False
|
315
|
+
})
|
316
|
+
|
317
|
+
index_obj = [{
|
318
|
+
'uid': 'project-' + app.config.project,
|
319
|
+
'name': app.config.project,
|
320
|
+
'fullName': app.config.project,
|
321
|
+
'langs': ['python'],
|
322
|
+
'type': 'package',
|
323
|
+
'kind': 'distribution',
|
324
|
+
'summary': '',
|
325
|
+
'children': index_children
|
326
|
+
}]
|
327
|
+
transformed_obj = convert_package(index_obj, app.env.docfx_info_uid_types)
|
328
|
+
mime = "PythonPackage"
|
329
|
+
if transformed_obj == None:
|
330
|
+
print("Unknown yml: " + yamlfile_path)
|
331
|
+
else:
|
332
|
+
# save file
|
333
|
+
common.write_yaml(transformed_obj, index_file, mime)
|
334
|
+
file_name_set.add(filename)
|
py2docfx/docfx_yaml/common.py
CHANGED
@@ -97,7 +97,9 @@ def convert_member(obj, reference_mapping):
|
|
97
97
|
'name': obj.get('fullName', '').split('.')[-1],
|
98
98
|
'summary': obj.get('summary', None),
|
99
99
|
'signature': obj.get('syntax', {}).get('content', None),
|
100
|
+
'positionalOnlyArguments': list(map(convert_parameter_partial, obj.get('syntax', {}).get('positionalOnlyArguments', []))),
|
100
101
|
'parameters': list(map(convert_parameter_partial, obj.get('syntax', {}).get('parameters', []))),
|
102
|
+
'keywordOnlyArguments': list(map(convert_parameter_partial, obj.get('syntax', {}).get('keywordOnlyArguments', []))),
|
101
103
|
'return': convert_return(obj.get('syntax', {}).get('return', {}), reference_mapping),
|
102
104
|
'exceptions': obj.get('exceptions', None),
|
103
105
|
'examples': obj.get('example', None),
|
@@ -167,7 +169,9 @@ def get_constructor_and_variables(syntax_object, reference_mapping):
|
|
167
169
|
if syntax_object:
|
168
170
|
constructor_object = {
|
169
171
|
'syntax': syntax_object.get('content', None),
|
170
|
-
'
|
172
|
+
'positionalOnlyArguments': list(map(convert_parameter_partial, syntax_object.get('positionalOnlyArguments', []))),
|
173
|
+
'parameters': list(map(convert_parameter_partial, syntax_object.get('parameters', []))),
|
174
|
+
'keywordOnlyArguments': list(map(convert_parameter_partial, syntax_object.get('keywordOnlyArguments', []))),
|
171
175
|
}
|
172
176
|
|
173
177
|
return remove_empty_values(constructor_object), list(map(convert_variable_partial, syntax_object.get('variables', [])))
|
@@ -110,6 +110,64 @@ def _resolve_reference_in_module_summary(lines):
|
|
110
110
|
new_lines.append(new_line)
|
111
111
|
return new_lines
|
112
112
|
|
113
|
+
def getParameterArgs(argspec):
|
114
|
+
args = []
|
115
|
+
for arg in argspec.args:
|
116
|
+
args.append({'id': arg})
|
117
|
+
if argspec.defaults:
|
118
|
+
for count, default in enumerate(argspec.defaults):
|
119
|
+
cut_count = len(argspec.defaults)
|
120
|
+
# Only add defaultValue when str(default) doesn't contain object address string
|
121
|
+
# (object at 0x)(lambda at 0x)(function *** at 0x)
|
122
|
+
# inspect.getargspec method will return wrong defaults which contain object address for some default values, like sys.stdout
|
123
|
+
# Match the defaults with the count
|
124
|
+
if ' at 0x' not in str(default):
|
125
|
+
args[len(args) - cut_count +
|
126
|
+
count]['defaultValue'] = str(default)
|
127
|
+
else:
|
128
|
+
args[len(args) - cut_count +
|
129
|
+
count]['isRequired'] = False
|
130
|
+
return args
|
131
|
+
|
132
|
+
def getkeywordOnlyArguments(argspec):
|
133
|
+
keyword_only_args = []
|
134
|
+
# check if there is keyword only args
|
135
|
+
if argspec.kwonlyargs:
|
136
|
+
count = 0
|
137
|
+
for arg in argspec.kwonlyargs:
|
138
|
+
keyword_only_args.append({'id': arg})
|
139
|
+
# try get the default value for keyword only args
|
140
|
+
if argspec.kwonlydefaults:
|
141
|
+
kwarg_default = argspec.kwonlydefaults.get(arg, None)
|
142
|
+
if kwarg_default:
|
143
|
+
keyword_only_args[count]['defaultValue'] = str(kwarg_default)
|
144
|
+
count += 1
|
145
|
+
return keyword_only_args
|
146
|
+
|
147
|
+
def getpositionalOnlyArguments(signature):
|
148
|
+
positional_only_args = []
|
149
|
+
# check if there is positional only args
|
150
|
+
positional_only_arg_list = [param
|
151
|
+
for param in signature.parameters.values()
|
152
|
+
if param.kind == param.POSITIONAL_ONLY]
|
153
|
+
if positional_only_arg_list:
|
154
|
+
count = 0
|
155
|
+
for po_arg in positional_only_arg_list:
|
156
|
+
if po_arg.name != 'self':
|
157
|
+
positional_only_args.append({'id': po_arg.name})
|
158
|
+
if po_arg.default:
|
159
|
+
default_value = str(po_arg.default)
|
160
|
+
if default_value != "<class 'inspect._empty'>":
|
161
|
+
positional_only_args[count]['defaultValue'] = default_value
|
162
|
+
count += 1
|
163
|
+
return positional_only_args
|
164
|
+
|
165
|
+
def removePositonalOnlyArgsFromArgs(args, positional_only_args):
|
166
|
+
for po_arg in positional_only_args:
|
167
|
+
for arg in args:
|
168
|
+
if arg['id'] == po_arg['id']:
|
169
|
+
args.remove(arg)
|
170
|
+
break
|
113
171
|
|
114
172
|
def _create_datam(app, cls, module, name, _type, obj, lines=None):
|
115
173
|
"""
|
@@ -120,26 +178,22 @@ def _create_datam(app, cls, module, name, _type, obj, lines=None):
|
|
120
178
|
lines = []
|
121
179
|
short_name = name.split('.')[-1]
|
122
180
|
args = []
|
123
|
-
|
181
|
+
keyword_only_args = []
|
182
|
+
positional_only_args = []
|
124
183
|
try:
|
125
184
|
if _type in [CLASS, METHOD, FUNCTION]:
|
126
|
-
if not (_type == CLASS and isinstance(type(obj).__call__, type(EnumMeta.__call__))):
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
args[len(args) - cut_count +
|
139
|
-
count]['defaultValue'] = str(default)
|
140
|
-
else:
|
141
|
-
args[len(args) - cut_count +
|
142
|
-
count]['isRequired'] = False
|
185
|
+
if not (_type == CLASS and isinstance(type(obj).__call__, type(EnumMeta.__call__))):
|
186
|
+
signature = inspect.signature(obj)
|
187
|
+
argspec = inspect.getfullargspec(obj)
|
188
|
+
|
189
|
+
args = getParameterArgs(argspec)
|
190
|
+
keyword_only_args = getkeywordOnlyArguments(argspec)
|
191
|
+
positional_only_args = getpositionalOnlyArguments(signature)
|
192
|
+
|
193
|
+
# The args will contian both regular args and positional only args
|
194
|
+
# so we need to remove the positional only args from args
|
195
|
+
removePositonalOnlyArgsFromArgs(args, positional_only_args)
|
196
|
+
|
143
197
|
except Exception as e:
|
144
198
|
print("Can't get argspec for {}: {}. Exception: {}".format(type(obj), name, e))
|
145
199
|
|
@@ -160,9 +214,14 @@ def _create_datam(app, cls, module, name, _type, obj, lines=None):
|
|
160
214
|
if summary:
|
161
215
|
datam['summary'] = summary.strip(" \n\r\r")
|
162
216
|
|
163
|
-
if args:
|
217
|
+
if args or keyword_only_args or positional_only_args:
|
164
218
|
datam['syntax'] = {}
|
165
|
-
|
219
|
+
if args:
|
220
|
+
datam['syntax']['parameters'] = args
|
221
|
+
if keyword_only_args:
|
222
|
+
datam['syntax']['keywordOnlyArguments'] = keyword_only_args
|
223
|
+
if positional_only_args:
|
224
|
+
datam['syntax']['positionalOnlyArguments'] = positional_only_args
|
166
225
|
if cls:
|
167
226
|
datam[CLASS] = cls
|
168
227
|
if _type in [CLASS, MODULE, PACKAGE]:
|
@@ -123,6 +123,7 @@ def translator(app, docname, doctree):
|
|
123
123
|
def _get_full_data(node, module_name):
|
124
124
|
data = {
|
125
125
|
'parameters': [],
|
126
|
+
'keywordOnlyArguments': [],
|
126
127
|
'variables': [],
|
127
128
|
'exceptions': [],
|
128
129
|
'return': {},
|
@@ -165,16 +166,20 @@ def translator(app, docname, doctree):
|
|
165
166
|
if _is_single_paragraph(fieldbody):
|
166
167
|
#_data = parse_parameter(ret_data, fieldtype)
|
167
168
|
_data = parameter_utils.parse_parameter(content[0], fieldtype, app)
|
168
|
-
if fieldtype
|
169
|
+
if fieldtype == 'Parameters':
|
169
170
|
data['parameters'].append(_data)
|
171
|
+
elif fieldtype == 'Keyword':
|
172
|
+
data['keywordOnlyArguments'].append(_data)
|
170
173
|
else:
|
171
174
|
_data['id'] = _parse_variable_id(content[0].astext())
|
172
175
|
data['variables'].append(_data)
|
173
176
|
else:
|
174
177
|
for child in content[0]:
|
175
178
|
_data = parameter_utils.parse_parameter(child[0], fieldtype, app)
|
176
|
-
if fieldtype in ['Parameters'
|
179
|
+
if fieldtype in ['Parameters']:
|
177
180
|
data['parameters'].append(_data)
|
181
|
+
elif fieldtype == 'Keyword':
|
182
|
+
data['keywordOnlyArguments'].append(_data)
|
178
183
|
else:
|
179
184
|
_data['id'] = _parse_variable_id(child.astext())
|
180
185
|
data['variables'].append(_data)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: py2docfx
|
3
|
-
Version: 0.1.1.
|
3
|
+
Version: 0.1.1.dev1592393
|
4
4
|
Summary: A package built based on Sphinx which download source code package and generate yaml files supported by docfx.
|
5
5
|
Author: Microsoft Corporation
|
6
6
|
License: MIT License
|
@@ -22,7 +22,7 @@ py2docfx/convert_prepare/post_process/merge_toc.py,sha256=coyae54OB1nGcCkxz9oAu-
|
|
22
22
|
py2docfx/convert_prepare/subpackage_merge/merge_root_package.py,sha256=uK96qL2asuSfo_3SZaoP8XZaUvjf5mNkr17JNbZR4Lg,1026
|
23
23
|
py2docfx/convert_prepare/subpackage_merge/merge_toc.py,sha256=nkVqe8R0m8D6cyTYV7aIpMDXorvn4-LXfU_vIK_hJBg,1706
|
24
24
|
py2docfx/convert_prepare/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
25
|
-
py2docfx/convert_prepare/tests/test_generate_document.py,sha256=
|
25
|
+
py2docfx/convert_prepare/tests/test_generate_document.py,sha256=BKw8pMSsygLnv6bETlA2MIVarECzfWoNo4JglxHb-T4,2480
|
26
26
|
py2docfx/convert_prepare/tests/test_get_source.py,sha256=c22JfobgbEbWWiNzBNYpZm2yDfo5LwBioUuRwft9WZE,5858
|
27
27
|
py2docfx/convert_prepare/tests/test_pack.py,sha256=46JWMNzknIptDVs7D3CuxcmqBr_OKMmaw1br9H7wqco,4134
|
28
28
|
py2docfx/convert_prepare/tests/test_package_info.py,sha256=L2ax9dItnz5QNSsSjSjEcaS6UPZxiq3MwysBB1FdJxI,2262
|
@@ -52,9 +52,9 @@ py2docfx/convert_prepare/tests/data/subpackage/azure-mgmt-containerservice/azure
|
|
52
52
|
py2docfx/convert_prepare/tests/data/subpackage/azure-mgmt-containerservice/azure/mgmt/containerservice/v2018_03_31/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
53
53
|
py2docfx/convert_prepare/tests/data/subpackage/azure-mgmt-containerservice/azure/mgmt/containerservice/v2018_03_31/models.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
54
54
|
py2docfx/docfx_yaml/__init__.py,sha256=KCEizAXv-SXtrYhvFfLHdBWDhz51AA9uagaeTL-Itpo,100
|
55
|
-
py2docfx/docfx_yaml/build_finished.py,sha256=
|
55
|
+
py2docfx/docfx_yaml/build_finished.py,sha256=rkTHnRVFnXVqIECkvmYnevgqpZcLhRgVuEr22IzdZqY,15220
|
56
56
|
py2docfx/docfx_yaml/build_init.py,sha256=lAw-fnBVQbySfZ7Sut_NpFQUjnqLOmnGQrTBBH2RXcg,1860
|
57
|
-
py2docfx/docfx_yaml/common.py,sha256=
|
57
|
+
py2docfx/docfx_yaml/common.py,sha256=tk2dVLtj1v0HKI_vDXaB_1_2_PTNblHPM1_M8-lIfGQ,6833
|
58
58
|
py2docfx/docfx_yaml/convert_class.py,sha256=boKDaxnXbnLxja62UFXi3eChGDB_WBW6ouUUJgOhdpE,2098
|
59
59
|
py2docfx/docfx_yaml/convert_enum.py,sha256=Kyx48WRl-48O7uv4s-Np1oD9uAd3AXL5uHb7jUsnfFg,2022
|
60
60
|
py2docfx/docfx_yaml/convert_module.py,sha256=8UVjPn4krVfu7CgETAEBesYZyLdPthVXg7MXknni6aQ,2088
|
@@ -63,10 +63,10 @@ py2docfx/docfx_yaml/directives.py,sha256=zVVuNM_6AU9G6sbqL1UAyHHgPe7bkBWbthXI-PO
|
|
63
63
|
py2docfx/docfx_yaml/miss_reference.py,sha256=Btoj9wAvA4u_wU7JHH0Cei3910N8a7MS34OUqJvXAd4,2443
|
64
64
|
py2docfx/docfx_yaml/nodes.py,sha256=tBDi35jLJArlobl07DKOkmH2qz7dudXLp_kTUfR_r2w,412
|
65
65
|
py2docfx/docfx_yaml/parameter_utils.py,sha256=vCol5q2SJd1ymuyJdE_-62Tau9RP7PewQdKSimcfQuo,8700
|
66
|
-
py2docfx/docfx_yaml/process_doctree.py,sha256=
|
66
|
+
py2docfx/docfx_yaml/process_doctree.py,sha256=sI3Hs-fpC8IE9kQldcrVlw4lALQgOOv0KT9Ht5BneeQ,17170
|
67
67
|
py2docfx/docfx_yaml/return_type_utils.py,sha256=nmdCUOvwdYk2jF6RqmOvU6gjXmXUTPUeCqyHPdKZNUQ,7483
|
68
68
|
py2docfx/docfx_yaml/settings.py,sha256=JQZNwFebczl-zn8Yk2taAGANRi-Hw8hywtDWxqXXFyQ,373
|
69
|
-
py2docfx/docfx_yaml/translator.py,sha256=
|
69
|
+
py2docfx/docfx_yaml/translator.py,sha256=Lfybbd28xflbq_CBH-8vCc3PkMNtoPPQJyKbPm_ywHs,25627
|
70
70
|
py2docfx/docfx_yaml/utils.py,sha256=m5jC_qP2NKqzUx_z0zgZ-HAmxQdNTpJYKkL_F9vGeII,1555
|
71
71
|
py2docfx/docfx_yaml/writer.py,sha256=0ZqyVGDHa4Cr3NsuOPRf4pGUStl6g6IBxpSgIZeDT9I,34683
|
72
72
|
py2docfx/docfx_yaml/yaml_builder.py,sha256=qSxXVS4iFCc1ZdL5QzLrv8hy3LHIQCrhO4WcTp01vag,2575
|
@@ -112,7 +112,7 @@ py2docfx/docfx_yaml/tests/roots/test-writer-table/conf.py,sha256=avcbnIOV2mlGQwh
|
|
112
112
|
py2docfx/docfx_yaml/tests/roots/test-writer-uri/code_with_uri.py,sha256=bzWTZpY2yf_By2bOSl1GFaY3BsZpkAvwQuGztlcHKkQ,537
|
113
113
|
py2docfx/docfx_yaml/tests/roots/test-writer-uri/conf.py,sha256=avcbnIOV2mlGQwhMQJZC4W6UGRBRhnq1QBxjPWlySxQ,260
|
114
114
|
py2docfx/docfx_yaml/tests/utils/test_utils.py,sha256=d0OYSUQ6NyoZx5mlLdNGGNhiNmmQhjVT4hQ6jY3VE_M,3383
|
115
|
-
py2docfx-0.1.1.
|
116
|
-
py2docfx-0.1.1.
|
117
|
-
py2docfx-0.1.1.
|
118
|
-
py2docfx-0.1.1.
|
115
|
+
py2docfx-0.1.1.dev1592393.dist-info/METADATA,sha256=eciH7tuSk2d-cW9xPD3UrgWvKvOSC-lywQy1I4wICSE,601
|
116
|
+
py2docfx-0.1.1.dev1592393.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
117
|
+
py2docfx-0.1.1.dev1592393.dist-info/top_level.txt,sha256=5dH2uP81dczt_qQJ38wiZ-gzoVWasfiJALWRSjdbnYU,9
|
118
|
+
py2docfx-0.1.1.dev1592393.dist-info/RECORD,,
|
File without changes
|
File without changes
|