py2docfx 0.1.21rc2249766__py3-none-any.whl → 0.1.22.dev2258230__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.
@@ -35,7 +35,14 @@ def generate_conf(package: PackageInfo, output: str, template_dir: str):
35
35
  extension_config = []
36
36
  if hasattr(package, "extension_config"):
37
37
  for key, value in package.extension_config.items():
38
- extension_config.append(" = ".join([key, json.dumps(value)]))
38
+ # Convert JSON boolean strings to Python boolean string representations
39
+ if value == True:
40
+ formatted_value = "True"
41
+ elif value == False:
42
+ formatted_value = "False"
43
+ else:
44
+ formatted_value = json.dumps(value)
45
+ extension_config.append(" = ".join([key, formatted_value]))
39
46
  params["EXTENSION_CONFIG"] = "\n".join(extension_config)
40
47
 
41
48
  # Write the final conf.py file.
@@ -27,6 +27,13 @@ REFFUNCTION = 'func'
27
27
  REF_PATTERN = ':(py:)?(func|class|meth|mod|ref):`~?[a-zA-Z_\.<> ]*?`'
28
28
  INITPY = '__init__.py'
29
29
 
30
+ #Pydantic specific types
31
+ PYDANTIC_MODEL = 'pydantic_model'
32
+ PYDANTIC_FIELD = 'pydantic_field'
33
+ PYDANTIC_SETTINGS = 'pydantic_settings'
34
+ PYDANTIC_VALIDATOR = 'pydantic_validator'
35
+ PYDANTIC_CONFIG = 'pydantic_config'
36
+
30
37
  def _fullname(obj):
