py2docfx 0.1.1.dev1566958__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 -28
- 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.dev1566958.dist-info → py2docfx-0.1.1.dev1592393.dist-info}/METADATA +1 -1
- {py2docfx-0.1.1.dev1566958.dist-info → py2docfx-0.1.1.dev1592393.dist-info}/RECORD +9 -9
- {py2docfx-0.1.1.dev1566958.dist-info → py2docfx-0.1.1.dev1592393.dist-info}/WHEEL +0 -0
- {py2docfx-0.1.1.dev1566958.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,25 +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
|
-
found_node.setdefault('items', []).append(cur_node)
|
48
|
-
else:
|
49
|
-
toc_yaml.append(cur_node)
|
50
|
-
else:
|
51
|
-
# if uid doesn't contain '.', the name needn't to simplify
|
52
|
-
toc_yaml.append(cur_node)
|
53
|
-
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
|
54
47
|
|
55
48
|
def convert_class_to_enum_if_needed(obj):
|
56
49
|
if (obj.get('inheritance'), None):
|
@@ -100,9 +93,16 @@ def build_finished(app, exception):
|
|
100
93
|
app.builder.outdir, # Output Directory for Builder
|
101
94
|
API_ROOT
|
102
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
|
+
|
103
104
|
ensuredir(normalized_outdir)
|
104
|
-
|
105
|
-
toc_node_map = {}
|
105
|
+
|
106
106
|
toc_yaml = []
|
107
107
|
# Used to record filenames dumped to avoid confliction
|
108
108
|
# caused by Windows case insensitive file system
|
@@ -139,6 +139,7 @@ def build_finished(app, exception):
|
|
139
139
|
if 'syntax' not in obj:
|
140
140
|
obj['syntax'] = {}
|
141
141
|
merged_params = []
|
142
|
+
merged_kwargs = []
|
142
143
|
if 'parameters' in app.env.docfx_info_field_data[obj['uid']]:
|
143
144
|
doc_params = app.env.docfx_info_field_data[obj['uid']].get(
|
144
145
|
'parameters', [])
|
@@ -147,16 +148,29 @@ def build_finished(app, exception):
|
|
147
148
|
print("Documented params don't match size of params:"" {}".format(obj['uid'])) # lgtm [py/clear-text-logging-sensitive-data]
|
148
149
|
doc_params = remove_params_without_id(doc_params)
|
149
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)
|
150
159
|
|
151
160
|
obj['syntax'].update(
|
152
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
|
153
166
|
if merged_params:
|
154
167
|
obj['syntax']['parameters'] = merged_params
|
168
|
+
if merged_kwargs:
|
169
|
+
obj['syntax']['keywordOnlyArguments'] = merged_kwargs
|
155
170
|
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
args['isRequired'] = True
|
171
|
+
add_isrequired_if_needed(obj, 'parameters')
|
172
|
+
add_isrequired_if_needed(obj, 'keywordOnlyArguments')
|
173
|
+
add_isrequired_if_needed(obj, 'positionalOnlyArguments')
|
160
174
|
|
161
175
|
# Raise up summary
|
162
176
|
if 'summary' in obj['syntax'] and obj['syntax']['summary']:
|
@@ -220,7 +234,20 @@ def build_finished(app, exception):
|
|
220
234
|
if (obj['type'] == 'class' and obj['inheritance']):
|
221
235
|
convert_class_to_enum_if_needed(obj)
|
222
236
|
|
223
|
-
|
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})
|
224
251
|
|
225
252
|
for data_set in (app.env.docfx_yaml_packages,
|
226
253
|
app.env.docfx_yaml_modules,
|
@@ -267,8 +294,41 @@ def build_finished(app, exception):
|
|
267
294
|
with open(toc_file, 'w') as writable:
|
268
295
|
writable.write(
|
269
296
|
dump(
|
270
|
-
|
297
|
+
[{
|
298
|
+
'name': app.config.project,
|
299
|
+
'items': [{'name': 'Overview', 'uid': 'project-' + app.config.project}] + toc_yaml
|
300
|
+
}],
|
271
301
|
default_flow_style=False,
|
272
302
|
)
|
273
303
|
)
|
274
|
-
|
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
|