mkdocstrings-matlab 0.3.0__tar.gz → 0.3.1__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/PKG-INFO +1 -1
  2. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/pyproject.toml +1 -1
  3. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/src/mkdocstrings_handlers/matlab/collect.py +73 -39
  4. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/src/mkdocstrings_handlers/matlab/models.py +4 -0
  5. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/.gitignore +0 -0
  6. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/.python-version +0 -0
  7. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/.vscode/launch.json +0 -0
  8. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/.vscode/settings.json +0 -0
  9. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/LICENSE +0 -0
  10. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/README.md +0 -0
  11. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/docs/index.md +0 -0
  12. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/docs/license.md +0 -0
  13. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/docs/logo.png +0 -0
  14. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/docs/stylesheets/extra.css +0 -0
  15. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/docs/usage/docstrings/google.md +0 -0
  16. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/docs/usage/docstrings/numpy.md +0 -0
  17. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/docs/usage/docstrings/sphinx.md +0 -0
  18. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/docs/usage/index.md +0 -0
  19. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/logo.png +0 -0
  20. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/mkdocs.yml +0 -0
  21. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/requirements.lock +0 -0
  22. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/src/mkdocs_material_matlab/__init__.py +0 -0
  23. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/src/mkdocs_material_matlab/css/style.css +0 -0
  24. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/src/mkdocs_material_matlab/mkdocs_material_matlab.py +0 -0
  25. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/src/mkdocstrings_handlers/matlab/__init__.py +0 -0
  26. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/src/mkdocstrings_handlers/matlab/enums.py +0 -0
  27. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/src/mkdocstrings_handlers/matlab/handler.py +0 -0
  28. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/src/mkdocstrings_handlers/matlab/py.typed +0 -0
  29. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/src/mkdocstrings_handlers/matlab/treesitter.py +0 -0
  30. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/test/debug.py +0 -0
  31. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/test/docs/api.md +0 -0
  32. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/test/docs/index.md +0 -0
  33. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/test/docs/namespace.md +0 -0
  34. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/test/mkdocs.yml +0 -0
  35. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/test/src/+myNamespace/+subpackage/nested.m +0 -0
  36. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/test/src/+myNamespace/@myClass/customMethod.m +0 -0
  37. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/test/src/+myNamespace/@myClass/myClass.m +0 -0
  38. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/test/src/+myNamespace/namespacefunction.m +0 -0
  39. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/test/src/AbstractFramework.m +0 -0
  40. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/test/src/DocumentationFramework.m +0 -0
  41. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/test/src/myfunction.m +0 -0
  42. {mkdocstrings_matlab-0.3.0 → mkdocstrings_matlab-0.3.1}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mkdocstrings-matlab
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: A MATLAB handler for mkdocstrings
5
5
  Author-email: Mark Hu <watermarkhu@gmail.com>
6
6
  License: ISC
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mkdocstrings-matlab"
3
- version = "0.3.0"
3
+ version = "0.3.1"
4
4
  description = "A MATLAB handler for mkdocstrings"