31
38
  """
32
39
  Get the fullname from a Python object
@@ -151,10 +158,10 @@ def getpositionalOnlyParameters(signature):
151
158
  except KeyError:
152
159
  # if the default value is not available, set it to inspect._empty
153
160
  default_value = "<class 'inspect._empty'>"
154
-
161
+
155
162
  if default_value != "<class 'inspect._empty'>":
156
163
  positional_only_param[count]['defaultValue'] = default_value
157
-
164
+
158
165
  count += 1
159
166
  return positional_only_param
160
167
 
@@ -180,7 +187,7 @@ def _create_datam(app, cls, module, name, _type, obj, lines=None):
180
187
  positional_only_params = []
181
188
  try:
182
189
  if _type in [CLASS, METHOD, FUNCTION]:
183
- if not (_type == CLASS and isinstance(type(obj).__call__, type(EnumMeta.__call__))):
190
+ if not (_type == CLASS and isinstance(type(obj).__call__, type(EnumMeta.__call__))):
184
191
  signature = inspect.signature(obj)
185
192
  args = getParameterArgs(signature)
186
193
  keyword_only_args = getKeywordOnlyParameters(signature)
@@ -329,10 +336,10 @@ def insert_children_on_package(app, _type, datam):
329
336
  if datam[MODULE] not in app.env.docfx_yaml_packages:
330
337
  return
331
338
  insert_package = app.env.docfx_yaml_packages[datam[MODULE]]
332
-
339
+
333
340
  for obj in insert_package:
334
341
  if obj['type'] == PACKAGE and obj['uid'] == datam[MODULE]:
335
- if _type in [CLASS, EXCEPTION]:
342
+ if _type in [CLASS, EXCEPTION]:
336
343
  obj['children'].append(datam['uid'])
337
344
  break
338
345
  if _type in [FUNCTION, DATA]:
@@ -388,11 +395,13 @@ def process_docstring(app, _type, name, obj, options, lines):
388
395
  return PACKAGE
389
396
  return _type
390
397
 
391
- if _type == EXCEPTION:
398
+ # Type transformations
399
+ if _type == EXCEPTION or _type in {PYDANTIC_MODEL, PYDANTIC_SETTINGS, PYDANTIC_CONFIG}:
392
400
  _type = CLASS
393
-
394
- if _type == PROPERTY:
401
+ elif _type == PROPERTY or _type == PYDANTIC_FIELD:
395
402
  _type = ATTRIBUTE
403
+ elif _type == PYDANTIC_VALIDATOR:
404
+ _type = METHOD
396
405
 
397
406
  _type = check_convert_package_type(obj, _type)
398
407
  cls, module = _get_cls_module(_type, name)
@@ -451,4 +460,4 @@ def process_docstring(app, _type, name, obj, options, lines):
451
460
  insert_children_on_class(app, _type, datam)
452
461
  insert_children_on_function(app, _type, datam)
453
462
 
454
- app.env.docfx_info_uid_types[datam['uid']] = _type
463
+ app.env.docfx_info_uid_types[datam['uid']] = _type
@@ -23,8 +23,27 @@ CLASS_TYPE = 'class'
23
23
  EXCEPTION_TYPE = 'exception'
24
24
  ATTRIBUTE_TYPE = 'attribute'
25
25
 
26
- types_contain_constructor = {CLASS_TYPE, EXCEPTION_TYPE}
27
- types_contain_attributes = {CLASS_TYPE, EXCEPTION_TYPE}
26
+ # Pydantic specific types
27
+ PYDANTIC_MODEL_TYPE = "pydantic_model"
28
+ PYDANTIC_SETTINGS_TYPE = "pydantic_settings"
29
+ PYDANTIC_FIELD_TYPE = "pydantic_field"
30
+ PYDANTIC_CONFIG_TYPE = "pydantic_config"
31
+
32
+ types_contain_constructor = {
33
+ CLASS_TYPE,
34
+ PYDANTIC_MODEL_TYPE,
35
+ PYDANTIC_SETTINGS_TYPE,
36
+ EXCEPTION_TYPE,
37
+ PYDANTIC_CONFIG_TYPE,
38
+ }
39
+ types_contain_attributes = {
40
+ CLASS_TYPE,
41
+ PYDANTIC_MODEL_TYPE,
42
+ PYDANTIC_SETTINGS_TYPE,
43
+ EXCEPTION_TYPE,
44
+ PYDANTIC_CONFIG_TYPE,
45
+ }
46
+ attribute_types = {PYDANTIC_FIELD_TYPE, ATTRIBUTE_TYPE}
28
47
 
29
48
  def translator(app, docname, doctree):
30
49
 
@@ -78,7 +97,7 @@ def translator(app, docname, doctree):
78
97
  return True
79
98
 
80
99
  return False
81
-
100
+
82
101
  def extract_exception_desc(exception_fieldbody_node):
83
102
  def extract_exception_type(exception_node):
84
103
  _type_without_xref = transform_node(exception_node).strip(" \n\r\t")
@@ -90,7 +109,7 @@ def translator(app, docname, doctree):
90
109
  else:
91
110
  exception_type = _type_without_xref
92
111
  return exception_type
93
-
112
+
94
113
  extractedExceptions = []
95
114
  for pararaph_node in exception_fieldbody_node.traverse(nodes.paragraph):
96
115
  for exception_node in pararaph_node:
@@ -148,8 +167,8 @@ def translator(app, docname, doctree):
148
167
  if fieldtype == 'Raises':
149
168
  if data['exceptions']:
150
169
  data['exceptions'].extend(extract_exception_desc(fieldbody))
151
- else:
152
- data['exceptions'] = extract_exception_desc(fieldbody)
170
+ else:
171
+ data['exceptions'] = extract_exception_desc(fieldbody)
153
172
 
154
173
  if fieldtype == 'Returns':
155
174
  returnvalue_ret = transform_node(content[0])
@@ -239,14 +258,14 @@ def translator(app, docname, doctree):
239
258
  signature_child = extract_sig_child_from_attribute_desc_node(node)
240
259
  content_child = extract_content_child_from_attribute_desc_node(node)
241
260
  curuid = signature_child.get('module', '') + '.' + signature_child.get('fullname', '')
242
- addedData = {}
261
+ addedData = {}
243
262
  name = signature_child.children[0].astext()
244
- if isinstance(signature_child, desc_signature) and any(isinstance(n, addnodes.desc_annotation) for n in signature_child):
245
- signature_child_ids = signature_child.get('ids', [''])
246
-
263
+ if isinstance(signature_child, desc_signature) and any(isinstance(n, addnodes.desc_annotation) for n in signature_child):
264
+ signature_child_ids = signature_child.get('ids', [''])
265
+
247
266
  if len(curuid) > 0:
248
267
  parent = curuid[:curuid.rfind('.')]
249
-
268
+
250
269
  if curuid in attribute_map:
251
270
  # ensure the order of docstring attributes and real attributes is fixed
252
271
  if len(signature_child_ids) == 0:
@@ -254,7 +273,7 @@ def translator(app, docname, doctree):
254
273
  ' ' + signature_child.astext())
255
274
  # concat the description of duplicated nodes
256
275
  else:
257
- attribute_map[curuid]['syntax']['content'] = signature_child.astext()
276
+ attribute_map[curuid]['syntax']['content'] = signature_child.astext()
258
277
  + ' ' + attribute_map[curuid]['syntax']['content']
259
278
  else:
260
279
  ancestor_class_content_node = find_ancestor_class_content_node(signature_child['class'], signature_child['module'], signature_child['ids'], class_nodes)
@@ -292,14 +311,14 @@ def translator(app, docname, doctree):
292
311
  raise Exception('ids of node: ' + repr(signature_child) + ' is missing.')
293
312
  # no ids and no duplicate or uid can not be generated.
294
313
 
295
- # Currently only utilize summary to avoid code repetition,
296
- # if we need to change other attribute generator logic,
314
+ # Currently only utilize summary to avoid code repetition,
315
+ # if we need to change other attribute generator logic,
297
316
  # better to get from extracted_content_data below too
298
-
317
+
299
318
  extracted_content_data = extract_content(content_child, ATTRIBUTE_TYPE, module_name)
300
319
  if not addedData:
301
320
  # If current attribute doesn't have correct signature child, fill in basic information
302
- # TODO: append fullName here, currently when fallback to here,
321
+ # TODO: append fullName here, currently when fallback to here,
303
322
  # information like fullname, name of attribute comes from process_docstring
304
323
  addedData = {
305
324
  'uid': curuid,
@@ -351,9 +370,9 @@ def translator(app, docname, doctree):
351
370
  if (first_child.astext().strip(" \n\r\t") == 'property'):
352
371
  return None # Don't generate signature for property
353
372
  elif (first_child.astext().strip(" \n\r\t") in annotation_to_skip):
354
- # Don't include 'class' declaration for constructors,
373
+ # Don't include 'class' declaration for constructors,
355
374
  # don't include 'classmethod' front of signature (To keep behavior consistent)
356
- included_child_start = 1
375
+ included_child_start = 1
357
376
  isClass = True
358
377
  for included_child in node.children[included_child_start:]:
359
378
  # Skip class name when write signature (To keep same behavior as before signature async support)
@@ -416,15 +435,15 @@ def translator(app, docname, doctree):
416
435
  # Because summary can contain code examples,
417
436
  # need to allow summary line to contain punctuation ony
418
437
  if len(content) > 0:
419
- summary.append(content)
420
-
438
+ summary.append(content)
439
+
421
440
  if "desctype" in node.parent and node.parent["desctype"] == CLASS_TYPE:
422
441
  # Make sure class doesn't have 'exceptions' field.
423
442
  data.pop('exceptions', '')
424
443
 
425
444
  if summary:
426
445
  data['summary'] = '\n\n'.join(summary)
427
-
446
+
428
447
  return data
429
448
 
430
449
 
@@ -434,24 +453,24 @@ def translator(app, docname, doctree):
434
453
  if (desc_node['desctype'] in types_contain_attributes):
435
454
  class_nodes.append(desc_node)
436
455
  return class_nodes
437
-
456
+
438
457
  class_nodes = extract_class_nodes_from_doctree(doctree)
439
458
  class_added_attributes = {}
440
459
  class_data = {}
441
- for node in doctree.traverse(addnodes.desc):
460
+ for node in doctree.traverse(addnodes.desc):
442
461
  (uid, module_name, node_type) = _get_uid_and_type_from_desc(node)
443
462
  data = {}
444
463
  signature_child = node.children[node.first_child_matching_class(addnodes.desc_signature)]
445
464
  content_child = node.children[node.first_child_matching_class(addnodes.desc_content)]
446
- if node_type == ATTRIBUTE_TYPE:
465
+ if node_type in attribute_types:
447
466
  attribute_sig_child = extract_sig_child_from_attribute_desc_node(node)
448
467
 
449
468
  if content_child.astext().startswith('alias of'):
450
469
  # Ignore alias attribute
451
- # e.g. azure.cognitiveservices.speech.intent.IntentRecognizer.IntentsIte (alias of Iterable[Tuple[Union[str, azure.cognitiveservices.speech.intent.LanguageUnderstandingModel], str]])
470
+ # e.g. azure.cognitiveservices.speech.intent.IntentRecognizer.IntentsIte (alias of Iterable[Tuple[Union[str, azure.cognitiveservices.speech.intent.LanguageUnderstandingModel], str]])
452
471
  continue
453
472
 
454
- if attribute_sig_child['class']:
473
+ if attribute_sig_child['class']:
455
474
  attribute_class = attribute_sig_child['module'] + '.' + attribute_sig_child['class']
456
475
  class_added_attributes.setdefault(attribute_class, OrderedDict())
457
476
  # TODO: Merge attribute_data if same uid
@@ -470,19 +489,19 @@ def translator(app, docname, doctree):
470
489
  else:
471
490
  raise Exception('Attribute doesn\'t have class information. Attribute_name: {0}'.format(attribute_sig_child['fullname']))
472
491
  continue
473
-
492
+
474
493
  data.update(extract_content(content_child, node_type, module_name))
475
494
  data['content'] = extract_signature(signature_child)
476
495
 
477
496
  data['type'] = type_mapping(node_type) if node_type else 'unknown'
478
497
  if _is_property_node(signature_child):
479
498
  data['type'] = ATTRIBUTE_TYPE
480
-
499
+
481
500
  # Don't include empty data
482
501
  for key, val in data.copy().items():
483
502
  if not val:
484
503
  del data[key]
485
-
504
+
486
505
  if uid in app.env.docfx_info_field_data:
487
506
  # Sphinx autodoc already provides method signature, skip declaration in RST comments (py:class/py:method)
488
507
  sig_id = signature_child.get('ids', [''])[0].lower()
@@ -502,7 +521,7 @@ def translator(app, docname, doctree):
502
521
  for class_name, added_attributes in class_added_attributes.items():
503
522
  if not added_attributes:
504
523
  # `class_added_attributes` Maybe be in default value []
505
- # Indicates that all doctree attribute desc nodes under this class
524
+ # Indicates that all doctree attribute desc nodes under this class
506
525
  # are skipped attributes/properties (like alias)
507
526
  continue
508
527
 
@@ -214,14 +214,14 @@ class Markup(str):
214
214
  if (end := value.find("-->", start)) == -1:
215
215
  break
216
216
 
217
- value = f"{value[:start]}{value[end + 3:]}"
217
+ value = f"{value[:start]}{value[end + 3 :]}"
218
218
 
219
219
  # remove tags using the same method
220
220
  while (start := value.find("<")) != -1:
221
221
  if (end := value.find(">", start)) == -1:
222
222
  break
223
223
 
224
- value = f"{value[:start]}{value[end + 1:]}"
224
+ value = f"{value[:start]}{value[end + 1 :]}"
225
225
 
226
226
  # collapse spaces
227
227
  value = " ".join(value.split())
@@ -388,6 +388,7 @@ def __getattr__(name: str) -> t.Any:
388
388
  "The '__version__' attribute is deprecated and will be removed in"
389
389
  " MarkupSafe 3.1. Use feature detection, or"
390
390
  ' `importlib.metadata.version("markupsafe")`, instead.',
391
+ DeprecationWarning,
391
392
  stacklevel=2,
392
393
  )
393
394
  return importlib.metadata.version("markupsafe")
@@ -8,7 +8,7 @@ from .nodes import *
8
8
  from .loader import *
9
9
  from .dumper import *
10
10
 
11
- __version__ = '6.0.2'
11
+ __version__ = '6.0.3'
12
12
  try:
13
13
  from .cyaml import *
14
14
  __with_libyaml__ = True
@@ -2326,7 +2326,7 @@ class PublicClientApplication(ClientApplication): # browser app or mobile app
2326
2326
  auth_scheme=auth_scheme,
2327
2327
  **data)
2328
2328
 
2329
- def initiate_device_flow(self, scopes=None, **kwargs):
2329
+ def initiate_device_flow(self, scopes=None, *, claims_challenge=None, **kwargs):
2330
2330
  """Initiate a Device Flow instance,
