Skip to content

Commit

Permalink
Replace docstrings triple double quotes with singles
Browse files Browse the repository at this point in the history
closes #403
  • Loading branch information
tefra committed Feb 4, 2021
1 parent a9c447d commit 3bdda16
Show file tree
Hide file tree
Showing 11 changed files with 56 additions and 54 deletions.
14 changes: 8 additions & 6 deletions tests/fixtures/docstrings/accessible/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ class RootEnum(Enum):

RootEnum.A.__doc__ = "Lorem ipsum dolor"
RootEnum.B.__doc__ = (
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi dapibus."
"Lorem ipsum dolor '''sit''' amet, consectetur adipiscing elit. Morbi "
"dapibus."
)


Expand All @@ -54,7 +55,7 @@ class RootD(Enum):

@dataclass
class Root:
"""This is the root type documentation. Lorem ipsum dolor sit amet,
"""This is the root type documentation. '''Lorem ipsum''' dolor sit amet,
consectetur adipiscing elit. Morbi dapibus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec
Expand All @@ -71,8 +72,8 @@ class Meta:
"namespace": "",
"required": True,
"doc": (
"This is an inner type field documentation.\nLorem ipsum dolor"
" sit amet, consectetur adipiscing elit. Aliquam nec."
"This is an inner type '''field''' documentation.\nLorem ipsum"
" dolor sit amet, consectetur adipiscing elit. Aliquam nec."
),
}
)
Expand Down Expand Up @@ -114,8 +115,9 @@ class A:
"namespace": "",
"required": True,
"doc": (
"This is an inner type field documentation.\nLorem ipsum dolor"
" sit amet, consectetur adipiscing elit. Vivamus efficitur."
"This is an inner type '''field''' documentation.\nLorem ipsum"
" dolor sit amet, consectetur adipiscing elit. Vivamus "
"efficitur."
),
}
)
14 changes: 7 additions & 7 deletions tests/fixtures/docstrings/google/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ class RootEnum(Enum):
"""
Attributes
A: Lorem ipsum dolor
B: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Morbi dapibus.
B: Lorem ipsum dolor '''sit''' amet, consectetur adipiscing
elit. Morbi dapibus.
"""
A = "A"
B = "B"
Expand All @@ -53,16 +53,16 @@ class RootD(Enum):

@dataclass
class Root:
"""This is the root type documentation. Lorem ipsum dolor sit amet,
"""This is the root type documentation. '''Lorem ipsum''' dolor sit amet,
consectetur adipiscing elit. Morbi dapibus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec
imperdiet lacus sed sagittis scelerisque. Ut sodales metus: "sit",
"amet", "lectus"
Attributes
a: This is an inner type field documentation. Lorem ipsum dolor
sit amet, consectetur adipiscing elit. Aliquam nec.
a: This is an inner type '''field''' documentation. Lorem ipsum
dolor sit amet, consectetur adipiscing elit. Aliquam nec.
b: This is a second root type field documentation.
c:
d:
Expand Down Expand Up @@ -109,8 +109,8 @@ class A:
This is an inner type documentation.
Attributes
sub_a: This is an inner type field documentation. Lorem
ipsum dolor sit amet, consectetur adipiscing elit.
sub_a: This is an inner type '''field''' documentation.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Vivamus efficitur.
"""
sub_a: Optional[str] = field(
Expand Down
14 changes: 7 additions & 7 deletions tests/fixtures/docstrings/numpy/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ class RootEnum(Enum):
Properties
----------
A: Lorem ipsum dolor
B: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi
dapibus.
B: Lorem ipsum dolor '''sit''' amet, consectetur adipiscing elit.
Morbi dapibus.
"""
A = "A"
B = "B"
Expand All @@ -55,7 +55,7 @@ class RootD(Enum):