5
5
  authors = [
6
6
  { name = "Mark Hu", email = "watermarkhu@gmail.com" }
@@ -276,43 +276,55 @@ class PathCollection(ModulesCollection):
276
276
  document_parameters = not docstring_parameters and arguments_parameters
277
277
  document_returns = not docstring_returns and arguments_returns
278
278
 
279
- if document_parameters:
280
- parameters = DocstringSectionParameters(
281
- [
282
- DocstringParameter(
283
- name=param.name,
284
- value=str(param.default)
285
- if param.default is not None
286
- else None,
287
- annotation=param.annotation,
288
- description=param.docstring.value
289
- if param.docstring is not None
290
- else "",
291
- )
292
- for param in model.parameters
293
- if param.kind is not ParameterKind.keyword_only
294
- ]
279
+ standard_parameters = [
280
+ param for param in model.parameters
281
+ if param.kind is not ParameterKind.keyword_only
282
+ ]
283
+
284
+ keyword_parameters = [
285
+ param for param in model.parameters
286
+ if param.kind is ParameterKind.keyword_only
287
+ ]
288
+
289
+ if document_parameters and standard_parameters:
290
+ model.docstring._extra_sections.append(
291
+ DocstringSectionParameters(
292
+ [
293
+ DocstringParameter(
294
+ name=param.name,
295
+ value=str(param.default)
296
+ if param.default is not None
297
+ else None,
298
+ annotation=param.annotation,
299
+ description=param.docstring.value
300
+ if param.docstring is not None
301
+ else "",
302
+ )
303
+ for param in standard_parameters
304
+ ]
305
+ )
295
306
  )
296
307
 
297
- keywords = DocstringSectionParameters(
298
- [
299
- DocstringParameter(
300
- name=param.name,
301
- value=str(param.default)
302
- if param.default is not None
303
- else None,
304
- annotation=param.annotation,
305
- description=param.docstring.value
306
- if param.docstring is not None
307
- else "",
308
- )
309
- for param in model.parameters
310
- if param.kind is ParameterKind.keyword_only
311
- ],
312
- title="Keyword Arguments:",
308
+ if document_parameters and keyword_parameters:
309
+
310
+ model.docstring._extra_sections.append(
311
+ DocstringSectionParameters(
312
+ [
313
+ DocstringParameter(
314
+ name=param.name,
315
+ value=str(param.default)
316
+ if param.default is not None
317
+ else None,
318
+ annotation=param.annotation,
319
+ description=param.docstring.value
320
+ if param.docstring is not None
321
+ else "",
322
+ )
323
+ for param in keyword_parameters
324
+ ],
325
+ title="Keyword Arguments:",
326
+ )
313
327
  )
314
- model.docstring._extra_sections.append(parameters)
315
- model.docstring._extra_sections.append(keywords)
316
328
 
317
329
  if document_returns:
318
330
  returns = DocstringSectionReturns(
@@ -568,12 +580,17 @@ class LazyModel:
568
580
  if (
569
581
  member.is_file()
570
582
  and member.suffix == ".m"
571
- and member.name != "Contents.m"
572
583
  and member != classfile
573
584
  ):
574
- method = self._collect_path(member)
575
- method.parent = model
576
- model.members[method.name] = method
585
+ if member.name == "Contents.m" and model.docstring is None:
586
+ contentsfile = self._collect_path(member)
587
+ model.docstring = contentsfile.docstring
588
+ else:
589
+ method = self._collect_path(member)
590
+ method.parent = model
591
+ model.members[method.name] = method
592
+ if model.docstring is None:
593
+ model.docstring = self._collect_readme_md(path, model)
577
594
  return model
578
595
 
579
596
  def _collect_namespace(self, path: Path) -> Namespace | None:
@@ -589,9 +606,26 @@ class LazyModel:
589
606
  elif member.is_file() and member.suffix == ".m":
590
607
  if member.name == "Contents.m":
591
608
  contentsfile = self._collect_path(member)
592
- contentsfile.docstring = model.docstring
609
+ model.docstring = contentsfile.docstring
593
610
  else:
594
611
  submodel = self._path_collection._models[member].model()
595
612
  if submodel is not None:
596
613
  model.members[submodel.name] = submodel
614
+
615
+ if model.docstring is None:
616
+ model.docstring = self._collect_readme_md(path, model)
617
+
597
618
  return model
619
+
620
+ def _collect_readme_md(self, path, parent: MatlabMixin) -> Docstring | None:
621
+
622
+ if (path / "README.md").exists():
623
+ readme = path / "README.md"
624
+ elif (path / "readme.md").exists():
625
+ readme = path / "readme.md"
626
+ else:
627
+ return None
628
+
629
+ with open(readme, "r") as file:
630
+ content = file.read()
631
+ return Docstring(content, parent=parent)
@@ -558,3 +558,7 @@ class Namespace(MatlabMixin, PathMixin, Module, MatlabObject):
558
558
 
559
559
  def __repr__(self) -> str:
560
560
  return f"Namespace({self.path!r})"
561
+
562
+ @property
563
+ def is_internal(self) -> bool:
564
+ return any(part == "+internal" for part in self.filepath.parts) if self.filepath else False