2331
2331
  which will be used in :func:`~acquire_token_by_device_flow`.
2332
2332
 
@@ -2341,6 +2341,8 @@ class PublicClientApplication(ClientApplication): # browser app or mobile app
2341
2341
  flow = self.client.initiate_device_flow(
2342
2342
  scope=self._decorate_scope(scopes or []),
2343
2343
  headers={msal.telemetry.CLIENT_REQUEST_ID: correlation_id},
2344
+ data={"claims": _merge_claims_challenge_and_capabilities(
2345
+ self._client_capabilities, claims_challenge)},
2344
2346
  **kwargs)
2345
2347
  flow[self.DEVICE_FLOW_CORRELATION_ID] = correlation_id
2346
2348
  return flow
@@ -305,7 +305,7 @@ class Client(BaseClient): # We choose to implement all 4 grants in 1 class
305
305
  grant_assertion_encoders = {GRANT_TYPE_SAML2: BaseClient.encode_saml_assertion}
306
306
 
307
307
 
308
- def initiate_device_flow(self, scope=None, **kwargs):
308
+ def initiate_device_flow(self, scope=None, *, data=None, **kwargs):
309
309
  # type: (list, **dict) -> dict
310
310
  # The naming of this method is following the wording of this specs
311
311
  # https://tools.ietf.org/html/draft-ietf-oauth-device-flow-12#section-3.1