@dataclass
class Root:
"""This is the root type documentation. Lorem ipsum dolor sit amet,
"""This is the root type documentation. '''Lorem ipsum''' dolor sit amet,
consectetur adipiscing elit. Morbi dapibus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec
Expand All @@ -64,8 +64,8 @@ class Root:
Parameters
----------
a: This is an inner type field documentation. Lorem ipsum dolor sit
amet, consectetur adipiscing elit. Aliquam nec.
a: This is an inner type '''field''' documentation. Lorem ipsum
dolor sit amet, consectetur adipiscing elit. Aliquam nec.
b: This is a second root type field documentation.
c:
d:
Expand Down Expand Up @@ -113,8 +113,8 @@ class A:
Parameters
----------
sub_a: This is an inner type field documentation. Lorem ipsum
dolor sit amet, consectetur adipiscing elit. Vivamus
sub_a: This is an inner type '''field''' documentation. Lorem
ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
efficitur.
"""
sub_a: Optional[str] = field(
Expand Down
16 changes: 8 additions & 8 deletions tests/fixtures/docstrings/rst/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ class Meta:
class RootEnum(Enum):
"""
:cvar A: Lorem ipsum dolor
:cvar B: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Morbi dapibus.
:cvar B: Lorem ipsum dolor '''sit''' amet, consectetur adipiscing
elit. Morbi dapibus.
"""
A = "A"
B = "B"
Expand All @@ -51,15 +51,15 @@ class RootD(Enum):

@dataclass
class Root:
"""This is the root type documentation. Lorem ipsum dolor sit amet,
"""This is the root type documentation. '''Lorem ipsum''' dolor sit amet,
consectetur adipiscing elit. Morbi dapibus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec
imperdiet lacus sed sagittis scelerisque. Ut sodales metus: "sit",
"amet", "lectus"
:ivar a: This is an inner type field documentation. Lorem ipsum
dolor sit amet, consectetur adipiscing elit. Aliquam nec.
:ivar a: This is an inner type '''field''' documentation. Lorem
ipsum dolor sit amet, consectetur adipiscing elit. Aliquam nec.
:ivar b: This is a second root type field documentation.
:ivar c:
:ivar d:
Expand Down Expand Up @@ -105,9 +105,9 @@ class A:
"""
This is an inner type documentation.
:ivar sub_a: This is an inner type field documentation. Lorem
ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
efficitur.
:ivar sub_a: This is an inner type '''field''' documentation.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Vivamus efficitur.
"""
sub_a: Optional[str] = field(
default=None,
Expand Down
8 changes: 4 additions & 4 deletions tests/fixtures/docstrings/schema.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<xsd:element name="Root">
<xsd:annotation>
<xsd:documentation>
This is the root type documentation. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi dapibus.
This is the root type documentation. """Lorem ipsum""" dolor sit amet, consectetur adipiscing elit. Morbi dapibus.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec imperdiet lacus sed sagittis scelerisque. Ut sodales metus: "sit", "amet", "lectus"
</xsd:documentation>
Expand All @@ -12,7 +12,7 @@
<xsd:element name="a">
<xsd:annotation>
<xsd:documentation>
This is an inner type field documentation.
This is an inner type """field""" documentation.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam nec.
</xsd:documentation>
</xsd:annotation>
Expand All @@ -26,7 +26,7 @@
<xsd:element name="sub_a" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
This is an inner type field documentation.
This is an inner type '''field''' documentation.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus efficitur.
</xsd:documentation>
</xsd:annotation>
Expand Down Expand Up @@ -95,7 +95,7 @@
<xsd:enumeration value="B">
<xsd:annotation>
<xsd:documentation>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi dapibus.
Lorem ipsum dolor """sit""" amet, consectetur adipiscing elit. Morbi dapibus.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
Expand Down
28 changes: 14 additions & 14 deletions xsdata/formats/dataclass/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,19 +158,19 @@ def field_metadata(
namespace = attr.namespace

restrictions = attr.restrictions.asdict(attr.native_types)
doc = attr.help if self.docstring_style == DocstringStyle.ACCESSIBLE else None
metadata = {
"name": name,
"type": attr.xml_type,
"namespace": namespace,
"mixed": attr.mixed,
"choices": self.field_choices(attr, parent_namespace, parents),
**restrictions,
}

return self.filter_metadata(
{
"name": name,
"type": attr.xml_type,
"namespace": namespace,
"mixed": attr.mixed,
"choices": self.field_choices(attr, parent_namespace, parents),
**restrictions,
"doc": doc,
}
)
if self.docstring_style == DocstringStyle.ACCESSIBLE and attr.help:
metadata["doc"] = attr.help.replace('"""', "'''")

