drf-to-mkdoc 0.1.9__py3-none-any.whl → 0.2.0__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.

Potentially problematic release.


This version of drf-to-mkdoc might be problematic. Click here for more details.

@@ -572,14 +572,22 @@ def _create_endpoint_header(
572
572
  "stylesheets/endpoints/animations.css",
573
573
  "stylesheets/endpoints/accessibility.css",
574
574
  "stylesheets/endpoints/loading.css",
575
+ "stylesheets/endpoints/try-out-sidebar.css",
576
+ ]
577
+ scripts = [
578
+ "javascripts/try-out-sidebar.js",
575
579
  ]
576
580
  prefix_path = f"{drf_to_mkdoc_settings.PROJECT_NAME}/"
577
581
  css_links = "\n".join(
578
582
  f'<link rel="stylesheet" href="{static(prefix_path + path)}">' for path in stylesheets
579
583
  )
584
+ js_scripts = "\n".join(
585
+ f'<script src="{static(prefix_path + path)}" defer></script>' for path in scripts
586
+ )
580
587
  content = f"""
581
- <!-- inject CSS directly -->
588
+ <!-- inject CSS and JS directly -->
582
589
  {css_links}
590
+ {js_scripts}
583
591
  """
584
592
  content += f"# {method.upper()} {path}\n\n"
585
593
  content += f"{format_method_badge(method)} `{path}`\n\n"
@@ -20,7 +20,7 @@ def generate_model_docs(models_data: dict[str, Any]) -> None:
20
20
  write_file(file_path, content)
21
21
 
22
22
 
23
- def render_fields_table(fields: dict[str, Any]) -> str:
23
+ def render_column_fields_table(fields: dict[str, Any]) -> str:
24
24
  """Render the fields table for a model."""
25
25
  content = "## Fields\n\n"
26
26
  content += "| Field | Type | Description | Extra |\n"
@@ -31,6 +31,10 @@ def render_fields_table(fields: dict[str, Any]) -> str:
31
31
  verbose_name = field_info.get("verbose_name", field_name)
32
32
  help_text = field_info.get("help_text", "")
33
33
 
34
+ display_name = field_name
35
+ if field_type in ["ForeignKey", "OneToOneField"]:
36
+ display_name = f"{field_name}_id"
37
+
34
38
  extra_info = []
35
39
  if field_info.get("null"):
36
40
  extra_info.append("null=True")
@@ -51,7 +55,7 @@ def render_fields_table(fields: dict[str, Any]) -> str:
51
55
  extra_str = ", ".join(extra_info) if extra_info else ""
52
56
  description_str = help_text or verbose_name
53
57
 
54
- content += f"| `{field_name}` | {field_type} | {description_str} | {extra_str} |\n"
58
+ content += f"| `{display_name}` | {field_type} | {description_str} | {extra_str} |\n"
55
59
 
56
60
  return content
57
61
 