@@ -323,8 +323,11 @@ class Client(BaseClient): # We choose to implement all 4 grants in 1 class
323
323
  DAE = "device_authorization_endpoint"
324
324
  if not self.configuration.get(DAE):
325
325
  raise ValueError("You need to provide device authorization endpoint")
326
+ _data = {"client_id": self.client_id, "scope": self._stringify(scope or [])}
327
+ if isinstance(data, dict):
328
+ _data.update(data)
326
329
  resp = self._http_client.post(self.configuration[DAE],
327
- data={"client_id": self.client_id, "scope": self._stringify(scope or [])},
330
+ data=_data,
328
331
  headers=dict(self.default_headers, **kwargs.pop("headers", {})),
329
332
  **kwargs)
330
333
  flow = json.loads(resp.text)
@@ -2,5 +2,5 @@
2
2
  """
3
3
 
4
4
  # The __init__.py will import this. Not the other way around.
5
- __version__ = "1.33.0"
5
+ __version__ = "1.34.0"
6
6
  SKU = "MSAL.Python"
@@ -126,7 +126,13 @@ class TokenCache(object):
126
126
 
127
127
  @staticmethod
128
128
  def _is_matching(entry: dict, query: dict, target_set: set = None) -> bool:
129
- return is_subdict_of(query or {}, entry) and (
129
+ query_with_lowercase_environment = {
130
+ # __add() canonicalized entry's environment value to lower case,
131
+ # so we do the same here.
132
+ k: v.lower() if k == "environment" and isinstance(v, str) else v
133
+ for k, v in query.items()
134
+ } if query else {}
135
+ return is_subdict_of(query_with_lowercase_environment, entry) and (
130
136
  target_set <= set(entry.get("target", "").split())
131
137
  if target_set else True)
132
138
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: py2docfx
3
- Version: 0.1.21rc2249766
3
+ Version: 0.1.22.dev2258230
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
@@ -4,7 +4,7 @@ py2docfx/convert_prepare/__init__.py,sha256=XxtxrP0kmW3ZBHIAoxsPDEHzcgeC0WSnole8
4
4
  py2docfx/convert_prepare/arg_parser.py,sha256=7goU287AjAyKGd9d5QKcphMCQOrlPnKpQ_YtdwLSNT8,7618
5
5
  py2docfx/convert_prepare/constants.py,sha256=RC5DqNkqWvx4hb91FrajZ1R9dBFLxcPyoEJ43jdm36E,102
6
6
  py2docfx/convert_prepare/environment.py,sha256=CF8g2hnpwFXsTfvp1O8lwYpR848iCK8bDM2UAWqibEQ,7286
7
- py2docfx/convert_prepare/generate_conf.py,sha256=wqs6iyElzJarH-20_qEL9zvZvt5xfBMsGXSXPSZy6wg,2295
7
+ py2docfx/convert_prepare/generate_conf.py,sha256=BL1HXLkO594_6TsIUbfU5dSts9aR8pps_pd971Q1nU8,2600
8
8
  py2docfx/convert_prepare/generate_document.py,sha256=iTOCMBwkfvZEj5dlEGUq4qynUodaYxJuIrG9R5eGk38,2949
9
9
  py2docfx/convert_prepare/get_source.py,sha256=eSRnMppk1U9N6wmvmOmQb6tClpDLwXcyrhkwbid5lE0,6963
10
10
  py2docfx/convert_prepare/git.py,sha256=Cq76ooxejKlVJiJWWbBhbLZ_JvxqN2ka12L8jkl80b4,6492
@@ -69,10 +69,10 @@ py2docfx/docfx_yaml/logger.py,sha256=brzFbSgQq3o3n2sy-2pk849AVpaUn1rhJfIs44IYa0Y
69
69
  py2docfx/docfx_yaml/miss_reference.py,sha256=NHoQtas0kvFsJXaR4fsk7kHjwV4aJobrr_Q30HaUc_I,2450
70
70
  py2docfx/docfx_yaml/nodes.py,sha256=tBDi35jLJArlobl07DKOkmH2qz7dudXLp_kTUfR_r2w,412
71
71
  py2docfx/docfx_yaml/parameter_utils.py,sha256=04wQCtbS-G2hWM5UGkL22s10LZLUbqbh3RM9rWGOToI,10897
72
- py2docfx/docfx_yaml/process_doctree.py,sha256=RUbq2DkkKl-KjKiuQrZhuvi8Q_ZjUdW4oi6CTWpMkxc,17229
72
+ py2docfx/docfx_yaml/process_doctree.py,sha256=1WBZ_FrAryXbn84usaELKABTKcQ7ya4oMgiTNB3MW5M,17575
73
73
  py2docfx/docfx_yaml/return_type_utils.py,sha256=nmdCUOvwdYk2jF6RqmOvU6gjXmXUTPUeCqyHPdKZNUQ,7483
74
74
  py2docfx/docfx_yaml/settings.py,sha256=JQZNwFebczl-zn8Yk2taAGANRi-Hw8hywtDWxqXXFyQ,373
75
- py2docfx/docfx_yaml/translator.py,sha256=LSzNl4C-07bLbUZ5myfyWwh25cTNIIBih77Cp4tBWvo,25999
75
+ py2docfx/docfx_yaml/translator.py,sha256=-KIN8nVMfekOmbp0Dh9CkF-fOiZAaqV3NHR04Honbqw,26282
76
76
  py2docfx/docfx_yaml/utils.py,sha256=sJ6aWF9wwIWIoZL6WWsd3FQD-zb3PWrJ5QTWP7PCarY,1567
77
77
  py2docfx/docfx_yaml/write_utils.py,sha256=q5qoYWw6GVDV8a3E8IxcSLWnN9sAer42VFRgadHBkgk,305
78
78
  py2docfx/docfx_yaml/writer.py,sha256=aDxz8Vc8ln0a9PKi08DIILvgMIfXqN5wArDcAQ8Iy8E,35980
@@ -354,7 +354,7 @@ py2docfx/venv/basevenv/Lib/site-packages/jinja2/sandbox.py,sha256=-8zxR6TO9kUkci
354
354
  py2docfx/venv/basevenv/Lib/site-packages/jinja2/tests.py,sha256=Am5Z6Lmfr2XaH_npIfJJ8MdXtWsbLjMULZJulTAj30E,5905
355
355
  py2docfx/venv/basevenv/Lib/site-packages/jinja2/utils.py,sha256=udQxWIKaq4QDCZiXN31ngKOaGGdaMA5fl0JMaM-F6fg,26971
356
356
  py2docfx/venv/basevenv/Lib/site-packages/jinja2/visitor.py,sha256=ZmeLuTj66ic35-uFH-1m0EKXiw4ObDDb_WuE6h5vPFg,3572
357
- py2docfx/venv/basevenv/Lib/site-packages/markupsafe/__init__.py,sha256=pREerPwvinB62tNCMOwqxBS2YHV6R52Wcq1d-rB4Z5o,13609
357
+ py2docfx/venv/basevenv/Lib/site-packages/markupsafe/__init__.py,sha256=ut2LXj-6sqkIVUdSAx-dboB5crAaRG5y7EO447hmaro,13644
358
358
  py2docfx/venv/basevenv/Lib/site-packages/markupsafe/_native.py,sha256=2ptkJ40yCcp9kq3L1NqpgjfpZB-obniYKFFKUOkHh4Q,218
359
359
  py2docfx/venv/basevenv/Lib/site-packages/markupsafe/_speedups.pyi,sha256=LSDmXYOefH4HVpAXuL8sl7AttLw0oXh1njVoVZp2wqQ,42
360
360
  py2docfx/venv/basevenv/Lib/site-packages/markupsafe/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1879,7 +1879,7 @@ py2docfx/venv/basevenv/Lib/site-packages/wheel/_commands/convert.py,sha256=0wSJM
1879
1879
  py2docfx/venv/basevenv/Lib/site-packages/wheel/_commands/pack.py,sha256=o3iwjfRHl7N9ul-M2kHbewLJZnqBLAWf0tzUCwoiTMw,3078
1880
1880
  py2docfx/venv/basevenv/Lib/site-packages/wheel/_commands/tags.py,sha256=Rv2ySVb8-qX3osKp3uJgxcIMXkjt43XUD0-zvC6KvnY,4775
1881
1881
  py2docfx/venv/basevenv/Lib/site-packages/wheel/_commands/unpack.py,sha256=Y_J7ynxPSoFFTT7H0fMgbBlVErwyDGcObgme5MBuz58,1021
1882
- py2docfx/venv/basevenv/Lib/site-packages/yaml/__init__.py,sha256=N35S01HMesFTe0aRRMWkPj0Pa8IEbHpE9FK7cr5Bdtw,12311
1882
+ py2docfx/venv/basevenv/Lib/site-packages/yaml/__init__.py,sha256=sZ38wzPWp139cwc5ARZFByUvJxtB07X32FUQAzoFR6c,12311
1883
1883
  py2docfx/venv/basevenv/Lib/site-packages/yaml/composer.py,sha256=_Ko30Wr6eDWUeUpauUGT3Lcg9QPBnOPVlTnIMRGJ9FM,4883
1884
1884
  py2docfx/venv/basevenv/Lib/site-packages/yaml/constructor.py,sha256=kNgkfaeLUkwQYY_Q6Ff1Tz2XVw_pG1xVE9Ak7z-viLA,28639
1885
1885
  py2docfx/venv/basevenv/Lib/site-packages/yaml/cyaml.py,sha256=6ZrAG9fAYvdVe2FK_w0hmXoG7ZYsoYUwapG8CiC72H0,3851
@@ -2555,7 +2555,7 @@ py2docfx/venv/venv1/Lib/site-packages/jwt/utils.py,sha256=hxOjvDBheBYhz-RIPiEz7Q
2555
2555
  py2docfx/venv/venv1/Lib/site-packages/jwt/warnings.py,sha256=50XWOnyNsIaqzUJTk6XHNiIDykiL763GYA92MjTKmok,59
2556
2556
  py2docfx/venv/venv1/Lib/site-packages/msal/__init__.py,sha256=U8y4dCI4xqYgP0iQA19EQsm7ESUqitGR-xySLGX66EA,2089
2557
2557
  py2docfx/venv/venv1/Lib/site-packages/msal/__main__.py,sha256=gk_iJRPMl-9Zq8qx-wylPHiT_h1suhIeR0ir1wR9160,16516
2558
- py2docfx/venv/venv1/Lib/site-packages/msal/application.py,sha256=snKVtshd4wU5UVERSqB2uKuVRU272YoEoF5qsbok-CM,130378
2558
+ py2docfx/venv/venv1/Lib/site-packages/msal/application.py,sha256=TqlqaS23ew9mSJtSxrbNBwLYiHBC25G73EDtO2DjBzI,130541
2559
2559
  py2docfx/venv/venv1/Lib/site-packages/msal/auth_scheme.py,sha256=biI1W2ZEV2u5cQpsF1JK2ykLuyTCKaRZicgOa2kQqaA,1505
2560
2560
  py2docfx/venv/venv1/Lib/site-packages/msal/authority.py,sha256=gT86mPhoxmVQ0aU6hOyOcMnXGKpbxDWKhNRWcPgQXAc,11314
2561
2561
  py2docfx/venv/venv1/Lib/site-packages/msal/broker.py,sha256=fdcLXhnWAizF3LrJVqJHsnavamTByeGczLjVaJDcXrM,12956
@@ -2565,17 +2565,17 @@ py2docfx/venv/venv1/Lib/site-packages/msal/individual_cache.py,sha256=K2e72EP3eE
2565
2565
  py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py,sha256=F_Q_MCrO7tx2kQBRJA1UVN9oTmr2XYShExPNRwDzlZk,32212
2566
2566
  py2docfx/venv/venv1/Lib/site-packages/msal/mex.py,sha256=_oub-3zNJUpt1KTRt_XUMxEMTOjHhLZQjzb_VLFHVHc,6455
2567
2567
  py2docfx/venv/venv1/Lib/site-packages/msal/region.py,sha256=N7Z43sbwjnQfoUQC6TBR8xy3v1oY_rI8hH0-AfiXa8g,1738
2568
- py2docfx/venv/venv1/Lib/site-packages/msal/sku.py,sha256=aPQf6TUIo37-jimfXpnetT7rrJ8vjmyJbbcBefjDQR8,183
2568
+ py2docfx/venv/venv1/Lib/site-packages/msal/sku.py,sha256=mszVyYMTOln3g6FFXqfa_SuwrdFC31cbI28YadpwMGo,183
2569
2569
  py2docfx/venv/venv1/Lib/site-packages/msal/telemetry.py,sha256=ePllJwgA14s-n70prBndAoyiQAMYy1aVam6VXexU0Ac,3192
2570
2570
  py2docfx/venv/venv1/Lib/site-packages/msal/throttled_http_client.py,sha256=No8Z2zGQhyxBMFi_mum1S1sCyB7_IaN258JM0vHAhIA,9023
2571
- py2docfx/venv/venv1/Lib/site-packages/msal/token_cache.py,sha256=C7wT4_VXQ3dDYxVIEv-Dm_m0Xo2ZJFXWkH21XnUVLcU,20713
2571
+ py2docfx/venv/venv1/Lib/site-packages/msal/token_cache.py,sha256=RJJ23t40W6LXt54PFM0Wd2YWHF1q9WJb5kcP9zQrs14,21036
2572
2572
  py2docfx/venv/venv1/Lib/site-packages/msal/wstrust_request.py,sha256=2S5eKxmK8fklnirBGewtdhkcA7O8JvE1KhJ8-c9k4yw,6098
2573
2573
  py2docfx/venv/venv1/Lib/site-packages/msal/wstrust_response.py,sha256=QfmdjMEf1vED8vGmtIMWI1UvspUHtFJ8ACjMfecje2g,4599
2574
2574
  py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/__init__.py,sha256=mss-rvQhJtwqdxDnxyUlR0wqYqlCZt6YeeZbLd3aNd8,219
2575
2575
  py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/assertion.py,sha256=CLniYdUJW58aCeKNO6gTuuJGguCxIBtts13wqMdb8qw,5690
2576
2576
  py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/authcode.py,sha256=BBBbWvC8m340Vkpye-bRkWgt5uUDWDXseGrbAGwJEZU,19154
2577
2577
  py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/http.py,sha256=doA49yyv2vSaqs3JtTl3YSiHkEDnnuPFOxUc1F2GIyA,2824
2578
- py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/oauth2.py,sha256=7UMhoxYudT2XFJ_Eyib8I0APAEWrZknPtpTLVJBLx70,42187
2578
+ py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/oauth2.py,sha256=KQ8zHGGCrm8qCmPvpwEO8yFmC7WKWFb_C9Xr_1YsvMs,42289
2579
2579
  py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/oidc.py,sha256=4S0yWXyz1u5aqmXkXVL38o_MIYVnSXyol2eDFUkOWRU,15087
2580
2580
  py2docfx/venv/venv1/Lib/site-packages/msal_extensions/__init__.py,sha256=GJ5lssYoaB-2cvEk1KoIXtwqAFLkdDzewr7O2xFR4-k,396
2581
2581
  py2docfx/venv/venv1/Lib/site-packages/msal_extensions/cache_lock.py,sha256=HT8Hucd1c76VQLGMKZYTLqMxWmUx6j-brVJcBMqQA18,2993
@@ -3915,7 +3915,7 @@ py2docfx/venv/venv1/Lib/site-packages/wheel/_commands/convert.py,sha256=0wSJMU0m
3915
3915
  py2docfx/venv/venv1/Lib/site-packages/wheel/_commands/pack.py,sha256=o3iwjfRHl7N9ul-M2kHbewLJZnqBLAWf0tzUCwoiTMw,3078
3916
3916
  py2docfx/venv/venv1/Lib/site-packages/wheel/_commands/tags.py,sha256=Rv2ySVb8-qX3osKp3uJgxcIMXkjt43XUD0-zvC6KvnY,4775
3917
3917
  py2docfx/venv/venv1/Lib/site-packages/wheel/_commands/unpack.py,sha256=Y_J7ynxPSoFFTT7H0fMgbBlVErwyDGcObgme5MBuz58,1021
3918
- py2docfx-0.1.21rc2249766.dist-info/METADATA,sha256=kOq0RFDPHviVDIk4_0LDaOuRCimlX_TG_bpt0pnkzOw,546
3919
- py2docfx-0.1.21rc2249766.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
3920
- py2docfx-0.1.21rc2249766.dist-info/top_level.txt,sha256=5dH2uP81dczt_qQJ38wiZ-gzoVWasfiJALWRSjdbnYU,9
3921
- py2docfx-0.1.21rc2249766.dist-info/RECORD,,
3918
+ py2docfx-0.1.22.dev2258230.dist-info/METADATA,sha256=GCKXgKosRdM58oa0w95u8rK4nH0zMQCTNMYhLbdZ_XQ,548
3919
+ py2docfx-0.1.22.dev2258230.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
3920
+ py2docfx-0.1.22.dev2258230.dist-info/top_level.txt,sha256=5dH2uP81dczt_qQJ38wiZ-gzoVWasfiJALWRSjdbnYU,9
3921
+ py2docfx-0.1.22.dev2258230.dist-info/RECORD,,