From 308a6f6cedf4fa795fdf2a280a242c83e16380bd Mon Sep 17 00:00:00 2001 From: Stephen Dawson-Haggerty Date: Wed, 12 Apr 2023 09:28:35 -0400 Subject: [PATCH 1/2] Lint: add basic ontology linting for structure and spelling This commit starts to add additional linting for the OAP, in order to validate the structure and content of the documents. There are two pieces to this commit: * Structural linting uses yamale to validate the OAP data against yaml schema for equipment, points, and tags files. The schemas are based on the actual data present and so might not be exactly what the designers intended; but prevent indentation errors. * Spellchecking runs cspell on the text. Identifiers and other words must be added to lint/ids.txt or the build will fail. * Two github workflows which run these linters on commit. In the future, we should add additional check; eg to ensure each point has a definition (see #2); but until that issue is closed the test would fail anyways. --- .github/workflows/lint.yml | 25 + .github/workflows/spellcheck.yml | 26 + lint/cspell.json | 6 + lint/equip.schema.yaml | 21 + lint/ids.txt | 986 +++++++++++++++++++++++++++++++ lint/includes.schema.yaml | 28 + lint/lint.py | 26 + lint/point.schema.yaml | 17 + lint/requirements.txt | 2 + lint/tags.schema.yaml | 9 + 10 files changed, 1146 insertions(+) create mode 100644 .github/workflows/lint.yml create mode 100644 .github/workflows/spellcheck.yml create mode 100644 lint/cspell.json create mode 100644 lint/equip.schema.yaml create mode 100644 lint/ids.txt create mode 100644 lint/includes.schema.yaml create mode 100644 lint/lint.py create mode 100644 lint/point.schema.yaml create mode 100644 lint/requirements.txt create mode 100644 lint/tags.schema.yaml diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..b339292 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,25 @@ +on: + push: + branches: + - develop + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - develop +jobs: + lint: + if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') + runs-on: ubuntu-latest + name: Run the linter on the dataset + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: 3.x + - name: Install prereqs + working-directory: lint + run: pip install -r requirements.txt + - name: Run linter + working-directory: lint + run: python lint.py + diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml new file mode 100644 index 0000000..c253840 --- /dev/null +++ b/.github/workflows/spellcheck.yml @@ -0,0 +1,26 @@ +on: + push: + branches: + - develop + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - develop +jobs: + lint: + if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') + runs-on: ubuntu-latest + name: Run cspell on the dataset using our saved dictionary of ignore words + steps: + - uses: actions/checkout@v2 + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + - name: Install cspell + working-directory: lint + run: npm install -g cspell + - name: Run spellcheck + working-directory: lint + run: cspell ../data/**/*.yaml + diff --git a/lint/cspell.json b/lint/cspell.json new file mode 100644 index 0000000..a7ee921 --- /dev/null +++ b/lint/cspell.json @@ -0,0 +1,6 @@ +{ + "dictionaries": ["en_us", "ids"], + "dictionaryDefinitions": [ + {"name": "ids", "path": "./ids.txt"} + ] +} diff --git a/lint/equip.schema.yaml b/lint/equip.schema.yaml new file mode 100644 index 0000000..7ff7844 --- /dev/null +++ b/lint/equip.schema.yaml @@ -0,0 +1,21 @@ +map(include("equip")) +--- +equip: + name: str() + description: str(required=False) + short_name: str(required=False) + haystack: include("haystack") + extends: str(required=False) + is_base: bool(required=False) + contains: list(str(), required=False) + attributes: list(str(), required=False) + points: list(str(), required=False) + points_base: list(str(), required=False) + ifc_class: str(required=False) + ifc_type: str(required=False) + functions: list(str(), required=False) + functions_base: list(str(), required=False) + brick_ontology: str(required=False) + google_ontology: str(required=False) + deprecated: bool(required=False) + kpi: list(str(), required=False) diff --git a/lint/ids.txt b/lint/ids.txt new file mode 100644 index 0000000..88c62d7 --- /dev/null +++ b/lint/ids.txt @@ -0,0 +1,986 @@ +ACFREQ +ACIA +ACIAVG +ACIB +ACIC +ACITTL +ACPF +ACPFA +ACPFAVG +ACPFB +ACPFC +ACSLVL +ACVA +ACVAB +ACVAVG +ACVB +ACVBC +ACVC +ACVCA +ACVLLAVG +ADFBK +ADPSP +AFLWSP +AHMS +AHUDFVCO +AHUDFVCOEC +AHUDFVCOECEFV +AHUDFVCOECPH +AHUDFVCOECPHEFV +AHUWSHP +AHUWSHPDZ +AIRCO +AIRDWP +AIRENTH +AIRHANDLER +airside +AIRSP +AIRTEMP +ALMSP +ALRMPT +ALRMPTCD +ALRMRESET +APPENE +APPPWR +ASNLNDCALL +ATPS +ATSP +ATWHP +Autowalk +AVCM +AVSYS +BAHTST +BANKBR +BATLLST +BATLVL +BATST +BCPSSCMD +BCPSSST +BDWM +BFWP +biotechnical +BLDSPR +BLDSPRSP +blowdown +Blowdown +BREAKRM +BRPR +BRSEL +BSMNT +BSPC +BSWPSSCMD +BSWPSSST +btus +BYPCHWFL +BYPD +BYPDCMD +BYPV +CAFC +CARDIR +CARDIRCMD +CARDRST +CARDRVST +CARLD +CARMD +CARNXTPOS +CARPOS +CCDAT +CDAFLW +CDDAT +CDDATSP +CDDCMD +CDDT +CHBZC +CHWBYPVCMD +CHWBYPVFBK +CHWC +CHWCOIL +CHWDC +CHWDPR +CHWDPRFL +CHWDPRSP +CHWDT +CHWFLWMNSP +CHWHWPL +CHWISOVCMD +CHWISOVFBK +CHWM +CHWP +CHWPL +CHWRT +CHWST +CHWV +CHWVCMD +CHWVFBK +CHWZC +CLASSRM +CLCMD +CLDEM +CLDEV +CLINET +CLREQ +CLSTG +CLSTGCT +CLSTS +CLTHRMPWR +CMLC +CMPFREQ +CMPRFET +CMPRFLT +CMPSPCMD +CMPSPFBK +CMPSSCMD +CMPST +CMST +CNDFFREQ +CNDFSPCMD +CNDRFLT +CNDRFPR +CNDRFSTT +Cnet +CNPST +CNTMDCFG +CNTRL +COGEN +Cogenerator +COMPNET +CONRM +COVCMD +COVFBK +CPULD +crac +CRAC +CRAH +CSTMGEN +CTBYPVCMD +CTFS +CTRLR +CTSEP +CTSFLT +CWBYPVCMD +CWBYPVFBK +CWCOIL +CWDPR +CWDPRSP +CWHXTC +CWISOVCMD +CWISOVFBK +CWLC +CWPL +CWRT +CWST +CWVCMD +CWVFBK +DACO +DADCMD +DADCMDCL +DADCMDOP +DADCTSPR +DADCTSPRSP +DADFBK +DADHRHSP +DADUCT +DADWP +DAFLW +DAFLWSP +DAHUMRHSP +DARH +DARHSP +DASDST +DATACTR +DATAHALL +Datapaths +DATCLSP +DATHTSP +DATSP +daylighting +Daylighting +deadband +Deadband +deaerator +Deaerator +deaerators +DEHW +DEVNET +DEVPT +DEWH +dewpoint +Dewpoint +DFANW +DFCMD +DFDVC +DFFREQ +DFMDSP +DFOVCMD +DFSPCMD +DFSPCMDH +DFSPCMDL +DFSPFBK +DFSS +DFST +DFVDC +DFVSC +DGWH +DHCMD +DHPWH +DHUM +DHWC +DHWDT +DHWHT +DHWM +DHWPL +DHWS +DHWST +DHWTT +DHXWH +DIGSIGN +DIMCMD +DISTCTR +DISTRIBUTIONBOARD +DLTLVLSP +DMPACT +doas +DOAS +DORMRM +DPRCMD +DPRCMDCL +DPRCMDOP +DPRFL +DPRREQ +DRSTS +DSPC +DTSP +ductwork +DVST +DWPR +DWSTS +DWTRTRT +DXCOIL +DXDC +DXZC +EADCMD +EADCTSPR +EADCTSPRSP +EADFBK +EADT +EAFC +EAFLW +EAFLWSP +EARH +ECCMD +ECENCMD +ECHWFL +ECHWFLST +ECHWISOVCMD +ECHWISOVFBK +ECHWT +ECMDSP +ECMODE +ECOALCKESP +ECOALCKTSP +ECWISOVCMD +ECWISOVFBK +ECWT +EDHWT +EDRM +EFANI +EFANP +EFANW +EFCMD +EFFCDAFLWSP +EFFDAFLWSP +EFFHDAFLWSP +EFFIAFLWSP +EFFREQ +EFFZTCLSP +EFFZTDB +EFFZTHTSP +EFFZTSP +EFLTLVLSP +EFSPCMD +EFSPFBK +EFSS +EFST +EFVSC +EHTOCMD +EHWFL +EHWISOVCMD +EHWISOVFBK +EHWT +EHXISOVCMD +EHXISOVFBK +ELDPRFL +elec +Elec +ELEC +ELECRM +ELVCALL +ELVGRP +ELVLND +ELVOOS +ELVST +EMOVC +ENCMD +ENDLC +ENERGYEXP +ENERGYIMP +ENERGYMETER +ENERGYNET +ENERPWR +ENLDSH +Environmment +EPMS +EPRTBAND +EPRTERR +EPRTST +ESCOOS +ESTWNDSPD +EVCLCMD +EVCLSTS +EVPRFET +EVPRFLT +EVPRFPR +EVPRFSTT +EVPRRLT +EWTSP +Façade +FANCMD +FANI +FANP +FANSPCMD +FANSPFBK +FANSPMD +FANSPMDCMD +FANST +FANW +FCUDACO +FCUVRFZC +FCUZC +FCUZCCO +FCUZCCOD +FCUZCHOE +feedwater +Feedwater +FIMS +FINOFF +FIREZONE +FLGST +flowrate +FLTCD +FLTDPR +FLTPT +FLTST +FODT +FOMFL +footcandle +footcandles +FOST +Freezestat +FRZST +FSTFOOD +FSUP +FTNSRM +GASMETER +GHCOIL +GLYCON +guidevane +HAFC +HCDAT +hcho +HDAFLW +HDDAT +HDDATSP +HDDCMD +HEALTHCARERM +HGRC +HLTH +HMCMD +HMLC +HOAST +Horiz +HPLD +HPZC +HRBYPDCMD +HRDAT +HRWC +HRWCMD +HRWSPCMD +HRWST +HTCMD +HTDEM +HTDT +HTEZC +HTGCLGV +HTGRHDB +HTGRHDBSP +HTGRHSP +HTGRHVCMD +HTGZC +HTREQ +HTSTG +HTSTGCT +HTSTS +HTTHRMPWR +HTZC +HUMIDITYSENSOR +hvac +HVAC +HVACMDCMD +HVACMDSP +HVACZONE +HVCPB +HVDP +HVSB +HVSP +HWBISOV +HWBLR +HWBPVCMD +HWBYPVCMD +HWCOIL +HWDC +HWDPR +HWDPRFL +HWDPRSP +HWDT +HWISOVCMD +HWISOVFBK +HWPL +HWRT +HWST +HWVCMD +HWVFBK +HWZC +HXISOVCMD +hydronic +Hydronic +IADCMD +IADCMDCL +IADCMDOP +IADFBK +IAFLW +IAFLWCLMNSP +IAFLWCLMXSP +IAFLWHTMNSP +IAFLWHTMXSP +IAFLWSP +IAQI +IAQZONE +IGVFBK +ILLUM +IPAAS +ISOADCMD +ISOVCMD +ITDEV +JMFLT +kgal +kilobtu +KPICODE +LABROOM +LCHWFL +LCHWFLOWSP +LCHWFLST +LCHWISOVCMD +LCHWISOVFBK +LCHWT +LCHWTSP +LCKRROOM +LCWFL +LCWFLSP +LCWISOVCMD +LCWISOVFBK +LCWT +LCWTSP +LDHWT +LDHWTSP +LDSHLTLVLSP +LHWFL +LHWFLSP +LHWISOVCMD +LHWISOVFBK +LHWT +LHWTSP +LHXISOVCMD +LHXISOVFBK +LIGHTSENSOR +linearvelocity +LKFLT +llows +LNDCALL +LNDDRST +LNIPCNT +LNOPCNT +LNPCS +loadshed +loadshedding +Loadshedding +LOCM +LSCTR +LSTP +LSTT +LTCH +LTCIR +LTCIRCMD +LTCLRT +LTCMD +LTGW +LTGZONE +LTLVL +LTLVLCMD +LTLVLSP +LTOCMODE +LTPC +LTSC +LTST +luminaire +LVCPB +LVDB +LVDP +LVLHFLT +LVLLFLT +LVSB +LWGW +LWISOVC +LWISOVCMD +LWISOVST +LWTC +MACO +MADUCT +MAENTH +MAFLTST +MAFLW +MARH +MATSP +MDAP +MDST +MDVCP +MECHRM +megabtu +MGMTS +MGZVB +MIXUSE +MKCARCALL +MKUPWVCMD +MLTFAM +MNOADSP +MOAFC +Modbus +MOVEMENTSENSOR +MTRG +multispeed +MUWM +MVSB +MXWVCMD +MXWVFBK +NGDPRFL +NGEN +NGFLOW +NGPWR +NGTEMP +NGVCMD +NGVOL +NOTDEFINED +OACLLCKTSP +OACO +OADCMD +OADFBK +OADUCT +OADWP +OAENTH +OAFLTST +OAFLW +OAFLWMNSP +OAFLWSP +OAHTLCKTSP +OALCKTSP +OARH +OATEMP +OATVOC +OAWBTEMP +OCCCDAFLWMNSP +OCCCDAFLWMXSP +OCCCMD +OCCCT +OCCDWTM +OCCEFFSP +OCCHDAFLWMNSP +OCCHDAFLWMXSP +OCCIAFLWCLMNSP +OCCIAFLWCLMXSP +OCCIAFLWHTMNSP +OCCIAFLWHTMXSP +OCCIAFLWMNSP +OCCIAFLWMXSP +OCCPS +OCCS +OCCSCHSP +OCCSNS +OCCST +OCCZCLDB +OCCZDB +OCCZHTDB +OCCZONE +OCCZRHSP +OCCZTCLSP +OCCZTHTSP +OCLTLVLSP +OFCMD +OFFBLD +OLTPC +OMALL +OPDIR +OPRP +OSPCHOSP +OTDEV +OTHOFF +OUTIL +OUTSPD +PARKSP +PARKSYS +PASALM +PCHWP +PCWP +PDSCV +PDZC +PERHYGIENE +PHANG +PHWP +PHWSC +PHWVCMD +PHYSSEC +PKED +PLBG +PLLCWFLOW +PLLCWFLSP +PLPM +PMLD +POECURR +POEETP +POEETS +POEPWR +powerfactor +PRCHWDPR +PRCHWDPRSP +PRECHWT +PRECST +PRECWT +PREHWT +PRHWDPR +PRHWDPRSP +PRKG +PRKLVL +PRKSP +PRKSPACT +PRKSPST +PRLCHWT +PRLCHWTSP +PRLCWT +PRLCWTSP +PRLENCMD +PRLHWT +PRLHWTSP +Profibus +PRREQ +PRTERR +PSPCMD +PSSCMD +PSSST +PTDSP +PTZCAM +PVCM +PVSC +PWRDMD +PWREXP +RACO +RACTSP +RADCMD +RADF +RADFBK +RADFE +RADRHSP +RADUCT +RADVCMD +RADWP +RAENTH +RAFLW +RAFLWSP +RAHRHSP +RAHTSP +RAPWR +RARH +RARHSP +RATSP +REACENE +REACPWR +realestatecore +REFCMD +refrig +Refrig +REGCARCALL +RELHUM +RETAILRM +RETST +REVVCMD +RFALRMH +RFANW +RFCMD +RFDCMD +RFFREQ +RFSPCMD +RFSPFBK +RFSS +RFST +RHSP +RHVCMD +RLAPCT +RLPWR +RLPWRA +RLPWRB +RLPWRC +RNTM +rollup +RTLS +RWFLW +RWST +SAVCO +SAVRH +SBCDAFLWMNSP +SBCDAFLWMXSP +SBCRFET +SBCRFLT +SBHDAFLWMNSP +SBHDAFLWMXSP +SBIAFLWCLMNSP +SBIAFLWCLMXSP +SBIAFLWHTMNSP +SBIAFLWHTMXSP +SBIAFLWMNSP +SBIAFLWMXSP +SBZTCLSP +SBZTHTSP +SCCHWDPR +SCCHWDPRSP +SCCWHXBYPVCMD +SCECHWT +SCECWT +SCEHWT +SCHWDPR +SCHWDPRSP +SCHWFL +SCHWP +SCLCHWT +SCLCHWTSP +SCLCWCTSP +SCLCWHTSP +SCLCWT +SCLCWTSP +SCLENCMD +SCLHWT +SCLHWTSP +SCWP +SDLD +SDNC +SDST +sectionalizer +Sectionalizer +SENIORLV +SEPP +setpoint +Setpoint +setpoints +SEUI +SFSS +SHCTR +SHDIR +SHPOS +SHPOSCMD +SHSC +SHTLTCMD +SHWFL +SHWP +SHZONE +SLLCWFLOW +SLLCWFLSP +SMPP +SPDREF +SPDSP +specificenthalpy +SPRV +SRVROOM +SSCMD +SSST +SSTN +STCNFLOW +STCNMASS +STCNMFLOW +STCNVOL +STDPRFL +STFLOW +STMASS +STMBLR +STMFLOW +stormwater +Stormwater +STRGRM +STRMALL +STRMS +STUDYRM +STVOL +subcooler +Subcooler +submeter +SUPC +SUPERMKT +SURS +Svideo +SWGR +SWISOVM +SWTC +SXWVCMD +SXWVFB +TCGM +TCHWEC +TCHWP +TECHSCI +TEEC +TEEEC +TEMPERATURESENSOR +TENGEC +TEWC +THERMEFF +THRMEN +THRMPWR +THRMSRCEN +THRMSRCPWR +THWEC +THWP +TLPM +TLSD +TNGEC +TPDSP +TRCHWDPR +TRCHWDPRSP +TRCHWFL +TRECHWT +TREHWT +TRHWDPR +TRHWDPRSP +TRHWFL +TRLCHWT +TRLHWT +TSTATFLCK +TSTATLCK +TSTATMDLCK +TSTATTLCK +TSTEC +tvoc +TVOC +TWHP +unitless +unocc +Unocc +unswitched +UOCCDAFLWMNSP +UOCCDAFLWMXSP +UOCCZDB +UOCHDAFLWMNSP +UOCHDAFLWMXSP +UOCIAFLWCLMNSP +UOCIAFLWCLMXSP +UOCIAFLWHTMNSP +UOCIAFLWHTMXSP +UOCIAFLWMNSP +UOCIAFLWMXSP +UOCLTLVLSP +UOCZRHSP +UOCZTCLSP +UOCZTHTSP +URGCLIN +UTILRM +vaporiser +VAVCDAFC +vavco +VAVCO +VAVEH +VAVFPP +VAVFPS +vavho +VAVHO +VAVPD +VAVPDRH +VAVRH +vavv +VAVV +VCMD +VCMDCL +VCMDOP +VFDFREQ +VFDSPCMD +VFDSPREF +VFDSSCMD +VMCDCL +VPOS +VRFOU +VRFOUACHP +VRFOUACHR +VRFOUAIR +VRFOUREF +VRFOUWCHP +VRFOUWCHR +VRFOUWTR +VRFSYS +WASTEWTR +WATERMETER +WCDSP +WDCMD +WDIFFPR +WDIFFPRSP +WDST +WDWSW +WECVCMD +WECVPOS +wetbulb +WFLOW +WFLOWSP +WFLWST +Whatshot +WIFIANT +WIFIAP +WIFIRTR +WLALRMH +WLALRML +WLHUB +WLVLSP +WNDSPD +WSHP +WSTWNDSPD +WTEMPSP +WTLVL +WTRTEMP +WTWHP +WVOL +XFMR +ZALMSP +ZCOALMSP +ZCOSP +ZDHRHSP +ZDPR +ZDWP +ZHUMRHSP +ZOCM +ZOVCMD +ZPCNT +ZPCS +ZRFSP +ZRHAVG +ZRHC +ZRHSP +ZSPC +ZSPR +ZSPRSP +ZTADJSP +ZTAVG +ZTCA +ZTHA +ZTSP +ZTVOC +ZTVOCSP diff --git a/lint/includes.schema.yaml b/lint/includes.schema.yaml new file mode 100644 index 0000000..224aeda --- /dev/null +++ b/lint/includes.schema.yaml @@ -0,0 +1,28 @@ +haystack: + type: list(str(), include("haystack_type_attr")) + type_optional: list(str(), include("haystack_type_attr"), required=False) + identification: list(str(equals="id"), str(equals="dis"), str(equals="navName"), include("identification"), required=False) + reference: list(str(), map(str()), required=False) + reference_optional: list(str(), map(str()), required=False) + measure_reference: list(str(), required=False) + output_reference: list(str(), required=False) + +identification: + id: str(required=False) + dis: str(required=False) + navName: str(required=False) + kind: include("kind", required=False) + dwgId: str(required=False) + unit: str(required=False) + unit_type: enum("mass", "volume", "volumetric_flow", "mass_flow", "electric_potential", "pressure", "temperature", "temperature_differential", required=False) + +haystack_type_attr: + phase: enum("A", "B", "C", "AB", "BC", "CA", required=False) + unit_type: str(required=False) + stage: Integer(required=False) + +google_ontology_full: + kind: include("kind", required=False) + unit: str(required=False) + +kind: enum("Bool", "Number", "Str", "List", required=False) diff --git a/lint/lint.py b/lint/lint.py new file mode 100644 index 0000000..0fcc055 --- /dev/null +++ b/lint/lint.py @@ -0,0 +1,26 @@ + +import os +import glob +import yamale + + +def validate_all(schema, pattern): + with open("includes.schema.yaml") as fp: + includes = fp.read() + with open(schema) as fp: + content = fp.read() + includes + schema = yamale.make_schema(content=content) + + for defs in glob.glob(pattern): + if "/ui/" in defs: + continue + print (defs) + data = yamale.make_data(defs) + yamale.validate(schema, data) + +if __name__ == '__main__': + validate_all("./tags.schema.yaml", "../data/*tags*.yaml") + validate_all("./point.schema.yaml", "../data/*/*point*.yaml") + validate_all("./equip.schema.yaml", "../data/*/equip.*.yaml") + + diff --git a/lint/point.schema.yaml b/lint/point.schema.yaml new file mode 100644 index 0000000..92371b4 --- /dev/null +++ b/lint/point.schema.yaml @@ -0,0 +1,17 @@ +map(include("point")) +--- +point: + name: str() + short_name: str(required=False) + description: str(required=False) + haystack: include("haystack") + is_base: bool(required=False) + extends: str(required=False) + alarms: list(str(), map(str()), required=False) + history: list(str(), required=False) + points: list(str(), required=False) + google_ontology: str(required=False) + google_ontology_full: list(str(), map(list(include("google_ontology_full"))), required=False) + brick_ontology: str(required=False) + deprecated: bool(required=False) + diff --git a/lint/requirements.txt b/lint/requirements.txt new file mode 100644 index 0000000..d28a60c --- /dev/null +++ b/lint/requirements.txt @@ -0,0 +1,2 @@ +PyYAML==6.0 +yamale==4.0.4 diff --git a/lint/tags.schema.yaml b/lint/tags.schema.yaml new file mode 100644 index 0000000..26fc75a --- /dev/null +++ b/lint/tags.schema.yaml @@ -0,0 +1,9 @@ +map(include('tag')) +--- +tag: + description: str() + type: enum("MARKER", "STRING", "NUMBER", "REF", "ENUM", "COORD", required=False) + source: enum("OAP", "HAY", "HAY3", "BIOT", required=False) + subtype: enum("FLOW", "MEASURE", "CONTAIN", required=False) + enum: list(str(), required=False) + fundamental_entity: bool(required=False) From 3dfeee1d73f1f197331e1e14e5b3cfc38442541b Mon Sep 17 00:00:00 2001 From: Stephen Dawson-Haggerty Date: Wed, 12 Apr 2023 12:16:41 -0400 Subject: [PATCH 2/2] Update branches in workflow --- .github/workflows/lint.yml | 2 ++ .github/workflows/spellcheck.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b339292..08c3321 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -2,6 +2,8 @@ on: push: branches: - develop + - main + - feature/lint pull_request: types: [opened, synchronize, reopened, closed] branches: diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index c253840..00283e2 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -2,6 +2,8 @@ on: push: branches: - develop + - main + - feature/lint pull_request: types: [opened, synchronize, reopened, closed] branches: