Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.1.1 rederiving enums #208

Merged
merged 1 commit into from
Jul 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions CodeGenerationTools/GridworksCore/Enum/DeriveEnums.xslt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<xsl:template match="/">
<FileSet>
<FileSetFiles>
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gwproto') and not (NoVersions = 'true')]">
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gridworks') and not (NoVersions = 'true')]">
<xsl:variable name="enum-id" select="GtEnumId"/>
<xsl:variable name="enum-version" select="EnumVersion"/>
<xsl:variable name="enum-name" select="EnumName"/>
Expand All @@ -32,7 +32,7 @@
</xsl:call-template>
</xsl:variable>
<FileSetFile>
<xsl:element name="RelativePath"><xsl:text>../../../src/gwproto/enums/</xsl:text>
<xsl:element name="RelativePath"><xsl:text>../../../src/gw/enums/</xsl:text>
<xsl:value-of select="translate(LocalName,'.','_')"/><xsl:text>.py</xsl:text></xsl:element>

<OverwriteMode>Always</OverwriteMode>
Expand All @@ -43,7 +43,7 @@
from typing import List
from typing import Optional

from gridworks.enums import GwStrEnum
from gw.enums import GwStrEnum


class </xsl:text><xsl:value-of select="$enum-class-name"/>
Expand All @@ -63,8 +63,7 @@ class </xsl:text><xsl:value-of select="$enum-class-name"/>
Enum </xsl:text><xsl:value-of select="Name"/><xsl:text> version </xsl:text><xsl:value-of select="$enum-version"/>
<xsl:text> in the GridWorks Type registry.

Used by used by multiple Application Shared Languages (ASLs), including but not limited to
gwproto. For more information:
Used by used by multiple Application Shared Languages (ASLs). For more information:
- [ASLs](https://gridworks-type-registry.readthedocs.io/en/latest/)
- [Global Authority](https://gridworks-type-registry.readthedocs.io/en/latest/enums.html#</xsl:text>
<xsl:value-of select="translate($enum-name,'.','')"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<xsl:template match="/">
<FileSet>
<FileSetFiles>
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gwproto')]">
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gridworks')]">
<xsl:variable name="versioned-enum-id" select="VersionedEnum"/>
<xsl:for-each select="$airtable//VersionedEnums/VersionedEnum[(VersionedEnumId = $versioned-enum-id) and (Status = 'Active' or Status = 'Pending')]">
<xsl:variable name="enum-name" select="EnumName"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Enum Application Shared Language (ASL) Specifications
===============

</xsl:text>
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gwproto')]">
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gridworks')]">
<xsl:sort select="VersionedTypeName" data-type="text"/>
<xsl:variable name="versioned-enum-id" select="VersionedEnum"/>
<xsl:for-each select="$airtable//VersionedEnums/VersionedEnum[(VersionedEnumId = $versioned-enum-id) and (Status = 'Active' or Status = 'Pending')]">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@
<FileSet>

<FileSetFile>
<xsl:element name="RelativePath"><xsl:text>../../../../src/gwproto/enums/__init__.py</xsl:text></xsl:element>
<xsl:element name="RelativePath"><xsl:text>../../../../src/gw/enums/__init__.py</xsl:text></xsl:element>

<OverwriteMode>Always</OverwriteMode>
<xsl:element name="FileContents">
<xsl:text>"""
GridWorks Enums used in gwproto, the Application Shared Language (ASL) used by SCADA
GridWorks Enums used in gw, the Application Shared Language (ASL) used by SCADA
devices and AtomicTNodes to communicate with each other. These enums play a specific structural
role as semantic "glue" within ASLs.

Expand Down Expand Up @@ -56,11 +56,13 @@ on these ideas:
- [ASLs](https://gridwork-type-registry.readthedocs.io/en/latest/asls.html)


"""</xsl:text>
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gwproto') and not(normalize-space(EnumName)='')]">
"""

from gw.enums.gw_str_enum import GwStrEnum</xsl:text>
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gridworks') and not(normalize-space(EnumName)='')]">
<xsl:sort select="LocalEnumName" data-type="text"/>
<xsl:text>
from gwproto.enums.</xsl:text>
from gw.enums.</xsl:text>
<xsl:value-of select="translate(LocalEnumName,'.','_')"/>
<xsl:text> import </xsl:text>
<xsl:call-template name="nt-case">
Expand All @@ -72,8 +74,9 @@ from gwproto.enums.</xsl:text>
<xsl:text>


__all__ = [</xsl:text>
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gwproto')]">
__all__ = [
"GwStrEnum",</xsl:text>
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gridworks')]">
<xsl:sort select="LocalEnumName" data-type="text"/>
<xsl:variable name="gt-enum-id" select="GtEnumId"/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<xsl:template match="/">
<FileSet>
<FileSetFiles>
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gwproto')]">
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gridworks')]">
<xsl:variable name="enum-id" select="GtEnumId"/>
<xsl:variable name="version" select="EnumVersion"/>
<xsl:variable name="enum-name" select="EnumName"/>
Expand All @@ -43,7 +43,7 @@ Tests for enum </xsl:text><xsl:value-of select="Name"/><xsl:text>.</xsl:text><xs
<xsl:text> from the GridWorks Type Registry.
"""

from gwproto.enums import </xsl:text><xsl:value-of select="$local-class-name"/><xsl:text>
from gw.enums import </xsl:text><xsl:value-of select="$local-class-name"/><xsl:text>


def test_</xsl:text> <xsl:value-of select="translate(LocalName,'.','_')"/>
Expand All @@ -70,7 +70,7 @@ def test_</xsl:text> <xsl:value-of select="translate(LocalName,'.','_')"/>
<xsl:text>",</xsl:text>
</xsl:otherwise>
</xsl:choose>

</xsl:for-each>
<xsl:text>
}
Expand All @@ -96,7 +96,7 @@ def test_</xsl:text> <xsl:value-of select="translate(LocalName,'.','_')"/>
<xsl:value-of select="$version"/>
<xsl:text>"
</xsl:text>


<xsl:for-each select="$airtable//EnumSymbols/EnumSymbol[(Enum = $enum-id) and (Version &lt;= $version)]">
<xsl:sort select="Idx" data-type="number"/>
Expand All @@ -117,7 +117,7 @@ def test_</xsl:text> <xsl:value-of select="translate(LocalName,'.','_')"/>
for value in </xsl:text><xsl:value-of select="$local-class-name"/><xsl:text>.values():
symbol = </xsl:text><xsl:value-of select="$local-class-name"/><xsl:text>.value_to_symbol(value)
assert </xsl:text><xsl:value-of select="$local-class-name"/><xsl:text>.symbol_to_value(symbol) == value</xsl:text>

</xsl:if>

<!-- Add newline at EOF for git and pre-commit-->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<xsl:template match="/">
<FileSet>
<FileSetFiles>
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gwproto') and (EnumType = 'Literal')]">
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gridworks') and (EnumType = 'Literal')]">
<xsl:variable name="enum-id" select="GtEnumId"/>
<xsl:variable name="enum-version" select="EnumVersion"/>
<xsl:variable name="enum-name" select="EnumName"/>
Expand All @@ -31,15 +31,15 @@
</xsl:call-template>
</xsl:variable>
<FileSetFile>
<xsl:element name="RelativePath"><xsl:text>../../../../src/gwproto/enums/</xsl:text>
<xsl:element name="RelativePath"><xsl:text>../../../../src/gw/enums/</xsl:text>
<xsl:value-of select="translate(LocalName,'.','_')"/><xsl:text>.py</xsl:text></xsl:element>

<OverwriteMode>Always</OverwriteMode>
<xsl:element name="FileContents">


<xsl:text>
# Literal Enum:
# Literal Enum:
# - no additional values can be added over time.
# - Sent as-is, not in hex symbol
from enum import auto
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<xsl:template match="/">
<FileSet>
<FileSetFiles>
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gwproto') and (EnumType = 'OldSchool')]">
<xsl:for-each select="$airtable//ProtocolEnums/ProtocolEnum[(normalize-space(ProtocolName) ='gridworks') and (EnumType = 'OldSchool')]">
<xsl:variable name="enum-id" select="GtEnumId"/>
<xsl:variable name="enum-version" select="EnumVersion"/>
<xsl:variable name="enum-name" select="EnumName"/>
Expand All @@ -31,7 +31,7 @@
</xsl:call-template>
</xsl:variable>
<FileSetFile>
<xsl:element name="RelativePath"><xsl:text>../../../../src/gwproto/enums/</xsl:text>
<xsl:element name="RelativePath"><xsl:text>../../../../src/gw/enums/</xsl:text>
<xsl:value-of select="translate(LocalName,'.','_')"/><xsl:text>.py</xsl:text></xsl:element>

<OverwriteMode>Always</OverwriteMode>
Expand Down Expand Up @@ -65,7 +65,7 @@ class </xsl:text><xsl:value-of select="$enum-class-name"/>

<xsl:value-of select="LocalValue"/>

<xsl:text> = </xsl:text><xsl:value-of select="Symbol"/>
<xsl:text> = </xsl:text><xsl:value-of select="Symbol"/>


</xsl:for-each>
Expand Down
10 changes: 10 additions & 0 deletions CodeGenerationTools/GridworksCore/GnfCommon.xslt
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,16 @@
</xsl:template>


<xsl:template name="insert-spaces">
<xsl:param name="count" select="4"/>
<xsl:if test="$count > 0">
<xsl:text> </xsl:text>
<xsl:call-template name="insert-spaces">
<xsl:with-param name="count" select="$count - 1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>

<xsl:template name="message-case">
<xsl:param name="type-name-text" select="''"></xsl:param>
<xsl:param name="is_first" select="'true'"></xsl:param>
Expand Down
2 changes: 1 addition & 1 deletion CodeGenerationTools/GridworksCore/ODXML/DataSchema.odxml

Large diffs are not rendered by default.

Loading
Loading