return self.filter_metadata(metadata)

def field_choices(
self, attr: Attr, parent_namespace: Optional[str], parents: List[str]
Expand Down Expand Up @@ -208,8 +208,8 @@ def field_choices(
metadata[default_key] = self.field_default_value(choice)
metadata.update(restrictions)

if self.docstring_style == DocstringStyle.ACCESSIBLE:
metadata["doc"] = choice.help
if self.docstring_style == DocstringStyle.ACCESSIBLE and choice.help:
metadata["doc"] = choice.help.replace('"""', "'''")

result.append(self.filter_metadata(metadata))

Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{{ '"""{}"""'.format(obj.help | text_strip) }}
{{ '"""{}"""'.format(obj.help | text_strip | replace('"""', "'''")) }}
4 changes: 2 additions & 2 deletions xsdata/formats/dataclass/templates/docstrings.google.jinja2
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{% set offset = (level + 2) * 4 + 7 -%}
{{ '"""{}"""'.format(obj.help | text_strip) }}
{{ '"""{}"""'.format(obj.help | text_strip | replace('"""', "'''")) }}
{% if obj.has_help_attr %}
Attributes
{%- for var_name, var_doc in obj | class_params %}
{{ "{}: {}".format(var_name, var_doc) | text_wrap(offset) | indent(first=True) }}
{{ "{}: {}".format(var_name, var_doc.replace('"""', "'''")) | text_wrap(offset) | indent(first=True) }}
{%- endfor -%}
{%- endif %}
4 changes: 2 additions & 2 deletions xsdata/formats/dataclass/templates/docstrings.numpy.jinja2
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{% set offset = (level + 1) * 4 + 7 -%}
{{ '"""{}"""'.format(obj.help | text_strip) }}
{{ '"""{}"""'.format(obj.help | text_strip | replace('"""', "'''")) }}
{% if obj.has_help_attr %}
{{ "Properties" if obj.is_enumeration else "Parameters" }}
----------
{%- for var_name, var_doc in obj | class_params %}
{{ "{}: {}".format(var_name, var_doc) | text_wrap(offset) }}
{{ "{}: {}".format(var_name, var_doc.replace('"""', "'''")) | text_wrap(offset) }}
{%- endfor -%}
{%- endif %}
4 changes: 2 additions & 2 deletions xsdata/formats/dataclass/templates/docstrings.rst.jinja2
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{% set offset = (level + 1) * 4 + 7 -%}
{% set is_enum = obj.is_enumeration -%}
{% set prefix = "cvar" if is_enum else "ivar" -%}
{{ '"""{}"""'.format(obj.help | text_strip) }}
{{ '"""{}"""'.format(obj.help | text_strip | replace('"""', "'''")) }}
{% if obj.has_help_attr %}
{%- for var_name, var_doc in obj | class_params %}
{{ ":{} {}: {}".format(prefix, var_name, var_doc) | text_wrap(offset) }}
{{ ":{} {}: {}".format(prefix, var_name, var_doc.replace('"""', "'''")) | text_wrap(offset) }}
{%- endfor %}
{%- endif %}
2 changes: 1 addition & 1 deletion xsdata/formats/dataclass/templates/enum.jinja2
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,6 @@ class {{ class_name }}(Enum):
{{ "\n\n" if level == 0 else "\n" }}
{%- for attr in obj.attrs if attr.help %}
{% set member_name = "{}.{}.__doc__ = ".format(class_name, attr.name | constant_name(obj.name)) -%}
{{ member_name }}{{ attr.help | format_string(indent=0, key=member_name) }}
{{ member_name }}{{ attr.help | replace('"""', "'''") | format_string(indent=0, key=member_name) }}
{%- endfor -%}
{%- endif -%}

0 comments on commit 3bdda16

Please sign in to comment.