@@ -121,35 +125,29 @@ def _create_model_header(name: str, app_label: str, table_name: str, description
121
125
 
122
126
  def _add_fields_section(model_info: dict[str, Any]) -> str:
123
127
  """Add the fields section to the model documentation."""
124
- fields = model_info.get("fields", {})
125
- non_relationship_fields = {
126
- name: info
127
- for name, info in fields.items()
128
- if info.get("type", "") not in ["ForeignKey", "OneToOneField", "ManyToManyField"]
129
- }
130
-
131
- if not non_relationship_fields:
128
+ column_fields = model_info.get("column_fields", {})
129
+ if not column_fields:
132
130
  return ""
133
131
 
134
- content = render_fields_table(non_relationship_fields)
135
- content += "\n"
136
- content += render_choices_tables(non_relationship_fields)
137
- content += "\n"
132
+ content = ""
133
+
134
+ column_fields_content = render_column_fields_table(column_fields)
135
+ if column_fields_content:
136
+ content += column_fields_content
137
+ content += "\n"
138
+
139
+ choices_content = render_choices_tables(column_fields)
140
+ if choices_content:
141
+ content += choices_content
142
+ content += "\n"
143
+
138
144
  return content
139
145
 
140
146
 
141
147
  def _add_relationships_section(model_info: dict[str, Any]) -> str:
142
148
  """Add the relationships section to the model documentation."""
143
- fields = model_info.get("fields", {})
144
- relationships = model_info.get("relationships", {})
145
-
146
- relationship_fields = {
147
- name: info
148
- for name, info in fields.items()
149
- if info.get("type", "") in ["ForeignKey", "OneToOneField", "ManyToManyField"]
150
- }
151
-
152
- if not (relationships or relationship_fields):
149
+ relationship_fields = model_info.get("relationships", {})
150
+ if not relationship_fields:
153
151
  return ""
154
152
 
155
153
  content = "## Relationships\n\n"
@@ -157,7 +155,7 @@ def _add_relationships_section(model_info: dict[str, Any]) -> str:
157
155
  content += "|-------|------|---------------|\n"
158
156
 
159
157
  content += _render_relationship_fields(relationship_fields)
160
- content += _render_relationships_from_section(relationships)
158
+ content += _render_relationships_from_section(relationship_fields)
161
159
  content += "\n"
162
160
 
163
161
  return content
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drf-to-mkdoc
3
- Version: 0.1.9
3
+ Version: 0.2.0
4
4
  Summary: Generate Markdown API docs from Django/DRF OpenAPI schema for MkDocs
5
5
  Author-email: Hossein Shayesteh <shayestehhs1@gmail.com>
6
6
  Maintainer-email: Hossein Shayesteh <shayestehhs1@gmail.com>
@@ -7,10 +7,11 @@ drf_to_mkdoc/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
7
7
  drf_to_mkdoc/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  drf_to_mkdoc/management/commands/build_docs.py,sha256=71dDDbb-qjRZr0kugviHtf3W_MSPFVjxkJ0tlLn97zM,4037
9
9
  drf_to_mkdoc/management/commands/generate_doc_json.py,sha256=mWdYgMbSeLP4iQZeUm2DxwYQmdGy8w05XTEfbT_nOJo,19833
10
- drf_to_mkdoc/management/commands/generate_docs.py,sha256=LUvKeJQ_cDL48rEfbWyjDsYEwzkQEpxpEjqUm11zQJg,5011
11
- drf_to_mkdoc/management/commands/generate_model_docs.py,sha256=A_Q6o10kfy-GN_ZDD9YS6jv3RTyxBy28DEsi5qKZZoU,13421
10
+ drf_to_mkdoc/management/commands/generate_docs.py,sha256=yxCuU5gXqpHEyL-U-li-s7X1Hae86Cb-Q2z3xlonw0k,4346
11
+ drf_to_mkdoc/management/commands/generate_model_docs.py,sha256=_A-C7gIZhCzFN4g9D8uwrd2yQW-HzgibCu4z_vx0QLM,13477
12
12
  drf_to_mkdoc/management/commands/update_doc_schema.py,sha256=TtHVQxnVpB_VELRkVcdsDXDU5zXdguFleB1mXCDMAbg,2009
13
13
  drf_to_mkdoc/static/drf-to-mkdoc/javascripts/endpoints-filter.js,sha256=KtfWroqsXg-wwmk36hpoH--M9WIW85EFNGeswMjFu4g,6138
14
+ drf_to_mkdoc/static/drf-to-mkdoc/javascripts/try-out-sidebar.js,sha256=zvEIm5rxTdMdmzElmmAqniIrI4ms2vsqGOMI0VFb_RQ,38953
14
15
  drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/accessibility.css,sha256=DwCGPoaxaUvyifryrKqmkFDH06XBNf65kYsflMTbi0M,494
15
16
  drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/animations.css,sha256=61m9SLAbatVUNuFeTUTxktoMu9SskYcwFjTsHYbsCRo,393
16
17
  drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/badges.css,sha256=kUlUcf72uRw6x6Gn7cUq_aTuSGBbhumZ4Us-eBDM7DM,1251
@@ -26,6 +27,7 @@ drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/sections.css,sha256=xdrO6
26
27
  drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/stats.css,sha256=0cDD8s63r6zQid_O1schNvfIwys1Y526xO6-B6s4Lxc,667
27
28
  drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/tags.css,sha256=dOw13qsvVjx9cibzgzXlOutXVosNp6LzFfEFKvumG8w,1785
28
29
  drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/theme-toggle.css,sha256=j1P5xDQDfos8jeVYz5s1jjEeujMlZtLi39OC6VeuMcA,1034
30
+ drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/try-out-sidebar.css,sha256=tkfQRpX0HTe09dqdjA4GxG5lOCLpw3Mp7VuxkFQtCvI,15829
29
31
  drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/variables.css,sha256=Sg2vcQOHdpmEFDn43OeZcMIKxtr5EOEI_wISkCmtcSU,1895
30
32
  drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/models/animations.css,sha256=IrqN9vJKgaHAWk2PBRKKmFHgH-lQlw5YZvEOGDqYk_g,656
31
33
  drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/models/base.css,sha256=qdXDVScWoEvFbSRfjDlnxvQZBy2JFX9yXPngMWNSZ7o,1849
@@ -35,16 +37,16 @@ drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/models/responsive.css,sha256=ygqyUt
35
37
  drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/models/variables.css,sha256=2HvyjnJrygSzdzpE-FYpo6FGhrYhmZ7NwDFAkADXQNg,1094
36
38
  drf_to_mkdoc/utils/__init__.py,sha256=6dFTb07S6yIf-INMy0Mlgf5purNir687ZU9WZtITh4k,68
37
39
  drf_to_mkdoc/utils/common.py,sha256=SxjGe9MtyxTyroXP7QdUiW9QqZ1N7xPjHHaAI-hqYxc,12077
38
- drf_to_mkdoc/utils/endpoint_detail_generator.py,sha256=mX3sklhWsd-FmOV-ePrhLpg5l8-Eu7V7qb5EL4Tq0FI,27650
40
+ drf_to_mkdoc/utils/endpoint_detail_generator.py,sha256=vAGQz_DV5wS47hfZNWgI_1oKarLdV5TJ6nwv47uMWw0,27911
39
41
  drf_to_mkdoc/utils/endpoint_list_generator.py,sha256=P7pEHscHNHpjDuTXmAUPYV3_t8uGSdaYOgiDGGoCwYc,9705
40
- drf_to_mkdoc/utils/model_detail_generator.py,sha256=P5kWO-5aWgvyPgzq1qXnt1380ExnrzlOw18zI57P9u0,8063
42
+ drf_to_mkdoc/utils/model_detail_generator.py,sha256=IHxgEW87Z-kxcFVVWqwdc7k7PsZAwXwixddt-tCvLKg,7961
41
43
  drf_to_mkdoc/utils/model_list_generator.py,sha256=7gTPwxOxlvvCfDgVPTbGPsLi1gnI47UjMqKc57qRmks,2409
42
44
  drf_to_mkdoc/utils/extractors/__init__.py,sha256=BvC8gKOPVI9gU1Piw0jRhKQ2ER5s1moAxgq7ZYkJWNI,86
43
45
  drf_to_mkdoc/utils/extractors/query_parameter_extractors.py,sha256=gnDlvF-bxkTp2NcEQf0EZZAfmdQzUpedhZ7N1LAYQzU,8432
44
46
  drf_to_mkdoc/utils/md_generators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
47
  drf_to_mkdoc/utils/md_generators/query_parameters_generators.py,sha256=N-XqZ_FUODSR5V4xM9oEA3aaIiNGNmNwpvrWbQTx6RI,2566
46
- drf_to_mkdoc-0.1.9.dist-info/licenses/LICENSE,sha256=3n9_ckIREsH8ogCxWW6dFsw_WfGcluG2mHcgl9i_UU0,1068
47
- drf_to_mkdoc-0.1.9.dist-info/METADATA,sha256=FgkNktIYpIuto47SGr2cvo_DdxMs15HGG6d8uaZAc7w,7037
48
- drf_to_mkdoc-0.1.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
49
- drf_to_mkdoc-0.1.9.dist-info/top_level.txt,sha256=ZzJecR6j_tvLZiubUBEgawHflozC4DQy9ooNf1yDJ3Q,13
50
- drf_to_mkdoc-0.1.9.dist-info/RECORD,,
48
+ drf_to_mkdoc-0.2.0.dist-info/licenses/LICENSE,sha256=3n9_ckIREsH8ogCxWW6dFsw_WfGcluG2mHcgl9i_UU0,1068
49
+ drf_to_mkdoc-0.2.0.dist-info/METADATA,sha256=UL7fU0BVLOoteGIHaJJxpNj2rHw9KXG1-l1xtKXJRno,7037
50
+ drf_to_mkdoc-0.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
51
+ drf_to_mkdoc-0.2.0.dist-info/top_level.txt,sha256=ZzJecR6j_tvLZiubUBEgawHflozC4DQy9ooNf1yDJ3Q,13
52
+ drf_to_mkdoc-0.2.0.dist-info/RECORD,,